HNHacker News
TopNewBestAskShowJobs

vito

680 karma · joined July 17, 2008

[ my public key: https://keybase.io/alexsuraci; my proof: https://keybase.io/alexsuraci/sigs/aehzHH290EJZAFgL11-FZTDAvQxDEQ_saZJ6uGm1bew ]
submissionscomments
vito··on Who else is hacking a project instead of watching the Super Bowl?
I'm putting together the release notes for the most substantial update for any project I've ever done. Probably shouldn't release yet if everyone's watching the Superbowl. Tomorrow it is?

http://atomo-lang.org/notes/0.4

vito··on Redesigning OSX Spaces: 45˚ Is All It Takes
Maybe:

      x
    xx xx
      x
Worst-case would be going from far left to far right, which would take 3 presses.
vito··on Scheme on the iPad
Something like this?: http://lispgamesdev.blogspot.com/2010/12/iosketch-progress-r...
vito··on A crazy Ruby quine: a spinning globe.
Equally impressive: http://d.hatena.ne.jp/ku-ma-me/20090916

A Ruby -> Python -> Perl -> Lua -> OCaml -> Haskell -> C -> Java -> Brainfuck -> Whitespace -> Unlambda -> Ruby quine!

vito··on Anonymous sends a press release, but the author doesn't clear his metadata...
Those were all created today. It seems more likely that they're mocking him.
vito··on Anonymous sends a press release, but the author doesn't clear his metadata...
You seem to be right; all of the pastebins in the link below are from within the day.
vito··on Zed Shaw: Tir Web Framework Officially Up
Racket is highly underrated. I wish more people would use/talk about/evangelize it.
vito··on Zed Shaw: Tir Web Framework Officially Up
I've been toying with something similar in Atomo (running atop mongrel2): http://bitbucket.org/alex/web/src/2a90b9bd6322/example.atomo

In its early stages it was continuation-based, but now it's just regular ol' closures. You can still use continuations rather easily though; some of it is modeled on the PLT stack (send/suspend, etc.).

Earlier progress: https://gist.github.com/717381/433d743dc4a7d91705692ff1dc6ca...

Source code: http://bitbucket.org/alex/web/src

vito··on Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit
Just pointing out: there was a breaking change from text 0.10.x -> 0.11; a few functions were renamed for consistency with the rest of the Haskell Platform, which it is now part of.
vito··on Since you asked, Gruber, here are my Android "killer apps"
Not from what I've seen. There may be multiple apps for one task, but generally they don't directly copy one another.
vito··on Since you asked, Gruber, here are my Android "killer apps"
Parcels seems to be a knock-off of the iOS Delivery Status app, which I use a lot: http://junecloud.com/software/iphone/delivery-status-touch.h...

I've noticed this about the Market - there are a lot of blatant clones of better-executed iOS apps.

vito··on How a programming language documentation ought to look like: clojuredocs
Pales in comparison to Scribble, Racket's documentation system. Filled with examples, all interlinked: http://docs.racket-lang.org/reference/define.html

I modeled Anatomy, Atomo's documentation system on it: http://atomo-lang.org/docs/core.html

vito··on Atomo, the programmer's programmable programming language
Yep! He's in #atomo, and I'm in #slate; there's a ton of back-and-forth.
vito··on Atomo, the programmer's programmable programming language
Hackage has been down all day; I've uploaded a new version (0.2.1) just now which has the new condition/restart system, new REPL, and other goodies. Should be just a "cabal update; cabal install atomo" away! :)
vito··on Atomo, the programmer's programmable programming language
Self and Io are both languages that have similar concepts but weren't direct inspiration; in Self's case, it was pure chance (I've never actually used Self), and in Io's case, Slate was a more direct influence. Io didn't have much mindshare, despite being another language I love (but never use).
vito··on Atomo, the programmer's programmable programming language
Yes; all of Atomo's kernel is defined using this Haskell DSL. For example, here's Atomo's ports system: http://darcsden.com/alex/atomo/browse/src/Atomo/Kernel/Ports...

I've also written a few wrappers for Haskell libraries over at http://darcsden.com/alex - see http, json, and command.

Basically, you define your methods in Haskell, and call them from Atomo; these methods can be defined as an expression (=:::), a value (=::), or some arbitrary VM action to be executed to yield a value (=:). (Admittedly those operators have gotten a bit silly.)

The definitions use QuasiQuotes for the method pattern, and can use them for expressions as well, though that's not encouraged (operator precedence and macros make it a tricky thing to do at compile time). They look a bit noisy - [$p|x foo: y|] but that'll be fixed come GHC 7, where that pesky $ is removed.

vito··on Atomo, the programmer's programmable programming language
Right now, my priority with Atomo is consistency in the design and simplicity in the implementation. It's acting as an incubator for a ton of interesting language features at the moment (both for myself and for Slate), so I haven't made optimization a priority yet as major parts of it are constantly changing. For example, the version on Hackage has a traditional exception system, while the latest darcs changes have replaced that entirely with a condition/restart system written in Atomo.

I'd call it "fast enough," but it's no speed demon. It's pretty early on; I just started planning Atomo's design this June. There's almost certainly some low-hanging fruit when it comes to optimization, and it is something I've been keeping a close eye on for a while now. It's only been getting faster, and in my testing of GHC 7 I saw pretty substantial performance boosts for free. And that's the nice thing. It's built on a fantastic platform, which you can drop into very easily whenever you want with a nice DSL.

Glad you like it, though. I completely understand the caution when it comes to performance of such a high-level language.

vito··on Atomo, the programmer's programmable programming language
Both of those uses of = above are actually pretty consistent, given how Atomo's scoping and dispatch system works.

When you said "for 0, fib is 1," you could just as easily say "for the current scope object, x is Object clone." This is exactly how it works. Method dispatch is 100% pattern-matching, and Atomo's scopes are 100% message dispatch, combined with delegation.

When you say "0 fib = 1", the method is inserted on Integer. When you send a message to an Integer, you're sending (pseudocode) `Single "fib" (Integer 0)`. The methods on Integer pattern-match on that, in this case with `PSingle "fib" (PMatch (Integer 0))`. If that pattern fails, it moves on to "1 fib = ...", and finally to the least-precise "(n: Integer) fib := ...".

Not sure if that answers your question, but I thought I'd expand on it a bit.

vito··on Ubuntu 11.04 will use Unity UX instead of GNOME Desktop
This is one thing that I'm very glad Unity does - it removes those menubars and has a global menu like OS X. Saves so much screen space.
vito··on Ask HN: Show me your Half Baked project
http://darcsden.com/

I fell in love with darcs (switched from git) and wanted a place to put my stuff, since github would no longer be of much use to me. So I made it. Right now I just add things as I need them, or think they'd be a good idea (like "ssh username@darcsden.com init reponame"). Been meaning to get around to built-in issue tracking, but I'm busy working on other projects.

Source here: http://darcsden.com/alex/darcsden

vito··on [dead]
I'm much the same way. Right now I'm taking an Elementary Japanese class in preparation for studying abroad, and it easily has the the highest amount of either insanely awkward or development-arrested students of any of my classes.

I was a part of that "subculture" in middle school. My classmates wear the same clothes (I spotted a cheap plastic trenchcoat the other day, ugh), listen to the same music (Malice Mizer fandom, X-Japan wristbands/purses), and have the exact same mannerisms that I grew out of come high school (I'm now in college).

Still a fun bunch, though I still cringe from time to time. It's just weird being back in that "loop" after so long, to see that nothing has changed.

vito··on Yi an editor written in Haskell
Agreed. Being bound to GTK is no fun - I tried it on OS X and it was very sluggish and janky. Was very fun in Linux though.
vito··on Yi an editor written in Haskell
Speaking of Lua and text editors, I've been keeping my eye on this for a while: http://code.google.com/p/textadept/
vito··on Ask HN: recommendations for domain registrars
http://dynadot.com/

No fuss, no tricks, non-crappy administration area. They even provide their own name servers for free. I've been using them for years and have no complaints.

vito··on Ask HN: What have you built with Erlang?
Super late (a misjudged apache-bench got me banned for a day or something), but: http://darcsden.com/alex/aliter

It's a reverse engineering of a popular MMORPG called Ragnarok Online (or RO). Last time I was working on it, you could log in with the official client, walk around, teleport, chat, etc. (The walking had to be done in C, though; one pathfind per walk request is not something I'd want to leave to Erlang.)

vito··on New free monospace programming font by Mark Simonson: Anonymous Pro
I've been using this for a few months now; it's by far my favorite programming font. Every little detail is so finely crafted and well-proportioned. For example, with Monaco it always bothered me that / and \ were slightly taller, or that < and > looked funny - in Anonymous Pro everything's just right.
vito··on _Why Yown Is Funny So You Can Laugh Too
Neat! They're pretty fun to make; I write them a lot to test a language's flexibility.
vito··on _Why Yown Is Funny So You Can Laugh Too
Ah, ok - I misinterpreted the article.

Actually, the article seems to be wrong? It seems to imply that this shouldn't work:

    Io> x := Object clone do( forward := 0; a := 1 )
    ==>  Object_0x1003a2e90:
      a                = 1
      forward          = 0

    Io> x a
    ==> 1
    Io> x b
    ==> 0
    Io> x b := 2
    ==> 2
    Io> x b
    ==> 2
(paragraph: There are some things you should know about forward(). It's very powerful. Too powerful. [...])
vito··on _Why Yown Is Funny So You Can Laugh Too
Sort of tooting my own horn here, but here's an HTML builder in the language I'm working on: http://gist.github.com/513228 (Example usage and output at the bottom.) I write these a lot to test a language's flexibility.

Seems like Io's "forward" is a lot like "did-not-understand" (and similar mechanisms in Ruby/etc. languages), but it takes priority over messages that would've otherwise been understood.

vito··on Oracle sues Google over use of Java in Android
Already being discussed here: http://news.ycombinator.com/item?id=1599584
← PreviousPage 3 of 6Next →