Some iPhone apps should not be written in Cocoa - <AUTHOR> http://kudtler.com/2008/12/some-iphone-apps-should-not-be-written-in-cocoa/

<comment><USER2> A new religious war is breaking out before my eyes: web apps vs. native apps on the iPhone.

The reality is that there are lots of native iPhone apps that should be web apps. Right now, the web apps don't quite pay as well.

I believe what we're ultimately seeing is the rise of the native/web hybrid application. These are a class of web-like applications that can run in disconnected mode:

* views use HTML/CSS stored locally on the client

* handling of requests from the views is done within the client itself, or dispatched externally to a web API

* sophisticated data structures can be persisted on the client (in mysql, text files, etc.)

* more sophisticated processing than typically occurs in your standard web app

* better access to native hardware features

The technologies are coming together: Adobe AIR, UIWebView/iPhone SDK, Android's WebView, etc. to support this. I'm looking forward to it.

<comment><USER3> That's the approach I am looking at. Consider a workout program for one reason for this approach. Many gyms are in basements and places where reception is crummy. The application should be able to run in these places, and offload to the webapp when necessary.

Consider travel applications. An American going to Europe will not want to spend the money to use your web application. (We've already heard about the incredible bills by people who didn't realize what was happening.)

<comment><USER3> Forgot one thing -- don't forget about the iPod touch market. Webapps are useless for those in many cases.

</comment></comment></comment><comment><USER4> I don't think this guy understands how simply amazing Cocoa is. Yes, maybe a designer couldn't learn Objective-C, but my goodness is it a beautifully designed framework.

Everything he lists is simple and stupid when you understand how to build iPhone applications.

"want slightly different buttons in a snap? Just photoshop it and you're off"

HTML and CSS? It's pretty easy to develop a beautiful UI in Photoshop and simple slice it up for Cocoa. When going back into CSS development, I'm frustrated because of the need to move things around by a whole bunch of divs and styling all that type.

He then continues on about server side administration? Hell no. Personally, I'm glad I can just make an app, deploy it, and not have to worry about the e-commerce, server maintenance, and running costs.

If making iPhone applications were like this, I'd die.

<comment><AUTHOR> Altough I agree on one point, that the sliced up photoshop UI also can account for Cocoa. I don't think you read the whole article. The part about server side administration is that it's easy to edit and add functionality to your app in a snap without all resubmitting to the app store and apple hassle. I also point out that not all iPhone applications should be written like this, just for some apps the advantages of this method outweighs the advantages on using Cocoa (first-last sentence in the article).

</comment></comment><comment><USER5> Apple's been saying that all along. <http://developer.apple.com/webapps/> The old "web apps are the SDK" line wasn't greeted with open arms by many, but I think Apple's done much to promote iPhone-tailored web apps as a viable alternative to Cocoa Touch for the very simple reason that there are more web developers than there are Cocoa developers.

They've even tried to make it reasonably transparent to the user, as web applications can reside on the home screen, and when launched, can be set to not display the browser toolbar, making them appear practically indistinguishable.

If you look at the work that's gone into WebKit/Safari, like a tenfold increase in JavaScript performance, HTML5 dbs, and a whole host of CSS work like gradients, canvas backgrounds, masks, reflections, transitions, and implicit animations, it's a more attractive platform than ever.

<comment><USER6> Now if they'd just provide javascript hooks for the location, acceleratometer, sounds, etc. (Yes, I've seen PhoneGap)

</comment></comment><comment><USER7> Take a look at <http://phonegap.com>. It will let you develop a web app and also get access to the iPhone's GPS, accelerometer, etc.

</comment><comment><USER6> Nice ideas and all, but most developers still benefit from being able to charge on the app store, plus the marketing Apple is doing for you (less and less, but it's still better than a web app no one goes to, and google ignores for 6 months.)

BTW, I'm going to be disappointed if I don't see the $5000/week people keep mentioning once I get up to speed on iPhone programming :-~

</comment><comment><USER8> I would agree with the post if IPhone was on a better network like Verizon, but given that AT&T's network coverage just isn't that great in the US (I'm currently a subscriber), not to mention that we don't have great nationwide wifi yet; I just feel that most IPhone apps still need to written in obj c.

(ironically, this is pointed out in the post)

<comment><USER9> You can store the HTML/CSS/JavaScript locally within the app, as well as use the built in SQLite database, which solves this problem. Of course, you lose the ability to update the app whenever you wish.</comment></comment>


How Astounding Saw the Future - <AUTHOR> https://www.nytimes.com/2019/01/10/books/review/astounding-science-fiction-magazine.html <comment><USER2> If you're looking for "Giant Killer", it's here: [https://archive.org/stream/AsimovEdTheGreatSFStories021940/A...](https://archive.org/stream/AsimovEdTheGreatSFStories021940/Asimov_ed%20-%20The%20Great%20SF%20Stories%2007%20-%201945#page/n263/mode/2up)

<comment><AUTHOR> Somewhat related. I find it frustrating that in this day and age, if I come across a list of "best short stories" or something along those lines, I can't just buy them online for $1 each or something like that. I pretty much have no choice but to buy a whole book--which possibly isn't available digitally--for a single story. Or I have to go searching around often dodgy sites to download a PDF.

<comment><USER2> There's often archive.org. The IA has so many books available to read, even ones that they shouldn't, that I make a point of checking them when I'm looking for something (and that's one of my better search tips: [https://www.gwern.net/Search](https://www.gwern.net/Search) ).

In this case, it appears to be part of a whole anthology of Isaac Asimov- branded stories which goes decade by decade - the first anthology collects stories from the 1800s like Hoffer's "The Sandman"! (Which puzzled me for a while, as I couldn't find "Giant Killer" anywhere in the volume and it seemed wildly out of place among Poe and Hoffer, until I realized the IA had the entire set of anthologies and Google was pointing me at some combined OCR or something.)

If you'd like to read a lot of classic SF stories, this is probably a good starting point: Isaac Asimov had decent taste as an editor and it pulls together hundreds of shorts in a single convenient place.

</comment></comment></comment><comment><USER3> But no mention of how 'Astounding Science Fiction' transitioned to 'Analog Science Fact/Fiction'? Same magazine, same content, same impact... Meh!

It was a gradual morphing of the titles, spread over several issues. Campbell preserved the 'symbols', which appeared on the top corner; these were intended to symbolize some abstract concept, such as 'analogy'. (Such a symbol is visible in the final picture: the radiating pattern on the top left. Nope, I don't know what it means, and I don't have that issue to hand. But it's not part of Freas' painting.)

It was all part of Campbell's mission to get readers to think, and speculate.

Last point, not mentioned anywhere in the article: Campbell's ASF dispensed with the old sexist covers of damsels in distress, and instead focused on science, engineering, and symbolism. He insisted that covers be as accurate as current scientific knowledge allowed.</comment>


Why don't people like Wix? - <AUTHOR> https://www.picklewix.com/single-post/Wix-Review-2018 <comment><USER2> Annoying in your face ads on YouTube. Maybe it works for their target audience but boy are they really annoying.</comment>


Nuisance Calls - <AUTHOR> https://email@example.com/nuisance-calls-adf1e5f8937c# <comment><USER2> I filled out the survey because I was thinking about the same question today. I've gotten two nuisance calls today, which is about the norm. Uncharacteristically, I answered both because I was expecting another call, and worried that the person might be calling from an unexpected number. One was an IRS scam, the other was a garbled voice followed by a hangup.

My guess is that most of the calls I get are not "targeted" in any particular way, but are pure Robocalls, systematically dialing through blocks of valid numbers. As such, I don't know that trying to maintain greater secrecy about the phone number is a good strategy. What I think we need is some structure whereby carriers are incentivized to stop them --- maybe there's a way to hold them responsible for the illegal ones?

Until then, what I'd like to have (but haven't really found) would be a simple Android app that sends known spam numbers to a blackhole (like [http://www.jollyrogertelco.com](http://www.jollyrogertelco.com)), that sends unknown numbers to a screening system, that sends known numbers to voicemail, and rings the phone only for calls from a whitelisted subset of known numbers. Is there one of these out there?

<comment><AUTHOR> nkurz, thanks a bunch for taking the survey!

The problem of nuisance calls is a real one, indeed. To be honest, I hadn't realized how many I receive myself until I started taking count of them. And as you rightly pointed out, we answer them because we think that they might be important. Subsequently, I've missed some important calls because I thought that they might be spam (sigh!).

I've some research experience where carriers were involved and realized that they have a huge sway with the politicos. So practically, I have doubts that getting them to be held accountable is gonna happen.

The National Do Not Call registry works, but telemarketers and other such 'callers' always find a way around it. One slick feature I found in Android lately is that it asked (after I received a call from an unknown number) if the call was a spam. So it kind of blacklists some numbers locally. Regarding what you seek, doesn't Google Voice kind of does that?</comment></comment>


GitHub Explorer a Progressive Web App - <AUTHOR> https://github.com/trungdq88/github-explorer <comment><USER2> Now THIS is a really sexy UI. Needs a desktop mode though.

</comment><comment><USER3> Hi, would love to hear all the feedback. Thanks!</comment>


Why you should avoid hotel Wi-Fi like the plague - <AUTHOR> http://www.techradar.com/us/news/networking/wi-fi/why-you-should-avoid-hotel-wi-fi-like-the-plague-1292555

<comment><USER2> My 2 cents:

Even w/ WPA encryption enabled, a malicious user merely needs to get the network password/access to sit on the network and sniff packets as they fly by. This could be achieved thru various network sniffing tools, or some surreptitious people hacking. So relying on encryption alone does not solve anything.

If your guest WiFi is un-encrypted, i.e. no password/WPA, there is still transport layer encryption like HTTPS, that will secure the connection between the client and server, i.e. your web browser and your bank website. HTTPS assumes that you are on an insecure connection, that's what it was designed for!

Finally, many guest networks implement client isolation, which prevents clients on the LAN from communicating directly with each other or to other private LAN's connected to the guest network. Often network admins setup wholly separate network infrastructure for guest access, totally isolating their private back office LAN from the guest LAN.

Anyways, this stuff is hard, and probably beyond the comprehension of your average business that needs to implement guest WiFi.

</comment><comment><USER3> Every hotel I have stayed in lately has asked for a unique code from an SMS to join after providing the (universal) user and pass. I haven't encountered open wi-fi outside of an airport anywhere for years that I can remember. I would discard that level of scaremongering from the article, but of course once you have joined you had better have a think about what you sharing on the network with other 'legitimate' users.</comment>


Leveraging the power of roaring bitmap in Tinder recommendations - <AUTHOR> https://medium.com/tinder-engineering/how-we-improved-our-performance-using-elasticsearch-plugins-part-2-b051da2ee85b <comment><AUTHOR> Roaring bitmap works surprisingly better than bloom filter in Elastic-search as skip list plugin, completely beats the built-in skip list function.</comment>


Tate Galleries releases its collection metadata as json on Github - <AUTHOR> https://github.com/tategallery/collection/blob/master/README.md

<comment><USER2> Thanks, pretty sweet.

Edit: probably a niche issue for most, but this is worth a read... [http://blog.ninapaley.com/2011/09/27/dear-internet-we- need-b...](http://blog.ninapaley.com/2011/09/27/dear-internet-we-need-better- image-archives/)</comment>


The FBI Director Thinks a Law Against Encryption Is Possible Under Trump - <AUTHOR> https://motherboard.vice.com/en_us/article/fbi-director-comey-law-against-encryption-trump <comment><USER2> The FBI director is a fool playing politics under the scrutiny of multitudes upon multitudes, but thinks he only performs for his benefactors in private</comment>


Ask HN: Which software/service has the best documentation you have ever seen? - <AUTHOR>

This can be anything from a good help center to API documentation. I am trying to derive some inspiration and pick up good patterns. <comment><USER2> Python docs. No, really, I've never read any book about python, I started programming in python after reading a few tutorials about a language and then just looked at docs when some question come up. Also, I don't know whether it's just me or not, but I find that python projects tend to have a good documentation.

As for services, I think Parse is a good example of a very well written documentation.

<comment><USER3> Both Python itself as most big Python projects spend a lot of attention on documentation. Django is a very good example.

</comment></comment><comment><USER4>
      http://www.sqlalchemy.org/
      http://www.makotemplates.org/
      http://docs.pylonsproject.org/en/latest/index.html

</comment><comment><USER5> for me, Django has the best documentation out there. You can actually learn a lot about django by just reading the documentation. which is not always the case for other projects :)

<https://www.djangoproject.com/>

</comment><comment><USER6> YUI3 documentation. ExtJS Documentation.

</comment><comment><USER7> The one that I like that nobody else seems to is the PHP documentation at php.net, especially the documentation circa PHP3. I like it because, despite the language inconsistencies at the time, they allowed curated comments on the language docs so that exceptions were generally spelled out in the language.

They also had usage examples so that it was easy to remember "Was it find(needle, haystack) or find(haystack, needle)?".

jQuery is the same way, though their comments seem less curated, and often have red herrings attached to the documentation that should be removed, but aren't.

Really good documentation exists for Django and Python, but in my opinion, more 'how-to' examples would be great for people just starting out.

That said, since you asked what the best is, for me, the answer is quite easily the documentation for Stripe[1]. In addition to being exemplary in every other way, they also do real-time substitutions for variables.

An example that would look like "get("<YOUR API KEY">") in every other document you've ever seen would actually contain YOUR API key in the Stripe.com docs. Simply brilliant.

Leftronic[2] does the same thing as well, which I thought was a good lesson learned, but overall, their docs aren't quite as brilliant as Stripe's.

[1] - <http://stripe.com/docs>

[2] - <http://leftronic.com/>

</comment><comment><USER8> xcode's integrated documentations is a time saver!

</comment><comment><USER9> sencha ext-js</comment>


iTunes Instant, Solve 2 Huge iTunes Problems: Cluster Interface & Slow Search - <AUTHOR> http://labs.stephenou.com/itunes

<comment><USER4> Lots of people jumping on the Google Instant train...

Anyways, towards your iTunes instant: Why not offer the possibility to preview songs from your web app? You get the preview URL via the API!

<comment><AUTHOR> Good idea. I think that is totally possible through HTML5 right?

<comment><USER5> Yes. Check out Marco Arment's preview.fm. He had a similar web app that allows you to preview album.

<comment><AUTHOR> Oh yeah, I've heard about it before. I will definitely implement it using <audio> if it doesn't heavily affect loadtime.

<comment><USER5> Definitely man! That feature will be quite useful.

<comment><AUTHOR> Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER6> Under development: <http://iswebapp.com/itunes/rss>

For now the site does cross country iTunes RSS search (for Music, Podcasts, Apps, Movies, etc) and displays Album art with tooltip Artist / Album info (via title="...").

iswebapp.com will be a collection of "Unofficial and Experimental iTunes Store Web Apps"... aiming to build new experiences for iTunes content with lots of HTML5/CSS3 sexiness.

A minimal UI with fast load times. Single purpose apps... much like Stephen's brilliant work.

I will be building more web apps on the iTunes RSS/Search API's - <USER2> of course. I plan to release an open source jQuery Plugin for RSS, Search and Affiliate link generation. If you're interested drop me a line @i_chris_jacob

I started this site a few weeks back but got distracted by Node.js and theories on how to best make the AJAX content indexable (headless browsers, etc).

Excited to see such keen interest in Stephen's work... guess I'm onto a good idea. Congrats to Stephen for nailing Instant Search while it's so hot. Wish I was as clever at 15 y/o!

Follow @iswebapp - I'll be tweeting once the ball gets rolling.

</comment><comment><USER7> All of these jsonp / iframe based instantizers have to be putting load on servers (probably not in great volume, but still). There's a reason Google had to put special consideration into how to make the ajax-endpoints scale :)

<comment><USER8> In terms of scalability, YouTube Instant will encounter lots more problems than iTunes Instant. It's full-length video vs. 100x100 artwork image.

<comment><USER7> For Youtube Instant, the actual search terms are hitting suggestqueries.google.com for the autocompletion, which is what is powering google.com.

The actual video coming through is likely from a CDN, which are already built upon an infrastructure for scaling. Probably not as big of a deal as you think. Bandwidth wise it's unlikely that somebody watches the entire video as much as they rapidly hit different videos.

</comment></comment></comment><comment><USER9> Would it be possible for you to add support for App Store searches in addition to music, or do Apple's APIs not support that? If you had that, your search would easily replace iTunes's for me.

Nicely done!

EDIT: Oh, you have movie and TV show searches. Out of curiosity, what country are you in? Some results that come up for me aren't available in the US iTunes Store.

<comment><AUTHOR> I am in the US.

<comment><USER9> Huh. That's strange. Why would the API return results not available in the country the script's being run from?

</comment></comment></comment><comment><USER10> Awesome work man! To make it fully Google Instant, you would want to run the query against the first result in suggest. For instance, if you type in "la" you would get "lady gaga" instead of "L.A". Keep up the great work. :)

<comment><AUTHOR> Hm. I am not sure if that's possible through Apple's API. I will take a look.

<comment><USER7> Though not specific to music (and would have mostly non-music suggestions), you could hit suggestqueries.google.com with a jsonp-formed request. (maybe throw "music" in front of the typed query or something to apply filtering).

<comment><AUTHOR> That's a good find. Though I don't know if Google's suggestions will fit into Apple iTunes search.

</comment></comment></comment></comment><comment><USER11> From what I'm hearing, Android Market is the one that needs help with their search.

<comment><AUTHOR> Also, I've been thinking to make a more mobile-optimized version of the site right now.

</comment></comment><comment><USER12> Congrats on this clear, uncluttered thinking. Most of us could learn from this. Also, nice mention by Jason Calacanis re: job offer! Next up - <USER3> and TechCrunch...

Well done!

@LeslieCBarry | Iphso

</comment><comment><USER13> $.post("/itunes/ajax", {'q': q, 'hell_yeah': 52012} <\-- Hell yeah? :P

<comment><AUTHOR> That's like a form key. :)

</comment></comment><comment><USER14> You're a smart man. You set this up for the referral program. Once TechCrunch and Mashable get a hold of this, you're gonna be rich.

<comment><AUTHOR> Honestly speaking, I am not trying to make loads of money out of iTunes Instant. I can earn 5% of the commission which means it's only $60 if 1000 songs are being downloaded using my LinkShare referral links.

Though I do hope I will get the coverage of TechCrunch or Mashable. :)

<comment><USER14> Even so, you're offering functionality that people have wanted from iTunes for a long time, so you may be more successful than you think. :)

<comment><AUTHOR> Totally.

</comment></comment></comment></comment><comment><USER15> I am working a new project on Android for security. My goal is to release it sometime within the next few months.

</comment><comment><USER16> @stephenou you mean cluttered interface not cluster right?

</comment><comment><USER17> Superstar!

</comment><comment><USER18> Awesome work, Stephen!

<comment><AUTHOR> Thanks, Daniel! :)

</comment></comment><comment><USER19> just soory it is not working in Slovakia</comment>


How to Trick the Guilty and Gullible into Revealing Themselves - <AUTHOR> http://online.wsj.com/articles/how-to-trick-the-guilty-and-gullible-into-revealing-themselves-1399680248

<comment><USER2> My favorite trick is to have a salesman tell me that there is a better deal somewhere else. Anyone who says 'the offer is only good until you walk out the door!' knows that once you walk out the door you'll find something better.

Your buying <thing> once. The salesman sells <thing> every day. Whenever I'm given an exploding offer, I hear an expert in the <thing> market telling me that there is a better deal to be found.

</comment><comment><USER3> This article about Errol Morris from a few years ago includes a related trick.

[http://www.smithsonianmag.com/arts-culture/errol-morris- the-...](http://www.smithsonianmag.com/arts-culture/errol-morris-the-thinking- mans-detective-99424163/?all)

<comment><USER4> "I wanted to tell you about his private-eye trick, which he learned from a hard-bitten partner.

It wasn't a blackjack-, brass knuckles-type thing. "It went like this," Morris explained. "He'd knock on a door, sometimes of someone not even connected to the case they were investigating. He'd flip open his wallet, show his badge and say, 'I guess we don't have to tell you why we're here.'

"And more often than not the guy starts bawling like an infant, 'How did you find out?'" And then disgorges some shameful criminal secret no one would ever have known about otherwise."

</comment></comment><comment><USER5> Great article; but I've never been convinced by the authenticity of the King Solomon story.

 _> "Fetch me a sword," Solomon said. "Divide the living child in two, and give half to the one, and half to the other." One woman embraced his solution. But the other begged Solomon not to hurt the baby and give it to her rival instead. Solomon promptly ruled in her favor, figuring that the real mother would rather give up her child than see it die._

The objective of the (dishonest) woman is to get the (living) baby. It seems inhuman for a person, especially someone who wants a baby sufficiently to be dishonest, to "embrace" the baby being killed.

<comment><USER6> Not to mention the unfortunate implication that chopping a baby in half with a sword was a credible threat from Wise King Solomon.</comment></comment>


Academia is Detroit - <AUTHOR> https://medium.com/@timrpeterson/academia-is-detroit-642ffe167153

<comment><USER2> seriously!? no, real science is going to take more than a windfall win on the kickstarter roulette wheel. it takes years/decades to build the knowledge needed to make a meaningful contribution - this is only going to happen with a grown-up approach to govt funding.</comment>


New Zealand claims world first in setting standards for govt use of algorithms - <AUTHOR> https://www.theguardian.com/world/2020/jul/28/new-zealand-claims-world-first-in-setting-standards-for-government-use-of-algorithms <comment><AUTHOR> > The New Zealand charter, which the Guardian has viewed, was due to launch on > Tuesday with 19 government agencies as initial signatories. In it, > departments pledge to be publicly transparent about how decision-making is > driven by algorithms, including giving "plain English" explanations; to make > available information about the processes used and how data is stored unless > forbidden by law (such as for reasons of national security); and to identify > and manage biases informing algorithms.

> Agencies must also consider te ao Māori, or Indigenous, worldviews on data > collection – in New Zealand, Māori are disproportionately represented in the > justice and prison system – and consult with groups affected by their > equations.

> "Part of this is driven by the fact that because people are now increasingly > aware of how Facebook operates and the extent to which our lives are shaped > by the use of and the manipulation of data," Shaw said, referring to the way > social media companies use algorithms to direct users towards content. "This > is a really important part of building public trust in government > institutions."</comment>


HackerNews OnePage Safari Extension - <AUTHOR> http://blog.libinpan.com/2010/06/hackernews-safari/

<comment><AUTHOR> Believe this is what you are waiting for, just like myself!

You can get it directly from:

[http://blog.libinpan.com/SafariExtensions/HackerNews/HackerN...](http://blog.libinpan.com/SafariExtensions/HackerNews/HackerNews.safariextz)

Hope you will like it. Thanks!

</comment><comment><USER2> Looks pretty cool. After installing it, how do I enable the onepage mode?

<comment><USER2> Nevermind, it started working on its own after a while.</comment></comment>


The Worldwide State of the Mobile Web - Nielsen report [pdf] - <AUTHOR> http://www.nielsenmobile.com/documents/CriticalMass.pdf

<comment><USER2> I wonder why Nielsen drop (or don't include) the status of Japan. Do they think mobile web market in Japan as Galapagos Islands?</comment>


An update on container support on Google Cloud Platform - <AUTHOR> http://googlecloudplatform.blogspot.com/2014/06/an-update-on-container-support-on-google-cloud-platform.html

<comment><USER2> We are particularly excited about Kubernetes. We are taking the ideas for how we do cluster management at Google and creating an open source project to manage Docker containers.

[https://github.com/GoogleCloudPlatform/kubernetes](https://github.com/GoogleCloudPlatform/kubernetes)

<comment><USER3> Slightly offtopic - I haven't used docker yet but can docker be used to run Ubuntu on GCE? That seems to be possible by using a ubuntu base image?

<comment><USER4> Ubuntu can run directly on GCE. [http://doit-intl.com/blog/2014/5/31/how-to- install-ubuntu-se...](http://doit-intl.com/blog/2014/5/31/how-to-install- ubuntu-server-on-gce)

<comment><USER5> Note that some Google's Debian Wheezy images are specifically optimized for their Andromeda SDN [1], especially when they running on us-central1-b or europe-west1-a zones, where Andromeda is enabled [2].

Also Ubuntu 14.04 LTS has much worse performance than Ubuntu 12.04 LTS, so it's better to stick to 12.04 LTS for now.

In my opinion it's better to port to Debian or to run Ubuntu image inside container hosted on Debian, until they will have native Ubuntu support.

[1] [http://gigaom.com/2014/04/02/google-launches-andromeda-a- sof...](http://gigaom.com/2014/04/02/google-launches-andromeda-a-software- defined-network-underlying-its-cloud/)

[2] [http://googlecloudplatform.blogspot.co.il/2014/04/enter- andr...](http://googlecloudplatform.blogspot.co.il/2014/04/enter-andromeda- zone-google-cloud-platforms-latest-networking-stack.html)

<comment><USER6> "Also Ubuntu 14.04 LTS has much worse performance than Ubuntu 12.04 LTS"

Citation needed.

<comment><USER5> [http://www.phoronix.com/scan.php?page=article&item=ubuntu_14...](http://www.phoronix.com/scan.php?page=article&item=ubuntu_1404_ocean)

</comment></comment></comment></comment></comment></comment><comment><USER7> "Everything at Google, from Search to Gmail, is packaged and run in a Linux container." Was this something which Google had previously disclosed? Seems a bit surprising to me.

<comment><USER2> Yeah -- I talked about it a couple of weeks ago at GlueCon. Also shared that we launch over 2 billion containers every week.

My slides from the talk: [https://speakerdeck.com/jbeda/containers-at- scale](https://speakerdeck.com/jbeda/containers-at-scale) PDF: [http://slides.eightypercent.net/GlueCon%202014%20-%20Contain...](http://slides.eightypercent.net/GlueCon%202014%20-%20Containers%20At%20Scale.pdf)

<comment><USER8> I went to a talk on Omega on Box.com about a year ago. At that point Omega was still about managing Google's giant statically linked binaries.

Did Google switch to containers in a year? Maybe that answer is in your slides? If so crazy...

<comment><USER9> The statically linked binaries run inside the containers. Static linking gives you a certain kind of portability (no need for library dependencies on the machine.) The containers give you isolation, resource management, etc.

<comment><USER8> The way it has been explained to me is that Google's fat binaries have no dependencies beyond libc. The task scheduler would just have to deploy that one file to one or more machines to get it to run.

Containers are much more flexible that statically linked binaries. You could have multiple binaries in a container sharing a common set of dynamically linked files.

Fat binaries inside containers sounds a bit like the worst of both worlds...

<comment><USER10> If you want unrelated jobs to share library binaries, you need to stick to explicit release schedules for those libraries, which means more coordination between the various app teams and the teams that own the libraries.

When the size of the libraries (megabytes) is compared with the typical heap size of running jobs (gigabytes - a small number of large instances per job is typically a lot more efficient than a large number of small instances) the space savings of shared libraries become pretty negligible.

Back then, one of the main bottlenecks in the system was the central scheduler, in particular the amount of work it had to do tracking what binary packages were installed on each machine and what were needed for the candidate jobs it might plan to run on those machines. Having many packages per job just makes the scheduler bottleneck worse.

There were two places where it did actually make sense to share packages between jobs:

\- Java Virtual Machine and supporting libraries \- libc

These were external (so changed much less frequently), quite large, and were needed by very large numbers of jobs, so the space savings of having one copy of each needed version per machine outweighed the extra scheduling load required for them.

</comment></comment></comment></comment></comment></comment><comment><USER11> This post was written by Eric Brewer, the author of CAP theorem.

<comment><USER12> Is that the same Eric Brewer from Inktomi?

<comment><USER7> Yes, that's him :)

</comment></comment></comment><comment><USER13> I know Google runs at a huge scale, but isn't even for them 2 billion containers / week a LOT? I assume a lot of these only run for a really short time? Are containers the new scripts?

<comment><USER14> If docker images are fancy static binaries, then docker containers are fancy OS processes. Going through two billion OS PIDs in a week doesn't seem that hard.

<comment><USER15> Still seems like a lot, 2 billion a week is over 3300 every second. Says a lot about the scale at which Google operates.

<comment><USER11> _The Datacenter as a Computer_ [1] is a free book written by Googlers that helps get your head around that scale.

[1] [http://www.morganclaypool.com/doi/abs/10.2200/S00516ED2V01Y2...](http://www.morganclaypool.com/doi/abs/10.2200/S00516ED2V01Y201306CAC024)</comment></comment></comment></comment>


Nanoparticle chomps away plaques that cause heart attacks - <AUTHOR> https://msutoday.msu.edu/news/2020/nanoparticle-chomps-away-plaques-that-cause-heart-attacks/ <comment><AUTHOR> I know basically nothing about medical technology. How likely is this to actually end up making a big difference? How does this type of development compare to new battery technology, "graphene", and similar topics in electronics that regularly see huge news that doesn't seem to ever really come to market?</comment>


Prefab Tiny Home for 30k - <AUTHOR> https://nestron.house/ <comment><USER2> It looks like a caravan without the weels, they are cheaper than that and they come with weels.</comment>


Retraining for Workers Replaced by AI – Promising, but Only If Done Right - <AUTHOR> https://www.skynettoday.com/editorials/upskilling <comment><USER2> First, workers are rarely replaced in general by AI. The correct wording would be "displaced" in that the job definition may change, or move the labor demand to other industries. Unemployment is rarely affected in the long run. See the r/economics FAQ on automation for details on that [1]

That said, it's worthy to be skeptical of after-the-fact retraining programs because they've proven ineffective in manufacturing offshoring. Offshoring works exactly the same as automation on the economics of labor (replacing labor input with capital input for a task). Autor, Dorn and Hansen (2016)'s famous "China Shock" labor economic paper paints a bleak picture of adaptation to offshoring in rural manufacturing towns.

Rural communities do not adapt well to the changing economy that puts more emphasis on urban knowledge based work.

Forward looking training programs (training employees before labor disruption by automation) like described in the article has some merit to it however.

1\. [https://www.singlelunch.com/2019/10/21/the-economic- effects-...](https://www.singlelunch.com/2019/10/21/the-economic-effects-of- automation-arent-what-you-think-they-are/)</comment>


Ask HN: Will my original account ever be unbanned? - <AUTHOR>

I have an account just over 700 days old that has apparently been hell-banned. Pages take forever to load and when logged into that account I can see a half-dozen comments that are invisible when viewing the account page without being logged in.<p>Will this account ever be unbanned or am I stuck using this new account? <comment><USER2> In the guidelines, they say to direct questions to firstname.lastname@example.com.

<comment><AUTHOR> I didn't see this, I apologize. I will submit my question there. Thanks!</comment></comment>


Why do entrepreneurs flock to loudmouths as mentors? - <AUTHOR> http://entrepreneur.venturebeat.com/2010/01/19/why-do-entrepreneurs-flock-to-loudmouths-as-mentors/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Venturebeat+%28VentureBeat%29&utm_content=Google+Reader <comment><USER2> I've recently discovered that some of the best people are the ones you've never even heard of.

<comment><USER3> The problem, of course, being that you've never heard of them.

The more visible people have more followers largely because they are more visible. I'm not saying this makes it right, we need to learn how to find people based on value instead of visibility.

<comment><USER2> They're usually too busy getting stuff done. Look for people getting stuff done and examine their work.

</comment></comment></comment><comment><USER4> Loudmouths have followers for the same reason that stock analysts and oracles do/did. In the face of risk and uncertainty, it can be really compelling when someone tells you they know how to make it all better.

</comment><comment><USER5> One thing not mentioned is the chemistry part. It's kind of a dating game in a sense that you have to like something about the mentor, and the mentor has to take an interest in you somehow. E.g. perhaps you remind him/her when he/she was at your age, etc. It has to be a 2-way street. You can ask someone all the Q's you want but only a mentor will be emotionally invested in your success and _want_ to groom you.

I have a few mentors, I find it an incredible experience that people miss out on if they aren't already. Finding mentors, is difficult. I've found mine by luck. But you can always optimize your odds by hanging out where people you think you would like to be your mentor hang out.

</comment><comment><USER6> You only hear the loudmouths because they're loudmouths. There's just as much gravitation towards the quiet gurus and mentors by those that seek them out.

<comment><USER7> It's much harder to find someone who doesn't self market themselves.

</comment></comment><comment><USER8> I'm not sure this article really intends the point about the "loudest guy in the room" to be a metaphor. He seems to actually be talking about someone with a lot of in-person charisma.

The internet is a bit different in that one is rarely labeled a 'loudmouth' until people start listening, making the question of "why do entrepreneurs flock to loudmouths" nonsensical.

</comment><comment><USER9> It'd take me some doing to dig out, but there was an article around on HN perhaps 2 years ago that demonstrated how people, on the whole, would rather listen to someone confident but typically more wrong, than someone less confident but who was typically more correct.

<comment><USER10> One of the life lessons I've recently learned is that the people who talk the most, generally accomplish the least. However, on the first meetings, these people are very good at giving the impression that they accomplish a lot.</comment></comment>


Stratified JavaScript - <AUTHOR> http://www.croczilla.com/stratified <comment><USER2> This is a neat project. It would be great if there was a better explanation of how it actually works. From glancing at the code, here's an example of what it appears to do:

It transforms this:

      doSomething();
      hold(timeInMs);
      doSomethingElse();

Into this:

      doSomething();
      setTimeout(function() {
        doSomethingElse();
      }, timeInMs);

Basically, it uses code transformation to transform "synchronous" code into "asynchronous", callback-based code. The previous example isn't too bad, but if one starts adding many more callbacks, code can quickly become much more unreasonable. Worse still, it gets painful to refactor synchronous code into asynchronous code and back. Stratified JavaScript attempts to handle this slow, largely mechanical work for you.

It's not actually this simple, though--the javascript is actually compiled down to a representation that is executed by the Oni (<http://www.croczilla.com/oni>) runtime.

It also appears to allow one to "suspend" code at the callback breaks, passing it around as a continuation and resuming when required.

I would say this effort is broadly similar to the delimited continuations support in Scala 2.8. See <http://www.scala-lang.org/node/2096>.

<comment><USER3> Delimited continuations look interesting. I'd be curious if you could implement something like SJS's ALT operator ('@') with them:

A@B follows both branches A and B simultaneously and, as soon as either one of them returns, it cancels the other one. Cancellation means that the 'losing' branch gets a chance at cleaning up after itself (close sockets, remove ui, etc) and then gets abandoned.

(Disclaimer: I work on SJS)

</comment></comment><comment><USER4> This project has been around for a while, and I've always found it really interesting. I wish more people were working on approaches like this to make asynchronous programming easier on the developer.

<comment><USER5> Can you give a quick run down on why I should be interested? I gave it the standard "very quick look" and didn't make any headway.

<comment><USER6> It's a javascript extension. i.e. you write javascript in a:

        <script type="text/sjs"> ... </script>

block, which is parsed and compiled into native javascript. It allows you to write asynchronous javascript using straight forward syntax. e.g. pause execution (hold), split code into parallel tasks, split code and automatically join when one branch finishes (function @ function - think search), and suspend/resume code using events.

It's very cool and now I'm going to start looking for an excuse to use it.

<comment><USER5> Thanks. I get it. From your short description sounds like more human overhead involved in planning how to do it as opposed to using worker threads (not available in IE yet).

</comment></comment></comment></comment><comment><USER7> I wish it discussed more about how it works. I looked over that page and the Oni site and without downloading the code and looking at it I didn't see any way to understand what it is actually doing.</comment>


New EBS (AWS) volume type: General Purpose (SSD) - <AUTHOR>

It looks like Amazon has released a third EBS volume type, and renamed "Standard" volumes to "Magnetic". General Purpose is currently the default type when launching "Create Volume" in the EC2 Web UI (https://console.aws.amazon.com/ec2/v2/home), which provides the following documentation:<p>"General Purpose (SSD) volumes provide the ability to burst to 3,000 IOPS per volume, independent of volume size, to meet the performance needs of most applications and also deliver a consistent baseline of 3 IOPS/GiB. Provisioned IOPS (SSD) volumes can deliver up to 4000 IOPS and are best for EBS-optimized instances. Magnetic volumes, previously called 'standard volumes', deliver approximately 100 IOPS on average, with a best effort ability to burst to hundreds of IOPS."<p>The EBS Pricing page (http://aws.amazon.com/ebs/pricing/) currently makes no mention of General Purpose (SSD) volumes. <comment><USER2> Is it supposed to be all smooth sailing launching gp2 instances from standard snapshots and vice versa ?

It may be just me but I've had really weird and serious new errors today in us-east-1 launching new instances, or even starting previously stopped ones with no changes to the instance whatsoever ! General slowness, "reachability" health check failing, with the system log showing that the kernel couldn't be uncompressed, maybe because the bootloader couldn't find the root device in the first place ? I'm not using custom kernels at all.

The timing is too strange for it to be a coincidence, but nothing on the AWS status page.

</comment><comment><USER3> Official announcement just been released.

[http://aws.amazon.com/blogs/aws/new-ssd-backed-elastic- block...](http://aws.amazon.com/blogs/aws/new-ssd-backed-elastic-block- storage/)

</comment><comment><USER4> Interesting. I can create a gp2 volume through the console, but not through CloudFormation.

      UPDATE_FAILED - gp2 is invalid. Valid volume types are standard and io1.

<comment><USER5> We can look into this if you can provide the stack id.

<comment><USER4> Thanks, but I'll contact AWS support through our account.

</comment></comment></comment><comment><USER6> It'll be interesting to see how much CloudCorset will be able to impact/improve performance by reducing the number of IOPS that goes to the EBS storage backend. [http://www.cloudcorset.com/?ref=Tie98](http://www.cloudcorset.com/?ref=Tie98)</comment>


We use your own cookies against you: raising the price on tickets - <AUTHOR> http://www.reddit.com/r/AskReddit/comments/1caomf/what_are_some_useful_secrets_from_your_job_that/c9es3w2

<comment><USER2> I heard of this practice a long time ago from a few colleagues, not everyone does it but apparently it is a technique employed by a few. It's really smart when you think about it, something not many people would think of. While there is no evidence of anyone doing this, it's apparently one of those "in the industry" things that some know of.

</comment><comment><USER3> I believe there is no proof of a real world airline doing this. Happy to hear otherwise though!</comment>


Snap lost 3M daily active users last quarter - <AUTHOR> https://twitter.com/ranimolla/status/1026924555842068486?s=21 <comment><USER2> Snap is at risk of just being a fad. To be honest many of the people I know that used Snapchat a year ago have just plain forgotten about Snapchat altogether by now, and they never post anything, or look at anyone elses posts.</comment>


Ubuntu: notifyOSD ignores the expire timeout parameter - <AUTHOR> https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508

<comment><AUTHOR> This bug just bit me.

"Why is my --expire-time setting not working? It's almost like it's being ignored ... oh, it is."

:(</comment>


Ask HN: Intellectual Property Ownership For Free Work - <AUTHOR>

Hey HN,
For one of my university subjects we are given a real world client with a real world problem to solve. The only major issue I have hit with this client is to do with the intellectual property ownership of the final product. Our university policy states that we own the IP for everything we make for university. The client wishes to own all the IP for everything we create to do with this project.
When my group first looked at the projects, we each estimated the time required to do parts of the project while reusing our own existing code bases.
Two weeks into the project (and around the time we had something presentable), the client informs us that they would like to be able to adapt the code and have it redone in the future. I sent an email to the client that week suggesting that we hand over a copy of the code, as well as all the documentation required to compile it, set up the servers required and develop it further. Unfortunately two weeks later they respond saying they want it all.
I am somewhat happy to hand over the IP for the code I am writing, however it'll mean I can not use the existing code base I have, and hence will double the time required to complete. The guy working on the API also has the issue where not using his existing code would double the time to complete the task, but unfortunately he has already completed this and redoing it will put us well over the budgeted hours.
Has anyone else in HN had similar IP issues? Can you help me think of a way that will keep the client happy while still allowing us to retain the IP for the code?
Mitch <comment><USER2> Offer to license your existing codebase for a fee, set out in a contract that you retain the IP you bring to the table (your codebase), or otherwise state that it'll simply take more time because you aren't comfortable leveraging your existing assets without protection.</comment>


A question about the source code of Proprietary software - <AUTHOR>

Why cant the source code of proprietary software be "decoded"?Isn't the computational power and technology at the moment capable of accomplishing such a task?If a software is closed sourced then is there no means to understand the code behind it?A software being closed source absolutely guarantees that no one can see the code running it?<p>Note:I am not a programmer or a technically sound person,I am just curious to know. <comment><USER2> There are various nuances to this question. It is certainly possible to decompile an executable program into source code with equivalent behavior, but that code may not be easy to understand. Well-written source code contains a lot of information — such as variable names and comments — that is not strictly necessary for the program to work (and thus is typically thrown away by the compiler) but makes the code easier to understand. Understanding code written in an unfamiliar style is difficult enough, but understanding code with no variable names or comments is usually not worth the effort.

</comment><comment><USER3> A lot of software can be disassembled or decompiled, but you generally lose variable names and comments (especially if the code has been intentionally obfuscated). And generally the compiler that produced the code did optimizations which obscure the function of the code. Trying to decipher anything but trivial software from disassembled code is much more difficult than deciphering the code itself, which is often a non-trivial task on its own without good documentation.

See: <http://en.wikipedia.org/wiki/Disassembler> and <http://en.wikipedia.org/wiki/Decompiler>

<comment><AUTHOR> The above two answers my question.Thanks.</comment></comment>


This is what comes after search - <AUTHOR> http://qz.com/205689/context-this-is-what-comes-after-search/ <comment><USER2> Of course users whose home screen has been replaced by a Google Now like experience are using web search less. This information is hardly generalizable to users of regular smartphones.</comment>


Debian GNU/Hurd 2019 Released - <AUTHOR> https://lists.debian.org/debian-hurd/2019/07/msg00001.html <comment><USER2> I think that it is exciting that people are still working on Hurd and there is a new release synced with Buster. I think there is latent potential in microkernels and that we may actually be at in position to exploit some of the benefits such as heightened security and stability. While at the same time the performance cost of context switching could be reduced due to the higher number of cores on modern chips (especially compared to the hardware available in the 90s). One of the biggest adoption challenge any new operating presents is hardware compatibility and well a reason to try it. 80% software compatibility with Debian is a big accomplishment, so this is probably worth spinning up a virtual machine to play around with.

<comment><USER3> Well I've been hearing about those benefits for at least 20 years. None yet actually sighted in the wild. Any attempted explanations from the microkernel religious zealots has been thoroughly unconvincing (because mach is slow, so?). Maybe you're right, I'd _love_ to see it if you are. But while prior performance is no guarantee of the future, as they say in the funds management adverts, a pattern of repeated failure is something maybe not to completely ignore. Is there a reason for it that is being overlooked or glossed over. (In mutual funds it was and is M.E.R.) Stallman talks about hurd being really hard to debug, is that a thing? Or is there some kind of combinational explosion using multiple servers a message passing that isn't there with a monothlithic kernel? Something else entirely?

Anyway I'll go back to the american monolithic kernel conspiracy to destroy OS research and keep the Europeans out and ask the brothers if they can think of anything. (That's a joke, right? Yet I've heard it said in the absence of irony...)

<comment><USER2> Well Intel chose minix to run their often despised management engine, so their engineers saw some benefit there to the microkernel architecture. Google is putting at least nomimal developer resources into Fuschia. And the L4 microkernel and derivatives displayed that microkernels aren't doomed to be slow.

I think that Linux is probably going to be the dominant free software kernel for quite some time especially since it has finally gotten to the point of at least receiving nominal driver support by hardware manufacturers. So Hurd will be a curiosity for now but considering its history it is still very cool that development continues. Whether it will become useful in ways that Linux is not remains to be seen.

<comment><USER4> The L4 microkernel is currently being used by Apple in the secure enclave.

See [https://support.apple.com/en-us/HT209632](https://support.apple.com/en- us/HT209632)

<comment><USER3> Looks interesting. My former colleagues worked on porting osx to l4 more than a decade ago.

That still doesn't look like a microkernel based, multi server os to me and does not claim to exhibit those of touted advantages. This reminds me more of dresdens live demo cd from about 2006. Great stuff, but more of a virtualisation layer than an os.

I'd like to see it stand up.

<comment><USER5> Just out of curiosity, are you saying you don't think the OS running on the Secure Enclave processor (which is separate from the main OS) looks like a multi server microkernel, or are you still referring to the osx on L4 Experiment you mentioned?

</comment></comment></comment></comment></comment></comment><comment><USER6> I'm curious, but why are people still spending time and resources on Hurd?

Is it curiosity or is there some use case for Hurd that I'm not aware of?

Thanks.

<comment><USER7> You don't know the fundamental difference between Hurd and Linux, do you?

<comment><USER8> Hurd is like Mazda Wankel engine. :-)

<comment><USER9> Except Mazda actually sold millions of cars that ran down the road with the Wankel engine.

<comment><USER10> The wankel was actually like Hurd at one point, everybody thought it would be the next big thing and many car manufacturers had wankel engines. Mazda stuck it out and funded it into production.

</comment></comment></comment></comment></comment><comment><USER11> > Debian GNU/Hurd is currently available for the i386 architecture with about > 80% of the Debian archive, and more to come!

Does Hurd still not support amd64?!

<comment><USER12> From [https://www.gnu.org/software/hurd/faq/64-bit.html](https://www.gnu.org/software/hurd/faq/64-bit.html)

> There are currently no plan for 64-bit userland, but there are plans for > 64-bit kernelland with 32-bit userland, which will notably permit to > efficiently make use of more than 2 GiB memory and provide 4 GiB userland > addressing space. Work on this is currently in the master-x86_64 and port- > amd64 branches for GNU Mach.

> That being said, you can always run a 32-bit version on a 64-bit machine, it > just works, processes are just limited to a couple GiB available memory.

<comment><USER13> Debian x32 has a pretty similar concept wrt more efficient memory usage: [https://wiki.debian.org/X32Port](https://wiki.debian.org/X32Port)

<comment><USER14> You can also store pointers for more than 4 GB in a 32 bit address by compressing them.

<comment><USER15> But you are still using 32 bit registers so your load and save instructions can't really make use of compressed addresses

</comment></comment></comment></comment></comment><comment><USER16> Does the Hurd team go around lecturing people who call it "Hurd" about how it's actually "GNU"/Hurd, how Hurd is the kernel and that's only one part, or is that only when the kernel wasn't their idea?

<comment><USER17> Hurd is a GNU project so it doesn't even really need a second mention, it only needs that mention because there is a competing kernel (Linux) that is used with the system. Otherwise it's just known as the GNU system. The kernel is pretty irrelevant for most users, we don't call it Android/Linux or Windows/NT for a reason. A kernel is not an operating system. Calling the whole OS Linux is both inaccurate and does not introduce anyone to the whole reason why the GNU project was started, which is having the freedom to really own and control your computer. Linus Torvalds doesn't give a shit about that and is happy with chromebooks as long as they use his kernel. Freedom is irrelevant to him and most of the "open-source" community. That should be reason enough to not call the entire system Linux.

<comment><USER18> You're argument holds water, but the problem is when we start getting into OS's that actually don't ship any of the GNU userland. The classic example is Alpine Linux. Do we call that BusyBox/Linux? WSL 1 was a super weird anti- example where Microsoft skipped out on the Linux and shipped GNU stuff and still called it Linux. I think the colloquial naming convention became something like Kleenex or Google where we default to blowing our nose with (generic usage, not brand usage) "kleenex" with off-brand tissues or had our parents (generic usage, not brand usage) "google" something on Bing (as thats the default search engine of Windows).

<comment><USER19> Depends on what you mean by Linux. The ABI Microsoft were attempting to emulate was absolutely Linux. (This API business is exactly the issue with Oracle vs Google over Java).

</comment></comment></comment></comment><comment><USER20> Oh wow, I didn't realize hurd was still alive, and even 80% of the packages are working! Impressive

</comment><comment><USER21> How well does it work? Can you run Gnome, for instance?

</comment><comment><USER22> What does Hurd uniquely solve?

<comment><USER23> Which microkernel based OSes are ccurrently deployed? Which of these are open source?

<comment><USER24> Symbian (you can still buy handsets), QNX, L4, INTEGRITY OS, GenodeOS, muen, Fuchsia.

Then you have the hybrid ones from Apple, Android with Treble (classical Linux drivers are referring to as legacy driver on the documentation) and Windows is kind of hybrid as well.

As of Catalina, Apple was very clear that the long term roadmap for their OSes is to move all drivers and kernel extensions into userspace, which will be a gradual process.

<comment><USER25> That is fascinating. So is everyone moving to be more microkernel-y? It's anyone actually transitioning to a more monolithic system?

<comment><USER26> It's a natural evolution of any system - monoliths are ok only as long as you don't need much of reliability, security, productivity, cooperation, etc.

<comment><USER27> > monoliths are ok only as long as you don't need much of reliability, > security, productivity, cooperation, etc

As a supporter of microkernels I feel this is more a list of side effects. I'd put it this way: monoliths are ok so long as any critical code stays very small and comprehensible in it's entirety by an individual. It's also respectful of things that are not microkernels.

Good microkernels designs operate on the same principle, to achieve reliability and security they keep their critical code very small. It's not invulnerable to bugs, but it is well understood that minimising this surface area is the first step in minimising bugs, the secondary effect is also focusing attention due to minimising total lines of critical code. Microkernels are an attempt to take this to an absolute minimum by adding a layer of abstraction that makes otherwise critical code non-critical.

As a mere enthusiast I feel like this is the most useful lesson to take away from microkernels in other software, not triple redundancy or fancy reincarnation servers, but the fact that scale breeds complexity breeds bugs. Making sure the critical parts remain lean and inspectable helps a great deal in all software even when the separation is not as strict.

</comment></comment></comment></comment></comment></comment><comment><USER28> Maybe if Hurd decide to rewrite their kernel in rust I would give a s@#!, but since it's still a none usable kernel after decades of debugging and development, maybe it's ripe for /dev/null ?

</comment><comment><USER29> Can someone with more knowledge answer, is it possible to have one core in kernel mode and another core in user mode? If yes, is it quicker to message between cores or to context switch?

</comment><comment><USER30> Still stuck using Mach (1st gen microkernel).

Design failures highlighted in the Hurd critique paper still not addressed.

I'd look elsewhere, such as Genode with seL4, or Minix3.

</comment><comment><USER31> I own a 32-bit machine specifically for trying out GNU/Hurd, just for fun. Glad to have an excuse for dusting it off once again.

</comment><comment><USER32> I've been reading about hurd for so long, today is the day I try it in Virtualbox! Cool stuff, good work people!

</comment><comment><USER33> ..and the Symbian guys will be thinking where did they go wrong? :)</comment>


Is web security a hopeless pursuit? - <AUTHOR>

Two examples that make me think about this from time to time.
First, a number of sites that require registration email you with confirmation of your registration.  They include your user id and password in plain text within the email.  Few things are as irritating as this (at least to me).  One has to think about how and if they store that email and who within the company has access to it in plain text.
Second: Google Chrome still has no security to prevent access to all of your passwords in plain text!  OK, they added a "Show" button.  Fantastic.
Those in tech are probably very aware of this.  However, "civilians" using this browser at home or at the office might not be aware of the fact that they are opening their lives up for anyone with access to their computer.
These are just two of the many examples one might be able to come-up with.
I am starting to think that I want to see a day when every device has a fingerprint scanner and passwords are history in some form and at some level.  Probably not the best solution.  Not sure that one exists. <comment><USER2> The best solution is education. Its the first thing they teach security auditors. Just about all of the really hard problems in security have solved solutions that really do thwart attackers. The issue is that both organizations and regular users do not know how to actually use them correctly.

<comment><AUTHOR> You might be assuming tech-capable users. My concern focuses around those like my parents, uncles, aunts, cousins, friends and acquaintances for whom what happens past the keyboard and mouse is as mysterious as can be. Trying to educate users, at some level, is an exercise in futility. It just isn't going to happen.

The situation here is that someone might trust a company like Google (not picking on them...just a good example of the mechanism), download Chrome and start using it for everything. This can happen at home or the office. By doing this they are exposing themselves at the worst possible level to identity theft and worst, without as much as a warning. It's perplexing, to be honest.

My wife would save emails from services that she subscribed to in order to "have the user id and password handy if I forget". Probably half a dozen emails with plain-text passwords on her machine (deleted now after an explanation). There have to be millions of people with similar issues out there.

I'd say that blaming the user isn't quite right in all cases. The sites and companies that expose their most secure information so easily are the real culprits. Google, are you reading this? Fix Chrome please, this security flaw is bad, bad, bad.</comment></comment>


Trying to be a Naive Entrepreneur again - <AUTHOR> https://unsupervisedmethods.com/trying-to-be-a-naive-entrepreneur-again-2e03a9a7457e <comment> FLUX-YOU I think you'll be quicker to tire in healthcare. The highs are not very high and lows can be really low.

It depends if your product depends on cooperation from staff to work. If you build things to extend EHR/EMR functionality, it does require cooperation down to the level of integration and delivery. They may require a copy of your product to be installed locally, which will make support difficult (you now have additional credentials to manage and policies to follow for their network).

Physicians and Nurses can be very tough customers because they have so much demand on their own time and skills due to the mortality of their work. They're not a group you often tell to go read the docs.

It's better to deliver something new that adds value because they're not going to have much frame of reference to what the workflow should be. It's a new product and they switch into learning mode. They're then more accepting of new workflows. I've seen this several times presenting changes to existing products and presenting new products to this industry.

</comment><comment><USER2> "In the beginner's mind there are many possibilities, but in the expert's there are few."

Zen Mind, Beginner's Mind</comment>


Design+Code: Learn iOS Design and Xcode - <AUTHOR> http://designcode.io

<comment><USER2> This looks phenomenal. I will more than likely drop the money for it just based off of the content of the website (I always sit on purchases ~$50+).

<comment><AUTHOR> Thanks, I think you will like the final content when it's ready! :)

</comment></comment><comment><USER3> really looking forward to this. Meng is a great teacher as well as designer and coder.

<comment><AUTHOR> David, you're doing great yourself. I look forward to what you have in store for us. Thanks for dropping a line!

</comment></comment><comment><USER4> Looks promising

<comment><AUTHOR> James, this book wouldn't be possible without you. You taught me virtually everything I know about Xcode!

</comment></comment><comment><USER5> Meng gets it, looking forward to this.

</comment><comment><USER6> Will there be a physical copy?

<comment><USER7> According to this ([https://twitter.com/MengTo/status/447017458251997184](https://twitter.com/MengTo/status/447017458251997184)) no. It will be available on the website and as a PDF.

</comment></comment><comment><USER8> looks really good. I'm really looking forward for the building part.</comment>


Bringing magic back to technology (2015) - <AUTHOR> http://countercomplex.blogspot.com/2015/04/bringing-magic-back-to-technology.html <comment><USER2> The problem is that the "bad" kind of magic the author describes (opaque, complex interfaces that don't follow any logic) are unavoidable. In the past, you simply couldn't produce these behemoths, so people built elegant simple things. Now you can produce Microsoft Excel, or Adobe Photoshop. Once you start building real world products and start adding all the features that people need, things get messy. I've been in the situation where adding certain features would make the code very messy and would break the logic of the interface, and argued against adding them, but the people who worked with users insisted that these features were needed. And I agreed in the end, users really did need these features.

I think the only thing that has a chance to tame the complexity of software is better languages, like Haskell and beyond.</comment>


Show HN: I built an AI app to extract tables from images over API - <AUTHOR> https://www.extracttable.com/ <comment><AUTHOR> Behind scenes involves in 1\. OCR - to detect characters 2\. use location bindings of the words as input to an AI model which spits out table cell ids that contribute to form a table structure

<comment><USER2> \- Decent UI \- conveyed the purpose from the site

However, a trail/demo page to test out an image from UI would be much helpful than expecting people to try out with the code.

<comment><AUTHOR> I agree, this was inline with the next improvements. As this looks like a priority, you should be seeing this in a day.

<comment><AUTHOR> As stated, demo is live now.</comment></comment></comment></comment>


2011: Piracy Wars and Internet Censorship - <AUTHOR> http://torrentfreak.com/piracy-wars-and-internet-censorship-111231/?utm_source=dlvr.it&utm_medium=twitter <comment><USER2> In the spirit of reflecting on the year in piracy, let's take a moment to recognize the Scene and it's resilience in light of law enforcement. They've been going strong for almost 30 years now with hardly any arrests of any real scale.

While governments are devoting all their time and effort to catch DDOS spammers and Lulzsec, the official release scene puts out games (with cracks!) and movies weeks before theyre released. TV shows are even more impressive; you can download most any primetime show before its even aired on the west coast. All of this for free, and released in true commercial quality, yet they get nothing but the satisfaction of beating their fellow release groups for their hours invested and risks taken.

Yes, they are pirates. No, they should not be idealized or rationalized. But they are resilient and a force that, seemingly cannot, be reconned with.

<comment><AUTHOR> What rings true about the scene is that the distribution model is quite simply better. It's been said time and time again, but really, this fact is crucial. If I go out and buy a DVD I'll likely end up with a product that is inferior in quality as compared to whatever is listed on your favorite tracker; e.g. I can expect an annoying series of ads, anti-piracy warnings, and a poorly constructed menu. What the industry should do is recognize they're distribution is being outdone by laypeople and then find a way to emulate this kind of model. In other words, distribute over the Internet in a frictionless way. We already know if done properly, people are even willing to pay! It's clear: people want a quality product, they want to own it (i.e. no DRM), and they're even willing to pay for it.</comment></comment>


Ask HN: Seeking the ultimate definitive guide to installing postgres on OSX - <AUTHOR>

Usually whenever Postgres stops working I feel like I'm bumping around in a dark room in working to understand what is actually going on and a process to apply a fix myself.
A year ago I asked a question on stackoverflow as I was having problems with postgres, since then the question has had over 15,000 views.
If someone would be willing to write up a definitive guide explaining core concepts of why things go bad and how to diagnose these issues yourself I'm sure it will get lots of views.
http://stackoverflow.com/questions/12472988/postgres-could-not-connect-to-server-no-such-file-or-directory
[edit] Here is a more pithy discussion on the problem: http://blog.ringerc.id.au/2012/09/postgresql-packaging-on-mac-os-x-is-mess.html?m=1 <comment><USER2> I have installed it with homebrew several times, just pay attention to the instructions of the "brew install postgres" command.

</comment><comment><USER3> just download postgress.app

<comment><AUTHOR> Postress.app introduces another copy of Postgres to the OS. May make things simpler but still leaves you clueless as to what is going. Thanks for the suggestion though :)</comment></comment>


Show HN: Hrnw.io – Chat with people around you - <AUTHOR> https://hrnw.io <comment><AUTHOR> Maker here...

I built hrnw to connect people who are in the same location at the same time. Think of it as an anonymous chatroom with everyone else who is also on the app at the same time, within a few hundred feet or so of you. I think it would be fun for bars, concerts, conferences, or really any other social gatherings.

Please let me know what you think, if you'd like to know about the stack, and if you see any big issues.</comment>


Keylogger in Hewlett-Packard Audio Driver - <AUTHOR> https://www.modzero.ch/modlog/archives/2017/05/11/en_keylogger_in_hewlett-packard_audio_driver/index.html <comment><USER2> _Actually, the purpose of the software is to recognize whether a special key has been pressed or released._

I'm doubtful of the utility of software like this. Every driver and application seems to want to keep a persistent background process running, and because of the natural inefficiency of software (this executable is ~2MB --- why it needs to be this big, I'm not certain; from a brief inspection, all it seems to be doing is controlling microphone mute/unmute), results in a huge waste of resources and new computers which appear no more responsive and than older ones.

However, to put the severity of this problem in perspective, from the description this is not like a typical keylogger that sends keystrokes out to some remote server; it only logs locally.

 _If you regularly make incremental backups of your hard-drive - whether in the cloud or on an external hard-drive – a history of all keystrokes of the last few years could probably be found in your backups._

There's going to be plenty of _other_ sensitive information in your backups, which if you don't want others to read you would use encryption anyway, in which case the point is rather moot.

 _Any process that is running in the current user-session and therefore able to monitor debug messages, can capture keystrokes made by the user._

...or it could just monitor the keystrokes itself with SetWindowsHookEx() like this process.

Thus, I think the correct reaction to this is more towards the "oops... that wasn't a good idea" than "everybody panic!"

<comment><USER3> > There's going to be plenty of other sensitive information in your backups, > which if you don't want others to read you would use encryption anyway, in > which case the point is rather moot.

This is a bit of a strawman. When you're backing things up, you know what you're backing up and chose to do so. Here you'd be backing up things that you didn't want to, or even worse, things you'd never want to be backed up anyway. If someone gets into my backups, maybe they can see some family photos or financial data...but they wouldn't otherwise be able to see all the porn searches I do in incognito mode. With this, they could potentially access that as well.

<comment><USER4> I think Windows actually has a built in "Backup Computer" feature, which AFAIK is a complete image backup. Alot of the cloud backup products do entire computer too (like Time Machine does for OSX). The convenience factor of a system backup for a non-technical user (someone who struggles with explorer.exe) is pretty great.

That being said, keylogging is just plain horrible and inexcusable. Passwords, searches, private messages, etc. There's no way we should be cutting them slack on this.

The worst part is, it's crapware like this that steers us towards the walled app store model for PCs... and the loss of freedom that accompanies that.

Every time I hear of stuff like this I gain more respect for Stallman.

</comment></comment></comment><comment><USER5> One thing I really like about Linux: random platform-specific hardware features like the mic button or whatever this is are handled by an open source "platform" driver in the kernel. These drivers expose a more or less uniform interface to user code.

So, when I install Linux on a laptop, most or all of the weird laptop-specific buttons just work without OEM crapware or runtime performance hits.

The downside, of course, is that you can't just download fresh crapware to make your brand new laptop fully functional. I'll take that tradeoff.

<comment><USER6> Well said. I have the same sentiment. Gimme Linux (or FreeBSD) and I stay clear of your crapware, re-install my machine less often, and install a new OS+apps much faster.

</comment></comment><comment><USER7> As a rule of thumb, you have:

      * Decent software companies terrible at making hardware
      * Decent hardware companies terrible at making software

I yet have to see one that does both correctly. Hardware manufacturers are known to produce the worst code quality you can think of, badly designed, poorly written, undocumented, insecure, bloated.

I have the feeling that the whole IoT problem is also related.

<comment><USER8> > Decent software companies terrible at making hardware

Not sure if one wants to count them as a decent software company, but Microsoft is quite good at building keyboards, IMHO.

<comment><USER9> Their internal divisions might be all over the place regarding company policies (see: Windows 10 as spyware :) ) and their insistence on keeping strict backwards compatibility with sub-par products (DOS, basically) might be debatable.

But their engineering these days is top notch. They might not be the best but they're probably in the top 10% sofware companies regarding engineering practices, IMO. If not higher.

<comment><USER10> > and their insistence on keeping strict backwards compatibility with sub-par > products (DOS, basically) might be debatable.

All 64 bit versions of Windows can neither run DOS applications nor Win16 applications (I described the technical reason for this at [https://news.ycombinator.com/item?id=14246521](https://news.ycombinator.com/item?id=14246521)).

<comment><USER9> While that's strictly true, there's a wider range of backwards compatibility they're keeping.

See the whole Rust/Cargo problem on Windows. Windows files can't be named con, aux, etc., because the Windows file systems are backwards compatible, generationally, all the way to DOS, which didn't have subfolders initially and which reserved those keywords for special files. Then as DOS added subfolders it still kept that global restriction, then Windows adopted it... and here we are today.

Windows is full of these things, a lot of them coming from DOS and more coming from Win16 or even early Win32.

I know they broke backwards compatibility in the strict sense with Win64, but apart from this not many situations where they did it come to mind. And even for that, they only did it because the overall market for DOS/Win16 was tiny at the point when they did it.

<comment><USER11> Concurrently occurring Creation -> Obsolescence produces overlap:

       DOS    Win3.1        Win95                Win10

       Creat.             Obsc.
       |</comment></comment></comment></comment></comment></comment><comment>---App</comment><comment>----|
           |---App---|
                         |-----App-----|
      ~1980</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>=====~2020
         |-----App-----|
                 |</comment><comment>-App</comment><comment>-|
                                |</comment><comment>--App</comment><comment>-->

(Okay, that looked a little better in my text editor.)

<comment><USER12> Vista (or was it XP) introduced a new security model that made prior apps that depended on a common install location being writable very interesting... They still kind of worked, but data's actual location was then per-user.

Other than that, most windows software runs as it has for a fairly long time now.

</comment></comment><comment><USER13> > Actually, the purpose of the software is to recognize whether a special key > has been pressed or released. Instead, however, the developer has introduced > a number of diagnostic and debugging features to ensure that all keystrokes > are either broadcasted through a debugging interface or written to a log > file in a public directory on the hard-drive.

Looks like it's not intentional. Although really poor code-quality process I would say.

<comment><USER10> > Looks like it's not intentional. Although really poor code-quality process I > would say.

To quote from

> > [https://en.wikipedia.org/w/index.php?title=Underhanded_C_Con...](https://en.wikipedia.org/w/index.php?title=Underhanded_C_Contest&oldid=773989999)

(emphasis by mine): "The Underhanded C Contest is a programming contest to turn out code that is malicious, but passes a rigorous inspection, _and looks like an honest mistake._ "

Do you really believe that Malory does not use practices that make the security hole look like a mistake of a not-so-experienced programmer or an internal debugging tool that was accidentally left in?

<comment><USER14> Sorry, what do you mean by "Malory" here? trying to google I only get references to Malory Archer from Archer.

EDIT: Think I found it. The new M's name is Gareth Mallory[0]

[0] [http://jamesbond.wikia.com/wiki/M_(Ralph_Fiennes)](http://jamesbond.wikia.com/wiki/M_\(Ralph_Fiennes\))

<comment><USER10> > Sorry, what do you mean by "Malory" here? trying to google I only get > references to Malory Archer from Archer.

> > [https://en.wikipedia.org/wiki/Alice_and_Bob](https://en.wikipedia.org/wiki/Alice_and_Bob)

"Mallory or (less commonly) Mallet: A malicious attacker."

Sorry I forgot one "l" in "Mal[l]ory".

<comment><USER14> Thanks! I was only aware of Alice, Bob and Eve, good to know there's a whole cast of characters.

</comment></comment></comment></comment></comment><comment><USER15> I'm strangely not surprised with HP and their actions (in this case, a lack there of). It reminds me of the Bose issue a year or so back with their products.

And the impact in which HP is going to experience - is nothing. Most people still to this day really don't care/understand on why this is a problem. They just want to get a computer for school, General internet surfing or watch cat videos. (Cat and Dog videos are quite interesting.)

<comment><USER16> HP got more flak for their "racist webcam" than this issue ever will, I suspect.

(2009: [http://gizmodo.com/5431190/hp-face-tracking-webcams-dont- rec...](http://gizmodo.com/5431190/hp-face-tracking-webcams-dont-recognize- black-people) )

</comment></comment><comment><USER17> I remember in the late 90's early 2000's when HP was embracing linux and open source... and then they merged with Compaq and I've seen nothing but mistake after mistake from them since.

I'm really tired of seeing companies positioned to make good things and better the world get focused on quarter profits and short term thinking, because it _always_ bites them in the ass eventually.

Mismanagement from the C level _up_ abounds.

</comment><comment><USER18> I archived the HP page just in case: [https://archive.fo/FjWUv](https://archive.fo/FjWUv)

</comment><comment><USER19> > ...or it could just monitor the keystrokes itself with SetWindowsHookEx() > like this process.

...which any AV will immediately flag. This allows malware to keylog in a much less detectable way by piggybacking off trusted HP software

</comment><comment><USER20> This is one of the main reasons for libre/free/open/choose_your_term software.

Even when malice is not to be checked for, genuine error, incompetence, forgetfulness or plain indifference must be checked for.

<comment><USER8> As much as I love Free Software, there have been plenty of examples of bugs (security-relevant and otherwise) in FLOSS code that were just as problematic.

Source code being open for inspection only helps if people actually take the time to _look_ at the code. OpenBSD deserves an honorable mention.

<comment><USER21> Proprietary software developers have little incentive aside from the possibility of discovery to not take advantage of users. It's sometimes difficult to determine whether it's malicious or not, and there's a greater chance for plausible deniable---we don't know the story behind that code.

If an anti-feature is discovered in free software, it can be promptly removed and replaced, regardless of whether the developers of the software consider it to be an anti-feature. What if HP wants this to remain for debugging/diagnostic purposes? There's little you can do about that. (I'm not saying they do.)

The fact that free software can have bugs is an open source argument that falls apart when the argument becomes "open source is better because of technical advantage X".[0]

There are frequent arguments that the freedom of drivers isn't important--- mainly because it's inconvenient to use a system without non-free drivers and requires purchasing replacement hardware to work around. This is an example that maybe can help counter that point.

[0]: [https://www.gnu.org/philosophy/open-source-misses-the- point....](https://www.gnu.org/philosophy/open-source-misses-the-point.html)

<comment><USER8> I do agree - wholeheartedly - with you that Free Software gives users control over what their devices do. This is important. Control and _trust_ that your devices do what they are supposed to do - no more, no less - are pretty much impossible to establish without free software

My point was that if nobody bothers to look at the code, the bug will go undetected. Think of how long the Heartbleed bug had been in OpenSSL before it was discovered.

<comment><USER21> > My point was that if nobody bothers to look at the code, the bug will go > undetected. Think of how long the Heartbleed bug had been in OpenSSL before > it was discovered.

Yes, I agree. "Linus's Law", while it has some truth, is a flawed (and open source) reasoning if considered absolute.

</comment></comment></comment></comment></comment><comment><USER22> Is this an old article? Conexant was acquired by Philips a while back.

</comment><comment><USER23> Wow. That's going to hit HP

<comment><USER24> Yeah, that's even worse than last years Lenovo fiasco.

<comment><USER25> I personally wouldn't compare these two incidents but just wanted to remind you that the Lenovo incident was malicious by design. This one can, and most likely will, be attributed to carelessness.

<comment><USER26> The article suggests that as well, the way I read it:

"Actually, the purpose of the software is to recognize whether a special key has been pressed or released. Instead, however, the developer has introduced a number of diagnostic and debugging features to ensure that all keystrokes are either broadcasted through a debugging interface or written to a log file in a public directory on the hard-drive.

This type of debugging turns the audio driver effectively into a keylogging spyware."

Carelessness sounds like a fairly reasonable explanation, simply applying Hanlon's razor. :)

<comment><USER10> > Carelessness sounds like a fairly reasonable explanation, simply applying > Hanlon's razor. :)

On the other hand: If you _do_ believe that there exist software on most computers where a security hole has _deliberately_ left in (and since Snowden you should), applying Occam's razor will tell you that it probably looks like "innocent incompetence", since considering the typical software quality this gives rather plausible deniability.

</comment></comment></comment></comment></comment><comment><USER27> "Neither HP Inc. nor Conexant Systems Inc. have responded to any contact requests. Only HP Enterprise (HPE) refused any responsibility, and sought contacts at HP Inc. through internal channels."

A keylogger and this is their response?

I hope they get the shit sued out of them.

</comment><comment><USER28> MicBleed

</comment><comment><USER29> googling "conexant keylogger" shows this is not a new problem.

<comment><USER30> Hmm, Conexant. I seem to recall battling their products back in the modem days...

</comment></comment><comment><USER31> This is fucked up world we live in !

</comment><comment><USER32> To fix the super-wide article:

        document.querySelector('.blogbody').setAttribute("style", "max-width:650px; margin: 0px auto;");

<comment><USER33> Thanks, you will go far in life.

</comment></comment><comment><USER34> Please, use a max-width on text columns. The article is unreadable on a large screen.

<comment><USER35> Only if you have your browser window maximised or very large, which kind of defeats the purpose of a windowed multitasking OS.

<comment><USER34> You know, you can have more than one screen. And working wth visual/design/UI tools you pretty much want to use as much of the screen as possible. Most of the time I have a browser fullscreen on one of my screens.

<comment><USER35> > working wth visual/design/UI tools you pretty much want to use as much of > the screen as possible.

Really? You maximise your content window ? Then where do you leave all your tool-windows ? On a second monitor ? Do you only design widescreen content ? Don't you think those white bars on the left/right of your content is a total waste of screen real estate ?</comment></comment></comment></comment>