The mysterious case of the Linux Page Table Isolation patches - <AUTHOR> http://pythonsweetness.tumblr.com/post/169166980422/the-mysterious-case-of-the-linux-page-table <comment><USER2> Looks like it is speculative execution based, and does not affect AMD

[https://lkml.org/lkml/2017/12/27/2](https://lkml.org/lkml/2017/12/27/2)

AMD processors are not subject to the types of attacks that the kernel page table isolation feature protects against. The AMD microarchitecture does not allow memory references, including speculative references, that access higher privileged data when running in a lesser privileged mode when that access would result in a page fault.

Disable page table isolation by default on AMD processors by not setting the X86_BUG_CPU_INSECURE feature, which controls whether X86_FEATURE_PTI is set.

<comment><USER3> I guess Intel decided to speculate data access regardless of privilege level of the target address, with the theory that what has been successfully speculated can't be accessed anyway before the permission are really checked, and somebody found a bug (or given all Intel processors are taggued as unsecure, maybe a quasi-architectural hole) that let read the speculated data or a significant subset or trace of it.

My wild guess is that you can read a good portion (if not all) of the memory (or a significant subset or trace of it) of the whole computer from unprivileged userspace programs.

<comment><USER4> One possible vector suggested by Matt Tait (pwnallthethings) on Twitter: if speculative operations can influence what the processor does with the cache, the results can be observed with cache timing attacks. If the branch predictor reads the results of speculative operations, it's _real_ easy, as he suggests here:

[https://twitter.com/pwnallthethings/status/94797892728438374...](https://twitter.com/pwnallthethings/status/947978927284383744)

but (as he notes elsewhere) there are plenty of other channels in an Intel processor for information to leak...

<comment><USER5> my guess is that the cache tags or tlb entries loaded on failed speculative accesses are wrong (maybe the valid bit is set but the address wasn't changed, or the user/supervisor protections are munged), that could leave you with a cache line or page tagged as user accessible but really protected kernel data

</comment></comment></comment></comment><comment><USER6> If true, this is pretty huge. As if the AWS "You blew through your budget" emails right around midnight of New Years were only an appetizer.

Edit: AWS Spurious Budget Email Barrage: [https://www.reddit.com/r/aws/comments/7ndvli/anybody_get_spu...](https://www.reddit.com/r/aws/comments/7ndvli/anybody_get_spurious_aws_budgets_alarms_early_on/)

<comment><USER7> I missed what happened with AWS? Any details

<comment><USER8> not sure on exact details, but I received one as well, on a free-tier account I had sitting around with an empty dynamodb table that was showing very high projected usage. it was enough that I logged in immediately thinking that account had been hacked.

nope, still empty table, deleted it and went to bed. glad I wasn't the only one who got that.

<comment><USER9> Same here. Mine was on standby so I terminated it.

I wasn't sure what was going on so I nuked everything cancelled my account and will hope for the best.

<comment><USER9> Amazon sent me an email this morning (Jan 3, 2018) to say I have a bill but I had already cancelled my free account. I can't see what I owe (hopefully zero dollars) because my account is now non-existent.

One tiny Ubuntu instance I barely used and then put on standby. Then terminated.

Ugh :(

</comment></comment></comment></comment></comment><comment><USER10> This may or may not be related, but there is a Xen advisory embargoed until Thursday (see [https://xenbits.xen.org/xsa/](https://xenbits.xen.org/xsa/)) and I am aware of at least one VM provider who scheduled emergency VM reboots across their entire fleet this week because the issue cannot be addressed through hot-patching.

<comment><USER11> I got around 10% of our Xen instances scheduled for reboot on Jan 4th, mostly long running instances. It's the first time I've seen that many instances scheduled at once.

<comment><USER12> Also got a large number of instances with scheduled reboot on Jan 4th in older AZs.

</comment></comment></comment><comment><USER13> IMHO, with RowHammer, the hardware is broken and it will continue to be broken until users complain enough --- maybe to the point of absolutely refusing to buy --- that the manufacturers and designers stop thinking "works 99.9999999999% of the time" is good enough: [https://news.ycombinator.com/item?id=12410274](https://news.ycombinator.com/item?id=12410274)

<comment><USER14> The current miniaturization of DRAM circuitry doesn't really allow for a hardware fix for the RowHammer attack. During DRAM manufacturing a test similar to the RowHammer attack exists. This test has certain bounds for passing. If the bounds were tightened up to the level of perfection to prevent the attack it would drop the yield a considerable amount.

<comment><USER13> _If the bounds were tightened up to the level of perfection to prevent the attack it would drop the yield a considerable amount._

The fact that DRAM older than a few years is effectively immune to RH suggests it is possible to manufacture such. Yes, it will cost more, but I think many would be willing to pay for it like they used to, for none other than the assurance of having more reliable memory.

<comment><USER15> Isn't the problem related to the capacity of current memory modules? So you can have, say, a 32GB module that's vulnerable or a 8GB module that isn't? (Assuming the 8GB module uses lower density DRAM chips)

<comment><USER16> A new 8GB DIMM module has about 1/4 the silicon area of a new 32GB module and the same density (often 1/4 the number of identical chips); only an _old_ 8GB module, made with an entirely different process, would have larger and less dense safer DRAM cells.

<comment><USER15> Yeah, that's why I included the qualification

</comment></comment></comment></comment></comment></comment><comment><USER17> Guess: it is not directly related to RowHammer/DRAM, and is purely a CPU issue. Maybe PageFault timing info leaks or cache timing, like this pwnie award winner: [http://www.cs.vu.nl/~giuffrida/papers/anc- ndss-2017.pdf](http://www.cs.vu.nl/~giuffrida/papers/anc-ndss-2017.pdf)

If this last one can defeat ASLR, imagine leaking bit by bit from a co-hosted VM, to extract secrets of other cloud customers… This is the reason anyone serious about cloud security will reserve instances so that they won't share physical hardware with other customers (think EC2 dedicated instances).

<comment><USER17> Addendum: I know in most modern CPUs the memory controller is on-die, so my comment is partially wrong (RowHammer is definitely a SoC issue).

Also, if you're interested in this type of things: _Armv8.4-A adds a flag … indicating that you want the execution time of instructions to be independent of the data._

[https://twitter.com/agl__/status/927929410321244160](https://twitter.com/agl__/status/927929410321244160)

Now the primary source seems to have been edited(why?)… But webarchive still has it:

 _Data Independent Timing

CPU implementations of the Arm Architecture do not have to make guarantees about the length of time instructions take to execute. In particular, the same instructions can take different lengths of time, dependent upon the values that need to be operated on. For example, performing the arithmetic operation '1 x 1' may be quicker than '2546483 x 245303', even though they are both the same instruction (multiply).

This sensitivity to the data being processed can cause issues when developing cryptographic algorithms. Here, you want the routine to execute in the same amount of time no matter what you are processing – so that you don't inadvertently leak information to an attacker. To help with this, Armv8.4-A adds a flag to the processor state, indicating that you want the execution time of instructions to be independent of the data operated on. This flag does not apply to every instruction (for example loads and stores may still take different amounts of time to execute, depending on the memory being accessed), but it will make development of secure cryptographic routines simpler._

[https://web.archive.org/web/20171107164628/https://community...](https://web.archive.org/web/20171107164628/https://community.arm.com/processors/b/blog/posts/introducing-2017s-extensions- to-the-arm-architecture)

The scope seems limited to ALU, so not really related to the TLB thing we have here. Also, it's still very far away, I'm not sure its predecessor Armv8.3-A is even shipping to customers yet.

</comment></comment><comment><USER18> I'm confused about the TLB impact. The pythonsweetness link claims these patches now require TLB flushes when crossing the kernel/user boundary, but the description of KAISER @ lwn[1] suggests that these flushes are unnecessary with "more recent" processors supporting PCIDs. How recent is "more recent", and is the PCID support likely to be ported back to earlier kernels along with KPTI?

TLB flushes for syscalls would be absolutely brutal for many performance- critical applications.

[1] [https://lwn.net/Articles/738975/](https://lwn.net/Articles/738975/)

<comment><USER19> If the problem is row-hammer style attacks on the TLB that let you map userspace writable pages into the kernel address space then any kernel entries remaining in the TLB when userspace is running are going to be a security hole. The problem won't be a process writing to the kernel entry (that would be forbidden by existing code / hardware) but a process updating it's own TLB entries in ways that corrupt adjacent kernel ones. PCID doesn't help you here - indeed it hurts, because it means there are more TLB entries from the hypervisor or other virtual machines remaining in the TLB to be corrupted!

(Unless I have entirely the wrong end of the stick about this?)

<comment><USER20> I don't think rowhammer style attacks are possible on TLBs, since they are SRAMs (CAMs, to be precise), not DRAMs.

<comment><USER21> I took OP to mean "rowhammer style" in the sense of a chip operation having unexpected physical effects on nearby transistors; not an attack literally identical to rowhammer.

<comment><USER19> Yes, that was my intention. Probably could have been clearer.

</comment></comment></comment></comment></comment><comment><USER22> This is probably a better link:

[https://lwn.net/SubscriberLink/741878/eb6c9d3913d7cb2b/](https://lwn.net/SubscriberLink/741878/eb6c9d3913d7cb2b/) ([https://news.ycombinator.com/item?id=16001476](https://news.ycombinator.com/item?id=16001476))

</comment><comment><USER23> Usually I go into these things with a fair amount of skepticism but given the linux kernels usual pace of development and the nature of undisclosed bugs we have seen in the past this seems like a large hypervisor bug could be the reality. It must be pretty bad if its the kind of bug that they can't really fix easily, and have to push through an entire new feature into something as old and important as the paging code.

</comment><comment><USER24> The kernels for Gentoo have been all over the place for the past few weeks. I'm running 4.12 at the moment, then the repos updated to 4.14, which wouldn't build for me, so I waited a week for genkernel to modernize. When I came back 4.14 had been marked unstable and 4.12 was masked, making 4.9 the latest supported kernel. Seems that whatever is happening is a Big Deal.

<comment><USER25> Thats because Gentoo decided to switch on a new compile flag, then didn't bother to test that the kernel still boots:

[https://lkml.org/lkml/2017/12/29/449](https://lkml.org/lkml/2017/12/29/449)

<comment><USER26> And, for reasons that are entirely unknown, the issue got worse due to one of the PTI patches (written by, and hence tentatively blamed on, yours truly). Presumably it caused some minor change in code generation causing GCC to go nuts.

FWIW, the compile flag that Gentoo enabled activates a seriously busted GCC feature, and I'm a bit surprised that Gentoo gets away with it in user code.

<comment><USER27> Is there anywhere to read up on the bustedness of the stack probing feature? (apart from the obvious incompatibility with trying to do that for kernel code).

<comment><USER28> Probing more than a page size below the current stack pointer is wrong. Probing more than a page size further when one's saved frame area, save area, locals area, and (maximum) calling parameters area do not amount to a page in total is also wrong.

For more on the considerations that underpin stack probing, see [http://jdebp.eu./FGA/function- perilogues.html#StackProbes](http://jdebp.eu./FGA/function- perilogues.html#StackProbes) for starters.

<comment><USER26> Also, the probe does an unlocked RMW (or 0) instead of a read, which is slower but also wrong in a multithreaded application. The latter is what broke Go.

<comment><USER27> Is that because Go crams the thread stacks closely together and it probed into another thread's stack?

Regardless, it seems like RMW (or even just a store) should be fine as long as the stack pointer is adjusted _before_ the probe.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Shouldn't cloud-grade computers be immune to rowhammer (or at least rowhammer should be much less efficient) as they typically use ECC RAM. Switching ECC RAM in a way that also modifies checksum in a deterministic way is (was?) not practical?

<comment><USER30> ECC doesn't protect you from from all rowhammer problems because they can flip more than two bits at a time, the limit which ECC can detect.

"Tests show that simple ECC solutions, providing single-error correction and double-error detection (SECDED) capabilities, are not able to correct or detect all observed disturbance errors because some of them include more than two flipped bits per memory word"

[https://en.wikipedia.org/wiki/Row_hammer#Mitigation](https://en.wikipedia.org/wiki/Row_hammer#Mitigation)

<comment><USER31> OTOH, a rowhammer attack on ECC memory will likely flip 1 bit before it flips 2, making attacks theoretically detectable. Without ECC, there's no clear way to detect an attack.

<comment><USER32> I'd assume that parity is checked on access, which may give enough time to flip more than one bit before it's detected.

<comment><USER33> ECC memory controller performs memory scrubbing periodically, in the background, during which it checks parity and corrects any bitflips. Otherwise ECC would not work nearly as well as it does.

<comment><USER34> Parity isn't checked during every single row refresh?

<comment><USER35> AFAIK, row refresh is done within each memory chip, while the ECC bits are normally on a separate chip (for instance, where a non-ECC module has 8 chips, an ECC modules has 9 chips), so ECC scrubbing has to be done in the memory controller.

</comment></comment></comment></comment></comment></comment></comment><comment><USER36> Interesting to note that [https://en.wikipedia.org/wiki/Kernel_page- table_isolation](https://en.wikipedia.org/wiki/Kernel_page-table_isolation) was created on December 29th.

</comment><comment><USER37> One question I have around this is whether the patches made to the Windows kernel in November exhibit the same performance hits. Does anyone know?

I'm due to refresh my gaming PC, and I was going to go with Intel again as they've not been a problem. However, if Intel chips are going to incur the same 5% - 50% performance hit on Windows, I might end up investing in AMD hardware instead.

<comment><USER38> I'm certainly no expert, but I would guess that the context-switch time (where I believe the new overhead is added) in games is fairly small compared to the raw number-crunching in-process, so the effect would be minimal in any case

<comment><USER39> Every draw call will need to transition to kernel space to send data over the PCIe bus to the GPU. Modern games execute something on the order of 1000+ draws per frame, so assuming 60fps that's going to be at least 60,000*2 context switches into the kernel and back per second, more if you're doing high refresh rates.

How big the impact I will be, I don't know - but I wouldn't be surprised if it was a couple percent (effectively ruining the single-threaded performance boost Intel has in gaming over AMD before accounting for overclocking).

<comment><USER37> I was also worried about network I/O too, which could be an absolute pain for games where you care about latency.

<comment><USER40> Network IO is negligible in game. The source engine for instance is hard limited to using 30 kB/s of bandwidth.

</comment></comment></comment></comment></comment><comment><USER41> AWS had scheduled maintenance requiring reboot of all EC2 instances in December. Maybe this is somehow related.

<comment><USER42> It wasn't all instances. Only one of mine needed a reboot.

<comment><USER41> In my case the reboot was scheduled for most (if not all) EC2 and RDS instances.

</comment></comment></comment><comment><USER43> Just curious: Even after an attacker goes through all the effort of finding out the physical address of the memory location they want to manipulate, how would someone make sure to get an adjacent memory location to even attempt to execute the Rowhammer attack? And even then, the smallest memory units allocated are basically pages within page frames, right? So if your target memory row is within a physical page frame, does the RowHammer attack even work? (Since there's no adjacent row an attacker has access to then.)

<comment><USER44> If it's something that can be triggered from browser JavaScript, maybe it can be attempted N times per second, and there is a mathematical probability of gaining full privileges within a set amount of attempts.

</comment></comment><comment><USER45> The bare metal cloud providers will be rubbing their hands together

<comment><USER46> I never understand why people don't go bare metal. It is just as easy to automate, just as cheap (or cheaper) if you plan well, and more secure.

A decade ago everyone knew that shared hosting was for hobby sites and stuff that didn't really matter.

Maybe some more people will learn that lesson.

<comment><USER47> As someone who shares your skepticism of the cloud, I can say that people don't switch from bare metal hosting (something like SoftLayer) to AWS/GCP for the cost.

If you do the math like "we have 1000 cores and 2048Gb of RAM and 10Tb of RAID'ed SSD" and then plug that in to the GCP calculator... it's going to be at minimum 1.5-2x your bare metal cost.

That's not even including bandwidth which is pretty much free at bare metal hosts unless you're doing a lot of egress.

The calculus changes when you realize that you're over-provisioned on the bare metal side for a variety of reasons: high availability, "what if", future growth that's more medium term than short, etc.

Then you scale back the numbers you're plugging into the calculator and things are still expensive but now within reason.

Couple that with things like global anycast region aware load balancer, firewalls (an in-line 10GigE highly available firewall costs _a lot_ of money), ability to spin up hundreds of cores in 5 seconds and the value proposition becomes clearer.

It still depends on your work load, but there's a lot more to consider than just straight up monthly cost.

<comment><USER46> Totally agree. Cloud makes tons of sense if your workload is really dynamic. Lots of small players are running static workloads though because actually setting up dynamic workloads is pretty complex.

I use GCE for DNS, Storage, CDN (for fronting storage backed files), dynamic workloads that can run on preemptible instances, and scalable instances to serve published static content, but I use dedicated servers for databases, elasticsearch, redis, and application servers fronting those things.

<comment><USER47> Yeah we're medium size but still bare metal at IBM/SoftLayer.

We keep looking at GCP waiting for the pricing to make sense and still trying to figure out how people run low latency Postgres on there. :)

<comment><USER48> Have you run u to latency issues with Postgres?

(I work on GCE)

</comment></comment></comment></comment></comment></comment><comment><USER49> >public NT kernels from as early as November have begun to implement the same technique.

Does the author refer to ReactOS, or has Microsoft really open-sourced parts of the NT kernel?

<comment><USER50> Reverse engineers pretty much know how everything in NT works. Msft publishes enough symbols that it's even possible to automatically decompile much of the code. Something like page table splitting would be obvious.

<comment><USER51> And the source of an older version of NT leaked a while back.

<comment><USER52> I think that was NT 4. I don't think there's much of that 20-year old code left in the kernel.

<comment><USER53> The source code of the kernel of Windows server 2003 and Windows XP Pro x64 was available to universities for education purposes __. Someone leaked the code on internet years ago which is now everywhere on github (search WRK-v1.2). The code doesn 't include the ntfs module.

__[https://web.archive.org/web/20120412091908/http://www.facult...](https://web.archive.org/web/20120412091908/http://www.facultyresourcecenter.com:80/curriculum/pfv.aspx?ID=7366&c1=en- us&c2=0)

</comment></comment></comment></comment></comment><comment><USER54> This might seem like a too easy theory, but if you l9ok 8nto the article posted by jedisct1 there is the somewhat unrestricted access of the L1 Cache and well with multiple mentions of Rowhammer, could it just be rowhammering from whatever the L1 Cache accesses?

</comment><comment><USER55> So, I googled quickly but couldn't see anything obvious.. this does or doesn't affect Linux running on IBM Z Series mainframes then? I haven't seen much about if Power CPUs are affected by the same flaws

</comment><comment><USER56> [https://newsroom.intel.com/news/intel-responds-to- security-r...](https://newsroom.intel.com/news/intel-responds-to-security- research-findings/)

</comment><comment><USER57> Where is the patch for the Linux kernel, and what kernel options have to be set? Also, are there any compilation options that need to be set?

</comment><comment><USER57> You need to set CONFIG_PAGE_TABLE_ISOLATION=y in 4.11.11 or greater if you have an Intel CPU.

</comment><comment><USER58> Non-AMP link: [http://pythonsweetness.tumblr.com/post/169166980422/the- myst...](http://pythonsweetness.tumblr.com/post/169166980422/the-mysterious- case-of-the-linux-page-table)

<comment><USER59> Alternatively, use Firefox (on your mobile) to skip Amp and other sillinesses. Greatly improved my mobile browsing experience, haven't looked back (ublock origin, hint hint).

<comment><USER60> Firefox is pretty slow on my phone and sometimes when I try to search something, nothing happens. I want to like it, but chrome is just a lot smoother :'(

I do love how Google tries to "downgrade" its experience on Firefox mobile, but all it really does is cut out all the javascript and material design bullshit.

<comment><USER61> When is the last time you tried Firefox on mobile? Since quantum landed on the Android version, it's become really smooth - comparable to Chrome on my phone (Pixel) at least.

</comment></comment></comment></comment><comment><USER62> Even though I understood less than 50% of that I am still very excited about reading more about whatever the real issue is. If somebody can pwn aws from a random instance that would be highly amusing to me :D

</comment><comment><USER63> "Hey, I think I noticed a horrible horrible embargoed security bug. I know, I should do my best to pole holes in the embargo early!"

<comment><USER64> They weren't really trying to uncover the exploit such that they can reproduce it. They were trying to learn who the exploit affects and what the impact is. I don't think there's anything wrong with that. If you're an AWS customer who depends on hypervisor isolation for critical security guarantees, it helps you to know that this is threatened and perhaps exploitable.

Please don't buy into the idea that embargoes and coordinated disclosure are sacred. They tend to just reinforce existing power structures, sometimes in an unethical (or at least unfair) way.

<comment><USER65> The CCC stated also that they observed that companies take a more reactive rather than proactive stance regarding their IT security because they believe that they will be notified of vulnerabilities prior of public disclosure or attacks. This may justify not following embargoes and coordinated disclosure.

<comment><USER63> Do you have a link?

I'd expect the incentives to be a bit more complicated than that, and I'm also a bit skeptical that _either_ is all that good of a solution. I'd also like to see how exactly "proactive" and "reactive" are being used here, is it about push vs pull for vulnerability notifications, or about hiring their own security researchers, or... ?

</comment></comment></comment></comment><comment><USER25> No ones hiding anything, this patchset was developed in the open for many many months. The hysteria and intrigue in this random tumblr blog is completely superfluous. It's a hardware bug anyway.

Here is a good hint to when something is not being embargoed: there is a paper and a public demonstration.

<comment><USER46> It sounds like Intel, Google and Amazon are hiding something. Wouldn't want customers thinking that cloud computing is fundamentally insecure now would we?

<comment><USER25> Well Intel for one manufactures the insecure CPUs..

This will be merged for 4.16, when there is no 4.15 release yet. No idea what your cloud computing companies run but it's not 4.15-dirty, and backporting this monster is a great recipe for a nightly emergency when it goes OOPS.

edit: it isn't even merged yet.

<comment><USER2> It is being backported to 4.14, and presumably earlier kernel too.

<comment><USER25> Sure, with the appropriate baking time. But I don't see a cloud company taking an intermediate version of this patchset, backporting it themselves and then sending it out to all their customers in a hurry.

<comment><USER66> Why not? Isn't that what they should do in case of a kernel security issue?

</comment></comment></comment></comment></comment></comment><comment><USER67> Isn't this related to recent Linus rant about security patch from Google Pixel team? [https://www.theregister.co.uk/2017/11/20/security_people_are...](https://www.theregister.co.uk/2017/11/20/security_people_are_morons_says_linus_torvalds/)

<comment><USER27> No.

</comment></comment><comment><USER68> Ok so all I hear is Intel and no trace of AMD? So X86_64 ISA wise the only diff between modern CPUs are AVX512.

I bet you within the foundations of AVX512 lies a nasty one that can't be patched with microcode update.

<comment><USER69> I'm confused, what makes you think the AMD and Intel cpu internals are the same?

<comment><USER68> It is not, but if like it was the case for rowhammer, it was linked to a specific instruction (clflush).

This time it could be an AVX512 instruction (intel only) that leaks kernel address in a way or another.

I was talking from an ISA perspective. For eg, clflush may be implemented differently between Intel and AMD, it has the same effect on system RAM hence a shared exploit.

<comment><USER35> > It is not, but if like it was the case for rowhammer, it was linked to a > specific instruction (clflush).

No, rowhammer does not need clflush. All rowhammer needs is to be able to write to the same physical memory locations repeatedly. Normally the cache would get in the way, so the attacker needs to bypass it. Flushing the cache (clflush) is one way, but there are others; AFAIK, it has been demonstrated rowhammer from within a Javascript VM, which has no access to clflush.

<comment><USER68> Yes, I knew you could do rowhammer on arm too where clflush does not exit. So rowhammer is not the correct example. Yet at some point it was believed that it was necessary on x86 for the attack to work. [https://en.wikipedia.org/wiki/Row_hammer#Exploits](https://en.wikipedia.org/wiki/Row_hammer#Exploits)

I just made a bet that I could guess something out of ISA only. Going macro to describe what may be the issue. I'm just doing a guess work here.

I was not implying Intel has the same implementation as AMD, nor I was making a case for "this is like rowhammer"</comment></comment></comment></comment></comment>


Silicon Zeroes - <AUTHOR> http://pleasingfungus.com/Silicon%20Zeroes/? <comment><USER2> I think there's a lot of audience for this kind of game on Linux but there's only one launch. I would have bought it straight away.

The dev said they would look into it, but I probably wouldn't notice or remember to look in the future.

<comment> 52-6F-62 Steam wishlist? ;)

<comment><USER2> I did wishlist it but steam won't remind me when it's available on Linux (and the wishlist doesn't show, I think). Maybe I get a reminder in a year that the game is on sale.

</comment></comment></comment><comment><USER3> I've been playing this a bit. It's fun but the game eventually takes a difficulty nosedive when they introduce clockspeeds, each module running at different speeds, and 3 different types of null at the same time that are used differently between modules.

I also think that some of the visual programming languages should take some hints from these devs. I haven't seen one work as nicely as this and I've tried/worked/watched a handful of them in reality (PLC programming, and teaching kids).

<comment><USER4> Thanks for buying the game, and for the kind words!

I'm not sure what you mean by 'three types of null', though. '-' is null, '?' is NaN (which is kind of similar), and...?

<comment><USER3> I was counting '-', '?', '-?', and '??'. which would be four I guess. But they tossed me off kilter on Saturday trying to figure out what they mean (and I haven't gotten back to looking at it again yet, though will eventually).

</comment></comment></comment><comment><USER5> Can't recommend Manufactoria enough. It's from the same author.

</comment><comment> 52-6F-62 I honestly looked because of the other comments here. I'm definitely grabbing this.

Great idea

</comment><comment><USER6> Wow! Congrats!

Nice flattering comment from SpaceChem/TIS-100 author!

</comment><comment><USER7> No mobile apps ?? I was ready to buy it on my ipad...

<comment><USER4> I'd like to do a mobile port at some point, but it'd require a complete redesign of the UI, so that's way out in the future.</comment></comment>


Ask HN: is GitHub susceptible to robots? - <AUTHOR>

am fairly new to GitHub, and i noticed some accounts [for example https://github.com/threejs-cn] are following like 22k users and it/he/she joined on October 8, 2013 - i noticed because i now have 4 followers [of which two are spams -- i think] <comment><USER2> I got followed by this account too today, but when ever I click on the profile it gives a 404.

</comment><comment><USER3> yes</comment>


My startup is hiring - <AUTHOR> http://www.thumbtack.com/jobs?refer=hn

<comment><USER2> I really hate years of experience used as a metric because it doesn't distinguish between people who did are actually experienced in a technology and people who have merely been around a technology for a long time but never bothered to probe its internals.

Not that I'm looking for a job, but this advert doesn't exactly sell the position, either. What sorts of technical problems are you solving? What is your development environment like? How does your team collaborate? You mention PHP, javascript, and linux, but what are you doing with these technologies specifically?

<comment><AUTHOR> Thanks for your comment. Working with someone who's spent time in an engineering team is valuable and means we don't need to train on that part of the job.

Otherwise I think your points are very valid and I will work to flesh out this job description to describe some of the more interesting things we're working on.

</comment></comment><comment><USER3> So, why does your startup have a Cordon Bleu trained chef? Is that blowing money that could be better spent elsewhere? I understand that feeding your programmers keeps butts in seats that otherwise would be doing something else, but that just seems a bit excessive.

Kind of like the game rooms, health spas, etc., that wasted a lot of money in the last boom.

<comment><USER4> They advertise her in return for her services would be a better conclusion. Looks like matching services is the business they are in so it is not so far fetched. From her feedback, she does a great job.</comment></comment>


Ask HN: What should I do to be able to raise my rates? - <AUTHOR>

The recent post about Sam charging $1000/hr (http://samsoff.es/posts/one-thousand-dollars-an-hour) and the fact that my current client just spent $30K on a load testing provider who didn't provide much value made me think about the things I should do to be able to naturally raise my rates.
Here are the things I can think of:
- Raise my profile by speaking in local events
- Polish my website to showcase my experience (10 years in .NET and numerous side projects)
- Pick a niche that provides high perceived value: security / training / load testing (apparently)
- Charge per day or per week rather than per hour (as suggested by patio11)
What else do you suggest me to do or has worked for you? <comment><USER2> The easiest way to raise your rates is to raise your rates.

Totally not joking. One of the reasons tptacek and I go on the war path about this is that us geeks seem to be culturally abominable at properly pricing things. I mean, half the comments on the $1,000 an hour rate are people who a) are geeks selling services and b) _want the geek to lose_.

There are other ways to raise your rates:

1) Specialize in a particular thing which is in-demand by...

2) ... savvy clients who receive a high, easily quantifiable value from it and ...

3) ... has limited competition available.

But even HNers who do, e.g., commodity PHP web development could probably get 50-100% more just by turning down anyone who doesn't pay 50-100% more.

<comment><USER3> I think it's the fear point of 'if I do this and put my prices up, what happens if I get _no_ clients'. Which of course is a reasonable thing to be scared of, and if it doesn't work then drop your prices back and work out what you can do to be more valuable.

</comment></comment><comment><USER4> Why do you need a specific reason?

If you feel you are worth more money, starting quoting projects appropriately. The market will respond with data ( or lack thereof) which you can incorporate.

<comment><AUTHOR> How do you find higher paying clients for example?

How do you push the upper boundary of how much you can charge without turning away all your leads?

<comment><USER2> _How do you find higher paying clients for example?_

There's many ways to do this. One way is to figure out who has ability and desire to pay for things in your area of expertise. I help folks sell software. One way to find people who are capable and desire to pay $$$$ for selling more software is to go to conferences about that that charge, e.g., $2,000 per ticket. If you send a team of five people to that conference, you're not too likely to be scandalized when I quote you.

 _How do you push the upper boundary of how much you can charge without turning away all your leads?_

The lowest risk way to do this is to have all of your needs met at your current utilization level, at which point decreasing your hit rate basically can't harm you, so why not quote higher? If you get engagements at $CURRENT_RATE + 25%, then a) your new rate is $CURRENT_RATE + 25% and b) you've got _even more_ flexibility in turning down engagements.

Repeat as necessary.

<comment><USER5> This was my approach with EFL of all things, believe it or not. As a 27 year- old in Taiwan I was successfully billing $50USD/hour for helping 9 year-olds with problem areas from their recent beginning-level classes. The rate for most native English speakers doing that kind of work at the time was $20USD/hour.

I did have far above the median skills to back it up, though.

</comment></comment></comment></comment><comment><USER6> One element that I feel is quite important in the post you mentioned (Sam charging 1k per hour) is that Sam has actually shipped something, though I don't know how successful his app is. I'm guessing that a lot of devs don't have this experience (A - Z participation in shipping something.) Even a lot of small start-up devs are likely shielded from many of the headaches that go into doing something like this. The experience he has picked up is very valuable and could probably sell a lot of hours in client work.

<comment><AUTHOR> I actually shipped _a lot_, so you think this can play an important part in the process?

</comment></comment><comment><USER7> Just do it. No one will come down on you or anything. Do a quick A/B test. For the following clients, split them in two. Given side A your current rate, and side B your new rate. Measure the difference and prepare to realize that there is none. People who will hire you will hire you. Money gravitates to those who ask for it, and not to those who "deserve" it.</comment>


Patent troll stalks travel site Hipmunk - <AUTHOR> http://gigaom.com/2012/07/05/patent-troll-stalks-travel-site-hipmunk/ <comment><USER2> A few thoughts:

1\. The complaint here presents Hipmunk as the developer of an innovative travel search engine that offers something great that no one has ever offered and, hence, as a rising star in its market. It contrasts this with i2z Technology, LLC, - a Marshall, Texas shell entity run by a Silicon Valley lawyer - that invented nothing through its own efforts, that took an assignment of a soon-to-expire 1992 patent in July, 2011, that sued a score of mostly-large companies in the fall of 2011 for allegedly infringing that patent, and that made a letter demand on Hipmunk to take a license from it or be immediately sued. It notes, very pointedly, that the innovation done by Hipmunk from which so many people stand to benefit has _no connection whatever_ with the patent upon which i2z threatens to sue. It further notes that, on the face of it, the primary claim of the patent in issue deals with two-window configurations not even used by Hipmunk. And it identifies prior art that Hipmunk claims invalidates the patent. Finally, the complaint states that this demand came to Hipmunk only after it had raised significant VC funding for the purpose of continuing to grow and to innovate and, rather than use these funds to pay for a worthless "license," it has instead elected to fight to expose this for the bogus claim that it is.

2\. The themes of the complaint are almost a template for what is wrong with U.S. software patents at their worst. Patents are supposed to protect and encourage innovation. They are supposed to take things that would otherwise remain secret and get inventors to disclose this secret know-how so that it can be absorbed into an ever-broadening public pool of knowledge for society's benefit and, as a trade-off, give the inventor a limited monopoly barring all others from using the invention for a limited time even if those others developed it entirely independently of the efforts of the inventor. To get this monopoly protection, the innovation has to be truly inventive and not such that those skilled in the relevant art would see it as obvious in light of prior art; and it must be practical and useful as applied to real-world activities and cannot be so abstract and vague that it amounts to an idea, a law of nature, or a mere concept. To benefit society, the monopoly protection must extend to a point deemed reasonable for rewarding the inventor but not so long as to give him a windfall at the longer-term expense of others. All of these concepts applied beautifully to an industrial age where inventions tended to be tied to heavy machinery or to other innovation tied to long and expensive development cycles and where the resulting inventions were discrete and significant departures from the analog-style forms of prior art that preceded them.

3\. Digital technology, when first deployed, tended to fit within the historical patterns but not so with software. When it comes to software development, development cycles have become extremely rapid. The ability, or even the inventor's desire, to keep innovation secret and undisclosed has severely contracted and, in a sense, much of what is innovative in software is an open book, with a whole universe of developers drawing from the same or similar sources and deriving very similar outcomes without reference to one another's work. Change comes quickly and incrementally and knowledge of that change rapidly becomes widespread. Often such changes, when reduced to practice, can only be described in vague ways that might be applied in all sorts of surprising ways to future incremental changes and, hence, the monopoly rights tied to such vagaries hang like a menacing cloud over anything that anybody might do in those areas. And even things that truly might be classified as inventive in light of prior art can be seen as being of very limited value in the broader swirl of rapid technological change within even a few years of the time they are given patent protection and hence giving every appearance of society's having given the inventor a 20-year windfall over what should instead have been incremental stuff worthy of 3-year protection at most. Now add to the mix an underfunded and besieged patent office whose examiners are not particularly qualified to make consistent, astute judgments about innovation involving software and who are effectively under quota- pressure to keep the patent grants moving along in the system - add further an enforcement system that imposes multi-million dollar costs upon those who seek to enforce their patents and also upon those who seek to defend against claims of infringement and that produces widely variable results tied to a jury system in which those passing the ultimate judgment can easily be confused and bamboozled in evaluating technical claims - add further that the appellate review level concerning patents has been placed in the hands of a specialized court having exceedingly close and sympathetic ties with the patent bar and with the idea of broad-based patent enforcement remedies (including potentially crippling injunctions) - add further that a specialized judicial district in a backwater Texas area routinely provides favorable treatment for patent claimants even when claims are weak or frivolous - add further that patent rights, being freely assignable, can be gathered in the hands of shell entities having no connection with any form of innovation but being intimately tied to a system whose purpose is to play the enforcement system to its maximum value in order to force parties to pay up or get swept into a litigation mess - yes, added all together, this becomes one lethal brew whose poisons now maim or kill, rather than encourage, the innovation that the patent system was designed to foster.

4\. I am by no means hostile to IP rights generally. These can and do protect various forms of creative effort in ways that can benefit society. Still, IP rights when abused are the worst form of perverseness in a technologically- driven society and can and do damage society in serious ways. You wind up with those who have not innovated a day in their lives making debilitating demands on those engaged in brilliant innovation in furtherance of a cynical shake- down process that amounts to a toll on innovation with no offsetting benefits. The patent system has served the U.S. well for over 200 years. Its structure was put in place with the pace and methods of innovation fostered by the industrial revolution. That structure did not envision digital technology as embodied in software and has in the past 20 years become corrupted. It is time for a rethinking of what it takes in the patent area to encourage and protect software innovation. The current system, as exemplified in the Hipmunk case, is absurdly broken.

<comment><USER3> I don't want to discourage intelligent discussion, but your penned thoughts are about 3x the wordcount of the original article.

Or - tl;dr

<comment><USER4> I down-voted your comment. I don't believe in down-voting without giving a reason for having done so. Here's mine:

Your post adds no value whatsoever. Think twice before hitting "reply" if all you are going to do is post a negative comment that is utterly irrelevant.

<comment><USER3> Same idea can be expressed succinctly or with a lot of verbiage. Some prefer the former.

The point of my post was asking the parent to consider this point.

<comment><USER4> That could have value. Did you take the time to study the matter and post a succinct explanation? I'd love to get a link to your post.

</comment></comment></comment></comment></comment><comment><USER4> I've proposed this a couple of times on HN. I think the solution to these issues is for someone of note to start an organization dedicated to fighting patent troll cases. To be considered for protection you have to become a member and pay annual dues. Such an organization could potentially raise hundreds of millions of dollars and have top-notch legal horsepower available.

It's mission would be to defend members and, in all cases, seek the invalidation of the patents in question.

If something like that existed, trolls would know that the potential consequence of trying to enforce bullshit patents would be huge financial losses and the potential invalidation of their bullshit patents. How many trolls would go up against an organization with 10, 20, 50 or 100 million dollars available to take-on a case?

I am saddened to say that it is an arms race. Given that, true entrepreneurs and startups need bigger guns. It would behoove VC's and virtually all entrepreneurs and startups to help fund and support such an entity. It would be like patent reform approached in a very different way. Knowing that the "nuclear option" is on the table could very well bring reason to a landscape that is simply full of land-mines.

There would have to be a mechanism through which companies of a certain size (Google, Apple, etc.) are excluded from receiving free services from this organization. They would, however, be expected to support it with generous donations. If the large players in the tech would each donated ten million dollars a year (a rounding error in their revenue stream) to such an entity, the organization could easily raise hundreds of millions in no time at all.

<comment><USER5> Good idea, but how would you determine who is a "patent troll"? Some of them are more obvious, like i2z. But 1-click is also a bullshit patent. Big companies like Amazon like to use patents both defensively and offensively. They're not going to contribute to the legal fund if it could be used against them.

I think the idea is more workable if you start with recruiting small to mid- size companies + VCs. The big companies are more likely to join on a case by case basis, especially with someone else taking point.

<comment><USER4> The organization would have to put into place a process through which requests for help from members are evaluated. If the lawsuit in question is determined to fit the stated mission, purpose and standards of the organization they take over. There could also be staged levels of paid assistance whereby the organization might handle the case at a much-reduced cost when compared to going through other avenues.

I don't have all the answers. Legal minds far more capable than mine would design a set of rules and options that would make this a true resource and, to use the term again, a "nuclear option" against trolls. I don't have a problem with the reasonable enforcement of legitimate patents, but the bullshit patents need a way to hurt those using them to troll in a major way. All you need is a few cases of trolls getting utterly destroyed in court for the environment to change completely.

</comment></comment></comment><comment><USER6> It's a stupid claim, and we're taking the most agressive action we can against it, which in this case means suing them first.

<comment><USER7> I agree. "Displaying data in multiple computer windows" is an absolutely ridiculous patent.

I know you guys can win this, best of luck! :)

<comment><USER8> _"Displaying data in multiple computer windows" is an absolutely ridiculous patent._

It would indeed be ridiculous if someone had a patent on displaying data in multiple computer windows, but that's not what was patented.

Here's claim #1 -- the other claims are similar in their specificity:

 _1\. A system for synchronizing the presentation of data on a digital computer display, comprising:

first and second window-controlling means, each of said window-controlling means displaying information in at least one display window, a synchronization control means, and means for communications between said synchronization control means and each of said first and second window-controlling means; wherein said first window-controlling means displays first information from a first source, and said second window-controlling means displays second information from a second source; wherein said first information and said second information have sections, and at least one section of said second information corresponds to a section of said first information; wherein said first window-controlling means sends a message to said synchronization control means over said means for communications indicating a change in viewing position to a new section of said first information; wherein said synchronization control means sends a message to said second window- controlling means over said means for communications requesting a change in viewing position to a section of said second information corresponding to said new section of said first information; and wherein said second window- controlling means displays said corresponding section of said second information on at least one display window._

Remember, patents cover _methods_ , not _purposes_. This patent covers _a specific method_ for displaying data in multiple windows, not the general concept of displaying data in multiple windows.

Mind you, I still think it's a dumb patent. But let's make sure we understand what we're lynching them for before we get out the torches and pitchforks, ok?

<comment><USER9> Translated from patentese:

\- Two or more windows displaying data from different sources

\- The sources have sections

\- Sections from one source have corresponding sections in another source.

\- Changing sections in one window makes other windows change to corresponding sections.

\- Basic message-passing communication to implement the above.

<comment><USER10> So any online video game is prior art?

<comment><USER11> I think my current terminal window is prior art...

<comment><USER12> There must be hundreds of examples of prior art.

I wrote a split screen sprite editor for dos about 20 years ago. I bet it's still on a 720 floppy some place in my basement. In fact, I think I have a source printout filed away too..

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> We've taken the same approach. Suing first. The problem is that all you've done is declare venue. You'll still need to settle because not settling will cost you at least $1mm to fight this in court. And if you win, and find yourself not to be infringing, they can just find another patent and start the process all over again. You'll never get your legal fees back. That's not how patent suits work. That's why it's such a scam.

I'd just settle and view it as a tax on innovation while working on changing the larger patent system.

<comment><USER14> Can you reveal what the troll was asking for the license in your particular case?

</comment></comment><comment><USER15> Although I'm entirely opposed to patents, a way to limit the exposure of companies to patent trolls if if these trolls need to quantify their "damages" in terms of lost sales or lost opportunities. If they're not actively developing products, that is certainly going to be hard to prove.

<comment><USER16> This presents a problem for legitimate patents - researchers and others who develop technology would only be able to profit from it by bringing it to production themselves, rather than selling or licensing the technology to others and continuing to do research.

<comment><USER9> Can you write any description that reliably distinguishes between a patent troll and anyone else who does not use the patent themselves in production (commonly called a "non-practicing entity" (NPE))? If not, that should tell you something.

(Not that practicing entities can't resemble patent trolls too, as evidenced by the numerous ongoing smartphone lawsuits.)

<comment><USER16> The issue with patent trolls isn't how they use patents - it's the patents that they use. There's nothing wrong with a researcher suing a factory over a patent the researcher holds that the factory is using without license. There's also nothing wrong with the researcher selling the patent to a lawyer, so as to avoid dealing with the legal system, and that lawyer then suing the factory.

This works if the patent was issued for a meaningful advance. In fact, the researcher may not have been interested in doing the research (or at least in revealing his methodology) without patent protection. If the methodology were not revealed, other people would need to spend the time to develop their own process, when it would be easier for them to pay the researcher and then use his work.

The issue with software patents is that the methodologies covered are trivial, and the time needed to develop your own method is trivial as well. Because the patents are granted for obvious solutions, many people end up violating the patent without ever having seen it; this is why patents are not supposed to be granted for obvious developments.

<comment><USER17> The problem I see with software patents is that they're usually attempts to patent _ideas_ , but ideas aren't patentable. The implementations of most of the ideas in question are obvious and therefore not patentable.

I don't think that we, as a society should decide to allow ideas to be owned, so I do think we should crack down on trivial patents.

<comment><USER18> >> we should crack down on trivial patents.

I think everyone is in agreement on this, but the definition of "trivial" is the sticking point.

</comment></comment></comment></comment></comment></comment><comment><USER19> This is a 1994 patent. Looks like it should be expiring in Nov. Better hurry up with that suit, patent troll!

<comment><USER20> November 9 does in fact appear to be the expiration date, that is, 20 years after the first filing date [1, 2].

The patent owner can still sue for damages for pre-expiration infringement, going back six years (which is the statute of limitations). But damages for infringement won't continue to accrue after expiration.

In addition, any injunction against infringement would expire automatically with the patent.

[1] [http://patft.uspto.gov/netacgi/nph- Parser?Sect2=PTO1&Sec...](http://patft.uspto.gov/netacgi/nph- Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/search- bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query=PN/5345551)

[2] [http://en.wikipedia.org/wiki/Term_of_patent_in_the_United_St...](http://en.wikipedia.org/wiki/Term_of_patent_in_the_United_States)

</comment></comment><comment><USER21> I am getting on a plane and won't have internet access for days, but can someone please start a site like IAmATroll.com or whatever and compile a list - hopefully with profile pictures - of patent trollers, and who they're suing. I'd be happy to help promote and maintain it when I'm back.

If we can't win legally, let's at least try a grassroots approach. Perhaps shame will have _some_ effect on these people.

<comment><USER9> Why would you think shame would have any effect? Shame does not lose court cases or reduce patent licensing fees. You can't stop a patent troll by any means that does not directly affect their revenue.

<comment><USER21> The "green" movement seems to be making some progress.

<comment><USER9> "Green" has successfully affected revenue: people value green products and green companies, and "green" affects purchasing decisions. Patent trolls, by definition, have no products to purchase and no interaction with consumers; how consumers view them will have no effect on their revenue. Name-and-shame tactics don't help.

Massive public opinion campaigns could still prove useful in this case, but only insofar as they affect the legislative and judicial systems that support patents and patent trolls.

<comment><USER22> Companies that have a history of using patents offensively should however be considered for a boycott (Oracle, Apple)

<comment><USER18> "Patent troll" is generally considered to mean a company that does not make or sell anything. They can't be boycotted or countersued for infringement.

</comment></comment></comment></comment></comment></comment><comment><USER23> I hate patents, but sometimes I wish that judges would just say that yes, the software does infringe, but that the patent represents one itsy bitsy tiny part of what's needed to make a successful product. Then award the patent holder what their patent is worth- $1.

I often think that the issue isn't so much the patents, but the absurd amounts of money people are able to extract from them- the money is in no way representative of the importance of the invention.

<comment><USER24> It is time for compulsary licensing of patents - just like there is with songs. With compsary licensing there would be no need to talk with a patent owner, just pay the license fee. This is how any band can "cover" any song. Congress thought songs were so important to our culture no one person should be able to control them and forced song authors to license their works to anyone who asks.

</comment></comment><comment><USER25> The problem with the current patent system is that it treats all patents from various industries (software, manufacturing, biology, chemistry, science, business, etc) exactly the same across the board and applies the exact same rules to all of them. While an overhaul of the whole patent ecosystem is needed and long overdue, I think the quickest/easiest way we can get rid of majority of patent trolls is to start having different rules for different categories of patents.

A couple of examples I can think of:

1\. A patent with a tangible product will last for 20 years but a software patent should only last for no more than 5 years.

2\. A medical methodology process can only be patented by an individual/company after showing evidence of the research put into it by said individual/company where else a software methodology process can only be patented if the patent holder is actually utilizing the patent as part of their business.

3\. Manufacturing patents can be granted without actually showing the actual real-life process (and obviously it needs to be a novel approach and has no prior art) but all software patents need to be developed and attached a demo of the software patent in action (not just pictures and descriptions) as part of the requirement for the patent to be granted.

What do you guys think? I believe setting different rules for different categories will quickly elevate majority of our tech patent woes.

<comment><USER18> Feedback:

#1 devalues genuine software innovation. If a software innovation is genuine, why is it worth less protection? I understand that software moves faster than tangible products, but that just means "innovation" means something different in software. As a programmer, I oppose any effort to devalue software relative to other intellectual pursuits.

#2 Devalues genius. If a genius only needs 2 weeks to produce real genuine medical innovation, it should not be measured against some arbitrary measured effort standard quantifying "evidence of research".

#2 Also enforces arbitrary business requirements on software-using firms. Why can't a firm invent a lot of stuff and not implement it all at once? They should have the same rights to use their inventions as firms that work in other pursuits. (Again, this is dependent on the innovations being genuine.)

#3 Devalues software relative to manufacturing by applying a different standard.

These are hard problems that I can't answer at the moment; I'll freely admit that. But I continue to be shocked that the programming community tends to put forth answers that devalue its efforts, so I feel the need to point out that software is as worthy of protection as other fields. (This is a shocking argument to have to make to software people!) If there's a problem with the patent system, fix it across the board: software is not the problem.

<comment><USER26> _#1 devalues genuine software innovation. If a software innovation is genuine, why is it worth less protection?_

While a good _general_ argument, you have to ask what software which was developed 20 years ago is still relevant today. Most software 20 years old is not even available today, and even if you had stored a copy, it would probably not be possible to find hardware which would run it correctly or at all.

Basically, 20 years of computing-time represents several _generations_ of products and innovations. 20 years for a patent may have been a relevant timeframe when products had a lifespan that long.

I think it would be hard to argue that this is still the case.

The solution is not to extend software patents to 20 years. The solution is to reduce patent-time to fit the lifespan of products within the category which for the patent is valid.

Which for software would mean an absolute maximum of 10 years, with 3 years much more reasonable.

<comment><USER18> >> Which for software would mean an absolute maximum of 10 years, with 3 years much more reasonable.

This still devalues the creation of software that is genuine innovation. Think about mainframe software that controls factories, for instance, which can be bought over 10 years after creation. Also consider the prevalence today of Windows XP, which shipped in 2001 (and where any relevant patents would date to the 1990s when it was developed). Microsoft has reluctantly stopped selling it, but I'd argue that we still don't know how long the useful lifespan of WinXP will be. And we're probably ~15 years in from when patents in XP would have been filed.

Before artificially segregating software into a ghetto, ask this: would this innovation be worthy of protection if there were a purpose-built device that performs the same function? If the device would be worthy of protection, then it's going to be hard to argue that the software embodiment is somehow worth less protection. (At least it will be hard to argue this with me, but I'm a chauvinist for programmers.)

Finally, the argument that the old software becomes irrelevant is congruent with equal protection for software. If old software loses relevance, then so do the patents (and correspondingly their utility to patent trolls). I think you mean precisely the opposite: old innovations in software actually become more relevant, so that everyone wants to use them in their own wares. Nobody rushed to shorten the lifespan of vacuum tube patents because they became irrelevant.

I don't think it's reasonable to reduce software patent lifespans to shorter durations than that of the hardware the software runs on, or the cables used to transmit it.

<comment><USER26> _This still devalues the creation of software that is genuine innovation. ... Before artificially segregating software into a ghetto_

I'm not sure if it comes through in my post, but what I wrote I intended for all patents, not just software patents. If your product or category of product (software or not) only has a lifespan of 2 years, patents for that product or product-category cannot be made to last more than those 2 years.

In that sense I'm not devaluing software (or any other products for that matter) any more than the people producing them already do.

That may not fully satisfy you and your point of view, but it seems to me it would address some of your concerns. If you still find it objectionable, I guess that's fine by me. We are all entitled to our opinion.

Sometimes, even reasonable people cannot be made to agree ;)

<comment><USER18> Fair enough, and your position makes sense to me. (A lot more sense than those who would specifically curtail software protections.)

I think there's something to this approach, but I can't help wondering how anyone would define the lifespan of a product.

Also, I think reasonable definitions would be much longer than you'd like and closer to the existing 20 years. I kept my last mobile phone for 6 years, for instance, so I'd probably say 10+ years is reasonable for technology in a mobile phone. WinXP is 15 years into its invention cycle, etc.

</comment></comment></comment></comment></comment></comment><comment><USER27> It's a very dangerous precedent for the whole startup ecosystem. Much like a venture capitalist, the troll is trying to get a share of a growing stratup, except that it's using racketeering, rather than an investment as its tactics. This needs to be stopped decisively, ideally adding the troll to vexatious litigant list, so that it cannot racketeer again with another patent

<http://en.wikipedia.org/wiki/Vexatious_litigation>

<http://www.courts.ca.gov/12272.htm>

</comment><comment><USER28> Did anyone else cringe at Hipmunk's use of the phrase "hard-earned venture capital"?

</comment><comment><USER29> Arg, I just read the 1992 era patent and I am not sure what exactly the novel part of it is. Possibly it claims to patent a specific implementation of model-view-controller. This stuff is written so obtusely it's hard to imagine what specific claims of the things it describes is it really patenting. Disturbing is the large number of other patents that reference it. No doubt anything we do in the course of developing software violates some claim made in some patent somewhere that few have even heard of.

</comment><comment><USER30> I can only hope that VCs are clubbing together to give patent trolls a good thrashing. Partly through lobbying; Congress should be sympathetic to innovation and job creation, especially during a downturn. And partly through a vigorous collective defense. Patent trolls turn their extorted money into more patents and more lawsuits. Like any parasite, the smart approach is to kill them early.

</comment><comment><USER31> The last patent reform bill really did nothing. Why can't congress pass useful bills.

</comment><comment><USER32> Relevant: [http://www.ted.com/talks/lang/en/drew_curtis_how_i_beat_a_pa...](http://www.ted.com/talks/lang/en/drew_curtis_how_i_beat_a_patent_troll.html)

</comment><comment><USER33> One can only hope that the previous licensees included a clawback-if- invalidated clause in their agreements.

</comment><comment><USER34> Trolls likely will settle out of court. I hope Hipmunk doesn't fall for this trap either.

</comment><comment><USER35> Maybe we should all message this guy on linkedin and tell him what a scumbag he is.. Just in case he doesn't already know.

I really wish more people would spend more time doing something valuable in the world.

</comment><comment><USER36> i2z Technology = Loser</comment>


Type faster with QWeyboard - <AUTHOR> http://qweyboard.com

<comment><USER2> The page starts playing an annoying sound loop from the instant it loads. Who the hell thought that was a good idea?</comment>


How to create a synchronized Online/Offline data app with JavaScript and JayData - <AUTHOR> http://jaydata.org/blog/how-to-create-a-synchronized-online-offline-data-application-with-javascript-and-jaydata

<comment><USER2> Cool thanks :) Looks I can get rid of a lot of code of mine...

</comment><comment><USER3> Very useful information, thank you.</comment>