IAM is hard – Thoughts on $80M fine from the Capital One Breach - <AUTHOR> https://twitter.com/kmcquade3/status/1291801858676228098 <comment><USER2> My general experience with crafting IAM policies is very reminiscent of SELinux, in that it's very difficult to work agnostically while adhering to a principle of least privilege. Especially given that this kind of task is often done by admin/ops people, one typically can't know in advance everything that the app might need to be able to access in order to work correctly. The process of discovering this is: try running it -- it fails, you note the permissions error -- look at docs, talk to devs, try to give it the most granular permissions it needs to get around that error -- rinse & repeat, probably many many times. This is onerous and you wind up going all around the mulberry bush trying to understand and satisfy every dependency.

At least, if you're very good and don't mind being perceived as a roadblock, you try to understand things. If you're more typical, you just find the most direct route from logged error to added permission (audit2allow approach). And if you're bad, which is also not uncommon, you just give it the broadest permissions possible and call it a day.

With respect to IAM in particular, I'm finding in the Lambda world that some seemingly straightforward functions wind up needing some sort of access to all kind of other AWS services; these services each have their own funky permissions structures and attendant quirks. Each one is a temptation to the IAM admin to just throw their hands in the air and put a wildcard on it.

<comment><USER3> I've seen this a ton. I have been an on/off security professional so academically I am committed to the principle of least privilege, but holy hell it can be painful or impossible in real life.

Where possible I've started adopting the "run it and see" or audit2allow approach (there are awesome tools that can do this for AWS IAM perms too), but then before applying the policy, _somebody_ needs to put a quick line beside each permission that explains why. If the answer is "I don't know" and the permission is simple/low-risk then maybe let it go. If it's a high-risk permission then don't do it without answers.

That formula is the only pragmatic one I've seen. Not perfect but sometimes perfect is the enemy of good.

<comment><USER4> Years ago I wrote a program to let various services run their course, query Cloudtrail for successful calls madero different AWS services, and attempt to find a minimal set of IAM permissions (not applicable for S3 at the time). The idea was to run an exhaustive test suite with expected allowed actions only and deny anything else. I believe AWS has a similar tool now for IAM but it's not a problem that'll be resolved satisfactorily for everyone given the combinatorics of IAM possible. Lateral movement in IAM roles and credentials is tough and even today not every action that IMO should be flagged is reported (IAM role assumption failures across accounts is silent when I checked early last year).

<comment><USER5> Did you open source it? If not, you definitely should.

<comment><USER4> Probably can't be open sourced given IP under contracts but I could try to re- write it. There's some new services in IAM that could be leveraged to make it more accurate and cheaper to use, too.

<comment><USER6> Thank you for putting this idea in my head! I've been trying to get better at expressing infrastructure as code, and one of the big blockers has been how adding new services to e.g. Terraform is tough when you don't know all their permissions they need (see also [https://github.com/hashicorp/terraform/issues/2834](https://github.com/hashicorp/terraform/issues/2834) for example).

Using a test AWS environment to stage and then checking CloudTrail to see what was _actually_ called would be a step forward. Having software to extract it would be even better.

</comment></comment></comment></comment></comment></comment><comment> john-shaffer Those problems seem to come from the separation of the IAM admin from the developer. I'm coding a server now. My IAM roles are defined in a template, and I just add new permissions to the template as I need them. My code has the bare minimum permissions that it needs, and it doesn't seem at all onerous for the benefit it provides. So I think the problem is less "IAM is hard", and more "coordination is hard".

The one big exception I've run into is that to launch a CloudFormation template, the role practically needs admin access. I'm considering offloading the launch to a minimal Lambda function with the requisite (very broad) permissions. Does anyone have a better approach?

<comment><USER7> This works if all developers understand IAM and don't just throw a wildcard in the first time they don't understand something.

<comment><USER8> Agreed, there is a large learning curve and it took me a long time to wrap my head around it.

It requires a lot of knowledge and discipline, which sooner or later will create holes. For example, if you need to pass a role to a service, you'll need PassRole; if you grant it on " * ", then oops, you might have just created the opportunity for privilege escalation [1].

There's also probably issues specific to your company: allowing access to read resource foo _in general_ is not an issue, except your specific company stores sensitive data there. If every developer is expected to be a security expert, the security risks increase, and the productivity overhead may even be worse than having a dedicated security/IAM team that gatekeeps permissions.

[1] [https://rhinosecuritylabs.com/aws/aws-privilege- escalation-m...](https://rhinosecuritylabs.com/aws/aws-privilege-escalation- methods-mitigation/)

</comment></comment></comment><comment><USER9> FYI for anyone in the same situation, Netflix built some open source packages to solve this:

[https://netflixtechblog.com/introducing-aardvark-and- repokid...](https://netflixtechblog.com/introducing-aardvark-and- repokid-53b081bf3a7e)

The idea is that the default policy on new things is deny all, and then it monitors cloudtrail for privilege failures and reconfigures IAM to allow the smallest possible privilege to get rid of that deny message.

<comment><USER10> So it gives a services any privilege it asks for? I haven't read the article, but from your description it doesn't sound much better than default allow-all.

<comment><USER11> It sounds a lot better. Set up your script and run it and the tool determines the minimum set of permissions needed for future runs. You lock that permission set in for future runs. Read the link

<comment><USER10> > You lock that permission set in for future runs

Thanks, that was the important bit missing from OP's description.

</comment></comment></comment></comment><comment><USER12> I am not a bank. My risks are much lower. My CORS policies are strict and I block merges that are too permissive. I immediately disable and remove keys that people share in slack or emails or commits. I use IRSA everywhere I can (and net new services since I joined the current org aren't allowed to use user key pairs ever). We operate on the principal of least privilege and everything us RBAC. CapOne made a mistake and it was known. IAM is hard but when picking places to cut corners, security can't be one of them. Hopefully this fine sends that message.

<comment><USER13> Did they fine the management responsible for the decisions around these systems? Incentives matter. If you're not exposed to the consequences, you'll optimize for your comp and parachute out somewhere else when the shit hits the fan.

</comment></comment><comment><USER14> * IAM policies for deployed applications should be kept with those applications

* Use a feature like GitHub's CODEOWNERS to make sure that the service's IAM policies "belong" to your infosec team. Any PRs that attempt to change the IAM policy are then reviewed and approved by infosec.

* Set up monitoring that alerts when IAM policy is deployed that is too broad (i.e. wildcards).

* Eventually, recognize that many of your applications are pretty similar, and move to a smarter deployment model which maps a type of service to the correct IAM policy to be deployed with it. Then, what's stored in the service's code repository is which kind of application it is, and the IAM policies are factored out into a common repository owned by infosec.

Look, IAM isn't hard. Allow, deny, verbs, resources, it's all pretty simple. Not so different from firewall rules we've had for decades now. What's difficult is managing, not IAM rules specifically, but _anything_ at scale. Managing security at scale is hard, because managing anything at scale is hard. What's _more_ difficult is taking legacy setups which already exist at scale, are poorly secured because they weren't set up with the correct tooling to manage them at scale, and migrating them to a standards-based approach that makes it possible to manage them at scale.

What makes it difficult isn't the technology but the organizational politics that comes with it. If you build it too early, you're over-engineering and focusing on the wrong thing when there's more "important" stuff to focus on. If you build it too late, then you need to migrate stuff onto it, stuff which "just worked", whose stakeholders ascertain too much risk to the transition, in environments which generally undervalue security work. What makes it difficult is _politics_.

</comment><comment><USER15> In my experience, the hardest thing about this whole space is the number of developers who don't understand what the problem is until it is costing them $80 million dollars.

Limiting blast radius, for example. Why does your threat model include the possibility of one of your applications being compromised and using its credentials to do desired things to other applications? That implies your programs are buggy. And clearly, your programs aren't buggy; you're using best practices. How could they be?

Even in professional development in big name companies, this is a surprisingly pervasive default attitude. Appropriate level of paranoia is something that I think has to be taught.

<comment><USER16> It's not always about even being malicious. At my last company I was an admin. But I locked myself down so I wouldn't make a stupid mistake.

In the past, both Apple and Google made mistakes in their installers that if anyone else did it, people would assume it was malicious.

There was a bug in the iTunes installer that erased files on people's hard disk if there was a space in the name.

There was also a bug in the Chrome installer that made your hard drive unbootable if you had system integrity protection turned off.

</comment></comment><comment><USER17> All of the AWS services I've used are difficult to work with. Documentation is often vague, outdated, incomplete, or nonexistent. The whole system seems designed to create jobs for AWS admins. Yes, you've got tons of power and control, but what we often want is transparency and simplicity, and that's what AWS is worst at doing natively.

<comment><USER18> I disagree on the documentation bit. I think AWS's docs are really good overall. You have the services FAQs for high level overview + AWS Docs to get deep in to the weeds.

<comment><USER19> They are good in some areas, but certainly not good in others. Eg when it comes to how aws codebuild/deploy and how ECS service/instance/task roles interact.

It seems AWS teams are very vertical, leading to more complex cross services interaction being badly documented, as it's "nobody" who truly owns it?

<comment><USER20> Yes, their organizational structure and the lack of trust that sometimes flares up between teams really shows in the integration. Which is, of course, exactly the level where most customers live. IAM used to be exactly that but they centralized that cross-cutting concern and it's improved a lot.

</comment></comment></comment></comment><comment><USER21> IAM wildcards are the new chmod 777.

</comment><comment><USER22> It doesn't help that AWS IAM is often confusing and inconsistent. And some permissions that should have resource-level granularity and/or support conditions, don't. To be fair, this does seem to be improving somewhat, but even some newer permissions aren't able to be controlled in as granular a way as I would like.

</comment><comment><USER23> One thing I find interesting is that AWS has added some safeguards to the console to protect against exactly this, since it's presumably a very common issue. As of the last couple years when you make any S3 bucket open to the world you see a big warning about it.

However if you're following the "industry best practices" and using something like Terraform to manage all your resources including IAM policies, you won't ever see the warnings. If you take a step back, it's somewhat bizarre that we've decided that having infra teams manage hundreds or thousands of lines of not-very-human-readable JSON across all the IAM resources they manage is the proper way to do things. I believe there are some linters that have some semantic understanding of IAM rules that could provide the same benefits, but at least when I last looked into it they weren't very mature and didn't match all of AWS' own rules.

After experiencing some of the pains of managing a large Terraform configuration in the past, I've definitely started to wonder if we take the idea of "infrastructure as code" too literally. I think manually writing text- only configuration files for infrastructure should start to be seen as an anti-pattern as well, and we should mostly be working with better, more intuitive UIs for creating resources and then outputting the representation in some log format (which can then be read back by the same tool for reviewing/diffing, replayed in additional environments, rolled back, etc.)

<comment><USER24> >> we've decided that having infra teams manage hundreds or thousands of lines of not-very-human-readable JSON across all the IAM resources they manage is the proper way to do things.

This is exactly why with few of my friends started to work on a tool that uses a typed language to express IaC. We can leverage and or relations for AWS objects. One quick example. S3 resource is PublicWebsite or ForwardOnly or PrivateBucket. The individual resources then have a bunch of mandatory properties (using and relationship between them). It is much easier to read and we have reduced the number of lines of code that we need to grasp to understand a service significantly. It is also possible to remove options that you do not want to give to developers at all (for example PublicWebsite is not a required option for most teams using S3). I really liked Terraform at the beginning when I thought they are going to improve significantly over the years but it did not happen. Instead they went down the same rabbit hole many other projects, lets invent a new language to express Iac. We do not need one. ML languages are perfectly capable to capture IaC and those languages are perfect fit while HCL lacks basic expressive power resulting in seggfaults/exceptions left and right. I still remember the first time we accidentally set both forward all requests to and website for an S3 bucket and we had to debug why Terraform just crashes with a meaningless error message. Imagine when you are trying to do something security related with such a tool. Not fun.

<comment><USER23> Sounds really interesting, is there a public repo up yet to take a look at?

<comment><USER24> Could you reach out on Keybase or email?

</comment></comment></comment></comment><comment><USER25> The original thread is good, because it states the problem _and_ links to a number of tools which mitigate the problem in various ways.

I'd say that IAM is a too low-level interface (or language). It makes it hard for engineers to think at the convenient enough level of abstraction correctly. (Imagine writing e.g. a C++ compiler in 6502 assembly.)

An obvious solution would be to introduce a tool / language which allows to operate at the level engineers are used to think at, validate the structure, and analyze the potential breach impact for every resulting piece. (Sort of like, again, a compiler. Or at least something like Terraform as a first step.)

A few steps in that direction are already done with the tools mentioned in the original thread. But I suspect that a lot can still be done in this area, bringing fame and potentially money to those who would come up with a tool which becomes widespread. (I mean, it could be a wide project / startup idea for those who understand both IAM and formal methods well.)

<comment><USER26> This is exactly the sort of problem solved by cdk: [https://docs.aws.amazon.com/cdk/latest/guide/home.html](https://docs.aws.amazon.com/cdk/latest/guide/home.html) with cdk you generally don't have to mess with IAM constructs, and can just use the provided APIs to setup necessary permissions (and those permissions are always as narrow as possible by default)

</comment></comment><comment><USER27> Noob question but doesn't having a private VPC at least limit external users from accessing anything since they have to be part of the network?

<comment><USER28> S3 buckets are accessible everywhere generally.

<comment><USER27> yes S3 is the one exception cause its global

</comment></comment></comment><comment><USER29> The sooner that these cloud companies work to create a common open API the more secure and better off we'll all be. The idea of spending so much time being specialized for a particular cloud provider is stupid, when you've built your tech career not knowing actual technology but just a proprietary overlay that doesn't even resemble anything useful outside of the organization.

</comment><comment><USER30> Apart from IAM complexity, I found it interesting that the author puts the cost of this breach at 80M. Yes, that's the cost of the fine, but the true cost including reputation, etc are definitely way higher than that.

80M to a company like Cap One with almost 30B in revenue is an easy write off. The other costs can be really hard to recover from.

<comment><USER31> You're missing development cost to remediate all of the security issues revealed via auditing.

</comment></comment><comment><USER32> Make IAM part of the design of the application. If you need to use AWS API calls, then you need your app's design architecture docs (you have those right?) to list the IAM permissions needed to do each thing, and stuff that info into ADRs, and link to some IaC that you used to stand up your dev/test environment. All of this creates 1) formal IaC used to apply the permissions, 2) formal documentation of what functions need what permissions. As a final step during development, write tests that verify the IAM permissions are as expected.

You will of course need some way to scale this later, but as long as an artifact of your build pipeline is auto-generated IAM policy jsons, an org- wide security team can analyze them with automated tools and remediate as needed.

</comment><comment><USER33> IAM is fine, AWS IAM is needlessly complicated with garbage policies and lack of explanation.

</comment><comment><USER34> IAM is a mental model close to a language. And until you understand that mental model it might as well be Japanese to an English speaker. But once you are able to understand that model crafting extremely fine grained policies becomes a breeze.

</comment><comment><USER35> This thread reads like an ad for PolicySentry

</comment><comment><USER36> In practice, I've see access controls typically as being too loose creating risk in areas such as admin access or with wild cards as in the Capital One breach. The alternative is often too tight in which case developers struggle with ops to manage the things they need access to. Just in time access controls (and change logs) and isolating resources through the concept of a project or tenant is one approach, and, if you will pardon the plug, the approach we've chosen with our no code, infrastructure as code platform www.duplocloud.com.

</comment><comment><USER37> > And honestly, the problem has been so difficult to solve, that I think every > AWS customer leveraging Instance Profiles or machine roles is vulnerable to > this somewhere. If one app gets compromised and you haven't limited blast > radius, you're screwed.

What a shit product. I loved it back when we could discuss IT infrastructure without using AWS product names.

They have infiltrated IT and the prices will continue to rise. If you took the bait; you're screwed.

They are ripping through your data (hosted on THEIR machines) to compete against you.

Here are my thoughts. IT'S A TRAP! STAY AWAY!

</comment><comment><USER34> I think this is why AWS has went to recommending the multi-account model with a service per account. That model greatly limits the blast radius of misconfigured IAM in an account so that if you lose a service. You lose that services data. But almost completely block any cross application compromise. That being said multi-account can be just as difficult as IAM if you don't properly architect for it.

</comment><comment><USER38> IAM is hard; but deciding that a web proxy shouldn't have access to IAM credentials should be easy. This is why I wrote imds-filterd.

<comment><USER39> [https://github.com/cperciva/imds-filterd](https://github.com/cperciva/imds- filterd)

That's clever. The format of the config file looks pretty intuitive as well.

</comment></comment><comment><USER40> AWS Zelkova is in theory supposed to find these sorts of issues. I haven't used it, so I'm curious what others think about it.

<comment><USER41> I went to a talk about it at Re:Invent and it does seem to solve the issue in theory but the service based on it (Access Analyzer) seems to only apply to very limited use cases.

<comment><USER42> Is Re:Invent worth the trip? For me the cost would be formidable.

</comment></comment></comment><comment><USER43> Aside from the inherent complexity of complex systems, there's another layer we don't talk about and that is arbitrary complexity, particularly in communications, standards and documentation.

A lot of IAM does not need need to be that hard but concepts need to be poignantly clear. It's harder than it needs to be.

<comment><USER44> I wonder about the complexity and AWS motivations.

What does AWS gain by improving IAM? There are barely any competitors, so they won't be losing people for that. They offer their own AWS professional services happy to charge you for making it "understandable". Their service agreements largely absolve them of client mistakes. Which usually result in larger bills from AWS.

<comment><USER43> That's pretty cynical.

AWS is a ball of complexity because it grew organically that way, and they don't have a culture of explaining, or, keeping things simple.

Both of those things would require strong strategic guidance, and a real effort to do.

Unless Bezos edicts: "Our APIs must remain simple even as they scale, and we must document in a manner that keeps the 80% common path easy to use, while the remaining 20% arcane functionality available ..." then it would happen.

But it won't.

It's reasonably well curated arbitrary complexity, it is what it is.

This is not an issue anyone handles well.

<comment><USER44> No cynacism meant. My mistake. "motivations" was incorrect. I was trying to ask about how the business of AWS manifests such a thing. Which I think you've described. Thanks!

</comment></comment></comment></comment><comment><USER45> To read as text: [https://threadreaderapp.com/thread/1291801858676228098.html](https://threadreaderapp.com/thread/1291801858676228098.html)

</comment><comment><USER46> Are there any good papers out there for anyone crafting IAM systems?

More on theory and overall goals than "here's how you use SELinux"

</comment><comment><USER47> FaaS helps here.

It's easier to reason about the access one function does than all the infra a monolith needs to access.

<comment><USER48> You'd think that, but Friday I just helped a dev team deploy a Lambda function that had full capability to update any Lambda in the account. The devs didn't know anything about how the app worked, since it was a drive-by from the architect. He, in turn, just grabbed an AWS blog post, confirmed that it worked in his personal account, and called it a day.

Also, since the devs don't know IAM, every resource request is a wild card. A function compromise would allow deployment of a new function that could extract every SSM secret, Cognito identity, and S3 object.

</comment></comment><comment><USER49> IAM stands for Identity and Access Management:

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

</comment><comment> pi-victor but still, there are services (e.g. dom9) that implement alert and monitoring for cloud infrastructure security.

</comment><comment> lachlan-sneff What got breached?

</comment><comment><USER50> Too much swearing in the twitter thread. Puts me off.

</comment><comment> tedk-42 Another reason why microservices are a good thing. They result in micro level permissions for individual resources.

In saying that though, k8s in AWS was really shit at limiting what IAM roles containers could assume without it being the instance role. Crap like kube2iam and kiam came out to butcher the AWS metadata/instance networking. Thankfully AWS solved it with their new OIDC IDP.

True DevOps culture workplaces have Devs writing their IAM roles as they know what services the app might talk to.

Keen to try out some tools mentioned by the twitter person

<comment><USER51> You can just as easily give overly permissive IAM credentials to a microservice. That's what happened here. Some tiny little web service was breached, and that service was provisioned a full-access IAM credential.

<comment> tedk-42 If you're deploying a microservice on an individual ER2 inctance with an instance role, you're doing it wrong. Not sure where you got the idea it was a microservice. Names like a dodgy app server of some kind.

<comment><USER51> The point I am trying to make is "microservice" does nothing whatsoever to solve the problem of people incorrectly provisioning IAM permissions.

<comment> tedk-42 Nor does it in make developers better at their jobs.

The point i'm trying to make is if the scope of what a system can do is limited, it's permission boundary/model is easy to define.

Many things led to the incorrect provisioning of the IAM role. Lake of understanding of IAM for starters as well as consequences around it.

By no means am I saying microservices would solve the problem. But it sure does make it easier to define what permissions your app needs to have as well as limit the blast radius of what is exposed when done correctly.

This is impossible with monoliths on EC2 instances.</comment></comment></comment></comment></comment>


Start a business with Kickstarter donors as angel group - <AUTHOR>

Wondering whether anyone had heard this idea, or thought about it?
Basic idea is, you pitch on Kickstarter and offer equity as prizes.
Any reason why this might be illegal, or too inherently risky for investors? <comment><USER2> I actually thought about this long ago and, if I recall correctly, it was illegal at the time. It appears as though the Jumpstart Our Business Startups (Jobs) Act may have removed those restrictions, so a crowd funding investment operation may now be possible [1]. Something like that could probably be very successful. For example, had the Light Table Kickstarter offered equity as an option I can guarantee it would've gained quite a few investments.

[1] - [http://money.cnn.com/2012/04/05/smallbusiness/ipo- bill/index...](http://money.cnn.com/2012/04/05/smallbusiness/ipo- bill/index.htm)

</comment><comment><USER3> It's very interesting whether this would be possible. I thought the first guideline on kickstarter prohibits this:

"A project has a clear goal, like making an album, a book, or a work of art. A project will eventually be completed, and something will be produced by it. A project is not open-ended. Starting a business, for example, does not qualify as a project."

<comment><AUTHOR> I don't see why a company can't be started with one project in mind, e.g., Light Table.

The exit might be to sell the product to a buyer once the business case is made, at which point the investors realize the capital gains.</comment></comment>


PyCon 2012 - <AUTHOR> http://us.pycon.org/2012/

<comment><USER2> I was on Startup Row in Atlanta last year and was able to meet jnoller. He was a great host and it was a fantastic and well-run event. If you're coding in Python, it's worth checking out.

Also, it looks like I will be back this year, not with my startup, but with a company I found at a booth at PyCon 2011. If you're looking for a Python job, I can strongly recommend attending PyCon.

<comment><USER3> Thank you. It's not just me - all the credit goes to the entire team, especially Van Lindberg for the past two year.

Also, we're discussing bringing startup row back en-force this year, if anyone is interested.

<comment><USER2> It would be great to see Startup Row back. It's a great way to see all the great new things people are building with Python and for them to get exposure to boot.

</comment></comment></comment><comment><USER3> As always, I am available to answer any questions and provide information as needed around PyCon!

<comment><USER4> I went to SciPy this year for the first time, and I _loved_ it. I understand that PyCon is a much broader conference, but do many people interested in scientific python show up for this?

<comment><USER3> _yes_ \- we get a lot of scientists, especially big data scientists at the conference, and we encourage talks and tutorials around scientific computing+python - check out <http://python.mirocommunity.org/> for past talks for a tasting!

</comment></comment></comment><comment><USER5> PyCon seems to be some sort of an amazing global annual movement. I haven't gone to one yet (I do have a plan in the future to do that) but I know that many more countries want to have a local PyCon as well (to cut the transportation cost). They have the people but lack of the Python skill, marketing, and organization.

I think in about 5 years or so we will see more and bigger local PyCons.

<comment><USER3> The PSF helps out local conferences as much as it can - any "revenue" from PyCon is sent back out by the board of directors to local conferences in many, many countries. Check out <http://pyfound.blogspot.com/>

<comment><USER5> Yeah, I noticed that PSF is trying to support local communities as much as they can as I did their recent survey for the local communities. The survey questionnaires are focused toward "How can PSF help you to grow your community".

Great stuff. PSF is expanding with a vision/goal!

<comment><USER3> Thank you. We're trying.

</comment></comment></comment></comment><comment><USER6> I wish this lined up with my spring break! Sadly this is one week before spring break for me.

</comment><comment><USER7> PyCon Chair Jesse Noller wrote about the launch this morning: [http://pycon.blogspot.com/2011/08/pycon-us-2012-official- lau...](http://pycon.blogspot.com/2011/08/pycon-us-2012-official-launch.html)

</comment><comment><USER8> Glad to see planning is happening quite early this year. I hope it turns out to be the best PyCon yet - this will be my first!

Any sort of ETA available for registration info and sign-up dates? Gotta start getting through the BigCo red tape ;)

<comment><USER3> We're working on the call for papers / posters / tutorials next, and hoping to finish that within a week or two. I don't have a solid date on registration yet, but once we do we will announce it.

<comment><USER8> Thanks! I'll be on the lookout.

</comment></comment></comment><comment><USER9> Why is Microsoft "only" a Gold sponsor? They have more cash on hand and are worth more than Google and Dropbox combined.

It may be a trivial thing to note, but it still seems odd to me.

<comment><USER10> Microsoft is Platinum(now?).

<comment><USER9> Ah, OK, shift the whole scale I referred to over...Google,Dropbox Diamond and Microsoft platinum.

Wasn't aware of how much support Microsoft provided in general though. Thanks!

</comment></comment></comment><comment><USER11> Any volunteer opportunities ?

<comment><USER7> There's nothing listed on the site yet since it just launched today, but here's the remnants of the 2011 Program Committee page: <http://us.pycon.org/2011/volunteer/ProgramCommittee/> and here's the mailing list details: <http://mail.python.org/mailman/listinfo/pycon-pc>

The Program Committee does stuff like gather and review talk submissions, come up with the conference schedule, etc. It's a good mailing list to find out what work needs to be done and what help is needed.

Keep an eye on the site for a volunteer page as we fill in the gaps and build out the content as we dig in.

<comment><USER3> I'd add the best way to get involved is to join pycon-organizers (<http://mail.python.org/mailman/listinfo/pycon-organizers>) - as things ramp up, more and more opportunities will pop up.

<comment><USER11> Thanks much. I'll join and keep an eye out.

</comment></comment></comment></comment><comment><USER12> Any idea when registration will be open?

<comment><USER3> See: <http://news.ycombinator.com/item?id=2841639></comment></comment>


Show HN: Rinocloud – GitHub for data - <AUTHOR> https://rinocloud.com/ <comment><AUTHOR> Eoin here, co-founder of Rinocloud.

Hope this tool is useful to some of you - let me know if you have any questions. Im hoping to get some feedback.

<comment><USER2> What are the similarities and contrasts to git?

<comment><AUTHOR> Its mostly similar to github, in that its a central place for you to talk about your data (for github its code), and there is a very strong track of each team members actions.

similarities to git; 1) we are making a portable datastore where the entirety of a body of data (metadata, discussion, data itself) can be moved around in a plain text format. 2) versioning and tracking of all evolutions to the data.

differences; obviously the diff'ing since a lot of datasets are non-text, or are very large (which we can handle).

</comment></comment></comment><comment><USER3> Any plans for an R integration...

<comment><AUTHOR> Hella yeah! our latest integration is python, and R (mostly being requested by bio-statisticians) and C (for running hardware in labs) are coming next</comment></comment>


Lidar Company Velodyne Debuts $100 Auto Safety Sensor - <AUTHOR> https://www.forbes.com/sites/alanohnsman/2020/01/07/lidar-pioneer-velodyne-debuts-100-auto-safety-sensor-as-self-driving-cars-pace-to-market-slows/#1483897e6cbc <comment><USER3> So Lidar is getting cheaper, but the advantage of Lidar (Vs. optical) may be diminishing.

Lidar worked really well because it was computationally impractical to process visual images in near real-time onboard. Lidar simplifies the informational inflow, which reduces computational cost. But the computational cost and practicality of processing optical data onboard has changed radically, it is now practical and affordable (both due to substantially improved software and new/cheaper hardware).

Keep in mind humans use "optical sensors with parallax" (i.e. our eyeballs). Cars are already optimised around that assumption (e.g. headlines to improve visibility in the visible light spectrum). Lidar still has advantages, but also a bunch of drawbacks (like dispersion and sunlight disruption), optical sensors do too (e.g. glare) but they're a lot more intuitive for humans because we share them.

I guess what I am saying is: Are you betting on better sensor tech (Lidar) or better computational tech (Optical)? I think Lidar will hit a ceiling after the "easy wins" have been consumed (and we're approaching that point), whereas optical has no real ceiling (even over and above human's innate abilities). With optical you can understand the world as humans visibly see it, Lidar sees the world fundamentally differently, seeing both less (bad) and more (good).

Obviously it is a somewhat false choice, but if people are investing dollars into development of both techs it is a choice that matters.

<comment><USER4> If we want to be safer, then we need to blend sensors.

We do this as humans. We use our ears for sound and inertial detection.

Lidar, Radar, colour and near infrared optical all have a place in autonomous driving.

I dont think we are really anywhere near optical working reliably as a single source. I am immediately suspicious of anyone who suggests otherwise, because they either believe to much in the state of AI, or haven't thought enough about life critical systems to be let near anything autonomous. Worse still, they may be out to make a quick buck.

The thing that lidar has is speed and accuracy. 100hz update rates, and 1/100th second latency is not unthinkable. With optical systems you're lucky to get 25hz with sub 100ms latency. Thats just for depth estimation using semantics, you still need to feed it into your driving model.

Lidar works way better at night, it works a tonne better with unknown objects. However, like optical its shit in rain/snow. Hence why decent resolution radar will be needed as well.

<comment><USER5> >If we want to be safer, then we need to blend sensors.

isnt that what a kalman filter does? I thought most autonomous cars have sensor fusion to blend all sensors

<comment><USER6> A Kalman filter solves the specific problem of estimating a finite-dimensional state vector from uncertain measurements, where the measurement errors and their correlations follow (or can be approximated as) a multivariate Gaussian.

That works quite well for, say, combining GPS (which has short-term noise) with inertial/odometry measurements (which suffer from long-term drift) to determine your vehicle's position, orientation, and velocity in 3D space (expressible as a 9-dimensional state vector). But it's not directly applicable to problems like combining map data with LIDAR and vision to generate a representation of your surroundings.

<comment><USER5> That's informative, thanks. I was under the impression that autonomous cars already combine all their sensor readings

</comment></comment></comment></comment></comment><comment><USER7> I'm not a big hardware nerd, how do this and that $16,000 one from earlier this week compare? They're both roof top, spinning sensors it seems but at very different price points. Is this one not as far distance as the other?

<comment><USER8> LIDAR units have different effective ranges and, most importantly, number of points they capture. These cheap units generally have a small number of points. Looks like the Velabit has a range of about 100 meters, but FOV is 60 degrees horizontal by 10 degrees vertical, so you would need to mount several of these around a vehicle to get the equivalent coverage of a 360 degree unit. The press releases don't say how many points are in its point cloud, but I'm guessing it's probably 1/10th of a larger unit's.

<comment><USER9> To add to above comment: comparison of some different models for Ouster (a competitor):

[https://ouster.com/blog/128-channel-lidar-sensors-long- range...](https://ouster.com/blog/128-channel-lidar-sensors-long-range-and- ultra-wide-view/)

Discussion about above:

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

</comment></comment></comment><comment><USER10> Better link: [https://velodynelidar.com/press-release/velodyne-lidar- intro...](https://velodynelidar.com/press-release/velodyne-lidar-introduces- velabit/) states "60-degree horizontal FoV x 10-degree vertical FoV" I wonder whats the resoltion though. Judging by the name "velabit" it could be low.

<comment><USER11> It wouldn't have to be too much to overcome the resolution of current front- facing radar and ultrasonic sensors, which are 1x1 resolution ;)

</comment></comment><comment><USER12> Very cool to see this price point. If Velodyne really can manufacture and sell it in volume and be profitable it's an amazing evolution for Velodyne.

If it's a loss leader to buy attention and stay relevant versus their fast moving competitors it will become obvious eventually.

</comment><comment><USER13> It'd be pretty cool to use this as part of an assistance tool for people with visual impairments. Convert the positional data to something you can learn to parse with your ears, and people could get a better sense of obstacles around them. I'm really not sure what the right conversion strategy or user interface is, but it seems like the sort of thing that'd be relatively straightforward.

<comment><USER14> Microsoft has something similar: [https://www.microsoft.com/en-us/ai/seeing- ai](https://www.microsoft.com/en-us/ai/seeing-ai)

</comment></comment><comment><USER15> It's really nice to see LIDAR getting cheap I've wanted to play around with them for ages but the buy-in for anything other than cheap 2d units has always been way too high for me to justify. I do wish there were at least a few specs in this though.

<comment><USER16> Yes, there's nothing about the resolution. You can get single-beam scanners for about that price now. If it's only a few beams, it's not a big deal. You can get a small number of beams automotive LIDAR from Continental right now.

If you took a single-beam LIDAR and reflected it off a reflective prism where each face is at a slightly different angle, you'd have a somewhat slow multi- beam scanner with only one emitter and detector. I looked into doing that for the DARPA Grand Challenge, We were thinking of a mod to a rotating scanner used in laser printers to scan the page. There are optical companies that can cut and polish custom prisms. We were too small a team to build our own scanner, though.

<comment><USER17> Another way to do it is to mount a 2D LIDAR to scan in the vertical plane, and then pan that around. A 180 degree pan will net you a dome/spherical volume (although in a slow manner).

You could do this easily with cheap parallax sensors (like you find on Neato vacuum cleaners, and which are now sold as separate units - RPLidar and such). This has also been done using SICK coffeepot-style 2D LIDAR units (such rigs tend to be large and heavy, tho).

Something I've often considered is the idea of a "stochastic" scanner - <USER2> is, don't worry about strict angles, just let the sensor scan at random angles, and note the angle and reading. Over time you'd build up a complete scan. Just an idea I've rolled around in my head; the idea was to eliminate the need for syncing and timing of the scan hardware (2D or 3D), at the price of not necessarily getting a complete perfect scan all the time. It was something of a thought experiment I had while thinking up ways to DIY a LIDAR sensor in a very cheap manner, beyond what has already been done.

<comment><USER18> CSIRO did something like this with their Zebedee system[0], basically a Hokuyo 2D spinning lidar on a spring on a handheld stick. I love this from a design perspective, because it's very usage focused. You already have a human walking around site scanning, and a spring like this gives you the pitch and roll for "free", compared to panning it using an (expensive/heavy/clunky) electromechanical mechanism.

[0]: [https://www.youtube.com/watch?v=DUEAz_naHHg](https://www.youtube.com/watch?v=DUEAz_naHHg)

<comment><USER15> I knew I'd seen one that did exactly like that but could not find a video of it!

</comment></comment></comment></comment></comment><comment><USER19> Its solid-state. Old Lidar needed an expensive revolving sensor

</comment><comment><USER20> Would be really cool to retro-fit these on an older vehicle. Replace the center console with a tablet, some OS handles the lidar.

</comment><comment><USER21> how does one buy this?

<comment><USER13> From Velodyne, presumably, and their website says it will be available mid-2020

</comment></comment><comment><USER22> My 2021 prediction: And the Chinese already got the specs and should start selling $5 units in a year.

<comment><AUTHOR> You beat me to it, but I was going for $50 ;)

<comment><USER23> It will be $5 in China and $50 in the US.

<comment><USER24> $79 for IoT enabled version ;)</comment></comment></comment></comment>


Scaling Unsplash to 10M+ requests/day with a small team - <AUTHOR> https://medium.com/unsplash-unfiltered/scaling-unsplash-with-a-small-team-fbdd55571906 <comment><USER2> So 115 requests/second?

Seems like super expensive infrastructure to handle a very small load.</comment>


New Cryptocat audits - <AUTHOR> https://blog.crypto.cat/2014/04/recent-audits-and-coming-improvements/

<comment><USER2> Oh, and here's the Open Technology Fund's comment: [https://www.opentechfund.org/article/bringing-openness- secur...](https://www.opentechfund.org/article/bringing-openness-security)

</comment><comment><USER2> We at LeastAuthority have written a blog post about the Cryptocat audit from our perspective: [https://leastauthority.com/blog/](https://leastauthority.com/blog/)</comment>


Show HN: Visualizing Your Life in Weeks - <AUTHOR> https://www.failflow.com/life <comment><USER2> I remember I built this exact same thing. I was bored at work and made a small counter of how much money I earned per second, and I enjoyed very much how the number was incrementing. I started gold plating the application, adding features, animations. Soon I was able to configure how much would I make pr day, how much remained of the day. How much remained of the week..

Then I started thinking about averages, and added in configuration to the timeline that would show approximately how far I had progressed until retirement, and then approximately estimated lifespan remaining.

I had it running for a day or so, and just by watching the time tick away made me realize something, I discovered something profound and important to me. The application disgusted me, and I deleted everything.

I don't want to be reminded, it depressed me. Today, I try to cease the moments, and enjoy every seconds. Even the bad things are good. Everything is precious and specially wonderful. I am fortunate to have a unique perspective and my life is easy.

Some things are better not to know, to think about or speculate about.

<comment><USER3> > Today, I try to cease the moments

You mean "seize". Ceasing moments sound like you're a meditating monk trying to shut down any thoughts...

<comment><USER2> yes.

</comment></comment></comment><comment><AUTHOR> Excited to share this interactive visualization builder. I have a similar graphic on my personal site that counts down the weeks left in my life, and lots of people found it either interesting or very depressing (mostly depressing) [0]. So I wanted to build a way to let others see their own!

Based on the waitbutwhy article with the same title [1], this visualization builder let's you see the life calendar for your own life. It also includes milestones of some successful people, denoting which week in their life they reached a certain achievement.

I initially submitted this to HN a few months ago and it got flagged for the title being click-baity, which makes a lot of sense [2]. Though the site itself is the same, I've made the title more accurate and more descriptive and am adding this explanatory comment! Thank you to the HN moderators for giving me insight into why it was flagged the first time. Would love to know if this is still pushing it. Definitely open to any criticism and feedback!

[0] [https://galeeb.com/](https://galeeb.com/)

[1] [https://waitbutwhy.com/2014/05/life- weeks.html](https://waitbutwhy.com/2014/05/life-weeks.html)

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

<comment><USER4> I think another way to design this is less around 'accomplishments', but design it around yourself and the ages of people you care for (relatives, friends, loved ones, etc).

Possibly more interesting to work in our age relationship compared to animals (the ones we eat, the ones endangered, etc.)

<comment><USER5> > design it around yourself and the ages of people you care for (relatives, > friends, loved ones, etc).

A fun exercise is to take ruled paper, number the lines as years, and sketch in your life vertically. Here I was in grade school; this summer I did mumble; etc. People often have a lot of difficulty reconstructing their own lives. Then take someone else's paper(s), and overlap it, aligned by year, or by age. It can result in very interesting conversations.

<comment><USER4> Ooh, doing the exercise with friends would be interesting.

</comment></comment></comment></comment><comment><USER6> am I the only one who thinks tools that induce time anxiety aren't really healthy?

i'd rather use a carrot than a stick. this is a psychological stick.

<comment><USER7> I don't think everyone agrees that this is a stick. There is space between the observation (my life is finite) and the emotional response (I have anxiety about my life being finite). I think the idea of these tools is to help people identify that space, and be able to experience the observation without the emotional response.

</comment></comment><comment><USER8> This is pretty cool. I like this: "If it takes 50 weeks to become advanced at any skill, you can learn about 44 new skills during your career or 64 if you include retirement. Might as well pick something for this week".

<comment><AUTHOR> Thanks for checking it out! I'm thinking about fleshing that point out into its own section.

</comment></comment><comment><USER9> Years ago, back when I had a cube with my own personal white board at work, I covered it in 80 rows each containing 12 boxes each, with the boxes in the first 32 or 33 rows all crossed out. Every month, I'd cross another one out.

It was quite a conversation starter.

</comment><comment><USER10> Pedantic, but I think on the initial screen this should say "Enter your birthdate" (or "date of birth") rather than "birthday" \- the former is when you were born, the latter is the thing you celebrate every year.

<comment><USER11> To be more pedantic, the thing you celebrate yearly is the anniversary of your date of birth. Your birthday is the same as your date of birth. Plus, "date of birth" is a pleonasm IMO since "birthday" is shorter.

</comment></comment><comment><USER12> Date of death calculators were all the rage back in the day of cgi-bin, and the new fangled javascript.

Must be something about working in I.T. which makes you wonder how much more of it you've got left.

</comment><comment><USER13> I liked how you built the /die/{n} URL so that you can just bookmark it and it will update for you. Nice work.

<comment><AUTHOR> Thank you! I was also debating if a weekly email would be valuable, let me know if you'd be interested in that.

</comment></comment><comment><USER14> I really hate webpages where things don't zoom consistently. Zoom should scale everything the same. Just like how zoom works in real life, or essentially any other context with optics, or bringing something closer to read it, or further away to see more of it.

If I'm zooming, I don't want your buttons and graphics to adapt themselves to be relatively bigger. That's godawful behavior that ruins the usefulness of zoom entirely. I'm perfectly capable of zooming back to click your buttons if I really want to. (In other news, the percentage of time I click these buttons is low, on the order of 1/200\. They aren't as important to me as they are to you.)

Why is the web full of this behavior?!

<comment><USER15> > _Why is the web full of this behavior?!_

I believe the root cause is that zooming in and out triggers breakpoints, so the page thinks it's now on a phone instead of on a desktop.

<comment><USER14> That actually makes sense, and I was on a desktop at the time, although I often find it especially aggravating on a phone because it matters more when. There's less screen real estate to begin with.

<comment><USER15> On a phone, pinch to zoom _typically_ doesn't act like resizing the window, so most sites should behave fine. Sites that don't behave when zooming on mobile are probably going out of their way to break things.

</comment></comment></comment></comment><comment><USER16> Nice. But optimistic as it assume you will get to live to 90.

I think there are actuarial tables where you can get an estimate based on your age. Or just mark ~75 as expected and use a different color for extra time beyond the expected.

</comment><comment><USER17> Check out [https://timestripe.com/](https://timestripe.com/) — a similar thing, but fancier

<comment><AUTHOR> Are you the founder of Hype Machine? Haha, because Anthony said the same thing on my product hunt post: [https://www.producthunt.com/posts/you-will-die-in-x- weeks](https://www.producthunt.com/posts/you-will-die-in-x-weeks)

timestripe is definitely much more snazzy and robust - I like it!

<comment><USER17> I like how people can arrive at so similar ideas :)

</comment></comment></comment><comment><USER18> It will be nice to use geolocation to use the life expectancy of the country the person lives on (with a couple of areas that have their own numbers: Sardinia, Okinawa, Icaria, Nicoya, Loma Linda).

I can say 91 years old is a little bit pessimistic (at least for where I live) based on the fact that I have a couple of neighbours that are over 100 years old and still in "perfect" shape.

</comment><comment><USER19> I'm getting a pretty good instance of the Hermann grid illusion [1] from it.

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

</comment><comment><USER20> I can see the point, but any website that starts with asking for confidential info is a turn off. Makes me think about privacy policy, which is a time waste.

<comment><AUTHOR> I was thinking about that! I left a default that you could use under the prompt (it uses my bday, you can have it haha)

</comment></comment><comment><USER21> That visualization is anxiety inducing

<comment><AUTHOR> Sorry it caused anxiety - do you have any thoughts on how to keep it a bit jarring, but not as anxiety-inducing?

<comment><USER21> Nothing to be sorry about, and even though its anxiety inducing, I've bookmarked it ;)

It isn't the app that causes it, I think. It is the ability to see how much is left until the end and how much has already passed.

</comment></comment></comment><comment><USER22> Christ this scares me. No thanks!

<comment><AUTHOR> Sorry! But thank you for checking it out

</comment></comment><comment><USER23> 500,000 hrs is a reasonable approximation of the waking hours in a human life.

</comment><comment><USER24> Another way to visualize it is to view each decade as a chapter. Say that you live to 80, so you have 8 chapters. So if you are 40, half of your book is done.

<comment><AUTHOR> Do you think it's valuable to zoom in and out of timescales for a tool like this?

<comment><USER5> > Do you think it's valuable to zoom in and out of timescales for a tool like > this?

Years back I did a zooming prototype that went from dots as seconds like [1], through days like [2], up to dots as billion years, with customizable grouping/layout. IIRC, when zooming out, it was kind of fun to see the highlighting of your life contract to a pixel or two and fade out. If personal information were available, zooming could interestingly trade off aggregation vs detail, as with zooming maps. But without it... don't know.

[1] [http://www.clarifyscience.info/assets/day_of_dots_clock](http://www.clarifyscience.info/assets/day_of_dots_clock) [2] [http://www.clarifyscience.info/part/QEt9x](http://www.clarifyscience.info/part/QEt9x)

<comment><AUTHOR> This is really cool! I noticed this creates grids of img's, any chance you have a public repo for this site?

<comment><USER5> Thanks. :) The dot per second page? Yeah, ancient 2001 pre-canvas kludgery. Javascript handles short-term updates, and the server refreshes the page periodically, to limit the number of images ancient browsers needed to deal with. No repo. Nothing one would write today.</comment></comment></comment></comment></comment>


Schrödinger's Tcl – Values that differ if you look at them - <AUTHOR> https://github.com/aidanhs/schrotcl <comment><USER2> This is an impressively bad idea. Good work.

<comment><USER3> +1, up thumb or whatever the current thing is.

Having spent my life in networking tech, Tcl...please die.

<comment><USER4> I am primarily working on algorithms and _love_ Tcl for building simple, robust prototypes. It is not perfect (I wish UDP support was a part of a core language or standard library), but I use it surprisingly often. YMMV

</comment></comment></comment><comment><USER5> This guy's done many impressive things:

[https://aidanhs.com/](https://aidanhs.com/)

</comment><comment><USER6> Somewhat related, for Perl:

[http://search.cpan.org/~dconway/Quantum- Superpositions-1.03/...](http://search.cpan.org/~dconway/Quantum- Superpositions-1.03/lib/Quantum/Superpositions.pm)

<comment><USER7> I used this for my Quantum Countdown Sort:

[http://alquerubim.blogspot.com.br/2011/10/quantum- countdown-...](http://alquerubim.blogspot.com.br/2011/10/quantum-countdown- sort.html)

</comment></comment><comment><USER8> If I understand correctly, that looks like a cheating. I'd expect this to be done purely in Tcl, without diving to C-level.

<comment><USER9> Author here: doing this in any language is probably going to depend on some implementation details of the language repl, which may require dropping down to a level where you have access to these internals - for example, I can't think of a way you could achieve it in strict mode JS.

Python may well be able to do it with just the stdlib since it has excellent debugging capabilities, but Tcl is relatively weak. You _might_ be able to do something with `tcl::unsupported::getbytecode` and checking the frame level, but this was just a throw-away novelty so I'm not particularly motivated to find out.

<comment><USER10> Alas, for JS function.caller on a getter isn't standard but will work everywhere and should do it.

<comment><USER6> I don't think it's that easy. If the context is making javascript output something different in it's REPL for just "foo" vs "console.log(foo)", there's other pieces you would need.

Like overriding a built-in type and getting function.caller into valueOf(). As far as I can tell, JS doesn't let you just tweak valueOf(), you would have to re-implement all of, for example, the String class.

<comment><USER10> Reimplementing whole classes wouldn't have been a problem, just replace the original ones with a proxy to a copy.

Luckily console.log calls are actually excluded from the callers stack, so the only way is to change console itself. Just as evil if you also intercept console methods logging and return the original ones, but less of a mess at least.

</comment></comment></comment></comment></comment><comment><USER11> Unrelated but genuine question: what's the appeal of Tcl nowadays? are there applications where it'd make sense to use Tcl?

<comment><USER6> When it was popular, the 2 big drivers were:

\- The cross platform UI, Tk. Even if you didn't like Tcl, it was, for a while, one of very few open source ways to get a UI that worked on a variety of platforms. Many things, mostly the web, killed this need. Also, there are Tk bindings for other languages now.

\- Dead simple, lightweight, way to embed a user facing scripting engine into your application. Especially when the end user might be "technical", but not a developer by trade. This is still a need, but it looks like people are turning to Lua, Javascript, etc. Tcl is still embedded in a lot of hardware devices though...cisco routers, F5 load balancers, etc.

Edit: Related trivia. TCL's inventor, John Ousterhout, was also one of the co- creators of the raft consensus algorithm.

<comment><USER12> The thing is: I know what I think of TCL now, and I know what I thought of it at the time. They're pretty different.

I think ultimately we've come the conclusion that whole design space isn't that productive. Pervasive string expansion in an era of untrusted input probably killed it for the web before it even began.

</comment></comment></comment><comment><USER13> wow this is a super troll idea...

getters that change value... muahahaha

</comment><comment><USER14> I can do this in Python with my `rwatch` module.

        >>> from datetime import datetime
        >>> x = lambda: f'{datetime.now()}'
        >>> x
        <function <lambda> at 0x7f9f435e4510>
        >>> x()
        '2017-09-17 02:14:12.834957'
        >>> from sys import setrwatch
        >>> setrwatch({id(x): lambda f, o: o()})

        >>> x # look, ma: no parens!
        '2017-09-17 02:14:16.306198'
        >>> x
        '2017-09-17 02:14:17.734965'

<comment><USER9> One thing that may be non-obvious to people unfamiliar with Tcl is that it's syntactically a shell-like language, i.e. functions are invoked with a space- separated list of arguments and no parens. So `schro` on a line by itself executes the function and `[schro]` is equivalent to `$(schro)` in shell.

<comment><USER6> Only when you're using the REPL. They call it "interactive mode". [ls], for example, will generate an error if you put that in a tcl script run non- interactively.

 _Another common cause can be the difference between interactive and command modes for Tcl. When you start up a Tcl interpreter, get a prompt, and type in commands to Tcl, this is called interactive mode. In this mode, Tcl does a few extra things for you. For instance, if you type ls, and you have no proc called ls defined, Tcl will try to exec a command called ls. This sometimes misleads a new Tcl user into thinking that Tcl has ls defined. "_ [1]

[1] [https://wiki.tcl.tk/1630](https://wiki.tcl.tk/1630)</comment></comment></comment>


U.S. Military emits more greenhouse gases than Portugal, study finds - <AUTHOR> https://www.reuters.com/article/us-climate-change-conflict-usa/u-s-pentagon-emits-more-greenhouse-gases-than-portugal-study-finds-idUSKCN1TD2SD <comment><USER2> Not that this means anything, but I was curious about the relative sizes just in terms of people:

Portugal population: 10.3 million

US Military: 1.3 million active duty + 800,000 reserve

<comment><AUTHOR> Or you can look it by spending: ~$700 BILLION a year and obviously it involves moving and sailing around. Portugal's entire GDP is around $240 Billion (not budget, GDP)

<comment><USER3> So they actually get quite limited bang for buck. Or are pretty low CO2 intensive compared to a regular economy with people in it. Or manage to spend a lot on contractors that are not adequately accounted for, or ... A global carbon tax accounted for at a company level would alleviate this problem of comparisons. And is unfeasible (alas).

<comment><AUTHOR> contractors is my guess. Most of that $700B goes to arms manufacturers and providers.

</comment></comment></comment></comment><comment><USER4> Either our current conception of the nation state changes, or civilization dies violently.

Meanwhile, the New York Times front page is filled with discussion of Iran and not a thing about climate collapse.

<comment><USER5> > Either our current conception of the nation state changes, or civilization > dies violently.

This doesn't seem like an either/or to me. IMHO the most likely outcome is that our conception of the nation state will change just as civilization dies violently. Same event - just as the nation state was born out of war, it'll die in war.

This doesn't necessarily mean that all of humanity is going to die. Rather our _conception_ of what it means to be "civilized" \- which for most people is synonymous with "developed nation" \- will die, and there will be new social organizing principles with new dominant technologies.

</comment></comment><comment><AUTHOR> is it against the rules to ask why was this flagged? It's a Reuters story, based on a Brown University study and about a topic this community is interested. Ideally everyone should be interested but that's a different story

</comment><comment><USER6> Does Portugal have a military?

</comment><comment><USER7> The title is a bit skewed, should of course be US defense for us who don't view the Pentagon building as representative of the whole DOD.

But the message, if true, is very poignant. I'm of course part of the choir as green liberal anti war but this affects us all.

<comment><AUTHOR> I changed the title, if the mods let it be. In the original story it was Pentagon and can confusing.

(Even if you filled the Pentagon with cows, I doubt it would surpass Sweden and Portugal's greenhouse gases :) )

</comment></comment><comment><USER8> Yeah, inaccurate and clickbaity headline.

<comment><USER9> It's the key finding of the study, I don't see how it's clickbait (surely the opposite, it's telling you upfront what the topic and answer is rather than "you won't believe who ...").

Do you have something more substantial than "inaccurate" as a critique of the study?

<comment><USER10> The clickbait part is saying "the Pentagon" when they mean "the US military." A casual reader may assume the headquarters building alone produces that much gas, which is obviously false.

Of course the excuse is that "the Pentagon" is often used as a metonym for the Department of Defense. But that means the leadership specifically. You might say "the Pentagon ordered fifty F-35s," but never "the Pentagon invaded Afghanistan." It's a really awkward phrasing at best, and I can't imagine that it's not deliberately deceptive. Are the facts not shocking enough?</comment></comment></comment>


LAUSD halts home use of iPads for students after devices hacked  - <AUTHOR> http://www.latimes.com/local/lanow/la-me-ln-lausd-ipad-hack-20130925,0,6974454.story

<comment><USER2> How in hell did the school district think it was going to keep the kids from doing this? And how do they expect to keep the kids from (for example) tethering to their cell phones in school now?

The other question is: why in hell do you _want_ to do this?

<comment><AUTHOR> Desperation?

</comment></comment><comment><AUTHOR> Most of the commenters are wannabe school cops or something. I think it's fantastic that they figured out how to make it into something useful.</comment>


Tesla Handles Better than a Corvette Z06 - <AUTHOR> http://danielodio.com/uid/52145

<comment><USER2> The author has no idea what he's talking about. He makes several claims of fact for which he offers zero evidence in support, then goes on to specify constraints that favor his viewpoint. To paraphrase: "The Tesla handles better than a Corvette Z06, and by handles better, I mean I prefer it."

I get that the author likes the Tesla, and the Tesla is a _fantastic_ automobile, but by every objective performance criteria, a Z06 Corvette eats its lunch. It's a silly comparison that needn't be made.

        | Metric    | Model S      | Corvette Z06 | Delta        |
        | </comment><comment>    | </comment><comment>-      | </comment><comment></comment><comment> | -----        |
        | 0-60      | 4.3s         | 3.6s         | -0.7s        |
        | 1/4 mile* | 12.6 @ 108.3 | 11.9 @ 123.5 | -0.7 @ +15.2 |
        | Slalom    | 66.8 mph     | 74.1 mph     | +7.3 mph     |
        | Skid pad  | 0.86g        | 1.06g        | +0.2g        |

* 1/4 mile measurements in seconds @ mph format

Sources:

Tesla S - [http://www.edmunds.com/tesla/model-s/2012/road-test- specs1.h...](http://www.edmunds.com/tesla/model-s/2012/road-test-specs1.html)

Corvette Z06 - [http://www.roadandtrack.com/cm/roadandtrack/data/RT_To- the-P...](http://www.roadandtrack.com/cm/roadandtrack/data/RT_To-the-Power- of-12_data.pdf)

A far better comparison is the BMW 5-series hot rod, the M5. The M5's MSRP starts at $90,200. The Tesla Model S Performance MSRP starts at $87,400. Both are sedans, and both are best-of-breed in the performance category

        | Metric    | Model S      | BMW M5†      | Delta        |
        | </comment><comment>    | </comment><comment>-      | </comment><comment></comment><comment> | -----        |
        | 0-60      | 4.3s         | 3.6s         | -0.7s        |
        | 1/4 mile* | 12.6 @ 108.3 | 11.9 @ 119.7 | -0.7 @ +11.4 |
        | Slalom    | 66.8 mph     | 71.0 mph     | +4.2 mph     |
        | Skid pad  | 0.86g        | 0.95g        | +0.09g       |

* 1/4 mile measurements in seconds @ mph format

† M5 equipped with MDCT transmission

Sources:

Tesla - Same as above.

BMW M5 - [http://www.roadandtrack.com/cm/roadandtrack/data/9bccd94b2e8...](http://www.roadandtrack.com/cm/roadandtrack/data/9bccd94b2e804299000526ed5127b74b.pdf)

By any objective measure, the Z06 and the BMW M5 beat the Model S. The Model S comes closer in performance to the M5, but it still loses pretty badly in all categories:

0-60: A difference of 0.7s in the race to 0-60 is around 2-3 car lengths, so a pretty substantial difference.

1/4 mile: In the quarter mile, we see that the elapsed time is similar to the delta in the 0-60 race, but the big difference is in the trap speed (the speed at the end of the quarter mile). The turbocharged V8 in the M5 has more power at higher speeds.

Slalom: A difference of 4.2 mph in the slalom is huge. To give some sense of perspective, a Volkswagen GTI makes it through the slalom at around 65 mph, about 2 mph shy of the Model S. The Model S loses ground to the M5 here because of its weight. The Model S weighed in at 4,770 lbs, where the M5 is 4,525 lbs.

Skid pad: Using the GTI as our point of reference again, it pulls a 0.90g around the skid pad in a Road & Track test. The Model S is again hindered by its weight, but there is probably a tire factor as well. Tires can have a significant effect on efficiency, and I'd imagine that the Model S optimizes for range, rather than skid pad grip.

So, the author likes the Model S. For every day driving, the Model S is far more car than anyone needs. However, that doesn't mean it handles better than a Z06. Saying so is either ignorance, or intellectual dishonesty.

<comment><USER3> I think you should cut/paste this to his blog as well -- so people not getting there via HN get the news.

</comment></comment><comment><USER4> I fail to see how the author is a credible expert on the matter of high- performance vehicles and their handling.

<comment><USER5> I agree, and I feel the author uses "handling" in a nonconventional manner. I typically see it used to refer to cornering, steering feedback, and overall nimbleness. He seems to equate it to controlling acceleration in a straight- line.

Also, the majority of supercars also come with "push the pedal and forget" multi-clutch transmissions, that make the pedal experience similar to the Tesla.

The post boils down to someone thinking the Tesla is a really cool car, which I agree with.

</comment></comment><comment><USER6> Interestingly the Z06 has a 50/50 weight distribution, whereas the Tesla has a higher weight distribution at the rear. Both are rear wheel drive, so if people are finding that the Tesla handles better it may just be down to the slight WD difference.

Or, they could be pretty damn close.

<comment><USER7> Or it could be confirmation bias--if you just bought a Tesla you probably want to feel good about your decision.

</comment></comment><comment><USER8> "I also suspect that the power from an ICE is pulsating as the cylinders fire which cause the tires to have a tendency to lose traction."

Anyone knows whether that is true? ICE uses a flywheel, cannot it fully smooth the action?

<comment><USER9> It's not true. For a modern eight-cylinder internal combustion engine with a flywheel and a balanced, counterweighted crankshaft, there's no significant pulsation present in the output power train. If there were, it would quickly destroy the transmission and rear differential.

There are a number of excellent reasons to suppress any significant pulsation in the power from an ICE, and the flywheel is the primary way to accomplish this.

</comment></comment><comment><USER10> Isn't it the torque curve that's smooth for electric motors and not power?</comment>


List of common English usage misconceptions - <AUTHOR> http://en.wikipedia.org/wiki/List_of_common_English_usage_misconceptions#Grammar <comment><USER2> When explaining what is actually permitted, the page will note many texts that ignore the supposed rule.

When explaining what is actually forbidden, it will be noted how urgently this should be corrected, as widespread usage of the prohibited form indicates gross ignorance.

A little consistency would be nice. :)</comment>


Google Is Bing's 4th Largest Referring Source - <AUTHOR> http://searchengineland.com/google-is-bings-4th-largest-referrer-37875

<comment><USER2> More people search on Google for Google than they do for Yahoo or Bing... that is just.... humorous

</comment><comment><USER3> I don't know when it began, but I stopped using the address bar quite some time ago. I found it easier to type in the url into Google. If I make a typo, it offers a correction, and I don't accidentally end up whitehouse.com, if you know what I mean.

That said, I don't think people are searching for "search engines" on Google. I think people are like me in that they use Google as an address bar.

<comment><USER4> If you're using most modern web browsers, typing something into the address bar is almost equivalent to typing it into Google. Which, as another comment indicates, is probably where a lot of these hits are coming from.

</comment></comment><comment><USER5> Google is a very tough nut to crack. They got like thousand of hackers fine- tuning Google's algorithm and A/B testing on a massive scale.

This make them very nimble and responsive to any competitors who dare to compete with them.

Google is like a sumo wrestler. Despite the appearance of fatness, it is actually very fast, strong, and healthy.

<comment><USER6> You could probably say the same thing about Microsoft, couldn't you?

<comment><USER7> Does microsoft employ hackers? News to me.

<comment><USER6> They do. And some other seriously smart people, e.g. in Microsoft Research in Cambridge, UK.

(P.S. of course they eat a lot of their own dogfood---so they are not the right employer for everyone.)

</comment></comment></comment></comment><comment><USER8> The fact that a full 42% of their traffic is originating from MSFT, and they're still investing tens of millions in advertising, AND they have Yahoo wrapped up makes their relative gains look PATHETIC.

MSN is the default start-page in IE8 and that is being whittled away due to the anti-trust.

In the past 6 months that more and more of the links on the homepage link directly back to BING search results.

From a UI perspective, this is not ideal and to see such low gain #s despite these efforts is eye opening about google's dominance.

<comment><USER9> Is it totally out of the question that some people might type in bing.com or have it as their browser's start page? The 42% is MSFTs share of referring sites.

</comment></comment><comment><USER10> It wouldn't surprise me if people are just forgetting to add .com, i've done it myself. In chrome i'll type bing (instead of bing.com) since google is my default search engine, I'm routed through google.

I'm using it because Bing has a great flight search and comparison, also their video search is pretty good too.

<comment><USER3> Good point. It works the same with Firefox. In fact, it is an advertised feature that you don't have to add the .com.</comment></comment>


Amazing Time-Lapse Map of Every Nuclear Explosion between 1945 & 1998 - <AUTHOR> http://hus.posterous.com/a-time-lapse-map-of-every-nuclear-explosion-b

<comment><USER2> Wired article with more details: [http://www.wired.co.uk/news/archive/2010-07/6/japanese- artis...](http://www.wired.co.uk/news/archive/2010-07/6/japanese-artist- nuclear-weapons) The data set referenced in the credits: [http://www.iaea.org/inis/collection/NCLCollectionStore/_Publ...](http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/31/060/31060372.pdf)

</comment><comment><USER3> Fascinating. And interesting to see that the UK conducted some explosions on US territory too. And that there have been over 2,000 nuclear explosions to date. The tests go crazy in the late 50's, then again in the 70's through about 1993 after which hardly any take place.

<comment><USER4> Perhaps related to the nuclear test ban treaty [1], which is not in force? There was a partial test ban treaty [2] in the 60s. I'm not informed at all about nuclear politics, but perhaps some combination of better physics knowledge and/or better computer modeling helping remove the need for detonation to test designs and better knowledge of the effect of fallout made countries slow or stop?

[1] [http://en.wikipedia.org/wiki/Comprehensive_Nuclear-Test- Ban_...](http://en.wikipedia.org/wiki/Comprehensive_Nuclear-Test-Ban_Treaty)

[2] <http://en.wikipedia.org/wiki/Partial_Nuclear_Test_Ban_Treaty>

Edit: it would be fascinating, since I can't seem to google the info, if there is an expert here who could share a rough timeline of the state of the art of nuclear explosion modeling

</comment></comment><comment><USER5> Interesting, but the video should have been played faster and made much shorter.

<comment><USER6> I played it a 2x speed, which is available if your using HTML5 video over flash.

</comment></comment><comment><USER7> This is probably one of the scariest things I've ever seen. Does anybody know what became of this test sites? Are they restricted, what are the radiation levels etc ...

<comment><USER8> In 2004 while living in New Mexico, I went and visited the trinity site, stood at the base of the tower, walked around, took pictures - the usual thing.

If there wasn't stuff telling you a detonation had taken place, I doubt you'd be able to tell without a geiger counter. Theres a nice bowl shaped depression in the ground, and that's really about it. I had figured there'd be, I dunno, a big scar on the ground or something, but there really isnt. Life goes on there.

<comment><USER7> What about radiation?

</comment></comment></comment><comment><USER9> That video made the cold war look like a hot war.

</comment><comment><USER10> It looks like South America and Antarctica are the only two continents free of blasts.</comment>


Odd ways to zeroing some x86_64 registers - <AUTHOR> http://hackingbits.github.io/blog/odd-ways-to-zeroing-some-x8664-registers/ <comment><USER2> If you're wondering why this is useful, the reason is buffer overflow exploits. Strings in C are null-terminated, so having a null in your code may stop it from getting copied.

<comment><USER3> I think obfuscation is another reason, since the classic "xor reg, reg" (31 C0 is xor eax, eax) does not have any nulls either.

<comment><USER4> yeah, nor it does on x64_64 since it's the same encoding but prefixed by a REX: `48 31 c0 xor %rax,%rax`

</comment></comment></comment><comment><USER5> I've used this in the past, in high performance math.

If you have data (vectors, matrices, etc.) that doesn't fit neatly into a SIMD block size, you'll have to zero out fields after the calculation. At this point, it's cheaper to generate a zero on the register than load via memory (cheaper as in the number of CPU instructions.)

</comment><comment><AUTHOR> New link: [http://hackingbits.github.io/blog/odd-ways-to-zeroing- some-x...](http://hackingbits.github.io/blog/odd-ways-to-zeroing- some-x8664-registers/)

</comment><comment><AUTHOR> It began as an obsfucation method then I realized more implications.</comment>


Google Nexus One vs. iPhone 3GS - <AUTHOR> http://www.taranfx.com/nexus-one-vs-iphone-3gs

<comment><USER2> I don't think Google Nexus has the ability of multitouch. At the hardware level maybe, but it's not available in the browser and such from what I've heard.</comment>


Strange Sex Habits of Silicon Valley - <AUTHOR> http://www.nirandfar.com/2012/05/strange-sex-habits-of-silicon-valley.html

<comment><USER2> My wife and I don't have cable.. but we do have Hulu / netflix... and we often watch while working in the evening. However, our friends are always VERY surprised to find out we don't have a TV in our bedroom (We have 5 50" TVs scattered throughout the house thanks to my previous Job)... I always tell them the same thing, "If we're in bed, and we're awake enough to watch TV we've got better things to do"... Our no electronics in the bedroom (In the bed for mobile devices) has been a staple of our marriage since the very beginning and has allowed us lots of.. erm.. intimate moments.

</comment><comment><USER3> This feels like a problem for people who are only just recently discovering the wonders of tech. I was obsessed with programming and PC games as far back as I can remember, and the social cost of spending hours staring at screen became obvious to me long before I reached high-school. These days, the ubiquity of internet gadgets does not phase me at all. I can put down an iPad just as easily as I can shut off my playstation. I developed the discipline to manage my electronic addictions as a teen because I quickly discovered it was impossible to spend 14 hours a day glued to a screen while also maintaining relationships with those who wanted to go to the movies or hang out and listen to music.

As an adult, the pathway for breaking away from electronics is so well worn that the idea of choosing e-mail over human intimacy seems comically absurd. This is not to say I no longer obsess over new toys, but my brain has learned to supplement the happiness I derive from positive social interaction with the knowledge that all the cool gadgets I relish are patiently suspended and awaiting my return, following a fulfilling day (or night) of time spent with those I care about.

<comment><USER4> I grew up as a kid programming and playing video games. I developed the same immunities I think.

The idea of giving up basic human relationships and intimacy for technology is nuts.

<comment><USER5> Ditto. I started tinkering with computers and other electronics when I was maybe 10 years old and I feel that it has given me an immunity to getting sucked in hard to the latest crazes out there.

I also try to only go on Facebook and other internet dens maybe once per week just to check for messages and see if anything interesting is going on. I can't stand the idea of being tied to the internet by the hip. I'd rather spend my "down" time doing things of a more analog nature to balance out the 60 hours per week that I'm either at work or working on personal tech stuff.

That said, HN is a little harder to stay away from.... :o)

</comment></comment></comment><comment><USER6> Out of mere curiosity I tried the old Coral Cache link technique; the service is still going!

[http://www.nirandfar.com.nyud.net/2012/05/strange-sex- habits...](http://www.nirandfar.com.nyud.net/2012/05/strange-sex-habits-of- silicon-valley.html)

</comment><comment><USER7> > The rule allowed time to do what some behavioral psychologists call "surfing > the urge." When an urge takes hold, bringing attention to the sensations of > stress and riding them like a wave–neither pushing them away, nor acting on > them–helps us cope until the feelings subside.

I haven't heard of this before, but it seems potentially really useful.

</comment><comment><USER8> Great stuff as always, Nir. Love the personal touch :)

</comment><comment><USER9> I can't access the article: "Error establishing a database connection"

I imagine that involves some sort of cosmic humour since as of this week I have been celibate for seven years.

Failure to connect indeed.</comment>


I've built a food delivery platform - <AUTHOR> Hello,
I've built a platform for food delivery for my customer prestofood.it in my origin country(Sicily).
Now it is ready and in production but I wanna get other money because my effort was huge compared to the money that I got from this project.
But there are a lot of big companies on delivery food so probably to think to sell my platform could be quite ridiculous.
What Kind of business model could use to get money from this project?
The platform was build on the top of ruby on rails using turbolinks for the mobile apps.
It consists of a backoffice, operator pannel, apps iOS/Android, raspeberry and printer and the website for the clients where they can make the their own orders:
* Back-office produces the content for site and apps, it is possible to add restaurants, menus cities etc.
* Operator panel is a realtime panel written in js, where the operators(employed) of my customer accept and confirm the orders, there are a statistica panel too.
* iOS and Android app using turbolinks adapter.
* Raspberry software that downloads the orders from the restaurant and print and send a feedback if
the order was printed
Any Idea is really appreciated
A. <comment><USER2> At first glance, it sounds like you may be overfitting an overly-comprehensive technical solution to an extremely cost-sensitive/archaic/offline-centered industry.

Explaining the stack you used to build this platform will likely come off as pure alien speak to the restaurant owners you try to sell to.

But that being said, I only understand restaurants in the US, and not Sicily.[0]

Research is a good place to start - first with your own product, then the larger market (how is it being used, how much value does it bring prestofood, how many orders do they process per day).

If the metrics give you conviction, start by talking to some restaurants.

There was a YC company (Trackin) that focused on this exact concept in the US that went through enough trouble that they've since pivoted to catering like Zesty, Zerocater, etc...

Oh, and effort != good product.

[0] Started/ran www.eatmise.com in SF, grossed 35K+, achieved ramen profit in 7 months solely on organic WOM.

</comment><comment><USER3> Wow. Hard to say what might work here.

Do you have a demo video that shows everything your platform can do? If not create one and find 10 people in the restaurant business to look at it.

Get some feedback from more people in the industry ASAP.</comment>


IoT automated cat feeders stop working during server outage - <AUTHOR> https://twitter.com/petnetiosupport/status/1228190332912717825 <comment><USER2> Are they even still in business? That tweet is from 4 days ago.</comment>


Ask HN: What are ways to solve the chicken-egg problem for AI/big data startups? - <AUTHOR> The chicken and egg problem is usually talked about in the context of marketplaces (see [1] for some resources)<p>Recently, we've seen an influx of AI startups for which the value prop lies in the scale of their data. It's a chicken and egg problem in that it's difficult to get data unless you have customers, and it's difficult to have customers unless you have a clear value prop. What are some strategies to combat the chicken and egg problem in this case?<p>[1] http://www.guidetoyc.com/the-guide/6-users-distribution/ <comment><USER2> Partner with giant company(or organization) with data

make it a game and collect the data

start a marketplace and collect the data

start a service business and collect the data

Initial coin offering and pay users for the data

find existing collections of data

start a data collections/storage company

scrape the data and call it indexing

Contest/sweepstakes to collect the data

<comment><USER3> _scrape the data and call it indexing_

My last company did this with business listings and reviews. We combined this with public data sets from the census and were able to come up with useful insights about whether a business yelp rating was going to increase or decrease without having to generate our own data.</comment></comment>


How to bring down mission-critical GPS networks with $2,500 - <AUTHOR> http://arstechnica.com/security/2012/12/how-to-bring-down-mission-critical-gps-networks-with-2500/

<comment><USER2> What's particularly interesting isn't that they've spoofed a signal, but that they've demonstrated nontrivial software vulnerabilities that can be triggered by the spoofed signal.

For example, the GPS system transmits the date as a number of weeks since a reference epoch, modulo 1024 [1]. This space saving made sense when they designed the protocol; GPS uses a 50-bits-per-second data link so every bit counts. The last rollover to week zero happened in 1999, the next one will be in 2018. Not so rare that you can ignore it, but not so frequent that code gets battle-tested.

What some receivers do is store a 'last week number seen' and a 'number of rollovers' in nonvolatile memory, and any time they see the week number lower than the last one seen, they increment the number of rollovers. So even if the GPS is kept powered off and its internal clock battery dies, as long as it gets a signal once every 512 weeks (~10 years) it can pick up the right time.

One of the interesting things they demonstrate is that you can spoof a signal which fakes the week-number-decrement and this increments the number of rollovers counter - and not all receivers have any ability to correct for that.

Another example: The slow GPS data link is used to tell receivers where in space the satellites are - which it needs to know to calculate the receiver's position, and to get a head start finding other satellites by knowing roughly where to look for them. Because the GPS data link is so slow, it can take 30 to 60 seconds for a receiver to get this data as it's a whole 1.5 kilobytes [2]. Receivers often cache some of this data in nonvolatile memory so they can perform a 'warm start' where they don't have to wait for all the data to download. But if you receive spoofed data that triggers a software bug (like a divide by zero error) and you store that in your nonvolatile memory, the receiver loads the data, crashes, reboots, loads the data again and the same thing happens.

This is interesting stuff - most work on GPS spoofing and jamming in the past has focused on things like replaying signals to send vehicles off course rather than triggering crash bugs in receiver firmware. The current civilian GPS signal has no anti-spoofing element to it, so there isn't an easy solution to this.

[1] [http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.ht...](http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.htm) [2] <http://en.wikipedia.org/wiki/GPS_signals#Navigation_message>

</comment><comment><USER3> Also here: <http://news.ycombinator.com/item?id=4896452>

and here: <http://news.ycombinator.com/item?id=4897294>

and here: <http://news.ycombinator.com/item?id=4898843>

and here: <http://news.ycombinator.com/item?id=4903566>

None have any discussion, but they are different reports with different levels of detail.

</comment><comment><USER4> Isn't GPS supposed to be a military technology? Maybe there's something they're not telling us about how they really use GPS. However, I'm not reassured by the wartime durability of any tech that must be protected from all interference while at peace. Not that we actually have any real enemies anymore (rustic Muslim goat-and-flammable-underwear aficionados are more dangerous than the Axis powers were, really?), but if we did why would they obey the FCC?

<comment><USER5> 1) The GPS that we know and love is the Coarse/Acquisition (C/A) code[1] which is not encrypted and thus is relatively vulnerable to spoofing. Note that spoofing (as opposed to jamming) even a C/A signal is non-trivial, but equipment to do that is available[2].

2) The military uses the Precision (P) code which is encrypted and should be impossible to spoof unless you break the encryption. That is quite unlikely.

3) All radio signals are vulnerable to jamming. In order to jam, you must transmit, however... which means that your jammer is a beacon that the military can direction-find on[3]. If you piss off the military too much, they will turn off your jammer. Permanently.

[1] [http://en.wikipedia.org/wiki/Global_Positioning_System#Satel...](http://en.wikipedia.org/wiki/Global_Positioning_System#Satellite_frequencies)

[2] <http://www.google.com/search?q=gps+simulator>

[3] <http://en.wikipedia.org/wiki/Wild_Weasel>

<comment><USER6> @2) Wouldn't it be possible to reverse engineer a military receiver? Or is it a changing passcode that must be input manually?

<comment><USER7> <http://en.wikipedia.org/wiki/Public-key_cryptography>

<comment><USER6> Yeah, but that doesn't help if you have the device which decrypts the signal. Then you should be able to get the key (which would probably still be fairly difficult).

<comment><USER8> A receiver/decrypter only contains the public key, which can't be used to encrypt a new message. Perhaps you aren't familiar with asymmetric / public key cryptography?

</comment></comment></comment></comment></comment></comment><comment><USER9> Surprise, you can transmit a signal similar to that of a radio transmitter by also being a radio transmitter. Just wait to be tracked down extremely promptly by the FCC, or almost worse, a roving band of Amateur Radio engineers with a van full of direction-finding antennas and a high level of passion for enforcement who will come nail you to a tree for firing this thing up.

<comment><USER10> The serious problem with some of these devices is that they're effectively bricked by having received an invalid signal once. You don't have to sit nearby to cause this effect, you could drive across the country putting out 30 mile radius bursts of bad GPS signals, and kill a not insignificant portion of the nation's infrastructure.

<comment><USER11> Drive? All you have to do is put it in a Pelican case, mark it as "video equipment", and ship it on a cross country flight in the cargo hold. GPS receivers are already designed for signals from satellites; picking up something transmitted every 10-60 seconds from 6 miles up is going to be _easy_.

Good luck tracking _that_ signal down.

</comment></comment></comment><comment><USER12> Affected manufacturers listed in the first link, not present in the above link:

"Attacks were conducted against seven receiver brands including Magellan, Garmin, GlobalSat, uBlox, LOCOSYS and iFly 700."</comment>


Windows 8 Shoehorns Touch Into Desktops And Laptops: This Won't End Well - <AUTHOR> http://techcrunch.com/2012/10/11/microsofts-windows-8-shoehorns-touch-into-desktops-and-laptops-this-wont-end-well/

<comment><USER2> Stupid. Why would anyone complain about this? Windows 8 is a flexible platform which lets OEMs experiment with many different new hardware forms. It's the Cambrian explosion of the PC. Consumer selection will sort out the gems from the duds. And the next gen will be better.

Microsoft has laid a great foundation for an extremely diverse ecosystem. Apple-esque one-device-to-rule-them allism is so 2007. As someone painfully typing this out on an iPad (a platform which laughably does not support split window multi-tasking or variable thumb keyboard sizes and layouts) I can personally cannot wait to switch to a truly modern ecosystem.

No wonder Tim Cook is so eager to laugh it off.

<comment><AUTHOR> You can get a keyboard for your iPad, why didn't you have one?

Probably because most users settle for the default configuration of their machines, just like OEMs only barely change what MS hands them.

That is, someone has to design the whole functioning of the system and OEMs don't have a good track record.

<comment><USER2> Haha I do have a keyboard for it. I haven't been satisfied with it - both with the keyboard itself (a Belkin model which suffers from lag and a clunky and heavy velcro-attachment slipcase system) and with the lack of integration with the OS.

Specifically, the keyboard is okay for typing text into a single text-box, but little else. You cannot navigate the OS with the keyboard - for example if you press the return to Springboard button (in the function row) you then have to swipe through the app trays and select an app with your fingers. In apps the situation is little better - in the Facebook app, for instance, you can't send a message by pressing Return, you have to touch the Send key.

Simply put, keyboard support in iOS is clearly a distant afterthought. Maybe with one of Logitech's nicer keyboard/case solutions, you could use it okay to fire off an email. But it's never going to be a machine you would want to do any sort of real work on. I like browsing the web, but as soon as I want to do any typing, forget it, I'm better off going back to my desktop. With W8 Microsoft appears to have put keyboard integration at the heart of the OS from day one - an attitude which hopefully trickles down to individual app developers. Not only that, but mouse and trackpad support is also fully baked- in (not to mention stylus support). And Microsoft seems to have a much superior focus on actual ergonoics and usability - eg their variable thumb keyboard sizing (try typing on an ipad with the thumb keyboard in the horizontal orientation - then try it with a case or smart case on for extra pain).

If Acer's Iconia w510 had stylus support for instance, I think you would have a device with class-beating flexibility, portability and productivity. Its already pretty close.</comment></comment></comment>


6 Guidelines for Startup Founders in the Crunch - <AUTHOR> http://jeffgiesea.com/guidelines-for-startup-founders-in-the-crunch

<comment><USER2> I can't disagree with any of the items. I have been there before and wish I had this then.</comment>