Profile cover photo
Profile photo
Francisco J. Ballesteros

Francisco J.'s posts

Post has attachment

Post has attachment

Post has shared content
Every 20 years or so, like clockwork, the educational establishment decides computer programming is going to give everyone a job. The first time I saw this in action (not the first time it happened) was very long ago. How long? Quote from that time: "The languages of the future are Fortran and Cobol, which are the languages of the computer."

It was wrong then and it is wrong now. Thankfully, people are starting to figure it out.

Post has attachment
@fjballest: Made the ink editor/shell prettier. The logo and the rainbow feel like the zx spectrum :).


Post has attachment
Clive channels and plumbing
In Clive, we can run eco >[out:ink] to display a web page. Here, eco is Clive's echo , and the redirection at the end is the standard ql (1) syntax to make the standard output channel be the channel named ink. Ql is the Clive's shell. In the...

Post has attachment
Now using Clive's IX to continue development of Clive software. It was nice using Acme so far, let's see how IX feels...


Never thought I'd get a system more powerful than Plan 9. I was wrong. 
Using Clive (see for pointers), I run:

rom ,~*.js > js.go

and I get a single js.go file with a giant map for all .js files under ".".
The ,~*.js means: under "", i.e., under ".", find all files that make true the predicate "~*.js", which
means, "name~*.js", which evaluates Dir["name"] for directory entries and matches against "*.js".

It's one "RPC" sent to the file server, the reply a stream of Dir and []bytes.
No need to issue 10k RPCs to the server.

Post has attachment
Clive's Ink screenshot
We'll write about Ink in the future. It's the Clive UIMS, written in Go (as all other Clive apps) and using a viewer in HTML5/javascript so the browser is the terminal device. IX is the Clive shell (a descendant of Acme, Omero, and O/live) and, using Ink, i...

Post has attachment
Preventing dynamic memory problems in C
When writing C programs that use structures kept in dynamic memory, there are a few techniques that are useful to prevent problems. The ones I mention here are not new, and well written software (e.g, much of Plan 9 from Bell Labs) use them a lot. This post...

Post has attachment
Using build constraints to skip entire hierarchies in go
This is a nice change to let go apply build constraints to prune a hierarchy of packages. After the change, if there is a file skip.go in a package, then the build constraint for the file refers to the entire package and not just to the file. Also, if the p...
Wait while more posts are being loaded