274 karma · joined October 3, 2008
Also the part where you reapply those same abstractions to fix the hole, without realizing that the problem is you simply don't yet have tools that are capable of writing a robust system - despite the evidence to the contrary.
If a day long outage of this scale is not enough to make us rethink distributed systems, what is?
The real problem is there is no good mathematical model of distributed behaviour, from which statistical guarantees can be made.
I think we're at the limit of what the smartest people can achieve with hand crafted code.
Most likely new math will give rise to new tools and languages, in which the next generation of reliable distributed systems will be written.
Without this advance we will have storage networks that aren't reliable, an internet that can be taken down by one organization, botnets that are unkillable and patchy network security.
If you're already looking into Javascript, I would recommend jQuery for practical reasons, and Node.js for more subversive reasons. Have a look at source of some common Node.js modules via github. This may lead onto finding out a bit more about lisp ideas.. and computer science topics that are both interesting and relevant.
Maybe at 16 you have time to work on a startup idea in your spare time for fun, while doing a degree also? Id actually suggest a course on compilers, it helps you write better programs. Throw in a bit of C programming on unix, and the basic stuff on algorithm complexity.. and calculus and.. oh dear.. just follow your interests :]
Theres so much cool stuff to find out about. University might be the best place to concentrate on hacking code and meeting interesting people, one of which might be the perfect cofounder for your startup.
Many of the teachers will be so-so.. but then you'll find one or two gems that really show you something you might not have found on your own - to be challenged is important.. seek it out.
The lisp language 'microkernel' is clearly a fundamentally important construct - the essential core of all computer language.
But lisp needs to interact with the surrounding ecosystem - less than genius level programmers, ugly APIs, non-mathematically perfect OO abstractions, old fashioned data stores. Its actually a lot of work to wrap that... given the impedance mismatch. Perhaps this is the same reason microkernel operating systems have won in theory but not in practice - interfacing to 'the real world'.
Comparing Arc and Scheme [both of which I really enjoy] to the Javascript / node.js 'environment' ... it seems Node.js is more amenable to real work. Its a less expressive / powerful / elegant language - but via Node, Javascript melds beautifully with the async IO model of the OS and gives superb primitives for developing TCP/http services.
Maybe its not the breadth of the libraries available, but the smoothness of the bridge between the language and the real world.
Geeks who apply their smarts and learn something about social interaction do get laid [ to abuse my analogy ].
In contrast, the people who want to get-shit-done are changing the world on github.
I do a technicolor yawn every time I see a post that talks about M$, Oracle or Java.. as if those topics have any kind of future.
Likewise I cant comment on Node.js or Ill get down-voted cause some asshole knows only the bad parts of javascript. [ I can say this with perspective, as I was that asshole 4 years ago :]
PG, stop being so nice and enforce your single minded vision on HN before it dies.
The pain is almost all in the area of browser compatibility.
I kind of agree with your point, in that I think there is a layer missing [ eg. to make resizable UI work well ]. But I think that layer is best implemented in Javascript upon SVG/DOM.
As a comparison : I've used XCode's Interface Builder, and then thrown it away and written iOS UI Layouts by hand, and apparently Im not alone in this. Then I compare that to how much less code I'd need to write in Javascript for the same UI. [ I have implemented HTML5+js UI for iPad that looks like native Cocoa]
Dont get me wrong, I think Cocoa is a good traditional API. But compared to SVG+js APIs such as Cocoa/QT/GTK feel incredibly verbose, slow to iterate and brittle, IMO.
Id like to see a desktop development model more like modern web development - UI in HTML5/javascript/SVG, json data messaging, UI & system events coming from a port [eg. shinetech/eventserver], able to write small server-like plugins in Node.js / C / Ruby / lisp that can provide services and be remoted away from the UI.
Would be nice if some of this was reusable across OSX/Win/Linux. Perhaps my desktop work should be done in the browser?
The old unix guys might have approached it this way if they had the current web at hand to reuse/augment/embellish upon. Maybe this is more in the true spirit of unix than QT/GTK/Xwindows?
What I do find remarkable is that you started a company by 22... I would have loved to have done that but maybe just didn't believe it was possible at the time.
Am enjoying reading HandBook Freemium.
Quote of the year.
Im sure Im not the only person expecting him to publish a physical book with all these articles in one place.
Title?
ie. do webkit style animated transitions work? smoothly?
[ Found a partial answer to my own question, here : http://blazingcloud.net/2010/08/11/jqtouch-slide-transition-... ]
Yes, it is clearly not about sexuality, but it is a situation where there is a massive imbalance of power. Who is there to verify that your human rights are being upheld?
It is not a situation in which you can complain, even if there was abuse - because you'll miss your flight and look like a terrorist. Then there is the social pressure to conform in front of a large audience of people who you will delay if you do complain. Not to mention the number of uniformed and armed guards present.
Im presold on the idea that there must be a better way - swype is one well known improvement. I dont need to be sold the problem, I need to see the solution working in a real scenario before exploring further.
This all got me thinking about developing interactive stories and the ideal lisp game development environment...
I hear from people who want to create interactive books and lessons for iPad. I recommend they prototype things in PowerPoint or Keynote first, then hire a developer to turn it into a cocoa app or a HTML5 web app with webkit animations. Its too hard.
If the ideal tool was a web app, you could develop games and interactive lessons for iPad and other tablets directly on the device.
You'd want a DSL for standard slide/rotate/scale animations, and write code in lisp for game logic. This would bypass expense of developing native cocoa apps yet reach nice platforms.
Ideally you'd prototype quickly and be led gently into the best language. I guess mobile is the primary computer for most young people, so would be ideal to take a lisp environment to them.
I think we need to accept some false positives [such as foul language] in order to preserve a reasonable level of freedom of speech on HN.
Here I mean freedom of speech in the weak form, ie. that you stop posting something you truly believe, because of fear it will attract down-votes.
Useful ideas/opinions that occur in the long tail may offend some people - but I think HN is too uniform and PC without them.
"Unity brings together a powerful set of technologies designed to empower application developers and deliver a unique user experience"
From the above hype I mistakenly assumed Unity was something other than a nice Window Manager. Perhaps I do deserve to be down-voted for not wading thru pages of this tripe to find out what it actually means.
My comments still stand : Even if Unity is a superb WM .. does the Linux desktop really need another?
HTML5 would be a better way to do Linux Desktop UI.
Why not use Javascript/SVG/HTML5 for Linux desktop UI ? It will happen eventually, anyway, Im not the only person saying this.
The browser stack is a better alternative to X-Windows protocol, on balance - you can keep the advantages of client/server separation by using ajax+websockets.
Or go the Node.js route and expose OS parts as Javascript API.
Either way you'll have an environment many more people will enjoy hacking UI on, and therefore better chance of improving Linux desktop.
Although its open source, its still another API that is used nowhere else.. so its expensive for a developer to jump in.
Better wording might be "I think his work is worthy of a Nobel Peace Prize", to avoid the impression of sarcasm ?