HNHacker News
TopNewBestAskShowJobs

aaroniba

1,389 karma · joined March 19, 2007

I like to write computer programs.
submissionscomments
aaroniba··on Hello World! AppJet Opens Browser-Based JavaScript School
Thanks for the feedback!

Omitting semicolons early in the guide was an intentional choice. We wanted to ease people in to the JavaScript syntax gently, so we decided to start without semicolons. (We introduce them in the "good habits" section, and use them in all our examples thereafter.)

In JavaScript, omitting semicolons will occasionally get you into trouble, but usually isn't a big deal. (I personally always use semicolons, and use jslint to verify it.) Omitting "var" before variables, however, can be really nasty because it affects scoping, so we felt that was important enough to introduce sooner.

As with all educational material, it's a trade-off between simplifying things for the beginner, and being totally correct. (Kind of like how in physics, you learn mechanics, and then find out it's not totally correct.)

It's true that the tutorial uses commands (like "print") that aren't built into JavaScript. It helps to recognize that we're trying to teach programming in general, not JavaScript specifically (as the headline might imply), and with an audience of total beginners. We feel that the JavaScript language, together with the AppJet framework and website, provide a great environment for beginners to start writing programs.

aaroniba··on Build and host a processing.js app in your browser with AppJet
You do if you want to share something you create with other people.
aaroniba··on Ask YC: Online Text Editors.
appjet.com has an editor (written in javascript, for javascript)
aaroniba··on Codepad.org, a pastebin that executes code
In what way does Java provide sandboxing of untrusted code?
aaroniba··on Ask YC: Learning Web Development, were should I start?
Out of curiosity, why don't you want to learn PHP?
aaroniba··on Take that Harvard! Stanford drops tuition for students.
See also http://philip.greenspun.com/school/tuition-free-mit.html
aaroniba··on Ask YC: tendonitis at a startup?
I am a long-time kinesis user because I find the kinesis i the best combination of speed and comfort. But once I head really crippling RSI, I switched to the safetype keyboard (www.safetype.com) for a few weeks, and found it even more comfortable. Eventually I switched back to the kinesis because of the speed and accuracy, but the safetype is worth a try if you have really bad pains.

www.safetype.com

aaroniba··on Ask YC: tendonitis at a startup?
Yes, emacs with a kinesis keyboard is great. Hitting the modifier keys with your thumbs instead of your pinkies makes a big difference because thumbs are your strongest fingers.
aaroniba··on One (programming) language for the rest of your life. Which one?
javascript: it's "like scheme with syntax", necessary anyway for cool web apps, expressive, has closures, lexical scoping, and with Rhino you can access any of the Java libraries (without writing Java code) and run it efficiently on any platform (for server-side or desktop apps). It's really the do-it-all language.
aaroniba··on In-browser code editor with syntax highlighting
I looked at EditArea before building the AppJet Code Editor (ACE). (See our in-browser code editor with syntax highlighting at appjet.com).

The problem with EditArea is that the overlay method causes visible ghosting when you insert newlines, even on a fast computer. Also not being able to see highlighting on the current line bothered me.

I based the ACE implementation on http://marijn.haverbeke.nl/codemirror/story.html only simplified the parser and added some features like paren/bracket/brace flashing. The basic idea is to use design mode but keep careful track of the DOM of the design body and cursor. The big challenges then become things like undo support (which we still haven't implemented yet), but the major advantage is that you get a fast and native feel, which is important. We plan to open-source ACE pretty soon.

aaroniba··on Dutch Guy Hacks Traffic Sign (vid)
Someone did this outside my dorm at MIT: http://aaroniba.net/misc/nerdxing.jpg
aaroniba··on Ajaxian interviews Appjet founder Aaron Iba
"Aaron Iba has released" should read, "David Greenspan, JD Zamfirescu, and Aaron Iba have released..." I just happened to be awake when ajaxian emailed.
aaroniba··on AppJet (YC co) Makes Simple Web Apps A Breeze
We don't want to get in the way of people hosting their own apps. We will at least release binaries for doing your own app serving and local development. You can already grab the source to the JS micro-framework. More details in our interview with Ajaxian: http://ajaxian.com/archives/appjet-develop-preview-deploy-al... - see the "Aren't you tied to the platform" question.
aaroniba··on AppJet (YC co) Makes Simple Web Apps A Breeze
I don't see any practical limit to the set of interesting apps that can be written in 100 lines of an expressive programming language like JavaScript. Of all the programs I have ever written in python, for example, I would wager that most were fewer than 100 lines. I wish these were all online instead of trapped on my hard disk.

Random thought: how big is the set of interesting essays you can write in 100 lines of English?

Our prediction is that there is a long-tail of web apps. We want to be kind of like the pen and paper of web apps. Maybe not great for writing a novel, but excellent for smaller works.

aaroniba··on Hackers' screen shots
I just remap/unmap the ion shortcuts to get out of the way of emacs. I have a friend who swears by setting ion's Mod1 to capslock, but my pinky just can't handle that.
aaroniba··on Hackers' screen shots
+1 for ion! brilliant window manager. I don't know how I could be as productive without it.
aaroniba··on The "$15 Billion" Nonsense
Does this mean new engineers who join facebook will get stock options with a strike price reflecting the $15B valuation? Won't that make it harder to recruit people?
aaroniba··on Ask News.YC: Opinions on Linux distros, Helma, Java Frameworks
We use Helma for our (unlaunched) YC startup, and we love it.

It's faster than rails, and IMO nicer to develop with. Having all the Java libraries without having to code in Java is sweet. The ORM is really well-designed and the built-in object cache is super fast. The template system has its quirks, but once you get used to it, is also really sweet.

It's a shame helma wasn't documented or evangelized as well as rails was. I think it's a better framework that just didn't catch on because it wasn't marketed well.

aaroniba··on Hacker Music?
I like ambient electronic music for coding. Check out:

http://www.limbikfreq.com/

aaroniba··on Ask YC: How do you intend to spend your YC investment?
that includes the purchase price of 2 iPhones.
aaroniba··on Ask YC: How do you intend to spend your YC investment?
We track our expenses using gnucash, which can generate cool reports like this one:

http://www.getdropbox.com/u/86/appjet-summer07-expenses.gif

So that's how we (2 of us) spent most of our $15k summer funds.

aaroniba··on Java-based Startups, do they exist?
The JVM being well-specified is what allows other languages (like JavaScript) to be compiled to run on it. It also makes it easier to extend.

Rhino on JVM has the advantages of having access to any java library you want (sun distributes many standard ones, and there are tons of other open-source ones on the internet). Another advantage is that the JVM does hotspot optimization which leads to speed improvements. Most other interpreted languages, such as Ruby or Python, are not as far along with their runtimes.

As for Java vs. scripting languages, that's a matter of taste. In my experience the way to minimize bugs is to write less code, and I explained above why Java programs tend to be verbose, so I believe the benefits of terseness in scripting languages outweigh the benefits of static typing in Java.

aaroniba··on Java-based Startups, do they exist?
It's important to differentiate "Java" from the "JVM". Java is a programming language that gets compiled to bytecodes, and the JVM is an execution environment that runs bytecodes. (There is some java-language-ish stuff in the bytecode spec, but for the most part you can treat them separately).

In my opinion, Java is a clumsy language but the JVM is awesome. Static typing and lack of first-class functions or easy data types make Java programs verbose and annoying to change. The JVM, on the other hand, is fast, portable, well-specified, and there are a ton of libraries that run on it.

To have the best of both worlds, you can use the JVM to run a more dynamic language (not Java)! There are many projects to bring different languages to the JVM, but my favorite is Rhino, which compiles JavaScript to bytecodes. Rhino is also what powers my favorite web framework, Helma.

aaroniba··on Am I the only one who doesn't care about Facebook?
Facebook is a utility, not just a frivolous form of entertainment. Users depend on the service to manage contacts, share photos, and meet new people. A lot of important information flows through the facebook social graph.

The posts here remind me of the guy who loves to brag about how he doesn't have a TV in his house. To each his own, but television has had a huge impact on business and culture world-wide.

So even if you don't personally want to be a Facebook user, you might think about how it is transforming the way a whole generation of people interact socially, recognize the business and cultural impact, and conclude that you should care about it anyway.

aaroniba··on John Lam on Software: Steve Yegge ported Rails to JavaScript
There's a really sweet web application framework called Helma that lets you write entire web apps in javascript, and gives you the JDK through Rhino. The documentation is a little slim, but it's my framework of choice. I don't know why it isn't more popular.

http://dev.helma.org/

aaroniba··on Subdomains + Development = Sucks: A quick tip from Kevin Hale of Wufoo
Question: does the choice to use subdomains or subdirectories affect the stats that appear on traffic measuring sites like Alexa?
aaroniba··on Subdomains + Development = Sucks: A quick tip from Kevin Hale of Wufoo
For me, even if aiba.wufoo.com and wufoo.com/aiba point to the same IP address and have the same functionality, the former feels more like my site, whereas the latter feels more like my part of someone else's site. If you want to create a service that gives people their own presence on the web, this could make a difference.

Alternatively, maybe most users don't pay attention to URLs or look at the distinction above in the same way we developers do.

Also, the subdomain strategy seems to have worked well for Blogger. They serve users' pages from *.blogspot.com, and their own pages from *.blogger.com.

aaroniba··on How did you meet your cofounder?
High school math team.
aaroniba··on My YC app: Dropbox - Throw away your USB drive
Sweet! I especially like the right-click, "copy link location" feature: really useful and should help user adoption.
← PreviousPage 3 of 3