Creating Your Own Git Server - <AUTHOR> https://gpanders.com/posts/creating-your-own-git-server/ <comment><USER2> Git supports read-only, static HTTP cloning using nothing but "GET" requests on a bare Git repository. IOW, you don't need a CGI program or special request processor to serve a Git repository over HTTP. All you need to do is 1) make the bare Git repository visible under your web server's document root the same as-if you were serving .gif or .js files, and 2) maintain a special index after every commit using `git --bare update-server-info`, which I invoke from a post-receive hook.[1]

Because of this, you don't even need a CGI program for a web UI. Theoretically, it could all be done from client-side JavaScript. I've been wanting to write a PoC, but it's deep in my side-project backlog.

Why bother? Because a read-only, static Git mirror is more secure--there's no server software (other than a basic web server) that can be exploited. And nothing is always easier to maintain than something.

You still need SSH (or a git:// daemon) for write access, unless the entire environment is just for read-only cloning. But SSH access is presumably something already setup and used by the core contributors. (Probably shell access, too, but SSH logins can always be forced to invoke git.)

IMO, static, read-only HTTP cloning is a killer feature of Git which AFAIK cannot be matched by CVS, Subversion, Mercurial, or Fossil, at least not out- of-the-box.

[1] From a hook on the read-write, master repository outside the web server sandbox.

<comment><USER3> Something that would be a bit difficult when you only wanna use static files is code search. Would you need a backend for that or am I missing some obvious solution?

<comment><USER4> Once you clone the repository, you can search locally using Git Grep, Git ls- tree, etc.

<comment><USER3> Of course but that could be inconvenient in some situations. Like, when you just wanna show someone something in your code or when you wanna search across all repositories but don't wanna clone every single one manually again.

</comment></comment></comment></comment><comment><USER5> I recently set up Gitea on a VPS for my personal projects - I can highly recommend it. Setup was easy (for someone comfortable with linux configuration basics) and it's been an awesome improvement to my hobby development flow.

<comment><USER6> Seconded. I setup gitea on my server when Microsoft bought GitHub after comparing between gitlab, bitbucket, gogs, cgit, gitolite, and gitea. Gitea has the best community, features, and system requirements. Sad to say I still haven't moved my projects off of GitHub, but gitea setup wasn't the problem.

One thing I'd still like to see, and am thinking if I may (as a nobody with no connections) somehow be able to organise myself, is a global search. One of the main advantages of GitHub is discoverability, both as a project owner and as a project seeker. What if there was a server that distributed searches to the different self-hosted instances of gitea/gogs/gitlab/etc.? (Opt-in of course.)

The search would be distributed amongst all those setups which hopefully makes it light enough even though there will probably be a large volume, and this way people would have no reason to stay with a centralized company for git and bugtracker hosting. You could even have a client that connects to the instances individually, so even the search distribution server does not have to be centralized, you just need a DHT (ahem, I mean _blockchain_!) or some other central list of contributing nodes. And for very lightweight setups that still want to appear in search results, one could perhaps have different levels of results, from full code index to repository names and descriptions only.

<comment><USER7> You can get support for implementing something like this from NLnet. Either a federated version or a 'google for git' would fit the bill I imagine.

Or adding a code search feature to Software Heritage.

[https://nlnet.nl/discovery/](https://nlnet.nl/discovery/)

<comment><USER6> That's a very interesting idea!

Edit: removed a part about ForgeFed which I thought was what I had in mind, and they do a lot of things that would be nice to have (slightly more convenient than just "login with GitHub")... except search which you can't simply work around by creating an account on each git server where you want to contribute. Not sure what part of their project is discovery and why NLnet granted them money under the "Next Generation Search and Discovery" fund which, from the description, is very clearly aimed at search.

</comment></comment></comment></comment><comment><USER8> I now use a personal Gogs instance, but I also want to give a shout-out to Klaus: it's something like Gitweb with a more Github-like UI. Klaus (like Github) shows you first and foremost the state of the tree with nicely rendered or syntax-highlighted file contents instead of (like Gitweb) focusing on the commit history first. It also has smart Git HTTP support out of the box without having to muck around in the web server config as described in this post.

The project is here [https://github.com/jonashaag/klaus](https://github.com/jonashaag/klaus) and you can see a preview of it here: [http://klausdemo.lophus.org/](http://klausdemo.lophus.org/)

</comment><comment><USER9> I've installed Gitlab in the earlier days, and that seems a lot easer than this guide. Gitlab comes with the web view included.

<comment><USER10> I agree with that. I did investigate a number of self-hosted alternatives to Github, but Gitlab was so much easier than any of them. My only complaint about Gitlab is that it uses a lot of CPU even when completely idle. But I was able to fix that easily by throttling it via the "cpulimit" utility.

My Fossil server on the other hand, has had no problems at all. Unless your project requires Git, you could save some pain by considering Fossil instead of Git.

</comment></comment><comment><USER11> You can also set up your own Fossil server by downloading a single executable and running it with a 2-line CGI script. Includes issues, wiki and forum.

[https://www.fossil-scm.org/home/doc/trunk/www/server/](https://www.fossil- scm.org/home/doc/trunk/www/server/)

<comment><USER12> This is making me think about switching from gitlab. I don't like how complicated it is and it has way more features than I'll ever need. But I don't know how to use fossil. How does a git user become a fossil user and is it worth it just to switch webservers?

<comment><USER11> Late reply but...

> How does a git user become a fossil user

You just need to download the binary and start trying it out. Check out the Quick Start: [https://fossil- scm.org/home/doc/trunk/www/quickstart.wiki](https://fossil- scm.org/home/doc/trunk/www/quickstart.wiki)

A couple quick notes to help smooth the learning curve:

\- There is no "staging" step in Fossil. Doing fossil commit immediately commits all changes in all tracked files into the repository. If you need to, you can specify which file or files you want to be included in the commit.

\- There is no selective "patch committing" in Fossil (i.e., git add -p in Git), reportedly because it facilitates check-ins of untested code. So, if you're in the habit of making unrelated edits to code…stop it!

> is it worth it just to switch webservers?

Depends on your priorities for each affected project. I already maintain a VPS as a web server for my various websites, so putting Fossil on it was an easy step. There is also Chiselapp.com if you don't want to maintain your own web server.

There is also the fact that it's just not git. Unless your project is extremely popular, you aren't going to be getting "drive by pull requests" from anyone. The bar for participation in your project is going to be much higher since most people just aren't familiar with Fossil. Depending on the project this could be a good thing or a bad thing.

</comment></comment></comment><comment> grayed-down This is a very good write up. I've set up countless git servers in the day and have never really had the need for a UI, but I am intrigued by the description of gitweb.

On that note however, I would encourage anyone with a passing interest in an scm gui to check out fossil-scm. I'm helping a colleague with a project and that's what he is using. Really incredible piece of software with a lot of possibilities.

<comment><AUTHOR> You're the third person in this comment section to mention Fossil. I'd never heard of it, but I'm definitely going to check it out.

</comment></comment><comment><USER13> I'm tremendously happy with Gitea - [https://gitea.io/](https://gitea.io/) \- which in my opinion gets you as close as you can come to your own self-hosted version of GitHub, installed and ready to use in just minutes.

</comment><comment><USER14> I did set up my own gitlab on a VPS. That ended up feeling quite fragile thought tbh. Even a working deploy (docker) seems to be spitting out a fair number of warnings. Jikes.

So new plan is google source repo + mirror somewhere safe for backup / non- google backup

</comment><comment><USER15> I frequently install Gitea on Debian. Therefore I prepared an installer to do it:

[https://github.com/emrahcom/emrah-buster-templates#eb- gitea](https://github.com/emrahcom/emrah-buster-templates#eb-gitea)

</comment><comment><USER16> gitlab-ce is an apt install/upgrade and works like a charm.

I have a dual-core duo box running about 6 containers, including gitlab, and nginx as a reverse proxy.

I use letsencrypt for ssl, basic auth and duckdns to point cnames to my dhcp DSL.

I've been running my dev environment like this for several years. Works great.

</comment><comment><USER17> you can also host your own Gitlab...</comment>


Odds of 1-in-3 that mega-earthquake will hit Pacific Northwest in next 50 years - <AUTHOR> http://www.sciencedaily.com/releases/2010/05/100524121250.htm <comment><USER2> FYI NOVA on PBS is currently running an episode "Mystery of the Megavolcano."

Here's a map of what they're calling "supereruptions" from around the world (nice cluster in the Western US):

<http://www.pbs.org/wgbh/nova/megavolcano/blasts.html>

</comment><comment><USER3> Well, something has to account for all those glorious volcanoes that I grew up admiring in the Pacific Northwest (Hood River Valley in particular). Amazing how such violence can beget such beauty.</comment>


Hammock-driven Development - <AUTHOR> http://clojure.blip.tv/file/4457042/ <comment><USER2> I really want to know what the other two things (besides Clojure) were that Rich thought about for a year.

</comment><comment><USER3> It's interesting to me: This talk was much broader than any talk I've heard from him before. I can imagine watching this and thinking "this is all pointless fluff", if I were in a certain mindset. But having worked on a project for a while and encountered this exact problem, I think this talk is genius. (Because the non-fluff, the concrete examples are coming from my own experiences.)

</comment><comment><USER4> And after you've watched the video grab something off Rich Hickey's killer list of books (note that the list includes a hammock), <http://www.amazon.com/Clojure-Bookshelf/lm/R3LG3ZBZS4GCTH>

<comment><USER5> That has to be the only hammock on Amazon with "lisp" and "call-with-current- continuation" as suggested tags: [http://www.amazon.com/Original-Pawleys- Island-Hammock-Presid...](http://www.amazon.com/Original-Pawleys-Island- Hammock-Presidential/dp/B002DEO458/ref=cm_lmf_tit_40)

</comment></comment><comment><USER6> Last year Rich gave a great talk about Clojure's approach to persistent data structures (but really identity and state): [http://www.infoq.com/presentations/Value-Identity-State- Rich...](http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey)

<comment><USER7> Everyone should watch that talk. It's the most compelling I've yet seen for the relevance of applicative programming. I was not convinced, but I was closer than I've ever been to being convinced.

</comment></comment><comment><USER8> I was at this talk; it was excellent. Watch it.

<comment><USER9> I agree. This is full of rich observations and analogies for anyone who is interested in design from a development point of view.

Basically it's full of lots of distilled wisdom from a smart guy who has come up with a fair number of beautiful solutions to hard problems.

<comment><USER10> I don't know much about Clojure (I wrote my last Java/Lisp code years ago) however I strongly recommend this talk to every developer. As good as it is at clarifying the development process, I also enjoyed it a lot too because it was thought provoking and funny at times.

</comment></comment></comment><comment><USER11> I am so proud to proclaim that I was there at that talk in person, and I watched Rich inspire a whole generation of programmers with that talk.

</comment><comment><USER12> I read the title, watched the first couple minutes, skimmed a few more minutes, and I -still- have no idea where he was going.

What exactly was supposed to entice me into watching 40 minutes of that?

<comment><AUTHOR> Clearly Rich failed at fitting the whole of his talk into discrete Tweet-sized portions. For a talk about thinking through problems you would think he would have thought about that angle. Sheesh.

</comment></comment><comment><USER13> Does this mean the Clojure Conj videos are all up?

<comment><USER11> No. They are going to be available gradually.

</comment></comment><comment><USER14> Any chance there is a transcript or write up of the talk?</comment>


Try Standard ML in the Browser, Courtesy of Univeristy of Saarland - <AUTHOR> https://sosml.org/
https://github.com/SOSML/SOSML
Nice to see a new SML project, even if it happens to be written in typescript.
Requires ; at the end of statements to evaluate. For example
fun gcd (x, y) = if y = 0 then x else gcd (y, x mod y); gcd(56, 24); <comment><USER2> I already submitted this: [https://news.ycombinator.com/item?id=20912460](https://news.ycombinator.com/item?id=20912460)

P.S. Are you the same person who submitted this on Reddit?</comment>


Ask HN: What's wrong with my CV? - <AUTHOR> I've submitted my CV to multiple positions requiring the exact same skills I already have, but got either denial or no response. I think I can cope with anything in the job listings I applied for, but maybe I am not conveying the information in a good way? Perhaps I am not good enough? What would you say if you were looking for someone with similar skills to mine? CV: https://drive.google.com/file/d/1TFSHaD3D1ZzLrjN-CMlROleoiMiBfkui/view <comment><USER2> This varies widely on regional norms of how a CV should look, but here we always include work experience first and all fluff at the bottom.

If I were to look at your CV as a potential employer, my largest concern would be your short tenures at your jobs. If those jobs were short contracts you should take care to mention that.

</comment><comment><USER3> duplicate of [https://news.ycombinator.com/item?id=17852465](https://news.ycombinator.com/item?id=17852465)

</comment><comment><USER4> There may be few things you can fix in your CV but the idea that there is something wrong with your CV may be because you think that the people who are responsible for handling hiring are doing the job in the best possible way. The reality is that they are not doing the best possible that they can do, in fact nowhere near the best possible. This whole system is broken at many levels.</comment>


Jaadi.js – JS Storage Abstraction - <AUTHOR> https://github.com/msubra/jaadi.js

<comment><USER2> There's already like 8 million of these. Yet when people make new ones, they never include a comparison to any of the 8 million existing ones that do the same thing. So I really doubt this is better than [https://github.com/brianleroux/lawnchair](https://github.com/brianleroux/lawnchair) or [https://github.com/mozilla/localForage](https://github.com/mozilla/localForage) or many others.

</comment><comment><USER3> W3C Storage has a few exception behaviors this abstraction doesn't handle and thus might be something to worry about:

* setItem(key, value) can throw a QuotaExceededError. * Any of the Local Storage methods can throw a SecurityError. I have in my notes that Chrome does this when a user disables cookies.

<comment><USER4> There's a second problem: this thing is synchronous, so it's not possible to create a backend for WebSQL, IndexedDB or remote storage, or to store stuff in (possibly shared) WebWorkers.

<comment><USER3> Ah yes, that's another huge problem! I'm so used to things being async that I didn't even see that.

</comment></comment></comment><comment><USER5> Look at PouchDB</comment>


IndexedDB: Indexing Problems - <AUTHOR> http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0762.html

<comment><AUTHOR> IndexedDB provides inadequate indexing and querying features:

1\. It cannot index JSON objects with array values or support compound indexes.

2\. There is no way to intersect or union indexes when querying.

3\. There is no way for an application to pass in indexes to be modified when putting an object.

4\. Indexes must be created or deleted in a special setVersion transaction.

IndexedDB takes on too much responsibility for trying to keep up with application state (when this is not needed, see point 3) and not enough responsibility for data storage, indexing, and querying (which is needed).</comment>


How Dark Patterns can improve your conversion rates but damage your brand. - <AUTHOR> http://www.90percentofeverything.com/2010/12/17/dark-patterns-an-overview-for-brand-owners/

<comment><USER2> Good point, though I would argue (and have argued here: [http://swombat.com/2010/12/19/dark-patterns-good-for- busines...](http://swombat.com/2010/12/19/dark-patterns-good-for-business)) that in some business sectors, like, for example, the ultra-competitive registrar market, dark patterns are a necessity. If you don't use them you will go bankrupt. So before you discard dark patterns, make sure you're in a business that can afford to do so.

Also, things that were considered dark patterns in other types of businesses (e.g. supermarkets), like laying out the shop in a way that will encourage you to buy more stuff, are now considered standard business practice. Will that happen to these patterns too?

<comment><USER3> I'd argue that if you can't make money without tricking people, you shouldn't be in that particular branch of business.

<comment><USER2> You can argue that all you want, but Ryanair, which epitomises the application of dark patterns in every aspect of its operations, is the largest or second- largest carrier in the world on a number of metrics (see <http://en.wikipedia.org/wiki/Ryanair>).

If you want to tell them they shouldn't be in the airline business, sure, but I'm not quite sure what your argument is then.

<comment><USER4> And I as a customer am happy to have Ryanair, Airasia and other low cost carriers like those. Even if they do use dark patterns, they provide me with possibilities I didn't have before they appeared...

<comment><USER5> I have never been a customer of Ryanair. How difficult is it to navigate their dark patterns?

Can I be a customer without getting entangled?

<comment><USER4> It's not very difficult, you just have to be careful when filling the forms, they are a bit confusing...

For example to refuse the travel insurance policy you must choose that you don't want it in the country selection box...

Personally while I find it irritating, I find godaddy much worse and since unlike Ryanair they have cheap competitors without dark pattern I avoid them.

</comment></comment></comment></comment></comment></comment><comment><USER6> Uh, can anyone explain what Dark Patterns are?

It's not explained on the page, and while it may be explained if you want to sit through the slideshow I'd rather know what it's about before I start listening to some Englishman drone on about it.

<comment><AUTHOR> Haha, fair point! I'm the droning Englishman giving the presentation. If you'd rather read than listen, check out the <http://darkpatterns.org> \- it's a public wiki that I curate. Here's the definition of Dark Patterns from the site:

"Dark Patterns are User Interfaces that are designed to trick people. Normally when you think of bad design', you think of laziness or mistakes. These are known as design anti-patterns. Dark Patterns are different – they are not mistakes, they are carefully crafted with a solid understanding of human psychology, and they do not have the user's interests in mind."

<comment><USER6> Ah, thanks for the explanation.

(And I apologise for the "droning" remark, I actually only listened to the first half sentence of what you had to say -- I wasn't expecting to hear a voice when I clicked on the "next slide" button -- so I'm not qualified to judge your speaking voice...)

</comment></comment></comment><comment><USER7> That was a very good presentation, reminds me to continue to work more towards allowing user interaction without requiring registration.

</comment><comment><USER8> Use of dark patterns is lazy and unsustainable.

</comment><comment><USER9> TL:DR - Don't trick your users.

</comment><comment><USER10> I love the way Google Autocomplete serves as a window into the raw sentiments of the masses.</comment>


How Twitter might make money - <AUTHOR> http://tech.fortune.cnn.com/2011/07/26/dick-costolo-twitter-business-model

<comment><USER2> I thought they were already turning a profit.</comment>


The Broken Kindle Problem: An Aid Program Runs Into Trouble  - <AUTHOR> http://www.theatlantic.com/technology/archive/2012/05/the-broken-kindle-problem-an-aid-program-runs-into-trouble/256912/ <comment><USER2> I'm surprised they don't put them in hardshells or similar. OTOH, these are $100 devices, so adding a $30 case is the same as just sucking up 30% breakage.

In the US, Amazon seems to just accept 5-10% breakage rate with easy automatic free replacement, and as a result they probably save more than 5-10% in manufacturing costs. Doesn't work too well in Africa I suppose.</comment>


Next Generation Video: Introducing Daala - <AUTHOR> http://people.xiph.org/~xiphmont/demo/daala/demo1.shtml

<comment><USER2> Monty's ability to explain convoluted technical topics is astounding. He explains everything in plain words yet it remains technical and scientific enough.

<comment><USER3> indeed, I never knew this stuff.. and since CS is not my field, I might have never understood this.

</comment></comment><comment><USER4> I'm surprised to learn that modern codecs are so conservative, incrementing on the tech invented decades ago. I expected this field to be rampant with cutting-edge research techniques. As the article says, the lapping transformation dates back to the early 90s. And it's considered "the next- next-generation" today. Why is it happening?

<comment><USER5> Well if a government-blessed cartel ran industry X, and there was basically only one product with no competition, which was replaced on a predetermined 10 year cycle after a series of long political committee meetings and they'd built a massive patent thicket to prevent upstart competition and control rivals business models how much disruptive innovation would you expect to see?

<comment><USER6> And that, boys and girls, is why animated gifs are still being used today.

<comment><USER7> ....what? The failure of APNG and MNG is not because of patents.

<comment><USER6> I thought one of the suppopsed reasons that browser vendors didn't bother adding that was because we were going to have a working video tag soon.

</comment></comment></comment></comment></comment><comment><USER8> This is very good news. I'm glad to finally see some real development of video encoding. I was disappointed to see Google put its weight behind VP9, which was basically the same set of technologies as H.264, with (almost) the same set of patent encumbrances.

The ideas behind Daala, while not revolutionary, are enough to make it quite different from everything else out there. I also hope it means it won't infringe on every patent out there, just some of them.

<comment><USER5> As the article points out, the traditional codec development is based on video codec developments going back 25 years (and fundamental maths going back much further) so it's not the basics that are patented. Instead it's fairly idiosyncratic design choices because that's the MVP (minimum viable patent) that you need to insert into the spec to get a share of the royalties.

In short, the patent stuff has always been mostly threats from the incumbents, which are not empty but don't actually rely on any of the underlying patents being sound. Google gets a lot of abuse from the peanut gallery for not nuking H.264 support in Chrome but they seem to be doing amazing work behind the scenes to get the incumbents on board with free codecs. Not ever going to earn you as much geek cred as rebooting video codec development down a different (and quite possibly better) path, but still a worthy endeavour in my mind.

<comment><USER9> > but [Google seems] to be doing amazing work behind the scenes to get the > incumbents on board with free codecs.

Huh? By not nuking H.264 support in Chrome like they publicly promised they did anything _but_ get the rest of the industry on board with free codecs, but perhaps I am not aware of the work Google has done recently to influence free codec adoption.

What codecs or work are you referring to?

<comment><USER5> Amongst other things...

getting 11 big names in MPEG codecs to licence any patents they have that apply to VP8 to anyone at no cost.

Putting a reciprocal patent licence on VP8 and then including it in Android 2.3 (notice Apple, Microsoft and Nokia couldn't accept either Theora or VP8 in HTML5 because they claimed they'd get sued, a range of Android OEMs seem to think this wasn't a showstopper. Even in the midst of smartphone patent armageddon the only lawsuit so far was started by Nokia)

As a fairly direct result of the above getting nearly every big name in GPUs and chipsets to build VP8 into their products.

The work around webrtc, with the currently stalled effort to make vp8 mandatory and it looks like it will be a major first usecase for vp9.

</comment></comment></comment></comment><comment><USER10> Speaking of 'original' formats. Why would one prefer the Discrete Cosine Transform to the Discrete Fourier Transform? I've only worked with the Fourier, and I'm wondering if there are any benefits?

<comment><USER11> One property of the DCT that makes it quite suitable for compression is its high degree of "spectral compaction;" at a qualitative level, a signal's DCT representation tends to have more of its energy concentrated in a small number of coefficients when compared to other transforms like the DFT. This is desirable for a compression algorithm.

<comment><USER10> but if you'd take the continous transform, my intuition says it doesnt matter. as it's both a time -> frequency/phase domain transformation. So they should store 'the same amount' of information. ??

<comment><USER12> Keep in mind that, in general, you need an infinite number of Fourier bases to represent an arbitrary waveform. But if you want to use a finite number of bases (and indeed as small of a number as you can get away with), and if the waveform you wish to represent has known structure, there can be more efficient representations.

</comment></comment></comment></comment><comment><USER13> I still think we should have pointed out that the same thing that makes feistel ciphers invertable is what makes integer lifting invertable.

</comment><comment><USER14> They make the distinction on their page, too - this is a "next-next- generation" codec, not just a "next-generation" one like VP9 and HEVC.

So if this is finalized in 2-3 years, then it will be more of a competitor to VP10. Not sure if MPEG-LA will release another one 2 years from now. They usually release one every 5 years or more, and VP9 managed to catch-up with HEVC after only 2 years of work (work on HEVC started in 2008; work on VP9 in 2011), so we might see VP10 in 2 years that is twice as good as VP9/HEVC, but not an h.266 codec that is twice as good HEVC/h.265.

It will be interesting to see just how good Daala will be. If it's going to be released 2-3 years from now, then it should be at least 3x better than h.264, or at least 4x better to be safe, and to be worth the switch from HEVC/VP9 (and at least as good as VP10, if Google does indeed release VP10 around then, too). That would make 4k video as efficient as 1080p video with h.264 (file size/bandwidth-wise).

<comment><USER15> >not just a "next-generation" one like VP9 and HEVC.

VP9 is not the same generation as HEVC. It's more comparable with H.264.

>VP9 managed to catch-up with HEVC after only 2 years of work

Do you mean in terms of how far along with standardisation/development they are? VP9 is ~6 months behind, although that's not really that significant in video standard timescales. If you mean quality then VP9 encoders have not caught up with x264, and that in itself may take years, if they ever do.

We were promised that VP8 would get a lot better over time, but it didn't because they basically gave up and concentrated on VP9. If they do the same again and start looking to VP10 then VP9 will flounder. Video codecs can't gain adoption with such short churn times. The reason there was so little time between VP8 and VP9 is that VP8 was technically so far behind it never had any chance of adoption.

MPEG-LA are not going to release a new codec in 2 years time. HEVC will probably only just be seeing mature implementations and widespread adoption by then. There is still a hell of a lot of MPEG-2 tech out there and H.264 has been out for a decade.

<comment><USER5> "Next-gen", as it is in consoles, is derived from the traditional business models where things go in 5-10 year cycles based around fixed hardware that falls in cost over time.

Your new PC isn't called next-gen, even if it's much more powerful than your old console. And even if you look at the longer timescales of PC, it's hard/subjective to choose a line in the sand for one "generation" to transition to the next. So I don't think VP9 is, wants to be, or needs to be "next-gen" by that kind of definition.

Having said that, it's a sufficiently "next-gen" bitstream (basically it assumes you have a certain amount of hardware oomph available) that its visual output can be better than x264 already in most ordinary videos, even with an encoder that could be described as "worse" in many ways. x264 may be a better fighter "pound for pound" but it's clearly in a different weight class.

</comment></comment></comment><comment><USER3> so basically how much it would save : Cost/Time/Space over a 100 MB file, compared to current codec ? A example would have been nice for non-CS people like me.

<comment><USER16> We're at the research phase, still. The techniques seem promising, but there's still a lot of work to do, before we get to the tuning stage. THEN, you can have your estimates.

<comment><USER3> Okay, cool</comment></comment></comment>


Desert space needed to cover the planet need's for electricity  - <AUTHOR> http://www.iflscience.com/environment/how-much-room-do-we-need-supply-entire-world-solar-electricity

<comment><USER2> So much wrong for such a short article. Sure, if we covered that many square km of Algerian desert with solar panels, we could generate enough electricity to power the world. Electricity _generation_ is not our primary problem, electricity _distribution_ is. Even with traditional power generation distribution is the major source of energy loss - so much more energy is required to be generated to get a usable amount to your home and business. Generating the world's electricity in Algeria is easy, you have strong sunlight, all the time, with rare weather and seasonal variances. But in order to even distribute that power to the other side of the Mediterranean, you'd have to generate several times that much power.</comment>


Futuristic Location Platform Geoloqi Lands Funding - <AUTHOR> http://www.readwriteweb.com/archives/futuristic_location_platform_geoloqi_will_live_lan.php <comment><USER2> A solution looking for a problem and/or customers scores $350k.

<comment><USER3> Marshall's proposed problem is just one of many. This may not be a financial success at the moment, but it looks like a forward thinking startup with a core technology that has the potential to be very influential in your daily life. Think about all the things you do each and every day in which your location is a key (independent? not a mathematician) variable. When <here> do x, when <there> do y. I think geoloqi's own homepage[1] has some pretty interesting use cases (under uses).

[1] - <http://geoloqi.com/></comment></comment>


Entertaining Cat With A Laser (Patent) - <AUTHOR> http://www.google.com/patents/about?id=OfwkAAAAEBAJ&dq=5,443,036

<comment><USER2> Well, I violate that one on a regular basis...

</comment><comment><USER3> "The involuntary and almost imperceptibly slight movements of the hand holding the laser device of the present invention creates a jittery animated effect in the light pattern at the opaque intersection appealing to cats even when the device is held essentially steady."

I hope the production model infantry laser rifle of the future is forced to include patent 5,443,036 on account that even in the hands of a bio-mechanical super-soldier, the jittering effect of the laser's appeal to cats was patented decades earlier.

</comment><comment><USER4> Am I the only one reminded of this Monty Python classic

Confuse a cat :<http://www.youtube.com/watch?v=B2Je1CEPkUM>

</comment><comment><USER5> How can you patent something that exists in two separate forms:

       1.  playing with cat
       2.  flashing a laser around

Or is that like mixing chocolate with peanut butter and making a new candy to patent?

There has to be prior art before 1995 no? (look how large that laser is! mine is the size of a AAA battery)

So can I patent making a ball out of tin-foil and throwing it around with my cat (she chases it like crazy).

</comment><comment><USER6> Webcatting: Saw this last month at NYU's ITP

[http://itp.nyu.edu/~nbe206/blog/wp- content/uploads/2010/12/s...](http://itp.nyu.edu/~nbe206/blog/wp- content/uploads/2010/12/screenshot.jpg)

Natalie's blog: <http://itp.nyu.edu/~nbe206/blog/>

</comment><comment><USER7> Amusing still, but one of the longtime examples of an obvious invention.

</comment><comment><USER8> Well - I just lodged a patent:

Method of entertaining a human with a cat.

PISS OFF IT'S MINE!</comment>


Redditbots drawn using equations and inequalities in Desmos - <AUTHOR> https://www.desmos.com/calculator/qtryqi8nm9 <comment><USER2> At first I thought this was going to be a tool to expose all the bot activity on reddit</comment>


RESThub 2.0, the Spring + Backbone.js stack, just released  - <AUTHOR> http://pullrequest.org/2012/12/04/resthub-2.html

<comment><USER2> Cool news !!! Keep on the good work.</comment>


Android Market Sales data: pitiful $64/day for a Top 5 app - <AUTHOR> http://larvalabs.com/blog/iphone/android-market-sales/

<comment><USER2> Here are some reasons why:

1\. Poor availability of app store in many countries in the world compared to iPhone

2\. Ability to purchase apps outside the appstore - I bought an app from an author's website directly, paying by Paypal.

3\. Fewer actual handsets in use worldwide.

</comment><comment><USER3> The problem is with the Market application. It's horrible.

That being said, I don't have a top 5 app, not even a top 100 app for that matter, but I do make between 50 and 20 dollars a day from it. Better than nothing, and the trend is upward.

<comment><USER4> There are alternatives to the Android Market:

<http://www.mymarket.cc/>

Try it out, see what you think ..

</comment></comment><comment><USER5> This actually makes me want to jump in / its a indicator to me that your not that far behind in the game (getting in early, with the android system) -

\- I really think it 3-5 years android will be what apple is today; I'm not saying to wait around - but perhaps plan for it.

<comment><USER6> I absolutely think your correct. I fully expect Android to eclipse the iPhone in market share within the next 3 years. I say that with a couple of caveats, however:

1\. Google has to get serious about competing with Apple. They need to adopt multi-touch, and they need to do it NOW. I get there is a legal question around it, but that didn't stop them from aggressively pursuing YouTube.

2\. Google needs to show that they're serious. The app-store for Android is a mess (as the article clearly articulates). There is a lot of money to be made there, but Google needs to step up to the plate and make that a vibrant eco- system. They need to be Microsoft to Apples..well.. Apple. Be more developer friendly, more marketing friendly, and let the openness of their system eclipse the closed off world of the iPhone.

If they do that, Android should be a huge win. They've built the technology. Just as S60 dominates the smart phone market today, Android is similarly positioned. It can support a lot of price points and a lot of different form factors. That variety allows for a huge number of devices to collectively drive that share through the roof.

Since the device is more open, it creates an environment for developers to build truly killer apps that utilize the full system in a much more advanced way. Again, that is predicated on Googles ability to bring a truly robust store to their phones. If they do, that further increases Android's viability and gives them a marked advantage over the iPhone.

Google is REALLY close with this.. they just need to take the next step.

<comment><USER7> I don't think supporting a lot of form factors and "price points" (i.e. hardware capability) is necessarily a recipe for success. The baseline hardware has to be pretty capable, e.g. including a 3D graphics chip, generous memory, ample storage, etc. The phone can't be too cheap, or apps will run on some Android installations and not on others, leading to platform fragmentation.

If anything, something like Vista's machine performance score could be implemented, with the lowest-scoring element being the total score.

<comment><USER8> > I don't think supporting a lot of form factors and "price points" (i.e. > hardware capability) is necessarily a recipe for success.

It worked for Nokia.

<comment><USER7> No it didn't. Nokia doesn't have a successful app platform.

<comment><USER8> Most people, until very recently, did not care in the slightest about 'apps' on cell phones. You guys are thinking way too much like silicon valley geeks about this.

</comment></comment></comment></comment></comment></comment><comment><USER9> What prevents a startup from creating an alternative marketplace that accepts all sorts of mainstream payments methods, works within and outside of the US, and doesn't suck? It was my understanding that Android, unlike the iPhone, could install applications from elsewhere.

</comment><comment><USER10> It's true if you want to make money, develop for the iPhone and not the Android.

But if you want to build neat, useful things I'd say in the long run the Android platform will be better.

I think Android versus iPhone is kind of an Apples to Oranges comparison. It's like comparing the PC with the Xbox. Sure, you can make a ton of money developing games for the Xbox, but that also means you have to develop games.

From what I've read(with some exceptions), the real money made on the iPhone is in developing games.

I wouldn't develop for the Android to make money. I would do it to make cool apps that I would use myself and could distribute myself without going through the App store & review process. I think the Android will be the cooler platform to develop for eventually, unless all you care about is making money. In which case make games.

<comment><USER11> _"It's true if you want to make money, develop for the iPhone and not the Android."_

I would argue that if you want to make money, develop for _neither_.

<comment><USER6> Yep. The economics on both platforms are really nasty right now.

</comment></comment></comment><comment><USER12> It's all in the number of devices out there. As the number of devices goes up so should the sales.

Using google checkout is just plain silly though, buying an application for a phone for the most part would be 'impulse' buys, in which case you want to remove any possible barrier. That's good business sense anyway but for this kind of product it is an absolute must.

<comment><USER13> > It's all in the number of devices out there. As the number of devices goes > up so should the sales.

Actually I disagree. The Android marketplace isn't compulsory so many people would be getting their apps from other sources. It's kind of like comparing the the approval rating of the leaders of North Korea with that of the US. Before the iPhone came along nobody would have thought of using a centralised 'app store' as the measure of a platform's strength.

</comment></comment><comment><USER14> Holy crap- so much for porting to Android, that's absolutely abysmal.

<comment><USER15> It is abysmal but isn't it a bit early in the game to call Android out?

Multiple companies are involved in getting these things out and it takes longer to set up than having one company control everything.

There's a lot of marketing dollars at work with android and the network effects of the users will ramp up. The first generation of androids were ugly and inelegant compared to the iphone but the next gen looks better thought out and prettier inside and out.

Like Wayne Gretsky said, "Skate to where the puck will be"

<comment><USER14> It's a matter of prioritization- with numbers like that, we'll prioritize to being on every other platform before we go to Android.

<comment><USER15> With 65k apps in the apple app store, it's going to be pretty hard to get any attention for your iphone app.

Launching a cool app on Android first will get you a lot of press. There's just less competition there. There are tons of well read bloggers and journalists who would be very interested in your Android App and the people marketing the phones would probably feature it in their ads like apple did with the "There's an app for that" ads. That's how marketers think. "It worked for Apple, so we'll do it too."

Going to the iphone first will probably take two weeks to a month to get approved while the Android version can update faster with less hassle. You get to iterate faster and get feedback on the latest results. A faster feedback loop is essential to iteration and improvement.

After you get some attention, then you can make an iphone version and if you're a top 5 Android app, that's a good reason for people to take a look.

In the history of software, I'd say look at Microsoft Excel. It launched on Mac which had some crazy new features like a GUI. It quickly became the top spreadsheet on the mac (there was little competition). Launched on Windows a couple years later and went on to dominate the category.

</comment></comment></comment></comment><comment><USER16> If Google is serious about their App Store, and with Google that's always a concern, they should be promoting the platform. Apple is actively highlighting third party apps as a major selling point of the iPhone platform with constant TV commercials showing off some of the best apps. Google's approach to multiple handset vendors already makes the situation confusing to consumers so it's even more important they advertise. A Google commercial showing off 2 or 3 different Android handsets running some third party apps would be a massive boost for the platform and handset makers.

Someone pointed out that the Android platform is really starting to feel like "Linux on the desktop" where it's always the next handset, the next OS revision, etc that's going to change everything. The same basic rule applies: If you fall too far behind commercial alternatives you will lose no matter how good your platform is. Personally I think Google's window of opportunity is very small here. If they can't start making some headway the game is over when the iPhone hits Verizon.

<comment><USER17> I don't think Google has even tried to market Android yet. Letting the technical users get all the bugs out is a good strategy. Once that is taken care of, Google can open the floodgates. They're an advertising company, remember, so when they want to get the message out, they will do it.

But anyway, this is not critically important right now. Andorid and iPhone both satisfy the "I wonder if there's an app for..." for any reasonable value of ... right now. If you have an Android phone, it will do anything you want a phone to do. If you have an iPhone, it will also do anything you want a phone to do (minus being location aware, or having third-party caller ID data loaded when someone calls, or writing your own programs for it, etc.).

</comment></comment><comment><USER18> I got an HTC Magic recently for development, and the first thing I did was check the App Store (sorry, the Market) - I can't find ANY paid apps, even if I mess around with the buried menu setting mentioned by the article.

 _Google checkout only way to buy_

And that could be why - last I checked, Google checkout wasn't available in Canada.

<comment><USER19> Paid apps aren't available in Canada yet. I can see them if I use a T-mobile SIM card.

</comment></comment><comment><USER20> I have 2 apps on AMarket right now, making far to less money to live from them. Only solution is to work as a consultant for bigger players.

But still the same model is on App Store, my friend who is independent do the same.

Nice thing about Android is that casual users won't even know they are using Android, when smartphones will become standard. And slowly they are becoming.

From my perspective, AMarket when GOOG will finally make it usable (2.0 in month) may become really profitable. 3 mln users right now.

Also new handhelds look really promising, and if Motorola treats Android as their last resort, well I, as a small fish need to follow bigger players behaviour.

</comment><comment><USER21> I haven't seen any adverts for Android phones pushing that they have 'Android' as a feature, nor have I seen any adverts for the Android app store. Whereas the iPhone was heavily marketed at normal consumers. It is not surprising that very few people are using the Android store, given that few people know of it's existence.

Google and the phone makers are playing the game very differently to Apple. I think it's going to be a long time before I could claim Android is a failure, it's still very early days for the project.

</comment><comment><USER22> Give Android Market some time. Recall iTunes was hugely successful before the iPhone came out. Also purchasing music for an iPod is almost identical to purchasing an app for the iPhone (relatively small price for a relatively small item). So App Store just has a huge lead. Doesn't imply Android won't catch up. After all compare Apple vs MS today to Apple vs MS 10-15 years ago.

</comment><comment><USER23> Their claim about requiring a credit card purchase is bogus because to open up an iTunes account, you need a credit card.

<comment><USER24> You never need a credit card on you to buy an app.

<comment><USER25> The Android market uses Google checkout, and all android phones are tied to a Google account. There's certainly no requirement that you physically have a credit card on you, though before you can use the market you do need to set up payments on checkout either via the phone or on your laptop, etc...

</comment></comment></comment><comment><USER13> I think comparing 'Android Marketplace' with Apple's 'App Store' is somewhat comparing 'apples with oranges'. Android doesn't require all apps to go through their marketplace so you would expect less downloads per user. Android could flourish without any centralised marketplace. Desktop OS's certainly have.

</comment><comment><USER26> As Milton said: "Better to reign in Hell than serve in Heaven."

<comment><USER27> On the other hand, and much more pragmatically, better $3000 a day than $60 a day.

</comment></comment><comment><USER28> Android is the linux of the smartphone OSes, and the iPhone OS is the windows.

<comment><USER13> The compulsory centralised app store model of the iPhone makes it an entirely new beast (apart from consoles). The difference is big enough to invalidate the comparison with Windows. Also the fact that their market share is still below below 10% world wide also puts a dint in your metaphor.</comment></comment>


Ask HN: Modern Lisp (Scheme) CPU? - <AUTHOR> Would it be possible/useful to design a CPU with a Scheme dialect as its machine language? My idea for this is in the comments (It's too long for this text box). <comment><USER2> Have you looked at some of the existing literature in this area? Lisp based processors were developed and researched in the 70s and 80s, mainly at the MIT AI lab.

Some reading:

The Lambda papers: [http://library.readscheme.org/page1.html](http://library.readscheme.org/page1.html)

A lisp processor for C.ai: [http://repository.cmu.edu/cgi/viewcontent.cgi?article=2977&c...](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2977&context=compsci)

CONS: [http://bitsavers.trailing- edge.com/pdf/mit/cons/CONS_Nov1974...](http://bitsavers.trailing- edge.com/pdf/mit/cons/CONS_Nov1974.pdf)

CADR: [http://dspace.mit.edu/handle/1721.1/5718](http://dspace.mit.edu/handle/1721.1/5718)

SCHEME-79: [http://dspace.mit.edu/handle/1721.1/6334](http://dspace.mit.edu/handle/1721.1/6334)

Implementation of a list processing machine: [http://not.meko.dk/MIT-LISP- MACHINE-tk-sm-79.pdf](http://not.meko.dk/MIT-LISP-MACHINE-tk-sm-79.pdf)

The CURRY chip: [http://carlo-hamalainen.net/stuff/p122-ramsdell_The-CURRY- Ch...](http://carlo-hamalainen.net/stuff/p122-ramsdell_The-CURRY-Chip.pdf)

Just found a bunch more reading resources indexed here: [http://www.ugcs.caltech.edu/~weel/lispm.php](http://www.ugcs.caltech.edu/~weel/lispm.php)

There's much more to read if you search around - and some more modern stuff, as it is still a topic of interest among some hackers. It'd probably help to look around and collaborate with other people working on similar ideas.

I'm interested, but I don't know nearly enough about hardware yet to actively participate. I've been trying to find the time for it - just finished reading a book on VHDL and practising the basics, but I've got too many other projects on to give it my full attention.

<comment><USER3> Here are some projects that put new Lisp machine architectures on FPGAs:

LispmFPGA (2008) [http://www.aviduratas.de/lisp/lispmfpga/](http://www.aviduratas.de/lisp/lispmfpga/), [https://groups.google.com/forum/?fromgroups=#!topic/comp.lan...](https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.lisp/36_qKNErHAg)

IGOR (2008) [http://opencores.org/project,igor](http://opencores.org/project,igor), [https://www.flickr.com/photos/kaitorge/sets/7215760944571932...](https://www.flickr.com/photos/kaitorge/sets/72157609445719327/show/)

</comment></comment><comment><USER4> Chuck Moore's GreenArrays chips for Forth might be a source for inspiration.

[http://www.infoq.com/presentations/power-144-chip?utm_source...](http://www.infoq.com/presentations/power-144-chip?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1#.UrMEcjUlt_s.reddit)

</comment><comment><AUTHOR> I've started working through SICP in my free time [1], and I'm an electrical/computer engineer who looks at HDL and hardware all day at work. I haven't worked through this idea so it may not be possible or useful (this is most likely), but it seems to me that a simple lisp itself could be the machine code of a massively parallel CPU architecture, with minimal compilation.

Scope in Scheme is built into the language in an explicit way. The SICP Scheme dialect contains very few constructs to implement as instructions. My basic idea is to have many many simple processor units that evaluate only a given scope of an s-expression. For instance, starting from the beginning of an expression, core A reads the first operator and starts executing it on the following data. We continue to perform that operation until either encountering "([operator]", which engages a new core (let's call it core B) and toggles some kind of flag/register to notify this core to expect a result from core B, or ")", upon which we output the result, given we're not waiting on something below to finish.

Now where this gets awesome is the core A in the example above can continue to execute at its own scope level while waiting for a result, and kick off any other lower-scope expressions it finds along the way. Assuming the order of the data does not matter (it usually doesn't!) a given core only has to idle when it's reached the end of its own scope and is waiting on a lower level.

For example, let's say we have:

      (define (fib n)
        (cond ((= n 0) 0)
              ((= n 1) 1)
              (else (+ (fib (- n 1))
                       (fib (- n 2))))))

      (fib 5)

Right now I'm thinking a function definition will simply compile into an address label. So execution would really begin with (fib 5). Then we get to cond, which is really just a sequence of conditional branches. Even here we can probably have two separate cores evaluate (= n 0) and (= n 1) simultaneously. Even though order matters in this case, perhaps we could come up with some way to keep track of it.

Anyway, then the fun part begins. A core evaluates + and starts waiting, and two other cores evaluate (fib (- 5 1)) and (fib (- 5 2)), which means that in turn, two more cores are dispatched to evaluate (- 5 1) and (- 5 2). They return 4 and 3, and the two other cores both branch to the fib function, one with 4 in its personal register, and one with 3. And so on. The result of this for this function is that, handwaving away the conditional for now, and assuming lower levels of scope are able to be "skipped over" when being read, (fib n) as written is calculated in linear time, and with a normal processor it's exponential time (c^n).

With this architecture, the "stack" would just be the number of cores. I don't know if this is an efficient use of hardware, but I think the cool thing about it would be it would make a lot of programs execute more in parallel, _as written_.

[1] I'm only at the end of chapter 1 though. Progress is slow but already rewarding.

<comment><USER5> I loved this idea! Check out the Lisp machine that ended up implementing a parallelization similar to what you are describing.

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

Is there a way to get in touch with you? I'd be happy to help with the software. Or at least, the definition of a Lisp that's shorter than the current Lisp.

I also noticed there are tools that can convert from C to an FPGA (in Verilog?) Does this mean that if someone where to write a short Lisp interpreter in C one of these tools could convert it into a hardware specification?</comment></comment>


Ask HN: What tools do you/your partner use during the home buying process? - <AUTHOR> Once you decide which houses you want to take a look at, what tools (excel, notes, etc.) do you use to keep a track of what you like and don't like about the house? <comment><USER2> Before buying, take a look at The NY Times rent/buy calculator nytimes.com/interactive/2014/upshot/buy-rent-calculator.html?

What this and other calculators don't take into consideration is the value of owner's time spent doing things renters don't have to do.</comment>


Userprofile in JSON: What Delta (Airline) knows about you - <AUTHOR> http://www.flyertalk.com/forum/delta-skymiles/1431632-delta-new-dl-com-profiles-lot-about-you.html <comment><USER2> It seems you have to be logged in to get any info from the JSON dump and I'm assuming they only call it via https (it seems to respond to http, too, though)

Although, some of that data is interesting, and I could understand why they'd keep or try to find it, I'm just curious why it's in a public API.

<comment><AUTHOR> Yes, especially the value of your home, or your yearly income... quite interesting, that they do have this kind of info (even your customer segment). And more interesting, that they do show all this in the json-File...</comment></comment>


Macro trends in the tech industry - <AUTHOR> https://www.thoughtworks.com/insights/blog/macro-trends-technology-industry?utm_campaign=technology-radar&utm_medium=social&utm_source=linkedin <comment><AUTHOR> It'll be interesting to see if the crowd on HN has noticed any other trends missed by the author</comment>


Apple bans modular programming - Game of Life implementation not allowed - <AUTHOR> http://3dpancakes.typepad.com/ernie/2010/04/apple-bans-modular-programming.html

<comment><USER2> Okay, this uproar has just passed the threshold of ridiculous. "No Private APIs" is well-understood to mean that you can't call undocumented system libraries, not that you can't implement your own. Can we as a community please go back to talking about something else now? Erlang, maybe?

<comment><USER3> I recommend you not ask people to post Erlang articles. I did that once and so many people submitted Erlang articles that pg banned me for causing an e-riot.

<comment><USER2> He banned you for that? Really? I was under the impression that such protests, when justly called for, were condoned by management.

<comment><USER3> Honest. I was a bit surprised myself. Oh well.

edit: This was my comment: <http://news.ycombinator.com/item?id=775727>

<comment><USER2> This time I'm half-anticipating a flood of articles about Apple banning Erlang from the iPhone.

<comment><USER4> <http://twitter.com/raganwald/status/12056378037>

</comment></comment></comment></comment></comment></comment><comment><USER4> This is a strawman, but an entertaining strawman, so have an upmod!

Sure, Apple theoretically could bar a Game of Life application if you actually built one with a board large enough to make a turing-complete automaton and then proceeded to demonstrate meaningful end user programs running on it.

I defy the author to tilt at the Apple Windmill: Write a Game of Life for the iPad with an actual Turing Machine running on it and write something that replicates some built-in functionality--like a calculator--running on top of that.

If the App Store rejects the Game of Life I'll publicly kowtow.

<comment><USER5> Nitpick:

AFAIK, the game of life (as a mathematical concept) is in itself a turing complete automaton, you don't need to explicitly simulate a turing machine with it, in the same way that you don't need to implement a turing machine on top of the lambda calculus to be able to express algorithms with it.

In practice, since all computers have a limited memory, they are in fact deterministic finite-state machines. So the size of the board/RAM/whatever constrains what you can do with it, but it is as true for Life as for any language or computer system.

From a practical standpoint, watching a board of Life is indeed about as interresting as watching a random memory block rendered on screen while your program is running... It's sometimes entertainging, but usually boring.

I'll admit I actually have Life on my iPhone :D

<comment><USER4> Not a nitpick at all, we are in agreement. I appreciate that _in theory_ a GoL program is a turing complete automaton, just as _in theory_ Apple could use one of its legal clauses to reject a GoL application from the App Store.

I was trying to hint that someone _in practice_ writing an App using a GoL as a platform running a turing machine running an app is about as unlikely as Apple actually rejecting a GoL implementation for this reason.

Or in more pithy terms, "The gap between theory and practice is narrower in theory than it is in practice."

p.s. Speaking of theory... One of my favourite books is "The Recursive Universe: Cosmic Complexity and the Limits of Scientific Knowledge," wherein the Game of Life is used to discuss complexity, self-replication, and other fascinating topics:

[http://www.amazon.com/gp/redirect.html?ie=UTF8&location=...](http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FRecursive- Universe-Complexity-Scientific- Knowledge%2Fdp%2F0809252023%2Fsr%3D1-1%2Fqid%3D1163786265%3Fie%3DUTF8%26s%3Dbooks&tag=raganwald001-20)

<comment><USER6> I think you're missing the point of a reductio ad absurdum argument. Very often, it's easy to overlook the flaws in something because we have a viewpoint that makes them look smoother than they really are. Reductio ad absurdum grabs your head and jerks it to an unnatural angle where you're looking at the flaw head-on. This precise case is not likely to happen in practice, but that doesn't matter, because the value of the situation is in helping us see a problem.

If you want to see an example of where this approach might have helped, look at the children convicted of making kiddie porn for taking cell phone pics of themselves. You could have brushed off reductio ad absurdum arguments by saying, "Oh, that precise situation is so unlikely," but the flaws are real just the same.

</comment></comment></comment></comment><comment><USER7> I feel like this is pretty clearly a joke, and should be taken in the spirit in which it was intended: for laughs.

</comment><comment><USER8> As dfranke says, "private APIs" are CocoaTouch/NS_* objects and methods Apple uses that you aren't allowed to (yet).

This article is factually false and should be downmodded.

</comment><comment><USER9> You know what would be funny? If someone makes a fully fledged javascript flash player - <http://paulirish.com/work/gordon/demos/>

<comment><USER4> That would actually be ok and I would be surprised if Apple cared one way or another. Why? because such a thing would run inside Mobile Safari and/or Webkit. It couldn't run roughshod with the CPU any more than Mobile Safari/Webkit already allows its JS interpreter.

The only way this could really irritate Apple would be if you wrapped the whole thing up with PhoneGap or something like it. have at it of that interests you!

</comment></comment><comment><USER10> Again, I know this is a sarcasm post, but do we really need another one on HN for Apple TOS 3.3.1. I think it's time to move on and until there an instance of Apple rejecting an app that violates 3.3.1. I honestly think Apple wouldn't ban tools like Unity3D, etc but Adobe CS5.

</comment><comment><USER11> Well, he makes one useful point at the end. So why are turing machines allowed in the app store?

[http://itunes.apple.com/us/app/turing-machine- simulator/id30...](http://itunes.apple.com/us/app/turing-machine- simulator/id303032123?mt=8)

<comment><USER12> Selective enforcement.</comment></comment>