HNHacker News
TopNewBestAskShowJobs

ramseynasser

380 karma · joined January 15, 2013

World famous Commuter Scientist

https://nas.sr/

submissionscomments
ramseynasser··on قلب: a non-ASCII programming language written in Arabic
hi everyone, author here. i am glad this project is still starting conversations six years after it came out! if youre interested in a longer read on the subject of the cultural assumptions of programming and computing systems i wrote an essay for Technology as Cultural Practice last year: http://ojs.decolonising.digital/index.php/decolonising_digit...
ramseynasser··on Choosing Functional Programming for Our Game
To your first point, Mooi is planning on using Clojure as a scripting language. Clojure compiles to CLR bytecode, and is in theory as fast as C# is as a language. Using the idiomatic persistent data structures has an overhead, of course, but Clojure allows you to be flexible with how and when you do that. I wouldn't say Lua or JavaScript are "reasonably faster" than Clojure is on the CLR.

To your second point, we're aware that there's room to optimize and we're actively working on it. We profile and optimize our code paths regularly, and the results are often surprising. If there's "obvious" stuff left in there it's because we're tackling bigger fish than e.g. a foreach loop. None of these are show stoppers, in practice, but this is part of why we're in pre-alpha.

ramseynasser··on Choosing Functional Programming for Our Game
Right, Clojure is always compiled and achieves live coding by running on top of VMs that support dynamic code emission.

Python REPLs are quite good, but in my experience order dependent state-mutating code can get tricky in an interactive context. FP helps a lot here.

ramseynasser··on Choosing Functional Programming for Our Game
Exactly! I'm one of the core devs, and we all see Arcadia as an experiment in what game development could be. Some people want to expend effort mastering the tools of the day, and that's totally cool, but we're somewhat more motivated to spend our time trying new things. Members of the community have already pushed out a number of games, and their experiences have guided made the tool better and better.
ramseynasser··on Choosing Functional Programming for Our Game
Fair, but there's an important difference between a tool where live coding is technically possible and a tool designed to support it. Clojure is built from the ground up for the REPL experience and supports e.g. redefining functions seamlessly. The fact that it's functional helps a lot, too, since that means that the order things are defined or executed in matters less.
ramseynasser··on John Carmack working on Scheme as a VR scripting language
Arcadia dev here! We're always actively working on Arcadia, and are closing in on our next release that brings with it a package manager and all kinds of other goodness. Keep an eye on the repo or jump in the gitter for updates.

Lisp in VR is super exciting! We're following Carmack's work closely.

ramseynasser··on Arcadia: Unity 3D Development in Clojure
Thanks!
ramseynasser··on Arcadia: Unity 3D Development in Clojure
That would be amazing! Can you invoke command line scripts from LT? If so you could just use our included REPL client implemented in Ruby. Otherwise you'd have to port it to ClojureScript, but the client is designed to be simple enough to make that easy to do.
ramseynasser··on Arcadia: Unity 3D Development in Clojure
IL2CPP has been on our radar for a while. We haven't gotten any real access to Unity 5 yet, so we can't say what the compatibility will be like for sure.

But since IL2CPP acts on the CLR bytecode, and Arcadia emits valid CLR bytecode, in theory there shouldn't be a problem. Time will tell!

ramseynasser··on Arcadia: Unity 3D Development in Clojure
You can expect a full, "proper" Clojure 1.7 experience using Arcadia.
ramseynasser··on Arcadia: Unity 3D Development in Clojure
Totally! Arcadia is based on the Clojure-CLR port (an official project) maintained by David Miller for five years or so. It supports Mono.

We had to fork the compiler to introduce a small number of changes to make Arcadia work in Unity, though. Unity ships a very old version of Mono with their own changes, so stock Clojure-CLR would not work.

https://github.com/clojure/clojure-clr https://github.com/arcadia-unity/clojure-clr

ramseynasser··on An App Platform for Dumb Phones
Don't forget that anyone can write a dumb app! Just fork the repository, add your app, and take out a pull request!

https://github.com/dumbstore/dumbstore/

ramseynasser··on An App Platform for Dumb Phones
dir can be buggy, depending on how you format your location names. Can you give me an example of what's not working?
ramseynasser··on An App Platform for Dumb Phones
Noted.
ramseynasser··on An App Platform for Dumb Phones
Wow. Thanks! We will be studying this thoroughly. I hadn't heard about it before.
ramseynasser··on An App Platform for Dumb Phones
Do you mean the interface of the website, or how you use it on your phone?
ramseynasser··on An App Platform for Dumb Phones
These are all great ideas. Case insensitivity has come up a few times and it's an easy fix. We should have it in soon!
ramseynasser··on An App Platform for Dumb Phones
I've been using the Motofone for three years now and I love it. The texting doesn't bother me either. It's also the lowest common denominator of phones that call and text, so we test all our dumb apps against it.
ramseynasser··on Show HN: gitdown - prevents you from coding drunk
Geoffrey and Alex are super sharp hackers and awesome people. Here's a video of them demonstrating the project: http://www.youtube.com/watch?v=NnBb1wmHj5k
ramseynasser··on Compilers Explained Using the Ten Hundred Most Used Words
Brilliant! I love how using the ten hundred words makes the text more readable and less readable at the same time. The paragraph on the AST is my favorite.
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
Interesting, where do you get that number?
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
It's my bad. I'll update the write up soon to be more clear.
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
Spoiler Alert: I'm Lebanese ;-)
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
Exactly. Although @jorendorff on GitHub turned me on to a great Unicode feature that might help: https://github.com/nasser/---/pull/4
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
Glad you like it! RTL was overcome by using the latest CodeMirror and this https://github.com/marijnh/CodeMirror/pull/1103
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
I'm not so interested in automatic generation of calligraphy for this project, to be honest. I find something meditative about spending a lot of time sweating over laying out these algorithms. It mirrors the struggle I had (we all had, I imagine) while trying to understand them in the first place.
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
There are rules to follow to make sure the letters remain readable, but its mostly a lot of staring at a grid and trying to make it all look right.
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
No, I write the code normally, then I manually lay out the tile calligraphy and build the mosaics by hand. There's no way to automate the process that I know of. It's tricky to get everything to fit together and look right. I am a novice at this stuff, and master calligrapher Mamoun Sakkal's website has been a great help http://www.sakkal.com/instrctn/sq_kufi_alphabet.html.

The writeup could be more clear about how the mosaics are made, though. I'll update it.

ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
True, but you can stretch out Arabic symbols for perfect symmetry without a lot of stupid whitespace! Check it out http://twitpic.com/bnpjvy
ramseynasser··on QLB (قلب) - Program in Arabic, display algorithms as calligraphy
Thanks for your feedback! I agree that language itself is the real challenge. I had to deal with a lot of RTL/encoding issues, sure, but the real difficulty is how do you map engrained concepts from one culture to the next? I don't have any solid answers, and قلب is very much an experiment.

The REPL complains about 'letter unexpected' because the first thing it encounters is the ASCII 'Q', which is invalid outside of a string, and barfs.

I completely agree that Arabic linguistics aren't being utilized to their fullest. My Arabic is certainly not as strong as my English, unfortunately. This is a very preliminary release, and I'm excited to collaborate with others stronger in written Arabic for better word choice and semantics.