123 reputation
6
bio website
location
age
visits member for 2 years, 8 months
seen Apr 13 at 4:41

I'm the author of a natural language programming system called EngScript.

Some of my favorite software projects are:

I have written some useful macros in sweet.js:

//for repeating if statements
macro ifs{
    rule{
        {$($x {$y...}) ...}
    } => {

        $(if($x){
            $y...
        }) ...
    }
}

//a concise way to define several different functions
macro manyFuncs{
    rule{{$($x ($y...) {$z...}) ...}
    } => {
        $(function $x($y...){
            $z...
        }) ...
    }
}

ifs {
    a{
        b
    }
    c{
        d
    }
}

manyFuncs{
    fullName(firstName, lastName) {
        return firstName + lastName;
    }
    squared(a){
        return a*a;
    }
}

Right now, I'm searching for a parser that can handle ambiguous grammars.

In theory, it would also be possible to create a very concise programming language with implicitly defined parameters:

isDivisibleBy: (foo % bar) == 0
//This is a function with 2 parameters: foo and bar.

isEven: isDivisibleBy(foo, 2)

isOdd: !isEven(param1)

firstCharacter: theString[0]

lastCharacter: theString[theString.length - 1]

firstNCharacters: theString[0:end]

firstCharacterIsLastCharacter: firstCharacter(stringParameter) == lastCharacter(stringParameter)

printEach: for current in anArray{ print current }

http://rosettacode.org/ is one of the most comprehensive programming language references I've ever found.

Optionally-typed programming languages are really awesome: they combine the type safety of languages like Java with the conciseness of languages like Python.

Some cool things that I've made:

Someday, I hope it will be possible to create a programming language that mixes code from different languages into a single file, like this:

Python {
    def foo():
        return "foo"
}
Ruby {
    def bar
        return foo + " was called from Python."
    end
}

Sep
24
awarded  Autobiographer
Apr
14
awarded  Commentator
Apr
14
comment How do I become more agile in shifting between activities?
It can be difficult to focus on a very boring task for more than a couple days, especially when I'm trying to focus on it almost exclusively.
Feb
24
comment Time management strategies for computer science students
It would be useful to find a program or web application that could give daily (or hourly) reminders for deadlines, as well as the number of days remaining until the next deadline. This would make it much easier to manage deadlines.
Feb
24
awarded  Scholar
Feb
24
comment Time management strategies for computer science students
That reminds me of this web-based prioritizer that I wrote: jsfiddle.net/fq3sy/1
Feb
24
accepted Time management strategies for computer science students
Feb
4
comment How to stop vocalization habit in reading
You could try to imagine the words being spoken in your mind, I suppose. :)
Feb
3
awarded  Student
Feb
3
comment Time management strategies for computer science students
Actually, I find it very difficult to focus on anything that isn't related to software development - I need to find a way to regain interest in other activities.
Feb
3
revised Time management strategies for computer science students
added 26 characters in body
Feb
3
comment Is there any multi-platform cloud based Pomodoro application?
Are you referring to a specific program that already exists, or do you want someone to create a program for you (which doesn't exist yet)?
Feb
3
awarded  Editor
Feb
3
revised Time management strategies for computer science students
edited tags
Feb
3
comment Is there any multi-platform cloud based Pomodoro application?
What kind of information do you want to store using the cloud storage client?
Feb
3
comment Time management strategies for computer science students
Perhaps I should try to develop interactive websites about the subjects that I'm trying to study - it would make studying a lot more interesting. I could even try to develop educational video games (as a method of studying), so that I could combine my homework with a hobby that I'm naturally attracted to.
Feb
3
comment Time management strategies for computer science students
Whenever I start working on a homework assignment, I often lose focus quickly, because I often think about procedural terrain generation, fractals, and cellular automata when I'm trying to study something else.
Feb
3
asked Time management strategies for computer science students
Feb
3
awarded  Supporter
Feb
3
comment Is there any multi-platform cloud based Pomodoro application?
You can find a few web-based pomodoro timers here: google.com/…