The State of Desktop Applications in Node.js - <AUTHOR> https://nodesource.com/blog/node-desktop-applications <comment><USER2> There are a number of ways to make desktop apps with JS. TideKit/TideSDK uses V8 IIRC. On Linux, Gnome has the GJS API. Tint and Quaxe are two more promising newcomers. All of these use a JS engine to create native platform UI controls. So for anyone who thinks JS is limited to webviews, you missed the boat. Thousands and thousands of native apps are already created and shipped on a JS core.

The async nature of UI and I/O makes JS a perfect fit, so I expect this trend to only continue and the tools to improve. It's so much faster and more efficient to create using JS than "native" languages, it's a no-brainer for any business who has a dev with this experience.

</comment><comment> mid-kid The web wasn't made to be used as a desktop app replacement, and it will never be. Quit trying to make it that way, and start using a widget toolkit like you should. Hell, if you love html/js so much, there's a big chance you won't dislike QML. The web is for sharing content, not for games, text editors, and all that stuff. I see google trying to blur the lines between that, but why is it necessary? Just because people are too lazy to adapt themselves to the platform they're writing for, and allow them to create slow, shitty "web apps"?

<comment><USER3> The hype around HTML/JS as a substitute or replacement for native development has little to do with developer laziness and more to do with commoditizing software development labor.

Native is _hard_ relative to (the nearly thoughtless) slapping together of JS and CSS frameworks to "build" an "app." It requires paying people more and taking more time to develop.

<comment><USER4> You make it sound like there's no benefit to programmers to consolidating around a single platform. But there are several:

\- It removes the risk of spending time and money learning what turns out to be the "wrong" (i.e. an unsuccessful) platform

\- It avoids splitting the effort of tooling vendors, library authors, etc. across many different platforms, reducing the amount of redundant effort spent reimplementing things in platform Y that already exist in platform X and freeing them up to work on unique ideas instead

\- It brings the largest possible number of people underneath one umbrella, which makes that community more economically attractive and therefore increases the number and quality of tools and services they have access to

Not that it's all sunshine and roses, of course, but it's not without advantages.

<comment><USER3> All of your points apply to webdev. They just take a different form, and frequently are masked by mistaking the ease with which trivial apps can be developed by mixing a few canned frameworks together for reduced complexity.

</comment></comment></comment></comment><comment><USER5> We ended up building Mac and Windows apps for [http://www.webhook.com](http://www.webhook.com) built on a Node / Chromium shells. Essentially we're a Wordpress competitor, but Node powered, and wanted to provide a simple one-click install for people that didn't know how to work their command line or how to install Node properly. This solution ended up working great. It basically allowed us to build a non-destructive sandbox dev environment for them that had a UI experience similar to the CMS itself. Better yet, the app points to hosted JS and CSS files so really there's never a need to "update" the app. When we have feature or bug changes, we just push out new files and everything just works.

This kind of stuff isn't for all apps, but for our use case it was almost too good to be true. We built everything out in about two to three weeks. I don't know how long it would have taken for us to do something similar with true Desktop tooling.

Here's a video of the end result in case anyone in interested...

[https://vimeo.com/108922566](https://vimeo.com/108922566)

<comment><AUTHOR> This is great. Did you use node-webkit?

</comment></comment><comment> one-more-minute The post mentions Light Table as a node-webkit user, so I'll mention that we're actually in the process of moving to atom-shell [1]. After having some issues with NW we found that atom-shell gave us a more suitable architecture and some nice desktop integration features for only a few days work.

The multi-process model is definitely more complex and probably not for everyone, but it's working really well for us so far.

[1] [https://github.com/LightTable/LightTable/pull/1756](https://github.com/LightTable/LightTable/pull/1756)

</comment><comment><USER6> 2014, still catching up with the desktop.

If one really really wants to use JavaScript, at least make use of QML or Nashorn/JavaFX.

<comment><USER7> Just for the delicious pain of Java development?

<comment><USER6> Java development is pure pleasure when compared with web development.

<comment><USER8> Usually said by Java developer not understanding JavaScript.

<comment><USER9> You see, I barely need to "understand" Java to use it and get decent and performant code but I need to be a javascript expert to be able to do anything not horrible.

Please stop trying to act like the state of web and javascript is good because it's shit. Web development is basically a bunch of people suffering from stockholm syndrome.

<comment><USER10> Really? I feel js gives way more freedom and is much more forgiving to writing in your own particular style. I've had the exact opposite experience with Java. I write JavaScript all the time for work and hobby and it's always rewarding.

Also, I'm in college for computer science and the school will only teach Java courses. It's dreadful and maddening. Classical inheritance is complete shit. Compiler error messages suck. The language itself is just too bloated for me to want use. Whatever I can write in Java I can do in a fraction of the time with js with much more modular and maintainable code.

I think java interfaces are a clear sign of stockholm syndrome, as every time I asked the professor why they are necessary I never got an answer other than "to hide part of your code from the outside world", "to use as a blueprint for your classes", or my personal favorite "Because in Java you write interfaces." I tried shifting my question to "Why _don 't_ I have to write an interface in js?" That one never got answered. Maybe someone here who is crafty with Java could explain and justify for me the reason for writing what feels like more code for no obvious benefit.

Also, sorry if Java is your thing and I sound like I'm bashing it. It's just been really frustrating for me compared to literally every other language I've used, especially since my degree depends solely on the language.

<comment><USER9> java interfaces are one of the main reasons people like java (and as other people have said, it's reimplementation in other more modern languages shows how popular and useful they are). They promote code reuse and allow protected variation. Your professors bad explanations aren't a reason to dislike interfaces.

Also how have you not, in a java class, written code that uses polymorphism? That would be the easiest way to understand how useful interfaces are.

<comment><USER10> But I reuse code all the time with js, following DOT and DRY principles, just fine without an interface. Especially with tools like browserify, where I can basically manage my code as partials independent from each other. Also, I have had to write java code that uses polymorphism. I still find polymorphism _easier_ in javascript. That being said, I think classes and polymorphism is kinda of all just nonsense.

My preferred method of "inheritance" really is just extending an object. Which js is great at. And there's multiple ways to do this, with multiple kinds of prototypes. For something quick an easy I can make a prototype and just pass that through object.create() and now I have a new object that has all the properties of what I would loosely consider to be a "parent". It's more cloning than it is inheritance, and I can completely override properties however I want, while the original properties stay unchanged.

IMO polymorphism and interfaces in Java seem more like hurdles and added complexity compared to object extension and cloning in JavaScript. _.extend paired with browserify also makes for extremely modular code that I haven't seen any Java code compare too.

<comment><USER7> I agree. An interface in JS is a unit test.

I think that a lot of "classical" programmers simply don't understand how important modules are to JS development.

This is why you get these posts about "how can you manage 1,000,000 LOC in JS!!?", when they don't understand that you never have 1,000,000 in JS, you have a bunch of small, unit tested modules.

<comment><USER6> Because in the real boys club (aka enterprise) no one writes unit tests unless they are imposed on them.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> This article doesn't accurately convey the state of Chrome Applications. There's actually a much richer way to build apps that have a more native look and feel, including their own branded top-level window with fewer of the limitations the author cites.

[https://developer.chrome.com/apps/about_apps](https://developer.chrome.com/apps/about_apps)

<comment><USER12> The article's title is "The State of Desktop Applications in Node.js", and chrome applications do not let you run node.js on the local machine. If you can't run your own userland code on the machine and talk to hardware, then you can hardly call it a desktop app.

Google wants to keep you locked in their sandbox.

<comment><USER13> I don't know, they seem to tout interfacing with network and hardware pretty heavily.

</comment></comment></comment><comment><USER14> Check out thrust as well: [https://github.com/breach/thrust](https://github.com/breach/thrust)

multi-platform and easily bindable to any language

<comment><USER15> That looks promising. It is used for Breach but are there any other users?

</comment></comment><comment><AUTHOR> Last time I tried building a 'blank' node-webkit app for OS X (using [https://github.com/Dica-Developer/generator-node- webkit](https://github.com/Dica-Developer/generator-node-webkit)), the resulting .app came to ~100MB.

Does anyone know the base size for an atom-shell app?

<comment><USER16> Seriously, does anybody nowadays care about a 100 MB desktop app? I developed my first app in 1997 with Delphi and it was only 200 KB, so from that perspective I always cringe when I see that an app I've developed is multiple MB. But in all seriousness, do users actually care? Every time I download an OS X app, it's _at least_ 50 MB, but I find that even I don't care anymore because downloading 50 MB nowadays only takes 10 seconds, and my machine has more than enough RAM to load all the bundled libraries. We are in an age where people deploy VM images and Docker containers that are many hundred megabytes, and it seems people are happy that way.

The alternative is _not_ making apps self-contained, but instead to make them rely on shared libraries. This is much more efficient, but apart from a few neckbeards who cry "bloat" it seems that most people care more about avoiding dependency hell and ease of use, even if that means large packages due to library duplication.

<comment><AUTHOR> I would agree with you if you were talking about 20MB. I think that would be my threshold for not caring about how big an app is, i.e. even if it's something really basic like a countdown timer app I would be OK with it being up to 20MB, because as you say, connections are fast and space is cheap. But 100MB? I don't know.

<comment><USER17> You could install more than 1000 apps on a moderate SSD at 100MB each. How many apps does the average person have installed?

<comment><AUTHOR> It's nothing to do with how much space it will take up. The problem is that, as a user, I would be very suspicious of a 100MB countdown timer app. I would think that either it's got some kind of adware in it, or just that it's incompetently designed.

<comment><USER18> >as a user, I would be very suspicious of a 100MB countdown timer app

You mean as a developer. Your average 'user' does not know or care how big an app 'should' be.

<comment><AUTHOR> I disagree. App file sizes are displayed in app stores because many users care about them.

A significant number of users would notice an app being dramatically larger than it ought to be. I've seen a _lot_ of reviews like "why the hell this app over 100mb??!!1". There is a huge spectrum of technical competence between "I don't have any sense of what a megabyte is" and "Developer".

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Related question: what are the other ways to build a desktop application on Linux that works on Linux, Windows and OSX on slow machines, like intel atom, and doesn't require anything from the user?

<comment><USER20> Qt is great for this. It's used by lots of desktop applications, from small open source tools to large commercial content creation apps like Maya.

[http://qt-project.org/](http://qt-project.org/)

It does have a substantial learning curve. The traditional desktop stuff is all C++. The new mobile stuff is easier to develop, with a nice declarative UI system and JavaScript, but it's not applicable if you want native-feeling desktop widgets.

</comment></comment><comment><USER21> There is also a quick way to start a new application with Atom: [https://github.com/atom/atom-shell-starter](https://github.com/atom/atom- shell-starter)

</comment><comment><USER22> I've played around with both node-webkit and atom-shell, and I prefer atom- shell over node-webkit, due to some minor inconveniences with node-webkit.

* When an error occurs in node-webkit, it loads an error page instead of simply logging it to the console like normal web pages. Even after fixing the error and hitting reload or navigating back, the page doesn't go away. You need to manually enter the url(copy/paste doesn't work).

* I don't know if this is something that was my fault or the app's, but when I made a call to a sqlite3 database using the node-pure-sqlite3 gem, it would take around 3 seconds to execute. With atom-shell it would take less than a second.

* The developer console is a separate window from the application in node-webkit. I prefer having a single window hold both the app and dev console during development(which atom shell-allows).

<comment><USER23> completely clueless programmer checking in. How is atom's performance? The one app I tried that used it was always slow and cludgy...

<comment><USER22> For DOM performance, they are pretty much identical. Both use Chrome(each uses a different version though, usually atom-shell uses more recent versions).

For performance of node.js calls, I haven't run any benchmarks, so I cannot help you there. However subjectively, both felt about the same to me(except in the node-sqlite-purejs case).

</comment></comment></comment><comment><USER24> If you are targeting Mac only and don't depend on Node an alternative would be MacGap:

[http://macgapproject.github.io/](http://macgapproject.github.io/)

The packaged app is tiny compared to a chromium+Node shell app.

</comment><comment><USER25> I've been using node-webkit for the past 18 months or so, and it's been absolutely delightful.

One thing this article gets slightly wrong is this sentence: "This means that Node.js modules must exclusively use functions and classes provided by Node.js or modules from npm, as the DOM is off limits."

This might be technically true, but there's an easy enough workaround:

1) Use a script tag to include jQuery in the index.html page

2) Pass the jQuery object ($) as a dependency into a node module.

3) Profit.

I regularly modify the DOM from node context using this pattern.

</comment><comment><USER26> Is there some way to have a "Firefox shell" instead of a Chrome/Chromium shell?

<comment><USER27> [https://developer.mozilla.org/en- US/docs/Mozilla/Projects/XU...](https://developer.mozilla.org/en- US/docs/Mozilla/Projects/XULRunner)

I'm not sure if it's still actively developed though.

</comment></comment><comment><USER28> ~100 MB for a hello world...

</comment><comment><USER29> Try out the new StarUML beta. I was surprised to see that it uses node.</comment>


A Transactional Memory System for Parallel Python - <AUTHOR> https://doc.pypy.org/en/latest/stm.html <comment><AUTHOR> Paper here:

[https://bitbucket.org/pypy/extradoc/src/extradoc/talk/dls201...](https://bitbucket.org/pypy/extradoc/src/extradoc/talk/dls2014/paper/paper.pdf)

(Click on "View raw")</comment>


Google Pressure Cookers and Backpacks, Get a Visit from the Feds - <AUTHOR> http://www.theatlanticwire.com/national/2013/08/government-knocking-doors-because-google-searches/67864/ <comment><USER2> Our government is sending gangs of armed men to perfectly innocent citizens' doors to interrogate them, simply because the authorities don't like what the people are looking at online. Chilling. Now that PRISM and XKeyscore are being reported on in the main stream media, I hope we'll hear many more stories like this and that this will cause folks to realize that it could easily be their door next time.

<comment><USER3> Wait a moment. Before you get carried away, we still only have her word. Also on the piece :

      In a conversation with The Atlantic Wire, FBI spokesperson Peter Donald
      confirmed The Guardian's report that the FBI was not involved in the
      visit itself. Asked if the FBI was involved in providing information
      that led to the visit, Donald replied that he could not answer the
      question at this point, as he didn't know

So at the moment, we still have hearsay. It's from the original source and I'm not calling her a liar, but I still don't know what exactly happened. Just _who_ came to the residence beyond some scary looking guys in SUVs who said they were FBI.

Edit: Interesting that asking for evidence warrants downvotes.

<comment><USER4> Did you read the Guardian report?

[http://www.theguardian.com/world/2013/aug/01/new-york- police...](http://www.theguardian.com/world/2013/aug/01/new-york-police- terrorism-pressure-cooker)

      Members of what she described as a "joint terrorism task
      force" descended on Catalano's home on Wednesday. A spokesman
      for the FBI told to the Guardian on Thursday that its
      investigators were not involved in the visit, but that "she
      was visited by Nassau County police department … They were
      working in conjunction with Suffolk County police
      department."

<comment><USER3> That wasn't the linked story on this thread, but I found this bit interesting :

      A spokesman for the FBI told to the Guardian on
      Thursday that its investigators were not involved
      in the visit, but that "she was visited by Nassau
      County police department … They were working in
      conjunction with Suffolk County police department.

But it was only after the story ran that she Tweeted this : [https://twitter.com/inthefade/status/362707932586053633](https://twitter.com/inthefade/status/362707932586053633)

So FBI became JTTF, which in turn became Nassau cops?

This is why we should all stop listening to the 24 hour news machine and wait a while before everything is cleared up and fully presented. This is a developing story and clinging to one or two tidbits finagled from the authorities here and there aren't going to cut it.

<comment><USER4> Who would the JTTF be made up of?

<comment><USER5> While I see where you're going with this, let's take a moment to remember that the Joint Terrorism Task Force is made up of individual law enforcement officers, not agencies. That is to say that not all members of the Whatever County Sheriff's Department are inherently part of the Joint Terrorism Task Force.

So it's certainly _possible_ that three black SUVs worth of the local sheriff's deputies, all of whom were members of the Joint Terrorism Task Force, showed up to question her about her internet searching.

Or this fiction writer is not portraying an accurate version of the events.

</comment></comment></comment></comment></comment></comment><comment><USER6> Alright, let's do a group experiment. Choose one of the links below:

[http://www.google.com/search?q=pressure+cooker+backpacks](http://www.google.com/search?q=pressure+cooker+backpacks) (insecure)

[https://www.google.com/search?q=pressure+cooker+backpacks](https://www.google.com/search?q=pressure+cooker+backpacks) (secure)

and report back if you get a visit from a squadron of men dressed in green wearing helmets and holding guns. If any reporters clicked on the https link, it's PRISM because the leak is from inside Google, otherwise it's XKeyscore. If we get results from both we are really fucked.

Or were you too scared to search? I know I was...

<comment><USER7> I have considered completely leaving the internet. To live a modern life, especially in a technical field, makes that a ludicrous and unlikely choice. And I'm very unlikely to actually do it. But I've considered it, and I'm not a nut.

<comment><USER6> Just don't go cold turkey, eliminate a piece at a time. You probably don't need a smartphone, for example.

<comment><USER7> I don't have a smartphone. :)

</comment></comment></comment></comment><comment> DanI-S There is only one solution to this. It is fairly low tech, and it's not a popular one around here.

Get involved in politics.

It's tempting to believe you can enact change from your desk chair, writing smart code and angry tweets to outwit the spies and inform the people. Well, we're not there just yet.

The people making the decisions that lead to these events - the most powerful people in the world - grew up in an age where, to produce change, you would get out into the streets and stir things up. Step out of your comfort zone, address the public and bring them to your side. Many people don't see the harm in a surveillance state. To prevent one, you must show the public why it is a bad thing and how they can speak out.

Democracy only works when your views are heard by those with the power to bring change. Not the background rumble of a subjugated people, but the articulate demands of an informed electorate with high-profile spokespeople and popular support.

<comment><USER8> Politics is a life-consuming activity. It's not one you can make a significant difference in by taking a few minutes or hours every once in a while. (Sure, you can send a letter or call a relevant elected official, and by all means do so, but that's not the level of "get involved in politics" that will actually get non-trivial things changed unless there's already a strong push to do so, led by people who have more time.) Unless you're prepared to spend your life tilting at your chosen windmills, "get involved in politics" is not really an option.

<comment> DanI-S This is patently untrue. Political progress inherently involves the combined minor effort of numerous people. Campaign volunteers regularly do everything from making a few cold-calls every night to fixing bugs in the web apps that are used to manage the campaign.

You're right that getting things started is non-trivial, but as other commenters have pointed out there are a fair number of organizations already driving for change who would appreciate "a few minutes or hours every once in a while". Here are a few:

[http://1984day.com/](http://1984day.com/) [https://www.eff.org/](https://www.eff.org/) [http://www.restorethefourth.net/](http://www.restorethefourth.net/)

Please add more if you know any!

<comment><USER8> > You're right that getting things started is non-trivial, but as other > commenters have pointed out there are a fair number of organizations already > driving for change who would appreciate "a few minutes or hours every once > in a while".

That's exactly the type of thing I meant when I said "Sure, you can send a letter or call an elected official". On a smaller scale, you can also vote; worth mentioning because a shockingly high number of people don't. However, all of those actions only add momentum to efforts started by others.

</comment></comment></comment></comment><comment><USER9> I just posted this on G+:

A Long Island woman named Michele Catalano posts photos of M-66 explosives (that look to me like extra-large firecrackers) publicly on Facebook. A few weeks later the local cops show up and ask her husband if they have any bomb- making equipment. Instead of drawing the most likely conclusion, she instead blames this on local Long Island cops MONITORING HER GOOGLE SEARCHES: [https://plus.google.com/112961607570158342254/posts/FWAVRVaN...](https://plus.google.com/112961607570158342254/posts/FWAVRVaN64h)

<comment><USER10> Of course we could expect this kind of behavior for you, as one of Hacker News' most notorious government apologists.

<comment><USER11> seriously irlollin'. :D

</comment></comment></comment><comment><USER12> The family should have refused to answer questions without an attorney present, as this could easily fall under a 4th Amendment violation on the part of the government.

How to resist warrentless searches (roadside checkpoints): [http://www.youtube.com/watch?v=u4Ku17CqdZg](http://www.youtube.com/watch?v=u4Ku17CqdZg)

<comment><USER13> I wish there was a text version of this thing, in simple and concise sentences.

<comment><USER14> You may find this to be helpful. (and entertaining at the same time)

[http://slu.edu/Documents/law/Law%20Journal/Archives/LJ56-2_M...](http://slu.edu/Documents/law/Law%20Journal/Archives/LJ56-2_Mason_Article.pdf)

</comment></comment></comment><comment><USER15> > Correction: After confirmation from the FBI that its agents weren't involved > in the visit, the headline of this piece was changed to "Visit From the > Cops" instead of "the Feds."

In the interests of accurate reporting, perhaps the HN headline should be corrected as well?

</comment><comment><USER16> The specific type of explosive used the Boston bombings, the pressure cooker devices, was originally from Anwar al-Awlaki's Inspire magazine. The Feds, based on DC hearsay, may be a little embarrassed they didn't catch the association right away, so they're overreacting.

Of course, the bigger story is that Googling anything shouldn't lead to a visit from domestic law enforcement, because access to search records of American citizens should be protected by the Fourth Amendment.

<comment><USER17> Is there anything to protect access to search records of foreign citizens?

What rights FISA, Patriot Act and the other laws regarding surveillance from US agencies give to non-Americans?

I don't want to carp at Americans, I'm just genuinely curious of what exactly generates the distinction between Americans and non-Americans.

<comment><USER18> > what exactly generates the distinction between Americans and non-Americans.

It is generally assumed, that a country's law applies to two groups of people: those in its territory, and citizens of the country. The Constitution is American law, therefore it applies to two groups of people: those in the U.S., and citizens of the U.S. abroad.

<comment><USER17> Of course—and it wouldn't make sense to expect the law of the United States to apply to foreign citizens.

Here's where I'm getting confused: if the laws of a country do not apply to someone who is not a citizen of that country, why do the laws of the United States let the US spy on non-Americans? (Or any other country, for that matter)

<comment><USER19> Because a country is sovereign. It can do whatever it wants unless it steps on the toes of another sovereign actor at which point a diplomatic incident ensues. But by default a state is the highest human authority so it doesn't need permission to do _anything_.

<comment><USER16> Right. Sovereign states exist in a state of anarchy. They can do whatever they want, and the only ultimate way for one state to stop another is through force.

Of course, this is the traditional Westphalian model that is beginning to cede to voluntary associations of sovereign states that solve their disputes in freely associated bodies, e.g the WTO, the United Nations, the International Criminal Court.

These bodies really ultimately have no binding authority except that granted to them by the states of which they are composed, but reciprocity and social norms are starting to give us a ladder out of pure anarchy. That's really been the project of international relations of the twentieth and twenty-first centuries.

<comment><USER19> Sure, but it only tells states what they can't do, by default they can do anything.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Don't like how they use one image at the top which is from a completely different event, as explained at the bottom. The image seems to be chosen to generate a specific emotional response but I'm not sure it actually represents the events covered in the story very honestly.

</comment><comment><USER21> This is the media trying to sell pageviews. We know virtually nothing about the facts of this incident, yet the media is trying to sell the story "if you google for pressure cookers you will be visited by law enforcement." That is clearly preposterous.

<comment><USER22> Actually, the story is that the government knew they googled for pressure cookers and backpacks. That must mean there's a tool that someone can type your name into and get a list of everything you've searched for online.

</comment></comment><comment><USER11> Remember: it can't happen here.

[http://gutenberg.net.au/ebooks03/0301001h.html](http://gutenberg.net.au/ebooks03/0301001h.html)

</comment><comment><USER23> I am skeptical of how real this is... If this really happens this often, wouldn't we be seeing reports of this all the time? "They mentioned that they do this about 100 times a week."

</comment><comment><USER24> Thanks pg, glad to see this article has some actual verification in it.

>The Guardian confirmed with the FBI that the agency was aware of the visit, but that it was conducted by local police on Long Island.

</comment><comment><USER25> Terrible reporting. It's unlikely that Google searches are the reason.

1\. There's no confirmation that Google searches led to the visit, yet the article reports it as fact (headline).

2\. Most if not all Google searches are encrypted over HTTPS nowadays.

3\. It's local law enforcement, and while NSA info may be shared, it's unlikely that an illegal top secret NSA program targeting citizens would be shared in this manner, 100 times a week.

4\. As user declan noted, the more likely cause is other information PUBLICLY SHARED ON FACEBOOK, such as this image one of them posted of high-powered fireworks: [https://plus.google.com/112961607570158342254/posts/FWAVRVaN...](https://plus.google.com/112961607570158342254/posts/FWAVRVaN64h)

</comment><comment><USER26> How long before kids start playing "Google 'jihadist bomb manual' three times" instead of "say 'Bloody Mary' three times into a mirror at midnight"?

Real soon, I hope!

</comment><comment><USER27> > What the hell is quinoa, they asked.

Their culinary ignorance is nearly as upsetting as their disregard for citizens privacy.

<comment><USER28> Well this is embarrassing. I just had to google quinoa myself.

</comment></comment><comment><USER9> The photo used to illustrate the Atlantic article is a stock photograph taken from the Boston bomber hunt -- and used to make their unverified report seem more incendiary.

You can see it published in April by the Las Vegas Review Journal (click their right arrow on the slideshow a few times): [http://www.reviewjournal.com/news/boston-bomb-suspect- hospit...](http://www.reviewjournal.com/news/boston-bomb-suspect-hospitalized- under-heavy-guard)

<comment><USER29> What a disgustingly misleading photo. You have to read into the article to find out that the photo isn't directly related to this story. It's not even in a caption associated with the photo.

Use of the extremely misleading photo makes me question the integrity of the rest of the article.

</comment></comment><comment><USER30> Unfortunately, it looks like our law enforcement agencies won't stop harassing us for the things we do in the 'privacy' of our homes. Perhaps companies like "Google" should help them with some intelligence by making it easier to catch the 'right' guy while providing more transparency in doing so. The thought behind this is that the government will continue to collect information, and we might as well help them find the 'right' information by providing intelligent analysis of the data. This in turn would help reduce these life- ruining experiences as the ones reported in this article...

I don't even like what I just said, but it's an idea.

The conditions for this kind of help from the tech world, would be

1\. They access bits of information without receiving a full copy from the origination source.

2\. They allow congress to pass privacy laws that make sense for the country.

3\. They must provide an API to your own data... after all, they do use your personal email address as the search key......

Or, they need to shut down.

</comment><comment><USER31> Quick question: What if News corp was fed the details of voicemails that they "hacked" through government agencies in an effort to keep the public placated through meaningless news stories?

I know it's not on topic, but with everything coming to light, it would not surprise me. Was it ever discovered how News Corp got the private voicemails for their stories?

<comment><USER32> They exploited the fact that people didn't change the default passwords on their voicemail (e.g. 1234) and so were able to access them remotely using the same system a legitimate user who needed to access their voicemail remotely would use.

</comment></comment><comment><USER33> I thought we didn't have to worry if we had nothing to hide.

<comment><USER34> I'm wondering if this kind of thing will be met with outrage or understanding. It seems plausible that the general public could feel more secure as a result of this, as it shows that the government is actively trying to stop terrorism.

</comment></comment><comment><USER35> Is it a dumb idea to to see if I can get visited after doing some Google searches? Is there a law against trying to get noticed by authorities in this way?

<comment><USER36> It might even be a nice way to get "standing" so you can qualify to sue the government on these issues. (IANAL, but in the past I've seen "standing" being an issue that disqualifies lawsuits, and people doing stunts like this to get standing so they can then sue.)

</comment></comment><comment><USER37> But everything was conducted with accordance to both our official as well as secret laws right??!! Phew, ok good. As long as everything is on the level.

</comment><comment><USER33> At least he was confronted immediately. Can you imagine if this was used against him at some time in the future as a "pattern of suspicious activity"? Or worse if he was selected via data-mining when looking for suspects of a bombing? It's like finding secret messages in every eight words of the Bible.

<comment><USER38> Or he just randomly fails a background check.

</comment></comment><comment><USER39> Why couldn't we simply flood the systems being tracked with more noise thus reducing signal to noise ratio. This sort of thing could be simply thwarted by a system of bots creating a large number of false positives. Any ideas?

<comment><USER40> Most likely, if this became a common thing, you would have your ISP take action because you are running a "server".

</comment></comment><comment><USER41> Minority Report, everybody.

</comment><comment><USER42> Day 1 of using DuckDuckGo... starts now.

<comment><USER43> You do realize that this is a silly, dumb sentiment, right?

The idea that switching one black box for another black box will save you from this is absurd.

<comment><USER44> Then let's think about decentralized search engines powered by p2p...

<comment><USER45> [http://yacy.net/en/index.html](http://yacy.net/en/index.html) tri-platform, penta-language

[http://www.faroo.com/hp/p2p/p2p.html](http://www.faroo.com/hp/p2p/p2p.html) windows-only

</comment></comment></comment></comment><comment><USER46> Let's assume that this kind of aggravation is necessary to defend against terrorism in an imperfect world, which in particular has imperfect systems and government employees.

Is there anything EXCEPT terrorism we'd want to have cracked down on that closely??

[http://www.dbms2.com/2013/07/29/what-our-legislators- should-...](http://www.dbms2.com/2013/07/29/what-our-legislators-should-do- about-privacy-and-arent/) spells out some consequences of this reasoning.

</comment><comment><USER47> I hope they are enjoying all the porn I've been watching.

</comment><comment><USER48> I thought that now all the google search were over https, so how they were able to track the guy (without direct access to the search data from the google server)?

</comment><comment><USER49> This makes current intelligence practices seem reactionary, and maybe it has fallen pray to some of the weaknesses Bruce Schneier pointed out in TSAs procedures. Have anyone seen a comparative analysis of cost towards success of targeted local investigation vs investigations prompted by big data analysis intelligence programs?

</comment><comment><USER50> I'm worried.

Presumably there are few people comfortable with the government having such fine grained detail on your activities.

<comment><USER43> Oh, no, not _my_ activities--but I can absolutely understand the public utility in allowing them such exhaustive resources in verifying the activities of others.

What's that? The infrastructure is indistinguishable? Pshaw.

</comment></comment><comment><USER51> They are lucky they weren't harmed.

</comment><comment><USER52> Seems to me a member of a terrorism "task force" wouldn't need to ask whether a rice cooker can be used to make a bomb.

Note, I'm not questioning whether these men were members of such a task force. I'm questioning whether they're capable of asking non-stupid questions.

</comment><comment><USER53> Who cares if they showed up as a swat team or as one 'friendly' sheriff. Thats not the point. The point is that we are being surveilled in the most creepy way.

Mount your ipad on your wall and start calling it a telescreen.

</comment><comment><USER54> Topping the article with a photo of a SWAT team without a caption is rather disingenuous on the Atlantic's part. At first I thought these were the people that showed up on her doorstep.

</comment><comment><USER55> What about the underwear bomber?

Why are we allowed to search for underwear without federal scrutiny, and why are we still allowed to wear underwear on planes?

Is there a line somewhere?

</comment><comment><USER56> Fuck this. I never want to live in the usa.

</comment><comment><USER57> Is this a terrible joke ? [http://bit.ly/1ctfYJ8](http://bit.ly/1ctfYJ8)

</comment><comment><USER58> Wow. Does journalistic integrity also extend to pictures?

The picture has NOTHING to do with the story.

</comment><comment><USER59> Hey, Bing even suggests "pressure cooker bomb". Let's see...

</comment><comment><USER60> There is no actual proof that this was due to web searches, also the picture the atlantic is using is misleading and terrible, and the article was silently changed after someone else pointed that the alleged visit wasn't actually from the FBI but from local law enforcement:

[http://www.theguardian.com/world/2013/aug/01/new-york- police...](http://www.theguardian.com/world/2013/aug/01/new-york-police- terrorism-pressure-cooker)

The story boils down to: "a lady claims to get a visit from the feds after googling some stuff".

She herself says that:

 _They mentioned that they do this about 100 times a week. And that 99 of those visits turn out to be nothing. I don't know what happens on the other 1% of visits and I'm not sure I want to know what my neighbors are up to._ [https://medium.com/something-like- falling/2e7d13e54724](https://medium.com/something-like-falling/2e7d13e54724)

This is lazy and exploitive reporting by all parties.

<comment><USER61> No, the story doesn't boil down to "a lady claims". The fact that the Guardian followed up and confirmed that there _was_ a visit is significant. That takes this out of la-la land.

<comment><USER62> That claim has three parts:

\- She was visited by government authorities.

\- Those government authorities were federal agents.

\- She was visited because of what she searched.

Of those three parts, the first was the only one confirmed (the second, I believe, was proved false.)

<comment><USER63> The second could be true, if the local police where deputized by the feds like they are when the act as part of the JTTF.

</comment></comment></comment></comment><comment><USER64> Next time the cops are slow to respond to my noise complaint, I'll know what to do.

</comment><comment><USER64> You'd have to be a fool to use Google nowadays. You might as well cc the NSA when gmailing somebody.

<comment><USER7> How would you do that? cc the NSA I mean?

<comment><USER65> [http://www.nsa.gov/public_info/contacts/index.shtml](http://www.nsa.gov/public_info/contacts/index.shtml)

Maybe the "Public and Media Affairs" department is the most appropriate for some honest self-snitching: email@example.com</comment></comment></comment>


MagSafe for the Rest of Us: A DIY Magnetic Power Adaptor - <AUTHOR> http://www.instructables.com/id/MagSafe-for-the-Rest-of-Us-A-DIY-Magnetic-Power-A/ <comment><USER2> The unique feature of the MagSafe is not the magnetic attachment, but rather the microcontroller inside the power brick: It outputs a low-amp 5V until a connection has been verified, only then will a full connection be established and the potentially harmful full power delivered.

You can duplicate the magnetic attachment for a few dollars, but not the feature that makes it safe to use. (Which is also one of the problems of third-party magsafe power supplies.)</comment>


WordStar: A Writer's Word Processor - <AUTHOR> https://arstechnica.com/information-technology/2017/03/wordstar-a-writers-word-processor/ <comment><USER2> I'm almost embarrassed to admit it, but even today, 35 years or more after finding WordStar, I use a WordStar clone for my text editing.

"Imprinting" dies hard!

(Currently using 'jstar' as my everyday text editor; the 'joe' editor's WordStar configuration.)</comment>


Railway-oriented programming - <AUTHOR> http://fsharpforfunandprofit.com/posts/recipe-part2/ <comment><USER2> The elided punchline is that this entire essay is "just the `Either` monad".

If you can forgive the snark there, the point to take home is that this entire pattern of programming can be nicely summarized through some very high-order topics like Monads. That's one "why" for "why should I learn what 'monad' means".

A very similar essay could be written for non-deterministic programming ("it's 'just' the List or Logic monad"), for backtracking parser combinators ("they're 'just' the State + List monad"), or for state threads themselves ("they're 'just' the State monad"). Each of these programming patterns is neatly summarized by the "obvious" behaviors of a simple type.

One of the powers of Haskell is that it lets you abstract over patterns like this and talk about them inside your language. That's why Haskell has such a fetish with Monads—it's as though GoF had been formally encoded into the language. This notion comes up a lot under the name "Monad" but it might also be "Profunctor" or "Applicative" or "Category".

I really love this essay because it really goes through all the details. Oftentimes an advanced Haskell/ML/F# programmer might summarize a large topic as "it's just the X monad" anticipating that someone familiar with this kind of programming can reverse engineer almost all of the meaning from that plain statement. This is typically true, but certainly expects a lot of experience from the listener.

This essay unpacks all of that meaning and presents it in easily digestible bits. That's great technical writing.

</comment><comment><USER3> I naturally tend to use this "railway" approach in my code. But often I stumble upon various problems:

1\. The "success, but..." scenario. Sometimes you have different types of failures to handle and this style conflates all of them into "failure". For example, I want to WARN about something my caller; everything is OK, but there is something to be known (The call went fine, but the file was not there so I created it). Should information about that value be passed on the failure pipe? If I do so I lose the ability to do simple checks like "if failure.empty?". A third pipe for "warn"? And another one for "info"? Mhhh...

2\. There are different way to fail. There are cases in which you really should not go on with any computation, there are cases in which can go on, just note that you are in "danger" mode (ENOSPC).

3\. What about transient failures? Should "Network just went down" be treated like "Server returned HTTP 404".

4\. Sometimes you want to just ignore all the errors because you are prototyping something and you do not want a lot of boilerplate code laying around. And definitely you do not want a catch all that hides the errors.

<comment><USER4> "1\. The "success, but..." scenario. Sometimes you have different types of failures to handle and this style conflates all of them into "failure"."

No, it doesn't. I'm not sure where you get that, because even in this example "Failure" carries an error message. That's a string for didactic purposes, it can be anything you need it to be.

"2\. There are different way to fail. There are cases in which you really should not go on with any computation, there are cases in which can go on, just note that you are in "danger" mode (ENOSPC)."

Here is where avoiding the word "monad" probably does not play to the author's favor. Monadic computations are able to examine the results of computations, so nothing stops you from

         case somethingThatMayFail arg1 arg2 of
             Right x -> do
                 ... -- carry on the computation
             Left x -> -- fail out however you're going to fail

Which I believe also handles the rest of your questions... the pattern conveniently propagates errors when you don't want to treat them specially, but you can still dig in and examine them if you need to. Whatever you want to do, you can do, because it's just a program like anything else. For 3, the answer is "just write it the way you want it"... there isn't really an "answer" because that's not a problem in the first place, any more than it would be in C. And for 4, again, just do that then. Nothing's stopping you.

</comment></comment><comment><USER5> I'm not sure why the author goes out of his way to avoid saying "monad," but this is certainly a monad analogy blog post whether he wants to call it that or not.

Not that that's necessarily a bad thing; I think this article does a great job of teaching the reader about monads without them knowing it. The subject of the post -- error handling in a purely-functional context -- is usually my go- to example for explaining monads.

<comment><AUTHOR> > I'm not sure why the author goes out of his way to avoid saying "monad,"

Explained here: [http://fsharpforfunandprofit.com/about/#banned](http://fsharpforfunandprofit.com/about/#banned)

<comment><USER6> I understand why they do it, but I think they're doing themselves a disservice. It's one thing to speak in jargon and wrongly assume your audience will follow you:

"So this is obviously a catamorphism. This evidently a job for Kleisli arrows!".

And a completely different thing is to construct a solution step by step, using familiar ideas, and _then_ show that it can be seen as a monad, then give a brief explanation of why monads are useful and what motivates them. Which is _exactly_ what the extremely didactic _Learn you a Haskell_ site does (seriously: look at their example for the Writer Monad. It doesn't get more didactic and step-by-step than that)

By avoiding the correct technical terms, they are:

\- Losing precision.

\- Failing to generalize the concept.

\- Underestimating their audience's ability to understand new concepts _when property explained_.

The last one in particular kills me. I for one do not assume Visual Basic programmers are incapable or unwilling to learn new things.

<comment><AUTHOR> If you're familiar with the psychological phenomenon known as priming, that may help help to explain the situation. For someone who's suffered through a few too many many blog posts that explain monads poorly, it is possible that simply mentioning the m-word, even in the very last sentence of the article, may inhibit their ability to comprehend the process. Because of that, there's a certain genius to the article's approach: Give folks who've been struggling with monads and arrows the best possible chance to grasp the concept without being encumbered by all the baggage that has built up around the terminology. If they do get the concept, great, and they're virtually guaranteed to realize shortly afterward, "Oh hey, forehead smack, those are monads!"

(Incidentally, for people who've found themselves thrust into this unfortunate situation, a chapter titled _A Fistful of Monads_ probably isn't likely to help much.)

To that end, I'd even go so far as to say your worries about that last bullet point underestimate the audience's ability to understand new concepts when properly explained much worse than the author did.

<comment><USER7> > even in the very last sentence of the article,

I am not a psychologist, but isn't part of the definition of priming that it happens before? How would saying something afterwards harm your ability to previously understand something? Well, I guess I could see how that'd be possible, but I'm not sure that's priming anymore.

<comment><USER8> I don't read every article top to bottom, I would waste too much time doing that. I read the intro, and if I like, I estimate how long it will take me with a full scroll to the bottom. I also read the bottom so I know the point we are working up to. Sometimes the article is too long and I skip an overly descriptive middle section.

</comment></comment></comment></comment></comment></comment><comment><USER9> Very nice explanation of monads.

sigfpe's blog has the "original" tutorial: [http://blog.sigfpe.com/2006/08/you-could-have-invented- monad...](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads- and.html)

</comment><comment><USER10> Here's the recording ([https://skillsmatter.com/skillscasts/4964-railway- oriented-p...](https://skillsmatter.com/skillscasts/4964-railway-oriented- programming)) of the talk that Scott Wlaschin gave at Skills Matter 2014 using what I believe is the the same slide deck. It was probably my favorite one from the day.

Warning though, you do have to make an account to view the video.

<comment> pi-rat He presented the same talk at NDCOslo, available here (without registration): [https://vimeo.com/97344498](https://vimeo.com/97344498)

Was a pretty good talk :)

</comment></comment><comment><USER11> Reminds me a lot about 'optional chaining' in Swift (among other languages I'm sure), at least on a superficial level. What I'm not sure about at the moment is where best practices suggest you should use them–it seems like some functions are written to accept optionals, while others are not, and it's not clear why to me.

</comment><comment><USER12> I'm surprised none has mentioned promises yet, since they're an example of this pattern applied to asynchronous code:

        getData().then(validate).then(update).then(send, handleError)

This reproduces the code flow of the first figure of the article.

</comment><comment><USER13> The "railway oriented programming" is pretty much the default way of coding in Node.js using the flow control module async. The major feature that async has but that I don't see in this blog post would be that you can split up the "railway" into multiple parallel paths when needed or when it is more efficient to do so, and then join the paths back together again later in a step which depends on the results from each of those parallel paths.

Once I started using the async.auto() it completely changed my way of thinking about how code worked, and I've started coding in a much more functional style. Node.js makes this very easy.

</comment><comment><USER14> I think the bypass approach is a commonly used technique when a failure in any component exits the routine ... but it's also common for each of the failures to be processed differently, which actually looks like the fan-out that happens in a railway switching yard.

The author's primary example uses a "layout" I've never seen on a railway ([http://fsharpforfunandprofit.com/assets/img/Recipe_RailwaySw...](http://fsharpforfunandprofit.com/assets/img/Recipe_RailwaySwitch3.png)). Railway switches are expensive, so you never see multiple switches going the same direction between a pair of tracks. If there are two consecutive switches (and going say from left to right), one shunts from track A to track B and the other shunts from track B to track A. When space is limited, a cross-over might be used by these are even more expensive (an provide additional gaps where derailments can happen).

</comment><comment><USER15> In imperative programming, your code can execute in two states, valid and not- valid. You start in valid state, then any validation failure returns you to non-valid state and you remain there. Pretty much the core of any validation technique without bells and whistles.

valid = true

if valid and not check1(): valid = false

if valid and not check2(): valid = false

...

<comment><USER16> I much prefer the (equivalent) code:

if not check1(): return false

if not check2(): return false

...

</comment></comment><comment><USER17> We do a ton of railway-oriented programming at Snowplow, using the Scalaz Validation[1]. It's a great great fit for data processing pipelines.

When we are enriching raw events, we try a few separate validations/enrichments and then either accumulate errors or compose a valid enriched event.

[1] [https://gist.github.com/justjoheinz/9184859](https://gist.github.com/justjoheinz/9184859) [2] [https://github.com/snowplow/snowplow/blob/master/3-enrich/sc...](https://github.com/snowplow/snowplow/blob/master/3-enrich/scala- common- enrich/src/main/scala/com.snowplowanalytics.snowplow.enrich/common/enrichments/EnrichmentManager.scala#L295)

</comment><comment><USER18> This is quite a fancy explanation of monads. But in the end, is it worth it?

Maybe Go's somewhat verbose way of handling errors isn't so bad after all. It seems easier than teaching your coworkers a bunch of combinators, no matter how you try to sugar-coat it.

<comment><USER19> It's a false choice. There are ways of handling errors without so much verbosity, and without teaching coworkers a bunch of combinators either.

</comment></comment><comment><USER20> After thinking about it a bit, this seems to be almost exactly the behavior that try/catch implements.

</comment><comment><USER21> This is very well done. It's refreshing to see graphical explanations of programming concepts. The analogy with tracks is a very helpful way to make the notion of monadic contexts concrete. Great job!

I'd be curious to know how the author came up with the idea of representing these ideas with tracks, as it is a very fortunate perspective.

<comment><USER22> Also, the swift slides (at wwdc) show something similar</comment></comment>


Ask HN: Is there an container based alternative to virtualbox/vmware player? - <AUTHOR> I am trying to virtualize ubuntu on ubuntu and vmware player/virtualBox seems overkill. Is there any container based full OS virtualization system  out there? <comment><USER2> Stick with docker if possible, you will get more performance among other benefits.

Check excellent Phusion's base image [0] if you need (pardon me) "container like VM".

For the gui: Docker has native Kitematic app [1], but not sure about state on linux. I would recommend you to check Shipyard project [2] as Docker Gui

Docker also support containerized X11 desktop apps [3].

[0] [https://github.com/phusion/baseimage- docker](https://github.com/phusion/baseimage-docker)

[1] [https://kitematic.com/](https://kitematic.com/)

[2] [http://shipyard-project.com/walkthrough/](http://shipyard- project.com/walkthrough/)

[3] [http://fabiorehm.com/blog/2014/09/11/running-gui-apps- with-d...](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/)

</comment><comment><USER3> How "full" will be the OS virtualization may rule out containers, i.e. what about things that are meant for outside containers like playing directly with devices or loading kernel modules? You can give a container privileged access, but if you don't want to affect your main system that may not be used. Maybe a thin VM environment (like qemu/kvm/xen) less expensive in resources than vbox or vmware, and you can still manage them with kimchi or virt-manager.

If you don't want that much "full" access, and still want something that behaves like a full OS, and if you don't want docker's opinionated approach to containers, you can use lxc+lxd for that.

</comment><comment><USER4> LXD

<comment><AUTHOR> Can it be used to virtualize app with gui/X11 ?

<comment><USER4> Presumably if you ssh -Y into the container.</comment></comment></comment>


Craig Cunningham turns liabilities into assets by suing debt collectors - <AUTHOR> http://www.dallasobserver.com/content/printVersion/1653972

<comment><USER2> Dang. Commenter #7's words are harsh:

"...What about "Wicked is the man that borrows and does not repay"? Psalm 37:21 ..."

Thats a truly evil interpretation, IMO.

Actually, it says "The wicked borroweth, and payeth not again: but the righteous sheweth mercy, and giveth."

Looking at various commentaries, this verse is actually about being generous and lending to someone in need, even though you know they cannot repay it.

Also, it suggests the inverse of what the commenter is suggesting, that it is a sign of righteous to forgive debt rather than demand payment, and in those days it would be quite merciful to forgive in this situation, since the next stop for a deadbeat debtor was prison.

Further, the entire Christian faith can be summed up quite nicely like this: "unmerited forgiveness of debt, be it 'sin debt' or other".

</comment><comment><USER3> Same story submitted earlier: <http://news.ycombinator.com/item?id=1075903>

</comment><comment><USER4> Dallas Observer's comments, not linked to from above link... [http://www.dallasobserver.com/2010-01-21/news/better-off- dea...](http://www.dallasobserver.com/2010-01-21/news/better-off-deadbeat- craig-cunningham-has-a-simple-solution-for-getting-bill-collectors-off-his- back-he-sues-them/#Comments)</comment>


IPhone app that isn't - <AUTHOR> http://www.mobileorchard.com/bookmarklet-as-app-store-paid-app/

<comment><USER3> Odd that they'd approve this as an app. Here's the code for free:

[http://www.lifeclever.com/17-powerful-bookmarklets-for- your-...](http://www.lifeclever.com/17-powerful-bookmarklets-for-your-iphone/)

[http://www.theiphoneblog.com/2009/07/22/iphone-pro-tips- find...](http://www.theiphoneblog.com/2009/07/22/iphone-pro-tips-find-text- safari-javascript-bookmarklet/)

<comment><AUTHOR> Here are 5 reasons: [http://findinpage.blogspot.com/2010/01/what-makes-this- find-...](http://findinpage.blogspot.com/2010/01/what-makes-this-find-in- page.html)

</comment></comment><comment><USER4> Here's another list of free bookmarklets, including find in page, various translators, and view page source (haven't tried them myself):

<http://ipuhelin.com/en/safariplus/>

<comment><AUTHOR> As the blog post author pointed out, let's not miss "a forest for the trees" - the post is not about THIS bookmarklet (as much as I'd like it to be, for self-serving reasons) or some other bookmarklet. MobileOrchard blog is for developers, not consumers of apps, and this post is about opening a new market and new possibilities for software applications that could benefit from tight integration with Safari and run in the context of any webpage - <USER2> imagination is the limit. The idea is that if one can monetize this, more professional-grade bookmarklets can become available. This is an opportunity for developers, and a boon for consumers.

</comment></comment><comment><USER5> The real issue is that it's not possible in Mobile Safari to bookmark a traditional Bookmarklet link -- unlike a normal <http://> link you can't even copy it -- the only option you get from a hold- tap is "Open".

Try bookmarking the "post to News.YC" bookmarklet from your iPhone -- you can't!

</comment><comment><USER6> There are plenty of iPhone apps out there that aren't really apps at all, but just content of one kind or another-books, recipes, music. The beauty of the App Store is that content that could never be monetized on the open web now can be, and creators who could never make money from anything other than advertising can now make some money. This is a good thing, people.

Look at this thing, it's beautiful. It has a UI, for Pete's sakes! Beats the hell out of every other find-in-page bookmarklet I've tried in Mobile Safari. They've all been atrocities. 99 cents? I'm buying it.

</comment><comment><USER6> This headline is terrible by the way. The original headline at Mobile Orchard is much better.

<comment><USER7> Yeah, I thought this was going to be another rant about the app store rejection process or something.

</comment></comment><comment><USER6> I just bought it and replaced my crummy old Find in Page bookmarklet in Mobile Safari with it, then gave it a test-drive.

It's GREAT! Exactly what I always wished for. Thank you vais for creating this!

</comment><comment><USER8> I'm particularly irritated with the distasteful attitude the author took when he was mad a couple of hacker news readers didn't think it was fair to charge $0.99 for this.

<comment><AUTHOR> I see how packaging up an existing bookmarklet and selling it is an app could indeed be construed as unfair (although, a point could be made about the added value of the package itself). Creating an original piece of software, on the other hand, and making it available to the public for a fee, is the very definition of fair play in my book.

<comment><USER6> Absolutely right! Bookmarklets are software like any other and deserve to be treated both by their creators and their users with the same respect and expectations that any other software gets. Great work, by the way-I'm happy you took a craftsman's approach and made something worthwhile.

<comment><AUTHOR> dreyfiz, thank you for the kind words throughout!

Hacker News readership can be a tough crowd, but I wouldn't want to have it any other way ;) Thoughtful comments (i.e. where the reader took the time to do a little bit of research before commenting) make it all worth it.

</comment></comment></comment></comment><comment><USER9> Nice, though I switched to using the faster and more capable iCab ages ago. Have even replaced Safari as the system default browser with it.

<comment><AUTHOR> iCab looks pretty cool - well worth checking out for its rich feature set.

On the other hand, I feel that switching from Safari to a different browser merely for the sake of in-page search would be overkill (like using a hammer to swat a fly) - I actually have no other beef with Safari, I genuinely like it. So I felt a bookmarklet would be the right-sized tool for the job.</comment></comment>


On founders being unprofessional - <AUTHOR> http://gilbert.pellegrom.me/on-founders-being-unprofessional/

<comment><USER2> "However what we don't do is jump on Twitter and start having a go at them. Immitation is the sincerest form of flattery right? It just isn't that big a deal."

So, you admit you copied (or were inspired by) the designs and don't like the fact that you are being called out on Twitter. Who is acting unprofessional now? In the future, you should hire someone to make a new design, so these things don't happen.

Twitter seems to be the method of choice these days for silencing opposing viewpoints. Don't like what someone says or believes? Get the masses to band together and get them fired.

It happened with the (ex)Mozilla CEO, it could happen to you. This is why I choose to stay anonymous online.

Some day, I hope this nonsense stops.</comment>


Ask HN: indexing the revolution - <AUTHOR>

Amidst my feeling of joy and gratitude towards younger generations - I have an idea (among other) for indexing the revolution (tweets, media, articles, posts, etc...) Any suggestion about a platform, or any prior similar experiences would be appreciated. <comment><USER2> The Internet Archive or the Library of Congress may archive much of the material:

[http://www.readwriteweb.com/archives/twitters_entire_archive...](http://www.readwriteweb.com/archives/twitters_entire_archive_headed_to_the_library_of_c.php)

<http://www.archive.org/>

If you want to archive it in a searchable way yourself, you may find that a very technically daunting task. People use large clusters of computers and pretty advanced technology to attempt stuff like this.

On the other hand, if you restrict the amount of data you want to ingest, you can get pretty far just by configuring existing software. You could set up Drupal on a hosting service that include Apache Solr search/indexing, such as Acquia or Pantheon, and then configure Drupal to pull in information from selected twitter searches and feeds of various blogs, and archive it.

Eventually you would run into space and volume restrictions. If you picked enough data sources, you eventually might max out the rate of wrties to MySQL. But you can go pretty far just by point and click configuring what exists.

</comment><comment><USER3> I don't know exactly what you are trying to do, but all Tweets will be archived anyway. (Source: [http://www.usatoday.com/tech/news/2010-04-14-library- congres...](http://www.usatoday.com/tech/news/2010-04-14-library-congress- twitter_N.htm))

I think a visual collage of the revolution on social media would be very interesting.</comment>


I Hate It When My Tests Pass - <AUTHOR> http://blog.amir.rachum.com/post/21601402106/i-hate-it-when-my-tests-pass <comment><USER2> This is why you should practice test driven development. If you write the tests before you implement the solution then you will know that your tests are doing what they are supposed to do.

</comment><comment><USER3> Am I the only one who purposefully design my tests to fail on the first run to verify that they're doing what they're suppose to?

</comment><comment><USER4> When you run the Django test runner with default verbosity, it shows a dot for each test so you see it's progressing and actually running the tests.

It has the problem though, that even with the lowest verbosity setting, it still prints out the summary of the tests, so every night I get email from cron confirming that the N tests still pass..

</comment><comment><USER5> Maybe there's a place for some sort of a smart test runner that would execute assertions multiple times with random input, trying to achieve failure. If all attempts succeed then it'd mark test as questionable.

<comment><USER6> Have you heard of fuzzing?[1]

1\. <http://en.wikipedia.org/wiki/Fuzz_testing>

<comment><USER5> I haven't, thanks for pointing out. Seems like a closely related concept, although appears to be used mostly in security testing context. Also, at least for Python most tools are a bit too complex—I imagined something more like a TestCase subclass (not even a test runner) that augments certain assert methods and possibly provides new ones. Anyway, on a second thought, adopting TDD looks like a better solution.

</comment></comment></comment><comment><USER7> Instead of changing the asserts in the test, change the code you're testing. Inject an intentional failure and verify that your test fails.</comment>


Ask HN: Can you recommend some directories to list your app? - <AUTHOR>

Hello! I have a side project:
I'd like to make it more known to freelancers - it doesn't cost anything & it's embeddable on your site (most likely, your contact page)
What are some good places that list apps (not startups, so like killerstartups.com but for apps)?
One that I am already aware of, that I will be trying to get listed on: go2web20.net <comment><USER2> I created a list two years ago when I was promoting my mobile app. Here it is as a Google Spreadsheet:

[https://spreadsheets.google.com/ccc?key=0AqvAQlclIWYPdExaNll...](https://spreadsheets.google.com/ccc?key=0AqvAQlclIWYPdExaNllaRzhUbXFsUm0tclV5NzFoNHc&hl=en&authkey=CLv62OsN)

<comment><USER3> I'm doing the same thing for my iPhone app. Thanks for sharing this. I was thinking about a way to share mine but only partially. I have a column for comments, for example that I might not want to expose.

But I don't think that's what he wants... I believe this is a web app, am I right?

<comment><USER2> Yeah I had a column for comments too, I just didn't paste that column into the google spreadsheet.

</comment></comment></comment><comment><USER4> How about these - <http://appuseful.com> <http://netwebapp.com> <http://www.feedmyapp.com> <http://www.webdevtwopointzero.com> <http://listio.com>

<comment><AUTHOR> Thanks! I also just found: makeuseof.com

</comment></comment><comment><USER5> 1\. killerstartups.com 2\. mashable.com/bizspark 3\. Huffington Post 4\. Springwise 5\. CrunchBase 6\. www.mo.com 7\. GotoWeb2.0. 8\. StartupMeme 9\. SimpleSpark. 10\. VentureBeat Profiles 11\. FeedMyApp (3/31) 12\. BigStartups 13\. GreatWebApps 14\. Wwwhatsnew 15\. 101 Best Websites 16\. MakeUseOf 17\. LaunchFeed 18\. MoMB 19\. Demo Girl 20\. WebDev 2.0 21\. DzineBlog 22\. Sociable Blog 23\. Emily Chang 24\. Rev2 25\. Ziipa 26\. On The App 27\. Next Web App 28\. DIY Startup News 29\. AppUseful 30\. Startup Booster 31\. Paggu 32\. Robin Speziale 33\. Submit Startup 34\. TechHotSpot 35\. YouNoodle 36\. Lovely Pages. 37\. Generation-y Startup. 38\. TechPluto 39\. Netted 40\. The Atlantic Technology Channel 41\. Appsumo 42\. Appvita 43\. Techattitude 44\. Minisprout 45\. Startuplift

Fair warning though your audience is almost exclusively tech people and you may be solicited to buy things after submitting via email.

The cool part is some genuinely interested people will probably want to interview you or write an article about your company.

</comment><comment><USER6> I have this one in my bookmarks, probably found it here in HN :) [http://under30ceo.com/top-7-websites-to-submit-your- startup-...](http://under30ceo.com/top-7-websites-to-submit-your-startup- company-to-for-free-publicity/)

</comment><comment><USER7> Just out of curiosity . . . what is the url for your app?

(Not that hacker news is a app directory, but if you post the url, I'll be checking it at least =)

<comment><AUTHOR> <http://mppr.me> \- I'm not ready for HN-like traffic that's why I didn't list it originally ;)

<comment><USER8> Sounds kinda cool, but unless I'm totally missing it there isn't a demo available of what this actually looks like on a site.

I appreciate it is free, but attempting to create one asked for my email address at which point I'm not even sure what I'm giving it out for.

<comment><AUTHOR> just click "click for preview" when you have a valid address in the boxes.

now that you're bringing this to light, i may turn it into a live update.

thanks for the feedback!

</comment></comment></comment></comment><comment><USER7> I'm planning on submitting my side project to these directories in a week or two (or three) hopefully. (I just have a few more bugs to iron out first =).

Any chance of a follow-up post in a week or so letting us know how you get on - whether you're getting any traffic from them, whether it was worth the time etc etc

<comment><AUTHOR> hey, sure. I'll post the results on <http://thisisquitepre.posterous.com>

send me an email & i'll let you know when it's out!

</comment></comment><comment><USER9> Also don't forget to list your app on <http://alternativeto.net>

</comment><comment><USER10> I've recently used <http://feedmyapp.com> and it worked pretty well. Within a day or two my site was picked up by several directories and sites.

<comment><AUTHOR> Awesome. Submitted. Thanks!

</comment></comment><comment><USER11> Sign up here to get listed on my new store - <http://laughingcomputer.com>. It's ok if you only have a free product.

</comment><comment><USER12> [http://blog.traindom.com/places-where-to-submit-your- startup...](http://blog.traindom.com/places-where-to-submit-your-startup-for- coverage/)

</comment><comment><USER13> What are 3 other common ways developers try to promote their app other than these listing sites?

</comment><comment><USER14> You should see if AppSumo.com will feature your app for a day.

<comment><AUTHOR> Thanks for the suggestion!

Not sure Noah would want to do it, considering there is no way he can make money from promoting my little widget app & it's currently free.

</comment></comment><comment><USER15> try allmyapps.com they do Web app too.

<comment><AUTHOR> Good find. Thanks a ton!</comment></comment>


Portraits Derived From the DNA in Hair and Gum - <AUTHOR> http://blogs.smithsonianmag.com/artscience/2013/05/creepy-or-cool-portraits-derived-from-the-dna-in-hair-and-gum-found-in-public-places/

<comment><USER2> Some of the subjects have shared, what looks like, their dna on Github[0]. Since this is art, I wonder what part the modeling software is doing, and what part she is doing. It's too bad she is not open-sourcing it, unless she likes you (friendware [1]).

[0] <http://deweyhagborg.com/strangervisions/portraits.html>

[1] <http://deweyhagborg.com/strangervisions/about.html></comment>


Ask HN: Has Amazon.com gone downhill? - <AUTHOR> I recently moved back to the US after many years abroad and started using Amazon again, buying around a dozen items w/ Prime.
____
1. Most items don't ship for around two weeks.
2. The tracking is all over the place (the delivery windows are mostly incorrect due to #1).
3. The reasons for delays are - from what I can see - totally made up (per my private conversations with the product-maker, or due to localized weather which just doesn't exist).
4. The directionality of the packages en route is illogical (ie, a package is in one state then in another, two minutes later).
5. Their live chat support agents consistently give further incorrect information/explanations regarding the problems I listed above.
6. Not to mention the problems I read from other HNers about fake reviews and knock-off products. <comment><USER2> I use Amazon a lot and I don't have the same experience. I've trended toward buying more through Amazon than elsewhere for things like clothes and various sundries like soap, toothpaste, etc. and overall it's been a good experience.

Granted, I try to use Prime whenever possible, and as much as I can, I try to buy items that are fulfilled by Amazon. Where I have run into issues are things shipped directly from China. Those can take weeks, but generally speaking I know ahead of time.

Fake reviews are a part of ecommerce so I'm not too terribly worried about that, but some of the reviews can be funny, too. Mostly I try to use the stars a product has received as a barometer and then vet the 5-star ones to see if they seem real. Ditto for the 1-star reviews, because often times people will complain about something that is outside of the seller's control, or even something that is subjective.

</comment><comment><USER3> It will vary greatly based on whether the product is fulfilled by Amazon or not. If it's Prime-eligible it should show up on time (even at great cost to the workers delivering them, sadly). Despite appearances, Amazon is actually an eBay-like marketplace of thousand of individual sellers.

</comment><comment><USER4> I would say that if you're not a prime member then yes. I was a prime member and then decided to cancel my membership and service has gotten worse for me. It takes longer to get items sent to me. example: I ordered an item 1/1 but did not get it until 1/11\. That would never have happened before prime was created. What's funny is that the item as shipped on 1/10\. I got next day shipping but the held it for 8-9 days.

Also, there are a lot of prime incentive sale items on the site that I can't order but I see every time I'm there. What it does for me is to make me lose interest in Amazon.

I've started to order more from Newegg and Walmart. The prices are not that much different but I don't need to be a prime member to get acceptable service.

</comment><comment><USER5> As a consumer, Amazon is amazing in terms of breadth, price and ease of use. I'm not claiming that they have every product, nor are their prices always the best. _But_ their selection is very good and their prices are typically very competitive. And if I'm just buying run-of-the-mill stuff that doesn't require too much research (e.g. a USB memory stick), it takes me about 60-120 seconds to search the site and check out and I'll almost always receive the product on time, 2 days later. Very few other retailers can match the shipping time. Plus, when I have had issues with products, I've generally been very happy with their customer service.

However, from a consumer's perspective, I have two major issues with them:

1) Knock off and counterfeit products - there seems to be more and more of them these days, especially with third party sellers or even fulfilled-by- Amazon items, since it seems like they might co-mingle inventory. If I'm making a large purchase where there is risk of buying a counterfeit item (e.g. Bose headphones), I tend to go elsewhere these days, unless Amazon has a very competitive price. In particular, for electronics, Best Buy will match Amazon prices and I trust their supply chain more. I also find that B&H has excellent customer service, a great selection, great interface and are reliable to work with.

2) Suspicious Reviews - No doubt there are a lot of fake reviews on Amazon. When you're talking about the largest online retailer where reviews make or break a product, obviously there are going to be fake reviews. Then there are products with what I'd call "hired reviews". I believe that this is no longer permitted, but this is where a company gives free (or very cheap) samples in exchange for an "honest" review of the product. Naturally, people who are given free (or cheap) samples in exchange for writing a review are going to give biased reviews. Finally, for many items, it could be as simple as friends and family writing reviews of your product, which are also going to be biased. Because there's so much incentive to game reviews, it's gotten to a point where I no longer trust them anymore [1].

As a consumer, what I'd really like to see is a competitor to Amazon with a more curated selection. For example, I don't need 250 different options for blenders. What I would prefer is a site that offers 5 options at various price points which have all been vetted by the store owner. User reviews are helpful, but most users aren't really familiar with the alternatives. I can say that I like my blender, but at most, I have experience with one or two other blenders. However, when a store-owner says they prefer a blender, I have more trust that they have experience with the other models (even if they haven't used them, they've seen the returns and/or customer complaints) [2].

From third party sellers' points of view, I've heard many horror stories of issues they have had selling with Amazon, but I won't get into that right now.

[1] There are two other big issues with user reviews in general. The first is that when a product (or establishment) gets enough good reviews, people buy the product and are inevitably disappointed. This is an even bigger issue with reviews for things like restaurants. For example, say a local diner gets 100 five-star reviews on Yelp. Now, people come across the place on Yelp and they see it has great reviews and so they decide to check it out. But they came in with very high expectations so they are inevitably disappointed and so when they write their own review, it will be lower than it might have been if they had gone in with average expectations and were pleasantly surprised. The other issue with user reviews is that every user has different needs and expectations and many of them won't match mine. For example, say I'm a professional photographer reviewing the Sony RX100 V camera, which retails for about $950 and is popular with amateurs as well as professionals looking for a small sized travel camera. If I'm a professional in need of a very small camera for travel, I've got completely different expectations than an amateur who is using this as their primary camera. For example, $950 might be a lot to spend on a camera and an amateur might justifiably feel that the $500 alternative does the job 90% as well. But for a professional, $950 is almost a budget camera and if it performs even a little bit better, the difference in price might be negligible. Needless to say, the reviews from both professional and amateur users of this camera get grouped together on Amazon, which ends up meaning that the reviews are less helpful for both groups.

[2] This is why I love sites like The Wirecutter, where they examine five to ten options and pick the one they like best. Consumers generally don't do this and so I find a single review from the Wirecutter to be more useful than 1000 reviews on Amazon.</comment>


Have billionaires accumulated their wealth illegitimately? - <AUTHOR> https://www.economist.com/finance-and-economics/2019/11/07/have-billionaires-accumulated-their-wealth-illegitimately <comment><USER2> It looks like they just decided that a billionaire who earned his money in certain industries did so illegitimately. That is arbitrary and unpersuasive.

"Our analysis identifies industries where rent-seeking is common, including mining, defence, construction and casinos. This time it also includes the largest tech companies, since many of them have engaged in anticompetitive practices.

Three-quarters of billionaires' wealth in advanced economies was fairly acquired. Still, rentier wealth has risen relative to gdp. Some countries are more cronyfied than others. Sweden and Germany less so. But in America rent- seeking industries made one in five billionaires and explain a third of total billionaire wealth."

</comment><comment><USER3> This article is kinda asking the wrong question. If they want to analyze the slogan "every billionaire is a policy failure," they need to focus the policy itself and its results, not if the billionaires followed the policy.

To illustrate this in another area: if the slogan was "every polluted river is a policy failure," [1] it's a poor response to answer "the river was polluted fair and square according to the rules!"

[1] e.g. [https://ohiohistorycentral.org/w/Cuyahoga_River_Fire](https://ohiohistorycentral.org/w/Cuyahoga_River_Fire)</comment>


Chrome gets date and time pickers - <AUTHOR> http://jsfiddle.net/taylorbuley/eDAmg/

<comment><USER2> As a web developer, I enthusiastically welcome native date and time pickers in web browsers...but boy are they ugly! Maybe you disagree and think they look great. So, let's both get what we want and I'll apply some custom styling to get the look I want on my site and you can do the same on your site. The only problem is that it doesn't appear that you can style these. You can style the input itself pretty well, but how do you style the resulting datepicker that it displays?

Without the ability to style them, this will not get widespread adoption. I am all for consistency in browser inputs, but unfortunately, that isn't what designers and clients demand. That specific look and feel of the datepicker, with those blue colors, blacks and sharp corners just isn't going to cut it for a lot of people.

I think we will eventually see full styling support for these datepickers. Until then, this is cool, but something I won't be able to use except maybe on a personal project. I know that if I slid this into a project, the first question I would get is, "Can we change the way it looks?" Maybe I just need to find less demanding clients.

<comment><USER3> crandles is hell-banned, but posted what looks like a very relevant comment. [EDIT: he doesn't look hell-banned, I have no idea what is going on, since it doesn't appear to be a duplicate either] Pasting:

If its just a matter of styling, then there is a movement to make styling these sort of components as accessible as anything else on the web. Its still in spec, but you should take a look at the Shadow DOM.

Not the most familiar with it, but I believe the gist of it is to allow developers to create self-contained widgets (or at least part of its usefulness). With it, you'll also be able to access/manipulate browser elements (they'll be presented with a Shadow DOM interface just like a custom widget).

Think styling an HTML5 Video/Audio Player. Each browser may have their own interface, but they'll be built using components, and you'll have access to them using CSS/Javascript in your web page. With the Shadow DOM, you should be able to manipulate said datepicker.

edit: styling a video tag example [http://blog.romanliutikov.com/coding/discover-the-dark- side-...](http://blog.romanliutikov.com/coding/discover-the-dark-side-with- shadow-dom/)

\-----

<comment><USER4> Since one can't reply to [dead] posts, I'll put this here.

crandles said: _trying to figure out that myself. i mostly lurk, and have only ever commented a few times. not feeling very welcomed atm!_

\---

It's probably a false positive in an algorithm. I don't think that any human would have banned you, at least not based on what's visible in your history.

The only potentially problematic item is your first submission , the GMail April's fools joke that you posted on your very first day here. It's [dead]. What's surprising is the delay between the post and the ban...

Send a message to email@example.com, hopefully your account will be restored.

<comment><USER5> Yeah, that was some time ago, and I've had comments since then so its a little odd.

Thanks for the help.

<comment><USER4> You're back!

</comment></comment></comment></comment></comment><comment><USER6> It's worth noting that these look very different even between Chrome Developer and Chrome Canary versions. They look like, respectively:

<http://i.imgur.com/lFcfv.png>

Where Canary also has a special calendar that actually displays which week # it is: <http://i.imgur.com/F1HAr.png>

\</comment><comment></comment><comment></comment><comment>----

By the way if anyone is considering running Chrome's Beta or Developer channel, I highly suggest running Canary as well and using it as a default.

Canary, the nightly, is actually _much more stable_ than Beta/Developer, in that when something breaks in the Developer build it also breaks in the Canary build, but Canary is fixed in a day and Developer is fixed in 1-3 weeks.

<comment><USER7> While things break for a shorter period in Canary, they also break more frequently.

In my experience when they break something badly in Beta, they push a fix outside of the scheduled releases.

</comment></comment><comment><USER3> This is an HTML5 item, so it should eventually come to all browsers.

Unfortunately, localization has not been properly addressed, in my opinion, so we're not going to be able to use it. Yes, theoretically people should choose their locale in their browser settings, but most people do it on a site-by- site basis.

<comment><USER8> I think that's going to be problematic. I'm located on Spain but all my software is configured as en_US for convenience.

<comment><USER9> >I'm located on Spain but all my software is configured as en_US for convenience.

Out of curiosity, why? I am always frustrated with Google (and others) for using my IP address to determine my locale setting, when I clearly have indicated en_US in the headers I send down to them. But I can see why they do if a lot of people purposefully don't set their locale correctly for whatever reason.

<comment><USER10> I can't speak in grandparent's name, but as a Belgian doing the same thing my main reasons are:

* Consistency 1. Most sites I spend my time on have English content. Same goes for programming, keywords are English, comments end up being English, etc.

* Consistency 2. Not every program I use has a (complete) Dutch version.

* Looks. Not everyone out there seems to take into account different languages when designing. Some English things cannot be said as shortly in Dutch without sounding silly (this works both ways). So pieces of the UI will look either overcrowded or overly empty. (Or the text sounds so odd because it got artificially shortened to fit)

* Convenience 1. When looking up an explanation/details about some programs you are using, the info will almost always be in English. It is easier to use the same language to find back what you need.

* Convenience 2. When reporting problems/bugs/finding out info about it, it is easier to use the English term used to find the info I need.

Those are the main things coming to mind. It's not like I've ever had real trouble understanding English anyway, so it's not a bother to put everything in English.

Keeping all that in mind, I do like my dates/times/... like I am used to them. Weeks start on Monday, times are in 24h clock, 16 Nov instead of Nov 16, 16/11/2012 instead of 11/16/2012, ...

<comment><USER11> don't forget: way too often you hit automated or really poor translations.

</comment></comment></comment></comment></comment><comment><USER12> If you change your browser settings to use a different language, the date input will be localized to that language.

I'd love to have a little more control over this. Perhaps adding:

      lang="fr"

to the input element or even the <html> tag, could localize the input?

The date picker runs from 01-01-0001 to 13-9-275760. Is this upper limit due to accuracy?

DateComponents.h

      static inline double maximumDate()
      { return  8640000000000000.0; } // 275760-09-13T00:00Z

<comment><USER13> > I'd love to have a little more control over this. Perhaps adding: > > lang="fr"

No, please, don't! Leave the users in control, developers will just screw this up with country=language=locale logic.

<comment><USER14> Then the browser localizes for you what it can and you'll get a very ugly- looking page that is almost all in e.g. French and dates in English. Seen that with some CMS which auto-localize their UI but not content, obviously.

</comment></comment></comment><comment><USER15> It seems to use the US locale, with it's "Month/Day/Year" for the date input. This is wrong (for me).

<comment><USER16> Been in the US for a few years now, this format still drives me crazy :( It isn't logical at all

<comment><USER17> I've been in the US since birth and I write in the YYYY-MM-DD format on all documents.

<comment><USER18> I didn't start doing this till I started programming. It never occurred to me how much more logical this approach was till then.

<comment><USER16> Sometimes I wish we had standards for these across the world. One metric system (miles or km? please agree on one), standard set of traffic signs (without any text), just drive on one side of the road (left or right?) etc - obviously some of these aren't practical (like driving) but some are (like establishing uniform traffic/road signs without any text, just pictures). I know it is wishful thinking :(

<comment><USER19> ISO has been created for you! the standard date is Y-M-D H:M:S

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Interestingly, it's been Opera that's taken the lead on all the new UI input elements in the HTML5 spec. Love to see Chrome playing catch up for once.

</comment><comment><USER20> <input type=color /> also works

</comment><comment><USER21> Opera has had this for a while now, fantastic that this is catching on. Imagine not needing some jQuery widget to choose dates and times PROPERLY. Wow, I can't wait!

[http://lostinthegc.wordpress.com/2012/04/17/how-to-style- the...](http://lostinthegc.wordpress.com/2012/04/17/how-to-style-the-date- html-input-type-using-css/)

</comment><comment><USER22> Huh, the positioning of the date picker is on the primary monitor for me even when the chrome window is on the secondary monitor.

<comment><USER23> For me the date picker appeared on my secondary monitor when the chrome window was on my primary monitor.

</comment></comment><comment><USER24> Unfortunately it doesn't look like the internal elements of the date picker in the calendar respect my browser text-size settings. Along with the other styling comments here, I hope that we keep accessibility in mind and allow the user to control their font size for these UI elements. I hope this is just an oversight or my user-error.

</comment><comment><USER25> You can customize these using shadow DOM. This thing is great.

</comment><comment><USER26> I don't mind these html5 items coming to all browsers, but I hope it will become possible to style these to your own needs, with vendor-prefixes or something alike. Because if you have a dark site it does become really annoying to have a bright white datepicker popup. Of course you could also just ignore these input types and roll your own based on javascript but what's the use than of this sort of enhancements..

</comment><comment> mite-mitreski This is great, I actually wrote a blog post some time ago about input types [http://blog.mitemitreski.com/2012/10/input-this-input- that-h...](http://blog.mitemitreski.com/2012/10/input-this-input-that- html5-new-input.html) When I was evaluating browsers for support it turned out that Opera is most up to date when we talk about input and desktop.

</comment><comment><USER27> Now if only Google had used them on their page. Since the change to horizontal "menu" for Search Tools, the date picker doesn't work in Opera, although it supports date/time for a surprisingly (considering support for some other features) long time (two years).

</comment><comment><USER28> The type="time" picker UX is pretty confusing. I don't think I'd want to show that to my users.

<comment><USER29> I hate that it skips me over to the next 'subfield' as soon as I've entered something that looks remotely legitimate - or as soon as I fail to. (Try typing 66 into the minutes field.)

</comment></comment><comment><USER30> If often thought about making an HTML5 fallback library for browsers that don't support features like this, or to make up for lack of localization, or to clean up ugly/unusable implementations.

Does such a project exist?

<comment><USER31> Here you go [https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross- Brow...](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser- Polyfills)

</comment></comment><comment><USER32> I would have liked to see an analog-clock time picker.

<comment><USER33> Don't worry, I'm sure Safari will have one (licensed from the Swiss Railway, of course) in short order.

</comment></comment><comment><USER34> Chrome has had date and time pickers for a while on Android. Which is weird, as Chrome on Android is usually way behind Chrome on desktop.

<comment><USER35> The week selector didn't work for me though. Nexus 7.

</comment></comment><comment><USER36> Anything that reduces the chance of my ever again having to write one of these can only be a good thing.

</comment><comment><USER37> anyone else able to get the seconds to work in the time picker? if not, why even show these?

</comment><comment><USER38> iOS 6 Safari already has it.

<comment><USER39> Yes, but Android does not have them yet, and that is the place where it would really be useful.

</comment></comment><comment><USER40> dear god it's ugly

</comment><comment><USER41> really neat!

</comment><comment><USER42> Date pickers have been there for quite a while now, they were there this spring. It's a real nuisance because the styling and several other requirements simply weren't ready when we were looking to implement them. Instead, we just reverted to text boxes with a date picker implementation in JS.

</comment><comment><USER43> Looks good.

However to actually use it in a neat app, it better be stylable via css and support localization(Month-Day-Year etc), otherwise we'll have to resort to a JS option most of the time, like is the case with styled selects.</comment>


Ask HN: Front End Developer or Web Developer? - <AUTHOR>

What sounds better?
For me, a web developer also does backend (can do it in node.js these days) and front end work (SPAs).
People told me web developer sounds like a web master of the 90s?
What do you think? <comment><USER2> Web developer sort of implies a jack of all trades, but master of none. It sounds 90s because it's very similar to Webmaster which now has a bad rep for the same reason. Keep in mind that the 90s was an era where you could know everything, and that just doesn't exist anymore in one person.

Front end developer is nicer because it implies that you're a specialist and can work as part of a larger team. Also the web is so much more complex than it was in the 90s due to the number of things you need to know well and the wide range of browsers and platforms that are available.</comment>