The battle in Israel to create an unhackable phone - <AUTHOR> https://www.ft.com/content/4636b35e-8844-11e9-97ea-05ac2431f453 <comment><USER2> The NSO Group's technology ends up being an oppression enabler in practice. Citizen Lab has been quite critical:

* [https://citizenlab.ca/?s=nso+group](https://citizenlab.ca/?s=nso+group)

<comment><USER3> I view working for NSO Group is no different than working for any arms company. And there is a lot of money to be made selling arms to despots and dictators. In part, because it is those leaders who have the least legitimacy are those who are the most insecure and feel need the strongest tools to solidify their rule.

Secure leaders do not need to stockpile arms, nor do they need to forcibly suppress their dissidents (which is what I understand is the main market is for NSO Group's tools.)

<comment><USER4> >Secure leaders do not need to stockpile arms

Well that can be more of a factor of what their foreign policy is / situation is and less about internal legitimacy.

Maybe better said they don't need to stockpile arms for domestic use as much if they feel secure / legitimate.

</comment></comment></comment><comment><USER5> [http://archive.is/nQ5Fb](http://archive.is/nQ5Fb)

<comment><USER6> Much appreciated!

</comment></comment><comment><USER7> [http://intactphone.com/](http://intactphone.com/)

</comment><comment><USER8> Great business model combination by these companies. The one focuses on hacking, the other on protecting from hacking.

I would think that the different national intelligence agencies would have high interest in infiltrating such companies.

<comment><USER9> It's quite clever actually, why spend resources to try and infiltrate them - which is not a guarantee, when you can pay a fraction of the cost for their capabilities so you can focus your efforts on other nation states or your own citizens.

<comment><USER8> Good point: I think the cost of buying the service is much lower than the cost of any covert operations or infiltration. (This is a pure guess.)

</comment></comment></comment><comment><USER10> I remember speaking to a guy at a bar. He said he worked at IBM, and wanted me to write the software for an "unhackable" phone, that "never needs to be updated". I think I left shortly after.

<comment><USER11> Why would an unhackable phone require update capability? A smartphone almost certainly would, but I don't see why a simple dumbphone would require such.</comment></comment>


The Ultimate List of Freely Available .NET Libraries - <AUTHOR> http://qink.net/page/The-Ultimate-List-of-Freely-Available-_NET-Libraries.aspx

<comment><USER2> Not sure why this has been posted. It looks to be an old list - far from 'ultimate' for 2014.

The .Net FOSS community has been gaining momentum in the past few years, with most new developments having moved to GitHub, which is where I would generally recommend people start looking for new libraries. Of course there are exceptions, but it is a good starting point.

Alternatively, NuGet seems to have become ubiquitous in the past few years too, so that's the other route for finding new libraries. (Incidentally NuGet seems to be having an outage today, but that is a rare occurence).

A list like this might have value for some people, but only with better curation to reflect what is still active today.

</comment><comment><USER3> This ain't worth to be here, this list is old and short and it has been replaced by Nuget. It doesn't even contain Biggy (a Flat File .Net engine not found on Nuget)

Fyi. [https://github.com/robconery/biggy](https://github.com/robconery/biggy)

</comment><comment><USER4> My favourite is missing - [http://clearscript.codeplex.com/](http://clearscript.codeplex.com/)

It is basically a very friendly wrapper around several javascript engines (including V8) with powerful marshalling capabilities out of the box, and the developing team is very responsive and attentive.

<comment><USER3> It's a great wrapper, but the bugs arround x64 compilation are frustrating :( Actually, it's my only problem with a nifty library i'm using

[https://github.com/Buildstarted/Javascript.ViewEngines/issue...](https://github.com/Buildstarted/Javascript.ViewEngines/issues/1)

</comment></comment><comment><USER5> Very outdated. Immutable Collections, SignalR and MonoGame are just a few missing examples that pop to mind.

</comment><comment><USER6> Lol this is like 3 years old i just did a necro post on it because of this link.</comment>


Subpoenas and Gag Orders Show Government Overreach, Tech Companies Argue - <AUTHOR> http://www.nytimes.com/2016/10/05/technology/subpoenas-and-gag-orders-show-government-overreach-tech-companies-argue.html <comment><USER3> The fact that governments don't want people or companies talking about what it does at all shows that governments are overreaching.

These aren't nuclear schematics we're talking about. These aren't plans for a doomsday device. We're talking about the government silencing people/companies when it gathers (or forces those people/companies to gather) information about (largely random) people in order to use that information against them if they become "subversive". Government intelligence agencies seem to be modeling themselves more and more after the Stasi's.

Though I will say, people often forget that the primary directive for any government is to stay in power. No matter what.

Keep them silent and keep the power.

<comment><USER4> > The fact that governments don't want people or companies talking about what > it does at all shows that governments are overreaching.

Or it shows they do not want to ruin a very targeted investigation.

<comment> crooked-v There's a substantial difference between 'keep quiet for the duration of these investigative legal proceedings' and 'you are never allowed to ever tell anyone about this no matter how much time passes'.

<comment><USER5> Not that I agree, but they are trying to keep the "bad guys" thinking certain forms of communication are safe when really they are listening.

I see the logic, hide our capabilities (kind of like the star wars program) and then no one knows what's safe.

<comment><USER6> That also keeps the "good guys" thinking they're safe, when in fact there could be a backdoor for the Chinese government that sends over all messages that say "falun gong." As demonstrated by the recent leak at the NSA perhaps we should be investing in as much cyber defense as offense before a cyber terrorist attack occurs.

<comment><USER7> From everything I've learned about security, offense is much, much more effective dollar for dollar and that any concerted effort of creating an impenetrable shield would result in a cyber Maginot Line.

An all out cyber war would be scary as there isn't any procedure or policy for descalation once started, no white flag.

What's especially scary is that the government wastes all this time and money surveillaning people's online habits when the electric grid, probably the number one target in the event of a cyber war, is so defenseless that a squirrel can effectively take out electricity for the Eastern seaboard.

</comment></comment></comment></comment></comment></comment><comment><USER8> Title would've been a lot stronger without the last three words.

Our media has an unfortunate habit of turning stories into he-said-she-said, even when evidence is overwhelmingly on one side.

They seek artificial balance and are unwilling to speak frankly. Ironically this makes their journalism _less_ objective.

It undermines their mission of holding power accountable, because when someone or some agency does something really vile, the media act as unwitting apologists by framing it as just another two-sided disagreement.

Related:

[https://twitter.com/NateSilver538/status/713416863678595076](https://twitter.com/NateSilver538/status/713416863678595076)

<comment><USER9> It's right up there with the statement that the FBI wants to have an "adult conversation" about encryption.

<comment><USER10> Hopefully the FBI will hire some adults to explain encryption to them.

</comment></comment></comment><comment><USER11> Something I said before on a related topic:

> It is truly fascinating (and of course, terrifying) to watch governments > expect, demand and enforce complete transparency and blind trust from the > people, while providing absolutely none of either.

The constant flow of such news only makes this feel truer by the day. It blows my mind that so many of the people who defend these actions are the same people who will take any opportunity to disparage other "non-democratic" countries, while gloating about their supposedly unique freedom. The hypocrisy and the superiority complex are palpable.

</comment><comment><USER12> As I've mentioned before, one way to fight these on a budget is to throw away data. There are no mandatory data retention laws in the US [https://www.eff.org/issues/mandatory-data- retention/us](https://www.eff.org/issues/mandatory-data-retention/us)

It looks like Signal has more or less applied this policy to their implementation.

I can attest to how abused gag orders are and am happy that Microsoft is trying to do something about it.

<comment><USER13> The risk with that is they can likely instruct you to retain and/or provide them with access needed to retain such records.

</comment></comment><comment><USER14> Current events translated with the Orwell language filter

Secret courts and secret processes - Police state

Gag orders - <USER2>

FISA court with 100% approval rates - Kangaroo court

Surveillance of citizens - Totalitarian state

Zero accountablity to people - Despotic regime

Elections is not equal to democracy. I think by now we have to concede the US fails the democracy test. There is no way for citizens to effect change peacefully and these actions are in no way consistent with a democratic state.

</comment><comment><USER15> Or government is absolute out of control; the system on the whole needs an enema. Wherever you stand on social/ideological issues, we need to be united in the face of this, as well as other basic issues like police with MRAP's on city streets, and the need to maintain our infrastructure.

<comment><USER5> "Everyone wants a dictator in charge, as long as they agree with them"

<comment><USER15> I'd just take a group of assholes who can pass a budget and understand the issues, they don't even need to agree with me on them.

<comment><USER5> I think with the advent of the internet, we probably will have less and less moderates every year (at least until some major disaster brings us together).

I'd recommend checking out the libertarian ticket - at least they seem willing to negotiate and can admit when they are wrong. Hell they are both Republicans from Democrat states running on a libertarian platform.

<comment><USER15> The ticket as it stands, with a guy who thinks that vaccinations should be optional, and can't think of any world leaders? That's not a ticket, that's a joke.

<comment><USER5> "Everyone wants a dictator in charge, as long as they agree with them"

Not getting a vaccine only hurts you (and arguably others who don't get vaccines, based on herd)... Wanting to force it, is kind of contrary to the whole quote. Also FYI I'm highly allergic to the stuff in vaccines and they still try and make me soooo I kinda want to point out that the freedom to choose what to put in your body should be an inalienable right.

<comment><USER16> > Not getting a vaccine only hurts you (and arguably others who don't get > vaccines, based one herd)...

That's incorrect. Vaccines are effective, but (like most things in the real world) not 100% effective. So not getting a vaccine increases _everyone 's_ risk of getting the disease the vaccine protects against.

<comment><USER5> Totally agree, if the assumptions made on that theory were correct. The fact is, many of the diseases we get vaccinated against: rabies, polio, small pox, chicken pox, etc. Are not spread through the air. And pretty much everyone was voluntarily vaccinated for those.

Meaning the less people around you who have the disease the better, as you pointed out this is the general idea. That totally breaks down for air born pathogens that aren't spread via feceal matter, saliva, etc. one sneeze on a railing a train station can spread across 10000 people. We will always come in contact with it, vaccines may help, but yeah... it doesn't spread node to node as chicken pox, more like node to 100 X node.

We haven't even come close to solving air born pathogens.

Also, I'd argue that many of the reductions in disease rates have more to do with better plumbing and teaching people to stay home as opposed than vaccines. Both help, but the theory is just that a theory, with some pretty large holes and ignores the easy international travel, air born illness, and the evidence doesn't really have enough behind it to say "everyone has to be vaccinated"

<comment><USER16> > The fact is, many of the diseases we get vaccinated against: rabies, polio, > small pox, chicken pox, etc. Are not spread through the air.

Whether a disease is airborne or not is somewhat irrelevant here (its obviously relevant to how easy it is to spread, but as long as a disease is communicable by some kind of contact, the increased danger from unvaccinated members of the population is qualitatively similar.)

> Meaning the less people around you who have the disease the better, as you > pointed out this is the general idea. That totally breaks down for air born > pathogens that aren't spread via feceal matter, saliva, etc.

No, it doesn't; it changes the shape of the "increased risk" curve resulting from changes in vaccination compliance, but it doesn't change that there is such an increased risk.

> Also, I'd argue that many of the reductions in disease rates have more to do > with better plumbing and teaching people to stay home as opposed than > vaccines.

Yes, that those things have reduced disease rates for many diseases is a well- established fact, not really a point in any kind of contention.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Internet services could be making it impossible to comply with such orders. Routine e2e encryption and easy key management and web-of-trust that piggybacks on their existing social graphs and realtime communication would blind the monster. Complaining isn't going to do much.

<comment><USER18> The problem is consumers like the ability to reset their password while keeping all their data. If you encrypt using a key derived from the password, resetting the password renders all your data useless.

<comment><USER17> Key pairs are not like passwords. Nevertheless it is possible to migrate encryption keys.

</comment></comment></comment><comment><USER19> My sense is that we need more journalism that can relate the dangers here to everyday people. A tech company complaining about a gag order probably won't garner a lot of interest to the average joe.

Sadly, comedians seem to be the only ones that understand this. Like what John Oliver did in his interview with Snowden: explain that the NSA could read his dick pics.</comment>


Inventing Chromebook - <AUTHOR> http://blog.jeff-nelson.com/2012/11/on-inventing-chromebook.html <comment><USER2> When designing the OS, he "took off the table the largest performance bottlenecks in the operating system: File I/O" by moving the entire OS to RAM, so the new OS couldn't really run large (i.e., powerful) desktop applications, which in turn meant that the new OS would have to use "webapps to replace any and all functionality normally found on a desktop." So, in the end, for powerful desktop applications that need a lot of I/O, he ended up replacing file I/O with... over-the-Web I/O that is _slower by orders of magnitude._

I like Chrome OS, and want it to be successful, but for powerful desktop functionality with heavy I/O, a traditional desktop OS is faster.

There's always a trade-off.

<comment><USER3> Isn't he replacing disk I/O with network I/O, and unless you are talking about SSD isn't the network faster?

[http://serverfault.com/questions/238417/are-networks-now- fas...](http://serverfault.com/questions/238417/are-networks-now-faster-than- disks)

Doesn't google's search engine demonstrate this?

<comment><USER4> It seems unlikely that a Chromebook would have a gigabit link within Google's datacenters.

<comment><USER3> That wasn't the point. Is the network really "slower by orders of magnitude" than disk? Why is using the network such a silly idea, considering network speeds are more than keeping up. Was the reference just referring to protocols. I was hoping for some accuracy: something to back up the statement.

<comment><USER4> No, it was referring to bandwidth and latency.

30ms latency is basically the best-case scenario you can expect for consumer internet (with a nearby datacenter and all that.) 10ms latency is about the worst-case latency for a rotational disk. And almost no consumer internet outside of Japan or South Korea is going to get more than 2 MB/s of real bandwidth, compared to 100 MB/s of real bandwidth from rotational hard drives.

Throw wireless or uploading into the mix (who's going to use a Chromebook over ethernet?) and it's even worse.

</comment></comment></comment></comment></comment><comment><USER5> I worked this way for years in the 80s, when my main platform was the Atari ST. I had a _whopping 4MB of RAM_ and would load the OS from a floppy disk into RAM, after which it would create a decent sized RAM drive that I would periodically save my work to. Compiling and running programs was nearly instantaneous, and everything ran smoothly and silently (the ST didn't even have a fan). At the end of my session, I would save whatever I wanted to keep to disk before shutting down. I never even bothered to buy a hard drive, it was such a pleasant experience. Moving on to other operating systems was an abrupt shock when the time came, leaving me somewhat nostalgic for those days.

I still prefer local storage, though, without a forced dependency on the cloud.

<comment><USER6> 4MB of RAM in the 80's! Nice to have you aboard Mr. Jackalope Rockefeller.

<comment><USER7> The Atari 520 STe and 1040 STe had four RAM slots. 4MB was doable, using four modules. The developer version (4160 STe) came with 4MB RAM preinstalled. [1] [2]

I can't find a price list for those models, but Atari sold 4MB memory upgrades for its ATW800 workstations at GBP 1450 [3].

[1] [http://www.old- computers.com/museum/computer.asp?c=24&st...](http://www.old- computers.com/museum/computer.asp?c=24&st=1)

[2] <http://info-coach.fr/atari/hardware/memory.php>

[3] <http://atw800.complicated.net/pricelist.html>

</comment></comment></comment><comment><USER8> Interesting, very interesting.

Until now, I was believed the point was just to make a cheapass machine that ran from web, not that the intention was make it fast.

Unfortunately, it ended as cheapass machines that run from the web, and not as good machines that are fast.

The day that I can use it 100% offline, I will jump in ;)

<comment><USER9> I think ChromeOS is significantly faster than Chrome on Windows 7, on the same hardware. But of course you can't compare a $1000 Windows machine with a $250 Chromebook, because obviously the $1000 machine has much faster hardware to make up for the difference. In the same time I don't think a $1000 Chromebook would be worth it, as the bottleneck at that point is not the CPU, but network connection.

And do you really expect to run "web apps" 100% offline all the time? Then you're missing the point. Chromebooks are for an all-connected world, not for one where you still do most stuff online.

<comment><USER10> Actually the (X)(Chr)Ubuntu performance on a new ARM chromebook is pretty damn awesome for such a cheap, thin, light machine. IMHO. The hardware isn't at all bad.

<comment><USER11> Agreed. Really wish it had more RAM though (ironic given the content of this article, heh.)

</comment></comment></comment></comment><comment><USER12> Tiny Core (distro.ibiblio.org/tinycorelinux/) is another Linux distro that runs from ram, and you can install general software easier than in Chrome OS. Worth a look if you're interested in speed but not web apps.

<comment><USER13> Puppy Linux is another distro that does the same. It's one I've used before and is actually rather pleasant, and seems to "just work" for most anything. (including an awkward Windows-only USB wireless network interface) The interface can be a bit awkward though, admittedly, and it doesn't have everything available in its repositories, but it still works blazing fast.

<comment><USER12> I've used Puppy quite a bit, and didn't realise it was running in RAM. I have to say though, that I still think Tiny Core has the edge in terms of speed.

</comment></comment></comment><comment><USER14> I looked at the patent referenced in the article (<http://www.google.com/patents/US8239662>) and was disappointed to see nothing that would appear non-obvious. It looks like it would be pretty easy to infringe on this patent if one were building a pre-boot configuration management system with existing free and open source tools.

<comment><USER15> I cried a little inside just reading that patent name. I know thats not necessarily how patents work, but patenting a network bootloader in 2009? PXE and TFTP have been around much much longer.

<comment><USER16> If you look at the claims, that define the invention, you see that it's quite specific - the OS has to be an [binary] image, preferences have to be an image, a loader combines them to make a full image _and_ removes the full image from the device when you logoff/poweroff.

The removal of the image is in the method claims 8, 17 too.

The details will depend on general interpretation and on the detail in the specification but claim 1 appears to contradict the actual operation of the device as in col.7 li. 20 where it says a cached image can be used when the network is down (if you cache it you haven't removed it). That element appears to rely solely on col.6, li. 50 in the specification.

So the patent only applies to a device that gathers 2 images from a network, combines the images to make a full OS and remove the full OS from the device at logoff - that strikes me as a pretty weak patent [except maybe in some security applications], no local caching? You can avoid the patent it seems by simply caching or failing to remove the complete OS image (including preferences) when you logout.

Obviously I've only made a cursory analysis based on a very brief view of the US B doc.

</comment></comment></comment><comment><USER17> Fascinating post, and very interesting, but I have to wonder... 45 seconds to restart Firefox? And just to clear the cache? Assuming he does that "hundreds" of times a day (say, 200), that's 2.5 hours a day just waiting for Firefox to spin up and down.

What could possibly cause it to take that long? Was there no a to clear the cache without restarting the whole browser?

Unless I'm missing something, this seems very strange to me.

<comment><USER18> Back in 2006? That's a bit unusual but entirely realistic for a heavy user. The binaries were not optimized for loading from disk, because no one was anal enough to do that until 2010 [https://blog.mozilla.org/tglek/2010/04/12/squeezing-every- la...](https://blog.mozilla.org/tglek/2010/04/12/squeezing-every-last-bit-of- performance-out-of-the-linux-toolchain/) The history and bookmarks were completely overhauled in 2007 <https://wiki.mozilla.org/Places#Timeline_and_History> But if you had a lot of tabs open, and a bunch of extensions, it could still take nearly 30 seconds to do a warm start in 2010 according to this forum thread [http://forums.mozillazine.org/viewtopic.php?f=23&t=20509...](http://forums.mozillazine.org/viewtopic.php?f=23&t=2050985&start=15)

</comment></comment><comment><USER19> > First, Chromebook was initially rejected by Google management. In fact I > wrote the first version as early as July 2006 and showed it around to > management. Instead of launching a project, the response was extremely > tepid. My boss complained, "You can't use it on an airplane." Actually, you > could as, under the covers, it was still a bare-bones Linux distribution and > could execute any Linux program installed on it.

Its interesting how many companies first reaction to grassroots innovation is to kick it to the curb.

To quote Jonathan Ive: "while ideas ultimately can be so powerful, they begin as fragile, barely formed thoughts, so easily missed, so easily compromised, so easily just squished."

</comment><comment><USER20> I think it would be better if Chrome OS were more like Lotus Notes, where a group of individuals can remotely collaborate on a document in the cloud or work offline and replicate their changes overnight for later editorial adjustment.

<comment><USER10> And I don't think anything should be more like Lotus Notes, including Lotus Notes.

 _shudder_

</comment></comment><comment><USER21> I used to setup a ramdisk as a flat file for / and /usr, and have it load unionfs style over the main filesystem after /sbin/init finished. This was around 2005. The system flew, and the only super large applications I was using installed to /opt anyway, which was on a spinning disk (I think Eclipse was the only one).

</comment><comment><USER22> I wonder if he would ever have done this if SSDs had arrived a few years earlier? In 2007 my hard disk was indeed the greatest bottleneck on my computer by an order of magnitude. Replacing my spinning platter with an SSD (around 2010) has all but eliminated this problem.

It's funny how innovation works: the advantages of a Chromebook are no longer linked to it's original purpose, but we have found the incidental advantages that came along with solving the original purpose so beneficial that it's now carving out a solid niche based on those alone. It makes me think of a detonator and an explosive. You need something to initiate an innovation, but that doesn't always have to be what sustains it.

</comment><comment><AUTHOR> Interesting also to note that Chrome OS inventor Jeff Nelson is currently CTO of a "stealth startup". <http://www.linkedin.com/in/nelsonjeffrey>

</comment><comment><USER23> I have 8 GB RAM. Why doesn't the kernel load everything to memory the first time I use it, and have it available afterwards? Shouldn't the fs cache do that anyway?

<comment><USER24> If by kernel you mean linux, then yes, it does do precisely that. Try this out on a large file:

       time cat bigfile > /dev/null
       time cat bigfire > /dev/null

Then wait a few minutes and try again. Linux won't evict the pages from the cache unless something else wants to use the space.

</comment></comment><comment><USER25> So the Linux kernel should cache more aggressively? It does not seem to keep everything in RAM for the second startup of the browser on my box.

</comment><comment><USER26> It's funny. The first Linux distribution I ever used, way back in '05 on a terrible P2 laptop with 128Mb of RAM, was DamnSmallLinux. It ran in RAM from what I can recall, at least off my USB drive (the disk iso dd'ed to it) with a floppy as the bootloader to hit the USB :)

Those were the days. I also remember getting Slax to boot from the HDD, which it was never designed to do. Nostalgia...

<comment><USER27> There were also 1.4M floppies with barebone Linux that booted and ran completely in 8M of RAM on a 386. You could remove the floppy after it booted and continue using Linux.

</comment></comment><comment><USER28> I have the same frustration with speed and the same proposed solution (keep all your live data in RAM, journal updates to disk). My netbook now has 1024MiB of RAM; my first Linux machine had 800MB of disk and 64MiB of RAM. Current laptop computers are powerful enough to keep a full working environment in RAM and never have to go to disk or even flash RAM for software. (Maybe for data if you have a large dataset, but not for software.)

</comment><comment><USER29> It'll be years before webapps can supplant "native" PC/Mac apps. If Google really wants ChromeOS to be a third PC option, there needs to be a way to run "native" apps, and I'm not sure NaCl is the way to go.

<comment><USER30> Really? They seem to be selling pretty well as it is. Why does there have to be a way to run native apps?

<comment><USER29> It could actually replace the PC or Mac for many more people.

By the way, can you quantify "selling pretty well?" Market share numbers, for example.

<comment><USER31> 10% of Acer's sales.

<comment><USER29> From Wikipedia: By January 2013, Acer's Chromebook sales were driven by "heavy Internet users with educational institutions", and the platform represented 5-10 percent of the company's U.S. shipments, according to Acer president Jim Wong.

<http://en.wikipedia.org/wiki/Chromebook#Sales_and_marketing>

Can anyone provide market share numbers? I'm not looking for "kool-aid" marketing, but data driven decisions. The kind that Google does. For example:

[http://www.nytimes.com/2011/04/24/business/24unboxed.html?_r...](http://www.nytimes.com/2011/04/24/business/24unboxed.html?_r=0)

<comment><USER11> Market share numbers are irrelevant, what matters is if it has the userbase to support a viable app ecosystem. Which it slowly is.

</comment></comment></comment></comment></comment></comment><comment><USER32> Great read, but I'm not sure why he keeps using the term of Chromebook/Chrome OS. It was more the story of a Google OS which eventually a few years after someone else turned into Chrome OS.

</comment><comment><USER33> In iOS 5 that article was unreadable black on dark blue. Thankfully the "reader" mode worked and makes the text readable.

</comment><comment><USER34> I wish he would commit these kinds of speed boosting changes to other linux distributions.

<comment><USER18> It seems like most of the speedup is from running everything from RAM. If you're serious about never touching disk, adding something like "BOOT=casper toram" to a stock Ubuntu kernel line might do it easily.

Edit: OK for something practical this should work [http://www.pendrivelinux.com/universal-usb-installer-easy- as...](http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/) Just decline to give it any "persistent" storage, and point it at your hard drive (or a smallish <10GB boot partition) instead of a thumb drive. Does anyone know of a tool like this that will run on Linux?

Edit2: unetbootin seems to be a similar tool that is cross-platform.

<comment><USER34> I was hoping to get boost using games in wine, looking at it now i don't think it would have a useful affect, games would still need to use the hd for assets and swap space.

<comment><USER18> Well that depends... if you have 16+ GB of RAM and don't mind waiting an extra couple minutes to boot, you wouldn't have to wait for textures to load from disk during the game! :)

</comment></comment></comment></comment><comment><USER35> Did they want a fast Linux or their "own" Linux? They are trying to get us to program systems now in the Go language, web apps in their DART language. They control search, increasingly smart phones too, what's left? Own your OS and hardware.

Linux is just fine Google, stick with it.

<comment><USER36> What's wrong with creating your own programming language?

<comment><USER37> Nothing. My first thought was "what if Google writes their own operating system based on Go?".

It may sound silly but some are already hacking around this idea, as we can see in this thread [0].

* <https://codereview.appspot.com/3996047/>

* <http://gofy.cat-v.org/>

So, why not?

[0] [https://groups.google.com/forum/?fromgroups=#!topic/golang-n...](https://groups.google.com/forum/?fromgroups=#!topic/golang- nuts/NwtBg-LDeLs)

</comment></comment></comment><comment><USER38> I don't see the point. With flash disks now offering hundreds of MB/sec of read bandwidth and great random access latency, what's the benefit of running out of RAM? I can't say I ever felt a "need for speed" on my Air or from my iPad.

And web apps suck. I don't know if anyone told the Chrome OS team, but GMail and Google Docs are awful, and it seems like they get worse and weirder with every incarnation (at some point several years ago I found GMail quite tolerable, but they've fucked it up since then). I used to think Outlook and Word were bloated pigs, but give me Outlook 2010 any day. Why would I replace my reasonably functioning native apps with clunky spyware that doesn't work when I don't have an internet signal?

<comment><USER11> You're missing the fact that this RAM-focused operating system was conceived in 2006, aside from a variety of other things.

<comment><USER38> And it's pointless now. The only value to Chromebooks seems to be that you can sell them for extremely cheap because you just need 8GB or so of flash. Once you hit the > $350 price point and can afford to put in a decent amount of flash, I don't think using Chrome OS buys you anything.

<comment><USER39> If they can reduce user intervention for maintenance to near zero, that's a lot of value right there.</comment></comment></comment></comment>


Automata via Macros (Lisp) [pdf] - <AUTHOR> http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-macros/paper.pdf

<comment><USER2> For those interested, Scheme is now Racket and there may be other changes brought on by time. The list is quite responsive with a very satisfactory STN ratio so use it as a resource as this looks like an interesting project. See: <http://racket-lang.org/>

</comment><comment><USER3> This is an old paper: you should give the year in the title, by appending "(2005)" - it was circulated as a preprint in 2005 and published in the _Journal of Functional Programming_ in 2006.

There was a nice discussion of it on LtU: <http://lambda-the- ultimate.org/node/569>

The discussion focussed on whether it was good to do this internally using macros, rather than use an external code-generating tool.

</comment><comment><USER4> As this is a DFA, I wonder if it is possible to create a NFA via macros. One way would obviously be to turn the NFA into the DFA at compile-time, and then apply the DFA-macro, but that may possibly kill efficiency. Is it possible to do without creating infinite loops because of ϵ-transitions, and with tail calls? I have my doubts, but that would be amazing.</comment>


The Fine Line Between Understanding and Expertise - <AUTHOR> http://blog.wk.com/2011/10/21/why-we-are-not-hiring-creative-technologists/

<comment><USER2> Where is the discussion "between understanding and expertise"? I scrolled over the way too long text reading some chunks here and there but nothing sticked according to the title here. Is it even the right post?

<comment><USER3> This is what I took away:

> Agencies don't hire writers just because they know the rules of grammar. We > hire them because they're eloquent, lucid, imaginative wordsmiths. We hire > them because of their practised ability to lovingly craft words into things > that work. Things that make people feel.

EDIT: removed snark

<comment><USER2> Yes, I read that passage too and was actually quite disappointed about it, because it doesn't help you to become an expert. If you think, you learned something out of that phrase, that means you actually "understood" something, but you are still not an "expert" writer.

The thing is, that knowing and understanding the features that discriminate experts from nonexperts doesn't help you much in your desire to become an expert. If you understand these features you can tell more accurately, if you are an expert yourself or not. At best this helps indirectly with telling you how much your learning task is achieved. At worst it just destroys your motivation. The question of how to become an expert is still open, though.

</comment></comment></comment><comment><USER4> Does no one on HN do dev work for an ad agency? I see articles about agencies pop up on here every now and then, and I am always amazed at how little most of the commenters seem to know about what goes on at an agency or how it works.

Which is surprising to me, because I happen to know that there is a huge demand and opportunity for great web development expertise, hustle and knowhow at agencies, which are often full of subpar, outdated dev teams being asked to do elite-level projects by non-tech ad folks who see the startup community doing cool things and want to do it themselves.

This article is a plea to the talented coders out there (not the wannabes), to let them know that there is an agency that understands you, knows that "UX/social media gurus" and their ilk are frauds, and wants you to be able to work for them with the same satisfaction you would have at Google or some crazy startup.

(By now it probably sounds like I work for W+K, but I don't, just know the ad industry quite a bit)

<comment><USER5> My experience developing at digital agencies in the early 2000s agrees with the article. Terrible pay, insane hours and no recognition, even when you pulled off the impossible.

Never again.

</comment></comment><comment><USER6> Ugly monospace font in 2011 for a blog? Halfgrey on white background? I now have trouble taking anything you say serious.

<comment><USER2> There are people who like old school and people who don't. Where's the point in discussing about taste?

<comment><USER7> It isn't taste. That font is barely readable. Worse, their encoding wasn't UTF-8, so a lot of their punctuation showed up as black rectangles, darker and solider than the text. I had to fight to keep my eyes from skipping from black block to black block without reading the spindly gray text in between.</comment></comment></comment>


Coronavirus and Crime – what the Covid is happening in SF? - <AUTHOR> https://www.goodcover.com/blog/coronavirus-and-crime-what-the-covid-is-happening-in-sf/ <comment><USER2> Seems like this article is reading too much into noise in the data. The "hot prowls" are up since March, but down since February. That doesn't really make sense as an explanation for "why there is noticeably more X since the pandemic".

<comment><USER3> I think the most obvious explanation is that 1) lots of stores are closed and boarded up, and 2) Since we don't pursue property crimes under a thousand dollars and often more than that, people don't bother calling the police, so their experience of crime begins to differ from the crime stats. Those are the cases of people walking into Walgreens, grabbing stuff, and walking out. A crime was still committed, but no one called the police since they know they wouldn't do anything, so it doesn't show up in the crime stats. Lots of people don't bother calling the police for things like car breakins for the same reason. If there's no benefit to you and it takes time, then why do it?

One interesting way to test this is to look at NCVS (surveys of random people asking if they were the victims of crime) versus crime stats as reported by police departments. In about 2 years the 2020 data will be out, and then we can see whether the push in places like SF to decriminalize property crime resulted in an increase or decrease in property crimes in the victimization survey, but you can't really judge reported crime stats by police departments when they are under a do not pursue mandate. This would give us a more rigorous approach than looking at a sample of nextdoor posts.</comment></comment>


I wrote an application in Objective-c - <AUTHOR> http://www.upbeat.it/2017/02/28/i-wrote-an-application-in-objective-c/ <comment><USER2> I'm finishing up my first Swift 3 project, a macOS app. The language is well designed, and it took a lot of the ergonomics of Objective C and made them safe. Clearly, Apple learned a lot in Swift 1 and 2, and it is a quite a piece of work.

That said, this is a challenging environment to code in. No attempt at backwards compatibility was made in either the libraries or the language itself. The difference between Swift 2 and 3 is at least 100 times larger than the Python 2.7 to 3 transition everybody complains about. This means that for most of the examples you'll find, they will be in Swift 2, Swift 1, or Objective C; o copy/paste here. Many APIs in the Cocoa and Foundation API are simply not documented other than the parameter names.

Additionally there's "automatic bridging" which can easily convert between new library type and old library types, so there's a nest of transitions (along with the typical inheritance hierarchy for each type) that one must navigate to accomplish even simple things.

However, Swift is clearly in Apple's future plans, so you might as well start learning it now if you have to code for their ecosystem.

<comment><USER3> True, the point is that you are learning a moving target.

Some people in the community are excited by this, because they have something new to learn.

Others are pissed, because code that worked yesterday doesn't work anymore.</comment></comment>


N-queen puzzle in 4 lines of Scala - <AUTHOR> https://gist.github.com/pathikrit/6fa878fe87c6160a52c4c27dabbfa6df <comment><USER2> While definitely great proof of: 1\. The author knowing a lot of the language's functional features (permutations, mapping, zipping, filters) 2\. How powerful functional programming is when solving problems

I find this type of code an anti pattern of how good code should be. This solution has a high "cognitive load" imho: [http://chrismm.com/blog/how-to- reduce-the-cognitive-load-of-...](http://chrismm.com/blog/how-to-reduce-the- cognitive-load-of-your-code/)

I'd much rather see a 15-20 line solution that's clear and readable, than a 4 line solution that I have to reverse engineer.

<comment><USER3> Arggh, every single time someone posts an incredible cool small piece of code that solves a difficult problem, comments like this appear.

This whole HN attitude of pristine code is killing me. This is a piece of code in a _GIST_ and solves the problem in three lines, it is clearly not intended for production use in a large code base.

Please stop searching for something wrong and enjoy what is presented in all of its glory.

<comment><USER4> Maybe it's the case here but in the scala community in general I noted a tendency to emphasize cleverness over clarity and simplicity.

<comment><USER5> Relevant Stack Overflow question: [http://stackoverflow.com/questions/7084212/is-scala- idiomati...](http://stackoverflow.com/questions/7084212/is-scala-idiomatic- coding-style-just-a-cool-trap-for-writing-inefficient-code)

</comment></comment></comment></comment><comment><USER6> 8-queen puzzle in 1 line of Python with pretty print

_=[__import__('sys').stdout.write("\n".join('.' * i + 'Q' \+ '.' * (8-i-1) for i in vec) + "\n===\n") for vec in __import__('itertools').permutations(xrange(8)) if 8 == len(set(vec[i]+i for i in xrange(8))) == len(set(vec[i]-i for i in xrange(8)))]

<comment><USER7> I tried to make that a little more readable, and converted it to py3 -- This one produces the same output with python3, as your one-liner with python2:

      #!/usr/bin/env python3

      from itertools import permutations as p

      for vec in p(range(8)):
        if 8 == len(set(vec[i]+i for i in range(8))) \
             == len(set(vec[i]-i for i in range(8))):
          print("\n".join( '.' * i + 'Q' + '.' * (8-i-1) for i in vec),
                end="\n===\n")

The string construction could/should probably also be refactored a bit, but at least this version I have a hope of following the logic... :-)

</comment></comment><comment><USER8> Here's my Python3 version (4 line nQueens function):

        from itertools import permutations

        def nQueens(n):
            return (p for p in permutations(range(n))
                    if (len(set(c+d for c,d in enumerate(p))) == n and
                        len(set(c-d for c,d in enumerate(p))) == n))

        for num,solution in enumerate(nQueens(8)):
            print("Solution #", num+1)
            print("\n".join(("  ".join("Q" if i == col else "-" for i in range(8))) for col in solution))

</comment><comment><USER9> Honestly, I can see more than 4 lines of code there.

<comment><USER10> nqueens is ~4, the rest is output

<comment><USER11> One line of J code taken from the jsoftware site [1]:

      queenst =: (, #: I.@,@(</)&i.)~ (] #"1~ [ */@:~:&(|@-/) {)&.|: ! A.&i. ]

This is the calculation, and you can output all 92 solutions for the 8 queens problems like this:

        queenst 8

      0 4 7 5 2 6 1 3
      0 5 7 2 6 3 1 4
      0 6 3 5 7 1 4 2
      ....

each column is a row number, and the integer is which column the queen is in, or vice versa on rows and columns.

,or print how many solutions

        $queens
      92 8

$ gives the 'shape' of the array, that is 92 rows (solutions) x 8 columns (8-queens problem).

I always return to J, because I enjoy mathematics and functional programming. Like math, you work with symbols you learn to think as you code in an interpreted window, somewhat like when working in the Lisp REPL. Ken Iverson created the APL language in 1960, and won an ACM Turing Award and gave a lecture 'Notation as a Tool of Thought', which sums it up better than I could ever hope to express it [3].

J was a collaboration between him, Arthur Whitney (of finance's k language, and kdb fame), and Roger Hui, in an attempt to improve on APL, and to do away with needing a special character keyboard. It is under the GPL3 license today. J uses the ASCII character set, and is very functional and composable.

      [1]  http://code.jsoftware.com/wiki/Essays/N_Queens_Problem

      [2] http://code.jsoftware.com/wiki/Essays/Queens_and_Knights

      [3] http://www.jsoftware.com/papers/tot.htm

<comment><USER12>
        > queenst =: (, #: I.@,@(</)&i.)~ (] #"1~ [ */@:~:&(|@-/) {)&.|: ! A.&i. ]

So this must be the origin of the one liner from [0]

        queens←{⍵{((+/b)⌿⍵),⍺|(,b)/⍳×/⍴b←~↑(⊂⍳⍺)∊¨(↓⍵)+[0]¨⊂(c-⍳c←1↓⍴⍵)∘.ׯ1 0 1}⍣⍵⍳1 0}

Somehow J is shorter? I need someone who speaks both J and APL to tell me if they are the same.

Never learned J, but I always return to APL. I guess J to APL is like latin alphabet to chinese characters. You don't need a special keyboard for APL, just like you don't need a special keyboard for Chinese. Sometimes I really don't understand why they started J. Native English speaker's mentality? We never needed special keyboard for diacritics, let alone east asian languages. With an input method for APL characters, J does not even save the number of keystrokes.

[0] [https://dfns.dyalog.com/n_queens.htm](https://dfns.dyalog.com/n_queens.htm)

<comment><USER12> I was wrong. The two one-liners for J and APL are different. The original paper [0] gives the original APL implementation of the above J one-liner.

I'm not going to delve deep into the algorithm, but the following quote from the paper fascinates me.

        It is voracious for work space. For concreteness, consider
        the case n←8 . The intermediate expression p[;c] has shape
        (!8),(2!8),2 , requiring 9031704 bytes on IBM-based APL
        systems.

It uses 9 MB! Such a 'voracious' algorithm!

[0] [http://www.jsoftware.com/papers/nqueens.htm](http://www.jsoftware.com/papers/nqueens.htm)

<comment><USER13> Even by modern standards that's a pretty hefty chunk of RAM for n=8.

<comment><USER12> The problem is that the complexity is O(n²n!)

<comment><USER11> I am not a J guru, but that is just the concise implementation. There are others in the references previously cited. J is an interpreted language, and when doing db stuff, it memory maps files for speed. I know this is not the same, but I will now look into it, since I haven't done any J tracing unless a program blows up.

I also use Dyalog APL,and I don't have a special keyboard. The symbols are MORE like mathematical symbols to me. It's just that it is easier to share code in J's plain ASCII text. Some systems still don't show APL characters correctly, or the user doesn't know how just yet. I was also trying to study K and Kona, so J was the better fit.

<comment><USER12> Is it possible to programmatically transliterate APL code to J? It would be great in either interactive or scripting to try out the J interpreter, so my code

        1+2-3×4÷5

could be converted to

        1+2-3*4%5

automatically. I guess only Dyalog APL supports function trains, and J has more modern features. It would be interesting to use J as a backend. I really wish GNU APL could support function trains soon.

<comment><USER11> I haven't run across any in my J studies, but J has evolved away from base APL, so I think it might be possible to do a direct tranliteration, but would miss some niftier ways of doing it in J. I am merely a student of J and APL, though fascinated every day by both of them. I usually go back and forth from Dyalog APL to J depending on the task or the read that sets me off on discovery.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Not the shortest, but the most clear solving in Z3 because instead of an algorithm you define the solution: [https://github.com/0vercl0k/z3-playground/blob/master/nqueen...](https://github.com/0vercl0k/z3-playground/blob/master/nqueens_z3.py)

<comment><USER15> And here is the solution using Picat, using the included sat library: [http://picat-lang.org/exs/bqueens.pi](http://picat-lang.org/exs/bqueens.pi)

</comment></comment><comment><USER16> There is no search solution to N-queens, so any code doing search is poor and wasteful.

I am not going to spoil the fun by giving you the details here, just the hint: start on the right square, depending on whether N is even or odd. Then place successive queens in a knight jump pattern.

It is fascinating to me that whoever invented chess a long time ago may have been aware of these subtle complementary relationships between the different types of moves?

<comment><USER17> That may find some solutions, but does it find them all?

<comment><USER16> You can probably find them all by considering all the valid starting (boundary) positions, mostly obtainable by symmetry.

</comment></comment></comment><comment><USER18> Well, here's a fairly compact Haskell function that should be reasonably efficient (no fancy stuff mind):

      queens n = q n n [[]] where
       q 0 m ss = ss
       q n m ss = q (n-1) m (concatMap (\s->(map (:s)(filter (f 1 s) [0..m-1]))) ss)
       f _ [] a = True
       f n (b:s) a = a /= b && a /= b+n && a /= b-n && f (n+1) s a
      main = print $ queens 8

<comment><USER18> Actually, this is better (and no less clear):

      import Data.List
      queens n = q [] [0..n-1] where
       q s [] = [[]]
       q s as = concatMap (\a -> q (a:s) (delete a as)) (filter (f 1 s) as)
       f _ [] a = True
       f n (b:s) a = a /= b+n && a /= b-n && f (n+1) s a
      main = print $ length (queens 8)

Undoubtedly functional, the question is whether it is improved eg. by using folds instead of explicit recursion, or replacing concatMap with monadic join.

<comment><USER18> That should be "q s [] = [s]", otherwise you get 92 copies of the empty list.

</comment></comment></comment><comment><USER19> A fast algorithm that really isn't very complex:

[http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=4DC...](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=4DC9292839FE7B1AFABA1EDB8183242C?doi=10.1.1.57.4685&rep=rep1&type=pdf)

</comment><comment><USER12> Another HN post becomes rosetta? Besides the poor search, it does not even try to remove duplications because of symmetry.

Rosetta posts should always include a one liner from APL, so here is a link:

[https://dfns.dyalog.com/n_queens.htm](https://dfns.dyalog.com/n_queens.htm)

</comment><comment><USER20> Isn't the point of an n-queen solution to be fast? What does it matter how many new lines you have in the solution if it isn't fast?

</comment><comment><USER21> Personally, I love this simple, readable, short implementation in the EcliPse solver: [http://www.hakank.org/minizinc/queens_viz.mzn](http://www.hakank.org/minizinc/queens_viz.mzn)

</comment><comment><USER22> If you want to get serious about solving queens fast here's an x86 assembly implementation from 1995 - [https://github.com/dblock/reines](https://github.com/dblock/reines) :)

<comment><USER23> An even faster x86-64 Asm one that does it _with no memory accesses_ \- everything is in registers:

[https://github.com/davidad/8queens/blob/1989666c45baa639f152...](https://github.com/davidad/8queens/blob/1989666c45baa639f152dfc89c70635f7007d20b/8queens.asm)

</comment></comment><comment><USER24> This problem is also fun with perl regexes

[http://www.perlmonks.org/?node_id=297616](http://www.perlmonks.org/?node_id=297616)

</comment><comment><USER25> If you want a fine challenge, try "Queens and Knights" ([http://archive.vector.org.uk/art10003900](http://archive.vector.org.uk/art10003900)). It has some interesting corner cases to consider.

</comment><comment><USER26> Love it! That's a really clever use of the Set collection type to pair down non-solutions.

<comment><USER27> pare

<comment><USER26> lol. ty!

</comment></comment></comment><comment><USER28> Here is my 2 line solution to n-queen.

#include <nqueensolver.h>

int main(){int n=5;solve(n);}

Please include the binaries for nqueen solver when compiling and running.

The point I am trying to make is that, in such a high label language like scala, this kind of claim sounds foolish.

<comment><USER29> I think many may take your response as a bit off-the-cuff, but I share this sentiment. You could even go so far as to write the longest C program you could dream of to solve it, then simply feed it into

       tr -d '\n'

and call it one line! Again, many will find this pedantic and unsatisfactory but programmers should _really_ be more precise in what they mean by lines of code.

What I think most people are really referring to is information content. To achieve the same program in shorter length, the rest of the information has to lie somewhere else (in the scala implementation or nqeensolver.h). We can increase the density of the information needed to specify a program, but not decrease it.

I actually just wrote something about this concept yesterday:

[https://aconz2.github.io/programming/2016/04/09/power_of_pl....](https://aconz2.github.io/programming/2016/04/09/power_of_pl.html)

</comment></comment><comment><USER30> By someone who clearly cannot count to 4?

<comment><AUTHOR> OP here. Sorry for the code-golfy post on HN. But, some clarifications:

1\. Yes, it is O(n!) - it says so in the description but not on the title of the post on HN.

2\. It is 4 lines of code for `nQueen` function. I did not include the printing code in the line count.

3\. And no, I did not cheat by using semicolons in same lines - these are 4 legit lines IMO. You can put the `&` clause in 1 line to reduce it further.</comment></comment>


On-Demand Gas Delivery Startups Want to Fill Up Your Car Anywhere - <AUTHOR> http://www.bloomberg.com/news/articles/2016-05-02/gas-delivery-startups-want-to-fill-up-your-car-anywhere-is-that-allowed <comment><USER2> GaaS</comment>


500 Combinators – Announcing the Merger of 500 Startups and Y Combinator - <AUTHOR> http://500.co/2014/04/01/500combinators/

<comment><USER2> > "Submissions will be accepted through Hacker News..."

Not sure if I'm supposed to create a new thread or just reply here.

I'm working on an app that will disrupt the photo sharing and virtual local assistant marketplaces, which form a combined $12.5B/year industry.

In short, it's the Neato for virtual local assistants. (Neato is the Cercle for local photo sharing, and Cercle is the Uber for individuals.) We'll use growth hacking _hacking_ to grow virally, first in the SF area and then in China. (If we can get just .1% of the Chinese market, the app will be profitable within two years.)

Demo product is coming soon, but in the meantime I'm looking for a tech co- founder to turn my idea into a product. Being part of the 500 Combinators class will truly help me get this off the ground.

Thank you for your time and consideration,

Greg CEO & Founder, Assist'r'ly

<comment><USER3> (This is an April Fool's joke.)

<comment><USER4> (This is an April Fool's joke.)

</comment></comment></comment><comment><USER5> Dumb Dumb Dumb Dumb. I hate this day. Every person without a sense of humor takes this day as an excuse to subject us all to awful jokes which then completely overwhelms any signal with stupid unfunny noise.

</comment><comment><USER3> A better name for the merged incubator than "500 Combinators" would be "Y = 500".

</comment><comment><USER6> sigh. channeling dang with the "please, please, please, stop upvoting these"</comment>


Amazon said to launch Pantry to take on Costco, Sam's - <AUTHOR> http://www.usatoday.com/story/tech/2013/12/12/amazon-pantry/4001707/?source=email_rt_mc_body&app=n <comment><USER2> I love Costco not just because of their good prices but also because they have a reputation for paying and treating their employees reasonably well. Amazon does not share this reputation (at least for their warehouse workers).

<comment><USER3> Agreed. I'd been reading about Amazon's treatment of their warehouse workers over the years and an article in The Guardian [1] finally pushed me over the edge. I stopped shopping at Amazon (I shopped a huge amount there) and cancelled my prime account. I hope they can get their act together and offer their warehouse workers better wages and better treatment, if Costco can do it then I believe they can too.

[1] [http://www.theguardian.com/technology/2013/dec/01/week- amazo...](http://www.theguardian.com/technology/2013/dec/01/week-amazon- insider-feature-treatment-employees-work)

<comment><USER4> Bad jobs play an important role in an economy. They provide a high turn-over, relatively easy to acquire job that you can get when you have trouble finding proper work. So you can provide for yourself while looking for a good job. If the job didn't suck it wouldn't have the turn-over and availability.

Once we eliminate the need for employment to provide the basics then shitty jobs will go away. Until then they have a place.

<comment><USER5> True, but there will always be tons of "inherently bad" jobs (smelly, sweaty, monotonous).

It is unnecessary to make these jobs MORE shitty by bad management.

For example, the worst thing IMO that Walmart does (IDK about Amazon), is to mandate that employees be on call 24x7 to be ready to come in for a shift on short notice (3 hours). This cripples the worker from taking on a 2nd job, school, or anything else. This traps them into the Walmart job & makes this not an entry level job.

</comment></comment></comment></comment><comment><AUTHOR> Despite not really needing very many bulk family sized items, my wife and I like shopping at Costco. You get hands on the items and can inspect them, and generally the quality of what Costco sells is well selected and very high (even if it's not fashionable). e.g. grab a random bottle of wine out of their wine section and you can guarantee it'll be pretty drinkable, even the $6 bottles. Their customer service and no questions return policy has more than paid for the very reasonable membership cost ($55 a year, which you'll probably just save on toilet paper purchases alone). But selection is slim and often hit and miss as favorite items rotate in and out of the stores.

Compare to Amazon, which sells multiple versions of the same SKUs from slightly different retailers (with slightly different shipping methods), and then hundreds of slightly different items all with a wide variance in quality and you spend hours reading reviews and comparison shopping. It's "ok" to do from home, but I frankly have better things to do with my time most of the time. However, for those really hard to find items, or ones that Costco simply doesn't carry, it's totally worth to shop at Amazon.

</comment><comment><USER6> Every time Amazon rolls one of these services out that is supposed to make it hard on the brick-and-mortar competition, Amazon's fulfillment centers are mentioned, which also have to be brick and mortar.

I believe Walmart/Sam's Club, Costco, and Target have a decided advantage on the real estate/fulfillment center side. Every store can be a "fulfillment center". The trick for these guys is going to be not waiting until the foot traffic dries up before they attack Amazon directly. And of course they already are to some extent, but if you read these articles about Amazon that seem to appear every week, the perception seems to be that the old players have no chance at competing.

A huge caveat for Amazon is they still don't make a profit. Whether that's by choice, I'm not really sure.

<comment><USER7> Not sure if you've been in a real full size fulfillment center before, but while both it and a Costco store look like a big box they are remarkably different and there's no way you could operate both under the same roof.

<comment><USER8> As I understand it, using existing retail stores to fulfil internet orders is exactly how Tesco in the UK operates their grocery delivery operation.

[http://www.theguardian.com/business/2012/sep/24/tesco- dark-s...](http://www.theguardian.com/business/2012/sep/24/tesco-dark-stores- online-shopping)

says that they've started to build additional delivery-only stores(/warehouses?) in areas where their is sufficient demand to warrant it.

Doing it this way meant the managed to avoid the huge upfront costs in building specialist warehouses, and instead used their existing network of hundreds of stores that exist all over the UK.

</comment></comment></comment><comment><USER9> I'd love to see Costco have to compete with Amazon for my bulk household purchases, but I'm curious how this "set sized box" scheme will work. Part of the magic of Prime is not ("add-ons" aside) worrying about clustering your orders: Search, confirm price is reasonable, click, and it shows up two days later. Trying to fill a limited box sounds like it could end up as a fiddly value-maximizing game.

<comment><USER10> Decently paid Costco employees vs Amazon contractor wage slaves? Consider what you wish for...

</comment></comment><comment><USER11> Unless they start selling buck and a half hot dogs and pop, I'll stick with Costco.

</comment><comment><USER12> This model is similar to that of alice.com, which just folded. I liked them because they shipped "normal" size products (not the mega-bulk sizes Amazon ships now via S&S) -- but you needed six products together to ship.

</comment><comment><USER13> "Warehouse club members tend to be higher income households with kids — the type of shoppers that have huge lifetime value to retailers."

Assuming that this is true, I think this is a brilliant, long-tail, idea from Amazon. If the kids get accustomed to seeing Amazon boxes full of stuff arrive every week, when they move out on their own they probably will also buy from Amazon. Similar to computer manufacturers (e.g. Apple, Microsoft) giving educational discounts to schools/students. It's hard to know if this implementation will work but I would start worrying if I were Costco/Sam's. Amazon has shown that they do find innovative approaches to markets. If this approach doesn't work they'll come out that will later on.

<comment> X-Istence I am a 25 year old single male, and I am a Costco member. Mostly because I believe in their employment practices, and the quality of the products.

Where else can I get meat that I know has been properly inspected (and if it hasn't, Costco will remove it from the shelves)? Buy fresh vegetables at a cost lower than my local King Soopers or Safeway.

Amazon will never replace those for me, also, being 25 I tend to procrastinate, I don't have time to wait for Amazon to ship me cleaning supplies. When I am out I want it now, drop by Costco I get it now... that's important to me. I don't think Costco has anything to be afraid of.

<comment><USER14> If the US population were 313 million clones of you, and they all lived by a Costco, sure, nothing to be afraid of. I've never heard of King Soopers and don't shop at Costco. My phone charger broke yesterday; the replacement I ordered from Amazon yesterday afternoon will be delivered free any minute now (ed: now it's here, less than 24 hours later).

<comment> X-Istence King Soopers (Fry's, Kroger, City Market, Dillons) different names for different places in the US ...

</comment></comment></comment></comment><comment><USER15> That is an interesting concept, but I am really wishing someone like amazon could provide a group buying plan. (Th following is likely poorly articulated):

I find that there is lots of waste in my buying habits for a couple reasons; I typically only need half or so of the buy able serving size of many things, but would prefer the prices of bulk items.

An interesting model would be to allow several people, ideally geographically close to one another, but not necessarily friends with eachother, to build a communal list of standard/often purchased items.

When some threshold is met, the items are purchased and divided among the buyers.

The items would need to be divisible easily by the number of buyers...

A service like this should also focus on minimalist packaging.

Set the fee at stepped level, $25 $50 $75 $100 -- and I just have a running list of items I use regularly. When enough people need the same things and my buy threshold is met, the box ships, I am billed and the counter restarts until the next month/interval.

There should be a simple way to report how quickly you consume an item and the system would determine the larger average consumption rates over time and make suggestions on how often items should be added.

<comment><USER10> We buy in bulk and store it or share it among two to four local households. Makes for a big savings if carefully planned. We also share coupons and other discount programs. My spouse figured out that our household alone saves over $1500 US per year by careful consumer purchasing outside of other savings means, (aka eating at home, taking lunches, car pooling).

</comment></comment><comment><USER16> It's hard for amazon to compete with costco. Their return policy is second to none. When a manufacturer refuses to honor their own warranty, this service is priceless.

</comment><comment><USER17> There's already something similar on the market called [http://www.boxed.com/](http://www.boxed.com/). Pretty sure they use Amazon fulfillment centers to carry it out.

<comment><USER18> Boxed looks interesting, but why do I have to use an iPad with it? They don't offer the option to access their service with a browser. I don't think I like that.

</comment></comment><comment> r-s I have a hard time understanding why people enjoy shopping at costco. I have had a membership there in the past and did not like it. Its always lined up so you can't just pick up one or two things (I am sure this is by design), its very difficult to find items with no signs so you are forced to walk around the whole store (Again, im sure this is by design).

The amount of extra time it takes for my wife and I to buy groceries there easily costs more then any potential savings. I suspect it adds over an hour to our trip rather then buying from our local grocer. This doesn't even factor in the stress of driving there, finding parking etc. I think I will continue to walk to the closest store and pay a little more at the checkout.

<comment><USER19> I think part of it is because people don't go there expecting to pick up one or two things -- you go to Costco to get a _lot_ of things in bulk. For that, it is wonderful. Very good prices, wide aisles, heavily stocked, and free samples of food. Also the whole thing about them compensating and treating their employees well adds a lot.

</comment></comment><comment><USER20> "Amazon Food Pantry" just doesn't have a good ring.

<comment><USER21> I agree. "Food Pantry", at least in the US, is a "thing" already - it's either your pantry in your home, or the charity food bank that a community has. Most people that I know would think of the latter if you said "food pantry".</comment></comment>


Comparing Cassandra Write Performance on Google Compute Engine and AWS - <AUTHOR> http://blog.cloud-benchmarks.org/2015/07/17/cassandra-write-performance-on-gce-and-aws.html

<comment><AUTHOR> My buddy Adam put this together for Cassandra. It's always nice seeing somebody do this kind of work and share it publicly.

We do similar kind of benchmarking ourselves for our applications between cloud vendors and instance types (different families) and end up with large spread sheets. In our case we usually equate it to metric per dollar. Such as requests/dollar or GB processed/dollar.

</comment><comment><USER2> 32% performance increase with Oracle JDK 8 over OpenJDK 7. I pity projects tied to this modern day Cobol that have to deal with this crap. Write once, run anywhere (badly, unless Oracle likes your platform enough).

<comment><USER3> Yes, we were also surprised by the difference. We'd like to try with OpenJDK 8 instead to see if it's performance was better overall, but the charm for Cassandra doesn't include that as an option yet.</comment></comment>


Try C# (and JSIL) in your browser - <AUTHOR> http://jsil.org/try/

<comment><USER2> this would be amazing if it was hooked into stackoverflow</comment>


Ask HN: Is ~O(1) good for a prime factorization algorithm? - <AUTHOR> I've been playing around with a few models of mine related the zeta function and number theory trying to prove a theorem I've been working on since August. A few days ago I made an unexpected breakthrough on a new model that proved my theorem. It's a little early to publish anything but my tests so far are at around O(1) time. This is because the model equation is a purely analytic distribution of the input function's factors, so only an eigenvector operation is needed assuming the bounds for the input function are also parameters, so the size of the input has no major impact on the model computation time. So is roughly O(1) time a big deal or not for a prime factorization algorithm? I haven't done much research on what's out there yet. <comment><USER2> > _so only an eigenvector operation is needed_

That doesn't sound very O(1) ...

</comment><comment><USER3> reading this, all I could think of; this must be a joke.

<comment><USER4> Same</comment></comment>


Ask HN: Lots of small checks or a few large checks? - <AUTHOR> When raising a seed or pre-seed, is it better to aim for a few large checks, or lots of small checks (50-100k)? <comment><USER2> I hear the latter is, all things being equal, more work because you need to keep lots of people in the loop and happy.

Even better of course is raising no money.</comment>


Economic Credit in Renaissance Florence (2009) [pdf] - <AUTHOR> http://opensiuc.lib.siu.edu/cgi/viewcontent.cgi?article=1007&context=pn_wp <comment><USER2> > a tension emerges in Florentine, and indeed in European, historiography > between economic historians and the work of social and political historians

This reminds me of the competing narratives from economists versus anthropologists mentioned in Debt: The First 5000 years [0]. In it, the author argues that the economists' narrative is really a creation-myth (or perhaps an evolution-myth) for modern capitalism, rather than an accurate view of the different strategies humans have used in different circumstances.

[0]: [http://www.amazon.com/Debt-The- First-000-Years/dp/1612191290](http://www.amazon.com/Debt-The- First-000-Years/dp/1612191290)

</comment><comment><USER3> PDF, because it isn't marked.</comment>


Ask HN: Bait and Switch - <AUTHOR>

I have to ask this:
I am keeping the names and certain details obtuse to protect the guilty..
Is it normal for a Startup to post job ads and than when they get ready to send 'a job contract' to a potential employee do a switch and write the contract as a temp gig with the worker taking 80% of the risks upfront in terms of getting paid, etc.?
No, I did not sign it..not that stupid <comment><USER2> I think it's normal for founders to be clueless when it comes to hiring.

I can't answer your question directly, but I had something similar happen recently. For me they over promised and under delivered (no money).

</comment><comment><USER3> No. But there is always someone trying to pull a fast one on someone else.</comment>


Parallel Universe (YC S12) Developing Spatial Databases For Matrix-Style Games - <AUTHOR> http://techcrunch.com/2012/07/09/parallel-universe-spacebase-will-make-for-new-matrix-style-mmo-games/ <comment><USER4> What a terrible article.

> Oracle and Redis are examples of traditional, spatial database environments.

Redis is traditional? Redis is spatial? What are they talking about?

> Spaccebase is an in-memory technology, which is how it can be so fast. > Thats' what truly separates it from the rest. It tracks not when or what > happened but where it occurred. And that all occurs in-memory. It's like any > application that runs this way. It's very fast in getting data. In this > case, we are talking about spatial data.

This entire paragraph is ridiculous. Just a bunch of buzz words repeated ad nauseum. What database does not use "in-memory" technology? I guess that's why "it's like any application that runs this way". Yeah, and French cuisine is like any food that's cooked that way.

<comment><USER5> Yet we still link to TC articles...

YC startups always launch on Techcrunch and top HN within an hour.

Is there not a better place?

<comment><USER6> In this case, a direct link to the site (<http://paralleluniverse.co/>) would be better. There is actual information there. To be fair, the first two words of the TC article were a link to the site. Signal to Noise over the first couple words of that article is quite high!

</comment></comment></comment><comment><USER6> It's being marketed as a database technology, but from a game development perspective it sounds more like "Engine" technology. The lines are admittedly blurry sometimes, but this doesn't seem to offer durability of data, which is what I think of when someone says "database" in the context of MMO servers. That said, the problems this is solving are important problems for any MMO server engine.

Requiring a JVM be embedded in your server is probably not going to go over well with many game developers. It's not initially going over well with me, but if I were currently trying to solve this problem, I would at least want to run some benchmarks against it.

I guess the big question I have is, how would this make existing MMOs better? If we take WoW as an example, dumping everyone into a single realm (shard) would solve the problem of wanting to play with your friends, who are on different realms. But 200x as many players competing for kills or standing around the auction house aren't going to make the game better. Most of your time would still be spent in instances, with a maximum of 25 players (40 if you go back in time - a case whre less massive was deemed more fun). And that's ignoring the problem of actually rendering that much stuff on the client.

I don't mean to sound overly critical, I could find ways to use this, but I'm not sure they're marketing it very well to MMO developers. Maybe the Eve guys would like it, but other than that game, I'm not sure the scaling problems MMOs have are the same scaling problems that this solves.

<comment><USER7> "Most of your time would still be spent in instances, with a maximum of 25 players (40 if you go back in time - a case whre less massive was deemed more fun). And that's ignoring the problem of actually rendering that much stuff on the client."

you haven't played Eve Online have you? Its a game that allows you to play, on the same "shard", with hundreds of players on grid at the same time, fighting it out.

Any tech that puts the massive back into MMO is good - lately, its all been instancing and sharding. That sort of game isn't MMO enough to make it MMO. In fact, i've been hearing lately, people calling Diablo 3 an MMO. What a farce.

Edit: oh, didn't you mentioned Eve already.

<comment><USER8> I always thought instancing and sharding were solutions to the social aspects of server overpopulation - it's not fun to do a quest when you have to wait for spawns, etc.

</comment></comment></comment><comment><USER9> I'd be curious to hear more about what they're actually doing (technically speaking). Is this a wrapper around kd-trees, R-trees, and their friends and relatives? Is it something fancier?

<comment><AUTHOR> The spatial index is an R-tree variant that doesn't degrade _and_ allows concurrent writes (multiples writers at a time, let alone readers). Readers don't block writers and don't use locks, while writers lock a small subset of the database for atomic transactions (one of the most common operations we need to support is a "move" of an object from one location to another - <USER2> has to be atomic).

For parallelization of queries and transactions we use fork-join.

<comment><USER10> How do you do lock-free updates to the R-tree structure?

<comment><AUTHOR> Most updates aren't lock-free.

</comment></comment></comment></comment><comment><USER11> As a longtime profesional game developer, I kind of don't get it. Is this company out of business as soon as Oracle implements a loose octree that is ACID? Is there something wrong with spatial hashing?

etc, etc.

<comment><USER12> It depends on the requirements of your data model. Anybody with a modicum of competence can scale a point cloud but real-world non-point geometry models is where systems like Oracle have difficulty. Polygons, lines, vectors, etc are a real problem. So-called "spatial hashing" (it had a different name in the 1970s and again in the early 1990s -- the wheel of computer science) has a number of real limitations which is why it was never really used (Oracle has patents on it that have already expired!).

Also, traditional transactional database engines are not designed for the kinds of insert/update rates that are common for many spatial applications. This is a problem for machine-generated data sources generally. It requires an architecture designed specifically for that kind of (ab)use case.

<comment><USER13> How would you do it then?

I mean, if you wanted to implement a 3d spatial db like that yourself?

<comment><USER12> This a big topic but there are two main components.

First, you need a storage engine architectures that is designed for very fast appends concurrent with queries. This is trickier than it sounds because you can't use secondary indexes and queries still needs to be efficient. Some recent database engines focused on non-batch "real-time analytics" are designed for this; it is a different internal model than traditional distributed analytic engines. Database engine boffins know ways of achieving this, esoteric but well-understood.

Second, you need a distributed interval index i.e. a distributed data structure that can act as an efficient index for 3-dimensional cube types. Scalable distributed interval indexing requires that data models be embedded in a higher dimensionality space, so at least 4-dimensions. The well-known example from literature is multi-level grids but those have many limitations. The state-of-the-art structures are adaptive spatial sieves; advanced versions are computationally efficient even for very high dimensionality cubes. However, these algorithms are encumbered and little has been published on them. (Disclosure: I am the inventor of the first useful spatial sieve algorithms. The idea dates back to at least 1990 but had unsolved theoretical issues until 2007.)

I am building a real-time analytical database similar to this right now, and petabyte-scale 3-dimensional spatial data models are a core part of its functionality. Building fast, distributed 3d spatial databases are achievable, it just requires a different data structures and algorithms skill set than you would use for more traditional database designs.

</comment></comment></comment></comment><comment><USER14> Is this going to be targeted towards big companies or startups (in pricing) ? I'm working on a game at the moment that could definitely benefit from this tech and I'd love to try it out but I'm bootstrapping so not sure if it would be affordable.

<comment><AUTHOR> Shoot us an e-mail.

</comment></comment><comment><USER15> So, say hypothetically, if I wanted to try my hand at implementing a toy version of something similar for fun, what would I need to at least have a grasp at?

</comment><comment><USER16> Hmm, I wonder how many potential customers they have.

<comment><USER12> Far more than you might imagine, at least if they develop a more sophisticated geometry model. The real limitation may be the pure in-memory model. Many of the high-value applications have enormous working sets, much larger than what will fit in a small RAM-based cluster. Hundreds of terabytes is where the applications just start to become interesting. In this sense, focusing on game worlds is probably a good idea because it is one of the use cases that will fit within their immediate scaling targets.

They are correct that traditional database spatial indexes are slow and scale terribly, being designed for relatively small and static data sets. It does not sound like they are pushing the state-of-the-art, just meeting an under- served need in the gaming space, a market which I can validate as existing but with somewhat limited revenue potential even if you sign the major game companies. It is a good "base hit" startup opportunity if they can execute it well. (I have designed massive-scale real-time spatial database engines for a number of years; we passed up the gaming market because the size of the market was too small relative to other markets for this technology.)

<comment><AUTHOR> Actually, we're very much pushing state-of-the-art :)

It's just that we're tackling a different problem - low latency applications - and when I say low latency I mean in the microseconds range. Big spatial data is a very interesting problem, and tracking a large number (though less than billions) of moving objects is another - though very different - <USER3> problem.

For working sets that don't fit in one machine's RAM we offer a cluster.

<comment><USER12> While I do not currently work on ultra-low latency spatial databases (more like milliseconds), I have in the past and so have some idea of what is out there. :-) I am not all that familiar with the design of your system so I was mostly working off the scale numbers offered.

The best example I can think of is an ultra-low latency in-memory prototype I designed in 2009 on a parallel cluster. The working set was several billion irregular 3-cubes ranging in (metaphorical) size from birds to hurricanes. The average CPU cost of an access operation was sub-microsecond so the latency was mostly interconnect related (which was a slow but proper low-latency supercomputing fabric). The current work I do uses complex geodetic polygons geometries so the computational cost of operations is quite a bit more but the actual computational cost of the access method is below the noise floor of the network fabric.

You are correct though that if you are mostly dealing with tracking points or cubes then in-memory is sufficient to hold many applications. It is the sensing data that really kills you... :-)

</comment></comment></comment></comment><comment><USER17> Is this limited to 2d and 3d space or can it handle n-dimensions?

<comment><AUTHOR> 2d and 3d only. Data of higher dimensions is usually not as dynamic (the data points are created and deleted but rarely moved), and SpaceBase is optimized for lots of updates. Also, higher dimensions require a different data- structure (see: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.6...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.6661))

<comment><USER17> n-dimensional would be useful for realtime machine learning applications.</comment></comment></comment>


Police Arrest People for Criticizing Cops on Facebook and Twitter - <AUTHOR> https://theintercept.com/2016/07/12/after-dallas-shootings-police-arrest-people-for-criticizing-cops-on-facebook-and-twitter/ <comment><USER2> Violence is terrible, terrible thing. But when a society starts to prosecute people for thoughtcrime, it is even more chilling.

</comment><comment><USER3> There were open calls for murder of cops along with an image of an officer with slit throat. This is as blatant violence incitement online as it gets. It is against the law and posters should be charged.

Also, saying things like "all cops should die" and "we all should grab our pistols and start busting at 'em" are not criticisms of police.

<comment><USER4> "The policing of online threats is hardly a new issue. The Supreme Court set a precedent last year when it ruled that prosecutors pursuing a charge of communicating threats need to prove both that reasonable people would view the statement as a threat and that the intent was to threaten. Elonis v. United States dealt with a man who had posted violent rap lyrics about his estranged wife; the court reversed his conviction."

"All cops should die" is not a credible threat and should not be viewed as one, and though "you should all die" is not an actionable criticism it certainly implies the existential critique that the black people in America have for the police, eg that they kill black people for nothing and treat them as subhuman.

Arresting people for e-threats is probably not a good use of police time considering the real problems they have, it's simply a use of intimidation and overreaction to a situation they feel like they can't control.

</comment></comment><comment><USER5> One tweet that led to an arrest said that Micah Johnson, the man who shot police officers in Dallas last week, was a hero. None of the men have been named, nor have they been charged.

"I know this is a new issue, but I want these people charged with crimes," said Detroit Police Chief James Craig. "I've directed my officers to prepare warrants for these four individuals, and we'll see which venue is the best to pursue charges," he said.

The war has begun.

</comment><comment><USER6> How long until people are arrested for thinking a cop is bad?</comment>


Google Plus defines an era of disruption at a moment's notice - <AUTHOR> http://radar.oreilly.com/2011/08/google-plus-g-plus-effect.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+oreilly%2Fradar%2Fatom+%28O%27Reilly+Radar%29 <comment><USER2> Um, did that guy have a point? If so, what was it?

<comment><USER3> I _think_ it was a poorly-developed: "things can change fast on the internet these days".</comment></comment>


Find threatens to 'turn evolution on its head' - <AUTHOR> http://www.latimes.com/news/nationworld/nation/la-sci-fossils2-2009oct02,0,3420742.story

<comment><USER2> The overly dramatic headline of the interesting submitted article and the back-and-forth among the scientists quoted in the article is largely explained by this passage from page 332 of the new book Evolution: What the Fossils Say and Why It Matters by Donald R. Prothero:

"The study of human fossils is one of the most crowded and contentious of any scientific field I've ever seen. Although the human fossil record is now quite impressive and includes thousands of specimens (fig. 15.2), there are also thousands of physical anthropologists who must 'publish or perish,' and who need to make a career somehow. Most of the best fossils are typically studied by those who have the funding and the access to key sites in Africa and elsewhere, so the rest of the profession has to make careers whatever way they can. Consequently, every idea and every specimen in hominid paleontology is challenged and restudied and reinterpreted many times . . . "</comment>


Implementation of xkcd 1923 – Felsius - <AUTHOR> http://www.weatherinfelsius.us <comment><AUTHOR> Hacked this together today, inspired by today's xkcd[1]. It grabs your location based on your IP address, if you're behind a VPN then you'll probably get inaccurate data back. Or you can enter a zip code input and check the temp in Felsius wherever (wherever in the US).

[1] [http://www.xkcd.com/1923](http://www.xkcd.com/1923)</comment>