Make Your App Icons Boring - <AUTHOR> http://lookatpete.com/make-your-app-icons-boring

<comment><USER3> Icons currently on my iphone which I would confuse with Sparrow

LinkedIn

Twitter

Google Voice

imo

Safari

App Store

Voice Memos

As much as the author would _like_ Cinematic to be a utility its not. Sparrow is used every day it deserves to have a spot on the app launcher.

This seems like a product owner trying to project his own ideal concept of his app _"Like Sparrow, I hope that Cinematic will become a utility for my users,"_

No its not, you're answering the wrong question if you're asking "What do I want my Icon to convey", instead of "What does my Icon Do? How can I make that better?" Because the answer should be "Make it easy for my users to find and launch my app". Solve _that_ problem by making a distinct icon that can be easily found when needed. Fandango's icon is perfect its the only one I have with a white field. When I want to find movie times, I can always find it easily even though it lives in a folder.

<comment><USER4> Did you seriously just point out all of the blue icons you could find? Regardless of the fact that they would seriously be confused with Sparrow's icon?

<comment><USER3> No I actually skipped a bunch, Rdio, Skype, Get Glue, Facebook, Stocks, Weather, Chase

I went with ones in the similar color palette with a white icon

</comment></comment></comment><comment><USER5> I've gotta say, apps that utilize the same diagonal-line structure as native iOS apps are confusing, even more when they use the same blue that everyone else does ([http://pxldot.com/post/26373071943/apples-icon-ecosystem- or-...](http://pxldot.com/post/26373071943/apples-icon-ecosystem-or-carrying- the-quality-all-the)).

I understand the sentiment and I appreciate that we're trying to make things more streamlined, but the impactful distinctions between icons across each screen increases my use of the service because I'm not glancing over it trying to find it. I like being able to visually separate what was on my phone when I bought it and what I've downloaded.

While a lot of icons are outright terrible in either interpretation or general aesthetics, I'd rather they be unique than lost in a sea of all of the others that look just like it.

<comment><USER6> That's what I was thinking. I think I would prefer to have good looking icons with their own identity. Having more apps using the same diagonal-line with gradient background will make it all look bland.

</comment></comment><comment><USER7> This feels like cargo culting. You're copying Sparrow's icon that exists for an app people use every day. I think you're also associating the icon with the app polish itself.

Stick with the old icon. It's much better for an app that is never going to be on someone's iPhone dock and needs to stand out from the 100 other apps people have installed on their phone.

</comment><comment><USER8> I think this is nice in theory, but it's naive. From a developer's point of view, an icon is an ad that causes you to click and read the description in the app store. I don't like it, but those are the facts.

The author argues that a movie app icon can be designed in two ways:

1\. To stand out against other movie apps in the app store

2\. To stand out against Mail and Safari on a device home screen.

The fact is, developers are incentivized to do #1 and incentivized against #2. It would be nice to live in a world where that was reversed, but as long as developers are competing for eyeballs in an app store against other apps in a search query that will simply not be the world in which we live.

I've run A/B testing on dozens of app icons. #1 becomes optimal as your app becomes more niche, #2 becomes more optimal as the niche becomes increasingly competitive. Compare and contrast the icons for "cinema" as for "sign language" to watch this battle play out. Cinema you get brand names, abstract art. Sign language you get a hand sign, or little kids (in the case of baby sign).

<comment><AUTHOR> The premise of my post is that your first assertion ("an icon is an ad") is not a fact, but a choice. If you search for "email" in the App Store, would Sparrow jump out at you? No, but they've chosen not to pursue that "advertising" strategy. Their growth is based on fully delighting their users with the product, and an icon which, IMO, looks like it always belonged on my phone.

Sparrow's growth comes from happy customers (and some traditional advertising), not an icon that looks like an ad.

I'm curious how you A/B test app icons...Do you switch from one version to the next and compare downloads?

Also, can you clarify what you mean by "developers are...incentivized against #2"?

</comment></comment><comment><USER9> I agree that there is a difference between designing for utility versus designing for entertainment but respectfully, the new icon looks like bloatware.

</comment><comment><USER10> Respectfully, I like the old one better.

<comment><USER11> Seconded. The new one looks like the pink car. The old one looks kinda boring but the colors at the edges make it easily identifiable around a dozen other icons.

</comment></comment><comment><USER12> OK so you've posted some of your ideas on icon design, now provide some robust evidence that your ideas are valid. Otherwise, this is merely speculation.

</comment><comment><USER13> I disagree in one sense: Making it too boring will make the user spend time trying to find it. iOS/Android suffers from icon overload.

</comment><comment><USER14> I think the problem with this concept is your premise is based around functionality while your reasoning is based around purchasing. Frankly I almost never think about the app icon once purchased, it's like reading names in books. I almost never know how to pronounce characters until I have to say them aloud, then for the life of me I have no idea how they sound. Case in point: (until the movie came out) how you pronounced "Hermione" (weird example I know). Back to the point, the icon itself gets it recognized for purchase…making it more harmonious with your app experience once downloaded is an ancillary benefit at best?

<comment><USER15> Regarding names in books, I find that I often learn to recognize names by the vague shape of the composing characters, and am unaware even of the exact _spelling_ of the name.

</comment></comment><comment><USER16> I'm not a designer; but I feel that mistaking good taste, i.e. the expensive black luxury car on the right, with 'boring' just isn't accurate.

<comment><USER17> Exactly. While the author chose a <blink> example to make his point, a (near) stock Honda S2000 [0] can be just as classy as a Maserati GranTurismo.

[0] <http://i22.servimg.com/u/f22/11/02/45/28/9610-210.jpg> [1] [http://farm5.staticflickr.com/4132/4950947259_b9c8208ddf_z.j...](http://farm5.staticflickr.com/4132/4950947259_b9c8208ddf_z.jpg)

</comment></comment><comment><USER18> Everything doesn't have to match exactly all the time. Thats not the definition of minimalism nor even good design.

Copy the thematic elements that work for you, and create new ones that make you stand out.

</comment><comment><USER19> If you want to go the way you preach, you need to simplify your new icon much more. Lose some of the details - too much of it now with the film strip end and the internal part of the film roll. Losing the film strip end and internal part altoghether makes it not related to a film - more of a rotary dial - <USER2> then again in real life size at a quick glance you would not relate to film or movies with your new icon anyway. May be a film spool with not rounded but triangular angles, a dotted edges filmstrip or a camera icon.

</comment><comment><USER20> I think your argument is based on solid GUI design principles; for example, the continuum from abstract to realistic in icon design.

As you asked for feedback on your icon redesign, I think it could be easily be mistaken for a rotary dial phone, on first glance. Perhaps something that looks more like a film projector would avoid any ambiguity...

</comment><comment><USER21> The old icon looks much better. Until I read the paragraph preceding it, I actually assumed the left was the new icon and the right was the old, because the right is much brighter and more annoying. The left feels more subdued and like something I wouldn't mind having on my home screen.

</comment><comment><USER22> I like the look of the old icon better, but at a glance it's hard to tell what the app is for. I'd say keep the old icon, but replace the C with a film reel like in the new icon. Then it stands out enough to find it in a folder (because that app is probably not going in many docks).

</comment><comment><USER23> Off-topic, but I need to complain about the YouTube app icon. It should be red and white and say YouTube on it. Instead, it's a brownish-green old-school TV. I miss it every time I go looking for it.

</comment><comment><USER24> Great points all around and the new icon looks fantastic. Your cinematic app looks very cool also. Where are you grabbing the showtimes data from?

</comment><comment><USER25> So what if everyone made generic icons? I think your idea only works because not everyone is doing it.

<comment><USER26> So what if everyone made generic replies to comments? I think your comment only works because not everyone is saying it.

;)

<comment><USER25> I can't tell if your wink means you are selflessly throwing yourself on the sword of self-deprecatingly irony to help me make my point, or if you actually believe what you are saying.

<comment><USER26> Guess a wink is not enough sometimes, was trying to re-enforce your point! Agree with you entirely.

<comment><USER25> I'm not the sharpest tool in the shed ;)

</comment></comment></comment></comment></comment><comment><USER27> Clean design can be just as flashy. The new one stands out...but not in a good way. It looks cheap.

I do agree that app icons should be respectful of the user, but some users demand flashy!</comment>


How to do Basecamp-style subdomains in Rails - <AUTHOR> http://www.37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails <comment><USER2> Does anyone know of an equivalent solution in PHP? Since I use the KohanaPHP framework, I assume this could be done in one of the routing routing or pre_controller events.

EDIT: found a good approach at: [http://stackoverflow.com/questions/1180/how- to-make-subdomai...](http://stackoverflow.com/questions/1180/how-to-make- subdomain-user-accounts-in-a-webapp)

<comment><USER3> $_SERVER['HTTP_HOST']

Parse that to get the first part of it like in the example.</comment></comment>


The first fast radio burst that beats at a steady rhythm - <AUTHOR> https://www.vice.com/en_us/article/wxexwz/something-in-deep-space-is-sending-signals-to-earth-in-steady-16-day-cycles <comment><USER2> _You 're an interesting species, an interesting mix. You're capable of such beautiful dreams and such horrible nightmares. You feel so lost, so cut off, so alone, only you're not. See, in all our searching, the only thing we've found that makes the emptiness bearable is each other._

<comment><USER3> Small moves Ellie, small moves

</comment></comment><comment><USER4> Just to clear the air (or space), aliens are closer to the bottom of the probability list.

</comment><comment><USER5> [https://en.wikipedia.org/wiki/Pulsar](https://en.wikipedia.org/wiki/Pulsar)

</comment><comment><USER6> It is 500 million light years away. So whoever sent that (assuming it was a sentient being) is 500 million years old now....

</comment><comment><USER7> Another sensationalist headline from Vice.

This is the first known periodic fast radio burst source, and that's cool, but it's not sending signals "to Earth".

<comment><USER8> Yeah! Though the title got me to read the article out of interest, so it worked?

Scientists: due to alignment of unknown/ crazy factors, we can detect evenly spaced radio waves coming from a nearby galaxy.

Vice: aliens are sending us frequent messages :)</comment></comment>


The Rise of Opaque Intelligence - <AUTHOR> http://marginalrevolution.com/marginalrevolution/2015/02/opaque-intelligence.html

<comment><USER2> The algorithm works in mysterious ways.

In the example given UPS's Orion has very weakly god-like powers in that it can see a picture much bigger than the drivers its instructing.

What the drivers need is _faith_. It will be an interesting future indeed filled with this pantheon of tiny lesser gods with we humans choosing in which to place our faith.</comment>


The Unix Philosophy and a Fear of Pixels - <AUTHOR> http://prog21.dadgum.com/159.html <comment><USER2> The `find` command is not a very good example of Unix philosophy. <http://doc.cat-v.org/unix/find-history> provides an interesting snippet of its history, indicating that `find` and some other friends weren't designed by the research group of AT&T behind Unix.

> ... take a moment to consider how utterly anachronistic both of the above > solutions come across to non-believers in 2012

While this as the author admits isn't what he wants to talk about, I want to talk about it for a moment. Apart from `find` which is indeed archaic (few people seem to use its many built in features and pipe to simpler programs instead--e.g. preferring to pipe to xargs instead of using -exec), I'm struggling to find what's so old-fashioned about the grep example and what a modern, 2012 design should look like. Is it the '-v'? You can type '--invert- match' instead. Is the problem old-fashioned? I don't think so, I still occasionally pipe the results of find through grep -v and then on to something else. Is piping old-fashioned? Again, what's the 2012 version of these things?

While I don't really like comparing programming languages to spoken languages (much like comparing OS kernels to popcorn kernels), I always liked this quote since I read it:

"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them. Language, be it English or something else, is the only tool flexible enough to accomplish a sufficiently broad range of tasks." -- Bill Garrett

As for the "meat" of this post, well, we'll see how Light Table turns out. I'm not particularly excited about it but plenty of HNers are.

<comment><USER3> I don't like the way `find` is being criticized, both in the article and in your comment. I won't go into pointless bickering on why it's a wonderful tool and "my stuff is better than yours". Let's keep using the tool we're each comfortable with. But do I really need to point out that, once you go through the initial learning curve, `find` is probably (one of the, if not) the most powerful tool in the Unix toolbox? If Unix's shell power comes from piping commands for streams to flow through, I find that in the vast majority of the cases `find` is the best way to initiate this stream.

And the reason is that it's reliable (unlike `ls`) and isn't wasteful (unlike the most-misused-tool-of-all `cat`). I don't understand why similarly newbie- unfriendly tools (like `sed` or `awk` for instance) never get as much heat as `find` does from people unfamiliar with it. Is it because the name implies that it should be a simple tool?

As for what's wrong with the `ls ... | grep -v ...`. It can break in so many ways like for instance, if a filename contains a newline character. If you think that never happens, you're making the same mistake me and a thousand of newcomers before me made once and never repeated again.

As a rule of thumb, _never parse the output of ls_ (<http://mywiki.wooledge.org/ParsingLs>).

<comment><USER4> I think awk gets a pass because it's a programming language with a handy syntax for running small scripts. Find is in an awkward position of being not quite that general but still very complicated.

The solution to filenames with newlines in them is one garbage-safe script involving 'rm' and a stern email to whoever created the file. Containing complexity instead of letting it leak into every single script is a good thing.

<comment><USER5> > _I think awk gets a pass because it's a programming language with a handy > syntax for running small scripts_

Even more than that, awk's orientation towards filtering text lines made up of fields makes handling many little pipeline tasks amazingly simple. In combination with being a very nice little general-purpose programming language with good string support, awk is a no-brainer first stop for a lot of things.

[Other more recent programming languages generally have many more features, much better implementations etc, but nothing has improved or really even matched awk's smooth integration into the unix pipeline. Perl, for instance, although it's long tried to bill itself as a replacement for awk, and explicitly includes special features for such usage, can be significantly more awkward (er... :) for the sort of tiny little filters awk's really good at.]

</comment></comment></comment></comment><comment><USER6> I'm frankly, not converted by this uninspiring call to arms. If you'd like to convert me, offer more than just a "we're doing it wrong, this is the direction we should go".

Instead, offer me a graphical solution to the same problem you posed against the 'nix shell. It doesn't even have to work; a series of photoshopped images would be welcome.

Show me _something better_ , because that 'nix philosophy works very well, whereas its replacements don't (seriously, can anyone think of a way to come up with that list of files without resorting to a shell or programming your own solution?)

<comment><USER7> > Instead, offer me a graphical solution to the same problem

1\. open a folder

2\. Click the "File Type" column

3\. Drag to select all txt files

4\. Hold Ctrl, click to deselect the ignore_me.txt

<comment><USER8> I'm going to guess you are making a joke, esp. the ctrl click to deselect. I did not even read the rest of the article, once I got to the word visual, I did a quick scan for an example, none found, came here to see what others thought. Second read, maybe u are not making a joke? While not mentioned, how would u automate that?

<comment><USER9> Since the times when automation is not necessary greatly outnumber the times when it is, "how would u automate that?" is not exactly a knock-out blow to the pro-GUI position.

In other words, even for people like me who when asked, "how would u automate that?" would reply, "I'd write a shell script or some Emacs Lisp," it is IMHO often better to do it in a GUI when automation is not necessary. (No joking.)

<comment><USER10> >the times when automation is not necessary greatly outnumber the times when it is

That is only because most things that need automization have already been automatic. The advantage of cli is that when you need to automate something, the tools are already there, as apposed to needing to find a completly different set of tools, or manually do the same simple procedure a hundred times.

<comment><USER9> >That is only because most things that need automization have already been automatic.

That is not an effective response to my point that at any given time, the task I am doing probably does not need to be automated.

Yes, CLI has advantages. Some of its advocates however seems to be blind to some of its disadvantages.

</comment></comment></comment></comment></comment></comment><comment><USER11> Spoken and written languages are so inefficient and arcane, we all should switch to pointing and grunting to convey information.

<comment><USER12> one line to express what i have been grumbling all along while reading this article and facing that argument repeatedly...

</comment></comment><comment><USER13> For many people it's easier to understand complex relationships when they're represented in visual form. However, to represent logic in visual form becomes quite damn painful because when the complexity grows, so does the visual area occupied. When you actually have cross-referencing of objects of type X which inherit from Y and have a is-a relationship with Z which is a friend of K it really, really becomes a one huge mess.

While I could imagine such a system being used for very trivial programming tasks by "non-programmers", I find it very utopistic to even imagine that something as complex as even a primitive compiler could be writ.. described in such form with ease. The actual hard part is not to code it out(as opposed to sketch it out visually) but to manage the complexity by designing it in such a way that it makes sense and works as intended.

I really don't see how visual programming would be helpful with the actual act of designing or even understanding a complex software system with different types, constructs, patterns and their permutations. Perhaps it's just lack of imagination, I sure hope so.

<comment><USER14> It would have to be layered, like anything. You click on one node in the diagram, and it opens up to be another diagram with data flowing through it. It would be pretty hard to "describe" a primitive compiler in text too if you didn't have some form of subroutine. Also, you want to be able to hide certain relationships temporarily, just like in text you might fold a block of code, or simply ignore the friend declaration.

</comment></comment><comment><USER15> I have to say that the lack of a good "visual" programming language was what really held me back from learning to code when I was young. I tried to learn programming countless times and always got bored or frustrated because there seemed to be this huge gulf between what I'd be reading about (print "Hello, world!") and what I thought coding was (being able to create applications like those I actually used on a day to day process).

In the end, it was (of all things) Actionscript/Flash that ultimately gave me the visual feedback I needed to make real progress in learning to code. These days, I'd probably recommend something like Processing(.org) to a newcomer.

All this just to say: I'm sympathetic that someone wants a programming language that's more visual and that makes it easier to push pixels. I think it'd go a long way to help teaching programming at the very least.

</comment><comment><USER16> If there were a visual programming environment that was actually faster, simpler, and more productive to use than typing, fine, I'm sure we'd all use it. I don't understand what his argument is. There ISN'T such an environment, so why is he arguing against the current state-of-the-art (text)?

<comment><USER12> REBOL seems to be the eternal answer to that question...

<comment><USER17> And it's open-sourced now... <https://github.com/rebol/r3>

</comment></comment></comment><comment><USER18> Funny, that's how pretty much everyone else feels about visual programming.

Except the UNIX way of things runs the Internet, and visual programming tools run practically nothing of relevance at all.

</comment><comment><USER19> Meh... For my coding workflow, vim is the best tool out there. Eclipse/VStudio is completely useless in my world.

Side Note: pixels are not easy to parse, text is.

</comment><comment><USER20> I choose to avoid syntax highlighting. The first time I saw it was some years ago, and I remember thinking it was interesting that the editor actually "knew" what it was looking at. It actually understood the rules of the language and was able to use them to apply different colors.

However, I also decided at that point that it was not for me. The text already has a certain vibe to it so there's no need to add any enhancement via the computer. If anything, it tends to clash with the actual business of programming.

But that's just me, and I'm probably an outlier in this regard.

<comment><USER21> I'm not sure, but I think Rob Pike recently advocated against syntax highlighting, saying it was distracting, leading to focus on tiny parts instead of reading the program as an integrated whole. Surprisingly I agree with him. Syntax highlighting is probably a side effect of unbearable complexity. In Pike's context I guess he could avoid it, his culture and work run around small, elegant and expressive code.

<comment><USER22> It IS distracting, if all the default themes built into Sublime are any indication of how it's used now. Everything pops in conflicting colors that would make an interior designer scream in pain. But, it can also be used to make the parts you don't care about fade into the background, and better reveal the shape of the code you do. I prefer to purposely downplay keywords (blue) and comments (dark green), and make hard-coded numbers and strings obvious (red). All this on a black background with almost white text. A drastically reduced palate with plain colors.

</comment></comment></comment><comment><USER23> I think what the author is missing is that the command line offers the programmer a world into writing code that doesn't require humans to use. Another way of saying it is that there is a whole class of programs out there that you really DONT want to have a HCI (human Interface) for.

Do i really need all of that tooling when one simple line in my cron will suffice? Do I really need a huge text editor in order to find and replace words when one sed line will do?

It's a class and style of programming that forces us to be efficient so we can get onto other things.

</comment><comment><USER24> Ok, so I broadly agree with what the post says, and am pretty enthusiastic about it to boot, but my opinions have some nuances....

I spent about 3 years developing software systems graphically using Simulink. It was a horrible experience from an ergonomic perspective: There was far too much mousing, and it had a really bad impact on my wrists and hands.

On the other hand, I do have a very visual imagination, and I find the ability to view the system and logic that I am working on diagrammatically an enormous boon - to the point where I have thrown together crude dependency analysis tools to let me render dependency graphs with graphviz (to help navigate a hairy, undocumented legacy codebase).

So the key, to my mind, is having a set of graphical tools that enable the developer to visualise (and navigate) source documents in a range of ways, whilst keeping the underlying source as text, and the primary input tool as the keyboard.

This should encourage discoverability in the software tools that we use - which is the main bugbear that I have with Unix, (although I am beginning to appreciate it in other ways).

</comment><comment><USER25> What was that actually about?

<comment><USER26> And why is it on the front page??

<comment><USER27> Because people voted it up.

If you want a deeper answer you might want to clarify what you don't like about the post.

</comment></comment></comment><comment><USER28> Wow, the commenters here are really defensive about their text editors and CLI. Yes, they do rule the day and they do a damn good job at that. But aren't you at lest curious what else could be possible? Don't be so quick to shoot other ideas down, no-ones forcing you to move your cheese!

<comment><USER29> "But aren't you at lest curious what else could be possible?"

Well, I _was_ , but after all the attempts over the years my curiosity has been sated.

To the extent that you did not know this has been attempted many, many, many(, many, many, many, many...) times, well, that's a measure of how successful the idea has historically proved to be.

Perhaps I too would fall into the "it should all be more visual" local optima sink trap of opinion if I hadn't seen so, so very many tries at the idea.

Mind you, if you produce a working one that actually keeps all of its promises, I will hail your success. I will sing its praises all the harder precisely because I know how hard a problem it is. (Many of your users will take it for granted and think it was easy to build.) But I haven't seen one yet.

</comment></comment><comment><USER30> Code is best written as text because it is logic. Sometimes we can embed data in logic or use logic to create data, and then things can get a bit messy. Sometimes it can help to visualize the logic, e.g. with flowcharts, but I don't personally believe that it is useful to do things primarily this way.

The visual part of a UI is graphical data. For reasonably complex things it makes sense to edit graphical data in a graphical editor and to separate it from code.

It sounds a bit in the article like he's talking about funny esoteric 2D visual programming languages but I think he just wants a nice way to make GUIs and has concluded that HTML is reasonable for doing so.

I'd be interested in a graphical shell for an OS (Linux I guess) written purely in HTML and friends. You'd have completely seamless integration with the web.

</comment><comment><USER31>
        These days HTML is the most reasonable approach to anything involving
        fonts and images and interaction. It's not as beautifully direct as REBOL,
        and being trapped in a browser is somewhere between limiting and annoying,
        but the visual toolkit is there, and it's ubiquitous. (For the record, I
        would have solved the "list all the filenames..." problem by generating
        HTML, but firing up a browser to display the result is a heavy-handed
        solution.)

I know it's Microsoft-only, but I think XAML is an attempt to solve exactly this problem. It's a declarative UI description language, but without some of the legacy baggage of HTML.

<comment><USER32> The technique is not exactly Microsoft only. Using some sort of SGML to represent graphics seems pretty common.

I suspect that XAML is somewhat related to Adobe's MXML. Both seem pretty similar in concept to Mozilla's XUL, or even GLADE XML. Recent versions of HTML, with behavior defined in something like jQuery seem to be reaching for this kind of thing as well.

They all boil down to a representation of a tree in memory used to sort out what goes where on a screen.

Also, not all Text based UX is a command line. Russ Cox has an interesting if not exactly short demonstration of the ACME editor. <http://research.swtch.com/acme> Not all Text based UI's are command lines.

</comment></comment><comment><USER33> For an article like this, I do not think it is being pedantic to note that to "print a list of all the files with a txt extension in the current directory except for ignore_me.txt" you do not accomplish that by using the command "ls *.txt | grep -v ignore_me.txt". What if I have the file do_not_ignore_me.txt in that directory ?

Thus, I suppose my message is that Unix command line is even harder to properly use then he states. But in my opinion, the initial hurdles in learning it eventually pay off over time.

<comment><USER34> Or you just read about some features like advanced globbing.

With zsh I can do what he wants without even invoking something that's not a shell builtin.

        $ ~/temp/temp % ls
        1  10  2  3  4  5  6  7  8  9  ignore_me.txt
        $ ~/temp/temp % echo ^ignore_me.txt
        1 10 2 3 4 5 6 7 8 9
        $ ~/temp/temp %

</comment></comment><comment><USER35> I'm surprised no one has mentioned [LabView](<http://en.wikipedia.org/wiki/LabVIEW>), a visual programming environment used by many scientists to control data acquisition systems.

Although the "language" makes creation of functional user interfaces fairly simple, I find the system quite unwieldy as soon as program complexity increases to even a moderate amount.

</comment><comment><USER36> It's such a long blur of characters.... where are the pretty pictures? Maybe a few process-flow diagrams and an interactive UML concept piece? I only read blogs for the visuals.[1]

[1]: <http://www.homestarrunner.com/sbemail.html>

</comment><comment><USER21> Shell is very nice, but work like <http://xiki.org/> , and ideas about using dom as user-space (domus, catchy right?) graphical substrate lead me to agree with his underlying point.

</comment><comment><USER12> i like how the very example he uses is something that is a huge hassle to do in any visual UI as soon as the number of files in question is more than, say 300. partisan of visual programming have managed to make easy tasks trivial but i have yet to see a visual toolset that does not make slightly complex tasks tedious and difficult tasks impossible.

Just try porting any visual studio project to a different platform and see instead of a sed one liner to edit your makefile you need to open 72000 dialog to change the name of one header file.

<comment><USER4> Editing visual studio project files with text editing tools works just fine, they're pretty-printed XML.

<comment><USER12> yeah right....xml files with mysteriously generated id attribute fields which may or may not be relevant and in a non documented format...

</comment></comment></comment><comment><USER37> Ok, so you show the result in a visual form. How do I then pipe that into e.g. 'parallel du' to get the file sizes?

</comment><comment><USER38> Right tool for the right job. If I want to select all the pictures of my niece out of a folder of bad snapshopts, then a gui is a nice tool. The command terminal just can't browse images very well (at all). If I want to grab the source files from a legacy application which used a deprecated function and the files span several hundred directories, and I want to make a minor text replace, and then run my test to make sure everything compile and works still, the GUI just comes up short in a serious way.</comment>


Julia: Come for the Syntax, Stay for the Speed - <AUTHOR> https://www.nature.com/articles/d41586-019-02310-3 <comment><USER2> I love julia, I really do. It has a great syntax and is extremely fast compared to other languages with such a high level syntax.

But the main complaint I see and completely agree is that it feels very slow. You want to import the plotting library? Write 'using Plots' and wait 3 minutes. You want to use a function just once? Too bad, you wait 10 times the amount of time you would wait if you ran that in python (If you run the function again, it is almost instant since it is now compiled).

I get this is what allows Julia to be such an effective language but there still is a lot of room for improvement. But for those of you that are interested in it, give it a try and you will enjoy how powerful the language is. For example you can have hundreds of lines of complex algebra functions and by just adding a line to the top like 'input = gpuarray(input)' and now all your code is 100 times faster because it magically runs on your gpu. Another favorite feature for me is function broadcasting. Simple example 'lowercase(x)' gives lowercase version of string x. You have a matrix of strings that you want to lowercase? Simply write 'lowercase.(s_matrix)' These features and excellent packages that provide parallelization makes an excellent language. I mostly use Julia for computation heavy tasks, if the compilation times were reduced it would be my go to language for all kinds of tasks.

<comment><USER3> The "time-to-first-plot" (compiler latency) problem is something that the Julia gurus know about and are working on. For example, Jeff Bezanson gave a talk [1] at the just-completed JuliaCon that listed this as the first on a list of known problems with Julia.

One immediate solution is to use PackageCompiler.jl [2] to build a Julia image that includes a pre-compiled version of the slow code (packages).

[1] [https://www.youtube.com/watch?v=TPuJsgyu87U&t=11s](https://www.youtube.com/watch?v=TPuJsgyu87U&t=11s)

[2] [https://github.com/JuliaLang/PackageCompiler.jl](https://github.com/JuliaLang/PackageCompiler.jl)

</comment></comment><comment><USER4> When I was managing a deep learning team last year, my boss's boss asked me if I had looked a Julia. I had not, but promptly spent a weekend playing with it. The deep learning library Flux is very good, GPU setup is really easy, and I wrote up snippets for text processing, web scraping, simple NLP, etc. I was doing a personal evaluation to see if it could be a language that I could do everything in. The answer was 'yes' but I ended up sticking with a mashup of Common Lisp and Python for my personal projects.

Julia is a fun language to use because it has a great repl and a pleasant enough syntax.

<comment><USER5> So, why didn't you keep using it?

<comment><USER4> I have been using Common Lisp since 1982 - a lot of history!

There is a chance that I might switch over some day. I also like how easy it is to call out to other languages with Julia. Also, the occasional long load times because of the LLVM stuff does not bother me.

</comment></comment></comment><comment><USER6> My feeling is that Julia is a DSL in scientific computing, like "modern Fortran". It fills a niche. In contrast, Python (still the defacto dominating programming language in many scientific computing areas) is widespread in many domains beyond science. Does anybody confirm that? I mean Julia is a general purpose programming language, but I don't know anybody who uses Julia to write software for the web, desktop or smartphone applications, etc.

<comment><USER7> I think Julia is still too new to really tell. There are some web frameworks for Julia and I think it does have the potential to be as general purpose as Python, versus something like MATLAB / Octave which is dedicated to scientific computing.

</comment></comment><comment><USER8> Julia is great. You can call codes from different libraries and they will just work together, even from C/C++/Python libraries. One of the bad things right now ihmo is toolings. Despite having LanguageServer, the IDE-like capacities aren't Java-level mature yet, so it feel _a little bit_ messy for large project. I'm trying to make a PoC to bring lsp features to Intellij platform here [https://github.com/JuliaEditorSupport/julia- intellij/pull/41...](https://github.com/JuliaEditorSupport/julia- intellij/pull/413). I think if someone's willing to improve the toolings and web dev ecosystem, it will be more suitable for general purpose programming.

</comment><comment><USER9> I decided to work along with the ThinkJulia tutorial until I got to the first case study: Turtles. The ThinkJulia package installed fine, but the tutorial doesn't tell you how to get out of package install mode. After trying 'quit' and 'exit', a Ctrl-D got me out of julia.

Started it up again, proceeded with 'using ThinkJulia' which spit out a warning about updating a manifest file and to try 'Pkg.resolve()' which I did. It gave me an error, 'Pkg not defined'. Spent a few minutes failing to get the turtle, but did somehow wind up back in pkg mode which I still don't know how to get out of. To hell with that tutorial.

<comment><USER10> Backspace gets out of REPL modes, though I agree that that isn't necessarily obvious for people not used to this kind of modality. I'm sure the ThinkJulia folks would appreciate a note so they can improve the tutorial: [https://github.com/BenLauwens/ThinkJulia.jl/issues](https://github.com/BenLauwens/ThinkJulia.jl/issues).

<comment><USER9> Of the four or so tutorials I took a peek at, only the one on qualitative economics mentioned the backspace as how to get out of pkg mode. I'm left wondering what's wrong with Escape.

The authors don't seem to have touched it since their O'Reilly book was published.

<comment><USER11> Well, you get into the pkg mode by typing `]`, so from an intuitive standpoint you get out by deleting that character. When you're in any REPL mode there is a character typed at the beginning of your line that renders as a mode. Delete it, and it goes away.

I think it makes more sense than escape, actually, but everyone is so used to using escape that it's not too strange to not think of it.

<comment><USER9> Intuitive to me: press a button toggles a mode. Hit the button again to toggle again. Also intuitive to me: press a button to toggle a mode, hit Escape to escape that mode. Not intuitive to me: press a button to toggle a mode. Press Backspace to erase a character that isn't on the screen.

<comment><USER11> But didn't it become more intuitive when I explained it? 'Type something to enter a mode, delete it to exit'. I'm pretty used to invisible characters, but I just think it makes sense. Anyway, you really just need to hear it once, and then it should stick.

<comment><USER9> No, I still don't find anything intuitive about it. It's not hard to memorize, but I still don't find it an intuitive or sensible method for exiting.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> >Launched in 2012, Julia is an open-source language that combines the interactivity and syntax of 'scripting' languages, such as Python, Matlab and R,......

Julia's syntax reads more like Ruby than any of the three named. And yet no mention of it.

<comment><USER13> It is really similar.

For me it was surprisingly easy to move my math heavy code from Ruby to Julia, and got a 30x speedup.

</comment></comment><comment><USER14> Clojure: Come for the hair of Rich Hickey, Stay for the insanely productive alien technology

<comment><USER15> Julia is the second coming of Dylan.

A kind of Lisp with Algol-like syntax.

Lisp is the alien technology, not Clojure.</comment></comment>


Apple applies to patent a paper bag with at least 60% post-consumer content - <AUTHOR> http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220160264304%22.PGNR.&OS=DN%2F20160264304&RS=DN%2F20160264304 <comment><USER2> It looks like the novel things that they're claiming for are probably lines 0025-0027, and then later lines going into more detail on those:

"Generally, the greater the proportion of post-consumer content in white or SBS paper, the weaker the paper (e.g., the paper will more easily tear (including scoring or cracking)). For this reason, conventional bags formed of SBS paper are made with 50% or less post-consumer content (usually 40% or less) ... To strengthen areas of the bag container, such as folds or gussets at its corners or edges, ... reinforcement inserts ... formed of the same material as the bag container ... can augment the strength and resistance to tearing of the bag container material to make it structurally suitable for use as a bag, thereby increasing the amount of post-consumer content usable ... Typical paper handles are stiff and inflexible; these qualities contribute to a rough, unfinished feel. ... the bag handle may be formed to have a feel and flexibility unlike that typical of paper ... To effect this feel and flexibility, the handle may be formed of knitted paper fibers in a tight-knit pattern with a large diameter. For example, the handle may be formed in an 8-stitch circular-knit pattern"

It may be that plenty of other bag manufacturers are doing the same thing, but it generally seems like a good idea. Novel enough to patent? I have no idea.

<comment> TD-Linux They can only claim things in the claims section. The two independent claims are #1 and #13. The description is mostly fluff - they really are just attempting to patent a 60% recycled white bag.

<comment><USER3> I've seen paper bags already of similar design. USPTO is likely going to grant the patent anyways, even if it is just to patent all bags with atleast 60% recycled material.

They could have atleast nailed some of the metrics down, it can be so absurd how the patent system works in the US.

It is difficult to know who to fault, Apple, or the USPTO.

Edit: I think it was a bag to hold one of those fancy, hand made jam and jar, but it was dark brownish. They probly swiped the design from one of those types. Apple is notorious for swiping design and elements.

<comment><USER4> "Apple is notorious for swiping design and elements" They even patented swipe to unlock, probably swiped that one too.

</comment></comment></comment></comment><comment> TD-Linux This is a patent application that pretty much has 0% chance of being accepted as-is. What will happen is the filer will play the game with the patent examiner where they move dependent claims into the independent claim until it's just enough to squeeze by.

<comment><USER5> Correct. The title should be changed to state it is an application, not a patent.

<comment><AUTHOR> Thank you. HN allows title changes for a brief period, so I squeezed it in.

</comment></comment></comment><comment><USER6> It's almost like they've done this before. [1] Probably a bag for use at Cafe Macs or Retail or both.

[https://www.google.com/patents/US20120024859?pg=PA1&dq=Longo...](https://www.google.com/patents/US20120024859?pg=PA1&dq=Longoni;+Francesco&hl=en&sa=X&ei=MzKzUrvEI9jboASR14GYDQ&ved=0CEUQ6AEwAg)

</comment><comment><USER7> Sounds like someone told an Apple exec they can't innovate their way out of a paper bag and they took it way too literally.

<comment><USER8> Tw

</comment></comment><comment><USER9> Can some one apply for a patent for toilet paper made out of at least 60% post consumer content where by the content is made of printouts of Apple patent applications?

<comment><USER5> > Can some one apply for a patent for ...

Answer: As long as they are willing to pay the fee, yes. You can substitute anything for "...". All that is required is a willingness to write out the required documents, fill out the forms, and fork over some money for the fee.

Now, whether what they apply for eventually gets approved to become a patent, that is a different story.

<comment><USER10> Until then you can print 'patent pending' on your product/website.

<comment><USER11> Serious question: What benefits or protections do you get from putting that on your products?

<comment><USER12> Enhanced damages for infringement in a later enforcement action upon grant of the patent.

</comment></comment></comment></comment></comment><comment><USER13> What is post-consumer content?

<comment><USER14> From the looks of it, paper.

60% of it having come from some family somewhere that's keen on recycling.

<comment><USER15> Funny, where I live all paper is de facto recycled.

<comment><USER16> > where I live

Where is that?

<comment><USER15> Finland.

</comment></comment></comment></comment></comment><comment><USER17> Wait but why? Are they using this for their next generation iPhone packing (wastage as it is otherwise called)

<comment><USER18> Traditionally Apple Stores used a plastic bag [1]. For environmental reasons they are moving to a paper bag made mostly of recycled content. As is normal with Apple, they are spending a great deal of energy making sure this new form of packaging is both aesthetically pleasing and functional. On the functional end of that, they seem to be making significant effort to make it sturdy.

I don't know that the sturdiness-enhancing design justifies a patent, but I do think it is reasonable to acknowledge that Apple has put a lot of effort into it.

[1] [https://9to5mac.com/2016/04/04/apple-paper-retail-store- bags...](https://9to5mac.com/2016/04/04/apple-paper-retail-store-bags/)

</comment></comment><comment><USER19> Either way, Samsung will have their 60% post-consumer bag on the market before Apples.

<comment><USER20> With an additional differentiation being that not only is it 61% post-consumer paper waste, but it spontaneously doubles as a heating source without user intervention!

</comment></comment><comment><USER21> Relax, they are patenting their _design_ of a paper bag — the style, the type of handle, the type of material, how it folds.

There are images to clarify this.

</comment><comment><USER22> Any bets that this document was not made in iWork?

<comment><USER23> Yes, it was probably made on LaTeX, so what?

</comment></comment><comment><USER24> Pro tip: The image is in the pdf when you click "Images" at the top.

You can then confirm that the bag has nothing special.

<comment><USER25> Thanks, the Images button wasn't obvious to me, seems to be part of the main menu

</comment></comment><comment><USER26> Sounds like the Apple Package Design department got dinged by corporate for not having enough patents this year.

"Umm, ok guys, what the hell can we write up as patent so we get our bonuses this year?"

</comment><comment><USER27> Mushroom Packaging plz.

</comment><comment><USER28> No 3.5mm port :(

<comment><USER29> This handle was still available when you registered?

<comment><USER28> What are you talking about?

I just signed up to ask some questions about MS Exchange earlier today.

My boss has been breathing down my neck about some emails.

<comment><USER30> We've banned this account for trolling.

</comment></comment></comment></comment><comment><USER31> so innovative

</comment><comment><USER32> Apple is officially a law office. RIP.

</comment><comment><USER33> Thankfully the numeral system was invented before patents. And humans learned to walk.

Imagine paying a royalty for walking or counting.

<comment><USER34> Patents are only valid for 20 years. That is short enough that even if the patent system _did_ predate numerals and walking, these patents would have long since expired.

</comment></comment><comment><USER35> Was the inventor from Michigan State or Clemson?

</comment><comment><USER36> Existing product: 50% post-consumer content bags

New idea: 60% post-consumer content bags

Existing product: 8 minute abs

New idea: [http://bit.ly/2d025ZJ](http://bit.ly/2d025ZJ)

:P

</comment><comment><USER37> Hrm, how exactly is it novel? Paper bags from recycled materials are known for years. Sounds like another attempt to patent sliding locks or rounded corners. Instead of patenting stuff Apple should do something useful.

<comment><USER38> Presumably the 'novelty' lies in the specificity of the bag's design. But even there, it is hard to see--it is not as if bags with loop handles, cardboard stiffeners, and so on, did not already exist. One wonders how close another bag would have to be to 'infringe'. But I like this bit:

"Bags are often used for containing items. "

<comment><USER39> "Since an item carried within bag 100 will typically apply force to bag 100 at bottom panel 212, _due to the gravitational attraction of the item to the earth_ , areas near the bottom of bag 100 may be most susceptible to tearing."

</comment></comment></comment><comment><USER40> "A retail paper bag, comprising: a bag container formed of white paper ..."

Really, when I started reading this I first checked if this was some kind of late April fool's joke.

But no, it looks real :P

Why not apply for this, Apple:

"A wheel, comprising: something round ..."

</comment><comment><USER41> Attention: Will "KORINEK Michael; (San Francisco, CA) (Sr. Packaging Product Design Engineer at Apple) WHANG; Eugene Antony; (San Francisco, CA) (Number of Co-Patents with Jonathan Ive: 321+) SHAFFER; Benjamin Andrew; (San Jose, CA)" (Former Nike design director Ben Shaffer) Please report to the principal's office for a public shaming? Thank you.

</comment><comment><USER42> Hopefully when they're done with this project they can return their resources to their NYC Google Express service and stop forcing customers to order their food and water to arrive only within 8am-10pm periods instead of the previous 3 or 4-hour periods, making GExpress practically useless to the biggest city in the country

<comment><USER43> What does Google Express have to do with a patent filed by Apple?</comment></comment>


A Drug Meant for Alzheimer's Treatment Regrows Human Teeth - <AUTHOR> https://motherboard.vice.com/en_us/article/qkjm9v/an-alzheimers-drug-could-help-grow-teeth-and-fight-cavities <comment><USER2> Bogus clickbait title. The drug improves the _healing ability_ (dentin replacement) of _intact_ teeth; it doesn't cause regrowth of missing or healing of internally-damaged teeth.</comment>


Startups outside of the US only. Please name your startup and your product - <AUTHOR>

<comment><USER2> tarsnap (www.tarsnap.com). Online backups for the truly paranoid.

</comment><comment><USER3> Anemach; a new way to create software</comment>


Ask HN: What can I do when I'm not a culture fit? - <AUTHOR> I'm a quiet person and parties make me anxious.
I joined a company that loves to party and talk a lot and it feels a little required because I get hints that I should attend them.
While I've gotten up-to-speed on technologies relatively quickly and then thrown into the deep end to drown (2 months in), I feel like this company just doesn't value that contribution compared to if I had quickly made a bunch of office friends and wasn't up-to-speed tech-wise.
I've had counseling but I've told them that I'm happy being alone and quiet (and I really am), so they don't recommend medications for me.
If everyone wants people who engage in the culture, wouldn't I be better off cutting my losses and leaving sooner, or should I go for the standard 1-year before leaving? <comment><USER2> How uncomfortable is this making _you_? If you need to introvert after work instead of hanging out, just do that. Don't feel bad that you're not "meeting expectations" or whatever. You don't need their permission to use your "not at work" time however you want. If it's not hurting you, I wouldn't leave.

And how uncomfortable is this making _them_? Is it "nobody ever did that before, and we're not sure how to react"? Well, their culture needs to learn how to deal with introverts sooner or later; it might as well be now. Or is their reaction more like "we want to be your whole life, not just your working hours, and you won't let us, and we don't like you thwarting our goals like that"? That's more like a cult than a job. If that's the deal, then you may need to eventually leave, because they're going to increase the level of pain on you until you leave or comply.</comment>


Fox Joins ABC, NBC, CBS in Blocking Google TV Devices - <AUTHOR> http://daringfireball.net/linked/2010/11/11/fox-google-tv <comment><USER2> Moves like this are convincing me more and more that my decision to drop Cable TV completely was the right decision.

I can't wait until this War Against the Consumer is over, but until it is I'll do my part to refuse to support these antediluvian companies as best I can.

Don't get me wrong, I'll happily pay for content I want to watch. I was just paying for content that I never even thought about watching, much less enjoying, especially when much of what I want to watch (Daily Show, House, Dexter, etc) are online for free legally or come from Netflix.

<comment><USER3> I don't entirely understand this. The networks make their money by both selling ads and through cable subscriber revenues. They've been pretty cool about allowing content to be streamed on the web, and they do so with limited ads and no subscriber revenue.

This has only worked because the users couldn't get that content on their big screen (without jumping through some hoops).

You call this a "War Against The Consumer" because the networks don't want to give away their product for free? I fail to see how the Networks are the bad guy in this.

<comment><USER2> I understand your point and don't disagree with you there. The problem is that people are changing, the times are changing, and broadcast companies aren't. I personally want more control over what I watch and when I watch it. My cable tv subscription was about as useful to me as burning $60 / month. I watch very little TV in general, and when I can get any TV show I want from Netflix for $15 a month, or the shows that are on too late for me to watch are showing up online, by the broadcast companies, for free, it's hard to say that cable is still worth anything.

I'm also not a big sports guy, that seems to be the one niche that's really keeping cable tv alive, but even that is moving more and more to be online available via subscriptions and what not, for better and more choices, TONS more choices.

The advent of things like Google TV should be a massive wake-up call to the broadcast industry. The fact that the first thing major networks do is block the device, even though it's no different to someone on a computer shows that they're scared. They need to not follow the RIAA and fight to the death to keep the old ways, they need to adapt to the times, figure out how to build a new monetization strategy around internet content availability, and finally move into the 21st century.

</comment></comment></comment><comment><USER4> Original article: [http://www.gtvhub.com/2010/11/10/fox-com-now-blocking- google...](http://www.gtvhub.com/2010/11/10/fox-com-now-blocking-google-tv- devices/)

</comment><comment><USER5> I must be missing something, but couldn't Google just have a device identify itself as a normal browser in the user agent string of any http request it makes?

<comment><USER6> According to an article I read earlier today, it's not looking at browser user agent, but the Flash player id, which is unique to Google TV.

<comment><USER5> Interesting. Although that sort of raises the same question.

</comment></comment></comment><comment><USER7> That would have been a smart thing to do 10 years ago - now that isn't going to stop anybody.

<comment><USER8> Seems like it'll stop the majority of non-hacker Google TV buyers...

<comment><USER7> How many is that?

And it will only stop them until some workaround is made - which will properly not take that long.

<comment><USER8> It's intended to be a mass market product so I'd expect most of them. Any way around blocking is going to be used by at most a small minority of users.

</comment></comment></comment></comment><comment><USER9> Google now appears either laughably naïve in suggesting this would "just work" business-wise, arrogant for thinking that they wouldn't get the same treatment Boxee received from Hulu et al. for the same reason, or negligent for jerking around everyone when they had to know this was going to happen. It looks bad, even though, of course, it's ostensibly not their fault.

On the plus side, since their partners will probably have a lot of these left after the holiday season, I think I know what I might get in my goodie bag if I go to Google I/O next year!

<comment><USER10> I thought the HDMI input on Google TV is for watching real TV and the browser is for watching Web-only video. [http://gigaom.com/video/google-tv-exec-cord- cutting-is-not-h...](http://gigaom.com/video/google-tv-exec-cord-cutting-is- not-happening/)

<comment><USER9> I actually saw that video! I thought that was more of a convenient input switcher if you only have one HDMI port rather than the new way Google is transforming your TV experience. I at least expect the same stuff I can watch on my PC, personally.

</comment></comment></comment><comment><USER11> As the content on these networks goes to crap and there inability to provide/partner or work with any of the new platforms that put the consumer in the driving seat is just going to expedite their demise. The loud SUCKING sound are consumer running to a free(er) platform with better content.</comment>


Sun Microsystems Founders Celebrate Legacy – IDG Connect - <AUTHOR> https://www.idgconnect.com/news/1503039/sun-microsystems-founders-celebrate-legacy <comment><USER2> I remember in University us going onto Sun's website and pricing out one of their high end 600Mhz Sparc workstations, maxed out on ram and drive space. I think we got it up to $11k.

Some of us got a hold of decade old Sparc stations sold at auction and put RHEL on them. I remember they had 25Mhz Sparc processors, 100MB SCSI hard drives, held a crazy amount of ram sticks, Sony Trinitron monitors with RGB coax inputs, those crazy laser mice that required a grid plate mouse pad (which sucked for tracking). Back when they were new, they cost $12k each. In 2000 we bought them for like $25 for a pallet of 30.</comment>


Show HN: Guess the Date, a date guessing game made with React Native - <AUTHOR> https://guessthedate.app <comment><AUTHOR> First time launching a product.

I'm proud to show you my React Native app Guess the Date. I would love some feedback about it. Feel free to ask any question!</comment>


Quora is there a web site like F*cked Company in the modern age, if not why not? - <AUTHOR> http://www.quora.com/Dotcom/Is-there-a-modern-web-site-like-the-old-Fuckedcompany-com-out-there-If-not-why?share=1

<comment><USER2> F*cked Company was really a child of the end of the dot.com era — I think to really get the spirit of that time you'd have to have a real bubble burst again. I'm not saying that we won't get there at some point, but we aren't there yet.

</comment><comment><USER3> No, because today startups never die, they just float around like zombies forever, running on $500 / month AWS bills.</comment>


Stop Battling Your Duvet Cover on Laundry Day:  Check Out Our Duvet Cover Hack. - <AUTHOR> https://www.kickstarter.com/projects/277119078/the-nova-the-duvet-cover-reinvented?ref=live

<comment><USER2> Someone should have thought of this sooner!</comment>


Show HN: Asteroid Anarchy – Multiplayer Asteroids - <AUTHOR> https://www.asteroidanarchy.com/ <comment><USER2> Very cool concept, but trying to pick up tiny crystals with these controls is like trying to deliver mail from a massive dump truck.

<comment><AUTHOR> Thanks for the feedback! I just put in an update that makes it much easier to capture the crystals and ore.</comment></comment>


A Tab Management Idea (2nd half of post) - <AUTHOR> http://www.ralfas.com/tab-management

<comment><USER2> Opera pretty much has this with it's new tab stacks. I think Firefox panorama is a bit of a misconceived concept where they've gone more for what's "cool" than practical.

The idea with panorama is that the browser is like your desktop and gives you the tool to setup and arrange it like one. But the browser _isnt_ the desktop and there's seldom need for such persistent configurations of browser windows. Furthermore panorama feels one step too removed where you have to go into the panorama view to change group.

Opera's tab stacks feels much more natural and immediate, simply drop tabs you want to group, for instance, a "to read stack" and you can switch to it and it's browser windows immediately. Also pinned tabs are great for putting common windows to the far left, showing only the favicon and preventing it from closing

<comment><AUTHOR> I agree with most of your points. However, while I agree that Opera tab stacks are better for grouping than Panorama, they still require a manual effort to arrange them.

Also, expanding the group to view the tabs in that group returns the tab bar to the cramped state where it's difficult to identify tab contents, while a vertical listing alleviates that problem.

Pinned tabs are magical. :)</comment></comment>


USB Typewriter  - <AUTHOR> http://www.etsy.com/shop/usbtypewriter

<comment><USER2> Charles Bukowski and writing on a computer vs. typewriter

[http://realitystudio.org/bibliographic-bunker/charles- bukows...](http://realitystudio.org/bibliographic-bunker/charles-bukowski- william-burroughs-and-the-computer/)

</comment><comment><USER3> Someone needs to find a way to pipe a terminal output onto one. Then we can all use ed and be happy.

</comment><comment><USER4> The creator's page with more info (including how-tos, links to kits to DIY, the hardware used, etc) <http://www.usbtypewriter.com/>

</comment><comment><USER5> Yeah but I would want it to be bi-directional like a player piano.

Not just for input but output too.

(they must exist as they use something like that on Fringe)

<comment><USER6> A Teletype?

</comment></comment><comment><USER7> Does Anybody know why most of these typewriters lack the numeral "1"?

<comment><USER8> To save space, you were supposed to use the "l" (lower-case "L"). I'm sure there's a good article about it, but all google found on a first try was this metafilter thread:

[http://ask.metafilter.com/46743/Royal-typewriter-missing- key...](http://ask.metafilter.com/46743/Royal-typewriter-missing-keys)

<comment><USER7> Oh. I got it now. Ancient technology and ancient engineering problems :)

</comment></comment></comment><comment><USER9> thats so cool. cumbersome, but very cool. almost selectric

</comment><comment><USER10> These are just shitty keyboards for affected gits.

This (with a usb-parallel adaptor) is a USB Teletypewriter: <http://www.wabdo.com/fred/printernet/> (it's printing this thread: [http://metatalk.metafilter.com/16190/Print-Stylesheet-for- Me...](http://metatalk.metafilter.com/16190/Print-Stylesheet-for-Mefi))

It's my letter-quality (none of that dot-matrix garbage) NEC Spinwriter 2050 printer. I have several font wheels for it, though not the Futura one I covet. One of these days I need to set it up along with one of my Model M keyboards as a serial line terminal.</comment>


OpenBSD has started a massive strip-down and cleanup of OpenSSL - <AUTHOR> https://lobste.rs/s/3utipo/openbsd_has_started_a_massive_strip-down_and_cleanup_of_openssl <comment><USER2> In the past I was part of an attempt to make asymmetric crypto easier to use for a commercial product. My role was to help design the product (simple, collaborative file sharing; you've heard it before) and to let the experts ensure the crypto was used properly. What drove me absolutely nuts was the level of paranoia and uncertainty around the safety of the libraries and algorithms used. The available experts were confident in the concepts, but feared every implementation. "Par for the course" you might say, but the status quo around OpenSSL and other libraries is unacceptable.

From an application developer's perspective crypto libraries look like a lightning rod even for the experts. No one wants to get too involved or make recommendations lest they back the wrong horse (admittedly an easy thing to do). So __kudos __to the OpenBSD team for rolling up their sleeves and attempting to build a solid foundation for the future.

I'd be happy if OpenSSL is simply fixed. I'd be overjoyed if there was a solid crypto system underneath an OpenSSL compatible API that gives us a path towards an open source, reusable _crypto platform_.

<comment><USER3> Do you know about NaCl (by DJB)? It doesn't implement SSL, but it is a very easy to use library for asymmetric crypto.

[http://nacl.cr.yp.to/box.html](http://nacl.cr.yp.to/box.html)

Can any crypto experts comment on whether it is feasible / how much work it is to implement SSL on NaCl? Maybe the issue is that NaCl doesn't support all the ciphers you need.

<comment><USER2> I do, and I hope to give it a try in the latest product I'm building. Like everyone else I'd prefer to see some expert validation of NaCl before I put a ton of trust into it. That said DJB's track record is pretty good in my eyes (I _liked_ the design of qmail, a lot).

<comment><USER4> I've examined it, and you can fuzz comp against tweetnacl. It does the right thing generally and tests against test vectors in the build process.

</comment></comment></comment></comment><comment><USER5> Unfortunately it's going to be difficult to have much confidence in a huge edit of OpenSSL since OpenSSL is almost devoid of meaningful tests. It would be very easy for one of these "resolve merge conflicts" changelists to contain an error of the goto fail; goto fail; variety.

<comment><USER6> Obviously there's always a risk that something slips through. However it's not just a huge edit, it's also a huge review. And that is made so much easier when a ton of junk is removed from the code base, and the style is changed towards readable.

<comment><USER5> When I do code reviews I read the tests first. How can you review code with no tests?

All the bugs in OpenSSL to this date have been reviewed by someone. Unfortunately those people haven't been veteran industry programmers but rather academics and "hero" types who think the kinds of things in OpenSSL are good code. We can only hope that OpenBSD folks can clean it up a bit but I'm not hopeful, because OpenBSD is just a different tribe of "hero" programmers.

<comment><USER6> > When I do code reviews I read the tests first. How can you review code with > no tests?

Please grow out of this religion if you care about robust, secure and well written software.

You can look and see what are the types of things that get fixed in OpenBSD. Tests are not going to tell you that code works around safety measures built in to the OS. Tests are not going to tell you that the code uses time as entropy to seed RNGs. Tests are unlikely to tell you about the subtle integer overflows or out-of-bounds accesses that attackers can exploit. Tests are unlikely to tell your daemon will ungracefully fail due to fd exhaustion while serving a larger amount of requests on a loaded system. Tests are not going to tell you there are deceivingly familiar looking functions with surprising return values that will confuse people. Tests are not going to tell about bad style and code smell that makes life harder for anyone working on or looking at the code.

There are so many things that are hard or impossible to test, but which are vital to handle right if you're doing anything robust and secure. In fact you could construct a test for some of these things, in theory, but in practice you never will. And you certainly never will unless you have actually read the code, because all these things are issues within implementation details inside the black box; you _must_ read the code (and understand the underlying platform) to even become aware of these issues.

Sure, tests are really useful for catching some specific issues. But there is so much more. Tests are somewhat like compiler warnings: often extremely helpful, but even totally insecure crap can compile cleanly. And it is possible to write good code even if you're not using the smartest compiler to compile it.

If you wish to learn how to review code with no tests, I recommend you read the C language chapter from The Art of Software Security Assesment[1]. Actually read the entire book. Then go through the commit logs in some project -- such as OpenBSD, who've been doing it for almost 20 years -- and see what kind of issues they find and fix.

[1] [http://ptgmedia.pearsoncmg.com/images/0321444426/samplechapt...](http://ptgmedia.pearsoncmg.com/images/0321444426/samplechapter/Dowd_ch06.pdf)

<comment><USER7> On the other hand, there's more to testing than traditional unit testing in which a programmer enumerates a series of cases and verifies that what they think should happen (which may or may not even be correct) happens.

There's fuzz testing. There's QuickTest-like testing, which is tricky in this sort of situation, but powerful if you take the time. There's static analysis, which are basically a form of automated testing. In fact, static analysis _can_ in fact test some of the things you claim can't be tested. Some of the other things are also more testable than you are saying, such as resource exhaustion, which can be both simulated via injection or via simply exhausting resources in the test case.

Further, even the relatively-weak guarantees that traditional unit testing can provide are a _foundation_ for further analysis. What's the point of analyzing a bit of code for whether or not it uses entropy correctly if you miss the fact that the code is straight-up _buggy_? Given the demonstrated difficulty of writing code even before it's _security_ code without solid testing, this is hardly the time to be claiming that testing isn't necessary.

This strikes me as another iteration of the Real Man argument ("Real Men write in assembler" being one of the originals). The truth is we need all the help we can get because we humans aren't very good at programming in the end... and of _all the places_ I'm not inclined to accept the Real Man argument, it's in security code. This is the sort of code that ought to be getting covered by two or three separate static analysis tools, _and_ getting reviewed by skilled developers, _and_ getting fuzz tested, _and_ getting basic unit tests.

<comment><USER6> No Real Men arguments here. I did not claim testing isn't necessary. I just wanted to challenge the blatantly religious attitude of pretending or believing that a particular form of testing (one with clearly written tests the poster above me would actually read) is all there is and that you cannot review code otherwise. You definitely can, and must.

As far as I am concerned, all techniques that help improve code are welcome and even necessary. This includes testing, manual review, static analysis, etc.

</comment></comment></comment></comment></comment></comment><comment><USER8> "Removal of all heartbeat functionality which resulted in Heartbleed"

Instead of simply fixing the bug and moving on, we're decided to assume the whole thing is tainted and burn it alive like a depressed teenager at the salem witch trials?

or is the heartbeat and IETF RFC considered suspicious and the heartbeat extension offers us nothing?

<comment><USER7> In addition to kansface's point, I'd observe it's a _very_ recent addition. We made it a long way without it.

There's a quote referenced so often it has become a cliche: "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." by Antoine de Saint-Exupery. I think it's sometimes over- applied, but in the case of crypto software, it really fits. In a sense, the heartbeat code got unlucky and hit the mega-anti-jackpot, disproportional to its "actual" risk... but there _was_ risk in adding it, and even before we know the outcome it would have, somebody really should have been asking hard questions about whether the reward justified the risk. I imagine there's a lot of other bits of the code where the risk/reward tradeoff suggests removal. You can look at much of what has already been trashed from that point of view. For instance, if you have no real need to support a particular defunct architecture, why carry around its code? It has no benefit, but non-zero risk; toast it.

<comment><USER9> An good engineer's time should be spent more on taking away than on adding.

<comment><USER10> I think Colin Percival put it best in his blog post about Heartbleed:

"The most secure code in the world is code which is never written; the least secure code is code which is written in order to comply with a requirement on page 70 of a 100-page standard, but never gets tested because nobody enables that option."

</comment></comment></comment></comment><comment><USER11> Is this fork a vote of no confidence in the OpenSSL team? Is it guaranteed that this fork will be used in OpenBSD? Could this fork be used in Linux? Will they be cooperating with OpenSSL by sending them bug reports etc?

<comment><USER12> >Is it guaranteed that this fork will be used in OpenBSD?

It already is used in OpenBSD. The changes are being made in the OpenBSD source tree.

<comment><USER13> As a Linux fan who has been hearing good things about FreeBSD, will this work out of the box on FreeBSD?

<comment><USER12> I think it will require a bit of tweaking, but I would expect the other BSDs to adopt it once it is reasonably complete.

</comment></comment></comment></comment><comment><USER14> "Removal of MacOS, Netware, OS/2, VMS and Windows build junk"

There's surely code in this project older than some of the developers working on it.

<comment><USER15> Or maybe only gray-haired curmudgeons are working on this... CVS is quite a high entry barrier for young trendy Githubbers!

<comment><USER16> I'm actually really impressed what so many of the OpenBSD developers can delete/reformat/edit the OpenSSL code at the speed they seem to be working right now and not run into issues with CVS. One awesome thing about CVS is cvsweb ( which is a separate thing, I know), I much prefer browsing around, diffing and viewing changes in cvsweb compared to say GitHub or Bitbucket.

Sort a side note: OpenBSD really seems to have picked up speed after they fundraising. It wonderful to see the money has been so well spent.

<comment><USER14> Sorry, there's nothing awesome about CVS, especially not cvsweb.

If you want a git client that's graphical, there's dozens to choose from, many of which do a lot of what cvsweb does and more.

You can also create your own Gitorius ([https://gitorious.org/](https://gitorious.org/)) server and view changes there before pushing to the upstream. It's like your own personal GitHub.

It is wonderful to see improvements. It's just that a refined CVS workflow is downright awful compared to the default git one.

Being able to git clone, monkey around with your own branches, and never need commit rights is a _huge_ deal for those looking to work with and improve your software.

</comment></comment></comment></comment><comment><USER17> This will be interesting to watch; I hope OpenBSD can do for OpenSSL what they did for OpenSSH—clean it, refine it, repackage it, and make it even better, ready for a new decade of use. I published a blog post which mentions how OpenBSD transformed SSH into the de-facto remote administration standard it is today just this morning[1].

I think this will be good news!

[1] [https://servercheck.in/blog/brief-history-ssh-and-remote- acc...](https://servercheck.in/blog/brief-history-ssh-and-remote-access)

<comment><USER6> _Even though passwords are sent in the clear, ..._

</comment></comment><comment><USER18> Linking a lobster thread on HN, instead of the original link? Why would you want to do that?

<comment><AUTHOR> I know it's unusual, but in this case I thought it was justified because the original BSD CVS link offers little context of what's going on unless you parse the changelog, whereas the lobster thread has a good summary by jcs.

</comment></comment><comment><USER19> OpenBSD Journal[1] points out "To clarify, not all of the cryptographic engines were removed; the padlock and aesni engines are still in place."

1) [http://undeadly.org/cgi?action=article&sid=20140415093252](http://undeadly.org/cgi?action=article&sid=20140415093252)

</comment><comment><USER20> Finding it easier to read through the commit log here than in cvsweb:

[http://freshbsd.org/search?q=libssl](http://freshbsd.org/search?q=libssl)

<comment><USER19> That is a pretty nice way to track the changes. I see some of the comments are getting ranty [http://freshbsd.org/commit/openbsd/58777eed1cff7c5b34cbc0262...](http://freshbsd.org/commit/openbsd/58777eed1cff7c5b34cbc026278f730176a6dbc2)

</comment></comment><comment><USER21> "OpenSSL must die, for it will never get any better." \- PHK [http://queue.acm.org/detail.cfm?id=2602816](http://queue.acm.org/detail.cfm?id=2602816) A pretty good, recent look at OpenSSL code and how it can be improved.

</comment><comment><USER22> Good. Another look at any code after a long period often yields various degrees of improvements due to a different perspective at the later date.

<comment><USER23> This isn't "another look"; OpenSSL is not affiliated with OpenBSD/OpenSSH, despite the similar name. This is OpenBSD forking OpenSSL.

Someone at the linked URL humorously commented "I hope the new version is called OpenOpenSSL."

<comment><USER22> ? Did you think I assumed "similarity" due to "Open" in the title? It is "another look". Another look can come from original writers, yes, but often a second pair of eyes brings a different perspective that is almost always beneficial.

<comment><USER23> It came across that way. You mentioned "after a long period", and whatnot.

</comment></comment></comment></comment><comment><USER24> Excellent PR move on the part of OpenBSD. This should definitely improve their donations and work.

</comment><comment><USER25> Understandable reaction, when it can be seen how people that wanted to have all the newest features in their product (newest TSL features in this case) shoot themselves into their foot while others that stayed longer with the old (proven) version where save ...

That is one reason for the popularity of Debian: (at least in the past) they did not jump on any new bandwagon immediately. Other distributions have much newer software, but also the newest bugs.

</comment><comment><USER26> OpenBSD has a great security record, definitely excited to see what they can do if they take over OpenSSL maintenance.

</comment><comment><USER27> Who knows, maybe one day we'll be able to install OpenSSL without having to first install Perl?

IMO, this a symbol of OpenSSL's unreasonable complexity.

OpenSSL is a default system library yet the user cannot compile it with only default system libraries.

(OpenBSD has added perl to their userland but this is not universal across other UNIX-like OS.)

Where are the compile-time options to turn things off?

The compile process has apparently become so "challenging" that the developers could not figure it how to do it easily without using perl.

</comment><comment><USER28> I don't know much about OpenSSL but what I know for sure is that refactoring the code itself might not be enough. There must be some process involved to keep track of what was refactored, what was not, enforce rigorous testing, systematically review the code, and make sure all of that is publicly available (when I look at the website, that information is nowhere to be found)

</comment><comment><USER29> That list misses a an important bullet point:

* Added dozens of tests.

</comment><comment><USER30> Removal of MacOS/Windows junk?

Is this going to be an openbsd only fork (I guess linux will get a build of some sort as well).

<comment><USER14> I'm taking this to mean MacOS as in MacOS 9 and prior, not OS X which is unrelated. Building for MacOS was always an ugly ordeal.

<comment><USER31> Most likely, yes.

I wouldn't be surprised if a lot of the "Windows" support code is of similar age, and thus was actually only needed to support pre-NT Windows.

</comment></comment></comment><comment><USER32> We take for granted the "modern" security tools and libraries.

But at the same time, one would typically assume that something as large as OpenSSL has been reviewed and tested...

</comment><comment><USER33> Appending to the PHK on the OP link, it would be nice to be able to randomly choose amongst several crypto implementations.

</comment><comment><USER34> ...still waiting for an article about a team of super-heroes starting to rewrite OpenSSL in Haskell

<comment><USER35> You mean [http://hackage.haskell.org/package/tls](http://hackage.haskell.org/package/tls) ?

</comment></comment><comment><USER36> Yay! Now OpenBSD can introduce a massive security bug. /s

<comment><USER37> They are long overdue for one =)

</comment></comment><comment><USER38> Wow, this is what the Internet runs on?

</comment><comment><USER39> TLDR; but in my opinion the bug is causes by using C, use well test container structures/functions, like those who test the bound of the container during runtime. Those brave enough could disable the bound-checking at compilation for performance gains.

</comment><comment><USER40> How about adding "completion of our manpages" or "making our website less shitty" to that list? See [https://www.openssl.org/docs/](https://www.openssl.org/docs/)

<comment><USER41> Hmm, no I'd rather them make a quality product than work on their website.

The last thing OpenBSD or OpenSSL needs is a whack of totally-useless js on their website.

<comment><USER5> Documentation would be a HUGE help to the code quality of OpenSSL because someone would have to actually sit down and describe its ghastly interface. Whoever it was would get about half way through it and then stop and say "Wait, what? Seriously?"

<comment><USER42> The only other codebase I've seen that's remotely as hairy as OpenSSL is GCC's gnarly mess. (I've heard it's improved since I looked a few years ago.) And that's notoriously engineered to be difficult as possible to contribute without giving back; I can't imagine what OpenSSL's excuse is. Any sane programmer would have cold sweats even if they understood the implementation because it's so difficult to figure out and verify what the fuck is going on internally with any speed.

Documentation would help, but a good cleanup would make provided documentation much less necessary. Crypto may be difficult to understand, but with clean coding practices and formal verification (even on an audit workflow level) would be a much better investment, IMHO.</comment></comment></comment></comment>


Ask HN: How many "layers" do we go though using a browser? - <AUTHOR>

Was just randomly thinking earlier about how computers are basically built up though layers until it hits machine code. So here's one for you...
How many "layers" (don't know how else to describe it) does the computer go through to hit binary?
Browser < ... < ... binary ? <comment><USER2> From one point of view it's all binary, but here are the layers of one project that I worked on (and this is the simplified version):

Browser > javascript > client library > jQuery > apache > Jboss > Spring > Tomcat> controller logic > business logic > Hibernate > cache> database > jsp > libraries

</comment><comment><USER3> Ermm, 1. Your browser is almost certainly compiled C/C++/ObjC.</comment>


Facebook's New HQ Is Every Office Worker's Worst Nightmare - <AUTHOR> http://thenextweb.com/facebook/2015/05/07/zuck-by-the-watercooler/ <comment><AUTHOR> I'm curious if there is any correlation between the size of the open space and the difficulty to concentrate. My guess would be that you are mostly affected by the close surrounding and that it doesn't matter if the open space is 434,000, 1,000 or even 10 sqft.</comment>


'It's like hell here': Australia bakes as record temperatures nudge 50C - <AUTHOR> https://www.theguardian.com/australia-news/2019/jan/19/australia-swelters-as-relentless-hot-weather-smashes-records <comment><USER2> Is there a reason ground-coupled geat exchangers wouldn't work?

[https://en.m.wikipedia.org/wiki/Ground- coupled_heat_exchange...](https://en.m.wikipedia.org/wiki/Ground- coupled_heat_exchanger)

<comment><USER3> For homeless people?

<comment><USER2> Wow. I skimmed the title and just read the article.

Aside from a single sentence mentioning homeless people mid way, nothing else in the article was geared towards the homeless.

Even the splash image at top was people lounging on a beach midday. Not something you'd associate with homeless people doing.

</comment></comment></comment><comment><USER4> We are in Perth, the car told us it was 41.5 degc on the way to the beach today, but it is very dry with low humidity so not as bad as it sounds. One place was 43.8 at midday, which is over 110F.

We left the house open today and ran the misters, spent some time in the pool, because we are elevated and catch the breeze it was fine, might run the AC tonight for sleeping.

Perth people are used to it, the real problem is the temp of the minimum, for sleeping.

<comment><USER5> Isn't the real problem that it's just getting warmer and warmer? These bouts are getting pretty frequent I reckon

<comment><USER4> Here you go - [https://amp.watoday.com.au/national/western- australia/winter...](https://amp.watoday.com.au/national/western- australia/winter-is-coming-unseasonal-weather-in-sight-for-wa-as-temperatures- tipped-to-dip-20190121-p50spt.html)</comment></comment></comment>


Arduino tweet notifier built with Johnny-Five - <AUTHOR> http://blog.varunkumar.me/2012/09/arduino-tweet-notifier.html?m=0

<comment><USER2> The whole Firmata/Johnny-Five thing is weird to me. What happens is the code you write runs in the host computer (not the Arduino) using nodejs and then it uses the Firmata protocol to tell the Arduino to twiddle some digital ports/read some analog ports etc. The Arduino is a complete slave to the host machine and basically acting as an I/O mechanism.

To me the joy of microcontrollers is that you write some code that runs in them independently of anything else and then you can make cool stuff with them, such as [http://blog.jgc.org/2012/05/simonoids-its-simon-in- altoids-c...](http://blog.jgc.org/2012/05/simonoids-its-simon-in-altoids- can.html)

In the example in the article, why bother with Arduino? Just get a USB LCD display and talk to it directly.

<comment><USER3> I somewhat agree. Getting something working quickly with Johnny-five is very satisfying and to someone who is new to arduino/microcontrollers, that's a huge benefit. In many cases, you can potentially save the time you would have spent researching (for example) wireless boards, potential power issues, waiting on shipping for any extra components, etc.

Then when you're done, you realize your project is tethered to your host machine. But you have something working and can at least continue to play with it while you figure out how to get it working independently.

Also, I'm sure there are some cases where projects will benefit from being tied to the host machine anyways.

* Editing to say that I'm sure the electrical engineers among us will scoff at the dumbing-down of an already dumbed-down Arduino environment. But for the web devs who are starting with zero experience with embedded programming and electrical issues, it really helps to bridge the chasm from a screen to something we can touch.</comment></comment>


"More" is a four letter word - <AUTHOR> https://medium.com/this-happened-to-me/d42e91103b2a

<comment><USER2> So true: "The more options we have, the less satisfied we are with what we ultimately pick."

<comment><AUTHOR> And we drive ourselves crazy before even making a decision... even one as small as what to order off a menu or what kind of cheese to buy. It's just magnified with bigger decisions.</comment></comment>