CSS Diner - <AUTHOR> http://flukeout.github.io/ <comment><USER2> It took me at least 5 minutes to work out what to do. It is not immediately apparent you have to type in the selectors in the styling box, I thought you had to click on the animated objects. Pretty cool idea, I found it a little too easy, but as a developer already, maybe I am not the target market.

You did manage to throw in a few curve balls like needing to use general and adjacent sibling selectors to select particular elements beside other elements and inside of elements. I think it should get harder a lot quicker, would be cool to see an expert CSS version of this where it starts out hard.

<comment><USER3> Likewise. I kept typing ".plate", until I looked more carefully and realized there was a plate tag.

I can see this being used as a teaching tool.

<comment><USER4> I did exactly the same. Then I thought the error was that it needs '{' on the same line. The 'aha' moment is funny though.

What would be nice as a learning helper: having some display of what was actually selected with the last command. For example little hands displayed on top of the objects would somewhat match the theme.

<comment><USER5> If you select the right objects, they get lifted up in the air. If you select the wrong objects, they shake.

<comment><USER4> I see. My suggestion would be to keep the lift animation, but replace the shaking with something that is persistently visible as long as the selector hasn't changed - this way it would be much easier to make out what has been going on. Also, one could play around with different selectors before actually answering the question.

</comment></comment></comment></comment></comment><comment><USER6> Brilliant. I have been doing a little bit of CSS over the years and I can get what I need done albeit not as quickly as some frontend developer that has every quirk of IE6 memorised. Since I generally do backend stuff sometimes I put in an extra class, e.g. for the end of a list, just 'to make it easier' on the CSS side of things. There are things like A+B that I steer clear from as they are allegedly bad according to tools like 'ySlow'. So I have plenty to learn when it comes to CSS selectors. Normally I look at the CSS and the HTML, not the big picture beyond 'inspect element'.

I felt that CSS Diner is very useful even if you think you know your subject. The graphics are great. I wish all education was as much fun and as interactive.

Like many folk here I did not understand what the game was at step #1 although I forgot this at step #2. So yes, some introduction needs to be worked on even though it is easy to overlook that once you get 'absorbed'. Aside from that, brilliant and bookmarked.

</comment><comment><USER7> Very cool.

Possible bug: on level 19, :nth-last-child() doesn't seem to work for selecting the first child in a set of children in firefox. Running

        $("bento:nth-last-child(2)").length

is coming up 0 in the console as well.

edit: these work though :/

        bento:nth-last-child(even)
        bento:nth-last-child(1n+2)
        bento:nth-last-child(2n+0)

edit 2: Ahh figured it out. :nth-last-child doesn't match only nodes that satisfy the selector you called it on. It matches all sibling nodes of the selector you called it on.

edit 3: Actually, I don't know what I'm doing. It might be a bug. I can't tell anymore. Anyone else have any thoughts?

edit 4: OK, I finally get it... _nth-last-child()_ is a qualifier not a grouper(I don't know the actual css terms so I made those up). That is to say that when you specify _bento:nth-last-child(2)_ you're not saying "of all the bentos give me the second one" you're saying "of all the bentos give me those that are in the second child position."

<comment><USER8>
        .table *:nth-last-child(4)

Seems to work, although for me I had to push enter a few times.

<comment><USER9> bento:nth-last-child(4) worked for me.

It selects the <bento> element that is the 4th child from last.

I think the confusion is here: people think that bento:nth-last-child(2) will be the solution because it should select the second-from-last bento element, but what it does is it selects all bento elements which are the 2nd from last children -- and since in the puzzle there is no bento that is second from last, it selects nothing.

So you have to consider it's siblings. The one we want ot select is the 4th- from-last among its siblings.

<comment><USER10> That makes very little sense.

Adding the bento: should have removed all the other items from selection.

It sounds like you are explaining a selector such as *:nth-last-child(4)

<comment><USER9> it in fact works the way that 'makes very little sense'.

There is a good reason, though, and it's in keeping with the 'nth-of-type' selector logic: there is a selector that works the way you think, called nth- last-of-type[0]

[0] [http://www.w3schools.com/cssref/sel_nth-last-of- type.asp](http://www.w3schools.com/cssref/sel_nth-last-of-type.asp)

[sample page I made just for you on my github.io page] [http://flanneljesus.github.io/](http://flanneljesus.github.io/)

</comment></comment></comment></comment></comment><comment><USER11> This is amazing, literally the best way I've ever seen for teaching about CSS selectors. I'm very grateful you made this open source so more levels and features can be added.

</comment><comment><USER12> Quite a bit of fun.

One notable issue: several puzzles need to have additional elements or classes added to prevent less sophisticated solutions from working. It's often possible to use a simpler selector than the one being taught in a particular puzzle.

<comment><USER13> Hey can you give me a specific example that's bothering you?

<comment><USER12> One example of how it _should_ work: On puzzle 1, the expected solution is "plate", but * works fine; that's completely OK because puzzle 2 forces you to use a more specific selector.

On level 7, it's possible to ignore the intended lesson and use "plate .small, bento .small".

On level 10, surprisingly, it's _not_ possible to ignore the intended lesson and write "apple, orange, bento, plate".

On level 11, .table * * works, though that does use the intended lesson.

That's in addition to the ones already mentioned in the sibling comment, which were the first ones I noticed.

<comment><USER14> I did several of them this way as well. At first I wasn't even reading the description to the right and just typing in selectors based on the instructions. So if I knew two comma separated selectors would work then that's what I typed in. Without going back over it to check, it's possible I entered selectors on a good number of them totally different than what was expected.

It would be interesting if the answers were tracked so we could eventually see what different developers were entering as selectors on each one.

</comment></comment></comment></comment><comment><USER15> Cool, but it's definitely got some issues. For example, this failed:

      orange:last-of-type, apple:last-of-type

while this worked:

      apple:last-of-type, orange:last-of-type

<comment><USER13> It's currently depending on the order of the selected elements to match, but I'm updating it work correctly now.

</comment></comment><comment><USER16> Couple things:

1\. Would be nice to have some sort of 'hint' or 'solve' button.

2\. Since you have the copy regarding how it's a work in progress, I'd suggest throwing a link to the github issues page so it's easy to submit bug reports and whatnot.

3\. I like it. Really aesthetically pleasing to use and each level is such a small incremental step forward I think that even the most timid of noobs would get a kick out of using it.

<comment><USER17> > 1\. Would be nice to have some sort of 'hint' or 'solve' button.

Did you see the CSS documentation on the right sidebar? It took me a while to notice it was there.

<comment><USER16> Yeah I did - but I ran into an issue on level 9 (A, B) where I wasn't producing the answer it was looking for but my solution was still technically correct.

I couldn't for the life of me 'unstick' myself from my initial answer. The hint could have kinda slapped my brain and jolted the more concise answer outta me.

 _Really_ minor detail I know, but with a lot of these online lesson helpers people do like to have the answer available to them.

<comment><USER18> Still trying to figure this one out..

Apparently "plate pickle, bento pickle" (or reverse order) isn't correct. Would love to see a hint/solution manual.

<comment><USER19> It's simpler than that. You are supposed to select the plate and bento, not the pickles on the plate and bento.

<comment><USER20> I was thinking plate + pickle and bento + pickle, since all of them were dancing... took me coming back here to figure out that only the plate/bento should be selected.

</comment></comment></comment></comment></comment></comment><comment><USER21> It is really bugging me that I can't prefix ".table" or "div.table" to any of these, since intuitively that's what I'd do when writing styles.

<comment><USER22> this is not valid CSS : ".table" or "div.table" since those are elements themselves and not class names. Unless of-course table is a class name then I'm mistaken.

</comment></comment><comment><USER23> I can always tell when a designer is working on a large screen, this feels very awkward on my 13 inch laptop. There is just a little too much vertical height. I keep wanting to scroll to see the whole thing. Very nice idea though, well done!

</comment><comment><USER24> Nice, I've been doing CSS for years but never knew about the "+" or "~" selectors until now.

Anyone have any examples of how they have or would use these in real-life?

<comment><USER25> The adjacent sibling selector `+` can be used to style an element based on the state of a sibling. For example:

input:valid + label { color: black; }

input:invalid + label {color: red; }

CSS Tricks has a tutorial ([http://css-tricks.com/float-labels- css/](http://css-tricks.com/float-labels-css/)) on this technique for displaying form labels as faux placeholders until the input has content, although it's not quite ready for most site's production requirements.

I haven't found many uses for the general sibling selector `~`, as it matches _all_ elements _after_ the initial selected element. I usually want the _preceding_ elements as well if I'm shooting that broadly, so simply excluding the item with `:not()` is generally a better choice.

</comment></comment><comment><USER26> Amazing.

Here's the GitHub repo in case anyone wants it:

[https://github.com/flukeout/restaurant](https://github.com/flukeout/restaurant)

(couldn't find a link anywhere)

</comment><comment><USER27> This is really great. When first learning web design I would look up CSS selectors one at a time depending on what I needed at that moment. I assume this is how most people do it because all the tutorials out there are so damn boring, and by the time you learn the fifth selector you've forgotten the first. But even now, as someone who's proficient in CSS I enjoyed completing a large chunk of this "tutorial". If I didn't already have a whole lineup of side projects I'm working on I'd try making this mobile friendly and packing it into an app. If there were more levels that got very difficult at the end it would be a fun way for people learning web design (a growing trend) to spend their time while commuting.

</comment><comment><USER28> Took a while to understand what the game was asking for, but once I did it was a lot of fun! Will definitely recommend it to friends learning css.

</comment><comment><USER29> Super idea and execution! I think it needs a few more iterations in a teaching environment to actually make it _effective_ though. I tried running this by someone with absolutely zero css or html experience.

\- The instruction (e.g. 'Select the small apples') isn't noticeable enough.

\- There needs to be a pause after you get an answer right, so you can work out _why_ you got it right (otherwise you can bang away at random combinations until you get to the next step without any idea what worked).

\- Similarly, when you try a wrong answer, there needs to be feedback as to _why_. E.g. if you try 'bento small plate', when the answer is 'bento #small plate', then there needs to be an explanation as to what you _didn 't_ do. This is not trivial to achieve!

\- The instructions at the right hand side is visually noisy, and should be hidden until needed, or perhaps presented first (in a modal popup) to give the visitor a heads up as to what they are supposed to be adding to their knowledge.

\- Because of the right hand instructions, it's not initially clear that the HTML code is at all part of 'the puzzle'.

You are 90% there, just the last 90% to make it a true gem of a teaching tool.

</comment><comment><USER30> Like what you're trying to do here!

It took me some time to figure out what I needed to do. Immediately, when I see "select," I think "click," so I clicked on the item instead of typing in text. Consider saying, "select images by typing in their class below."

Instead of ".classname," give an example. Also consider a pop up tutorial or a guide that shows you what to do on the very first lesson.

The list of lessons is also confusing. There needs to be something that says - this is what you've learned and what you still have to learn. Otherwise it just looks like a strange list of words from a language I don't know.

Also - consider putting the instructions on the left hand side, and putting "Learn CSS!" or something at the top instead of "Select ???." Because I read from left to right, right now I see the image first, an instruction to select something on the image (which I and others will interpret as "click on the image") and then I stop (rather than go all the way across to see the other instructions). If I see the instructions first and know exactly what to do.

Great job on this!

</comment><comment><USER31> I didn't like that apple:last-of-type, orange:last-of-type worked, but not orange:last-of-type, apple:last-of-type. Had me flummoxed for a bit.

<comment><USER32> Interesting... When I went through it quickly I think I used .small:last-of- type and never ran into this.

<comment><USER33> Yeah, my ah-ha moment happened when I realized that the pickles weren't small.

</comment></comment></comment><comment><USER34> What an incredibly pleasant treat. Fun with smart progression. This certainly brought a smile to my face.

But what I liked most, is that as someone with very little experience in writing CSS, this allowed me to breeze through the simpler selectors, while building my confidence on the more complex selectors. No doubt the graphical representation was extremely helpful in that regard.

A resource worth sharing.

</comment><comment><USER35> Really nice job - I like the vibrating items to give you feedback on what your attempt selected.

I'm not sure if a beginner will retain much by going through each selector for each level - would be nice to throw in some levels that require you to think back to previous selectors. However, it's a good review for someone who's been exposed to them before.

</comment><comment> dav- I really enjoyed this, but as others have mentioned it is not immediately clear what you're supposed to do. I spent about 3 minutes trying to figure it out. Maybe the first level should tell you exactly what to type, so that you can get the hang of it.

</comment><comment><USER36> Quite fun. I was typing in the correct answer for the first puzzle, but with a "{ }" at the end and it marked me incorrect. Maybe pop up a warning to tell the user not to type braces?

<comment><USER37> There's an opening brace on the next line that could probably be more obvious.

</comment></comment><comment><USER38> Absolute css genius. I've found no better way to learn selectors

</comment><comment><USER39> Level 13:

Select every pickle to the right of the bento

The solution `bento ~ pickle` passes, but I don't think it should. It does not select the pickles on the plates that are to the right of the bento.

<comment><USER19> I don't think it's meant to. The instructions are a bit ambiguous, but they mean just the pickles that are siblings to the bento, which you can see because only those are bouncing.

</comment></comment><comment><USER40> This is very cool. I found you can cheat though depending on the table and task. For example level 17 is trying to show you :last-child but you can 'cheat' and just do `apple, pickle` and it let's you move on to the next phase

Anyways, very awesome way to teach, I'm sharing it with all my friends but would be cool to force the solution and prevent "hacks" :P

</comment><comment><USER41> It is a really neat game. Kudos to maker(Luke). One must possess a unique combination of creativity and subject matter expertise to bring this kind of engaging game to audience(users). I heartily encourage those makers and wish for more games on other programming languages (such as Rails, HTML and Javascript etc).

Does anybody know other games like this in HTML, Javascript and Rails?

</comment><comment><USER42> What should the solution to Level 19 be? I couldn't get anything with 'nth- last-child' to work for me.

<comment><USER43> Same issue here. Not sure what I'm missing.

<comment><USER44> :nth-last-child(4), because if you do first-child(2) it selects the second orange as well.

</comment></comment></comment><comment><USER45> I was flummoxed on how to start for a bit but after reading the darkened title, I realized that you're supposed to type a selector that matches the darkened title's description.

This looks great for teaching beginners CSS, although there should be an "instructions" message somewhere.

</comment><comment><USER46> I think it's great and fun but too easy. There should be levels that require more nesting or specifying elements within another group and there should be more "control groups" that should NOT be matched (like in regex golf).

e.g.: A + B > C .small

</comment><comment><USER47> Very cool. A suggestion: move the help bar (that teaches the concepts) to the left side. I think it will feel more natural there. It took me some time to notice it. Do you plan to extend that to learning javascript too? That would be really nice.

</comment><comment><USER48> Not able to figure out what to do. It should be simpler, Kindly put a note or some sort of information about what to do , don't put a link because I think there are more chances that the user will go away rather than playing with it.

</comment><comment><USER49> This is great. Although, at first I thought it was one of those codepen CSS creations.

For # 16, I tried the following which did not work:

      pickle:only-child, apple:only-child

However, this worked:

      apple:only-child, pickle:only-child

<comment><USER50> I thought the solution was

      plate :only-child

<comment><USER49> That works, along with just

      :only-child

</comment></comment></comment><comment><USER51> Well done. A little 'getting started' would help people get started faster. This written at the top "Select the plates" & the progress bar weren't obvious because there were occluded form the view.

</comment><comment><USER52> I know CSS pretty well and I have no idea how to make this work.

I'm on the current version of Chrome and it's throwing a load of JavaScript errors in the console so maybe that's got something to do with it.

<comment><USER13> Type in "plate" for level 1 - that's the correct selector. The goal is to type the correct CSS selector for each level into the strobing blue input. Also, use chrome or firefox :D

</comment></comment><comment><USER53> This was fun. It reminds me a lot of Regex Crossword[1]. Good game for people who need to brush up on that.

[1] [http://regexcrossword.com/](http://regexcrossword.com/)

</comment><comment><USER54> This is great. I never knew about the universal selector (*) or the general sibling selector (~). I'm sure I'll learn a few more tricks from this as well, not finished yet.

<comment><USER55> Google[0] and Mozilla[1] both have some information on their developer sites about why avoiding the universal selector is preferable from a performance point of view.

I'm yet to find a case that has absolutely required the use of the universal selector. Has anybody else?

[0] [https://developers.google.com/speed/docs/best- practices/rend...](https://developers.google.com/speed/docs/best- practices/rendering#UseEfficientCSSSelectors)

[1] [https://developer.mozilla.org/en- US/docs/Web/CSS/Universal_s...](https://developer.mozilla.org/en- US/docs/Web/CSS/Universal_selectors)

<comment><USER35> I mostly see the universal selector used for resets (like removing all padding and margins), but it's definitely not frequently used.

</comment></comment></comment><comment><USER56> Web designers should be forced to use el cheapo LCD monitors. Dark grey text on black and light grey text on white are really hard to read if you do not have a very good monitor.

</comment><comment><USER57> Thanks! Great design and interactivity. I would suggest adding a glossary page somewhere and some follow up at the end instead of just CSS God, maybe suggested readings?

</comment><comment><USER58> Why don't you use strawberry? I love strawberry.. :)

</comment><comment><USER59> This is really useful and fun to use. At first I din understand how to solve the problem, then realized the plate is related to the puzzle. Great work!

</comment><comment><USER60> This is awesome! I wish this was there, when I started learing to code. I found it really difficult to understand CSS selectors back then. Great job!

</comment><comment><USER61> I have found two bugs;

Level 17 of 26: Select the small apple and the pickle

Does not accept .table > :last-child, apple.small

does accept

apple.small, pickle

Level 19 of 26: Select the 1st bento:

Does not accept .table > :nth-last-child(4)

does accept: bento:first

</comment><comment><USER62> I thought it was a quiz game before noticing the explanation on the right. I guess to teach kids CSS basics this would be great, quite engaging.

</comment><comment><USER63> Awesome! I shared this with my ladies' coding class, since several of them are interested in web design and have been learning CSS.

</comment><comment><USER64> I wanted to share after I completed it, and I was completely expecting a share link after I finished it all. Make it easier to share

</comment><comment><USER65> Oh wow. I teach kids to make websites (and other computer stuff) and I'm totally going to use this game.

Thanks for creating it!

</comment><comment> j-rom Wow. Thank you for this. I'm just starting out in web development and this makes learning CSS a lot easier.

</comment><comment><USER66> I'm not clear what to do about the game.Could someone give me the solve for level 1 for example.thx

<comment><USER67> plate

</comment></comment><comment><USER68> Really cool, but please, more contrast. I can barely read the text in the HTML/CSS editor.

</comment><comment><USER69> This is pretty slick, I usually do just basic CSS, this got me to see the power of selectors.

</comment><comment><USER70> Really well done. I'd love to see one of these teaching the CSS animations they use.

<comment><USER71> The upbeat animations were the highlight for me. Without them I think it would have felt more an exercise than game-like. Kept the positive vibe throughout.

</comment></comment><comment><USER72> On an iPad I long-tapped one of the plates and the highlight animation got really funky.

</comment><comment><USER73> Does not work in Opera (the normal one) at all. The plates are jumping like crazy.

</comment><comment><USER74> you should put up little help message to tell what exactly the player has to do. Took me few minutes to understand that I had to type in the css selector.

</comment><comment><USER75> Made me learn a few, thanks for the fearning.

</comment><comment><USER76> > You did it! You are a CSS God.

Very good, thank you! :)

</comment><comment><USER77> absolutely love it. thanks for the creative way of teaching css -- it's very well done!

</comment><comment><USER78> awesome game. I think it will be great if you could add some levels for layouts.

</comment><comment><USER79> there's a bug in level 9 - you're enforcing an order on the tags

overall this is great

</comment><comment><USER80> How do you do level 26?

<comment><USER81> Hint: For level 26, the apples you want to select are regular apples and do not have the small class. As a result you can use the alpple:not() selector to sove.

</comment></comment><comment><USER82> godsend! i am learning css and this turns up on hacker news

</comment><comment><USER83> This is really nice!

</comment><comment><USER84> This is really fun!

</comment><comment><USER85> Awesome work!!

</comment><comment><USER86> this is fun. Love educational games.

</comment><comment><USER87> take a look at the console.

>Fails thus far: 5

</comment><comment><USER88> cool. thnx for making this

</comment><comment><USER89> very cool, but it took me longer than it should have to figure out how to play.</comment>


Netgear Customers Urged to Turn Routers Off - <AUTHOR> http://www.telegraph.co.uk/technology/2016/12/13/netgear-customers-urged-turn-wi-fi-routers-several-models-found/ <comment><AUTHOR> Not that other companies are immune to this, but it sure does feel like a bullet dodged having moved from Netgear to Ubiquiti hardware in my house.

At what point are consumer router manufacturers (as well as other vendors that are pumping out vulnerable IoT devices, for example) deemed responsible for damages or negligence?

I understand it's difficult to regulate something along these lines but there should be some threshold for required maintenance after launch, minimum security advisories (like no global default username/password), defaulting to no internet admin, etc.

The vast majority of people buy the thing, plug it in, and never touch it again- vendors should be responsible for making these things safe out of the box.</comment>


Ask HN: how would you design this app? - <AUTHOR> My wife and mom are notaries public. Basically, they get calls from banks that need someone to notarize loan docs and get paid ~$100 for their time.
I didn't really pay much attention to their stuff until I realized that their side gigs pull in a few hundred bucks a week. (I realize that's not a whole lot but this is "beer money" on top og their FT jobs.)
Anyways, I built a ghetto app in a few hours one night last week (notarycrm.com) and I'm trying to figure out how to make this whole thing easier on the eyes. (Since quietly launching it to my wife and mom, I've reached out to other notaries on Twitter and have managed to get a bunch of people using the app multiple times each day to manage ~$100K worth of business already.)
On one extreme, I guess I could spend a few days trying to sketch something out, figure out AJAXy stuff and tinker until I get it right. On the other extreme, I'd find some with some experience building niche B2B apps and pay them for their front-end experience/instincts. (FWIW, I started coding for fun about 18 months ago. I use RoR for pretty much everything now and, while I can hack together little ideas like this overnight, I can't help but feel like my projects traction could be better if a better UX/UI was in place.)
What would you do? Any suggestions on alternatives? <comment><USER2> Don't ask us, ask your users how you can improve it, while at the same time _tracking_ their usage habits. Analytics + feature requests is a win.

The most powerful tool for improving web apps is actually a telephone. Get yourself some headsets and a $10 Skype credit. Should last you a month.

Implement the feature and expose it to 10% of them. Watch how they accept it, then push it to the rest. Make a blog post about it and release a PR statement. Let industry publications aware of your existence. Then take a few weeks "off" getting more clients. Then repeat.

Try to keep a "how can we improve" button clearly visible, but not distracting. Make yourself reachable. Get a Google Voice number and put it on the opposite side of your logo.

Something as "simple" as extending the session timeout for everyday software can make a huge difference. People hate it if they kept getting logged out, specially for non-critical and non-financial applications. Go overboard in building trustworthiness; put the app on SSL, show lock icons, never show them their credit card back (if you're stupid/big enough to take it to begin with.) Any sensitive information should be shown in non-editable GUI elements (labels mostly) and show the last few digits to disambiguate. If you ever charge their accounts, or processes payments for them, send an email confirmation ASAP. Payment confirmations are the least annoying form of email; it shows you're willing to leave a paper trail (irrational, I know, but it gives them the fuzzies.) and it's a good opportunity expose them to your branding/message/identity.

If you ever keep a "purse" for users, where they can add and withdraw funds, never EVER send them an email containing their balance figure; some people have email notification widgets that popup a dialog with the subject and first few lines of the body ( _"$20 Payment Received, you now have $20.15"_ might seem like benign feedback, but not when your user was on a projector in a meeting. No seriously, people, kill them damn notifiers when you speak publicly. Nothing distracts like seeing a nastygram from your speaker's wife flash across the screen.)

</comment><comment><USER3> I did my own design on my apps (for both myself and clients) for a long time. Hell, RateMyStudentRental still has my old design (I've since had it professionally redesigned but not yet implemented the new design).

One thing I can say is that the quality of my sites, and my pride and satisfaction in my work, has increased dramatically since I've started to contract out the design to professional web designers. Not just because they look better, but because I believe in their potential enough to spend money to make them better.

That being said, here's a specific suggestion. You need screenshots. I can't tell a thing about how the app actually works or what it does (other than simply taking your word for it), and I can't visualize any part of the app without signing up. I'm not a notary, so I'm probably not going to sign up.

<comment><AUTHOR> This is great feedback. I'll start working on that today and see what I can knock out today.

</comment></comment><comment><USER4> Your basic pitch seems to be to make administrative work that was previously tedious into something that's relatively fun, easy, and quick. UX improvements might help, but are there instead ways to automate administrative tasks away? I'd second listening to users, since I don't have any sense of what the pain points are (but understanding pain points beats feature requests).

Didn't sign up, but some concrete thoughts on the marketing site: avoid very high contrast, e.g. true black (#000) on true white (#FFF). The orange text on blue vibrates visually and is somewhat hard to read. Overall, really like the simple, benefits-focused presentation. Great idea and good luck on it.

</comment><comment><USER5> The site looks good to me. I don't think the "NotaryCRM will save your day (and your sanity)." stands out enough, especially since it is your tag line. There is not enough contrast.

I noticed you say it is a free service on the website. Do you intend to charge in the future? If so, you might say 'Free while in Beta' or something. Something to clue people in that there will be a cost at some point.

Overall great work in a short amount of time. Both the product and getting a large number of users quickly. Did you do anything else besides using Twitter to reach out to other notaries?

<comment><AUTHOR> Yep, I plan on a freemium model that I actually want to roll out ASAP to make this "real" in my own mind. Basically, they'll be able to "manage" their notary business for free. If they want to use us to invoice their customers and track payments, they'll pay. If they want to build teams of signing agents and manage them, they'll pay more. My key action item is to get a pricing page up immediately - thanks for that.

Nope, just Twitter. This weekend I've begun compiling a list of contacts from my wife and mom - I'll start cold calling next week.

<comment><USER5> Could you report back how the cold calling works? I've been thinking of doing some of that but I have no idea what the ROI will be on it.

</comment></comment></comment><comment><USER6> Clickable: <http://notarycrm.com>

</comment><comment><USER7> Let me get this straight: you spent a few hours last week to build an app, and it already generated $100K of business? Did I miss something in that story?

<comment><AUTHOR> Sorry if I implied that I _made_ $100K from a few hours of work -- that wasn't my intent.

NotaryCRM users are tracking $100K of _their_ money in my system.

Subtle, but important difference. :)

<comment><USER8> That's still a thousand transactions, in a very short order of time. Not too shabby.

Given your profile, I feel a little weird giving 'advice'; did both of those companies happen in the last 18 months?

Regarding NotaryCRM, I'd start by fixing the layout so that it renders properly in Safari; the signup button requires a horizontal scroll for me.

Don't sweat AJAX too much; it's a useful tool in the toolbox, but a lot of people go _nuts_ on making everything load dynamically, which gets irritating really quickly.

Your contact page is a form; I don't know about other people, but this always puts me off a bit.

<comment><AUTHOR> Yeah, Philtro and MailFinch are in the last 2 years. Been doing startup stuff for the past 10 though.

Great feedback, I'll add this to my list!</comment></comment></comment></comment>


If a 13 year-old can launch a startup you have no excuse - <AUTHOR> http://uk.techcrunch.com/2009/01/05/if-a-13-year-old-can-launch-a-startup-you-have-no-excuse/ <comment><USER2> this is a startup? Its just a wordpress site...hardly something I would call a startup. Whats next Techcrunch covering a 10 year old's Myspace page?

</comment><comment><USER3> I'm too old.</comment>


Many aspects of Goethe - <AUTHOR> http://www.the-tls.co.uk/articles/public/fragments-of-confession/ <comment><USER2> Goethe was a figure I was introduced to in college courses, but that was a long time ago. The article was a good reminder of the absolute depth of genius he represented, and makes me interested in exploring the work again.

Mastering several diverse fields of knowledge in today's hyper-specialized world isn't so much esteemed, yet Goethe's abilities in such a broad array of domains remains remarkable and admirable. Succeeding in science, visual arts, poetry, writing for the stage, etc. is a luxury afforded very few of us, but gazing at his vast output might at least encourage us to make as full use as possible of our less lavish talents, and not forget to celebrate worthwhile achievements.

One element that the article does not mention that helped shape Goethe's views was the influence of Spinoza. Goethe was impressed with Spinoza's philosophy, though Spinoza was still considered "evil" by churches even well into the 18th century, nearly a hundred years after his death. Goethe was among the first to "defend" the _Ethics_ , and incorporated its core ideas in his own developing spirituality.

</comment><comment><USER3> That's a nicely concise survey. Looking from outside, I'd say it's hard to overestimate Goethe's importance to German speakers - he's their Homer/Virgil/Shakespeare, the German state sponsored schools for spreading their language and culture abroad are named Goethe Institut.

One particular bit not mentioned was the 'Farbenlehre' \- if memory serves, Goethe got into a bit of a tiff with Newton about color theory, and although he had his supporters, did not come out on top.

<comment><USER4> It's weird that his color theory is such a minor thing in the article: I've recently read his "Conversations with Eckermann" (highly recommended: a long book of notes from Eckermann where he summarizes, well, myriad talks with Goethe. It's public domain.), you'll see that Goethe was convinced that his color theory was _the_ major work of his life. He was quite bitter about the establishment rejecting his work (not Newton himself as he died 20 years before Goethe's birth) and couldn't let it go.

>»Auf alles, was ich als Poet geleistet habe,« pflegte er wiederholt zu sagen, »bilde ich mir gar nichts ein. Es haben treffliche Dichter mit mir gelebt, es lebten noch trefflichere vor mir, und es werden ihrer nach mir sein. Daß ich aber in meinem Jahrhundert in der schwierigen Wissenschaft der Farbenlehre der einzige bin, der das Rechte weiß, darauf tue ich mir etwas zugute, und ich habe daher ein Bewußtsein der Superiorität über viele.«

(my translation: I don't pride myself on anything I've done as a poet, there have been good poets alive with me, even better ones before me, and will be alive after me, but I'm proud to be the only one in this century who knows what's correct in the hard/difficult science of color theory, and therefore I feel superior to many)

He wrote several books about the theory and kept on researching it, roughly summarized according to him colors came into being by a mixture of light and shadow.

But he was quite blind about the failings of his theory - in another biography of Goethe (Safranski's) it even says that someone gifted him a prism which invalidates his theory as there's no shadow needed to make a rainbow, he just refused to use it.

<comment><USER5> An interesting related article, in German:

[http://www.zeit.de/2010/20/Farbenlehre/komplettansicht](http://www.zeit.de/2010/20/Farbenlehre/komplettansicht)

</comment></comment></comment><comment><USER6> Related Trivia: The 8th largest conglomerate in South Korea, the "Lotte Group," is named after a character in Goethe's _The Sorrows of Young Werther_ [1]

If you ever stay at the Lotte hotel in Seoul, instead of finding a Gideons Bible in your nightstand you will find a copy of Goethe's novel. There is also a museum in the lobby which explains the whole story behind the name.

[1] [https://en.wikipedia.org/wiki/Lotte_(conglomerate)](https://en.wikipedia.org/wiki/Lotte_\(conglomerate\))

</comment><comment><USER7> A truly great and inspiring man. He really knew what science was about, contrary to how we conduct science these days.

</comment><comment><USER8> Read Conversations With Goethe</comment>


Soylent 1.0 Macronutrient Overview - <AUTHOR> http://blog.soylent.me/post/68180382810/soylent-1-0-macronutrient-overview <comment><USER2> Seems like a low amount of protein, only 20%. Are there going to be different varieties of soylent for those who do more muscular activities?

<comment><USER3> Well, the oat flour has about 40 grams and the isolate is another 102 grams, or about 140 grams total. That's an entire small chicken. 20% of your calories from protein actually seems respectably high to me. Probably plenty to build all the muscle you want, despite what the current bro-science says. Especially if all that exercise ups the amount of Soylent you need in a day, or forces you to supplement with other sources high in protein.

<comment><USER2> I see, hmm oat flour seems really awesome. I'm gonna have to get some of this soylent, that or start eating more oats. :-)

What are your thoughts on Spirulina?

[http://en.wikipedia.org/wiki/Spirulina_(dietary_supplement)](http://en.wikipedia.org/wiki/Spirulina_\(dietary_supplement\))

<comment><USER3> I've never heard of Spirulina, but oat flour is my own personal super-food. I use it as a meal replacement, mixed about 3 parts oats to 1 part protein powder mixed with water. Maybe some dextrose thrown in if you need it a bit sweeter. I love the stuff and I'm glad the guys at Soylent are making it a large part of the formula.</comment></comment></comment></comment>


Apple is launching search engine to destroy Google - <AUTHOR> https://www.linkedin.com/pulse/apple-launching-search-engine-destroy-google-jason-calacanis

<comment> Digit-Al Wow! Unbiased reporting not so much.

<comment><USER2> I don't personally know anyone who hates Google, so perhaps the author exaggerates with "everyone hates Google". Also, I don't have a problem with "placed" ads in my Google searches. I don't click on those links, but they don't interfere.

I think what the author fails to understand is that everyone in the "personal assistant" game - Apple's Siri, Microsoft's Cortana, Amazon's Alexa, and the impersonal voice queries in Google search, maps and Google Now - is also in the search game. In my experience, Apple isn't as good at search as some others - for example, Siri frequently can't find local businesses that Google maps can - but even if it came up to full speed there's no way it is going to displace Google, which has its own popular Android mobile platform.

As to Spotlight, I had to disable it on my iMac because it was periodically and for long periods sucking up most of the CPU and all the I/O bandwidth to index the disk. The fact that its implementation of even local disk search is so bad doesn't make me think Spotlight is going to conquer the world.</comment></comment>


This Is Your Brain on Silence - <AUTHOR> http://nautil.us/issue/38/noise/this-is-your-brain-on-silence-rp?href= <comment><USER2> A previous discussion: [https://news.ycombinator.com/item?id=8206982](https://news.ycombinator.com/item?id=8206982)</comment>


Digital Ocean locks my account and want social media and personal details - <AUTHOR> http://i.imgur.com/xrRzi1n.png

<comment><USER2> Were you running a proxy or something on their box? I did that once to stream Netflix when overseas and they bugged me about that too.

</comment><comment><AUTHOR> barely running anything but docker/dokku on the box.

<comment><USER3> I thought these were regular info you have to provide to sign up and run the droplet. How did you sign up withholding these info while you use your credit card?

<comment><USER4> I signed up with PayPal and used the $50 Black Friday code. I just gave them my first name and e-mail address.

If they start making it mandatory that we have to give them a URL for a personal blog, company website, Facebook profile, etc, I'm going to find a new host.</comment></comment></comment>


Union Organizing: Kickstarter Workers Kick Off a Drive; NPM Engineers Fired - <AUTHOR> https://spectrum.ieee.org/view-from-the-valley/at-work/tech-careers/kickstarter-workers-kick-off-a-union-organizing-drive-npn-allegedly-fires-engineers-for-organizing-efforts <comment><USER2> Hm..

"That senior staff memo also suggested that union organizing is inappropriate for tech professionals. "Forming a union is a great tool—for marginalized workers," it stated. "We're concerned with the misappropriation of unions for use by privileged workers.""

Privileged in what way? I have come to realize that tech workers (Of all skill types.) by and large (In my opinion) are skilled trades people similar to the marginalized workers that are cited.</comment>


Implementing End-To-End Encryption in Matrix Clients - <AUTHOR> https://matrix.org/docs/guides/e2e_implementation.html <comment><USER2> warning: the e2e implementor's guide hasn't been updated with any of the incremental key backup or interactive key verification stuff which just landed in Riot 1.0, nor the cross-signing epic which is on the horizon.

The details for these for those interested can be found at:

[https://github.com/matrix-org/matrix- doc/pull/1703](https://github.com/matrix-org/matrix-doc/pull/1703)

[https://github.com/matrix-org/matrix- doc/issues/1267](https://github.com/matrix-org/matrix-doc/issues/1267)

[https://github.com/matrix-org/matrix- doc/pull/1544](https://github.com/matrix-org/matrix-doc/pull/1544)

and

[https://github.com/matrix-org/matrix- doc/pull/1756](https://github.com/matrix-org/matrix-doc/pull/1756)

<comment><USER3> It's a good sign (I mean this sincerely!) when the first comment is the project founder with a caveat, setting realistic expectations.

Keep up the good work! (…but do remember to get some bloody sleep every once in a while)

<comment><USER2> thanks :)

</comment></comment></comment><comment><USER4> I love Matrix and I am planning on running a home server of my own and integrate it with all the different chat services I use.

Last time I checked there was the Matrix reference implementation and Riot. Today, there's a bunch of gorgeous Matrix clients that I can see people actually use. Alternative clients like Fractal and Nheko can make or break the ecosystem and I'm glad to see continuous improvement in that area.

It's especially nice to see the cross-signing proposal approved, as trying out just a few Matrix clients over time has added 9 separate keys I need to approve to my account already. Stuff like this will make it easy to switch phones/desktops/apps and will be wonderful for public uptake.

<comment><USER5> I want to integate all chat services as well. Could you share how you plan to do it? Libpurple/pidgin perhaps?

<comment><USER6> Quinn Norton had some pretty damning things to say about libpurple and its lack of security in 2014: [https://medium.com/message/everything-is- broken-81e5f33a24e1](https://medium.com/message/everything-is- broken-81e5f33a24e1)

It's possible libpurple's security has improved since then, but I wouldn't count on it.

<comment><USER5> Thanks for the link. I actually checked the CVEs so far and read their 'security' page. I have only skimmed the article, however, if it's just reverse engineering the protocols, and you are still using somebody else's server, what's the biggest risk? Maybe a vuln in the client that won't be fixed as fast as the official client?

</comment></comment></comment></comment><comment><USER7> They should focus on non-Electron client, and server in Go [1] rather than Python. Both are too slow and consume so much memory just for an IM.

[1] [https://github.com/matrix-org/dendrite](https://github.com/matrix- org/dendrite)

</comment><comment><USER8> I love Matrix and Riot is the perfect client! Personally, I found the current way to manage end-to-end encryption in a room a little bit annoying to configure (when using it in a team is even more painful). I am glad to hear that it is getting better.

I can't stop suggesting Matrix to people!

</comment><comment><USER9> Is there a milestone after which Matrix will only recommend clients which have E2E encryption for all messages _by default_?

As it is you list stuff like Nheko which claims to E2E encrypt messages _but not attachments_.

<comment><USER2> sure. the idea is to provide a proxy such that non-e2e clients get encrypted - see [https://github.com/vector-im/riot- web/issues/6779](https://github.com/vector-im/riot-web/issues/6779).

nheko lost its maintainer for a few months hence stuff like the missing e2e attachments, but they are trivial to add; hopefully someone will contribute them soon.

</comment></comment><comment><USER10> I'm new to using all the new chat programs and LOVE the idea of matrix, but was somewhat surprised to learn there isn't a bridge for Signal, since it's open source. Is there a reason and/or any possibility of it happening. The linux Signal desktop client is too resource intensive and it would be amazing to be able to use WeeChat.

<comment><USER11> There is a signal bridge [0], but it is a little hacky. I would imagine moxie won't condone an 'official' bridge to matrix, given his stance on federated chat. Also: any realistic (short-term) bridges will have to basically be a man-in-the-middle, breaking the end to end crypto. In the (very?) long term MLS [1] _may_ allow for e2ee through a bridge, but that would probably mean that signal has to explicitly support it. Given the track-record of OWS I personally doubt that would happen, but I'm just a random guy from the internet, so what do I know. I do know that the matrix people are looking at MLS and are willing to implement it in matrix if it finalizes, though they'll currently focus on their own megolm implementation, which is very close to being perfect, from my perspective.

[0] [https://github.com/matrix-hacks/matrix-puppet- signal](https://github.com/matrix-hacks/matrix-puppet-signal) [1] [https://datatracker.ietf.org/wg/mls/about/](https://datatracker.ietf.org/wg/mls/about/)

</comment></comment><comment><USER12> Maybe slightly out of context but: It should be highlighted in <h1> that Riot does not use end to end encryption by default. At least that's how I understand it.

<comment><USER2> i think the assumption here is that if you are reading an implementor's guide to e2e encryption, you'll be doing so _because_ it's not yet turned on by default (due in part to not all clients implementing it yet).

[https://github.com/vector-im/riot-web/issues/6779](https://github.com/vector- im/riot-web/issues/6779) is the issue tracking turning it on by default.

apps like riot make it pretty clear when you are in an unencrypted convo (typically the composer says "Send a message (unencrypted)".</comment></comment>


Ask HN: Where is Jack Slocum? (ExtJS) - <AUTHOR>

ExtJS renamed to Sencha and his name is gone:
http://www.sencha.com/company
I'm not following ExtJS intensively, I'm just curious what is he up to. <comment><USER2> from: [http://www.sencha.com/forum/showthread.php?101713-About- Jack...](http://www.sencha.com/forum/showthread.php?101713-About-Jack- Slocum..).

A few people in the community have been asking about Jack and his whereabouts as of late.

We're not entirely sure whether to respond to this with a 404 (not found), 301 (moved permanently) or a 307 (try again later at the same location.) After pretty intense work getting Ext JS established, Jack tapered down his involvement during the past 18 months. Although he may return in some capacity in the future, we wish him all the best.

</comment><comment><USER3> I would like to know too!</comment>


Lies of B-School - <AUTHOR> http://www.forbes.com/sites/ericjackson/2011/08/10/the-ten-biggest-lies-of-b-school/ <comment><USER2> Most of the author's points have some merit. However, just to balance the argument out a bit, here are a few truths of the MBA:

1\. If you want to become a Goldman (or similar caliber) I-banker or work at a top flight consulting firm, a top MBA is the way to go.

Yes there are other ways to get these jobs, but the recruiting processes for these firms are highly targeted and organized when it comes to hiring people from prestigious MBA programs. It truly is the path of least resistance. And if you truly set your mind to becoming employed by one of these firms, you can likely attain it once admitted to a top business school. We can argue the merits of joining one of these companies, but that's another argument entirely.

2\. If you go work at said type of firm, your employment options thereafter are wide open.

I don't have statistics to back this up, but having worked in corporate for a healthy portion of my career, Goldman and McKinsey candidates were often ear- marked for positions that they applied for.

3\. The MBA is good for "career changers".

Assuming you want to go the corporate route, an MBA is a very versatile degree. If from a top school, it practically forgives whatever you were doing before the MBA and enables you to transition into something largely unrelated if that's your wish. You need to do a whole lot of networking and build your story to make this happen, but with two years to do so, there's plenty of time. And the fact of the matter is that, regardless of how you regard MBAS, plenty of highly regarded corporates (including Google!) formally plug into the recruiting process at top schools.

EDIT: I understand many of the arguments above may not apply to the HN community as it skews entrepreneurial and perhaps academic, but I believe they have merit nonetheless.

<comment><USER3> I think you are right but I don't think the OP is refuting that.

The problem with MBAs IMO is that they teach you "play the game" more than they teach you to be better at doing business.

<comment><USER4> Ah but doing better at business is only important if you care more about creating new things than gating paid a lot. If, on the other hand, you are in it for power and money, being better at "playing the game" is where money and power will come from faster and easier.

</comment></comment></comment><comment><USER5> Let me be a data point. I have a BSc in Comp Sci, run my own company(ies), and did my MBA at a "good" school (Schulich School of Business). Here's, in my opinion, THE best takeaway a technically minded person gets from an MBA: there are people in this world who don't think like you, don't solve problems like you, and don't have the same interests, but you're often working shoulder to shoulder with them so best you learn how to deal with them.

MBA projects are more often than not group work and in your group you'll have a marketing person, a financial expert, an electrical engineer, and maybe a teacher who wants to change careers. It's like herding cats sometimes to get people on the same page, not because they're dumber or slower than you, the Python wiz, but because they're used to solving problems differently.

For me, this was the best part of my MBA. I really improved my sensitivity to others' understanding of issues and became more "personable".

<comment><USER6> Good point.

However, I feel that I obtained a similar education in teamwork by working odd jobs throughout my law and computer science studies.

</comment></comment><comment><USER7> I think we need a case study on the core competencies of the author's point structure. Maybe we can re-org. Big value-add there.

<comment><USER5> Ha, I don't know if I should laugh or cry because students in my school actually DID talk like that!

The buzzword soup that MBAs pick up is definitely one of the weaker elements of the program on the whole. I've had professors admit that they want their students to learn these terms ("paradigm shift" is my favourite) so that they can "sound smart at cocktail parties"

</comment></comment><comment><USER8> >However, you have to realize that if you're getting an Ivy League MBA, you're probably 10x more susceptible to the previous 9 lies than other MBAs. Don't let yourself be the next Jeff Skilling, the smart Harvard MBA, who worked at McKinsey and then went to Enron and drove the company off a cliff. He had a golden resume – and where did it get him?

Is this really the kind of reasoning they teach in business school?

<comment><USER9> you were being ironic, right?

</comment></comment><comment><USER10> I dunno if MBAs can be so high about themselves, but I will start giving even less credit them now.

</comment><comment><USER11> Missing from the list "9 pregnant women in a room for 1 month will produce a baby"

<comment><USER3> I don't know why you got down voted. This is actually a very relevant comment despite it's character.

Anyone working on big projects with a client can testify to this.

<comment><USER11> Thanks. I guess someone felt I was being caustic (which, well, I was). Indeed this is one of the recurring problems we've faced in large projects and "we" always wonder if it's something "they" learn in Business School, so I was expecting it to be on the list. Anyways, I'm sure I'm over-simplifying and the issue runs deeper than the academic background.

</comment></comment></comment><comment><USER12> I'm genuinely considering business school because I feel like the "jack of all trades" type and generally the type who encourages others to do their best work, builds bridges, helps facilitate collaboration etc.

I do wonder if the B-school route is just the cop-out for me because it plays to my existing strengths, and let's me boost the resume without being on the corporate treadmill for a few years.

Would love to hear from others who've got MBAs on here. The coding community is generally negative about MBAs, but does anyone on here have any advise?

Are technology-management-focused MBA programs ever any different?

<comment><USER13> >"jack of all trades" type and generally the type who encourages others to do their best work, builds bridges, helps facilitate collaboration etc.

Sounds like you may be a glue guy. Good writeups on glue guys in sports:

[http://soccernet.espn.go.com/world- cup/story/_/id/5308513/ce...](http://soccernet.espn.go.com/world- cup/story/_/id/5308513/ce/us/david-vanole-esophagus-saved-us- soccer&cc=5901?ver=us)

<http://www.google.com/search?q=glue+guy+grant+hill> (can't find the actual article, but there was a good one on Grant Hill and how he changes game stats)

Biggest problem may be that that role seems more needed in a sports team or the military than a tech business.

<comment><USER12> Interesting, well I've been really kicking a __at the role in a big tech company in silicon valley, but it's killing me to work in such a large company. What this may mean is that there is room for the role only in super large orgs that are splintering.. a pity b/c I personally can't stand working in them. Hmm anyway thanks!

</comment></comment></comment><comment><USER14> Those are not 'lies of' business schools. Those are false beliefs about business schools, which is different.

</comment><comment><USER15> The strange thing about MBA's is not the fallacies but the currently attached value to the MBA. <http://en.wikipedia.org/wiki/Paradox_of_value>

</comment><comment><USER16> > You've probably worked at companies were people who've been there for 2 > decades ...

11\. You know how to proofread.

<comment><USER6> 12\. Dictated but not read.

</comment></comment><comment><USER17> You need MBA to prevail in globalization.</comment>


Ask HN: Land of Lisp for learning clojure? - <AUTHOR>

Is Land of Lisp a good way to learn lisp if I am primarily interested in hacking clojure? I should add that I am an experienced programmer, so a clojure specific book with rigor is fine with me. I am unable to decide if a generic lisp(clisp) book is better than a specific clojure book to bootstrap. <comment><USER2> It's kind of like saying, I've heard of this wonderful book on learning French, can I use it to learn Spanish? They're similar languages, but not the same. The grammer is close, but different. The vocabulary is close, but different.

That being said, Land of Lisp is a fantastic way to get your feet wet in functional programming. I would highly suggest giving it a whirl. Learning Common Lisp will definitely help in learning Clojure. But you really need to look at it as two distinct steps towards your goal of learning Clojure.

There is also a new Clojure book coming out at the end of the month called the Joy of Clojure, which I'm really excited about. Currently the only two books out are Stewart Halloway's Programming Clojure, which is excellent. and Stuart Sierra's Practical Clojure, which is also very, very good. They are both focussed on Clojure 1.0, however, so you'll miss out on some of the features brought by 1.1 and 1.2. I own both, and can't recommend one over the other, though I might lean towards Practical Clojure purely for personal preference.

</comment><comment><USER3> Land of Lisp is focused on Common Lisp( and CLISP as environment of choice). As the author says in Chapter 1: "We'll be dipping our toes in some Arc and Clojure in the epilogue."

Bottom line: the book is a charming and quite solid introduction to Common Lisp. If you want specifically a book for Clojure and only Clojure this is not the one.

<comment><AUTHOR> I should have been more clear - My goal is to become a competent lisp programmer first and foremost. I will probably end up choosing clojure for my projects because I already have lots of java code and a jvm lisp dialect is more suitable.</comment></comment>


Docker Hosting Cloud - <AUTHOR> https://sloppy.io/ <comment><USER2> Sloppy: Careless and unsystematic; excessively casual.

The product looks interesting but the name does not inspire confidence.

Also what advantages does this have over [https://cloud.docker.com/](https://cloud.docker.com/)

</comment><comment><USER3> Given that your selling point is: "FOCUS ON CODING, NOT SERVER MANAGEMENT.", I think your name needs work.

"Sloppy" is almost never a _good_ adjective, and certainly not something related to technology and security.</comment>


The Weight Loss Trap - <AUTHOR> http://time.com/4793832/the-weight-loss-trap/ <comment><USER2> The article mentions a probiotic pill. I think that the microbiome is the place to look for answers, but not with pills, just with better fuel. I managed to lose 70 pounds (from 215 pounds down to 145) and keep it off so far. At the moment, I have to make efforts to get _more_ calories now, not less.

\- I think of food as fuel that goes into a fermentation-based engine. I make sure to add the right ingredients for proper fermentation.

\- I only eat high-nutrient, whole foods that I mostly cook from scratch. The staples are vegetables, legumes, fruit, nuts, seeds.

\- No meat or dairy except for fish (salmon, herring, and sardines).

\- I eliminated: refined foods, alcohol, grains (except small amounts of brown rice and grain-like seeds like buckwheat), sugar, sweeteners, oils (except small amounts of coconut oil and high quality olive oil).

\- I don't eat nightshade-family vegetables (including potatoes), but I do eat sweet potatoes (the regular yellow ones and satsuma "yams").

\- I say, "I _don 't_ eat those foods", not "I _can 't_ eat those foods." (self identity vs. permission) I view junk food as a recreational drug. I don't eat junk in the same way that I don't smoke cigarettes.

\- If I'm out, and there is nothing on a menu that I can eat, I don't eat, or I find some fruit or buy nuts and dried fruit at Berkeley Bowl.

\- I restrict calories on some days, similar to the calorie restriction in the 5:2 diet.

\- I eat a lot of fermented foods, often homemade: sauerkraut, pickles, water kefir, etc.

\- It's sometimes difficult to get enough calories, but I often eat one avocado per day, plus a few handfuls of nuts.

I've also experimented with 2-5 day water fasting (very difficult) and alternate day fasting (too difficult for me to continue more than a week).

I don't know if those methods would work for anyone else, but maybe there is some information there that other people could find useful. (I'm not making recommendations -- just sharing my experiments. Check with a doctor before trying any unusual diets.)

The plan is based on thinking about the body as a farm of microorganisms. Different foods cultivate different microorganism. As far as I can tell, things like _refined_ carbs and animal products (beyond small amounts) are not beneficial. It isn't "paleo" though -- I don't think that paleo is a good idea.

<comment><USER3> You say you eliminated sugar, but fruit has lots of sugar in it.

I actually think there are _lots_ of different diets that can work. Mine is rather different than yours (keto, with _tons_ of meat and fat) but I've lost about 60lb on it and never felt better.

<comment><USER2> I mean refined sugar. I don't add sugars or other sweeteners to my food.

The fiber in fruit reduces the effect of the sugar. See this article: [https://well.blogs.nytimes.com/2013/07/31/making-the-case- fo...](https://well.blogs.nytimes.com/2013/07/31/making-the-case-for-eating- fruit/)

Also, I don't eat huge amounts of sweet fruits. Avocados, cucumbers, and squash are fruits too.

<comment><USER3> If it works for you, great.

</comment></comment></comment></comment><comment><USER4> In the article, they mention that RMR (resting metabolic rate) goes down when your weight goes down, but they don't really explain why, or how crash diets affect your RMR. RMR calories are used for basic movement, body heat, keeping your brain and organs working, etc.

If there's less of you (weight wise), there's less of you to maintain. You carry less when you walk, etc. Also, different types of body (bone, organ, muscle, fat) have different requirements. Muscles and organs take a lot of calories to keep going, and rebuild.

A lot of people when they diet, they lose both fat and muscle. The body will break down muscles as energy too, as well as your fat. This is usually because you're eating less than you expend, calorie wise, and you're probably not strength training.

Lifting weights is a great way to increase your RMR. It takes calories to build and repair muscles after working out, and those bigger muscles also take more calories to maintain. It also forces your body to build up something, preventing the saggy skin you may see on those TV diet shows.

Overall, if you work on building up your muscle, your metabolism will slow less, or maybe even increase, depending on how much you get into it.

<comment><USER5> I'd be more specific and say that you can far more easily increase your body's wastefulness by strengthening your legs rather than your arms, because a given increase in muscle should be smaller percentage-wise. And lunges don't take any equipment (you've already got resistance, moreso if you're overweight.)

<comment><USER6> .. although please folks, take the care (and pay a trainer, preferably) to teach you the techniques to do it safely so that you don't hurt your knees / back, which you can much less easily fix.

</comment></comment></comment><comment><USER7> I didn't see anything in the article that showed that people lost weight without eating less then they burn. This is still as far as I know the only way to lose weight. What's stated in the article is that different people seem to manage to maintain doing so for longer with different strategies. They give as example people who are motivated enough to work through multiple plans and stratetegies over many years and continue to do so even when the weight loss is slow.

It makes me conclude that to sustain weight loss you simply need to be very motivated, have good discispline and great patience.

It seems they adapted strategies based on people's motivation. The girl who found logging all her meals too tedious instead adopted a more exercise strategy, etc. Nothing seems related to identifying which nutrients or foods are better processed, etc, for each individual.

I'm sure there could be genetic, social, or chemical related causes to obesity, but I'm not seeing this article say that we identified any of those. It seems to all be about simply getting your act together and sticking with it.

I suspect most people who gain back the weight lost do not do so while maintening the diet they used to lose it. The article makes it sound like so, but doesn't actually says so.

<comment><USER8> I think the problem with the "calories in < calories out" idea is that while it's not necessarily untrue, it's too simplistic to be useful. It's a bit like saying, well, if you'd just stop putting cocaine up your nose, you wouldn't be a drug addict anymore.

<comment><USER9> And it also ignores the very difficult problem of counting "calories out". There are so many factors that affect calories out.

<comment><USER10> The ONLY reliable way to count calories out is to wear a mask that measures carbon dioxide exhaled - this is what you see them doing in labs with a volunteer on a treadmill or stationary bike hooked up to what looks like breathing apparatus.

This obviously isn't practical for every day use but the data has been used to approximate calories out correlated with heart rate if body weight is known - several sports watches such as Suunto use this approach.

<comment><USER9> You also need to collect all sweat, urine, and feces and figure out a way to exactly measure the undigested calories found in it.

So I would say the mask method is the BEST way, but not necessarily accurate.

</comment></comment></comment></comment></comment><comment><USER11> How I changed my body shape in 7 months: [https://00f.net/2017/03/07/weight- loss/](https://00f.net/2017/03/07/weight-loss/)

</comment><comment><USER12> "Mommy? Why are healthcare cost so high?" "Obviously Virginia, it's Uncle Sam and the healthcare industrial complex. It has NOTHING to do with our diets, lifestyle, etc. You have a Good given right to over indulge..."

Per the article: "The vast majority of American adults are overweight; nearly 40% are clinically obese. And doctors now know that excess body fat dramatically increases the risk of serious health problems, including Type 2 diabetes, heart disease, depression, respiratory problems, major cancers and even fertility problems. A 2017 study found that obesity now drives more early preventable deaths in the U.S. than smoking."

<comment><USER13> > A 2017 study found that obesity now drives more early preventable deaths in > the U.S. than smoking.

Well, smoking has declined a lot in the past few decades. So it's not surprising that something else has taken the lead in causing preventable death.

<comment><USER14> This is actually true and I have no clue why you were downvoted for it.

>The percentage of U.S. adults who smoke cigarettes declined from 20.9 percent in 2005 to 16.8 percent in 2014. Cigarette smoking was significantly lower in 2014 (16.8 percent) than in 2013 (17.8 percent)

[https://en.m.wikipedia.org/wiki/Prevalence_of_tobacco_consum...](https://en.m.wikipedia.org/wiki/Prevalence_of_tobacco_consumption)

</comment></comment></comment><comment><USER15> I like to stick with the first law of thermodynamics. It's worked very well my entire life.

<comment><USER16> Human biology is complex. Reducing it to simple thermodynamics completely ignores factors like metabolism, psychology and microbiome.

Eating nutrient deficient/extremely tasty sweets (or junk food) has very different effects than eating nutrient dense/bland red meat or vegetables with the same calories.

Reductionism is counterproductive in this case. You should re-read the article. It describes a number of ways where human metabolism responds to calories and/or body weight in unexpected ways (hence the biology is 'complex').

<comment><USER17> The difference between junkfood and healthy food is the "calorie density". A big mac is 500kcal, but you are still hungry after eating one.

<comment><USER18> That's not the whole story.

Do this experiment: drink/eat fat, 38% sweet cream is probably the friendliest to the uninitiated, but butter, olive oil, coconut oil would also work.

It doesn't get more dense than pure fat (and only about 2.5 as much as 38%fat sweet cream), and you will NOT be hungry afterwards.</comment></comment></comment></comment>


John W. Backus - inventor of FORTRAN, BNF (12/03/24  - 03/17/07) - <AUTHOR> http://en.wikipedia.org/wiki/John_Backus <comment><AUTHOR> It was reported in the press today [0] that John Backus passes away last week. M77 was one of the first languages I had a crack at calculating latitudes & longitudes for some mapping project. BNF & it's extended form , EBNF is a foundation in language design still used today.

Reference

[0] New York Times, Online, STEVE LOHR, 'John W. Backus, 82, Fortran Developer, Dies':

[http://www.nytimes.com/2007/03/20/business/20backus.html?_r=1&hp;&oref;=slogin](http://www.nytimes.com/2007/03/20/business/20backus.html?_r=1&hp&oref=slogin)

[Accessed 20 March, 2007]

[1] BNF, John Backus & Peter Naur, 'Backus Naur Form':

<http://en.wikipedia.org/wiki/Extended_Backus-Naur_form>

[Accessed 20 March, 2007]

[2] EBNF, Wirth 'extended Backus Naur Form':

<http://en.wikipedia.org/wiki/Extended_Backus-Naur_form>

[Accessed 20 March, 2007]

</comment><comment><USER2> dupe: <http://news.ycombinator.com/comments?id=5253>

<comment><AUTHOR> Yeah wasn't there as I was writing the post up & checking the links. But I don't consider this a "dupe". It would be if it pointed to the same article (NYT), but I considered the NYT login to kick in, thus making the link worthless in a few days. Hence the reference to the Wikipedia article.

Added links should a) inform and b) be visible for long periods. So I considered the WIkipedia link more _reliable_. It's something to consider, "Is one article on the same topic" more definitive than another? Does it matter if there is more information on one topic? Is a first report of the a 'time dependent' piece of information the best to post?</comment></comment>


Quantifying the Clickbait and Linkbait in BuzzFeed Article Titles - <AUTHOR> http://minimaxir.com/2015/01/linkbait/

<comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=8893448](https://news.ycombinator.com/item?id=8893448)

</comment><comment><USER3> I wanted to do this, but didn't have time. Thanks for the study this will be helpful! Nice use of R, it's my favorite after Python :)</comment>


Previewing Meteor's new rendering engine: reactive sortable lists - <AUTHOR> http://www.meteor.com/blog/2013/09/13/previewing-meteors-new-rendering-engine-reactive-sortable-lists

<comment><USER2> It appears as if rank is stored as a float. The rank can quickly get to be a very, very small number. It seems at some point, float precision might be an issue and/or length of the rank key. Have you run into this and/or do you have solutions?

Brandon Keepers wrote about trying this idea in Ruby [http://opensoul.org/blog/archives/2011/09/06/sortable- lists-...](http://opensoul.org/blog/archives/2011/09/06/sortable-lists-in-key- value-data-stores/) and ran into a float precision issue (see comment).

</comment><comment><USER3> Maybe I'm using outdated terminology, but why is this called a "rendering engine?" When I think of rendering engines, I think of things that generate pixels.

<comment><USER4> Rendering is just a form of translation that takes a high-level input and translates that into a frame of pixels. Any UI runtime therefore qualifies as a rendering engine...

<comment><USER5> Notepad.exe: a rendering engine for text files.

<comment><USER4> Acrobat is a PDF renderer, ghost view is a postscript renderer, Chrome includes an HTML renderer. Notepad renders text, Word renders word documents. They are also editors, but that is not relevant to the definition.

</comment></comment></comment></comment><comment><USER6> Back in an earlier version of Meteor I actually implemented drag-sortable and drag-drop lists with jQuery UI and Reactive data sources and it wasn't very difficult. I can't post the source - but there is a simplified demo here: [http://grass-freight.meteor.com/](http://grass-freight.meteor.com/)</comment>


Ask HN: How is teaching Visual Basic limiting? - <AUTHOR>

English teenagers are taught Visual Basic disguised as general event-driven programming. This limits their view of what event-driven programming is. But, how much? Is it really an issue?<p>http://www.edexcel.com/migrationdocuments/BTEC%20Nationals%20from%202010/Unit-14-Event-Driven-Programming.pdf <comment><USER2> And it also likely introduces them to using much more robust editing tools that just a text editor.

You can learn programming badly in any language or environment. So it depends far more on the curriculum and the teacher than the environment itself.

</comment><comment><USER3> Visual Basic is an easy and fun introduction to programming and there is nothing limiting about it.</comment>


DIY heavy water reactor - <AUTHOR> https://groups.google.com/forum/m/#!topic/can.general/cfAh7ldu3vk <comment><USER2> I don't believe him.

1kg of uranium spread into 10x ingots, suspended in a pool of heavy water ... I don't think this is sufficient to actually maintain criticality, even if he had a startup neutron source. There isn't nearly enough mass. A commonly cited figure for a CANDU reactor is ~8 kg, in a well-designed geometry, with a properly designed reflector in addition to the moderator.

He used metallic uranium instead of uranium oxide. Therefore, I don't think he had a sufficient neutron source to get the chain reaction started. For example, modern power reactors rely on (alpha + oxygen -> neon + neutron) reaction, with the alpha decay of the fuel as the alpha source.

"Should the reactor run away" Water-moderated reactors have a negative temperature coefficient of reactivity. So if he actually achieved criticality and generated enough power to produce heat, the reactor would be self- regulating.

<comment><USER3> Ditto - there's quite a bit here that suggests it's a fabrication, as had someone done this they'd want to talk about the gritty technical challenges they overcame, not gloss over them.

That said, if you want to play nuclear physicist, there are plenty of fun home projects. Farnsworth fusors can be built cheaply by a dedicated amateur, and you can build your own particle accelerator (cyclotron or synchrotron, take your pick) if the fancy takes you. Easier yet is making a cloud or bubble chamber, and you can use all sorts as a particle source.

</comment></comment><comment><USER4> The bullshit-o-meter is off the scale on this one. So this individual left centrifuges for two years separating heavy water, and went around the countryside, geiger counter on hand, picking up uranium ore?

And then, after the experiment was done, he just filled the room (which had to be built by himself, no contractors here) with concrete, casually picked up with a truck and dumped far offshore?

That's something you would do in Minecraft, not real life.

<comment><USER5> Regarding heavy water separation, the BS article says:

> All the water in the world contains light water H20, heavy water D20 and > very heavy water T20. ... The thing we need to know is that in every 5 > liters of tap water there is 1 cc (cubic centimeter) of heavy water. Now > heavy water is 17% heavier that light water. ..

That leaves out HDO, or semi-heavy water. Quoting now from [https://en.wikipedia.org/wiki/Heavy_water#Semiheavy_water](https://en.wikipedia.org/wiki/Heavy_water#Semiheavy_water):

> In normal water, about 1 molecule in 3,200 is HDO (one hydrogen in 6,400 is > in the form of D), and heavy water molecules (D2O) only occur in a > proportion of about 1 molecule in 41 million (i.e. one in 6,4002). Thus > semiheavy water molecules are far more common than "pure" (homoisotopic) > heavy water molecules.

The 1:5000 ratio (1cc in 5L) is much closer to the 1:3200 ratio for semi-heavy water, not the 1:41 million for D20.

The BS article also says:

> [Heavy water] is considered a munition so you can not just go and and buy > some without all kinds of legal documentation and permits

United Nuclear says there are no restriction. See [http://unitednuclear.com/index.php?main_page=product_info&cP...](http://unitednuclear.com/index.php?main_page=product_info&cPath=16_17_69&products_id=135&zenid=54e1ed0c477416c600a4dd7dba62c247) . Also, a kilo costs $725.

Sigma-Aldrich sells it at [http://www.sigmaaldrich.com/catalog/product/aldrich/151882?l...](http://www.sigmaaldrich.com/catalog/product/aldrich/151882?lang=en&region=US) . 4 kilos @ 99+% pure costs about $4,000.

<comment><USER6> I was thinking the same. I remember looking when considering building a Fusor and found that deuterium gas was relatively affordable. Why not simply react high purity deuterium gas and oxygen to form the heavy water? Or just buy heavy water directly as you have noted.

</comment></comment></comment><comment><USER7> Wasn't there a graduate student who wrote thesis about building an atomic bomb from readily available resources. I don't remember if his work was ever published, but I certainly remember reading about this.

Update: [https://en.m.wikipedia.org/wiki/John_Aristotle_Phillips](https://en.m.wikipedia.org/wiki/John_Aristotle_Phillips)

</comment><comment><USER8> If this is phony, then it shouldn't be on the front page of HN. And if it's true, it should not be on the front page of HN. Humanity as a whole doesn't need more people building reactors in their garage... Svetlana Alexievich's book "Voices of Chernobyl" is an excellent explanation why.

</comment><comment><USER9> This is really impressive and shows that the basics of nuclear technology aren't all that complicated in small scale. Just like fire requires a spark and oxygen, a fission reaction really only requires a fissionable metal and an appropriate moderator.

</comment><comment><USER10> Interestingly, given the right conditions, chain reactions can take place with very little effort. There is one known example of a natural nuclear reactor that was in operation for a few hundred thousand years (2 billion years ago). [https://en.wikipedia.org/wiki/Natural_nuclear_fission_reacto...](https://en.wikipedia.org/wiki/Natural_nuclear_fission_reactor)

</comment><comment><USER11> This just has to be a hoax. It's too conveniently packaged to be true. Bad spelling and grammar make it less believable.

</comment><comment><USER12> Horrifying. Hope this is a joke.

<comment><USER13> This feels more like "I read the Wikipedia article about CANDU and wrote a story from it."

<comment><USER14> That's what I was thinking. The author glosses over years and years worth of tricky engineering problems, particularly regarding heavy water production.

</comment></comment></comment><comment><USER15> Sheldon? Is that you?</comment>


Vector based UI design tool that generates ObjC - <AUTHOR> http://www.paintcodeapp.com/ PaintCode is a simple vector drawing app that instantly generates resolution-independent Objective-C drawing code for both Mac OS X and iOS.<p>You no longer have to tweak and recompile your drawing code over and over again to achieve the desired result. <comment><USER2> Really cool. This reminds me of Bret Victor's talk where he stresses the importance of seeing the effect of your code immediately (<http://vimeo.com/36579366>).

It's not clear from the description but it would be great if it could immediately render whatever Core Graphics code I was writing, as I was writing it, much like this in-development tool (<http://www.youtube.com/watch?v=JupqhcT4ONY>) which popped up in my Twitter stream a couple days ago.

<comment><AUTHOR> What Bret Victor showed in his talk was quite amazing. It really opens up one's mind to what all is possible and what can be changed.

The Core Graphics video is interesting. Live rendering like that can help developers see what they are actually coding. The whole compile and test cycle just breaks the chain of thought which goes on while coding.

</comment></comment><comment><USER3> I love the execution of this app, but I disagree with the underlying idea for most cases.

Drawing your UI is never ever going to be as cheap as loading a converted PNG (which Apple's modified pngcrush converts for you). I think a lot of devs have the draw/vector vs. precomposed bitmap tradeoff the wrong way round. Drawing all of your gradated UIButtons with CoreGraphics methods is a false economy compared to just loading a stretchable PNG. Almost all of Apple's UI system imagery is bitmap based, and for a good reason.

<comment><USER4> iOS devices can render Infinity Blade smoothly. I don't think few shapes (probably automatically cached as a bitmap) are going to be an issue.

And I don't get why Apple bothers with CgBi PNGs, since endian swap on ARM is a single cycle instruction, and it's probably free anyway while moving the bitmap to the GPU memory.

<comment><USER5> I don't think the Core Graphics vector stuff is in any way GPU accelerated, so the Infinity Blade comparison isn't appropriate.

The SoCs in iOS devices are shared-memory systems, so system memory _is_ GPU memory.[1] But you're right, the endian swap could easily be done in the PNG decoder.

[1] I have to admit I'm not sure it's implemented as zero-copy through to userspace, though. The normal, 20-year-old GL texture APIs can certainly only be implemented via copying, and I'm not sure if OpenGL ES has anything like mappable texture pixel buffers. It would make a lot of sense though, considering how memory-starved embedded systems are.

</comment></comment></comment><comment><USER6> So basically we stop using graphics and start using code (UIViews) to draw the images. Does it do caching? A quick search for cache didn't turn up anything. If we have learned anything from using UITableViews with custom UITableViewCells then it is that drawing is expensive.

The underlying idea of generating your images "programmatically" is not a bad one to start but performance wise, if the image (View) is going to be static, rendering into a bitmap and using that subsequently is the more performant solution.

Maybe the tool we are looking for is not one that generates UIViews but let's us just get the images correctly name and at the right resolutions with a click? Like automatic slicing and exporting at predefined resolutions with predefined naming schemes. I just think this would better be done off the device.

For interactive views (drag, move, ...), where redrawing is necessary, this could be a valuable tool -- if it can do that.

<comment><USER7> When a uiview renders, it does so to a layer. Calayer caches its bitmap content. So, moving something on screen doesn't require redrawing. Most implicitly animated properties (opacity, transforms, etc) won't require a redraw. As mentioned below, it's fairly trivial to save a context to a png file if you must.

</comment></comment><comment><USER8> This highlights one of the main problems with selling dev tools on the App store - it looks amazing but there's no way I'm shelling out $80 without trying it first.

<comment><USER9> It's how Apple has commoditized mobile apps and is now trying the same on the desktop.

<comment><USER10> Not sure what you are accusing Apple of ... This developer does have a choice you know. He could have made a trial available on his own site. Apple does not disallow that.

<comment><USER9> Choice is a funny word.

When all the customers are going to the supermarket to buy their fresh veg, you can set up your own puny little stall in the alley, but guess what, no one's buying _because they can't even find you_.

Apple does not allow you to sell iOS apps outside its app store, and there's every reason to believe they are pushing the desktop market in the same direction. Why wouldn't they?

<comment><USER10> There is always a choice. Currently on the homepage of Hacker News is a reference to <http://caffeinatedapp.com/>

Under the big Available on the Mac App Store button it says:

"Try before you buy!. 15 day trial version also available."

(You did see that this thread is about a _Mac_ app right? Not about an iOS app. I do agree that the situation there is very different.)

</comment></comment></comment></comment></comment><comment><USER11> Seems very cool, but as far as I can tell there's no trial version? $80 seems a bit much to lay out before you even find out if the thing works.

<comment><AUTHOR> True. A trial version would be very nice.

One thing I would like to see is being able to export these vector graphics to other formats.

<comment><USER11> You may want to check out Opacity (<http://likethought.com/opacity/>) which can export to ObjC, HTML5 Canvas, SVG and PNG/Jpeg etc.

<comment><USER12> Yes i was surprised too that no one mentioned Opacity, its has been there fro so long and so exactly what this soft do.

but lets hope this one gets updated often.

</comment></comment></comment></comment><comment><AUTHOR> You no longer have to tweak and recompile the drawing code...

 _Edit_

PaintCode is a simple vector drawing app that instantly generates resolution- independent Objective-C drawing code for both Mac OS X and iOS.

You no longer have to tweak and recompile your drawing code over and over again to achieve the desired result.

</comment><comment><USER13> I made an open source project last year called Mockdown that does the opposite of PaintCode. It takes declarative design code and converts it to PNGs so they can be used in iOS apps. The original idea was to do mockups but it actually turned out to be more interesting as an open source design tool.

Here's a short 5 minute walkthrough in designing the Mail app in Mockdown:

<http://vimeo.com/23869680>

</comment><comment><USER14> WMF anyone?

Windows MetaFile contain(ed) serialized GDI graphic calls to generate the picture in a resolution independent way, while still working as a vector file format that other application could parse.

Generating static ObjC seems like a dumb idea except in very specific cases.

<comment><USER15> Well.... WMF was a great example of the difference between theory and practice. Not really resolution or even device independent.

<comment><USER16> Care to elaborate? Disclaimer: I've written [EW]MF parser + rasterizer from scratch.

I don't see how they're not resolution and/or device independent.

</comment></comment></comment><comment><AUTHOR> Craig Hockenberry (<http://twitter.com/chockenberry>) - Got an email from PaintCode's support: a demo and tutorials are coming. Replied with some friendly advice about releasing products…

</comment><comment><USER17> This, while cool, just seems like the wrong way to go about things. I like this solution or something like it: <https://github.com/mindbrix/UIImage-PDF>

</comment><comment><AUTHOR> Updates:

Just got an email from their team

Trial version of PaintCode

You can now download a limited trial version of PaintCode at <http://paintcodeapp.com/trial.html>

Video guides

We've prepared 4 short video guides demonstrating PaintCode in action. These guides show various basic drawing techniques at: <http://paintcodeapp.com/examples.html>

Examples

You can also find examples of PaintCode documents at the same page. Some of the examples include simple Xcode projects. These projects utilize the drawing code generated by PaintCode.

</comment><comment><USER18> Seems like a nice tool at a high-but-fair price point. I look forward to seeing some deeper reviews, because the Illustrator trial I used to design my app icon expired a long, long time ago. :)

</comment><comment><USER19> I bought the app and just came by to drop my 2 cents.

The good: It's great. I've been looking for something like that for a while. I wish XCode could do that. If you are a serious iOS developer you will love this tool. Very useful.

The bad: Some of the code cannot be easily used, specially if you need to manipulate positions in runtime. It should use relative positions, where 0 is "somewhere" within the object. The code generated may cause some UIViews to blur, sometimes you need to round x/y.

The ugly: The price is not aligned with apps at the same level of complexity.

Buy it.

</comment><comment><USER20> The idea is cool, but I must say the app itself gives me the same feeling I get from Microsofts Expression Blend app. Or any Silverlight app for that matter.

Non-native UI controls everywhere. :-/

<comment><USER21> I agree, the sample controls shown in the screenshots look very windows-y

</comment></comment><comment><USER22> Other than dynamically-related colors, is this much different from designing in Illustrator and exporting to PDF, which I understand is well-supported in iOS and OS X?

<comment><USER23> Think 'Save As NSView Code' for Illustrator.

<comment><USER24> Your PDF is going to be resolution independent and end up being used in much the same way as the code, so I'm to sure it's a significant difference.

I do like the automated color derivation though.

<comment><USER25> Add a parameter or two to the generated code, then you'll see the difference,

<comment><USER24> Good point, although if you knew what you were doing with PDF ( which is, after all, itself written in a programming language... )

<comment><USER25> True, but that is clearly impractical within a cocoa program since the PDF handling methods don't provide a mechanism for passing in parameters.

</comment></comment></comment></comment></comment></comment><comment><USER26> What would also be great would be a way to import Illustrator files. Because I don't see how designers will prefer to work in that environment.

</comment><comment><USER27> Sometimes ideas are just floating around, aren't they? I was thinking of very similar things lately as well. Obviously this application must be under development for quite a while already.

One thing that I'm not totally sold on it that fact that it generates code though. It is not going to be the running application which you interactively tweak. Because that is what Bret was showing in his talk. And that is also what you would be doing in Smalltalk. I'm not sure this is as 'immediately connective' (to use a variant of Bret's language) as it seems.

Another approach to go about this would be to store the 'drawing' in a data structure and have a special view that takes it and puts it into an image (or on screen immediately). That would also open possibilities for caching, something that likely would be make sense, as other commenters have mentioned as well. Such an approach would come dangerously close to implementing/reinventing SVG, though. Another benefit of such a data structure would be that it could have some simple, textual representation. JSON maybe? Even XML would do. And that would greatly help with version control and diffing.

I don't see why such a feature could not be added to this app.

Amazing application.

<comment><USER28> _Sometimes ideas are just floating around, aren't they?_

I think Opacity [1] was the first program with this feature (added in 2009 [2]).

1\. <http://likethought.com/opacity/>

2\. <http://daringfireball.net/linked/2009/09/22/opacity>

<comment><USER24> Opacity was so poorly executed as to make it pointless.

<http://loewald.com/blog/?p=1612>

<comment><USER29> Opacity has problems and quirks, but I enjoy it a lot, actually.

Its concepts of factories + variables more it quite powerful indeed.

</comment></comment></comment></comment><comment><USER30> You could just create you assets in Illustrator/Vector and you would be set for any future resolution increases. However the PNGs would still increase your bundle size.

What I'm curious about, maybe someone here has the answer is if there would be a significant performance gain from using Core Graphics over just loading a PNG?

<comment><USER31> On the Apple developer web site you can watch the WWDC videos, there is one on graphics and animation that talks about just that.

Conventional wisdom, especially for small images, it is much more efficient to draw them with Core Graphics than use a image, more so if there is transparency in the image.

This will even be true for non-ios systems. Microsoft has said for years, that generating a 16x16 image is faster than getting it from disk (depending on complexity and disk speeds).

Plus, code does tend to be more compact (again, within reason), so it is less that has to be loaded when your application starts.

</comment></comment><comment><USER32> I hope this idea is not patented, because I am developing a similar app.

<comment><USER33> Prior art (also mentioned elsewhere in the comments): <http://likethought.com/opacity/>

</comment></comment><comment><USER34> This is awesome. I've been waiting for this, and it was on my list of projects to build. However, it looks like the execution is really well done. I would love to see a trial version though.

</comment><comment><USER35> I would pay a lot of money for something like this that worked across platforms (Linux, Windows, OSX).

<comment><USER36> inkscape -> svg + cairo to write svg to image buffer.

</comment></comment><comment><USER37> I've been waiting for someone to make something like this for OpenGL like, forever. Still no love :-(

</comment><comment><USER38> So cool, cant wait to test it out

</comment><comment><USER39> Kind of ironic that the website is glitchy on iOS Safari.

<comment><USER40> I was just thinking that myself. I tried to zoom in to read text and the navigation got in the way.</comment></comment>