Photo of the author
The Blog of Fourthbit

by @alvatarc - Á. Castro-Castilla

My Time-Management Algorithm for Freelancing, Open-Source Projects and Multiple Other Tasks Simultaneously

I have multiple things going on always at the same time (lecturing, freelancing, open-source projects…). Managing so many types of work becomes daunting quite easily. I’ve always felt unconfortable with the feeling of time-wasting that comes with it. One solution, sometimes the best one, is to focus on one project and finish it, then go for the next one. But this isn’t always possible. So I devised a strategy to handle multiple simultaneous tasks, for when it becomes unavoidable and too complex to handle without a method.

First, lets give a generic name to encompass the concept of projects, jobs, tasks and responsibilities. I’ll call them threads, a computer engineering metaphor, in absence of a better word (you might suggest a better one, English is not my first language).

My methodology consist on 1) classifying threads by a particular logic and 2) running them through an algorithm.

…continue

SchemeSpheres release v0.8: Towards Beta

This release gets SchemeSpheres much closer to its original purpose: serving as a good starting point for rapid application development in Scheme. The changes in this release are pretty big!

  • Improved syntax support, thanks to SCSC (a custom version of PSyntax, by Matt Hastie).
  • Syntax-case is now supported thanks to the new expander.
  • OSX support. This expands currently supported platforms to: Linux, OSX and Android. Next in the list is iOS.
  • Emacs integration of remote debugging facilities.

If you’ve been using SchemeSpheres for your own project, beware that there are some non-backwards compatible changes. The project is still in alpha stage, thus making this sort of changes unavoidable, but is getting close to a beta release.

Happy Hacking!

…continue

Lightweight object systems for Scheme

The Scheme programming language is a minimal one – not brainfuck-like minimal, contrived and obscure, made for entertaining the twisted mind. It is a minimal language in the sense of light and form and in the concept of emergent processes, musical notes, pigments – essential materials or ideas that give birth to forms of art and construction. It is from this idealistic reductionism that my passion for this language stems. The beauty of its essential building blocks feels as the quintessential elements of the digital architecture.

But this comes at a price. Just as clay is not the material of prefabrication, light and form is not the language of mass production. A language of extreme flexibility is not a language for distribution; it’s a language for the individualistic hacker. And if you don’t agree with my digression, well, you can just look at the community. Scheme is a pure language with a very fragmented community. Nevertheless, I believe SchemeSpheres can be a useful project for a number of people and here I bring some new modules that might be useful if you are building software in Scheme.

…continue

SchemeSpheres release v0.7: New Spheres

  • New Sphere: Cairo bindings back to life! (thanks to Francisco Vallarino).
  • New Sphere: Object. Object systems for SchemeSpheres. Check the documentation to see what’s about.
  • Nice improvements and bug fixes to Spheres’ pipeline and tools.
  • More functionality and modules in some of the Spheres.
  • Improvements to the documentation and SchemeSpheres.org.

If you want to try it out follow check out the Quickstart and Installation Guide.

Happy hacking! :)

…continue

The Best Programming Language (or How to Stop Worrying and Love the Code)

EDIT: This post has been translated to Japanese.

Every once in a while, someone, somewhere, decides it’s time to write yet another post on what’s the best programming language, the mighty properties of a forgotten language, or the new language that does it right. So my time has come. Finally, I get to say what I think about programming languages.

First of all, a disclaimer: unless you’ve developed in 30+ languages, and suffered the code of others in all (or most) of them, you can’t really be objective. So yes, I’m biased. Like most of the people writing about this topic. Actually, I believe that this topic becomes absurd as soon as you are well-versed in many languages.

…continue

SchemeSpheres v0.6 release

  • Support for Android.
  • New generators, with Android support: (minimal, remote REPL, SDL OpenGL application with remote inspection/debugging).
  • Fusion/Sake tasks handle Scheme/C/Java avoiding recompilation whenever possible.
  • Full SDL2 bindings.
  • Full OpenGL/ES2 bindings.
  • General improvements to the overall infrastructure and bug fixes.
  • More functionality in several spheres.

If you want to try it out follow these quick instructions (or check out the Quickstart and Installation Guide):

…continue

The end of 2013 brings SchemeSpheres v0.4!

The new pipeline for the Gambit Scheme compiler (featuring modules and dependencies processing, hygienic macro expansion, and library/executable compilation) is ready for Linux. With this new release, we get these (very important) changes:

  • Riaxpander is the new hygienic macro expander. This brings a number of advantages, the most important ones being better macro debugging and better define-macro / syntax-rules interaction.
  • Optional positional and named parameters are now available.
  • Spheres and Sake programs got fully refactored to make them more solid, extensible and maintainable.
  • Sake now accepts extension tasks more naturally, just placing them in the /sake/extensions directory of the Core Sphere.
  • As a consequence, sakefiles got cleaner and unified.
  • Fusion Sphere brings a new minimal generator, plus an improved opengl2d one.

If you want to try it out follow these quick instructions (or check out the Quickstart and Installation Guide):

…continue

SchemeSpheres v0.2 Released

The project, aimed at providing schemers (the species of developer skilled in the art of Scheme) with an infrastructure to build multiplatform apps (Android/iOS/Win/OSX/Linux). Following the concept of “batteries included”, the project releases its 0.2 version, one step more towards the v1.0 release. The main changes in this release are:

  • Much easier installation of SchemeSpheres: download and run one single script.
  • A new program called spheres will take care of installing and uninstalling spheres for you. No more finding Spheres through Github!
  • Various fixes in core functionality, like FFI and Spheres importing.
  • Several fixes in Fabric, Energy, Fusion and String spheres.

Try it out if you want to start hacking right away. And stay tuned for updates! You’ll see pretty awesome stuff very soon, especially if you are into game development in Lisp / Scheme ;).

…continue

Essential CSS positioning

This isn’t 1999 any more. I don’t even remember designing with transparent tables (but I DO remember what a discovery for me this technique was). Yeah, positioning with transparent tables. It was even worse than CSS positioning. It was better to give this job to a WYSIWYG tool (but not many where able to do it properly). No wonder why Macromedia Flash took over the world back then. Not Adobe Flash, but Macromedia Flash. Version 3, to be more precise.

Nowadays nobody really thinks the future is Flash, as the war is probably already won by HTML5, along its pals CSS3 and Javascript. And, most importantly, nobody can expect using transparent tables and avoid summoning the CSS Gods to release their wrath upon the living. It also happens to make sense, technically. So CSS positioning be it.

That said, I think understanding CSS positioning is useful for any developer these days. Even if is just for avoiding the trial-and-error method of setting positions of HTML elements until I get one that works.

Let’s dive in.

…continue