Ask HN: What are the best technologies you've worked with this year? - <AUTHOR> So HN, what are some cool, shiny new technologies that you worked with this past year? Care to tell us what those technologies are and why they are so cool? <comment><USER2> 2010 was, for me, the year of JS-related technologies. (I'm actually rather disappointed I haven't had more time to check out Clojure and to use Haskell and Scala more--I was doing quite a lot of front-end web stuff.)

1\. Socket.IO (<http://socket.io/>)

It lets you use websockets and automatically fall back to flash sockets, long polling, or several other real-time communication methods if websockets aren't supported by the client. There's a JS client and node-compatible server, as well as in-progress server implementations in a few other languages. Node is nice by itself, but it's with things like Socket.IO that it really shines.

2\. Coffeescript (<http://jashkenas.github.com/coffee-script/>)

Coffeescript is a nice-looking and nice-to-type syntax on top of JavaScript. It's made JS development a lot friendlier, and I now miss things about it every time I'm programming in Python and Ruby. I now use it whenever I'm doing any significant amount of coding in JS.

3\. Node.js (<http://nodejs.org/>)

Node should, by this point, need no introduction. Server-side JS. Plays very nicely with websockets thanks to Socket.IO, making it very easy to write the server-side part of real-time webapps. I've also found it very useful when trying to quickly prototype simple non-webapp things that have to communicate over a network.

I haven't had a chance to check out Backbone.js (<http://documentcloud.github.com/backbone/>) yet beyond a very quick look, but I expect to use it (or something like it) next time I'm developing something that uses a significant amount of client-side JS.

I'm also very excited by the continued development on (and Yehuda Katz's participation in) SproutCore (<http://www.sproutcore.com/>).

<comment><USER3> I'm looking forward to seeing someone combine Backbone.js with Websocket-based persistence. It's a bit out of scope for DocumentCloud to tackle, but the building blocks are there.

One client makes a change to a model -> changes are synced to the server -> other clients that currently reference that model have its attributes updated -> all the UI that displays the model is automatically re-rendered.

It's not critical for most applications, but is a really nice, nice-to-have for any JS app that displays the same editable data to more than one user at a time. Built-in conflict resolution mechanism for bonus points.

<comment><USER4> I'm doing something pretty similar to rumpetroll (it is fully functional rumpetroll now, but we will add more features) using Backbone Model View Collections as my 'Sprites'. The code isn't public yet, but me and a friend have some plans for it. The only thing different is that we've completely dropped use of Backbone.sync, for the sole reason that the method based approach does not fit very cleanly into what we are doing and websockets. So we have one model as a 'dispatcher' instead, to which all models send messages which are transmitted over websockets. All sprites communicate via attribute change events which is a really good use of Backbone. On the server a tiny node.js wrapper uses Redis pub-sub to relay messages out to other clients.

The code is 'out there' but private, so if you want to take a peek at it, please contact me directly.

Thanks for a great framework.

<comment><USER3> I'd love to take a peek, if you want to mail an invite to jashkenas at gmail.

Replacing Backbone.sync is totally legit -- and is indeed what having Backbone.sync in a single place is intended for. There are many good paths to data persistence: REST/CRUD, RPC, aggregated JSON, CouchDB or Mongo, LocalStorage, and so on. Backbone.sync is just the default implementation for the common case.

I think that one of the more exciting things about JS development these days, is how open and flexible the patterns still are.

</comment></comment></comment></comment><comment><USER5> Varnish, the reverse proxy, has been my favorite new-to-me technology of 2010. It sits in front of Apache and caches static content (or anything really) based on rules you define in the Varnish Configuration Language (VCL).

Varnish is cool because it is very fast. It was written by Poul-Henning Kamp, who has a lot of experience in FreeBSD kernel development. He makes effective use of virtual memory, is careful to avoid memory operations that result in expensive bus transactions on mutli CPU systems, and knows how many system calls it takes to serve up a cache hit. All of this work has paid off. Varnish can turn a plodding CMS into a site that screams, and your profiling tools (siege, apache ab) will fall over before the site does.

Of course it helps if your CMS supports cache control headers, and isn't utterly laden with cookies, but that's where the VCL language comes in. You can write code to strip bogus cookies (like google analytics) coming from both the client and the server which vastly improves your cache hit ratios.

I like the way Varnish uses a shared memory pool for statistics and logging -- a wealth of information about the system is available to you but it doesn't generate a ton of I/O logging it to a file unless you ask it to. I love how you can use the telnet admin interface to compile new VCL code into a running system and then switch to it, while keeping old named configurations around in case you need to revert back.

Varnish has really helped me make slow sites fast this year, although it hasn't happened without some VCL coding effort and some understanding of how the sites operate.

<comment><USER6> But despite all that description, all my deployments have been one-liners with 3-4 cmdline params only. It really adds near-zero deployment cost.

Squid can do what varnish does, but it's 2x slower by my measurements, and it has a gigantic config file. (Squid can do things that varnish can't, so you may have to use it anyway.)

</comment></comment><comment><USER7> The iPad has changed everything. It's an entirely new type of computer that turned out to be substantially better than anyone imagined. Watch a 5-year-old use an iPad for the first time and you will immediately see and understand why this is a major paradigm shift. It's the first "socially acceptable" computer -- at Christmas I can pull out my iPad, plop it down at the dinner table and share pictures with the family, and it's not at all considered rude.

<comment><USER8> The iPad is an entirely new type of computer? You mean, like a pad computer as suggested by Wieser in the 90s?

> turned out to be substantially better than anyone imagined

By anyone you mean analysts, right?

<comment><USER7> _You mean, like a pad computer as suggested by Wieser in the 90s?_

I mean like a kids computer, and a socially acceptable computer, as I said so. The physical form factor isn't what's new, the implementation, software, use cases, and the whole experience is what's new.

 _By anyone you mean analysts, right?_

By anyone, I mean everyone who I've shown an iPad to. Most people don't get it, initially, but after a few minutes of playing with it, seeing their kids play with it, watching funny youtube videos together etc, everyone basically admits they didn't think it would be as good as it is.

<comment><USER8> > The physical form factor isn't what's new, the implementation, software, use > cases, and the whole experience is what's new

Actually. I want to explain why I was so vicious before. What made Wieser's ideas about computing so fantastic wasn't physical form factors. It was about a new age of computing where the way that people use computers would be significantly different to what we had then. It's taken more than 20 years for that to /start/ happening. The iPhone/iPad is the start of a Wieserian world because it bought the idea to people, not because they invented it.

The iPad really is an extension of the pad idea from Ubiquitous Computing. End of story. There's no counter argument. It's irrelevant who you've shown your ipad to, or how novel you think it is. You're wrong. End of story.

In fact, the iPhone and iPad are two great examples of what Wieser talked about so often in his work. The only core difference is that Wieser, the optimist he was, believed that devices should be like note pads in the office and not owned by a distinct person _. Computers should transend the need for us to serve them, but instead they should serve us. Pads would be used like note pads are today, but with the power of computing facilitating our contextual needs.

But just because it's new to you, and your group of friends is irrelevant. The idea is old. Even from an implementation point of view.

The one thing that Apple can be congratulated for is bringing that idea into a marketable position. That's no small feat there, they deserve recognition. However, they didn't invent the idea. Just a marketable implementation.

_ He also thought that there should be more computers, everywhere, that pads/tabs/boards interlink with.

</comment></comment></comment></comment><comment><USER9> Redis. Fucking awesome database. Does exactly what it's advertised to do, with no unexpected surprises. Great documentation. Finally we can go beyond the simplistic key-value map/reduce datastores, for when you don't need all the guarantees that traditional SQL forces you to have.

<http://redis.io/>

(I still use postgres and sqlite for other database needs, but I'm strongly considering moving a few of those over to redis if I have time.)

<comment><USER10> Yes! I first laid hands on Redis this year while working on Notifo and it's raw speed lets me do some great things. Currently hacking on some service analytics stuff that redis is making pretty easy. Though keeping everything in memory can get expensive when we want to minimize server costs so we keep the first month of data in redis and the rest as an archive in mysql (how often is someone going to look up a notification they received more than a month ago?)

</comment></comment><comment><USER11> These aren't new to the world, but they are new to me this year, and a lot of them sort of hit some sort of "usable by those without active interest in the continuation of said tech".

1\. Mongodb -- This year it really hit its stride and have been able to use it without worry for storing test results and experimental data. This is much nicer than the textfile logs -> sql -> processing datapath I was using previously.

2\. flask: this little framwork is in my sweetspot. It does all the annoying crap of webby stuff, without all the "use our orm/routing model/way of thinking of http" so common in the space

3\. mongrel2: I like it because it uses 0mq as the backend and sanely integrates some components in a way I feel could be better for many use cases than traditional stacks.

4\. 0mq: This gets special mention, because it has been around for a while and I was actively using it, but 0mq 2 came out sometime this year, and is different enough from the first round, that it could be considered a separate technology. It isn't revolutionary in the MOM space, but it is a cool lightweight approach, and the core team has the type of dedication I like to see in OSS projects.

5\. ABSOLUTELY NOT NEW: Haskell -- this year is the first year I've had time to sit down with Haskell for real, and start understanding the weird FP thing. This has made everything I do feel shiny and new, because even though I never actually use Haskell, I find myself writing very short hsskell programs in python and c and the other languages I use in my day job. When I started coding I remember thinking "This must be what a wizard feels like!", Haskell has brought back that feeling for me.

<comment><USER12> 0mq is fantastic. I just wish it had some way to put a socket in a half-open state: [http://stackoverflow.com/questions/3692854/how-should-a- zero...](http://stackoverflow.com/questions/3692854/how-should-a-zeromq- worker-safely-hang-up)

ETA: `zmq_poll()` is nice, but some way to make it play nicely with other event loops (like libev's) would be even better.

<comment><USER13> This exists in ømq 2.1 (<https://github.com/zeromq/zeromq2/tree/v2.1.0>). You can get access to the raw socket, which allows you to plug it into anything that understands sockets. This is what was done for zeromq.node to tie ømq into node.js.

<comment><USER12> Thanks for the pointer. How does this square up against jrockway's comment ( <http://news.ycombinator.com/item?id=2055115> )?

</comment></comment></comment></comment><comment><USER14> I continued to work with F#, deploying a couple of small apps.

The really cool part came when I realized that with F# I was programming at the language level -- that I could effectively and easily write my own languages. So I decided I would like rails-like entities, where the entity reads the structure of the table and then conforms itself to whatever is in the table.

Couple hundreds of lines of code later, and presto chango, I could simply say "give me a list of customers" and point it to the table and I had a list of customers. This totally disconnected the database data structure from the code. Add a new field in the database and there was nothing to change in code. Or add a new field in the type and have it percolate out to the database. Change database providers and it was only a few function changes. Very cool. The kind of simple fix Microsoft should have done with data access instead of writing ODBC/ADO/OleDb//EF/etc

Then I had a blast with mailboxes, er monads, agents, and threads. Ended up writing a small app that was purely functional and all ran in the background. It was so automatic, at first I couldn't figure out how to start the dang thing!

This led to a venture into MPI and other technologies which has just begun. I'm also trying to wrap up my language work with a full DSL sometime soon (if I have a project that needs it). Looking forward to parsing and setting up trees and walking them. I also broke out of windows and started working in a linux environment using Mono, Apache, and MySQL.

Incredibly fun stuff. Looking back, I really had a blast this past year. Next year should be even better.

</comment><comment><USER15> I am a huge fan of Vagrant ( <http://vagrantup.com> ) which is virtualized development environments, package-able. Works with chef and virtualbox. I don't know if I can state just how game changing this is for me.

DocumentCloud really dropped some bombs this year. backbone.js, underscore.js are really great.

Socket.io saved my ass. I promised some big clients that I could make websockets driven apps for the iPad and then apple pulled websockets support without saying anything. So I was able to get socket.io for the win.

<comment><USER16> Ah, great one! Vagrant is amazing. Probably has a lot to do with VirtualBox getting really good as well.

</comment></comment><comment><USER16> 1\. MongoDB / Mongoid have blown me away this year. Is now my default database for new rails projects.

2\. CoffeeScript language is an amazing replacement for Javascript. I can't see myself going back to pure JS at any point in the future.

3\. Rails 3 finally feels like a stable and maintainable web framework. All the web frameworks now all seem to work together using Rack. The ruby web development world is really a nice place to be at the moment.

4\. Bundler really nailed the gem dependency management issue (though the journey to 1.0 was very painful)

5\. Sass / SCSS / Compass got really good. It feels unimaginable to go back to regular CSS.

Wow, now that I think about it, way too many great technologies to list. 2010 was an insanely good year for ruby web developers.

<comment><USER17> Great list. With the exception of Coffeescript (I just don't "get it"), that's basically my list, too. I'd like to branch out for this next year, though. Clojure and Erlang are both on my list.

</comment></comment><comment><USER18> Clojure - it's the gift that keeps on giving. It keeps getting faster and the feature set for writing robust object-oriented software (minus the broken stuff) just keeps getting better. In fact, it's changed how I assess the feature set of other OO languages old and new.

miniKanren - logic programming w/o the Warren Abstract Machine. Has opened my eyes to a ton of incredible literature on this under appreciated programming paradigm.

</comment><comment><USER10> Jekyll (<https://github.com/mojombo/jekyll>)

First touched it two months ago just to tinker with but didn't really do anything with it. Then after numerous frustrations with my current blogging setup, I spent the last 5 days hacking on it over the holidays and I think it's almost ready to launch. Had to do some custom stuff that I'll write about in a post. It's extremely hackable and I love it. The only thing that doesn't work for me is LSI for related posts. Even with a fast computer and gsl/rb-gsl it still takes 10+ hours with my 1,000+ posts. Anyways, having a super fast site is going to be a breath of fresh air. Google was saying 88% of sites loaded faster than mine ( <http://paulstamatiou.com> ), though likely due to the images in many of my reviews.

Also installed Google mod_pagespeed and all is well so far.

* Though to be fair most of that is just my redesign that is more minimal, less ads, etc, but there's something extremely attractive about simple, flat files. No worrying about if your database will get corrupted. Everything is in git..

<comment><USER19> Is there any reason you couldn't have just had Wordpress generate HTML that you then statically cached?

<comment><USER10> I wanted to learn something new. That's probably the only reason I went with Jekyll. :)

<comment><USER19> That's reasonable :) I love Jekyll, so I have no objection to you switching. Just pointing out that there were probably much faster ways to get the same speedup.

Feel free to email me if you need any help getting the last bits figured out. I use jekyll for blog.danieljackoway.com and danieljackoway.com, and I've done some weird stuff with it (like pages that are generated purely through the layout + YAML frontmatter--no "content"). Plus I'd just like to see the redesign early :)

</comment></comment></comment></comment><comment><USER20> Twilio. Ringing phones is pure magic, and provides _so many_ disruptive opportunities it is staggering.

<comment><USER21> +1 for Twilio. Tropo is looking pretty sweet too.

<comment><USER22> Indeed; especially their PhonoSDK. <http://phono.com/> I didn't really understand what it did until I listened to this podcast: [http://changelogshow.com/105/18576-episode-0-4-1-telephony-w...](http://changelogshow.com/105/18576-episode-0-4-1-telephony- with-chris-matthieu)

</comment></comment></comment><comment><USER23> I'm kind of ashamed to admit it (at the end of 2010!), but I did some Objective-C/iOS apps for the first time this year, and I was pretty amazed by how good the Apple dev tools and the iOS simulator actually are.

The other thing which impressed me is kvm, in contrast to Xen.

<comment><USER24> Ditto on the Objective-C stuff, though personally I've been focusing on Mac OS X rather than iOS. Apple really documents things well, and the Cocoa community is extremely nice and helpful. The shiny glare of quality extends deep into the inner depths of Apple's products.

</comment></comment><comment><USER25> This is the first year I've really used the real released Windows 7 - on my new SSD-loaded work laptop and on my personal netbook. It's amazing to see Windows more or less work and do what I want it to do most of the time.

GPU-accelerated VLC on my netbook has been amazing.

I got a Canon T2i / 550D this year. It shoots some amazing HD video and will only get better as I spend more on lenses and develop better techniques.

The Kindle 3 (brighter display and cheap price) have me reading books I've been putting off for years. It's great to have a device that's great at one thing and not very good at random browsing, Facebook, Twitter, HN, etc.

</comment><comment><USER26> All thanks to jashkenas: CoffeeScript, Underscore.js, and Backbone.js.

Using those tools has helped me to really enjoy writing JavaScript and to start doing it in a much more organized manner. They have been a huge catalyst for my growth as a JavaScript developer.

Also, using MongoDB has been awesome!

</comment><comment><USER27> New to _me_ : Numpy/Scipy. If you're using Matlab you should know there's a Free and worthy Python based alternative

<comment><USER28> Don't forget Matplotlib. Great-looking visualizations built on top of the Numpy stack.

<comment><USER29> And don't forget basemap if you're doing anything geospatial. This is an absolute godsend for me, I wish I knew of alternatives in other languages too, but as far as I know there's nothing else like it for that sweet spot of free and awesome ease of use.

(Not that I mind writing in Python of course! It would just be nice to have similar options when python might not be an option)

</comment></comment></comment><comment><USER30> I was shocked by how powerful SproutCore was, once I actually started hacking on it. I suspect that it will be a very big deal in 2011.

I am also really excited by socket protocol tech advancements in the browser. I was able to pull off seriously cool stuff using <http://pusherapp.com/> and also <http://faye.jcoglan.com/> which is a nifty JS implementation of the Bayeux protocol.

</comment><comment><USER31> In 2010 I fell in love with:

1\. Groovy - a programming language, it rocks because it less verbose and more powerful than Java and I can fall back onto standard Java syntax when I don't care to figure out how to do something in the 'Groovy' way. (<http://groovy.codehaus.org>)

2\. Gaelyk - a groovy framework that runs on Google App Engine. Google App Engine is great for launching apps. It's free until it gets traction. (<http://gaelyk.appspot.com>)

3\. Objectify - The simplest convenient interface to the Google App Engine datastore. Takes a lot of the pain out of using Bigtable. (<http://code.google.com/p/objectify-appengine>)

These all pack a mean punch and let me work on my night/weekend projects quite productively after overcoming a small learning curve.

I built <http://icusawme.com> and <http://chatroulettespy.com> with all three.

I'm looking forward to diving deeper into Appcelerator Titanium Mobile in early 2011.

<comment><USER32> +1 for mentioning the awesomeness of Groovy and that you can fall back to Java if you have to or if you like to.

</comment></comment><comment><USER33> 1) MongoDB - I started off using it in place of a few tables that had some varied column requirements, and I'm now in the middle of converting my entire DB to it. So awesome.

2) Kohana - I love working with this framework. I never really worry about the ugly warts in PHP, because honestly? I'm not programming in PHP any more. I'm programming in Kohana, and I only occasionally fall back to PHP for "low- level" stuff.

<comment><USER34> I was trying to get into Kohana but I just couldn't find any good guides to get started and to show me all the various features.

<comment><USER33> Sorry I'm a little late to get back to you on this, HOWEVER, Kohana just released version 3.0.9, which includes a revamped user guide with full examples and details and tutorials:

<http://kohanaframework.org/guide/kohana>

</comment></comment></comment><comment><USER35> Protocol Buffers (<http://code.google.com/p/protobuf/>)

Not what you would call cool technology, but definitely the best technology I have used this year. Protobufs get out of the way so you can get work done.

</comment><comment><USER12> Not new, but I've really enjoyed working with Lua (<http://lua.org>). The C API is really nice and I like how you can start from a known-safe, minimal interpreter and add new procedures carefully.

libev (<http://software.schmorp.de/pkg/libev.html>) was also a lot of fun to use for multiplexing sockets, plus it has a whole pile of other useful watchers that can use its event loop.

</comment><comment><USER36> Most of these are not new to 2010 and some are quite old, but here goes:

\- All the Amazon offerings. They are innovating like crazy and improving and expanding all their offerings all the time.

\- Compass/SASS/SCSS - All the pain gone from CSS

\- Capistrano - All the pain gone from software deployment

\- Apple laptops & OS X. A bit on the clichéd side now but it really makes my life easier.

\- SSDs. Damnit I really need to buy one of these things. After having tried them out it's hard to go back to spinning platters.

Also things I wish I'd worked with but haven't had the chance yet:

\- anything in the CNC milling, laser cutting, desktop fabrication and 3d printing fields. This is a huge area to watch.

</comment><comment><USER37> JRuby. It's just rock-solid, wonderfully fast and easy-to-use, it's now at the center of my product. Many props to Charles Nutter et al for this!

<comment><USER38> Absolutely.

Despite being responsible for Monkeybars, I actually hadn't used JRuby that much this past year, being mostly caught up in a Rails gig (which I thought might run under JRuby, but is not).

However, having gotten a Kintect I'm hooking into the C libs via JRuby and some nice JNI wrappers some smart Kinect hackers have written. So I can use JRuby + Monkeybars for the GUI.

</comment></comment><comment><USER39> Not directly but I'd say Erlang and Redis, definitely the most "exotique" technologies I've been in contact this year that made <http://mysyncpad.com> possible

</comment><comment><USER40> The closest to "cool, shiny and new" I got was Scala. And I never found time to dig as deeply into it as I wanted, so I still haven't done any meaningful coding in it yet. But I did sit down last week and spent a couple of days working through the _Programming Scala_ book, and one of my major goals in 2011 is to learn Scala well.

Other than that, the stuff I did this year that was merely "new to me" was mostly about Groovy and Grails. I spent a ton of time working with Grails, and I'm really liking it.

</comment><comment><USER41> Seaside - a WebFramework based on smalltalk and continuations that make developing complex WebApps extremely easy. Seaside led me to learn:

Smalltalk - What a powerful language. This is what OOP should look like.

Object Oriented Databases - Gemstone and db4o. Not having to deal with the OO and Relational mismatch is a breath of fresh air.

</comment><comment><USER42> 1\. MongoDB - I see several people also listed mongodb but I particularly want to mention the simplicity of setting up the database and using the API.

2\. AndroidOS - It came out few years back but it really took off in 2010. I can't wait to see the new features for 2011 and how it'll fare against iOS.

3\. Python - even though I've been using python for several years I'm still constantly surprised by it's core features (recently coroutines) and it's plethora of awesome third-party libraries.

</comment><comment><USER43> Redis. Makes working with a database fun, just like jQuery made JavaScript fun.

</comment><comment><USER44> Normally, I'm a software producer and I've worked with a few technologies that are great, but this year (as of late) I'm becoming a software consumer.

I've finally gotten to experience the Kindle 3 (Christmas gift) and the Google CR-48 is pretty sweet too. I believe the Kindle will change the amount I read. I have so many books on deck. My biggest challenge is balancing development time with watching movie time and more reading time.

</comment><comment><USER45> #1 - MongoDB: see comments above. :) #2 - Redis: also see comments above. ;)

#3 - new to me: Twisted as a server framework; more specific Cyclone which is a Twisted-based clone of the Tornado server framework.

<http://github.com/fiorix/cyclone/>

Comes with built-in MongoDB (TxMongo) and Redis (TxRedisAPI) support too! :)

</comment><comment><USER46> Nobody mentioned GIT. I went too deep in Git this year.

Others would be Sproutcore, Rails3, Coffeescript, Erlang.

</comment><comment><USER47> This post made my day. I've found some new interesting stuff from the comments. Thank you.

2010 was a year of discoveries for me. I started learning and using technologies like Ruby, Rails, Sinatra, HAML, Google Maps API v3. I started reading HN. Just in the end of the year I've discovered that with technologies like Rhodes framework, Appcelerator or Phonegap I can create iPhone/Android applications with HTML/Javascript or Ruby without knowing objective C. And this is just the most recent excitement I got.

</comment><comment><USER48> Erlang - playing with serious functional code for the first time in a long while has done wonders for my day-to-day Java job.

</comment><comment><USER49> Firesheep, actually. It took a scary-to-people-who-know problem and made it scary to people who don't know. I didn't ever expect to explain session hijacking to my dad.

</comment><comment><USER50> Apologies for blowing my own trumpet, but pound for pound, the neatest thing I've worked with this year is a C++ template I wrote. I like to have the tightest possible scoping of names, but a common pattern makes that difficult. If you've got a function that produces a good value or indicates that it couldn't do so one way to write it is:

      Type theVar;
      if (theFunction(theVar)
        { /*do something with theVar*/ }

theFunction returns true if it set theVar, false otherwise. The problem is that theVar's visibility extends beyond our interest in it. The ZQ template lets me write this:

      if (ZQ<Type> theQ = theFunction())
        { /*do something with theQ.Get()*/}

and all of a sudden I don't have to come up with anywhere near as many meaningful names as before.

To me it's neat because I've found many unanticipated uses for it e.g. wrapping the values in option-specifying structures where a default is cleanly indicated with a default-inited (or subsequently Clear()ed) ZQ, rather than having a separate 'use default' boolean, or 'set default' function.

[http://zoolib.svn.sourceforge.net/viewvc/zoolib/trunk/zoolib...](http://zoolib.svn.sourceforge.net/viewvc/zoolib/trunk/zoolib/source/cxx/zoolib/ZQ.h)

<comment><USER51> You might be interested in boost::optional, even if only as a point of comparison: [http://boost.org/doc/libs/1_38_0/libs/optional/doc/html/inde...](http://boost.org/doc/libs/1_38_0/libs/optional/doc/html/index.html)

</comment></comment><comment><USER52> Clojure & CoffeeScript are the one-two punch this year.

</comment><comment><USER53> CoffeeScript, Raphael.JS, and Django (not new this year, but new to me) were definitely my favorite tools of 2010. I've just started playing with Tropo as well, which is better for my purposes than Twilio.

</comment><comment><USER54> PSGI/Plack: <http://plackperl.org/>

node.js for HTTP-related activities. (I needed a rate-limiting proxy that returned a special HTTP code when the rate limit was exceeded. 20 lines of node.js later...)

0MQ: the way network messaging should be. (Did you know that the same socket can be bound and connected multiple times? Amazingly flexible.)

</comment><comment><USER55> Redis. It has ton of different data structures that make it an interesting alternative to the relational DB and memcache.

</comment><comment><USER56> Backbone.js! Hits the sweetspot for a lightweight clientside MVC framework.

</comment><comment><USER57> The Google Map API v3 is pretty nice.

<comment><USER58> +1

</comment></comment><comment><USER59> GLM (<http://glm.g-truc.net/>) - A C++ mathematics library based on GLSL. It's not a new library, but I didn't know about until 2010. It's really convenient to use (almost) the same syntax in C++ as you do in GLSL.

</comment><comment><USER60> Redis Rails 3 Cocoa Sparrow-Framework Chipmunk Physics jQuery

Anyone who says MongoDB without having a proper use will get a very angry stare from me. Seriously...

</comment><comment><USER61> Ruby on Rails 3: It's much more succinct than Rails 2.

Ruby 1.9.2: It was time to move up from 1.8.7.

MongoDB: I introduced this new technology to the company I work at which has now adopted it for two significant projects. One was the project I researched it for initially, which handles millions of writes per week, and the other is a rewrite of something we used to use MySQL for. It currently has a hundred million or so documents and is going strong. It's new and fun. My collection uses dynamic sharding; I think the other one does as well. One is hosted in our data center, the other is in the cloud. Both are in production and running with 100% uptime so far.

</comment><comment><USER62> beanstalkd

I've worked with MongoDB, Cassandra, and a host of other tools, libraries, databases, and frameworks, but beanstalk is the only one to _never_ fail me. It's not a full swiss army knife like Redis or the sexy app of the year like MongoDB: beanstalk does 1 job and does it, as far as I can tell, perfectly.

<comment><USER6> Looks like resque (or pyres, or other clones), but maybe a little bit easier to integrate?

</comment></comment><comment><USER63> For me?

· Rails 3 became everything I wanted Rails to be — I've come from Django and am really loving the ecosystem and the way the documentation has matured.

· Varnish — just an awesome piece of software. Fantastic job of caching, from small sites to large, without having to write mountains of config files. It's something you can drop it from an early stage with little cost in time, and know it'll be ready to help an application as it grows/scales.

· SSD's: didn't realise how good they were until I got a machine with one. I don't think I can buy a new machine without one now.

</comment><comment><USER64> At work, I've used the Java Play framework and absolutely loved it. Been recommending it to only java guys ever since. Learnt python and django this year and was blown away.

</comment><comment><USER65> Redis, that super quick key value pair data store which integrated support for hashes has made my life easier for message queuing and session management.

</comment><comment><USER66> Flourish Unframework for PHP (<http://flourishlib.com>) I've looked at it in the past, but this was the first time I was able to work in it professional thanks to a change in career.

It's a really great core library for building web applications, takes the 1389408103 functions in PHP and produces a nice modular library that gives you everything you need and nothing you don't.

</comment><comment><USER67> \- WebServices, to provide access for R, Python, and spatial calculations (WPS norm). Complex calculations without installing any client software, anywhere with an Internet connection.

\- PostGIS raster capabilities (at last some raster storage and computing inside the database).

\- Devon:Think / Bookends / Nisus Writer : Scientific papers and books intelligent storage, bibliography management and scientific writing.

</comment><comment><USER68> Go. I've had more fun writing Go programs and working on the Go project than any engineering work I'd done before.

</comment><comment><USER69> Not new technologies - but I got started with Django and jQuery. Delved deeper into numpy - loved all of them!

</comment><comment><USER70> A bit late to the party but I finally learned and started using Ruby on Rails this year and I love it.

</comment><comment><USER71> This is not a new technology, but new for me this year was working with MVC frameworks for web development. My workflow has vastly improved because of it. Specifically, the Play Framework (java/scala) and Rails 3.0 (ruby) have been great new additions to the many available.

</comment><comment><USER72> makerbot cupcake cnc.

It was an on again off again sort of project mostly off, but i finished it up a week or two ago. Now I can print plastic in any shape i can draw in art of illusion. It's satisfying fiddling at the computer for a while then printing and having a real 3d thing.

<comment><USER73> What's some stuff you've printed?

<comment><USER72> mostly just silly calibration cubes. a few space invaders and companion cubes to give to friends. today i (continued) work on a spindle to hold the big spool of plastic.

cnc is so much fun. I think i'm going to have to get a cnc mill. this is just to tempting. <http://lcamtuf.coredump.cx/guerrilla_cnc1.shtml>

In the near term i'll probably just print some brackets and containers for stuff.

<comment><USER73> I'm trying to think of enough things I would print so I can justify getting one. No luck yet :-(

</comment></comment></comment></comment><comment><USER74> Scala - It's what Java should be.

</comment><comment><USER75> Juce: <http://www.rawmaterialsoftware.com/juce.php>

It makes cross-platform native app development easy, and is a _huge_ leg up for audio work.

</comment><comment><USER76> Vertica (<http://vertica.com>) - massively parallel columnar DBMS for querying multi-terabyte databases. BTW, heavily used by Zynga in 200+ nodes cluster.

</comment><comment><USER38> Just realized that I need to add Mirah (<http://www.mirah.org/>) to my list of cool 2010 tech.

I only started using about a week or so ago, but, hey, that;s still 2010.

I was trying to manipulate Kinect data in JRuby, but it was too slow. However, I may be able to use Mirah instead, and if all goes well get Rawr to auto- compile Mirah files as part of the build process. Mirah's still a bit rough, but knowing Charlie I expect it to rock.

I'm pretty excited about 2011. Which should be starting in about 30 minutes for me ...

Happy new year, all!

</comment><comment><USER77> node.js was already mentioned as someone's third, but I'd like to cast a sole vote. seriously, it's awesome.

</comment><comment><USER38> Physical/wearable computing: Arduino Lilypad, and the Kinect.

</comment><comment><USER78> Neither of these are truly "new" but maybe new to mainstream?

1.Haskell or "how I learned to stop worrying (about monads) and just do io." Still fighting with the type system occasionally but I think it's getting better.

2.Erlang - I so love this language. The concurrency support makes me think about programming the way I want to think about programming. I also like that's it's most of the fun of functional programming (Haskell style) but without having to deal with types.

</comment><comment><USER79> I'm actually beginning to enjoy writing things in Haskell. It's the first statically typed language that I enjoy using (although I do still miss dynamic typing).

</comment><comment><USER80> The Play Framework is amazing. Its rapid development capability allowed me to finish one project with highly compressed schedule ahead of time.

<comment><USER81> +1 to the Play! Framework; as someone who did Struts/Java EE 5/EJB3 for a long time, not needing descriptors all over has been awesome.

From reading this thread I see Java doesn't get much love, but for us poor saps that spent 10 years using and learning it and can't give it up yet, Play is great.

</comment></comment><comment><USER82> Bundler (<http://gembundler.com/>) for managing the dependencies of Ruby/Rails applications.

</comment><comment><USER83> OpenCL - this year I've been learning about GPU acceleration, and while it may not be good for everything it is looking very interesting for various applications.

While my area is currently graphics/simulation I'm wondering how effective adding GPUs as accelerators to large scale web problems would be. It's really taking of in the Super Computing area, so I'm sure there is room for it!

</comment><comment><USER84> Well, i still was in the university but i've had chance to play with a few ones:

LCDS, WebORB specifically and Flex 3 RoR Lift Web Framework

And in the Q4 of the year i used all my time to learn Android and a lot of cool API's:

Overlay-Manager to recognize gestures in Android AndEngine Geocoding and reverse geocoding Notifications by vibrating SMSManager

I really enjoyed developing Android stuff, and i'm keeping up with these for a while.

</comment><comment><USER85> 1\. Node.JS 2\. ExpressJS 3\. Mongoose 4\. MongoDB

</comment><comment><USER86> haXe + FlashDevelop. [http://www.flashdevelop.org/wikidocs/index.php?title=Feature...](http://www.flashdevelop.org/wikidocs/index.php?title=Features:Interface) Lightning fast compilation and IDE plus a language that can target multiple platforms = major time savings for a bootstrapped startup.

</comment><comment><USER87> three.js (<https://github.com/mrdoob/three.js/>) An easy to use wrapper for doing 3D graphics via JS using canvas, WebGL, and SVG renderers. Check out the cool demos. I'm betting 2011 will see a lot done with this and similar libraries.

</comment><comment><USER88> The combination of CherryPy, memcache, oursql and DBUtils. This is a kind of lean and mean Python webapp stack.

</comment><comment><USER89> I have to develop a from-scratch application for work and have been pleasantly surprised with the current crop of .NET technologies and how well they can be integrated with open-source systems.

MVC.NET 3 + Entity Framework 4 + OpenRasta + Membership Framework + MEF + LINQ + dojo has been a good experience so far.

</comment><comment><USER90> Clojure. I miss map and reduce already.

</comment><comment><USER91> Here are some great open source iPhone libraries I use:

* Mopub - mix and match ad networks, server side - open source SDK (brand new start-up that just got funded, out of AngelPad)

* ASIHTTP - makes networking easy

* TouchJSON - the fastest JSON library, AFAIK

* Appirater - easy drop-in widget for prompting for reviews

</comment><comment><USER92> Rails 3 and HTML5

</comment><comment><USER93> PHP and Visual Basic

...kidding :)

</comment><comment><USER4> redis, node.js, socket.IO, ccache (not new, but new for me), QML

</comment><comment><USER94> Google App Engine.

</comment><comment><USER95> iPod touch, flip video recorder, droid 2 global, linux mint on usb, 1.5 TB drive, and a remote control helicopter... good year

</comment><comment><USER96> Probably redundant to mention it here but hands down and by a country mile: news.ycombinator.com aka Hacker News.

</comment><comment><USER97> Definitely Rails 3 for me. I've started taking it more seriously and developing with it professionally.

</comment><comment><USER98> COBOL ;)

</comment><comment><USER99> Web2py :-)

</comment><comment><USER100> LDAP, particularly 389 DS.

</comment><comment><USER101> faceboook graph/api, always learning :)

</comment><comment><USER102> LINQ

</comment><comment><USER103> video + canvas + v8 js engine

2011 we will see in-browser video editing

</comment><comment><USER104> Solid State Discs in everything.

Ok, perhaps not what you were asking, but they made a big difference for me. I have two, raid0 in my desktop, and a sandforce in my MBP. What a difference. Compiling, linking, copying, everything not just faster, but almost instantaneous. Yum.

<comment><USER105> Buying an SSD was a huge disappointment for me. Programs were not "almost instantaneous" but just 2-3 times faster to load if there was a difference at all. So OpenOffice took 3 seconds instead of 7, not worth the huge price difference for me. Compiling is CPU bound, I noticed no mentionable difference there. It might be worth it if you use a "bloaty" OS with virus scanners and indexers running or have specific use cases where very fast access is needed, but for a lightweight system the difference is neglible. The only real difference I actually _noticed_ without looking at numbers was that after startx the XFCE desktop was ready before the monitor did its resolution switch. Lots of random reads in that process I guess. From a HDD it takes a couple of seconds (once per day...).

I returned it. And before some is implying I am dumb: Yes, I had a fast and quick SSD and my system was setup to use it well.

<comment><USER104> You need more CPUs then :-)

Also, there really is a difference between SSDs available right now. My Kingston SSDs have blocksizes of 120k (!). My OCZ Vertex2 has blocksize of 4k. Its 4k write speed is off the chart. Like 40x faster than some SSDs.

I'm on OSX (2 cores), Windows (8 cores) and CentOS (4 cores).

<comment><USER105> Oh yes, I regret having bought a 2 core CPU. Maybe I will upgrade to a 4 core some day.

</comment></comment></comment></comment><comment><USER106> #1: SSD

#2: MongoDB

#3: iPad

though I have not used them significantly, I have sort of drooled from afar over: Twilio, Redis, Node.js, Clojure and Kindle

(ok some of the above are not super new-new, but new enough to me)

</comment><comment><USER107> I worked on LPC2148, an ARM7 based controller. A refreshing experience I guess. Made me realize how easy AVR series actually is. Started working with Atmega8s again this Wednesday and realized that I find it easier to work on.

</comment><comment><USER108> hypertable</comment>


Helsinki woman survives on salvaged food for 20 years - <AUTHOR> https://yle.fi/uutiset/osasto/news/food_for_thought_helsinki_woman_survives_on_salvaged_food_for_20_years/10615767 <comment><USER2> The irony is that some few people can live like this solely because of the over consuming society and strict food quality rules. So while they think they're "alternative", their way of life only exists because the majority does not live like that. In a sense they just take advantage from the system they want to change (with good reason though).</comment>


Refinement types in Haskell as a library - nikita-volkov http://nikita-volkov.github.io/refined/

<comment><AUTHOR> Can someone who knows more about haskell than me explain whether:

1\. there are any disadvantages to using this library

2\. there are any comparable libraries that I should/could be using instead (obviously with reasons as to why it's better/worse).

because this sounds great and I now want to start using it everywhere!

<comment><USER2> Using the Template Haskell bits have all the disadvantages of Template Haskell - mostly a slower compile. Other than that, I don't see many downsides. As mentioned in the discussion on r/haskell, things get a little tricky when your arguments interact, but if you're okay with uncurrying you can still verify that you've got a sane combination: [http://www.reddit.com/r/haskell/comments/3425pk/refinement_t...](http://www.reddit.com/r/haskell/comments/3425pk/refinement_types_as_a_library/cqqik1i)

It also may require some explicit conversions in places they shouldn't strictly be necessary.

Other than that, I don't see any downsides. There do seem to be a couple similar libraries, but feel free to start using it everywhere :)

</comment></comment><comment><USER3> Nice, but I was hoping for something like:

      slice :: Int{1..} -> [a] -> [[a]]
      slice n l =
        splitAt n l & \(a, b) -> a : slice n b

I don't think this is possible in Haskell. Is there a language that supports this sort of syntax?

(Also, what's up with that &? It doesn't seem to be a Prelude operator.)

<comment><USER4> Regarding &: [https://www.fpcomplete.com/hoogle?q=%26&env=ghc-7.8-stable-1...](https://www.fpcomplete.com/hoogle?q=%26&env=ghc-7.8-stable-14.09)

If it's from lens, then it's "the flipped version of ($)".

<comment><USER5> What's the difference (&) and reverse function composition?

<comment><USER2> Precisely the difference between function application and function composition.</comment></comment></comment></comment>


Flying Aquila: Early lessons from the first full-scale test flight - <AUTHOR> https://code.facebook.com/posts/268598690180189 <comment><USER2> This is the only article of original substance on the internet, everyone else copied pieces from it. I still can't find an answer (or even anyone asking the question): How does it land?

There's no landing gear, it takes off from a dolly, and it's only designed to stay up for 'months at a time.' Does this mean it needs extensive repairs after it crash lands on runways that are half its width? The ScanEagle UAS also has no landing gear but is small enough to be caught by a cable mid-air [1].

Having no journalists present for their test launch and only getting officially produced videos and non-critical reposts is not enough.

[1] [https://www.youtube.com/watch?v=w88uCC2Jv48](https://www.youtube.com/watch?v=w88uCC2Jv48)

<comment><USER3> I would speculate that it lands on skids. Skids are pretty lightweight and will do fine for landing, but you need a lot of power to take off with them unless you're on ice or snow.

(You know your landing gear is up when it takes full power to taxi.)

<comment><USER4> good call. The U2 has only gears in the center and "skids" on the wings, trying to get as slow as possible before they are needed (an some muscle car following for guidance). [https://youtu.be/hxFz6ImB8fI?t=165](https://youtu.be/hxFz6ImB8fI?t=165)

</comment></comment></comment><comment><USER5> It seems to follow the Stanford Swift aerodynamic philosophy: low taper and winglets.

This is different from the recent NASA Prandtl-d aircraft which is of the Horten paradigm: lots of taper and no winglets.

It's possible the former is a lot easier to build, because of constant chord, especially as a solar powered platform.

With batteries you can distribute the weight very well so designing for things like wing root moment might not be the defining thing, instead some re complex aeroelastic design criteria.

Very fascinating to see this resurgence of flying wing again, popping up in many other places too.

<comment><USER6> I have no clue about half of the things you just said. Can you guide us, the ones with less knowledge about aerodynamics-- to some resources which we can watch/read? (preferably online and free, of course :) )

<comment><USER5> See How It Flies at [https://www.av8n.com/how/](https://www.av8n.com/how/) seems massive but it's written in a captivating way.

Basically in a wing, there's overpressure on the bottom and underpressure at the top. This is all good. But it causes a problem at the wingtip, the air escapes and goes from bottom to top. The tip vortex. Does not contribute to lift, causes drag, so is bad.

So you can put a vertical winglet there to diminish the tip vortex, or to extract thrust from it. Or you can extend the wing but make it have a lower angle of attack near the tip, again extracting thrust, basically a horizontal winglet if you will.

Then there's the issue of stability. A plane is stable when, if you increase the angle of attack, the rearward lifting surfaces have more increase in negative nose down moment than the positive nose up moment of the forward lifting surfaces. So the aircraft tends to correct itself (move back to lower angle of attack).

In an ordinary plane it means a wing near the center of gravity and a tail with a lower angle of set incidence far behind.

In a canard, the center of gravity must be between the wings and the front wing must be set in a higher incidence.

In a flying wing it means sweepback and twist: the outer portion of the wing must act as a tail. The outer portion must be twisted nose down so it has a lower angle of incidence.

Flying wing design is harder since there are more functions it must do than in a more conventional plane.

That is a really really short version of it. It didn't mention positive moment airfoils etc.

</comment></comment></comment><comment><USER7> Does it not include balloons? They want surface area, slow movement, and the ability to operate on little to no energy. Wouldn't a large, permanent balloon filled with helium and sized to perfectly offset the weight of the aircraft be better? It seems like it would be easier just make it neutral buoyancy than to try to constantly provide lift.

<comment><USER8> >slow movement

But not too slow. You need to be able to stay on station when there is a wind. You would need some sort of powered airship. To be better than a wing it would have to have less drag.

<comment><USER7> I was wondering about that. Is 25mph cruise speed really going to be enough to overcome wind anyway?

I suppose it could be both. Maybe inflatable fixed wing, if it had the right dimensions.

<comment><USER4> Maybe they have some safety altitude so they can drop to lower altitudes with other winds and come home when much wind is expected.

Clouds often move in another direction than the wind near the ground. (is that some eddy current?)

<comment><USER3> It's wind shear. Wind at altitude tends to travel at right angles to the pressure gradient, as the coriolis force does its thing. Wind near the ground tends to travel directly from high pressure to low pressure, because of friction with the ground. That friction also tends to slow it down. Net result, it's common for wind to turn and increase in speed as you go up.

</comment></comment></comment></comment></comment><comment><USER9> Total brand confusion. There is already a well established manufacturer of light aircraft called Aquila[1]. My initial thought was that they'd launched a new model.

[1] [http://aquila-aero.com/](http://aquila-aero.com/)

</comment><comment><USER10> It says the aircraft can stay aloft for 90 days. Why not longer? Regular maintenance or they have to replace something?

<comment><USER11> <cynical thought>90 days? Thats just over 2^23 seconds. Wanna bet some timer overflows a 3 byte signed int? Brings new perspective to a "crash bug"...

</comment></comment><comment><USER12> Once they deploy these to the places in the world they want to, I wonder how long it's going to take for one to be shot down.

[edit] I suppose though they fly high enough to be out of range of most inexpensive weapons systems.

<comment><USER13> It would be pretty high up, although still reachable by fighters.

I doubt people in a friendly country would shoot it down, although I could certainly see Iran having issues of someone flying one along the border providing "free" Internet to people inside their borders. No doubt they would be able to successfully jam it's electronics.

Perhaps more worrisome would be having these things fall out of the sky. Being a long as they are, structural failure by suddenly overloading the wing might turn them into the moral equivalent of the Maple Seed of Doom[1] on their way down. Probably reasonably low risk in rural areas but something to think about if they are taking off from airports in Kansas city for example to fly out over the great plains.

It's that latter bit that makes me even more curious. In the write ups so far, both the 'project loon' and the Aquila videos suggest this very expensive piece of equipment is going to be flying over sparsely populated areas to provide Internet. But with so few customers how do you cover the cost? Simple economics would suggest you'd want to fly it over a really densely populated city, then you would have a huge addressable market rather than over the corn fields of Iowa or the back roads of Oklahoma.

It suggests to me that its easier to spend a million dollars operating a couple of these over a small town than it is to get permission to pull a fiber along the power grid. The latter is more of a policy issue rather than a technology issue though.

[1] [https://www.youtube.com/watch?v=r4urT74yq6c](https://www.youtube.com/watch?v=r4urT74yq6c)

<comment><USER14> If you are operating over a large and crowded area you are going to be facing more competition for customers (from competitors that can use the population density to justify the initial build costs of better infra) and you are also going to be facing more spectrum competition and interference. While flying over the corn fields of Iowa may not seem too useful, each plane could have a relatively large footprint and could also be used to enable a lot of non-urban IoT applications. Sell bulk bandwidth to precision farming equipment shops, mobile applications in the area, and households poorly served by old copper telco infra. Not necessarily huge bucks, but you could probably do it at a cost that would crush competing data providers in that plane's footprint and lock up a nice little revenue stream.

</comment></comment></comment><comment><USER15> If I read a story on code.facebook.com, will my status go to "online"?

</comment><comment><USER16> So this plane is supposed to fly continuously without landing gear? I hope they considered poor flying conditions lasting for weeks in their model, things like heavy rain for a couple of weeks or even hurricanes. Sometimes there's a good reason why the Internet is not yet available somewhere.

<comment><USER17> FTFA: " _Once they are fully operational, these high-altitude planes will stay airborne for up to 90 days at a time..._ "

</comment></comment><comment><USER18> imho, balloon seems to be a better idea.

<comment><USER19> You can get an aircraft to circle and act like a low orbit geostationary tower, while a balloon is going to travel wherever the wind takes it.</comment></comment>


Wait Didn't Homejoy Shut Down? - <AUTHOR> https://medium.com/@johnsalzarulo/didn-t-homejoy-shut-down-e8d7a2dfb485#.3eco1lu5w <comment><USER2> That seems really, really shady. I wonder if they sold off their database of customers (I would guess yes; what else are you going to do with all those users if you wanted to try and squeeze more money out of a dead horse?).

One thing though:

> My information is not stored on a SSL-encrypted PCI-compliant system.

Are you sure? Seems unlikely Homejoy would actually store that information versus a PCI-compliant system like Authorize.net in which case perhaps they simply passed the credentials over which could show the last 4 digits of your credit card.

<comment><USER3> You are right that I am not 100% sure about my credit card information, they could have my credit card info in Stripe or another system like that. However, my home address and my email are not stored securely.

</comment></comment><comment><USER4> My homejoy username and password does not seem to work on the flymaids website.

<comment><USER3> I think it may be by service area. It seems "Fly Maids" is for the LA area as far as I can tell.

</comment></comment><comment><USER5> This is alarming! Do update if/ when you hear from Homejoy folks.</comment>


Why I'm short Ethereum (and long Bitcoin) - <AUTHOR> https://medium.com/@tuurdemeester/why-im-short-ethereum-and-long-bitcoin-aee5b1c198fd#.ur8y92bs7 <comment><USER2> The essential points underlying the overall argument are:

1) A more powerful programming language in the blockchain carries greater risk of bugs which could take down all nodes in the network, 2) multiple implementations are a bad idea, and 3) hard forks are a bad idea.

Problem #1 has the most merit. Ethereum's implementation may not be the winner, but _someday_ there will be a block chain which has a powerful programming language. Just because it is hard to get right, doesn't mean it's a bad idea.

Regarding problem #2 (multiple implementations), I'm astounded that so many agree with this, as it simply doesn't make any sense. The more implementations there are, the less risk there is that any one problem will take down the entire network. Others have written about this [0]. If anything, the problem is that 90% of the Ethereum network is running Geth today. The more diversity the better.

Problem #3 (hard forks) has also been addressed by others [1]. Without even addressing whether hard-forks are appropriate for certain situations, I think if you agree that soft-forks are appropriate but hard-folks aren't, you fundamentally misunderstand what a "soft-fork" is and what can be done with one. See [1] for more info.

[0] [https://blog.conformal.com/the-bitcoin-consensus-red- herring...](https://blog.conformal.com/the-bitcoin-consensus-red-herring/)

[1] [https://medium.com/@octskyward/on-consensus-and- forks-c6a050...](https://medium.com/@octskyward/on-consensus-and- forks-c6a050c792e7#.4gb2sf21h)

</comment><comment><USER3> Great article! But, until we have a turning complete decentralized machine someone will be working toward that goal. So it may not be Ethereum across the finish line (not today's ethereum) but until there is a better pony to bet on I don't see anyone else as far along as Vitalik et al.</comment>


Eric Schmidt Wants to Be an Adult About This Whole Apple Thing - <AUTHOR> http://betabeat.com/2012/12/eric-schmidt-apple-android-maps-google/ <comment><AUTHOR> I appreciate his "conflict & cooperation" approach to the their tiff, but the truth is the conflict is more interesting and prevalent than the cooperation here. Especially with Apple's reaction, openly going after the Kindle and Maps could be a huge money pit for them.</comment>


Steve Jobs Talks Major Crap About Android - <AUTHOR> http://techcrunch.com/2010/10/18/steve-jobs-android-audio/ if there is no competition then why fight it. I love Jobs but hes Scared <comment><USER2> Is there a transcript for those who don't want to risk puking?</comment>


SpaceX Applies for Gen2 Starlink Constellation – 30k Satellites [pdf] - <AUTHOR> https://fcc.report/IBFS/SAT-LOA-20200526-00055/2378669.pdf <comment><USER2> Very odd orbital plane configurations.

5 of the listed inclinations have only one orbital plane, with many thousands of satellites in each.</comment>


People doing 'crazy things' with Tesla's autopilot are spoiling it for everybody - <AUTHOR> https://www.washingtonpost.com/news/the-switch/wp/2015/11/05/people-doing-crazy-things-with-teslas-autopilot-are-spoiling-it-for-everybody/ <comment><USER2> Maybe they should have called it something other than "autopilot", then.

<comment><USER3> I keep seeing this sentiment and I keep not understanding it. Many actual autopilots are simple heading or altitude holding systems. The analogy to Tesla's system seems just about perfect.

<comment><USER2> Real autopilots, sure.

Most people are exposed to autopilot systems only through movies where the autopilot not only can fly the ship in combat, but make cappuccinos and (more likely than not) has a sexy female voice.

<comment><USER3> Got an example of something that isn't SF? The only one I can think of right now is Otto from Airplane! whose capabilities are actually vaguely realistic, even if his mechanics are a little... off.

</comment></comment></comment></comment><comment><USER4> Misleading title, this is an update on the previous story:

"Tesla chief executive Elon Musk is warning that some new limits may be coming to the company's autopilot feature because of "some fairly crazy videos on YouTube" showing drivers behaving dangerously while the car is in control."

<comment><AUTHOR> The title is the original from the story. You mean the story's title is misleading because it paraphrases "crazy videos" into "doing crazy things"?

<comment><USER4> No I mean it's misleading in that it looks like every other news article that came out about people doing dangerous stupid things with the autopilot, when the actual story is that Tesla has responded to the glut of people doing dangerous things.

</comment></comment></comment><comment><USER5> The Chrysler 200 has 'autopilot'. It sees the lane and will steer for you (within reasonable limits), however, it somehow detects when your hands are not on the wheel and after 10ish seconds will sound an alarm, turn the dash red and deactivate the auto-steering.

It seems like Tesla should do this.

<comment><USER3> Tesla does this if the car loses confidence and thinks you might need to take over. You can drive for quite a while completely hands-free, but only if the road is good and the car is handling it well. I think this is a pretty good way to do it, personally. I'd be sad if they dropped it to match the lowest common denominator and required hands on the wheel always.

<comment><USER6> What does it do when operating hands-free if conditions change and it loses confidence, but you ignore the signal to take over?

<comment><USER3> It beeps at you with ever greater urgency, then if you still neglect it, it puts on the hazard lights and stops the car.

</comment></comment></comment></comment><comment><USER7> So people do stupid things with Audi autopilot on YouTube but nobody blinks an eye.

One guy sits in the backseat of his Tesla, and everyone loses their minds!

Of course I can't find the video now, but last year an Audi driver posted video of his car on autopilot, and he tried to move to the passenger seat but bumped the steering wheel while doing so, cancelling autopilot, leaving him not quite in the driver's seat with a car that was expecting manual control.

But hey, this time it's a Tesla so it gets the attention.</comment>


Ask HN: What lookup services do you use to ID a caller? - <AUTHOR> As most of us are probably receiving a high number of scam, telemarketing, robocalls, what techniques or lookup services do you use to ID the caller? <comment><USER2> I have used this one

[https://www.everyoneapi.com/](https://www.everyoneapi.com/)

together with a whitelist of people I know plus a

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

I don't have the system stacked up right now but one of these days I will put it back together.

</comment><comment><USER3> At this point I don't even bother looking up the callers. I send anything that's not in my address book to voicemail. If they don't leave a message, so be it.

</comment><comment><USER4> Use a forwarding service, rear or virtul. Don't sell out strngers data.</comment>


Ultra Simple Site Maker. (static web site generator) - loup-vaillant http://www.loup-vaillant.fr/projects/ussm/

<comment><AUTHOR> Thanks for sharing this. Note that on the front page's copy, you have Jekyll spelled as 'Jekill'.

<comment> loup-vaillant Whoops. I'll correct it tonight thanks.</comment></comment>


Open Source Compass: Visualizations of Open Source Software Trends and Insights - <AUTHOR> https://opensourcecompass.io/ <comment><USER2> Very cool!</comment>


Ask HN: Where are other tech scenes outside Bay Area - <AUTHOR> I feel like I've missed the boat when it comes to home ownership here in the Bay Area.  Furthermore, my wife wants stability in home ownership for our nascent family, and renting is hardly affordable, not to mention lacking in the potential for growth in equity.
The usual option of Austin doesn't excite me.
Where else are people going that has a Tech scene?
Currently, I'm working as a Director of Engineering, making 300k+, but it doesn't seem to matter; all I can afford is either under a freeway or under power lines, it seems.  I don't want to overextend across 30 years.
Any suggestions?  I'd be happier, I think, somewhere else, with a lower paying job, incredibly, but I'm having a hard time figuring out somewhere with a good mix of weather, jobs, properties, schools. <comment><USER2> I'm a former Bay Area startupper (Marketing/Sales early stage and a bit of product, not an engineer) and did a stint in Berlin and am currently in Tallinn (Estonia). I think for quality of life Berlin can't be beat, it's a big city but you can choose the right neighborhood for a reasonable price and get any sort of vibe you want from small town to big city hipster (okay maybe there are a few neighborhoods with the latter vibe).

But frankly I doubt you're going to be able to secure a gig at that pay, you'll have to decide if general quality of life is worth the monetary tradeoff. The tech scene itself is much more nascent in Berlin (and way underfunded) but you may be able to parlay your 'Silicon Valley' roots into a sweet senior gig in an innovation lab or as a senior engineer at a bigger corporate that's trying to compete with newcomers which is a big theme in German corporates right now

<comment><USER3> Always wanted to work in Berlin. How did you manage the language barrier? I know that most gigs use English as the first language but how about the daily life like doing groceries or calling the phone company for a bad bill?

<comment><USER4> You manage the barrier by learning the language. Sorry if it sounds harsh, but I've noticed something with English Speaking folks, they don't want to learn another language. They want people to speak English to them.

<comment><USER5> It's going to be rough working in English all day, then trying to learn German in the evening, especially if most people interested in talking to you are those who want to practice their English.

It's tough to find people willing to talk with an adult like they're a toddler.

So, I don't think the question is as flippant as you made it out to be. Someone might have some real advice about how to manage the juggling act of learning a new language and culture as a working adult.

<comment><USER6> That's the trap of working in industry lingua franca of which is your mother tongue. Otherwise public libraries in Germany are very well equipped and have wide selection of audio content - language curses, audiobooks, some might find it more helpful than just grammar handbooks.

</comment></comment></comment></comment></comment><comment><USER7> Have you worked with a real estate agent and lender to see what properties you could afford? You might be surprised with what you can afford.

I recently moved from SF to San Diego about a year ago and just bought a house. It's not that we couldn't afford a house in the Bay Area. Just that in SD we could afford a house in a neighborhood we'd actually want to live in.

It's a different market down here. Lots of biotech and defense contractors. Primarily Java, C++, C# but you can find some ruby and php positions. I haven't seen any python and very little node.js positions but they are out there. Startup scene is obviously much smaller but if you look hard enough you can find some great companies.

<comment><AUTHOR> Pretty familiar with San Diego, it's the nicer part of Southern California from my perspective.

My Cousin just opened a Brewery called the Kensington which I believe is the name of the neighborhood as well.

What neighborhood did you land in?

What's the percentage difference in Salary you'd expect? Say Mid Level Developer in SF is ~150-200k at this point would it be 100k median or so?

</comment></comment><comment><USER8> Well, nowhere you could get the SV rates. Yet, nowhere you'd be struggling on a quarter a million.

There is tech beyond SV. My current company is distributed between a second tier city in Croatia and a semi-rural town in NZ. We are in the end-of-life tech, and are taking the Advisor track at Startup School.

Times when you had no tech other than ol' skool corporate IT beyond SV, London, and a few other spots are gone. My current city, Osijek, a second tier city has some amazing tech that is quite prominent globally. Farmeron (AgTech) was founded here and later acquired, [https://www.netocratic.com/farmeron- closes-gideon-brother-11...](https://www.netocratic.com/farmeron-closes- gideon-brother-111385) . Infobip (telco infrastructure software) was founded in a semi rural town in Istria region in Croatia.

Don't overlook Eastern Europe. Estonia, Czech, Romania, Poland got amazing tech scenes, and the life is good.

If you work remotely, options are even more abundant.

Don't mind that SV is actually quite vulnerable and gets hit badly by recessions, bursts, etc.

As of the US. New Mexico, Colorado, Washington, are all quite livable.

<comment><USER9> Does your company employ any US citizens in Croatia? I understand that the taxes would not be able to be deducted from one's US taxes - so basically one would pay double taxes.

<comment><USER8> We do hire some freelancers / contractors / advisors. So far they are in Croatia, Serbia, UK, Malta, France, Cyprus, Israel.

Not sure on taxation for the US citizens, sorry.

</comment></comment></comment><comment><USER10> SLC, Utah is pretty great, I almost don't want to mention it because the tech jobs are great and the state provides a lot to do.. its like a hidden gem no one thinks about because they consider it Mormon land...

There are a lot of companies opening offices out here though!

<comment><AUTHOR> Sounds pretty interesting. On a more micro (neighborhood level) of suburb level what areas are worth checking out.

On the job front, what companies do you think are innovative or majors opening branches are worth looking at?

<comment><USER11> We moved from the bay to SLC in November to be closer to my wife's parents (second kid) and own a nice home in a nice neighborhood (Cottonwood Heights, highly recommended).

That part is spectacular. We have our choice of clean, nicely appointed parks full of kids 3 minutes walk in either direction, 2 minute drive to get into the canyons, and I have a big garden.

The options for jobs and salaries are nothing like the bay. Software engineers rarely make over 120k here. Plenty of techish companies scattered all around the valley and Park City, but not many I was excited about. I took a job in Kimball Junction (PC), commuting 26 minutes. Here that qualifies as a big commute.

Until recently, SLC was mostly LDS and mountain lovers, and the work culture reflects both groups' regard for to their non-work life. The company I joined is based in SV and almost all of the people in the office are transplants. I think that's because the company's work/life balance expectations are not in line with what most people want around here.

</comment></comment></comment><comment><USER12> I did a year in Berlin and tend to agree with Peter Thiels assessment - "I always thought Berlin would be a great place for innovation, but now I think it's a place people in their 20s move to when they want to retire"

Personally I had a lot of good times in Berlin, but it didn't feel like it had the drive of the valley.

Recently moved to Toronto, and loving it here so far. Great scene, smart & friendly people and lots of growth.

Not trying to badmouth Berlin, it's a super cool city. Just didn't hit the mark for me.

[https://business.financialpost.com/technology/torontos- tech-...](https://business.financialpost.com/technology/torontos-tech-scene- gets-hotter-beating-san-francisco-bay-area-in-new-jobs-and-new-york-in-talent)

<comment><USER13> To put it simply, in a "work and life balance" Berlin is inevitably more about life than about work. And if your personal growth depends on the people you are surrounded by, it might not always be the best place to live in.

</comment></comment><comment><USER14> Portland has a thriving tech scene with 4,782 open jobs [1] at the moment. Home prices are about a third of the median in SF/SV.

[1] [http://portlandtech.org/](http://portlandtech.org/)

<comment><AUTHOR> Portland is definitely somewhere I've been thinking. Schools seem to be an issue in a lot of neighborhoods except Lake Oswego. Anywhere closer to the city know for good schools?

Also what's your favorite companies of those 4K openings I should look into?

<comment><USER15> A couple of years ago I seriously looked at the Camas / Vancouver area, just across the line from Portland. No income tax in Washington of course (if you work in Portland that obviously changes the equation, as opposed to remoting). Use Portland for the nearby metro benefits, and housing prices in the region are drastically better than Seattle. I can't speak to the schools in the area however.

</comment></comment></comment><comment><USER16> We left the Bay Area two years ago and went to Prague. I miss Philz and Blue Bottle but we are pretty happy here. Similar scene as Berlin - not quite as nice but cheap with lots of green space everywhere. If your wife has an EU passport you should be fine anywhere in Europe. I'm freelancing for clients in the Bay Area and east coast (software eng) so I'm lucky to have best of both worlds.

I would imagine you have a good network of people in tech so you could probably transition to freelance work and live anywhere. Email me if you want to discuss. Co-work spaces here are anywhere from $100 - $500/mo. Internet is so blazing fast it's ridiculous - 300mbs on ethernet in our apartment. What we had in SF was pathetic.

Condo prices in central Prague are about $4,500usd/m2 - so 500k usd will get you a nice 2 bedroom in a really nice neighborhood. For the same money you can move 20 minutes by train outside the center and get a small house with a yard.

If you are leaning towards Europe the best tech scenes IMO are in Berlin, Amsterdam and Barcelona. Barcelona has really been picking up in the last few years and is probably the cheapest.

</comment><comment><USER17> I make similar salary and have a nice 3000sqft house that I paid $1mn for in the Bay Area. Areas where you can still buy SFH just around a million include Oakland Hills, Orinda, Walnut Creek, Union City, Dublin, Hayward parts of San Jose. Try to find a new construction so that you don't have to deal with competition

</comment><comment><USER18> If you are relocating to Europe, Amsterdam is great.

The economy is good, the tech scene is already good and booming. A lot of local startups, bigger and bigger local companies and the typical international tech startups are here.

Salary are lower but the cost of life too and you'll live way better here. Home prices, groceries, restaurants/bars and travels are mostly cheaper. I'd say I spend almost half in Amsterdam than what I was spending in SF, for a pretty similar life style. This sounds true to most of my friends who did the same move.

Everyone speaks english, so you won't have to rush to learn Dutch. There are great english-speaking private schools that you'll be able to afford, or free Dutch schools, to which your kids will adapt very quick if they are still young.

</comment><comment><USER19> I've heard good things about Dublin. Anyone here on HN able to speak from direct experience?

Personally live in Seattle and love it, but I got in before the major boom and it is not nearly as affordable as 5-10 years ago. Still think it is a major upgrade to SF, though.

<comment><USER20> Compared to other European capitals, when I was there a few years ago, the tech scene in Dublin was relatively small. I think it's grown a bit now, but at the same time I've heard rental prices have gone up quite substantially.

Also worth mentioning that whatever happens with Brexit will have an affect on Ireland too (probably in a bad way), due to the shared border with the UK.

<comment><USER21> The tech scene in Dublin has definitely expanded in the last few years but the renting market is very bad. You would be looking at paying prices similar to London houseshares for less pay. That being said the housing market looks to be at it's peak here so it's likely to drop in the next couple of years again.

Ireland will likely take some form of impact from Brexit, especially if tariffs are brought in on trade of goods with the UK. I would still think that the tech scene shouldn't be too impacted and may see more growth if multinational comapanies move after Brexit.

<comment><USER6> > That being said the housing market looks to be at it's peak here so it's > likely to drop in the next couple of years again.

The property market of renting and buying is in an expensive deadlock (relatively to local earnings) everywhere from Lisbon to Krakow, from Reykjavik to Barcelona. I wouldn't expect it to just "drop" by itself anywhere as too many significant entities are betting on it.

</comment></comment></comment></comment><comment><USER22> Is being part of tech scene a requirement? Chicago is pretty nice, affordable and cosmopolitan.

<comment><AUTHOR> Tech Scene for me personally provides a type of insurance. Here in the Bay Area you just have 1000s of companies bit and small contributing to this insane ecosystem that feels so that you could get a new job if necessary relatively easily.

In other cities it seems like you have a single or a few employers and if it didn't work out with them you'd need to uproot your life and move areas again. Having an ecosystem like that allows a bit more options.

That being said I don't imagine Chicago to be like that, what tech companies do you like in that area? As that's what I'm qualified to do.

<comment><USER23> You don't need to be at a tech company to work as a programmer.

<comment><AUTHOR> True, never really thought about that software tech really is in every industry. Do you do that and is it fulfilling?

<comment><USER24> My definition of fulfilling is getting a check large enough to live a comfortable life in the burbs where I get to come home at a reasonable time.

</comment></comment></comment></comment></comment><comment><USER25> I think the biggest question is how long do you want to commute? If you are willing to do the 70-90m daily commute then their are plenty of areas on central nj and pa that are commutable to NYC.

and 300k a year will buy you a large homestead in those areas.

</comment><comment><USER26> Seattle? You can also land a job working remotely, and live whereever you please.

<comment><AUTHOR> I hear Seattle has gotten just as expensive as SF not true?

Remote is interesting for sure. The rise of companies like Buffer and I believe the Wordpress company is 100% remote.

Definitely solves half my issue also looking for somewhere actually nice to live.

<comment><USER27> Seattle is expensive, but not near as much as SF.

I actually think here is one of the best places to leave. You can find SV level paychecks, no income tax, and housing for half of the price!

<comment><USER28> Also, 45 minutes out of the city core (light traffic) gets real affordable compared to in-city.

If you can bus or commute off-hours it can work.

</comment></comment></comment></comment><comment><USER29> RTP (Research Triangle Park, Raleigh/Durham NC)

edit: (in the original post I only posted the 'RTP' acronym.)

<comment><USER30> I was gonna say Raleigh, NC. After looking up what RTP refers to, I am pleasantly surprised to see this as the first answer!

<comment><AUTHOR> Yea I googled it, Research Park Triangle it seems. It seemed really interesting. Housing seemed to be pretty reasonable by California standards.

What neighborhoods are worth checking out and what companies are interesting.

Saw a lot of NetApp and IBM. Nothing wrong with those just seems like not a lot of companies just a few of ones from first glance.

<comment><USER29> Red Hat, Citrix, Cisco, Epic (Fortnite), SAS, Microsoft, Glaxo-Smith-Kline, a bunch of smaller startups/companies, etc.

I moved down here 5 years ago (from Buffalo, NY) but I work remotely for a non-local company.

As far as neighborhoods good, we're happy in Holly Springs, Apex is north of us, and Fuquay-Varina is just to the south. Cary is by far the most desirable area due to it's proximity to RTP. We decided we wanted more house/backyard than we could afford in Cary and so we settled in Holly Springs. If I had to work in RTP I'd hop on the 540 (toll road) and be there in 30 minutes.

</comment></comment></comment></comment><comment><USER31> Look into Ottawa.

Ottawa is a great place to raise a family, coffee (specifically little victories, happy goat, and black squirrel) and food culture is fantastic, great city for outdoor activities such as biking, rowing, hiking, etc..., very dog friendly city, 2 hours away from Montreal, 4.5 from Toronto.

Not sure about tech salaries but I'm sure with your experience you can negotiate something similar.

If you're looking for a Bay Area vibe I'd say the glebe is as close as you can get.

</comment><comment><USER32> Have you considered getting a private pilot license? That should cost around a month of your salary, and open up a much longer commute without adding time… at least, that's the impression I've had when considering the Bay Area.

<comment><USER33> Do you know anybody who commutes by plane? It's an interesting notion, but something tells me it's too expensive of a commute, even for Bay Area salaries.

<comment><USER32> I occasionally read about people doing it, and a Bay Area air taxi startup kept trying to sign me up for a free trial… but no, no personal experiences of people I know.

I wouldn't consider it for someone earning less than about $180k/year, just because of how much licensing and vehicles cost, but the comment I was responding to said >$300k.

</comment></comment></comment><comment><USER34> I've seen Los Angeles being called 'silicon beach' (around Venice and Santa Monica) and I've read that the Midwest (Omaha I think) is being referred to as 'silicon prairie'.

<comment><AUTHOR> I've heard people complaining that LA is just as bad as the Bay now housing costs vs Salaries.

Anyone live in the Midwest and can chime in on their experiences?

<comment><USER18> My sample size is very small, but everyone I know who moved from SF to LA for tech jobs get pretty much the same salary and housing is still cheaper, even for places right in Venice/Santa Monica.

</comment></comment></comment><comment><USER35> The idea that home ownership guarantees growth is a fallacy. In most cities prices only keep up with inflation.

Ergo you are financially better off renting, and investing the money you would have spent on a house.

<comment><USER36> Only if the returns of your investments minus the rent still beat inflation.

<comment><USER35> Unless you've timed your real estate purchase and sale very well and happen to live in an exceptional city the average return of the public markets is most likely to exceed.

</comment></comment></comment><comment><USER37> Lot of good stuff happening in Scottsdale and Tempe Arizona. Cost of living is fantastic.

Lehi, Utah as others have mentioned is great too. I moved from there back to AZ to escape the show though.

<comment><AUTHOR> What show was so scary it chased you back to AZ? Book of Mormon?

J/K assuming you meant snow.

Jokes aside what companies do you like in the area?

</comment></comment><comment><USER38> Cost of living is not much better but I'm personally partial to Boston and you can get houses in the surrounding bedroom communities for not too bad. If you don't mind going North of Boston, southern New Hampshire has a lot to offer but the tech scene is still pretty small.

</comment><comment><USER39> Miami, Tampa, Orlando. Cost of living is low in Florida. Although you wont make as much as SV, you will live very well. Plenty of family friendly picture perfect communities for young professionals.

</comment><comment><USER40> Stockholm, Sweden. Good tech scene, bad housing, but very family friendly (heavily subsidized kindergarten, free schools, paid parental leave, etc.).

</comment><comment><USER41> I came to London 8 year back and I love the tech scene here.

Thought rents/commute etc could be steep, one can expect decent salary as well.

</comment><comment><USER42> London but it's a dirty miserable existence!

</comment><comment><USER43> Denver, Colorado.

<comment><USER44> Last I looked at Denver-Boulder (maybe 10 years ago), the software jobs there were almost exclusively on the Microsoft stack. Has that changed?

</comment></comment><comment><USER45> Montana. We have SoFi, Oracle, Submittable, OnX Maps, etc.

</comment><comment><USER46> With respect, Austin is full. We don't need any more ex-Californites moving here and driving up real estate prices even further. Thanks!

You're welcome to visit anytime you like, however.

</comment><comment><USER36> Come to Berlin

<comment><AUTHOR> Had a friend that recently washed out of SoundCloud and returned to the U.S. I spent some time there and went to the disrupt Europe when it was in Berlin. I might be able to swing it long term as my wife has an Italian passport but would be a longer process with that.

Seemed like when I was there it was something about a rocket and cloning US tech and SoundCloud were the two big games in town.

Has there gotten to be a more critical mass of companies there recently?

<comment><USER36> Amazon is here, Twitch is here, Google is in the process of opening an office here. Microsoft has an office too, but I don't know whether it's engineering or not. Pivotal Labs has an office here. There is also Siemens who is desperately looking to adapt to the "digital transformation". There is a pretty healthy startup scene of smaller companies, check e.g. [https://www.startupnight.net/startups](https://www.startupnight.net/startups) or [https://www.adlershof.de/en/companies- institutes/directory/](https://www.adlershof.de/en/companies- institutes/directory/). There are also a number of smaller companies that aren't startups.

</comment></comment></comment><comment><USER47> Bay Area is still first, but these are not far behind:

1\. Oxford-Cambridge-London in the UK

2\. Shenzhen-Guangzhou-Hong Kong in China

3\. Israel

<comment><USER8> Housing in London is almost as bad as in SV. Don't mind the gloomy Brexit prospects.

Tel Aviv is awesome. Still housing is an issue. Getting a residence permit unless you are Jewish or marry is way harder than in many other developed countries. Other than that, a great option.</comment></comment>