Ask HN: What are the language/OS choices for low-latency - <AUTHOR>

Hello,
For purpose of an academic research, I need your inputs on implementing the following software so I can give better recommendations to a friend.
The software will display images in frequencies ( Images are flickering between the image itself and a black screen).
When an image is shown a trigger will be sent to an external device, and another trigger will be sent when the image is no longer visible (black screen appears).
The frequency of images is about 50Hz, meaning that for 20ms an image is shown, and for 20ms the black screen is shown.
The synchronization between the code, the visual output of the images and trigger sent to device is very important, it should be as close as possible to real-time. (<5ms delay).
(For the moment we are not bringing the latency of the external device in to account)
As this is a research project, choices of the tech would highly impact the results.
So far the options for the language are:
- C
- C#
- Matlab (and external toolboxes or Matlab's realtime workshop)
- Python (and external libraries)
1 - Considering the performance, development time, availability of external libraries, etc.  which of the above languages you choose to implement the system, and why?
(Python and Matlab are preferable because ease of use and faster development, but doubtful about the required low latency)
2 - What would be your pick for the OS for such software? Which allows the software to have a high priority execution thread. An OS with low latency.
(Probably a RTOS, Real Time Operating System, is not needed)
Any opinion is much appreciated. <comment><USER2> You don't need anything fancy here. Coming from the game industry where frame updates are typically targeted at 60 Hz or 16.66 ms per frame. Even mobile games often target 60Hz. During the 16ms a game typically has to do a lot of stuff such as ai, rendering, user input. So in comparison your needs are very light. You can probably develop what you need in any number of languages and OS. I would go with what is you are comfortable with. Take a look at SDL2, you could probably put together something in one day. The only thing unusual you mentioned is the external triggering mechanism. Whatever this is you will need some kind of device API/interfacing code, so this may decide which OS you will need to use. SDL2 is cross platform so you should be good to go there.

</comment><comment><USER3> Maybe you don't need to do it in software? If you get LCD with LED backlight, you can turn it on and off from arduino or even external device itself. It would have nanoseconds of latency (it depends on length of cables now). If you need software solution I would propose C/C++ and linux, if you use library which handles high resolution timers, it's rather easy to achieve sub 1ms latency.

<comment><AUTHOR> Thanks for your thoughts. The issue is user should be able to interact with the system. For example after viewing the flickering image for couple of seconds, user should make a choice and click/touch.

<comment><USER3> Then combined solution, arduino can be connected to computer and when someone clicks, arduino stops blinking image and notifies program, which does what it needs. Then when program is ready to blink another image, it shows blank screen, notifies arduino to start blinking again and then shows image. Cycle repeats. If you need better responses, you should provide more data about what is required, what you need to measure.</comment></comment></comment>


Redesigning the Windows Logo - <AUTHOR> http://windowsteamblog.com/windows/b/bloggingwindows/archive/2012/02/17/redesigning-the-windows-logo.aspx <comment><USER3> I've actually grown to like the monochrome treatment of the Windows 7 logo: [http://www.seeklogo.com/images/W/windows- logo-C2E55C2526-see...](http://www.seeklogo.com/images/W/windows- logo-C2E55C2526-seeklogo.com.gif)

It looks quite nice on the back of monitor screens, for example.

The extreme fake parallax in the new logo just ends up making it look unbalanced to me, like it's about to fall off my screen. I understand if they want to go all "Swiss" on the next logo...but if so, they shouldn't have had any parallax at all. When I see it, I don't think "Metro", and I don't think "Windows", I just think...apartment building.

Also, see commentary on Brand New: [http://www.underconsideration.com/brandnew/archives/with_win...](http://www.underconsideration.com/brandnew/archives/with_windows_like_these_who_needs_enemies.php)

<comment><USER4> Yeah, they're going somewhere nice with it but it's just not there yet. It actually looks like the logo hates its font and is turning away from it. It's not an iconic symbol by itself and is too plain, boring, and generic to become one later on. If they decide to use it I'm sure it'll stick eventually, it's just right now, it doesn't look done.

</comment></comment><comment><USER5> I've never seen the original Windows 1.0 logo before (or maybe it's just been so long that I've forgotten), but I actually think that's far and away the best logo they've ever had.

<comment><USER6> Interestingly that logo accurately represents the way "Windows" worked in Windows 1.0. It didn't have overlapping windows. So the lines within the windows represent the dividers of the UI between the window areas. You could make one window bigger by moving a divider over, making all the windows on the other side of that divider smaller. There was no concept of windows being in front of or behind each other (like there was on the mac from the beginning. Microsoft obviously started on windows late compared to the mac, and was quite behind at the 1.0 release.)

<comment><USER7> You speak about tiling window managers as if they were already an anachronism in 1985. Yet today, some of us continue to prefer them, and they remain in active development. What good is a window that's partially covered? I either want to completely see it or I want it to be completely hidden from view. The parlor trick of overlapping windows is useless to me.

<comment><USER8> I constantly use overlapping windows.

If I'm tailing a continuous log, I don't need to see the full text of each line, I just need to see when the pattern changes, which I can get by having the first 10 characters peeking out from behind the left of my active window.

My to-do list is big but really the first three words or so are enough to remind me of what each item is; it's behind and to the left of the tailing log.

Finally, I have a few corners of various other apps I'm using poking out all over the place. It's much easier to switch to the window I want by grabbing a corner than alt-tabbing or any other method.

<comment><USER7> Fair enough. It's important to have different paradigms for different work styles. You use whatever works best for you. My point was just that tiling WMs were not anachronistic back in '85.

<comment><USER9> Part of me hopes Windows will rediscover tiling, considering their new-found love for tiles.

In the unlikely event they execute on that I might actually be tempted to try windows again - for the first time in 10 years.

<comment><USER10> Will this be how Metro works?

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Hmmm, I think I've seen it somewhere. Indeed: <http://stocklogos.com/topic/past-and-future-famous-logos>

<comment><USER12> The GAP one is especially funny.

<comment><USER13> Yeah, but not as good as the 2015 Nokia.

</comment></comment></comment><comment><USER14> _2\. It was important that the new logo carries our Metro principle of being "Authentically Digital". By that, we mean it does not try to emulate faux- industrial design characteristics such as materiality (glass, wood, plastic, etc.)_

This is in stark contrast to everything Apple has been doing lately with address books and calendar on iPad trying to look like cartoonish versions of real materials. I prefer "authentically digital"

<comment><USER15> This logo also ties in with the Metro minimalist look.

</comment></comment><comment><USER16> _Paula asked us a simple question, "your name is Windows. Why are you a flag?"_

I have never really asked myself that question as a consumer. I have never felt "confused" that the logo is NOT a window. I have just generally liked Windows, the operating system, and have become fond of the brand after 15 years of use.

This assumes that your logo MUST be a _literal_ representation of your name. I'm curious to know why. Without it, it just seems like an opinion of someone named Paula.

<comment><USER17> It's a stupid question. Logos aren't depictions. They're icons meant to represent something, not describe it. I never questioned the old logo. I actually liked it a lot more than the sad attempt at modernism they're announcing in this article.

It's disappointing that Microsoft doesn't seem to understand this essential design rule. They should read Paul Rand.

 _"Should a logo be self-explanatory? It is only by association with a product, a service, a business, or a corporation that a logo takes on any real meaning. It derives its meaning and usefulness from the quality of that which it symbolizes."_

<comment><USER18> The design was by Pentagram, not Microsoft. They are certainly more than familiar with the work Paul Rand…

<comment><USER19> Your designs can be only as inspired as the pointy-haired boss who approves them.

</comment></comment></comment></comment><comment><USER20> Let's put tons of effort in to make a clean, simple, beautiful logo. And then let our lawyers stamp a honking (TM) on it to ruin it.

<comment><USER21> It annoys me too. Is there anyone here who knows if they are required to put it there to protect their brand, or if it's entirely optional?

<comment><USER22> There are some legal advantages, but it's largely optional. Note, for example, that Apple doesn't use it anywhere other than their written materials.

</comment></comment></comment><comment><USER23> _"By that, we mean it does not try to emulate faux-industrial design characteristics such as materiality (glass, wood, plastic, etc.)."_

Is "materiality" code for "skeumorphism"? Either way, it's a big middle finger to Apple.

<comment><USER7> Ever since Windows 3.1, I viewed the faux 3D window decorations as an insulting waste of my processing time. The Windows logo was merely an extrapolation of MS's attitude that "Now that we have such powerful computers, we can merrily waste all that power with this increasingly bloated but supposedly impressive OS."

That attitude was not unique to them, at all. Apple has been equally guilty of it for longer than Microsoft. It's that attitude that (in part) led me to move to Linux a decade ago, where I could merrily work without suffering the overhead of a GUI.

This new Windows logo is, in my view, the sexiest thing I've ever seen come out of Microsoft. I stopped caring about Windows long ago, except to note that minwin sounded awesome (but never shipped?), Windows 8 Server could run headless (What an innovation!), and PowerShell actually does seem brilliantly innovative (although it's unfortunately integrated with all that .net crap).

Now if this logo accurately reflects their change in attitude, to a minimal OS that stays out of my way, then I've got to say I'm a fan. They're unlikely to win me over from Arch Linux, but for once Microsoft seems to be on the right track. At least with respect to that logo.

Edit: I'm amazed that this post is bouncing between 0 and 1 points. In a discussion of the new Windows logo, I described why I like it so much. If you disagree, feel free to comment. Down-votes should not be used to express disagreement.

<comment><USER24> I'm upvoting just for your edit, as I think disagreement via downvotes is a bit childish and all too common.

Having said that, I doubt Microsoft is moving in a direction an Arch Linux user would call "minimalist".

<comment><USER7> Thanks, icarus_drowning. Having reread my post a day later, I realize that it could have been a lot better written. I suspect you're right, just based on MS history, but that logo certainly looks like a fresh mentality. It's simpler than the Arch logo, fwiw.

</comment></comment></comment></comment><comment><USER25> Hey there, Shetland Islands: <http://en.wikipedia.org/wiki/Shetland_Islands>

<comment><USER26> IT'S NOT A FLAG

</comment></comment><comment><USER24> What makes the new Windows logo appear so weirdly revolting to me is the fact that it is minimalist, but not distinctive. Contrast this to the simplified Apple logo that one sees upon booting OS X-- minimalist, but entirely distinctive.

The new Windows logo is a weirdly parallaxed set of rectangles. Nothing specifically diacritical at all.

EDIT: I think this is why the monochrome Win7 logo that has been posted here is better. It is distinctly _Windows_ , building on decades of brand identity, and a truly unique and iconic. It is almost as if the "flag" shape that Microsoft seems so eager to drop is perhaps their greatest asset.

They've missed the point: minimalism for the sake of minimalism isn't "better". Simple is simple. Beautiful is beautiful.

</comment><comment><USER27> "Your name is Windows. Why are you a flag?"

I wonder how much they paid to listen to an expert ask that question when it was likely asked, and ignored, internally for years.

<comment><USER28> not really a flag... i guess they look at something like this for "window"

[http://fc04.deviantart.net/fs15/f/2007/113/9/d/Old_Window_by...](http://fc04.deviantart.net/fs15/f/2007/113/9/d/Old_Window_by_ofeliq.jpg)

<comment><USER29> It was a flag.

I guess it's supposed to connote triumphalism. As in "yay, it finally shipped!" The NetBSD logo, itself based on a cartoon of daemons hoisting a flag like at Iwo Jima, has many of the same connotations.

Back in Windows 3.1, by going to ProgMan's About box and Ctrl-Shift-Clicking the Windows logo X amount of times, you could trigger an "easter egg", one screen of which was a flag waving with the Windows logo on it. Another of which was a credits scroll with a cartoon figure that had one of four faces: Gates, Ballmer, the Windows dev lead at the time (I forget who but he had a beard); and a creepy looking teddy bear (some sort of internal mascot for the Windows division).

Good times.

</comment></comment></comment><comment><USER30> > We have evolved from a world of rudimentary low resolution graphics to > today's rich high-resolution systems

...but we still haven't learned to not save single-colored pictures as jpeg. Aaa my eyes!

</comment><comment><USER28> I actually like the Windows 1.0 logo...

</comment><comment><USER31> The Pentagram blog also has a writeup on the new logo:

<http://pentagram.com/en/new/2012/02/new-work-microsoft.php>

including a nifty animated logo

<comment><USER32> I really like the video as it actually gives some "context" to the window and its relation to the text. I just wish this view was more transparent in the static version.

</comment></comment><comment><USER33> And here's Apple's rendition of the Windows logo (used for Boot Camp): <http://www.flickr.com/photos/alanchao/127292839/>

</comment><comment><USER34> I think they should have retained the distinctive red/green/blue/yellow colors of the Windows logo. And skipped the parallax.

The Metro look has lots of flat, colorful squares that are just crying out to become a Windows logo. See this Windows 8 screenshot, for example:

[https://en.wikipedia.org/wiki/File:Windows_8_Developer_Previ...](https://en.wikipedia.org/wiki/File:Windows_8_Developer_Preview_Start_Screen.png)

<comment><USER35> Agreed -- it would have been to metro what the windows 1.0 logo was to it's tiled windows. If the colours were deemed too garish, then perhaps varying lightness of one colour.

</comment></comment><comment><USER36> Could someone explain what motivates Microsoft to try and "completely reimagine" their OS every time they iterate? We're talking about an OS, not a video game. I get that they're trying to innovate, but it comes across as self-deprecating.

I love how Apple has maintained uniformity in their UI across the past few iterations of OSX. It's just one less thing to worry about relearning, allowing me to get my work done easier.

<comment><USER37> _Could someone explain what motivates Microsoft to try and "completely reimagine" their OS every time they iterate?_

They don't, though. Vista was, cosmetically, a big leap from XP, but in terms of actual UI it barely changed at all. Start button is still in the same place, maximise, minimise, etc. All still there.

I do really appreciate the little touches MS add, actually. Drag a window to the top of the screen to maximise, to the left to use 50% of the screen, shake the window to minimise all the other ones... I use that stuff every day, and miss it when I go home to OS X.

<comment><USER38> I use better touch tool to do pretty much exactly that on OSX (along with multitouch gestures) <http://blog.boastr.net/>

</comment></comment></comment><comment><USER39> This is great. Not the logo itself, that's just... Something. But it's a very good idea for the clean break from previous Windows logos which were getting more and more complex. And now if you see any of those colorful logos, you will think "oh, that's old", so it's a subtle push to upgrade. Unlike Vista which was like, "oh that's the same old OS wrapped in a fake Apple-like shell."

</comment><comment><USER40> I think the metro UI is genuinely interesting and (dare I say it) exciting. The logo redesign fits with our times - but it's incredibly safe .. verging on dull.

Large corporations have so much ubiquity .. we encounter them so many times throughout our day. Daily exposure ensures familiarity and this familiarity eventually leads to acceptance; in one sense the logo could be virtually anything and would still serve its purpose (e.g. Pepsi redesign).

The age of the logo is over in my opinion .. these days the prominance of a logo has been supplanted by a fuzzier, more Machiavellian concept - <USER2> ability for a brand to connect with its audience on a personal level. In that respect a logo is sometimes simply fodder to for the latter; ensuring the brand and company are spoken about socially (e.g. the gap redesign / 2012 olympics).

It pains me to imagine how much Pentagram were paid for this.

</comment><comment><USER41> trademark symbol really ruins it for me. Windows 1.0 is much better for that reason alone.

</comment><comment><USER42> This is far better: [http://www.flickr.com/photos/36724189@N05/6892887709/in/phot...](http://www.flickr.com/photos/36724189@N05/6892887709/in/photostream)

<comment><USER43> OOo an opening window. I like it. That's re-imagination right there.

</comment></comment><comment><USER26> Yeah! Let's use the flag of Shetland so ... people won't confuse our logo with .. a flag?

Um?

Granted they didn't pick the flag of big country like Sweden or anything, and if Shetland, Calais and Pärnu, Estonia, as well as Iceland in the past, were already using it, why couldn't Microsoft?

On a more serious note, there's lots of valid criticism on this logo, the TM and (R) are clutter, their "Metro style" is not supposed to have perspective, and the font isn't particularly anything either.

But then, it's not _my_ logo :)

<comment><USER44> Not to mention the dot on the i looks misplaced and misshapen.

My first emotional reaction to that logo was 'ewwww'. It's not a good sign when the best word I can find to describe it is gross.

</comment></comment><comment><USER45> Other than the color, it's a decent new logo.

There is, however, one huge flaw: separated from the wordmark, the icon is flaccid. It looks like they were aiming for Apple-like minimalism in both color and form (which isn't to say that Apple is the only company allowed to practice minimalism), but "a skewed, doubly-bisected square" simply isn't distinctive enough to be iconic. I really hope they iterate on it for Windows 9.

</comment><comment><USER46> In the nicest possible way, I'm actually bored of this metro look already and it's not even released yet.

I find that logo boring, some squares with a warp on it. I know it doesn't have to be over complicated but I don't think there is any imagination there at all.

The blue is not very strong either, the branding it quite weak.

Just my opinion, which I am entitled to before anyone starts giving me grief!

<comment><USER47> Boring can be good, from a usability perspective. Metro seems to be their big selling point now and I imagine they want the branding to reflect the usability of the product.

Not trying to give you grief. I agree it's kinda boring, I'm just thinking that maybe it's boring by design.

<comment><USER46> I think I know what they are trying to achieve, they are hoping to get the Apple simplicity, I think.

I didn't think you were giving grief, sounded like constructive criticism, I don't mind that. I just don't like mindless comments that are biased.

I hope this product gets them back in the game, they been a bit behind in innovation lately so I'm looking forward to something radically different.

</comment></comment></comment><comment><USER48> _Using bold flat colors and clean lines and shapes, the new logo has the characteristics of way-finding design systems seen in airports and subways._

Bold colors? As in _plural_ colors? That's the first place they've failed. And trying to emulate an airport's system for moving people around is bad from the outset - those things are meant to be simple and boring. They do their task by being unambiguous, uniform, simple... and bland.

Sure, make your logo work in monochrome for places where it has to be (like the plastic moulding mentioned above), but in both print and digital, a single flat pale blue is pretty tepid. It also doesn't evoke the multitude of colour panes that they're trying to push in every screenshot - why not simply move their four colours to the new 'window'?

<comment><USER49> Well, really, why shouldn't an operating system be "simple" and "boring" and "bland"? I don't need an exciting OS -- it needs to be dependable.

<comment><USER48> It doesn't matter how simple, boring, bland and dependable your _product_ is, your _logo_ should not be bland, especially if you're marketing to the general public.

</comment></comment></comment><comment><USER50> If it didn't say "Windows 8" next to it, I wouldn't have known that it was the Windows logo.

Frankly, it is kind of a let-down. The Vista & Windows 7 "pearl" logo is cool - it is flashy and is artistically impressive with it's lighting effects on the rounded semi-reflective surface. It draws the eye to itself. The new logo is a bland blue monochrome square whose slight tilt causes the eye to passively move right over it without notice.

Is this the first hint that Windows 8 is an operating system to "pass" on instead of adopting?

If Microsoft wants this operating system to grab market share, a bland Germanic logo that tells the user "don't mind me, but your next exit is in half a mile" is a poor first step at grabbing the market's attention, IMO.

<comment><USER51> Really? I bought the shiny blue liquid vista pearl looked a lot like a poor, and very self conscious, attempt to imitate their competitors.

</comment></comment><comment><USER52> I'm curious to see when/if they update the Windows key on laptops and keyboards.

<comment><USER53> I think they won't mind leaving it the way it is for some time. It could be used as a sort of a subconscious metaphor: keyboards/old logo is the thing of the past and touch screen/new logo is "the now".

</comment></comment><comment><USER54> Microsoft's main failure for the past decade or so is that they have repeatedly enacted a flurry of short-term strategies in reaction to whichever direction the industry winds happened to blowing, and did so for just about every consumer tech industry.

Xbox to Playstation, Bing to Google, Zune to iPod. In the process they did very little leading along the way and hemorrhaged money from all of these businesses.

I still like and respect Microsoft as a company and think they can still produce great things, and I hope that the next decade sees them develop some leadership and return to innovation.

</comment><comment><USER55> Heh, the phrase "Authentically Digital" neatly sums up what I like about the Metro UI. If Windows Phone wasn't so locked down, I would get one just because it's the best looking option by far right now.

As for the logo, I think a flag shape would be better than the window shape they have. It feels a little bit generic and almost self-parodying. That said, I definitely see where they are coming from, and it does fit in with their new Metro UI aesthetic.

</comment><comment><USER17> It's rough times when a rectangle split into four is newsworthy and people suddenly realize they prefer something that was designed in 1985.

</comment><comment><USER56> The article and shape reminded me of the logo I did for Compiz before they merged back with Beryl: [http://forum.compiz.org/viewtopic.php?f=135&t=236&p=...](http://forum.compiz.org/viewtopic.php?f=135&t=236&p=1811)

It's by no means a perfect philosophy and account, but designers might enjoy the story.

</comment><comment><USER57> Now it really looks like the Swedish flag.

</comment><comment><USER58> Does the kerning in the new logo look wrong to anyone else? That 'o' has an awful lot of space around it.

<comment><USER34> The kerning immediately irked me, too, but I was thinking the 'W' and 'i' were too close.

<comment><USER59> The way the W sort of points at the dot in the i makes me feel like if someone is poking my eye.

</comment></comment></comment><comment><USER60> Is it really legal to Trademark such an image? There must be a thousand prior iterations of such a thing.

<comment><USER61> A thousand prior iterations in the Operating Systems market? Trademarks are specific to markets; that's why UPS can have the color brown but non-shipping- companies can also use brown.

</comment></comment><comment><USER62> The fierce reduction at the root of Metro's design allowed me to fairly accurately envision the new logo as soon as I read, "It's a window… not a flag."

One color, simple shapes, simple text - MicroSoft clearly has a design vision.

</comment><comment><USER63> If I had to picture "windows logo for metro" something more akin to the Black Flag logo comes to mind. Not this disaster that looks like some shareware multi-monitor utility.

</comment><comment><USER64> Microsoft seems confused, but I am genuinely interested in Windows 8 and Metro. Hopefully they ditch their legacy stuff though and make a clean break a la iOS/OS X

</comment><comment><USER65> "Microsoft and Windows are all about putting technology in people's hands to empower them to find their own perspectives."

This line could be avoided :)

</comment><comment><USER66> This gets worse with each iteration.

</comment><comment><USER67> An ode to friends in Finland? The logo looks very much like flags of Finland, Sweden etc.

</comment><comment><USER68> Okay, so I've read the comments here and I am the only one who really likes the new logo.

</comment><comment><USER69> This is the first logo I haven't liked honestly. It looks unbalanced and unfinished.

</comment><comment><USER70> Sorry, not feeling it. I think the Vista one was the best, to be honest.

</comment><comment><USER71> I checked the Windows 8 wikipedia page b/c I was curious whether someone had already put this image there and I was astonished to find the page has 74 references! By comparison, the page for the Civil War has 31 references -- 22 of them from the same book.

</comment><comment><USER72> well, it's well crafted, elegant, and minimalistic. however, deep down I just feel microsoft is far too sophisticated a company to be monochrome.

</comment><comment><USER73> I'm really not feelin' it. It looks like some sort of industry association sticker that I might see on a window or glass door at Home Depot. I agree with others here, too, that the 3.1 logo seems to be a better example of the clean look they're going for.

</comment><comment><USER74> As for today, in my opinion, windows 1's logo is such a fashion.

</comment><comment><USER75> Giving the blog a name that is easily confused with "Window Steam Blog" says a lot about the team's understanding of how to build user-friendly interfaces.

</comment><comment><USER76> Interesting that they'd choose the Greek flag as the next Windows logo...

<comment><USER26> It's the flag of Shetland, Calais, a historical flag of Iceland and some place in Estonia, but the Greek flag looks different.

</comment></comment><comment><USER77> Too much space between "windows 8" and the actual window.

</comment><comment><USER78> The new logo is an homage to the BSOD

</comment><comment><USER79> > very short list of agencies that we wanted to work with on the redesign of > the logo and were thrilled when Pentagram agreed to join us in the project

Pentagram. Sounds like an appropriate company name to work on the logo redesign.</comment>


The Loma Prieta Earthquake 1989 + 2014 Mashup - <AUTHOR> http://shawnclover.com/2014/10/08/the-loma-prieta-earthquake-1989-2014-mashup/

<comment><USER2> > getting under a doorway is an old wives' tale and

Really? I hadn't heard that before. What are you supposed to do? Sturdy desks/tables would probably be my first inclination, but if that's not available?

> sprinting out of a building onto the sidewalk is probably the worst possible > thing you can do.)

Yeah, you just don't have enough time for that.

<comment><USER3> 16-17 years ago when I lived in Menlo Park we were taught (in middle school at the time) to get under our desks - and obviously (if London suffered from earthquakes) I'd do pretty much the same at work now.

But what's the general advice if you're out and about? Say at a museum, restaurant or stadium (or even walking down the street)?</comment></comment>


Technology Going Downhill - <AUTHOR> http://www.highway12ventures.com/2009/07/10/technology-going-downhill/

<comment><USER2> "some interesting banter about how we (a VC firm) spent our weekends." ?¿?</comment>


The Six Most Common Species Of Code - <AUTHOR> http://www.willa.me/2013/11/the-six-most-common-species-of-code.html <comment><USER2> I like the large-company version with baroque OO/Java appendages hanging off of everything. Those flourishes make it feel safer and more reassuring, I guess.

The math PhD one seemed possibly unfair. It looked more like something that would come from a CS PhD who did his thesis in PL.

It's hard to judge what the right solution would look like. You could go many careers without ever having a real reason to write that function outside of an interview. Fibonacci numbers occasionally come about as a by-product of doing something interesting and useful; in cases where they would be interesting in and of themselves, you would probably be using a library or language, like Mathematica, that would have that built-in.

<comment><AUTHOR> Although the large-company version looks overwhelming to an onlooker, it actually starts from a simple version and then keeps growing as more bugs and compatibility issues are reported. Hilarious though!

<comment><USER2> Possibly. OO theory and Java (I don't really distinguish the two) actively encourage creating lots of classes to do simple things. I think a lot of people would look at that style and nod approvingly at the use of design patterns and correct use of OO idioms. They wouldn't see much wrong with it. OO theory also promotes good, commonsense ideas, like limiting the number of classes and the limiting the complexity of the interactions among them. But they contradict themselves, because lots of classes and complex designs are the inevitable consequence of the style they preach.

Objects can be considered a bad idea on their face, because they are made up of code wrapped tightly around state variables that are supposed to be secret and hidden. The functional style preaches the exact opposite: functions should not have side effects; all their state is either passed-in or returned. The more state your program keeps, and the greater the number of types of transitions that are possible, the greater the number of ways that the overall state can become inconsistent and cause an error. The way to keep the problem in check is to try to make state and state transitions simple and clear. I'm not a functional absolutist -- I don't use functional languages very often, and I see nothing wrong with doing simple things in the most natural style and language -- but I think the point is valid about how to deal with state.

</comment></comment></comment><comment><USER3> "//good enough for the demo, lol"

Killed it. This is hilarious.

<comment><AUTHOR> Totally! The large company version is hilarious too.

</comment></comment><comment><USER4> Don't forget the tests of each. The startup's tests are all commented out because they failed at some point or another, the large company's tests are five times as long as the actual code they test, and all other categories consist of the stubs provided by the IDE.

</comment><comment><USER5> The math PH.D takes a double parameter for b in exponentiate, but the way it functions actually only works for ints.

</comment><comment><USER6> The Math PhD one reminds me of the sorts of symbolic algebra systems that you find in Haskell and Scala.

</comment><comment> vezzy-fnord I feel sorry for that Math Ph.D. writing in Java.

<comment><USER7> I feel sorry for that Java.</comment></comment>


Canada's Einstein crypto exchange shuts down – and all the money's gone - <AUTHOR> https://davidgerard.co.uk/blockchain/2019/11/19/einstein-exchange-all-the-moneys-gone/ <comment><USER2> This will keep happening, as it already has a few times over. Unless they are backed by real solid insurance, cryptocoins and their associated exchanges are a serious gamble, and nearly always a scam if they aren't backed by some big money (banks/insurance/a well-known billionaire, etc). I bet people who got out when the rumours started are doing just fine.

Some companies just can't run their pyramid schemes as long or as well as they hope they can. To those who lost from this exchange remember this: you can't get blood from a stone. If they don't have the money, you won't get your money back.

One of the biggest things the cryptocoin market needs to deal with is to avoid turning out a bunch of pyramid schemes, or folks like Genius who mysteriously "lose" the fiat money somewhere along the line.

Sad to say I'd trust Facebook with cryptocoin over some schmo nobody's every heard of. Stick with something tried and true, even if it is "slower". And gtfo before they go bust. They all will, by design.

PS: I can't wait for someone to invent a crypto-like coin that isn't so harsh on the environment. Any ideas?

<comment><USER3> >This will keep happening, as it already has a few times over. Unless they are backed by real solid insurance, cryptocoins and their associated exchanges are a serious gamble, and nearly always a scam if they aren't backed by some big money (banks/insurance/a well-known billionaire, etc)

This will keep happening as long as crypto exchanges aren't treated like banks and run like banks, IE regulated, with requirements for standard accounting practices, requirements for funds on hand, transparency requirements, and everything else that goes with being a regulated financial entity. In particular, there need to be requirements for a two man rule with oversight from a licensed accountant for the money. Too many of the "fallen" crypto exchanges were just tiny companies controlled by one person who turned out not to have the morals of a saint.

Millions of dollars is too much temptation for most people to handle, and without rules and regulation people have a weak moment sooner or later and they're lost.</comment></comment>


Ask HN: DotCloud vs. Heroku as a server platform for a mobile app? - <AUTHOR>

We're developing a mobile app with an extensive use of server platform (made in Ruby) and exchanging data between users in real time (using our custom protocol). We also anticipate lots of peeks especially on evenings and practically none of use before noon.<p>What would you recommend for such case? <comment><USER2> I have no experience with Heroku, but I would definitely recommend Dotcloud. I run my webapp, iphone and android app with the same backend on dotcloud and I can scale it up or down depending upon the traffic. Except for a few minor issues the service is holding up pretty good.

</comment><comment><USER3> Have your measured latency between the two? Could be a fun experiment.

Is your app a region specific app?

For a mobile app where I want the best possible experience, I'd not host on either.</comment>


Zen, or the art of YC interview - <AUTHOR> http://www.defmacro.org/ramblings/yc-interview.html <comment><USER2> Good god. We don't deliberately play good cops and bad cops to push people's buttons. We wouldn't have the energy to do that all day long for 3 days. We just have a lot of questions to ask and only 10 minutes to do it in, and we have to switch context completely every 15 minutes. This means there's a lot of randomness in the questions. You get easy ones mixed randomly with ones that seem very critical, but it's not deliberate.

<comment><USER3> I find it sad in a way that although you've put a really good thing together, it's started to become _the goal_ for some people, instead of just one of many ways to enable them to reach what should be their actual goal.

<comment><USER2> Actually that is a problem. We started to notice about two years ago that we were getting applications from people who seemed mainly to want YC on their resumes. We try to filter those out, but we still get fooled occasionally.

<comment><USER4> How serious could it get?

</comment></comment></comment></comment><comment><USER5> _You've already read six paragraphs of drivel that won't help you, so I'll now try to redeem myself and give a few useful pieces of advice._

That's a writing anti-pattern. Please don't force me to read deliberately bad text, take the time to rewrite it so that the non-drivel paragraphs come first, and nothing else after them.

</comment><comment><USER6> Man I love Felix Dennis!

"I'll leave you with a timeless piece of advice from Felix Dennis:

The first step? Just do it And bluff your way through it. Remember to duck! Godspeed ...

and Good Luck!"

</comment><comment><USER7> Wow, that was useless.. Will people really upvote _anything_ that has "YC Interview" in the title?

<comment><USER8> I know this might be little consolation, but if you knew the author, you might appreciate this post a bit more.

<comment><USER7> Actually I really appreciate your comment.. I took the time to go back to his page and read some of his other essays, and yes, there is some great stuff there.

Maybe his latest post just needs to be edited down a little bit.

</comment></comment></comment><comment><USER9> Summary: Be the ball.

</comment><comment><USER10> I wish Mr Def Macro would go back to talking about Lisp or computing science or something interesting...</comment>


Show HN: Discover New Foods High in Nutrients - <AUTHOR> http://www.getnutrient.com/ <comment><AUTHOR> I have been pretty familiar with a food dataset I have for my enterprise app for a while, and thought it would be neat to have a query engine based on nutrient.

Standard stuff, hosted on Rails, EC2, RDS. The only funky thing is I had to make extensive use of memcached as the core queries were getting unwieldy and took lots of time.

<comment><USER2> This is neat! But I would definitely use typical servings instead of the standard 100g servings. No one is going to have the money to eat 100g of oysters to get the 262% RDA of zinc, so it would be better to have it in the context of how people _actually_ consume these foods.

<comment><AUTHOR> Actually everything is supposed to be based off one typical serving, so if anything is off, it is wrong and I need to fix it :). If you take a look, the gram weights are different for each item.

I checked and it says 6 oysters weights 84 grams. How many oysters are eaten in a typical setting?

</comment></comment></comment><comment><USER3> Data source?

<comment><AUTHOR> USDA SR-28

[http://www.ars.usda.gov/Services/docs.htm?docid=8964](http://www.ars.usda.gov/Services/docs.htm?docid=8964)</comment></comment>


Why Clojure? - <AUTHOR> http://thecleancoder.blogspot.com/2010/08/why-clojure.html

<comment><USER2> Î really love clojure, but this article is _not_ a good plaidoyer, for a lots of reasons, the first and most pregnant being the ability of the author to vastly traverse subject he is probably not an expert about.

> Functional programming, of the kind shown in SICP, is a way to write code > that does not manage the state of variables, and could therefore be > partitioned to run in parallel on as many processors as you like

This is kind of true, but totally misleading, because very few tasks are actually easily paralelizable this way. When you stumble on one, you know it, and replacing map with pmap certainly _is_ a joyful exercise, but this kind of parallelization are easy to do in __any __languages. The hard parts are those when you need to access shared state across threads. The facilities that clojure provide in this respect, while innovative and enlightening , have benefits that largely remain to be proven.

> languages like F# and Scala which have a complexity and "quirkiness" > reminiscent of C++

Erm, sorry, what, F# reminiscent of C++, did you even try to read some code written in F# ? F# has one of the tersest syntax you're likely to find in any language. As an ML descendant it does already have a very clean syntax, and the addition of significant whitespace only adds to that.

> You can write Clojure code that derives from Java classes and overrides Java > methods. In short, if you can do it in Java, you can do it in Clojure.

Yeah sure, but in practice, most people that says that didn't ever had to _really_ handle a non trivial project with java interaction in it. I did. And frankly it can get ugly. It's good to have it, but ideally, all should be encapsulated in idiomatic clojure wrappers. While this is not that hard because java interaction is very well thought, it's a long and boring process, and when you're in the middle of a project and just needs some bit of functionnality that isn't in a clojure lib (and trust me there are still a lot of those), you tend to just use the java interop in place. And then you get back and read your code, and you cry.

In short, this is just a rehashing of what you usually hear about clojure, but with no insight of real use. My (uninformed) guess, is that the author probably didn't use clojure a lot, and frankly, this kind of stereotyped talk gets old.

<comment><USER3> Your response is more misleading than the article:

 _> but this kind of parallelization are easy to do in any languages._

Not if you have a GIL. Even then the languages without that limitation do not make what pmap does ... easy.

 _> [STM] have benefits that largely remain to be proven._

I always find this statement to be misleading. STM has been shown to greatly benefit the _correctness_ of concurrent programs, you're managing that less by hand. The only thing that seems to be unproven is whether the performance tradeoff is worth it. It'd be nice to see some numbers that show what you lose in X% of the performance vs removing X% the amount of locking code.

 _> [Java interop] And frankly it can get ugly. It's good to have it, but ..._

Yet far less tedious and simpler than writing a C module, or a C library binding. If you're comparing against that, Clojure's Java interop story is damn heavenly.

 _> In short, this is just a rehashing of what you usually hear about clojure, but with no insight of real use ..._

Perhaps for you and I. But there are a lot of people in this big wide world. Uncle Bob taps into a community that's quite different from the language enthusiast crowd of HN.

Your viewpoint more myopic than the OP. Yet you get upvotes. Oh well.

<comment><USER2> >Your response is more misleading than the article

Well maybe, but i feel like you are purposedly misunderstanding me. This was not a rant about clojure, but about the article, yet you take my quotes out of their original context and make it seem like so.

> Not if you have a GIL.

Ok, fair point. But that's not the question. The OP was claiming functionnal programming made parallelization a breeze, which is a very stereotypical position you hear a lot lately. Well, the kind of parallelization which is made a breeze by FP is also the kind that is very easy, not in any language, but in any language claiming to have parallelization features, cf. delirium's answer.

> Yet far less tedious and simpler than writing a C module, or a C library > binding

Okay, i was merely reacting to the claim that "anything you can do in java you can do in clojure". Which, for taking your comparison, would be like saying "anything you can do in C you can do in Python". Okay not exactly like that, but the fact remains. The impression the OP gives in this regard is that , since there is this java interop, the library problem is solved. Well no, it is not, and very far from it. If this kind of bullshit marketing talk went away, you'd see less newbies complaining in #clojure or on the group about how it's hard to do X.

> Uncle Bob taps into a community that's quite different from the language > enthusiast crowd of HN.

But i'm commenting on HN, not on his blog. This is for a reason. I'm judging the interrest of the article relatively to the crowd here.

On a side note, i did not even notice it was Uncle Bob. If i had, my rant would have been even worse, or i would not had written it maybe. It does indeed exhibit the same emptyness i feel from every of his articles. Maybe it's a good article, and i'm overly critical, and i should probably try and write my own article about why i love clojure, to realize it's not necessarily that easy. But i have a very bad reaction to marketing talk.

</comment></comment></comment><comment><USER4> You know, I really _want_ to like Clojure, but so far I'm finding it a bit of a slog, for the following reasons:

1\. stack traces are very hard to decipher

2\. ubiquitous laziness can lead to some really subtle bugs

3\. the syntax can be extremely obtuse, moreso than other lisps

4\. the basic ADT is just a keyed map, which provides a lot of flexibility but also can make data modeling very opaque, even compared to other dynamic languages

5\. immutable and recursive as a default takes a lot of getting used to. things I could dash out in minutes in ruby take me hours sometimes

6\. other languages have caught up enough that Lisp macros are not as game changing as they might have been ten years ago

I embarked on a project recently to explore machine learning algorithms, implementing them in both Scala and Clojure at the same time. I expected this to be an easy win for Clojure but, to my surprise, I'm _much_ more productive in Scala, my code has fewer bugs, and I can refactor it much more aggressively. I realize that this isn't an either/or thing and it may be entirely my shortcomings at play here, but my instinct is that although Clojure is a superb lisp, it's still a lisp, and it's going to be a niche that most programmers won't choose to occupy.

<comment><USER5> "2. ubiquitous laziness can lead to some really subtle bugs"

I find myself implementing Iterable wrappers more often in Java now, largely due to the influence of Clojure lazy seqs. Then I can use the abbreviated for loop syntax, for example, without creating a ridiculously large ArrayList in memory.

I know that the Iterator pattern has been around for a long time, but I never realized how broadly it could be applied to use high level iteration constructs while keeping a minimal memory footprint, before I got used to Clojure.

So Clojure has made me a fan of lazy evaluation, even in Java.

<comment><USER6> It is also very easy in Python:

Use generator list comprehensions:

        (x for x in xs)

instead of building the full list:

        [x for x in xs]

Use generators instead of plain functions when you can.

Learn to use itertools module: <http://docs.python.org/library/itertools.html>

I use these often:

        * chain()
        * imap()
        * groupby()
        * takewhile()
        * tee()
        * izip()
        * izip_longest()
        * permutations()

You can make you code quite "lazy" if you practice enough, and eventually it just becomes a habit. Whenever you do anything you start asking yourself : "can I do this in a lazy way?"

<comment><USER7> Iterators in Python are slightly different from lazy lists in languages like Haskell and Clojure. In Python, iterators are stateful; calling next() moves the iterator on, discarding the previous head. In Clojure, a seq has no state, and the head is not automatically discarded when the next item is accessed.

</comment></comment></comment></comment><comment><USER8> I wish someone would take the compiler infrastructure of Go and would make native Clojure with it, with an easy access to C instead of Java. I need a good exit path from things like Java, not something to just ease the pain.

<comment><USER9> If I recall correctly this was one of the goals of Guile, which is essentially Scheme, arguably cleaner than common lisp.

<comment><USER8> I won't get into the CL vs. Scheme pissing contests, but if I remember correctly Guile was basically RMS' answer to Tcl, a language he didn't particularly like. And it was more intended to replace Emacs Lisp, while most of the infrastructure would still be written in C. Running on Hurd, of course.

<comment><USER9> That sounds correct, but also embeddable and callable from C. It's unfortunate it didn't succeed in replacing elisp. Emacs would be even more awesome than it is today.

I'd love to see the same thing done with Clojure and Go.

<comment><USER8> I'd much rather have a proper, powerful Lisp than being forced to settle on alternate soft and hard layers. But the Common Lisp Emacs project never went anywhere.

</comment></comment></comment></comment></comment><comment><USER10> Great article overall, but it makes the same mistake as many other Clojure overviews: implying that STM is the only means of managing state. Clojure, in fact has four main ways to do state, one of which is a (thread-local) normal variable. Each is appropriate for a different sort of stateful operation; STM is the most complicated.

<comment><USER2> It is not a great article overall. It is well written, and conveys a lot of enthusiasm, but has no insightfull/new content in it. I've read every clojure news and article for six months, and this just basically rehashes every "I love clojure article" i ever read.

<comment><USER11> If you've been devouring every bit of Clojure-related writing (which I've also been trying to do), then as swannodette said to you elsewhere on this page, you very well may not be the intended audience :)

</comment></comment></comment><comment><USER12> I agree with the article, and I have to admit I think Rich Hickey (creator of Clojure) is a brilliant man. If you check into his thoughts on programming you will find some very interesting arguments. His talk on state and identity: [http://www.infoq.com/presentations/Are-We-There-Yet-Rich- Hic...](http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey) is awesome, and I can not recommend highly enough.

If you want motivation for learning a lisp (Clojure is one) check out <http://www.paulgraham.com/avg.html> if you have not already done so. An awesome essay to re-read if you have not done so in a while.

Edit: Fixed Link (thanks atuladhar)

<comment><USER13> Can you explain the point he is making in "Are we there yet"? I have watched it but I didn't really get a different viewpoint on state and identity. That could be because I already had the same viewpoint, but I doubt that.

<comment><USER12> The text below is directly lifted from the Clojure site at: <http://clojure.org/state> The article describes it more clearly and succinctly then I could.

There is another way, and that is to separate identity and state (once again, indirection saves the day in programming). We need to move away from a notion of state as "the content of this memory block" to one of "the value currently associated with this identity". Thus an identity can be in different states at different times, but the state itself doesn't change. That is, an identity is not a state, an identity has a state. Exactly one state at any point in time. And that state is a true value, i.e. it never changes. If an identity appears to change, it is because it becomes associated with different state values over time. This is the Clojure model.

<comment><USER13> So is he saying that you should not nest refs? i.e. you should not create a vector of refs and assign the vector to a ref. Because now the state itself can change.

</comment></comment></comment></comment><comment><USER14> Not sure I'll have time to check out Clojure any time soon, but this post convinced me I want to read SICP. Despite hearing great things about it, my impression was always that it was much better for beginners, and wouldn't teach me _that_ much. Sounds like I was wrong.

<comment><USER15> The entire book is available on their website: <http://mitpress.mit.edu/sicp/>

Wanted a deadtree version to read at my leisure, but at $70 I think I'll read the HTML version.

EDIT: found a PDF version: [http://www.scribd.com/doc/15556326/Structure-and- Interpretat...](http://www.scribd.com/doc/15556326/Structure-and- Interpretation-of-Computer-Programs-SICP)

<comment><USER16> There are used copies available on Amazon (and elsewhere too, I'm sure) for about $40. Recycle, guys!

<comment><USER13> Honest question: does it take less energy to ship the book across the ocean or to print a new one (with a home laser printer and ordinary paper).

</comment></comment></comment></comment><comment><USER17> Bob's Railsconf 2010 talk, "Twenty-Five Zeros", is also worth a watch if you enjoyed this post of his.

<http://www.youtube.com/watch?v=mslMLp5bQD0>

</comment><comment><USER11> Excellent. Since picking up (and falling in love with) Clojure a few months ago, I've had multiple "Why Clojure?" discussions with friends and co-workers. This post is short, sweet, and hits all the points I've tried to make (poorly) to others. Saving it now as ammunition for the next "Why Clojure?" discussion :)

</comment><comment><USER18> I will be forever grateful, that my University taught Scheme/Lisp with this book (and others) as introduction to programming.

While I have never used Lisp or Scheme in my professional life, that set of undergrad courses more or less defined my mindset when it comes to algorithms and their expression and has lasted to the present day (some 20 years later).

<comment><USER19> Agreed. I went to the University of Minnesota which modeled its curriculum after the MIT CS program. I was saddened to hear they were ditching Scheme for their intro class. I don't see why they felt the need to update to a more "modern" language. It's impossible for any language to ever more directly express the basic concepts of functions and recursion than lisp. Why muddy the waters with syntax?

</comment></comment><comment><USER20> I guess there's an established trend how one writes about switching to new language: it's usually a long blog post containing facts distilled by others, sometimes mixed with author's wishful thinking. All that because author probably feels a need to justify his decision.

It's normal - we usually want to justify the reasons why we do stuff, esp. when the new way is time consuming. It's also great that the OP is willing to dive into new waters. But such article cannot be taken as an expertise, even for the reason that it's not from OP's experience (yet).

</comment><comment><USER21> A more complete and detailed answer to this article's question is provided by the free Chapter 1 of Amit Rathore's book-in-progress, Clojure in Action:

<http://www.manning.com/rathore/>

As Rathore puts it, Clojure's power is drawn from three mutually supportive design decisions: 1) it's a Lisp, 2) it's functional, and 3) it's on the JVM. Read Chapter 1, it's well written.

</comment><comment><USER19> I've never more than dabbled in the functional programming world. I've been pretty happy professionally in Ruby for the last 5 years. However, if there's one thing that I learned, it's that unit testing is an invaluable sanity check but a poor substitute for mathematical rigor.

I see my trajectory over the next 5 years to involve learning Haskell well enough to know the functional approach for a much wider set of problems, but then falling back to Clojure professionally because, you know, I gotta get shit done.

<comment><USER22> Unit testing is a poor substitute for strong typing in this context.

<comment><USER19> and purity.

</comment></comment></comment><comment><USER23> Anyone have any recommendations for trying Clojure? I'm an Emacs user on Ubuntu and I'd like to try it out but there seems to be quite a lot of choice about how you do things I'm a bit lost.

Any up to date blog posts on setting up Clojure and connecting Slime to it? The ones I've found are always slightly out of date (apparently starting swank from Emacs isn't the preferred way to do it anymore?)

<comment><USER24> Yeah there are a bunch of different ways to start Clojure with a REPL and/or swank server running. Maven, Leiningen, and cake are all build tools that also do dependency management - great when you're working on a complex project but have some amount of setup overhead for their project descriptors. cljr is a different option that lets you start a REPL anywhere, with no project descriptor, and also takes care of setting up your JVM classpath with any dependencies you've installed via 'cljr install'.

All of these tools encourage running the JVM outside of emacs, rather than as an inferior-lisp, and have some command line option that starts a swank server on a specified port. After that you can just do M-x slime-connect and get hacking as usual =)

</comment></comment><comment><USER25> > become enamored with a language that has roots that go back to 1957, i.e. > Lisp?

Duh. What does that punk think that the "60" in Algol 60 stands for? Y'know, the bondage and discipline languages also have an ancestry that goes pretty far back.

And I'd choose C++ (or Java) over Algol just as I'd choose Clojure over Lisp1.5 any time.

</comment><comment><USER13> I'm eagerly awaiting the binary release of ClojureCLR.

</comment><comment><USER26> ... _any time a Clojure programmer want's to change the state of a variable, they must do so using the same kind of transaction management as they would use for a database._

Not a good thing. The word 'must' is the glaring red flag.

<comment><USER27> It _is_ a good thing.

And it's as simple as e.g. (dosync (ref-set ref newval)). In fact, if you find yourself doing it a _lot_ (don't, please!) then define yourself a little function (defn rset [r v] (dosync (ref-set r v))).

Must isn't that bad of a word, and it's a Lisp: what kind of boilerplate do you expect to write? I prefer it going on none.

It's definitely worth checking out, and if you need state, and you'll need it rarely if at all, you're better served using the built-in STM and the wonderful functions that allow you to manage it (like _add-watch_ ; what a lifesaver in a state-heavy app like a GUI) to handle the mess.

<comment><USER26> I don't understand you. If you don't like to write boilerplate, why do you appreciate Clojure making mutation verbose?

There are times when the imperative style is more natural.

<comment><USER26> _I don't understand you._

By this I merely meant, "I don't understand what you are saying". Hope that was clear.

</comment></comment></comment></comment><comment><USER28> only when pg will use it.. =)

<comment><USER28> Hey, what's wrong? It is so cool and modern Lisp implementation which runs on even more cool and super-efficient JVM (who said Ernang?!), so, why not?! Let's port HN news app to Clojure and see how much users it can handle. Every one know that Jetty is so cool! ^_^

</comment></comment><comment><USER29> Because it's so clean.

</comment><comment><USER30> I don't think so I'll take erlang over clojure any way.</comment>


Starbucks Chooses Square for Payments - <AUTHOR> https://squareup.com//news/releases/2012/square-starbucks

<comment><USER2> I've heard of killer apps but I wonder if there's such a thing as a killer vendor/customer.

I hate being too dumb to work at places like this. :(

<comment><USER3> I think you're right. Starbucks is absolutely the best possible partner/customer to help Square make "Pay With Square" a broad reality.

<comment><USER4> Furthermore, I think that Starbucks _made itself_ the best possible partner/consumer for "Pay With Square" by pursuing the Starbucks Card program outside of traditional payment solutions. Ostensibly, they stumbled upon the opportunity for such a non-traditional payment system, and thus validated the Square strategy prior to the partnership.

</comment></comment></comment><comment><USER5> Out of curiosity I looked up some of the earliest HN stories on Square, posted about 2 years ago:

Square <http://news.ycombinator.com/item?id=970565> (0 comments)

Square Worth $40 Million Before Launch <http://news.ycombinator.com/item?id=970880>

Jack Dorsey on Square, How it Works & Why it Disrupts <http://news.ycombinator.com/item?id=971596>

Square: All Hype and Little Value for Small Business <http://news.ycombinator.com/item?id=1148953>

<comment><USER6> Ha. The last link (points to a FeeFighters blog post) has the hallmarks of a "next big thing"--namely, dismissed first as a "toy".

cf. [http://cdixon.org/2010/01/03/the-next-big-thing-will- start-o...](http://cdixon.org/2010/01/03/the-next-big-thing-will-start-out- looking-like-a-toy/)

</comment></comment><comment><USER7> Interesting move considering Starbucks already had a pretty effective mobile payment app. I use it regularly, and it works very very well.

</comment><comment><AUTHOR> Link to an article that explains it as well: [http://content.usatoday.com/communities/technologylive/post/...](http://content.usatoday.com/communities/technologylive/post/2012/08/starbucks- to-accept-square-mobile-payment/1#.UCHlpMiNZho)

<comment><USER8> Interesting: "As part of the joint venture, Starbucks will invest $25 million in Square and hold an equity stake. Howard Schultz, Starbucks chairman and CEO, will join Square's board of directors."

Strange: "After ordering an item, they waive the phone on a scanner."

<comment><USER9> Just a lazy journalist; spell-check won't fix heterographs.[1]

[1]: <http://en.wikipedia.org/wiki/Homonym#Related_terms>

</comment></comment></comment><comment><USER10> You already let the Barrista tag your coffee with your name at Starbucks. Its only natural that now you get to pay for coffee with your name.

</comment><comment><USER11> This is a big deal. Quite honestly I've never understood the benefit of the traditional Starbucks app, where you swipe your phone in front of their scanner. How is This any different than giving them your cc or sbux card. Paying by name is super convenient, and could help reduce the lines especially with regulars. I've tried it recently at sight glass and it works great.

<comment><USER12> With the app, you don't have to carry the Starbucks card with you. Not a huge deal but some people will enjoy one less card. With just the credit card, you don't get rewards.

</comment></comment><comment><USER13> Square have still yet to break into the European market despite claims from their vanished blog that they were planning to in 2012. This was at the same time as taking Branson on board.

It might stand that they're trying to strengthen their core business in the USA, Starbucks could be a good gateway for them moving forward into other countries.

<comment><USER14> It's almost impossible for Square to launch in Europe with their traditional product (Swipe) but they probably could with Pay with Square.

Their European rival had to jump through huge technical hoops (payments offsite, can't swipe, etc) to develop a product and it is a huge box off the phone and they are now trying to jump through more as credit card providers have raised their barrier.

</comment></comment><comment><USER15> Okay. I've just not sure I want my name and face popping up on a console at Starbucks just because I'm walked in the place.

Especially not unless I have HUD glasses that will tell me the cute barista's name.

<comment><USER16> You have to enable the automatic feature, otherwise it's a manual slide to open a tab process.

</comment></comment><comment><USER17> I don't see how this benefits Starbucks.

<comment><USER18> Me neither. No restaurant can afford 2.75% per transaction going to Square versus the 1.64% which goes to Visa/Mastercard/Discover[1]. Fortunately for Starbucks, people are willing to pay much more for their cup of coffee than it costs them to make.

[1] <http://payments.intuit.com/pricing/>

<comment><USER19> At the scale Starbucks will single-handedly bring them to, you really think they'll be using the default pricing?

Regardless, they're very clear on the post:

> _Square will process Starbucks U.S. credit and debit card transactions, > which will significantly expand Square's scale and accelerate the benefits > to businesses on the Square platform, especially small businesses, while > reducing Starbucks payment processing costs;_

Starbucks saves payment processing costs. That's benefitting them.

<comment><USER20> Square is probably charging cost, or even losing money on this one, just to gain the market share.

<comment><USER21> Loss leaders can be a good idea sometimes, but when you're dealing with the sort of volume that Starbucks deals with, losing any money at all per transaction is a truly terrible idea.

</comment></comment></comment></comment></comment><comment><USER22> The real question now is how long will it be until Apple integrates it's own credit card payment system into iPhones to kill Square.

<comment><USER23> Unlikely that such a thing would be deadly:

\- Square likely has an exclusive or near-exclusive deal with Starbucks.

\- Starbucks has fairly close ties to Apple, if such a system were coming they'd want to be sure Starbucks was involved (so they'd already know about it)

\- Assuming #2 is true anyway, that would make the $25 million investment incredibly risky; their stock would be murdered once the news came out.

(Side note: assuming all of the above, this essentially kills any rumors of Apple buying Square; why would Starbucks bother investing in them and getting on the board?)

<comment><USER14> The interesting thing is at the Apple keynote they announced Passbook and showed a Starbucks card, the passbook product is lacklustre in comparison. This shows Apple is betting on this and Starbucks would rather go with a solution that fits in with their current message (using your name).

<comment><USER23> I'd totally forgotten about that demo. So either Apple doesn't have a first- party payment system in the works (I honestly don't blame them, it's hard business) that they've told anyone about, or they do and Starbucks said no thanks.

</comment></comment></comment></comment><comment><USER24> Despite some reports, apparently Starbucks will not be supporting the Square pay-by-name/geofencing features: <http://www.splatf.com/2012/08/starbucks- square-payments/>

</comment><comment><USER25> >iPhone, iPad, and Android devices

Hate the double "and", listing should be alphabetical always! _cough cough_ (not ocd) _cough_

<comment><USER26> Ordering by relative importance is vary natural in spoken English. Depending on the type of writing / audience using the natural English rules vs 'proper' grammar is fine.

</comment></comment><comment><USER27> this is a huge deal

</comment><comment><USER28> Perfect deal for seeding Square broadly. Awesome!</comment>


I want a "plonk" button in Gmail - <AUTHOR> http://workin-progress.posterous.com/37049855 <comment><USER2> _I am surprised that there are people that actually unsubscribe from newsletters. I never to that. Instead I filter out the sender from my Gmail_

ummm, why surprised? why have your email in a database you don't want to use, or why have it send emails you won't read anyway? I think unsubscribing is fair for both sides.

<comment><AUTHOR> it takes time to unsubscribe, sometimes it's not that easy and sometimes "unsubscribe" is not respected (or mysterious "server error prevents me from unsubscribing) - of course that's not the case of yahoo groups or google groups, but there are quite a few companies that do that.

<comment><USER3> The vast majority of the time it's a one or two click process. A few sites require you to log in to change your email preferences, but they're few and far between.

The one exception I can think of off the top of my head is MTV Networks, who got a hold of my email somehow and won't stop spamming me, even after I've unsubscribed at least a dozen times.

<comment><AUTHOR> That's what I'm talking about. We are hackers. Why should we settle for a mediocre solution (like fighting with MTV from time to time) when there is a better around the corner?

<comment><USER4> A better solution isn't to just block all unwanted messages... a better solution would attempt to unsubscribe, and only if that doesn't work, block the sender.

<comment><USER5> A better solution is one button which both attempts to automatically unsubscribe, and blocks further emails if the list does not respect the user's choice.

Why should I have to do extra work just because MTV is hostile to users? Or because Hallmark's database takes 10 days to update, gamespot's unsubscribe servers are permanently broken, or because some crappy website demands your login info?

<http://imgur.com/mzqKk> <http://imgur.com/Yn5eD> <http://i.imgur.com/yoky5.jpg>

<comment><USER6> Google's Report Spam button is actually pretty close to that. If the message has a List-Unsubscribe header, it offers to use that after hitting the Spam button.

And usually they don't really take 10 days, but that's the limit the law permits so they give themselves as much wiggle room as possible.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> That seems like a good idea, until you plonk your US Airways newsletter and realize that you've plonked future flight confirmations as well.

<comment><USER7> Yes, this is precisely what I thought. I have a gmail label, "bacon," for such cases. I filter bacon by applying the label and then skipping the inbox (archiving). So, for example, my Priceline junk mail doesn't appear in my inbox, but it's not lost if I ever do make a priceline request.

<comment><USER8> I call it marketing, but it would be nice if there were a way to add an address to the filter with a single click.

<comment><USER9> There already is. Its built into emails already.

If your username for gmail is email@example.com ...

Now if you want to use ebay with that address, use email@example.com Now all mails will come in, pre-tagged for bins. They've done your work, for you.

Edit: its also good for finding out who's sharing addresses without your consent.

<comment><USER10> That works OK until you hit a site that has a weird method of processing payments, and now you can't pay for your order from firstname.lastname@example.com because your paypal address is firstname.lastname@example.com and they have to "match" (and ofc you had no way of knowing this before signing up). Or the sites that don't think "+" is a valid email address character. Or the sites that strip out the "+blabla" because they've decided they're too special for filtering.

</comment></comment></comment></comment></comment><comment><USER11> Obviously, unsubscribing is more polite.

That said, maybe GMail and friends could add a button based on a List- unsubscribe header?

<comment><USER12> If you mark a message as spam and there's a Unsubscribe header, Gmail asks you if you want to unsubscribe from the mailing list itself.

<comment><USER13> Marking a newsletter you signed up for as "spam" seems pretty harsh.

<comment><USER14> I've never signed up for an email newsletter in 15 years online and I get 100 messages a day into my Gmail junk folder, and 10 into my inbox, masquerading as newsletters. They're spam. Pretending that people sign up for these things is a tactic the spammers are using to discourage constructive discussion.

<comment><USER15> >Pretending that people sign up for these things is a tactic the spammers are using to discourage constructive discussion.

It was quite common back before RSS feeds and always on internet. One would have newsletters delivered to a MUA and then go offline to save precious minutes from your heady 14.4kbps connection costs.

People still do sign up for newsletters. But there is also a lot of spam masquerading as requested mail.

</comment></comment></comment></comment></comment><comment><USER16> I think that if I'm taking the time to sign up for a newsletter and add to the costs of hosting that email account, then unsubscribing when I no longer need it is the right thing to do. I also find it to be the easiest thing to do.

In the few cases where I unsub and still get emails, I'd prefer the "Report as Spam" button would just block that sender's address in the future.

</comment><comment><USER17> Don't see the point. Unsubscribing is generally faster than going through the motions of setting up a filter. It's also much more polite. I reserve filters or "mark as spam" for only the stuff with a missing or malfunctioning unsubscription option.

<comment><AUTHOR> Well - that is the point! The filter should be faster than the "Unsubscribe"! :)

<comment><USER3> I'm not convinced this is a real problem though. I don't think I've ever thought to myself "man, hitting this unsubscribe link is so annoying, I wish there was a better way!". Plus, why keep all of these emails in a label when you can just opt-out of them at the source?

</comment></comment></comment><comment><USER18> gmail actually will attempt to unsubscribe you automatically when you mark a newsletter as spam, sometimes.

screenshot: <http://imgur.com/HqbVm>

so it seems they are trying to solve this problem in a more complete way then filtering the mail thru personal mail filters.

</comment><comment><USER19> A couple of companies regularly sent me spam disguised as a newsletter. I'm completely sure I didn't subscribe to anything from them. Their unsubscribe systems and polite requests didn't work. The worst was that GMail didn't learn to mark them as spam.

I found a nice GMail feature: I could create a filter that killed their spam from my inbox and then sent a copy of the message to the addresses that I chose, that were the abuse, postmaster, etc. that previously had ignored me. I also added addresses from DNS database and the staff of the spammers.

Unfortunately this feature seems to be disabled for some time now. The filters I created are still there, but I can't create more of their kind.

</comment><comment><USER20> Windows Live Hotmail already does a similar thing with its new Sweep feature.

<comment><AUTHOR> cool! :)</comment></comment>


Cracking The Credit Card Code - <AUTHOR> http://www.mint.com/blog/trends/credit-card-code-01202011/

<comment><USER2> I wrote code for this ten or so years ago. I don't say that to brag, but to express my annoyance at every credit card form I encounter on the internet. Why do you ask me for my number _and_ what type of card I've got?

<comment><USER3> Well, people are conditioned to expect it now, so taking it out could potentially have adverse effects. Might make an interesting A/B test.

<comment><USER4> How about just putting the form for the number first, and the let the drop- down menu for the type of card automatically select the right type---while still allowing user interaction.

<comment><USER2> The worst ones do half of each -- they tell you that you entered a Visa and didn't press the Visa button and ask you to go back and press the Visa button. Thanks.

</comment></comment></comment></comment><comment><USER5> <http://en.wikipedia.org/wiki/Luhn_algorithm>

</comment><comment><USER6> This is a bad submission: it's trivial to get this info. Flagging. Sorry I'm also posting this comment. Top hit for "credit card number format" has all this info. <http://www.merriampark.com/anatomycc.htm></comment>