The Taos Operating System (1991) - vezzy-fnord http://www.dickpountain.co.uk/home/computing/byte-articles/the-taos-operating-system-1991?hn <comment> david-given Hello --- ex-Tao employee here!

So Tao was my first startup. And then it was my first that-awkward-stage-when- you're-too-old-to-be-a-startup-but-still-don't-have-proper-cashflow. Then it laid off 50% of the staff, then it went bankrupt, then it came back from the dead, then it went bankrupt again.

The lessons I learnt from Tao were:

1\. Your company needs to be called something which people can pronounce. ('Where do you work?' 'Tao.' 'Dell?' 'Er... no.')

2\. An OS which requires people to code for it in a language which only exists in-house is not going to get much external traction.

3\. People don't buy advanced technology and then figure out what to do with it. They figure out what they want to do and then buy the technology.

4\. When the paycheques stop showing up, leave.

The technology was _great_. I joined just as TAOS was being migrated to intent. Both worked in the same sort of way; code was written in a custom portable assembly language, which was then translated into native machine code when it was loaded into the machine. The TAOS language was VP1, the intent one was VP2, and the first VP2 systems were hosted on TAOS, so it actually translated VP2 into VP1 and then into native. Translation was very, very fast; as both VP were pretty dense it was possible to load and translate VP faster than loading native code, on certain combinations of platforms.

VP1 had 16 registers and a pretty simple instruction set. The original incarnation was a assembler macro package. VP2 was way more complicated. It had five register banks (int32, int64, pointer, float, double) of up to 65535 registers each. It was actually a pretty nice system to program in, especially when the assembler got strong typing and structured programming support... yeah, I know what you're thinking.

The OS itself was way ahead of its time: it was an asymmetric multiprocessor system, where you could have any number of nodes of different CPU types hooked together via a message-passing system. Code loading was transparent, and devices and filesystems could be attached to any node on the system. It had a blisteringly fast compositing GUI, cutting edge audio synthesis, hardware accelerated OpenGL, and eventually ran on, deep breath: 386 x86 ARM MIPS PowerPC MCore ColdFire Transputer ShBoom and a V, um, V840? Or something?

Our standard development procedure for new hardware was to have intent running (inside a Linux process) on a desktop PC; we'd bootstrap a development board up to the point of having serial support and the VP loader; then we'd hook them together. Suddenly, we have a two-node system. We could start a terminal on the desktop and see that node #0 was a Pentium and node #1 was, say, a ColdFire. You could then spawn a process on node #1 and it would run transparently on the dev board with full access to the desktop's filesystem and device drivers, all running, quite slowly, over the serial link.

We had a TAOS-era demo box which was a 9-node system consisting of an elderly Pentium and eight transputer nodes; one of the demos was to draw a Mandelbrot, farming each scanline out to a different node. Alas, by the time the transputers had finished drawing their scanline, the Pentium had drawn the entire rest of the image...

We never, ever sold the multicore system to anyone. Back in those days it was too novel for customers to know what to do with. Instead we sold it as a embedded OS, which it did really well at. We had a JVM for it, which translated Java bytecodes into VP2, which meant we got, pretty much for free, a Java JIT to native machine code which didn't require any additional porting; any system intent supported also supported Java. (See that list of architectures above? We had a Java JIT that targeted the frickin' TRANSPUTER.) For a while we were the de-facto standard Windows Mobile JVM. Even now there are still copies floating around.

But you can't make money selling JVMs; the Sun licensing fees and the large team required for conformance testing soak up any margins. We were asked whether we wanted to become the standard Blu-Ray JVM. We said no --- we didn't see how we could make any money at it. In hindsight that was probably a bad idea, because if we'd said yes then maybe someone would have cared about the company surviving.

C and C++ was supported, eventually; we had a gcc port which produced VP2. This was back in the gcc 2.95 days. I'm not sure you realise how horrible gcc 2.95 was, but it was very horrible. C wasn't a good match to the intent way of doing things and we didn't put as much effort into it than we should have; eventually we got traditional programming models complete with shared libraries and dlopen() but it was way too late to matter. Even right at the very end the vast bulk of the system was written in VP2 assembly.

We had a fling with Amiga pretty late on, and were the technology behind Amiga Anywhere, which nobody ever cared about. (Although we did actually get a few external users. The sheer novelty of this was hard to handle.)

If you actually want to get your hands on an intent development kit, there are some legal copies floating around: we bankrolled a short-lived 'magazine' (read, advertisement) called Digital Magazine, and one issue had a complete PC dev kit on the cover CD. Here's the advert, and yes, the cover picture horribly embarrassed us: [http://www.amigahistory.plus.com/amiga_active/digital4press....](http://www.amigahistory.plus.com/amiga_active/digital4press.html) But I don't know if there's a copy online. (If you find one, let me know!) You may find this OSNews post about it amusing; drink every time you see a commentor say 'But what _is_ it?'. [http://www.osnews.com/comments/743](http://www.osnews.com/comments/743)

Eventually the company ran out of money for the last time and completely went under. I regret it deeply; the people were amazing and very, very smart, and the technology was deeply cool. Back in the 90s we worked with Motorola to produce a modern-style touchscreen smartphone; the software stack was in Java, running on an 11MHz ARM. It was fast and responsive and would run full-screen games. Did I mention it ran on an 11MHz ARM? IT RAN ON AN 11MHz ARM. But Motorola canned it shortly before launch. If they'd actually launched it, then Tao, and the entire smartphone world, would be very different.

Our CEO said that his ambition was for Tao to be bigger than Acorn. Well, he got his wish when Acorn folded shortly before we did. Sigh.

<comment> david-given Oh! Oh! I totally forgot about this!

I have an actual _program_ for intent. It's crap, but: [http://cowlark.com/foo-fighter/index.html](http://cowlark.com/foo- fighter/index.html)

It's in C, unfortunately, so there's nothing there of very much technological interest, but you can look at the APIs and marvel at my 13-year old code. I appear to have left a compiled binary with debugging information in it. It may even run on the Amiga Anywhere runtime or the intent ADK, if you can find one.

 _Update:_ Here's a screenshot of an editor with some VP2 assembly in it: [http://mobile.osnews.com/img/vp.jpg](http://mobile.osnews.com/img/vp.jpg)

This is part of a program which displays images on the GUI. It's VP2 using partially-typed assembly (we went through several iterations). 'tool' defines a loadable module. qcall calls another loadable module, which is loaded dynamically or statically depending on flags. ncall makes a method call on an object (using a blisteringly fast hash table lookup, so you get dynamic method resolution in about four instructions). Calls can have multiple inputs and multiple outputs; registers are saved for you automatically. gp is a special register pointing at the app's globals.

 _Update update_ : And here's the GUI in action (it was called the AVE). [http://mobile.osnews.com/img/quake.jpg](http://mobile.osnews.com/img/quake.jpg) It's running hosted on Windows. It's all composited --- note the transparent windows (unheard of in those days)! The viewflm window in the background is running an animation, which you can see through the transparent overlays while two Quake games run.

This is all done in software, using simple but very, very careful code written by Chris Hinsley. It was amazingly fast.

<comment><AUTHOR> That's really cool. I can see why C wasn't a high priority - it just doesn't map that well to object-oriented assembly...

Maybe I'm crazy, but this level of abstraction is somehow to my taste, and it looks like Tao would be fun to program in. Shame that it didn't make any impact. Had it been open sourced in 1998, things might had been quite different...

What happened to the Amiga deal? You alluded to it in another post. That sounds like another really interesting story.

<comment> david-given I wasn't really involved in that, being a mere foot soldier, but --- from memory --- we licensed intent to them and then they rebranded and extended it to become Amiga Anywhere. The idea was that AA games could be written using our tooling and run on a runtime based on intent. So, they'd run anywhere with our runtime. I think they were trying to exploit the Amiga brand to leverage synergies, or something.

I don't know why it failed; we didn't have anything to do with Amiga's operations, apart from offering support. (I don't think any of us were Amiga people.) My impression was that the general feeling inside Tao was that the Amiga of the time was cursed, and we didn't want anything to do with it. Tao itself wasn't doing well then and we were all a bit superstitious. It didn't help that the main person we dealt with was called Fleecy Moss.

I did get one perk out of it: I own a copy of the Amiga comeback album. Lucky me. [https://www.youtube.com/watch?v=szMGxqwfxiI](https://www.youtube.com/watch?v=szMGxqwfxiI)

Here's a terrible video of someone from Amiga demoing it. God, those iPaqs. I had one on my desk with a PCMCIA hard drive in it for doing the ARM Linux port. Horrible, horrible things. [https://www.youtube.com/watch?v=HfHcwpzxSdk](https://www.youtube.com/watch?v=HfHcwpzxSdk)

I'd be interested in playing with a copy of AA if I could get my hands on a version which would run on a modern machine.

<comment><USER2> > I don't know why it failed

At the time, the Amiga name didn't have a lot of mainstream recognition anymore. And the people who still cared about Amiga slammed AA every chance they got on amiga.org & amigaworld.net because it wasn't classic AmigaOS running on a cell phone. There was a lot of resentment that the Amiga name & logos were being slapped on something completely unrelated.

</comment></comment></comment></comment></comment><comment><USER3> There's more about this operating system, which apparently was renamed to Elate, and then Intent, at [http://mobile.osnews.com/printer.php?news_id=157](http://mobile.osnews.com/printer.php?news_id=157) and [http://c2.com/cgi/wiki?TaoIntentOs](http://c2.com/cgi/wiki?TaoIntentOs).

<comment> vezzy-fnord And yet they've pretty much evaporated since. References to this system are very rare and it seems like only a small circle of people ever truly experienced it. No public copy from what I can see.

<comment><USER3> Here's some more info: [http://www.uruk.org/emu/Taos.html](http://www.uruk.org/emu/Taos.html), via [https://groups.google.com/forum/#!topic/comp.lang.forth/Cj_6...](https://groups.google.com/forum/#!topic/comp.lang.forth/Cj_67-6g8dA).

According to Wikipedia the company was sold in 2007 ([https://en.wikipedia.org/wiki/Tao_Group](https://en.wikipedia.org/wiki/Tao_Group)). That's a pretty long run from the early 90s.

I've tried emailing Chris Hinsley to see if he wants to answer questions on HN. An old email address, but maybe he'll see it at some point.

<comment> vezzy-fnord The uruk.org opinion article was the one I encountered first, though the BYTE mag one is of higher quality.

The wiki article lists quite a convoluted history, not to mention all the rebrandings. It seems like they never really focused on attracting researchers or considering any FOSS presence, which is a shame because it's now practically lost by this point.

If Hinsley answers, that'd be great.

<comment> david-given I wasn't a founder, but I spent _ages_ campaigning for a free development kit to try and get homebrew momentum. Management was rigidly against it. The reasons basically boiled down to (a) our APIs were trade secrets; (b) support costs would be way too high.

(a) was obviously dumb, but (b) had a point. We _would_ have gotten people asking us questions. With a tiny staff we'd have had to blow off anyone who weren't paying for a support contract, which would have gotten us bad press; and given how weird intent was, we would have got questions. Part of the reason for the Amiga deal was that they'd do this for us. Well, that went well...

<comment><USER4> I agree with Dave, I was involved in arguing for a open version, as the CTO of Tao, so people could get their hands on, but it wasn't to be. :(

With hindsight Tao should have done this.

Chris

</comment></comment></comment></comment></comment></comment><comment><USER5> > FILEFOLDERS

> TAOS stores objects onto mass storage media like hard disks via the mailbox > system, in objects called 'filefolders'. A filefolder has some similarities > to a DOS or Unix directory, but rather than being a passive storage > structure it is an active object (in fact a control object). The tools > attached to every filefolder are responsible for storing and retrieving > objects from the folder and for negotiating with the hardware device drivers > that are necessary for this transfer. _Because filefolders are actually > instances of a broader category of TAOS object called 'filters' they may > also process the data they transfer, for example compressing and expanding > it transparently to the user._

Emphasis added. Oh, it seems they were _so_ close here. The biggest central problem with Unix mount, apart from synchonous/trusted I/O, is that the things that are exposed to the OS through mounting are only files, and never processes ...

<comment><USER6> > The biggest central problem with Unix mount, apart from synchonous/trusted > I/O, is that the things that are exposed to the OS through mounting are only > files, and never processes ...

With plan9port [https://swtch.com/plan9port/](https://swtch.com/plan9port/) you can mount processes on any UNIX.

<comment><USER5> Sorry, I'm not as familiar with Plan 9 as I should be. I know that it has (and emphasises) user-space mount, but it is my understanding that the entities exposed to the OS through mounting are files, not processes. (Including through /proc, which exposes a directory tree of files containing data _about_ processes, not processes themselves.)

</comment></comment></comment><comment><USER4> Useful link, several scanned articles on Taos at the bottom of the page.

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

Chris Hinsley

</comment><comment><USER7> Ah Taos! One of serveral very interesting OSes from late 1980s and early 1990s. Grasshopper, Jaguar, Oberon are a few others from the same era.

Its probably my age and not keeping up with the research, but it feels like there were more diversity and cool things going on in OS reserach and R&D back then.

Though the development of VMs and OSes for IoT and mobile devices is probably a good counterpoint.

</comment><comment><USER8> Oh, I'm so glad someone ressurected this old article. I kept talking about it, but docon the Internet of Taos and Elate became quite sparse. It was full of great ideas.

</comment><comment><USER9> I remember reading this and getting excited. Still today we haven't quite managed to paralellize all the things, even across cpu cores much less nodes.

</comment><comment><USER10> Looks quite similar to Phantom OS, though it seems frozen/dead since 2012.

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

[http://dz.ru/en/solutions/phantom](http://dz.ru/en/solutions/phantom)

</comment><comment><USER11> I'm wondering what stopped this development... Technical issues or financial/environmental? What strikes me is the organic-like structure and functioning of this idea. Which I believe is where things need to go to avoid boring stagnation.

</comment><comment><USER7> I love the list of architectures mentioned:

"Inmos T800 transputer, Motorola 680x0, PgC7600 (see article in this issue), Intel 80386/80486, Acorn ARM and Sun SPARC"

Of these x86 and ARM dominates the world today.

</comment><comment><USER12> I've said this before, but it's worth saying it again. It's disappointing the two most popular OSs are a Unix derivative and the bastard child of VMS.

<comment> vezzy-fnord The problem isn't so much Unix, but rather that we have largely failed to evolve it since the days of AT&T System III. The Bell Labs people kept working on Research Unix up to V9 with plenty of great features (like V9 IPC streams) that were never replicated anywhere else, before moving on to the ultimate culmination of these ideas in the form of Plan 9 and Inferno.

Meanwhile Linux has always been a boring SysV Unix clone that only occasionally ripped some features (and in a questionable manner) like procfs, sysfs, epoll, signalfd so you don't have to do the self-pipe trick, inotify, cgroups and namespaces. Stuff that competing systems often did much better.

The BSDs have been quicker to do more novel things, but by far the only two modern Unices to get the memo are DragonFly BSD and Solaris/illumos.

<comment><USER13> It is an interesting side note that Richard Miller, who hacks on Plan 9, was part of the Taos OS scene.

<comment><USER14> Even more interesting that he was on the frontpage just last night! [https://news.ycombinator.com/item?id=9801745](https://news.ycombinator.com/item?id=9801745)

<comment><USER13> Ah, I bet that explains it. People follow the subject and post the things they find.

I wonder how long it will be before the turtle pokes its head out?

[http://cyberneticzoo.com/cyberneticanimals/1969-the-logo- tur...](http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle- seymour-papert-marvin-minsky-et-al-american/)

I was waxing lyrical at the Plan9 conference to Richard who I have known for a few years about how amazing the turtle and Logo is/was for classrooms because it could engage with a wider range of children than trying to teach them programming because it stimulated those maybe interested in programming, art, robotics, languages and maths with teamwork and communication skills and even just watching things happening. Imagine my pleasure when he said "I'm glad you appreciate it" and went on to tell me the story of developing it when I had no idea!

<comment><USER14> Wait, what?! Can you illuminate the intervening breadcrumbs?

Edit: wow, he's everywhere.

<comment><USER13> I was updating with my personal breadcrumbs when you replied. Richard was a colleague of mine - the plan9 scene leads very quickly to luminaries - I have had the privilege of meeting some very talented programmers who are humble so one day you will be on a webpage and go "gosh, I know that guy"

<comment><USER14> I'd love to chat more if you'd be willing to drop me a line. My email address is in my profile. Too bad I'm too late for the plan9 scene. I'm fascinated to find this long-running nexus between OS hacking and teaching programming, because that's kinda what I've been up to lately and I've worried some that it bespeaks a lack of focus.

<comment><USER13> I sent you an email

<comment><USER14> Thanks! Hope you received my response.

<comment><USER12> It feels nice to be, at least in part, responsible for this exchange. :-)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I think we've discovered over time that OS Kernels aren't the place for Grand Abstractions.

Grand Abstractions are cool and powerful when you are happy to live within their universe. But they tend to be incompatible with other Grand Abstractions.

That's why modern kernels tend to focus on Boring Abstractions (threads, processes, locks, memory maps, files, cgroups, etc.) Then the interesting and more opinionated stuff can happen in user-space (Docker, JIT-comiling VMs, web browsers, mobile apps, etc)

<comment><USER16> Disagree. Those things are already GAs, just ones more familiar with programmers today. So we call them boring.

Change the way you think about code, and change the world. And it starts with the application environment, often called the OS.

<comment><USER15> > Those things are already GAs, just ones more familiar with programmers > today.

Ask yourself this: could you efficiently implement Taos abstractions on top of POSIX? (probably yes) Could you efficiently implement POSIX abstractions on top of Taos? (probably no) That is the difference between a Grand Abstraction and a Boring Abstraction.

> Change the way you think about code, and change the world.

I agree that Grand Abstractions can be powerful.

> And it starts with the application environment, often called the OS.

Sure, just leave the GAs out of the kernel. It doesn't mean you can't have them. Just put them in user-space. Then GAs can operate in a competitive market where you use them because you _want_ to, not because you _have_ to.

<comment><USER16> You could imagine an OS with no threads. E.g. dataflow, or message-processors working queues, or something else. Perhaps instead of processes we'd use just virtual machines. Maybe instead of managing memory, we manage only data abstractions e.g. capabilities. There are strong reasons to want safety and security guarantees around the lifetimes of those things.

All of those should properly be managed by a kernel, yes?

<comment><USER15> > You could imagine an OS with no threads. E.g. dataflow, or message- > processors working queues, or something else.

Sort of like Erlang? Which can run on POSIX.

> Perhaps instead of processes we'd use just virtual machines.

Sort of like the JVM, or Docker, or VirtualBox, or any number of VM technologies that run on POSIX?

> There are strong reasons to want safety and security guarantees around the > lifetimes of those things.

Why do any of these things need to live in the kernel to give safety/security guarantees? If anything, code that runs in the kernel is more vulnerable, not less.

btw. I don't think POSIX is the be-all end-all or anything. But if I imagine something better than POSIX, its abstractions are even less opinionated than POSIX, not more.

<comment><USER17> Getting rid of POSIX is the only way of achieving safer OSes. POSIX is nothing more than the C runtime vs what other languages with richer runtimes offer. They standards body just decided to split the runtime between ANSI and Open Group.

I only care about OS POSIX support every time I have to go down to C or C++. Otherwise the OS can have whatever abstraction model it feels like.

</comment></comment></comment></comment></comment></comment><comment><USER18> I think it's very relevant to mention "The Future of Programming", a recent talk roleplayed as if it were 1973, with a lot of excitement over the recent developments in computer science, and discussing how the next 40 years would be... only to realize that, 40 years later, we haven't caught up many of these innovations

Watch it, it's short, funny, and food for thought: [http://worrydream.com/dbx/](http://worrydream.com/dbx/)

</comment><comment><USER19> A demo of Amiga branded Taos was released on a CD or DVD with a game magazine. I played with it. It worked.

<comment><USER20> Yes, I remember it getting coverage in _EDGE_ way back when, and thinking it looked interesting.

Then again, I'm one of the few who actually bought a copy of BeOS. RIP, isComputerOn/isComputerOnFire...

</comment></comment><comment><USER21> Repost of the article that you already posted 15 hours ago: [https://news.ycombinator.com/item?id=9802379](https://news.ycombinator.com/item?id=9802379)

<comment><USER3> We sometimes invite people to repost articles that look good and didn't get much attention. 11 points is perhaps borderline for "much attention", but we thought the article deserved a discussion, so we invited vezzy-fnord to repost it. (Edit: It's astonishing that, to judge by HN Search, this operating system has never appeared on HN before, either as a story or even in a comment.)

In general, a small number of reposts is ok if an article hasn't had significant attention in the last year or so [1]. Letting good stories have a few cracks at making the front page helps mitigate the randomness of what gets traction here.

1\. Please see [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html).

<comment><USER22> Actually, it was just mentioned two weeks ago (in reference to Apple's bitcode):

[https://news.ycombinator.com/item?id=9727810](https://news.ycombinator.com/item?id=9727810)

<comment><USER3> So it was—good catch!

Looks like "taos os" was the thing to search on: [https://hn.algolia.com/?query=taos%20os&sort=byDate&prefix&p...](https://hn.algolia.com/?query=taos%20os&sort=byDate&prefix&page=0&dateRange=all&type=comment).

</comment></comment></comment></comment><comment><USER23> Parallels to Apple's Bitcode? Could OS X go the way of Taos VM?

<comment><USER24> LLVM bitcode is a moving target, not a firm spec.

<comment><USER23> That could well change.</comment></comment></comment>


A Sequence Problem - <AUTHOR> http://raganwald.com/2017/06/04/sequences.html <comment><USER2> This is a fun problem that took me ~ an hour to solve, mostly because I made a silly mistake early on. Recommend it if you have some downtime.</comment>


Spraying Magnetic Stripe Cards with Iron Filings - <AUTHOR> http://www.tetherdcow.com/another-science-experiment/ <comment><USER2> Yeah, the ShooTag thing is totally bogus.

Viewing magnetic recordings with magnetic particles used to be a standard maintenance tool. It was used to check tape drive head alignment. There was a liquid with iron particles in suspension into which you could dip a strip of tape. When the solvent evaporated, you could see the data tracks. A non- destructive version was a hand-held viewer, with a window on top and a thin plate on the bottom, filled with a fluid containing iron particles. You could press this against a tape and view it.

These were sometimes used in data centers during the transition from 7 to 9 track tape drives, when an incoming tape had an unknown format.

<comment><USER3> The liquid (also comes in spray form) still exists. It's called a Magnetic Developer: [https://en.wikipedia.org/wiki/Magnetic_developer](https://en.wikipedia.org/wiki/Magnetic_developer)

<comment><USER4> Wow, never heard of this. Gotta love the old-skool tech!

<comment><USER5> The very first time I wrote an interrupt handler, it was in octal, entered by a numeric keypad into an LSI-11 with DEC's ODT - "Octal Debugging Technique".

I wish I could say I was paid to do that but it was for UC Davis' Intro to Computer Architecture Class.

I got a C because I cratered the final.

</comment></comment></comment></comment><comment><USER6> A beautiful story about the inner workings of a patent-pending species- specific insect repellent based on a small strip of magnetic strip. As one might guess, it involves encoding the words "FLEA" and "TICK" on the strip. Or maybe "AELF" and "KCIT" to properly actuate the quantum polarity? The story was written in 2010 while the patent was still pending. But surely it's been rejected by now. Nope. Also as one might guess, the patent was granted by the USPTO with the the main claim intact: [https://www.google.gg/patents/US8382001](https://www.google.gg/patents/US8382001)

Have you ever thought to yourself "Sure, this advertisement says 'patent- pending', but that only means that someone was able to scrape together enough money to file a patent. It's not like someone has vetted the technology and actually granted them a patent." Well, now you see that you can safely shorten that to "Sure, this advertisement says 'patented', but that only means that someone was able to scrape together enough money to file a patent. It's not like someone has vetted the technology."

This is probably not surprising to anyone who understands the role of patents. They aren't designed to act as evidence that a technology is useful, or even possible. Instead, they are designed to "promote the Progress of Science and useful Arts", which seems to be interpreted as to "create a secondary market for dubious patents". I was surprised though to see that they had been granted a second patent, covering the ornamental design of the tag: [http://www.google.com/patents/USD626704](http://www.google.com/patents/USD626704)

I was aware that design patents existed to cover essential innovations such as the rounded corners of a "portable display device" ([http://www.google.com/patents/USD670286](http://www.google.com/patents/USD670286)), but I hadn't realized how broadly they could be applied. Is there a threshold that needs to be exceeded when determining how much the grant of a design patent will "promote the Progress of Science and useful Arts"? Or can one expect to receive design patents for any design variation you can dream up?

<comment><USER7> The article is from 2010. Amazingly shootag is still on sale at Amazon. $35 for two! They have 150 reviews. 42% 5 star, 12% 4 stars and 31% 1 star.

The reviews seem to have many genuine people who _absolutely believe_ these work - even though these things clearly can't work. Reading the reviews makes me a bit angry and a bit sad.

<comment><USER8> Rational wiki points out that it is vaugly possible they do work, although not by the mechanism claimed. if they were heavily coated with chemicals they might work... while possibly poisoning the pet they are being used on.

<comment><USER9> > shoo!TAG is a revolutionary chemical-free way to protect your pets from > fleas and ticks

I don't think so. But I _highly_ doubt the card is actually chemical-free, so they're lying either way. Also, I think they would be more afraid of lawsuits by people whose pets were poisoned than for false advertising.

<comment><USER10> The card comprises a unique matter-free pocket universe. Or at least it had better, or they're lying.

<comment><USER11> As long as it's not atoms, but eg just neutrinos, it's not really chemistry.

</comment></comment></comment></comment></comment></comment><comment><USER7> You used to be able to buy magnetic field viewers to inspect tape. Here's a picture of one: [http://nickapedia.com/2011/02/21/back-to-the-geek-future- coo...](http://nickapedia.com/2011/02/21/back-to-the-geek-future-cool-old- stuff/)

Another fun thing you can do is put the iron filings in a jar with mineral oil. Give it a good shake, then put a strong magnet on the side. You'll be able to see the magnetic field in 3D.

</comment><comment><USER12> Don't miss the comment where they decode the ShooTag magstripe to contain the DEC-SIXBIT ASCII strings "FLEA" and "TICK": [http://www.tetherdcow.com/another-science- experiment/#commen...](http://www.tetherdcow.com/another-science- experiment/#comment-297446)

Sure to repel them, that.

Also, note (2010).

<comment><USER13> I wonder if you made one that said "hot babe" it would be a chick magnet.

<comment><USER14> Chick repellant.

</comment></comment></comment><comment><USER15> What I'm confused about here is why the ShooTag actually has any data on it at all. Surely it would be cheaper to just make part of the plastic card black, instead of actually going to the trouble of encoding something on it.

<comment><USER16> One thing to consider is that the creators might very well believe it works themselves.

It's easy to fool yourself into believing something you _want_ to believe. They might even have done some informal, poorly structured tests and gotten the results they were expecting for other reasons, reinforcing their beliefs. Hell, I've done this to myself (ie when debugging) so I can totally empathize.

<comment><USER17> I would probably die of embarrassment if anyone ever saw the number of lines in my code that say

x = x //this doesn't need to be here but it breaks if you remove it

<comment><USER18> Wouldn't it be better to figure out _why_ it breaks?

<comment><USER19> The five whys should be applied to successes in addition to failures. [https://en.wikipedia.org/wiki/5_Whys](https://en.wikipedia.org/wiki/5_Whys)

If you figure out some amazing workaround, ask yourself why it works. If you don't know, don't trust the workaround.

<comment><USER17> If you question it, you might find a way that works better. Then you have to redo all of it, and that's more work, so just keep plugging away, blissfully ignorant!

</comment></comment></comment></comment></comment></comment><comment><USER20> For the same reason, the ferromagnetic nature of the magstripe, it is possible to read, store and playback the data information on the stripe. You need only few $ for the reader or a simple Square reader. This is an alternative solution to spoof Magnetic stripe cards on Android: [http://cosmodro.me/blog/2011/mar/25/rhombus-square- iskewedi/](http://cosmodro.me/blog/2011/mar/25/rhombus-square-iskewedi/)

<comment><USER21> Hey, cool, it's nice to see my stuff get referenced by someone that isn't me!

Rhombus only _reads_ magnetic stripe data. It won't write it. But yes, you could totally write to a low-coercivity stripe with the right hardware.

Before you run out and get a Square reader, they're all encrypted now and don't return the raw data necessary for Rhombus to work. You can still get unencrypted readers from China on alibaba pretty easily.

<comment><USER20> There are same crazy nerd which enjoy themself (I don't know why) to decrypt credit card data coming off of a magnetic stripe scanner: [https://www.parthenonsoftware.com/blog/how-to-decrypt- magnet...](https://www.parthenonsoftware.com/blog/how-to-decrypt-magnetic- stripe-scanner-data-with-dukpt/)

But I agree with you, an un-encrypted reader of magnetic stripe is very easy to find or build. The security is like a door in the desert.

</comment></comment></comment><comment><USER22> Question:

        Will this interfer with their invisible fence collars?

Answer:

        I wouldn't know the answer to that for sure - but would not
        hesitate to use with an invisible fence. This is not an electric
        type mechanism but rather one of kinetic energy - thus based
        on the dogs movement...as they move they create body energy
        and the tag works to keep critters away...not related to any
        electrical devices etc. I believe on the Shoo Tag site you can
        reach out to them and there are FAQ's, I'm sure they can
        clarify 100%.

Source: [http://www.amazon.com/interfer-their-invisible-fence- collars...](http://www.amazon.com/interfer-their-invisible-fence- collars/forum/Fx29K5XDBM2ROGB/TxFT1NCVR7Y0JB/1/ref=cm_cd_ql_tlc_al?_encoding=UTF8&asin=B0021L8XBO)

Where, again, was the possibility to opt out of being human? I really should've had been paying more attention.

</comment><comment><USER23> It might be interesting to perform this same experiment with a Coin Card. It would be cool to see the patterns shift as it remagnetizes its bars.

</comment><comment><USER24> In one of my experimental physics courses we built a circuit to digitize the data on magnetic cards. It really blew my mind when I realized how it was designed to allow variable swipe speeds. If you think about it, it's very cool.

</comment><comment><USER25> Metal filings can wreck havoc on your lungs / eyes - please use safety precautions if you are attempting this at home

</comment><comment><USER26> When he pulled the ShooTag out I thought he was totally going to write the card data to it. Nonetheless, interesting article.

</comment><comment><USER27> You can use laser printer toners to get same effect! They are magnetic as well and might be easier to get.

It's also easy to get better contrast - apply transparent tape to magnetic strip, remove the tape and put it on top of white paper. You can clearly see strips.

</comment><comment><USER28> Nothing new here. I was doing this back in the 80 to check on the alignment of 8" floppies and backup tapes.

<comment><USER6> I downvoted your comment, but then noticed that you have only made two comments here, so this felt needlessly cruel. So I upvoted your first comment as recompense. Your first one was a fine comment. This one is not.

I'd be glad to hear more about using this technique to check alignment of floppies. In fact, the top rated comment on this page is about that. But saying "Nothing new here" is unwarranted and crass. While this may be old hat to you, it's interesting to many who might not have considered it.

Perhaps more importantly, only the first part of the article is about visually checking the magnetic strip. The rest is about enhancing it using image enhancement, decoding it by guessing likely parity codes, and then detailing years of unsuccessful attempts to discourage people from buying this fraudulent product.

Anyway, welcome to HN and please stick around to share your experience by make more comments like your first one.

<comment><USER29> he is a true veteran, he doesnt care if his comments are popular or not

</comment></comment></comment><comment><USER30> There is also magnetic developer: [https://en.wikipedia.org/wiki/Magnetic_developer](https://en.wikipedia.org/wiki/Magnetic_developer)

This is what is usually used today to diagnose issues with magnetic stripe encoding/reading.

</comment><comment><USER31> Is there a learning here that something so simple and reliable can work so well for 60+ years despite constant ridicule from in-the-know tech and supposed "insecurity"?

<comment><USER17> If it's stolen as often as it is, it doesn't really "work so well". It worked well up until it started being used and stored on Internet-accessible machines. As soon as that happened, it utterly failed to "work so well".

If you want to know about its "supposed" insecurity, maybe read any of the hundreds of articles online about Target, Staples, Home Depot, PF Changs, Neiman Marcus, Goodwill, Global Payments, UPS, Michaels, and dozens more. I'm not sure what you're arguing, that magstripe is safe enough?

<comment><USER32> Magnetic stripe is about as secure as your door key. It's all great as long as it sits in your pocket, but post a close-up photo of it accompanied by your address to Twitter and see how long it takes until the things from your flat start mysteriously appearing on Craigslist.</comment></comment></comment>


Wasp's Nest: A Lock-Free Concurrency Pattern In Python - <AUTHOR> http://emptysquare.net/blog/wasps-nest-lock-free-concurrency-python/ <comment><USER2> Does anything in CPython really count as lock-free, given the presence of the GIL? Lots of clever algorithms happen to work without the addition of mutexes in CPython, because you can count on individual python instructions being effectively atomic (like list append, if memory serves) due to the interpreter acquiring a global mutex whenever a python thread is running.

Decent writeup of read-copy-update, at least. I'm annoyed that he never provided any actual measurements to prove that the addition of a mutex is a bad solution for the problem, or too slow.

It's really, really easy to write a 'correct' lock-free implementation that gets dramatically outperformed by a simpler implementation using mutexes. It all depends on how you use the mutex, how fast your mutex implementation is, how fast your atomic primitives are, and other details like whether you're sharing cache pages.

<comment><USER3> as a python programmer, you cannot think this way.

<s>one reason you cannot think this way is because the GIL is a CPython concept. if you program with this restriction in mind, you're not writing python, you're writing python targeted to the CPython implementation of python.</s> \- edit, this is actually wrong, a comment below explains why.

the other reason is because it is misunderstanding of how the GIL works. the GIL is acquired for each python instruction so no two instructions will race against each other in the interpreter. however, two threads could have any arbitrary ordering of instructions and there is not a strict correspondence of instructions to statements.

CPython uses native threads for python threads so if you make multiple threads, they will race against each other. please don't make any assumptions about how the interpreter and those threads will interact, and just use either locks with good judgement or a lock-free algorithm that is grounded in a very deep understanding of the languages memory model.

<comment><USER4> While I agree that it's generally not helpful to rely on implicit atomicity in any Python, the reality is that all the other Pythons have followed CPython's lead and implemented the same memory model for compatibility. PyPy, Jython, and IronPython all have atomic bytecodes. So, for better or for worse, this bytecode atomicity is a _de facto_ part of the language.

<comment><USER3> oh! that makes sense. hooray.

I'd strikethrough edit my post but I don't know how to make strikethrough markup :(</comment></comment></comment></comment>


The Future of Iced Coffee - <AUTHOR> http://www.theatlantic.com/features/archive/2014/08/the-future-of-iced-coffee/375114/

<comment><USER2> I'm a huge iced coffee drinker and I'm not a big Blue Bottle New Orleans iced coffee fan, it doesn't taste much like coffee to me.

Similarly, artisanal "cold brew" at most places nowadays seems oddly bitter to me, without any depth. I been drinking iced americanos instead of cold brew for the last couple months and am happy now.

<comment><USER3> Indeed; 've always found "cold brew" or "toddy" coffee incredibly boring and empty. (Which makes sense, of course; so many of those flavors are extracted by heat.) I'll mix it with some milk and simple syrup on a hot day, but it's still not really _coffee_ to me.

But you say "nowadays" \- I wonder what changed. I'd be surprised if there was a significant shift in technique. A general move to a different roast? Perhaps just your tastes preferring a more acidic coffee?

</comment></comment><comment><USER4> I thought this was going to be yet another 'compiles to JavaScript' language. I was pleasantly surprised to see that it isn't.

Unfortunately, there is an "Iced CoffeeScript": [http://maxtaco.github.io/coffee-script/](http://maxtaco.github.io/coffee- script/)</comment>


Trump Will Start Years-Long Process to Withdraw from Paris Climate Agreement - <AUTHOR> https://www.nytimes.com/2017/06/01/climate/trump-paris-climate-agreement.html <comment><USER2> What does Trump care about the environment? He'll be dead long before this decision has any actual consequences on the environment. Meanwhile there's a ton of money to be made in the short term.

This is probably the most depressing news of the year.

</comment><comment><USER3> Very depressing seriously. I hope this meets the same fate as the visa ban.</comment>


Is it time to swap your Mac for a Windows laptop? - <AUTHOR> https://www.theguardian.com/technology/2017/jan/07/mac-windows-pc-macbook-pro-microsoft-surface-book <comment><USER2> It's never time for a windows laptop. Actually, I'm really happy with switching from mac to Fedora - after 22 years as a daily mac user.

I tried to get debian and its children & grandchildren to run on my PC, but all had issues. The most frustrating being mouse clicks intermittently not working. (seriously? 2017 and we can't figure out mouse clicks?)

But Fedora worked, it detected everything correctly, and I had a box that I could actually just start using and not spend hours (or days) configuring to get the basics working.

I would go so far as to say it's been relatively apple-esque in experience polish - when contrasted with most other distros. I've also had more stability and performance in general.

I still have nvidia screen tearing to sort out somehow. It's annoying but tolerable. But I also have way more control over my machine, and can change/do things that Apple would never let you.

Anyway, I recommend checking out Fedora if you're considering moving to linux, and have had troubles with ubuntu & co.

<comment><USER3> It may have been time better spent learning why it was broken and send the patches upstream.

<comment><USER2> > time better spent learning why it was broken

What are you thinking here? a couple of hours and i'm done? Because this offhand comment would take me months, possibly years to actually be able to do. I know what I don't know - and it's a lot.

<comment><USER3> There's no better time to start than now. The more people that contribute, the better the platform gets. Bugs don't get fixed when people ignore them.

<comment><USER2> I think it would be far more useful of myself and others, to properly identify and raise bugs so that developers with the proper knowledge and skill can address it.

The assumption that just anyone can contribute and resolve these issues is extremely generous, and unrealistic. Maybe if you're fresh out of school, you have the time available to truly dig in. But when you're working a FT job, and have a side project, and a life - there is no time for such a deep dive with such little yield. Because not only do you not know the language, you don't know the codebase and you don't know the domain. That's an awful lot to catch up on to fix a bug.

I agree people can be more involved with the software they use. But I think that can play out in many different ways, suited for what each person can bring to the table.

<comment><USER3> Oh, you properly identified and raised the bug? From the comment, it sounded like you abandoned ship and installed Fedora (which may or may not eventually have the same bug).

<comment><USER2> You're not wrong - I jumped to fedora (which did not have any of the bugs I experienced). But FWIW, many of them already had been identified elsewhere. Fedora has had it's own bugs of course - though minor ones. I have taken the time to raise them within the Fedora community, but I couldn't do that with debian and it's descendants because the system was in an unusable state (the bugs)

<comment><USER3> Glad to hear. Lots of users just consume, and don't give back. Reporting bugs is a huge help.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I will happily swap my Mac for a laptop that could reliably run Linux if I ever find one. I had a machine from System 76 where a video driver would break with every major Ubuntu update. Dell XPS 13 developer edition seems to have a surprisingly shitty Linux support too (e.g. see the comment section here [http://goo.gl/wVKsDL](http://goo.gl/wVKsDL)). Are there other options?

<comment><USER5> Librem 13 is pretty slick, if you want a black MacBook Air knockoff with good build quality, i5, and its own Linux distro tailored to run the hardware and respects your privacy.

</comment></comment><comment><USER6> All everyone wants is the mac OS and to put it on any machine they want. Thats all..

<comment><USER7> I want that provided there's a laptop out there with comparable build quality. I don't much mind who produces it, but - as an example - a trackpad that is at least 75% as good as Apple's is an absolute must.

</comment></comment><comment><USER8> Nope. This touchbar Mac is actually the best machine I've ever had.

<comment><USER9> Can you elaborate?

</comment></comment><comment><USER10> Depending on your use case would also consider a Chromebook. Purchased son an Acer 14 and love this laptop and want one for myself.

<comment><USER9> It depends on what your requirements are. I have a chromebook, and it's fine for web surfing. However it just doesn't compare to a Macbook pro:

\- crappy screen (missing pixel, and low viewing angle)

\- plastic case vs aluminium

\- much less powerful

\- can't run mac OS

My 2011 Macbook Pro cost about $1500, compared to about $200-300 for the Chromebook.

<comment> _-david-_ You can install MacOS/hackintosh on at least one chromebook: [http://www.omgchrome.com/install-mac-os-x-on- chromebook-c720...](http://www.omgchrome.com/install-mac-os-x-on- chromebook-c720/)

It doesn't appear to be the best experience but it does appear to be possible.

</comment></comment></comment><comment><USER11> No. D:</comment>


List of fictional computers - <AUTHOR> http://en.wikipedia.org/wiki/List_of_fictional_computers

<comment><USER2> Propably the shortest story on the list /Dwan Ev ceremoniously soldered the final connection with gold. The eyes of a dozen television cameras watched him and the subether bore throughout the universe a dozen pictures of what he was doing. He straightened and nodded to Dwar Reyn, then moved to a position beside the switch that would complete the contact when he threw it. The switch that would connect, all at once, all of the monster computing machines of all the populated planets in the universe -- ninety-six billion planets -- into the supercircuit that would connect them all into one supercalculator, one cybernetics machine that would combine all the knowledge of all the galaxies. Dwar Reyn spoke briefly to the watching and listening trillions. Then after a moment's silence he said, "Now, Dwar Ev." Dwar Ev threw the switch. There was a mighty hum, the surge of power from ninety-six billion planets. Lights flashed and quieted along the miles-long panel. Dwar Ev stepped back and drew a deep breath. "The honor of asking the first question is yours, Dwar Reyn." "Thank you," said Dwar Reyn. "It shall be a question which no single cybernetics machine has been able to answer." He turned to face the machine. "Is there a God?" The mighty voice answered without hesitation, without the clicking of a single relay. "Yes, now there is a God." Sudden fear flashed on the face of Dwar Ev. He leaped to grab the switch. A bolt of lightning from the cloudless sky struck him down and fused the switch shut./ (Fredric Brown, "Answer")

</comment><comment><AUTHOR> These related lists have some of the omissions people are pointing out:

[http://en.wikipedia.org/wiki/List_of_fictional_robots_and_an...](http://en.wikipedia.org/wiki/List_of_fictional_robots_and_androids)

[http://en.wikipedia.org/wiki/Artificial_intelligence_in_fict...](http://en.wikipedia.org/wiki/Artificial_intelligence_in_fiction)

</comment><comment><USER3> If someone got pics of all these it would be much better.

<comment><USER4> [http://en.m.wikipedia.org/wiki/Orac_(Blake's_7)](http://en.m.wikipedia.org/wiki/Orac_\(Blake's_7\))

Is one picture covered and my personal favorite in looks and abilities.

</comment></comment><comment><USER5> A few months after watching _Colossus: The Forbin Project_ , I enrolled in a programming class, Fortran IV on the university's Burroughs mainframe. About the fifth or sixth time I showed up with my punch cards to find a notice that the computer was down for repair, I started to have doubts about the movie's plausibility.

</comment><comment><USER6> *List of awesome hostnames

<comment><USER7> I've taken a lot of awesomeness from that list [http://namingschemes.com/Psychotic_Computers](http://namingschemes.com/Psychotic_Computers)

</comment></comment><comment><USER8> I skimmed the lit section and interestingly, the Hitchhiker's Guide to the Galaxy seem to be one of the first personal devices. Prior to that, most of the references seem like "mainframes" with the most localized devices being ship computers.

</comment><comment><USER7> That's my favourite list [https://en.wikipedia.org/wiki/List_of_fictional_female_robot...](https://en.wikipedia.org/wiki/List_of_fictional_female_robots_and_cyborgs) for naming things.

</comment><comment><USER9> Good list, there were a few I hadn't heard of. Most notable omission, and among my favorite fictional computers: the Sophotechs from the Golden Age trilogy by John C. Wright.

</comment><comment><USER10> So which was the first one you came to think of when you read the title? Mine:

>Gibson, a type of supercomputer used to find oil and perform physics in Hackers (1995)

<comment><USER11> Mycroft, from _The Moon is a Harsh Mistress_.

Comedy answer: The Sentient Hyper-Optimized Data Access Network.

</comment></comment><comment><USER12> Two of my favorite stories on this list is "When Harley was One version 2.0", and "The Metamorphosis of Prime Intellect".

</comment><comment><USER13> they are missing W.O.P.R. from War Games (1983)

<comment><USER14> That's listed in films under 1980s.

Master Control Program, the main villain of the film Tron (1982)

WOPR (acronym for War Operation Plan Response, pronounced "Whopper"); War Operations Plan Response (addressed as "Joshua" by its creator), the NORAD nuclear war simulation computer from the film WarGames (1983), portrayed as being inside Cheyenne Mountain

Huxley 600 (named Aldous), Interpol's computer in Curse of the Pink Panther used to select Jacques Clouseau's replacement, NYPD Det. Sgt. Clifton Sleigh (1983)

<comment><USER13> oops I was looking in the Literature section

</comment></comment></comment><comment><USER15> The Borg from Star Trek TNG?

<comment><USER16> Eh, more of a hybrid cyborg type of critter. I _am_ surprised they didn't include Data, though.

They seem to be missing a lot of various AIs from the show, but I'm not sure it's worth listing them all.

<comment><USER17> So, you didn't actually read the page, then. Quoting:

        Only static computers are included. Robots and other
        fictional computers that are described as existing in
        a mobile or humanlike form are discussed in a separate
        list of fictional robots and androids.</comment></comment></comment>


Low cost biotech means ordinary folk can fund significant early stage research - <AUTHOR> http://www.fightaging.org/archives/2009/06/help-the-immortality-institute-fund-research-into-laser-ablation-of-lipofuscin.php

<comment><USER2> The cost of biotech comes from the risk associated with developing a therapeutic and the expense of managing clinical trials. Anyone who does not account for that, and the time it takes to go through regulatory procedures is just misguided. Yes the costs have come down (they always do), but the regulatory burden and risk are not going away anytime soon.</comment>


Exploit to get root on OS X 10.10 fits in a tweet - <AUTHOR> http://www.theregister.co.uk/2015/07/22/os_x_root_hole/ <comment><USER2> "Introducing a new command line feature to restore access after losing your password"...

<comment><USER3> I know you're making a joke, but it's trivially easy to reset the admin password on a computer.

[https://discussions.apple.com/docs/DOC-4101](https://discussions.apple.com/docs/DOC-4101)

<comment><USER4> Enabling FileVault is an easy countermeasure.

<comment><USER5> How so? FileVault is typically not tied to the root password, but to a primary user's password, which you don't even need root to change.

<comment><USER6> You cannot reset any user password on a FileVault disk because it's encrypted.

</comment></comment></comment></comment></comment><comment><USER7> I like to think of this as a good example of why not to use curl to execute bash scripts.

      curl -s https://raw.githubusercontent.com/nchelluri/rootyourself/master/doh.sh | bash

<comment><USER8> If you'd like to force yourself to at least look at a script before piping it in, there's shed [0]

[0] [https://github.com/mplewis/shed](https://github.com/mplewis/shed)

<comment><USER9> or vipe [http://joeyh.name/code/moreutils/](http://joeyh.name/code/moreutils/)

</comment></comment></comment><comment><USER10> I always get bummed out over @i0n1c's tweets, so many security issues that are just ignored by apple.

Anyone have stats on # of exploits per type of OS X. I would want to see how many known security updates were pushed during 10.6 era vs now. At least in the 10.6 era, the OS you were using ( if it was a previous generation) was still getting security updates.

<comment><USER11> It's really upsetting and ousting Forstall did nothing to revive or unify the iOS/OSX teams...

And it's easy to gloss over these issues when they're crafted into such a carefully and intentionally designed piece of modern art -- except many of the core libraries sitting atop that hardware are where such quality has been overlooked. I think that's the antithesis of the philosophy of 'detail' that arguably brought apple back from the brink last time...

Usability and simplifying processes is _great_ and all, but if enough of these issues seep in it could destroy the core assumption of quality which is what the company truly subsists on... Surely Cook must realize this by now? Desktop isn't the future, we know, but neglect advanced users and you only stand to lose relevance.

[edit] A slightly more crude analogy: it's a bit like dressing up a Ford Pinto in the body kit of a Ferrari -- you'll cross the line in style, but eventually you're going to get burned.

<comment><USER10> Maybe its an issue with scope, and targeting specific issues that people have. Couple of advance users have issues with security not a big issue, Taylor Swift has issues with payment of artists, next day issue is addressed.

I guess its the illusion of caring.

You would think that the core would need to be solid, while the outsides would be constantly polished. I don't believe the company has been on the path of quality since the release of 10.7-10.9 and the all the hardware issues that came through during that era, till now.

While i agree that desktops are not the future, and mobile is increasingly picking up momentum, mobile to me is like the horse with a blinding mask on, this is what you get, and ONLY this. Even more so with the case of Apple.

I guess I came around full circle to bite myself. I want new things with mobile, and I want there to be options. But at the same time I want something that is quality. Should I have to sacrifice one for the other? Or worse, wait forever to be able to do something, at which when i get it i don't even care anymore because I need to do something else now.

GNU looks so nice right now.

</comment></comment></comment><comment><USER12> Lots of exploits fit in a tweet. Lots don't. That really doesn't have anything to do with how "bad" or "trivial" it is.

</comment><comment><USER13> "'Apple ships fixes for security in beta versions of future products, but does not fix current versions,' Esser noted."

Is that really a thing? Apple doesn't ship security updates? Or is that just trolling?

<comment><USER14> Yes, Apple does not patch old versions of iOS or OSX.

All iPhone 2G, 3G and 4 are all vulnerable to root code execution flaws (some exploitable from the web browser) and do not receive updates.

<comment><USER15> Aren't all iPhones that can be jailbroken subject to root code execution flaws?

<comment><USER14> Yep. The 2G and 3G ones are particularly bad because there's a public toolchain that gets you from web browser to root, for the 4 and later you normally need USB access to some degree.

</comment></comment></comment></comment><comment><USER16> that's pretty bad. I just tested it, and it does, indeed work.

<comment><USER5> Remove the last line in your /etc/sudoers with visudo if you don't want permanent passwordless sudo on your account.

</comment></comment><comment><USER17> Pretty new to OS X, when will Yosemite expect a fix? Is El Capitan Beta stable enough to be a better bet?

<comment><USER18> You can never be absolutely sure with Apple, but for comparison, the Shellshock exploit was patched on OS X within a week.

</comment></comment><comment><USER19> sudo: unable to stat /etc/sudoers: Permission denied sudo: no valid sudoers sources found, quitting

</comment><comment><USER20> What is that domain? This is a Register post, here it was submitted as [http://www.theregister.stfi.re/2015/07/22/os_x_root_hole/?sf...](http://www.theregister.stfi.re/2015/07/22/os_x_root_hole/?sf=ekxly) which looks like social media tracking crap.

[http://www.theregister.co.uk/2015/07/22/os_x_root_hole/](http://www.theregister.co.uk/2015/07/22/os_x_root_hole/) is the actual URL.

<comment><USER21> Thanks. We changed the URL to that from [http://www.theregister.stfi.re/2015/07/22/os_x_root_hole/?sf...](http://www.theregister.stfi.re/2015/07/22/os_x_root_hole/?sf=ekxly). We banned stfi.re.

<comment><USER20> Thank you!

</comment></comment></comment><comment><USER21> Posted yesterday, but without much discussion: [https://news.ycombinator.com/item?id=9933639](https://news.ycombinator.com/item?id=9933639).</comment>


Terms of the Dune universe; excerpts from a reading by Frank Herbert - <AUTHOR> http://usul.net/books/sounds.htm <comment><USER2> Would rather hear him reading the complete text, rather than brief clips of proper nouns. It all sounds weird like that.

</comment><comment><USER3> I wish there was a reading of Dune by him. He liked to talk about how he wrote it to sound like oral history and to build with a verbal momentum but I don't know how that would sound if read as an audiobook.</comment>


Mike Arrington's Tax Notes - <AUTHOR> http://uncrunched.com/2012/09/19/mikes-tax-notes/

<comment><USER2> some context: this was written by a guy who moved from california to washington state -- a state with no personal income tax -- just before his company was acquired for tens of millions of dollars. i'm not implying anything, just giving some context.</comment>


Latency Arbitrage and the Problem with the SIP – A Primer - <AUTHOR> http://tabbforum.com/opinions/latency-arbitrage-and-the-problem-with-the-sip <comment><USER2> Spatiotemporal arbitrage will always be with us.</comment>


Show HN: Clockwise – Defragment your calendar, get more work done - <AUTHOR> https://www.getclockwise.com/landing/chrome <comment><AUTHOR> Hello HN!

I'm a co-founder and CEO of Clockwise, a tool that helps teams find more time for focused work by moving meetings to the best time for everyone, automatically. One of the canonical pieces of writing on this subject is Y-Combinator's very own, Paul Graham. [Maker's Schedule, Manager's Schedule]([http://www.paulgraham.com/makersschedule.html](http://www.paulgraham.com/makersschedule.html)) — Clockwise helps broker between these two types of schedules.

Clockwise is completely free while in beta; we'd love for you to give it a try and let us know what you think. Given that this is still a beta release, there are a few requirements:

\- Chrome only, for now

\- G Suite (business) calendar accounts only, for now</comment>


EJDB: Embedded JSON Database for C/C++, .Net, NodeJS, Python, Lua, Java, Ruby - <AUTHOR> http://ejdb.org/ <comment><AUTHOR> The disappointing thing about Tokyo Cabinet is that an empty database is six megabytes in size. Not good for embedded systems where space it short.

<comment><USER2> I don't think this targets embedded systems. I believe the term "embedded" is used to signal that the db is embedded inside your app, and not an external server daemon that you need to talk to over some protocol.

</comment></comment><comment><USER3> I love things like this. I generally work with JSON anyway when I'm doing one- off things like cron jobs, and I usually just keep my data in JSON flat files, so to have options like these really makes my life easier. Great job!

<comment><USER4> I fully agree; databases that store JSON (or something close to it) natively are really useful when your application mostly inputs and outputs JSON.

I feel there are too many JSON-store databases, though. Competition is good but it's been getting kind of ridiculous.

</comment></comment><comment><USER5> This looks awesome, but I find it odd how similar things on HN seem to pop up in bunches. It's as if once one thing hits HN, a very similar thing is automatically submitted and promoted to front page. It's a fairly strange social dynamic to be sure.

<comment><USER6> People want karma points so if they see something is of interest to the crowd, you get more of it.

<comment><USER7> Why would anyone want karma? Really interesting.

<comment><USER8> Personally I'd like to have enough to be allowed to downvote. Not exactly my top priority, but it'd be nice.

</comment></comment></comment></comment><comment><USER9> I think one of the key points is being able to run the "same" lib in different programming languages. This is a model of thinking that need to be followed as much as possible. If not, we are rounding in circles with zillions of libraries created for Javascript that already are present in other programming languages the energies end up unfocused. At the same time we need tools that help us in this approach, like HaXe or SWIG.

One lib that I love is NetworkX, If you look at the source code it can be easily ported to more programming languages. At the same time it is impressive what Cocos2D achieved with their Javascript bindings and HTML5 native support.

</comment><comment><USER10> I was just asking the other day on #python if there was a nosql embedded DB like sqlite. I will _definitely_ be checking this out. Might make things like my one-off test web scraping much easier.

<comment><USER11> [http://www.reddit.com/r/Python/comments/1bap6u/embedded_docu...](http://www.reddit.com/r/Python/comments/1bap6u/embedded_document_store_eg_mongo_for_a_python/)

<comment><USER10> Lots of good links in there. Thanks!

</comment></comment></comment><comment><USER12> I discovered this a few weeks ago and realized it might be a great fit as a data store for a 'local, self-contained' web application. That is, a web app that is meant to run locally & in the browser (like IPython Notebook) but needs a database for local persistence, without the complexity of using the filesystem for storage. It's basically the benefits of SQLite with a simpler, NoSQL interface/design.

</comment><comment><USER13> It is based on Tokyo Cabinet (which is under LGPL).

On the homepage of Tokyo Cabinet, it says:

"BTW, do you know Kyoto Cabinet? Actually, it is more powerful and convenient library than Tokyo Cabinet. At this distance of time, Kyoto Cabinet surpasses Tokyo Cabinet in every aspects. I strongly recommend you to use Kyoto Cabinet."

I wonder why that isn't used. Maybe because Kyoto Cabinet is under GPL.

<comment><USER14> Indeed, this is probably the reason. The company that developed ejdb (Softmotions) apparently uses ejdb in their own proprietary software, and they wouldn't be able to if it contained any GPL components.

</comment></comment><comment><USER15> This is awesome, I'm wondering how it performs for the average web app. Are there benchmarks load tests anywhere?

<comment><USER3> Just off my basic understanding of how the database works, I don't believe a production web app would be a very appropriate use-case, since considering it's an embeddable database you'll be bound by the slow filesystem. Mysql/postgres or mongodb would be better options. This is more for self- contained applications such as cron jobs or utilities.

<comment><AUTHOR> Really? I'd be interested to hear why it can't be used as a web server database.

<comment><USER3> Again, I must offer a disclaimer that I only read a fraction of the total source code, but I would assume it would involve similar use-cases to sqlite [1]. For example, IIRC, the Firefox web browser uses (used?) sqlite for storage. However, reading over the list I just referenced, I must correct myself and say that for _most_ websites, you would probably be ok in using it; however, this seems to be an embeddable replacement for mongodb, which is typically used for high-traffic environments anyway. I'm coming more from a background of high-traffic sites with large datasets, so I typically rely upon more tailored solutions, but I should be careful not to see everything through my own narrow perspective!

[1] [http://www.sqlite.org/whentouse.html](http://www.sqlite.org/whentouse.html)

</comment></comment></comment></comment><comment><USER16> Very nice. I'm writing a Python app where this would come in very handy. Can't wait to try it out.

</comment><comment><USER17> (Maybe silly) question: if we're talking about the node implementation, why use this over mongodb?

<comment><USER18> Embeddable databases are nice and portable. It's like Sqlite versus Postgres - the latter may be more robust, but requiring it as a dependency greatly increases the effort needed to deploy your software. If an embedded database can do the job, it may be worth it as a matter of convenience.

<comment><USER17> Thanks!

</comment></comment></comment><comment><USER19> This looks interesting.. I have used nedb on a small project, That is another file based database, uses the same API as mongoDB. nedb is just an npm, so its only nodejs supported right now, and the feature list of EJDB looks more impressive anyway.

</comment><comment><USER20> Would be pretty cool if replication can be achieved

</comment><comment><USER21> So you've got C/C++, .Net, NodeJS, Python, Lua, Java, and Ruby covered ... but PHP is a no go?

Why not change it to we're on everything but PHP? Seems more succinct.

<comment><USER22> I'm not sure how to say this without being inflammatory ... there is a universe outside of PHP, and PHP is not at the center of that universe.

<comment><USER21> > there is a universe outside of PHP, and PHP is not at the center of that > universe.

There is only one universe and PHP is a part of it. A big part. That's the reality.

Some of us have to work on multiple platforms with multiple languages and it's truly a _disappointment_ when the authors clearly put in an effort to cater to the community where multiple platform support is prioritized ... but then exclude a platform due to personal bias.

That makes this project a no-go for me.

<comment><USER3> I would say start treating the authors with the respect that they, as human beings, deserve. I too would like PHP support, but, if it's not there, I can still appreciate the _hours and hours_ of labor that go into the support they do have. There's an expression "if you don't have anything nice/constructive to say, then don't say it," and claiming that it's a "disappointment" that they don't include your feature, and even going so far as to presume it's out of personal bias, is just rude.

Edit: Besides, if you're running php, you're probably developing a web app, in which case you should be using a database like mysql or mongodb anyway, not an embeddable db.</comment></comment></comment></comment>


Steps to disillusion a young scholar - <AUTHOR> http://www.apps.org.za/index.php?option=com_content&task=view&id=22&Itemid=9

<comment><USER2> It's not just academia. It's society-wide.

The whole thing in macroeconomic policy about optimizing economies for "GDP growth" is similar. Spend a million on healthcare, GDP goes up by a million. Spend a million on science, GDP goes up by a million. Spend a million on war, GDP goes up by a million. Spend a million on building a giant mountain out of rubber dog shit, GDP goes up by a million. See the problem? GDP is a value- neutral statistic.

The quantity-not-quality publish-or-perish mentality in academia is exactly the same. Quantity and impact of publication is a value-neutral opaque statistic like GDP, and optimizing for such statistics yields economies of ritualized masturbation.

To make matter worse, optimizing for GDP growth in economics or for quantity/impact of publications in science might be like measuring the quality of a computer programmer by lines of code written. Wouldn't an economy that can deliver an equivalent standard of living _using less money_ be a _better_ economy? It would be more efficient, more sustainable, etc. I know a scientist who authors a few awesome ground-breaking papers is a lot more interesting than a scientist that churns out endless papers about minutia.

<comment><AUTHOR> Agreed. This is from a book that describes how professionals are made, how they are indoctrinated (which isn't a too harsh word to use about the educational system). Yet, the educational system is also about creating individuals who will follow their employer's outlook and doctrine thereby working to create profit.

It's all about the money. Sadly.</comment></comment>


Please stop building schools in Iraq and Afghanistan - <AUTHOR> http://mattsteinglass.wordpress.com/2009/05/12/please-stop-building-schools-in-iraq-and-afghanistan/

<comment><USER2> I've been in Iraq and Afghanistan since 2003.

There are a lot of issues with the way aid is distributed. The most successful parts of both places, the wireless networks and decentralized power systems, have been totally market driven, and actually hindered more by centralized efforts and regulation than helped.

Somalia, where it is too dangerous and chaotic for aid agencies or telco regulators to operate, has cheaper Internet access and mobile calling than almost anywhere else in Africa or the developing world!

Communications infrastructure (roads, signals/fiber/wireless, electrical grid) is one of the few areas where scale can be helpful. In Afghanistan there is a lot of money coming through the military to pay for a road network (with benefits to both the foreign militaries and the local economy; dual use technology at its best). Communications is basically wireless backed by satcom, with some microwave backbone and upcoming fiber, with microwave/fiber driven by military and government customers paying top dollar, then going out to connect up the cell systems. For $20/mo you can buy 3G service.

One of the biggest issues in Afghanistan is that aside from the US Military, the other US funding agencies (primary US AID) have to operate through local contractors, and a rather inefficient process which leads to overpaying for everything, and thus not accomplishing enough concentrated change to be successful. The "Provincial Reconstruction Teams" are afraid to go out except with a huge military presence, and are pretty sheltered from everything, whereas I was riding around in an old pickup truck with a 9mm and no problems.

Irrigation systems are probably the next thing to do after roads (the military has roads under control); these can be done for $5-12k each by local labor, and 20-30 systems per district, all in parallel -- or, you can pay $500k via US AID and get 1-2 systems done after 2 years. The US AID requirement to use local contractors is "trickle down economics" -- basically the hope is that paying an Afghan with political connections $500k to do work will lead to $500k staying in the local economy, paid in wages to other Afghan laborers, etc. It turns out it turns into the connected Afghan spending the same $5-10k to get the project done, and then buying $490k in real estate in Dubai or Canada.

Government and government contracting is the opposite of the startup world in every way. Very few people seem to have done both.

</comment><comment><USER3> That's a bit of a silly comment on the page. Halliburton, Sodexho, Serco (et al) schtick _is_ services. They would happily train teachers if that was what the government paid them taxpayer's money to do.

<comment><USER4> That was my comment and as soon as I posted it I realized my mistake of not mentioning that the military/industrial complex _typically_ doesn't make money off of training teachers or the like. It is much more common and easier for them to build buildings and reap the financial rewards that way. In a perfect world; if our tax dollars are going toward rebuilding a country; they would be used for "services" like training teachers and other things that would truly benefit the area in the long run. Unfortunately the current system is setup for money laundering and profit so my hope is slim that real progress will be made in these areas.

</comment></comment><comment><USER5> _edit_ Just read the original post, and the poster there makes much better points, basically noting that Aid can't be divorced from the overall security plan, or it will be wasted. Restating this as "Don't build schools in Iraq" is, IMHO misleading link bait.

Two points in opposition to this,

#1: Most charities and NGO's that build schools also include yearly stipends to fund teachers and supplies. I don't have a cite for this with me, I'll track down a reliable source later to be sure. I know for instance that Greg Mortenson's does. Most also do independent audits every few years.

#2: In many of the most isolated areas, even if they 'know how to build buildings', local custom requires gender segregation, and building a girls' school isn't a budget priority, but if someone else pays for it, families will gladly send their children to school. Some areas of rural Afghanistan and Pakistan have had skyrocketing rates of female education once additional schools were built.

As with any foreign aid, throwing money at the problem isn't the answer (and lucrative large-scale construction projects rarely are either), it's how the aid is deployed and used. The most effective aid organizations are almost without fail also the ones that require the most accountability from recipients.

</comment><comment><USER6> A nice read about this is "Three cups of tea".

There's a passage in there that goes something like "Thank you, Dr. Greg, for offering to help us build a school. We talked about it and before we build the school, we decided we need to build a bridge." So they built the bridge instead...

<comment><USER7> It's important to remember that after building the bridge, they then built the school. In fact, Greg Mortenson's organization (The Central Asia Institute) has built dozens of schools since then. It's been a while since I read the book, but as I recall, in that particular village, they had at least one teacher, but the children had to study outside until the school building was completed. (I also recommend "Three Cups of Tea". It's not as well written as, say, Tracy Kidder's "Mountains Beyond Mountains", but it doesn't matter, the story pretty much tells itself.)

<comment><USER8> _not as well written as, say, Tracy Kidder's "Mountains Beyond Mountains"..._

This is the second time I've seen Kidder's work mentioned here in the last few days [1]. I've read and enjoyed _Soul of a New Machine_. Would you recommend any of his other books?

[1] <http://news.ycombinator.com/item?id=601903>

<comment><USER7> _Mountains Beyond Mountains_ is the only other Kidder book I've read. It's certainly worth a read, but it's a really different book from _Soul of a New Machine_ , just by subject matter if nothing else.

</comment></comment></comment></comment><comment><USER9> I can't help but feel this is a very broad pattern that happens all the time.

"Hardware is always easy to built. Software is always hard to written except trivial case. Wetware is always expensive just for a competent one."

<comment><USER10> We see that in analytics all the time.

"The numbers are being collected, why would I need somebody to analyze them?"

</comment></comment><comment><USER11> I think the question to be asked, is the question of if it is in the self- interest of the American taxpayer to subsidize schools in Iraq and Afghanistan. Now, this is hard to answer. On one hand, it is unclear how more schools in these countries serve our national interest. On the other hand, without education, young people are more privy to fall into the brainwashing of terrorists. So one could make the argument that if one spends on education, that enhances national security by having more educated people in these unstable countries and therefore fewer people who are possible recruits for terrorists. I guess it is all in the way one does it, if one builds schools with good oversight (i.e. overseen by the coalition and Iraqi/Afghan governments) then one could perhaps justify that. However, if there is no oversight, then who knows what kind of stuff might end up getting taught there. We obviously don't want to spend our tax dollars building schools only so that religious extremists can teach in them. The same is true incidentally in the United States. Government vouchers for private schools are wrong, because these private schools often teach nonsense like Intelligent Design, which to my mind is the Ultimate-747-In-The-Junkyard-As-Designer theory and merits no serious consideration, let alone our tax dollars. So if there is a self-interest in our national security in helping with education in Iraq and Afghanistan that may be justifiable, provided there is strict oversight, and if there is no oversight then it is a no go. Similar to how education here at home should not have tax dollars going to private religious agendas. Ideally of course I think states, and not the federal government, should handle education, since this is an issue of federalism, but that is another issue than the present discussion.</comment>


Why we moved away from "the cloud" to a "real" server - <AUTHOR> http://blog.boxedice.com/2009/09/08/why-we-moved-away-from-the-cloud-to-a-real-server/

<comment><USER3> _The only way we could increase our available storage was to increase the instance size._

I use Rackspace Cloud and have found other alternatives. If they just need more storage, Rackspace Cloud Files (similar to Amazon S3) would work (though it is not mountable to server instances). If they needed an infinitely scalable MySQL database for that historical data, they could use Rackspace Cloud Sites (similar to MediaTemple).

What's nice about Rackspace is that you can have Cloud Server instances, Cloud Sites (managed cloud hosting), Cloud Files, and dedicated Rackspace servers all in one place.

<comment><USER4> Well that sounds highly non-redundant. Putting your eggs in one basket is never really a good idea. Especially when Rackspace has had some major outages this year.

<comment><USER3> I didn't say that I _only_ used Rackspace. In fact, I have a cluster of cloud servers on Rackspace, GoGrid, and Amazon because each has its advantages.

</comment></comment></comment><comment><USER5> > _Further, since we process customer card transactions through our servers > (we collect details on our site but do not store them ourselves), we have to > be PCI compliant, something that Amazon EC2 is not._

Once I got to this point all I could wonder is why they bothered to crunch all of those numbers if Amazon EC2 was already fundamentally incompatible with what their business needed. Seems like a waste of time.

<comment><AUTHOR> You'll notice that the PCI incompatibility was only recently confirmed - <USER2> Aug 2009.

Also, the card processing could easily be hosted elsewhere with the rest of the app on EC2. It just works out better not to do that at the moment.

</comment></comment><comment><USER6> User in One size doesn't fit all shocka!

it's really important to work the figures as seen in the article. We use EC2 but for certain scenarios we worked out that hardware would be cheaper. The bandwidth costs in particular can sneaky.

All that said I would be prepared to pay quite a premium for using Ec2, especially in conjunction with Rightscale, just for the shear convince and the ease with which we can re-configure and adapt.

</comment><comment><USER7> Its very interesting, when you're working for a startup. To read information like this. Its got me thinking about the 'cloud' and whether my company needs it for its product. This was invaluable.

</comment><comment><USER8> Cloud servers are for bootstrapping only.

<comment><USER9> Batch processing jobs or other "spikey" workloads.

<comment><USER10> The main savings people seem to get from cloud computing is by not paying for servers when you aren't using them. There are some economies of scale that the cloud vendors can take advantage of, but in general it seems like the administration costs of those are greater than the savings for constant work loads.

<comment><USER11> speaking as someone who has personally built several hundred servers over the years, and who has managed several tends of thousands of servers for others, I would argue that there is a sort of 'reverse economy of scale' operating in the hardware market.

Now, I'm on the technical side of things except at my own company, where I am everything, so my views on what the 'enterprise' pays are second hand, that is, what the boss tells me when I tell him that 'x amount of ram would solve your problem, and would be cheaper than the Y days of sysadmin time we are spending on it'. But these are my impressions:

Unlike the desktop market, all the large-scale server VARs have a 'sliding scale' where the larger you are, the more you pay. And even if you pay 'small business' rates to dell for your servers (which are much lower than 'enterprise' rates, from what I see) you still end up paying 3x-4x what I pay buying the parts and building the server itself.

Even if I charge you $500 for building the server (which is gouging, but if you wanted support, that's probably what I'd ask.) I could sell you a 32GiB ram, 8 core 2.2Ghz shanghai for $2000 before disk. For another grand I could build you the same server with 64GiB ram. Compare that to anything from dell.

edit: I don't actually sell anything that isn't a 'service' so I don't have a retail license. when I build people servers, I have them buy the parts, then I charge them a fee for labor and support.

<comment><USER12> _Unlike the desktop market, all the large-scale server VARs have a 'sliding scale' where the larger you are, the more you pay._

I suspect this is somewhat true, but if you don't abuse your salesperson too much you can probably negotiate those prices down. Also, at really large scale (1,000 servers?) you can buy the super-cheap "off the menu" servers like iDataplex and Dell DCS.

<comment><USER11> from what I've seen, you get DCS at the 'few hundred servers a year' range, and they are still way more expensive than the parts + my theoretical $500 assembly charge. (granted, they are still a better idea than building it yourself without ESD protection.)

I don't negotiate, I'm just going on what the boss told me the things cost. And cost per server matters a lot, I mean, my entire business model is predicated on the idea that I can get registered ecc ddr2 ram for $20/gigabyte, and that I can cram a whole lot of it in a server. when I try to recommend similar things to a client who pays more for ram, my model just doesn't work.

</comment></comment></comment></comment></comment></comment><comment><USER13> It's even cheaper if you build your servers yourself and colocate them at a datacenter. Of course, not every company has a sysadmin, but if you do, you will save a bundle. This also means supporting them yourself, though, which at times can suck a fat one.

At Clicky, we have almost 30 servers, all of which we built ourselves. Up front cost is about $1500 per server, and monthly cost is $75 each. If we were leasing servers of similar capacity (RAID, 8GB+ RAM each) they would cost us a minimum of $400 per server per month, which would total close to $12,000 per month. By doing stuff ourselves we instead pay around $3500 per month (~$2000 hosting, and approx. 1 new server installed per month). That's serious money in the bank. I'm not counting sysadmin salary in that figure though, because I _am_ the sysadmin. Still, if you have the capability, it's worth it.

<comment><USER14> _I'm not counting sysadmin salary in that figure though, because I am the sysadmin._

I think your accounting technique needs to be refined.

The time which you routinely spend each month, setting up and updating these systems, is a cost.

When a system goes down and you must drop whatever you're doing to fix it, that context switch is an additional cost. Especially if it costs you a night's sleep. You might lose days of productivity on your regular job.

When something happens that you didn't foresee, and that you have no experience with -- you are, after all, only a part-time sysadmin, not a professional cloud administrator -- and you have to spend days reading manuals and nagging Dell vendors on the phone, that's a cost. One that is easy to overlook in advance (who likes to sit around, dreaming up the improbable but scary ways that your systems might fail?) but which is very real when averaged over time.

And when you get tired of playing sysadmin in your spare time and decide to stop -- perhaps by quitting your job -- replacing you is going to cost your company a fortune, especially if they end up hiring the wrong person, who accidentally corrupts two years' worth of backups and then drops the main database. The thing about paying (e.g.) Amazon is that it isn't just a way of hiring a competent part-time sysadmin. It's also an algorithm for hiring a _series_ of _future_ part-time sysadmins: As long as you keep paying Amazon, they will probably keep finding and hiring the right people. (They are, after all, more experienced at finding good sysadmins than you are.) Or, if they fail at that task, perhaps one of their thousands of other customers will discover that fact before you have to, and you'll hear the news early enough to make a clean and event-free migration to another provider.

<comment><USER9> Paying Amazon does not negate the need for a sysadmin!! Someone still needs to manage all of the software, os, networking and upgrade stuff. Only the hardware part is taken care of for you (which is a relatively small amount.)

<comment><USER14> _Paying Amazon does not negate the need for a sysadmin!!_

I didn't mean to suggest that it did. Administering Amazon is a big part of my job at the moment. It's a lot of work.

Bare-bones Amazon is a poor example. I should have picked, e.g., Engine Yard: someone at least one step farther up the food chain.

And, even then, I'm not suggesting that hiring a cloud host will make these concerns magically go away. I'm just suggesting that _any_ argument which assumes that these concerns have magically gone away -- rather than specifically addressing them -- is leaving something out.

Meanwhile... it's a mistake to say that Amazon takes care of "only the hardware part". That's like claiming that a car company only takes care of "the hardware part" because you still have to learn how to drive in order to use their product.

Among other things, Amazon provides an abstract interface for provisioning hardware. They provide a standard platform that lots of people know how to use, so that you can install pre-configured AMIs, follow canned recipes, run third-party utilities for managing EC2 hardware, ask questions on Stack Overflow, or hire people who are guaranteed to have experience with your exact platform. And they provide the ability to rent variable amounts of hardware by the minute.

One thing which I expect to see on the scene any minute now are third-party hosting providers who provide similar services to Amazon _with a compatible API_ , so that tools used for managing EC2 instances can be run transparently against the new host.

<comment><USER9> You're right in that they take care of the hardware part and the hardware provisioning part.

Even with EY you have to administer anything non-standard yourself (at least that was my experience with a former employer.)

I am saying that Amazon takes care of "only the hardware part" in the same way that a trucking company might lease its trucks. Sure, maintenance, part fulfillment, repair and truck acquisition are taken care of by the leasing company, but the bulk of the business is in the logistics and operations.

I am pro-EC2 for a large class of problems, and just recommended cloudfront/s3 to a friend last night. But some people have this fantasy scenario where the cloud is a magical place where applications can live and scale horizonatlly, and the reality is that Amazon offers a _very good_ starting ground on which to build and administer your systems. (As you know.)

I think we're largely in agreement. I apologize for minimizing the amount of legwork that Amazon takes care of for you in an attempt to stress the amount of work that still remains.

<comment><USER15> This interchange is the model of informative civil discourse.

</comment></comment></comment></comment></comment></comment><comment><USER16> What an imbecilic name for a company</comment>


Ask HN: Is it always difficult to find co-founders? - <AUTHOR> Does everyone here feel it's super difficult to find the right co-founders at the right time? I attended top universities, worked at FAANG, have strong networks, but still find it super difficult to find a co-founder at the right time, with the right culture fit and with the right interests on the startup I'm working on.<p>Any hacks would be really appreciated! <comment><USER2> I'm always confused by questions about finding co-founders... Why do you need to find a co-founder? When it doesn't happen naturally, why not go it alone?

<comment><USER3> Agreed. It's often said that being a solo founder is harder than having a co- founder and you'll face more challenges - fundraising issues, heightened stress, knowledge gaps, etc. And those are pretty true. But all those problems pale in comparison to the ultimate problem, a broken co-founder relationship that can't be repaired because you never had a strong connection in the first place.

It's certainly possible to "force" a co-founder relationship, but you've gotta be prepared to spend a lot of time making sure it's the right fit. Unless you have a pressing reason for finding a co-founder, that time could probably be better spent building or selling instead.

</comment></comment><comment><USER4> For me it was that the business could only exist in the intersection of our respective skill sets, and would have been impossible otherwise. This made it feel like a natural fit.

Neither of us went to top schools or worked at well known places (we're both slackers at heart) but we were good in our respective niches.

We've not executed anywhere near as good as we should have but we still have no competition which has allowed us to survive quite a few mistakes and outright screw-ups.

I don't think we would have got as far as we have if it was a case of one person following another persons vision. We may have a totally different perspective on how to get to our end goal (which causes lots of conflict), but our vision of the end goal is very similar and has been from the beginning. This kept us going through some really hard times.

If I had to offer advice(which I'm not because everyone has a different experience) I'd say don't look for someone to work on your startup with you. That's what employees are for. Make sure that it's clear you're looking for a co-parent and not not an au pair.

But that's just my experience and I've got more questions than answers. I'm pretty sure there's no silver bullet though.

</comment><comment><USER5> I've found my past cofounders at hackathons like Startup Weekend and in general, around tech events and meetups focused around startups and entrepreneurship. From there, we worked on fun side projects together and eventually started companies with each other.

It isn't the worst thing ever to be a solo founder. In fact, I'd recommend you reframe your goal as, "I need to find someone with domain expertise in X, Y, or Z," instead of "I need a confounder." You're very likely to find someone who can help you with a few hurdles who might not necessarily be interested in having the weight of a company on their back. It's also less of a burden for you too since you can take your time vetting and won't be jumping into a "marriage" as it's often related to. ;)

Out of curiosity, what stage are you in? What skillset do you have? What areas could you use some extra hands in?

</comment><comment><USER6> It's like finding a spouse - you've got to date a little before deciding and also remember they're also judging you - so perhaps asking yourself how can I be found is the right approach to take instead of sticking to your checklist like culture fit etc.

</comment><comment><USER7> I can relate to this 100% In a lot of cases, it's that the other person doesn't feel strongly about an idea or is risk averse.

I am still looking for a cofounder. Top public uni... interned at great places and now working at a well-known late stage startup in the Midwest. Want to chat? sauzciok at outlook dot com. Hit me up.</comment>


Updating Deeply Nested Attributes with RSpec - <AUTHOR> http://noelworden.com/2017/10/04/nested-attributes-rspec/ <comment><USER2> I gather because you linked to FactoryGirl, that you are using it, so you might want to take a look at FactoryGirl#attributes_for. This should tidy up the large post body text, and also help the Law Of Demeter issues with variables like @mms_price.</comment>


PHP Framework Comparison (callgrind maps) - <AUTHOR> http://phpixie.com/blog/php-framework-comparison/

<comment><USER2> I don't see the point of this benchmark.

Was the file cache (apc) on? What features were enabled on what frameworks? Default configurations or production ready?

From my experience, raw framework speed doesn't matter much anymore. It can easily be improved by disabling features, utilizing caching, switching to SSDs, etc.

</comment><comment><USER3> Comparing frameworks using the callgrind maps doesn't really say a thing in terms of performance. The relative weigh of parts _inside_ the framework can be visualized, though you can not conclude by any means framework A is slower than B based in these figures.

<comment><USER4> Definitely not, but is interesting to take a look and see what's going on inside - and where each framework tends to concentrate its "energy".

</comment></comment><comment><AUTHOR> This post was a followup to this one: <http://phpixie.com/blog/php-framework- benchmark/>

It's the one that has texts with opcache (XCache) etc</comment>


Peak Oil, a Specimen Case of Apocalypic Thinking - <AUTHOR> https://spectrum.ieee.org/energy/fossil-fuels/peak-oil-specimen-case-apocalypic-thinking <comment><USER2> I remember lurking around the oildrum.com back in the day. At least they folded up shop, which I can respect, but there was a lot of good discussions on there.

</comment><comment><USER3> [https://www.youtube.com/watch?v=GIpm_8v80hw](https://www.youtube.com/watch?v=GIpm_8v80hw)</comment>