WebGL demo showing some neat photo filters applied in real-time. via @mrdoob
This game/demo tickles me in a couple ways. I love Rogue-like games. I used to love playing them, now I appreciate them more as a kind of quirky art. I'm also optimistic about the WebGL standard (OpenGL in the browser). This crazy rogue-like demo combines both. Enjoy!
Musing for a moment... it's possible some evolution of this client-side technology could displace Steam as the future of game distribution. Obviously the client-side technology has a ways to go (game logic would still be in Javascript; it's easy to argue there are problems there) but it feels like that kind of disruption could happen.
After looking more into Scala, Coffescript and Go, I wish other programming languages were more terse. It's easier to like a language that saves me keystrokes.
Steve Yegge wrote about the next big language in 2007 and opined that it would have to C-like syntax in order to be popular. He's probably right. But I hope we can shave off a few key-strokes here and there.
Andrew's Top Verbosity Annoyances:
1. Having to explicitly assign fields from constructor params. e.g.
// Javascript (fail)function MyClass (param) { this.param = param; }// C++ (fail)MyClass(int param) : param(param) {}// Java (fail)MyClass(int param) { this.param = param; }// Coffeescript (better)class MyClasscontructor (@param) ->// Scala (win!)class MyClass (param: Int)// Go (win!)struct MyClass {param int}
2. Getters and setters. One pro of getters and setters is you can separately control access to reads vs. writes... but I rarely care. You could also choose to enforce invariants in your setters... sometimes nice, but I prefer to put validation elsewhere.
Net: I'd like to see less of this in NBL:
private int param;public void setParam(int param) { this.param = param; }public int getParam() { return this.param; }
I think Go is off on the right foot with "capitalize to export". I hope programmers will decide there are cases it's okay to access a field directly instead of creating the next generation of getter/setter bloat.
Scala also saves you keystrokes by making getters and setters implicit, but gives you the option to add an explicit setter if you need it. Smart!
3. Workarounds for not being able to return tuples. i.e. Something other than...
public static class MyReturnValue { public int x; public int y; }public MyReturnValue doSomething() { ... }// Or ...public doSomething(Foo outputParam1, Foo outputParam2) { ... }
Scala, Go and Coffeescript all support multiple return values. Tuples aren't something I miss every day, but they're a definite nice-to-have.
The craziest thing about this video is that it only has 100K views.
I downloaded the Mac App Store a couple days ago and bought Trine--a clever, physics puzzle adventure with an RPG-twist. You play a thief, a wizard and a knight--the game allows you to switch between each as the situation warrants. Each has different ways it can get around and affect the game world (moving blocks, swinging from ropes, bashing things, conjuring blocks, etc.)
The game combines Diablo-style hack-and-slash with a little bit of loot-gathering fun and a lot of neat puzzlers ("How do I get up there?").
Great polish, fun sound effects. It's also available on Steam. I'm not sure which gives the developer a better cut, but they certainly earned 70% of my $19.99. Hats off to the folks at Frozenbyte.
News flash! Your friend did not tag you in a photo at Shoppy Bag. Don't click the link in the email.
When big things happen in the market, someone makes money. The story of Cornwall Capital is about two men who started with $100K, turned it into $15M and then to $120M in 2008-2009 when the financial industry fell apart. They paid a high emotional cost knowing ruinous events years ahead of time. Even as they placed bets the system would fail, they tried to warn the SEC to prevent it.
Going back to that first $100K... the tenet of their fund was that Wall Street undervalued the impact of extremely rare events. Bets on such events are cheap to make--no-one believes they'll happen. Enough of these bets worked that they managed 100x returns. Readers of the Black Swan will like this story.
Their attention eventually turned to the consumer mortgage market and then to the banks who were issuing insurance against bonds backed by consumer mortgages. Soon they were making bets against those banks. Banks like Bear Stearns.
Has anyone read The Big Short yet?
Thanks, Fresh Air, for turning me on to this story!
Multi-player space-shooter game in the browser... using WebSocket!
It has the feel of an old arcade game, but it's networked and all done with Javascript! (Some flash fallback for browsers that don't have WebSocket)
It has the feel of an old arcade game, but it's networked and all done with Javascript! (Some flash fallback for browsers that don't have WebSocket)
An author on NPR was trying to explain why Israel has such a successful economy in spite of other adverse circumstances. His thesis in bullet-point form:
- To have sustained economic growth, you need sustained productivity increases.
- Improvements in technology have historically been the best way to increase productivity.
- Innovation in technology most often comes from small companies, less than 500 people.
- The type of people who start and join these companies are risk-takers.
- Immigrants are risk-takers.
- Israel is a nation of immigrants that continues to actively encourage immigration.
- Israel has more start-ups per capita than anywhere else (1 start-up per 1,100 residents) and a healthy economy.
I think he's on to something and I'm afraid the United States is doing it wrong.
We let foreign students come here to study, but make it difficult for them to stay. Letting people contribute to the American economy should be easy.
I actually think the process should be easy whether the immigrant is smart or not. Immigrants want to work. And they might have really bright kids.
This concludes "ur doin it wrong part 1". In part 2 (if I remember) I'll explore water-use in agriculture and how Israel manages to cultivate dry sand.
I've been working on Google Buzz. It's a fun, light-weight way to communicate inside GMail.
Also: If you squint carefully, you can make out a familiar face in the screen shot at http://buzz.google.com :-)