Home

Cocoa, Lemons and Geeks

Apr 22, 2006

Greetings from Amsterdam. I'm here for the second day of CocoaDevHouse! About 20 geeks have been camping out in the Post C.S. building to gather, discuss, develop and generally have fun.

I've mainly come to work on my first Cocoa app (LemonJuice) and benefit from the expertise of people who actually know the API ;). I've gone from "typing a bunch of random crap" to "doing cool stuff with ridiculously small amounts of code". Cocoa is definitely interesting, and far more powerful than the Windows API I've used for a couple of years.

More details inside...

The application I've been coding is essentially, a WebKit based Terminal. I dislike the fact that a typical bash session in a GUI terminal is not a very consistent experience. For example, bash does not understand the normal home/end keys. And because you're not typing in a normal textbox, you can't select text by holding shift, have spell checking, and non-destructive autocompletion. What's also important to me is that the typical shell command now outputs a very ugly, very UNIXy stream of text. Whereas usually, that information is quite structured (a list of files, a list of key/value pairs, a timestamp, a media file, ...). Files and hyperlinks should be clickable. Tables should be sortable. Etc. etc.

So, I want to use WebKit (the engine behind Safari) to make a Terminal that outputs nicey styled HTML. A directory listing would emerge as a nicely formatted table with icons, for example. But you could just as well pipe that list into another application, without losing the structure (sort of what Microsoft's Monad is supposed to be like).

Of course, I have no clue if I can build such a thing. I'm essentially going blind now, coding until I have a good prototype ;). So far I've got "cd", "ls" and "quit" working. Still, most of the work now has been trying to figure out how I can achieve things in a way that is Cocoa-ish and clean. At least I'm having fun...

Current prototype:

Are the commands you've

Apr 22, 2006 Anonymous

Are the commands you've implemented already schema'd in code or in expandable XML files?

Nope

Apr 23, 2006 Steven

They're just a set of hardcoded commands now. As I said I'm not focusing too much on big architecture side of things.

great idea

Aug 05, 2008 josh

I love this idea man! I just wanted to encourage you to keep hacking on it.

Niiice

Mar 20, 2009 Alex King

My eyes got wide when I saw this post - I've been thinking about how terminal could be improved for a good while, and it was exciting to see a project. I know this is 2006 - but has this gone anywhere? Perhaps you could release it to open source if you haven't already. I'd be really interested in seeing what you've done on it and seeing what I could contribute.

btw - nice site design!

@Alex: Not really

Mar 20, 2009 Steven

Sorry, I never really got past the primitive prototype phase with this ;). But there have been a number of exciting developments since I first started it, like the massive increase in JavaScript engine speed, which means that a lot of the core of a WebKit based terminal could actually be run as JS.

Also, WebKit's developer tools already have something like what I proposed: the console for JS and client-side SQL already outputs richly formatted data. It also has a really awesome implementation of autocomplete, where the autocompleted text is appended on the fly, but grayed out. Best of all, it's all implemented with HTML, CSS and JS.


All HTML?

Mar 21, 2009 Alex King

Wow - I've used those developer tools hundreds of times and never guessed they were all HTML - amazing. What better way to access the DOM I suppose.

Maybe I'll try to hack something together with this sometime... if alot of it was implemented as web technologies it'd be quicker to make and much more extensible...

Post new comment

Note: all posts containing spam will be removed.
The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <b> <dd> <dl> <dt> <i> <li> <ol> <u> <ul> <img> <em> <p> <br> <span> <div> <h2> <h3> <abbr> <small> <table> <tr> <td> <strong> <acronym> <th> <blockquote>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

Related posts

Recent comments

Images