20100727

International Contest of Seamanship @ Midland, ON, Canada


Why the photos are so few? Heck, I cannot shoot.
Videos coming soon?

20100720

lvalue tip

while — very unfortunately — this

irb(main):042:0> x,y=0,0
=> [0, 0]
irb(main):044:0> if nil then x else y end = 1
SyntaxError: compile error
(irb):44: syntax error, unexpected '=', expecting $end
if nil then x else y end = 1
                          ^
    from (irb):44
    from :0
does not work, this
irb(main):048:0> x,y=[],[]
=> [[], []]
irb(main):049:0> if nil then x else y end << 1
=> [1]
irb(main):050:0> x
=> []
irb(main):051:0> y
=> [1]
performs nicely.

i know the difference, but it's still controversial to me.

20100411

dead code is nothing compared to zombie code!

20100117

priority-posteriority

As I'm conceiving the next generation ass-kicking artefact-based task management system, I have to make a statement on so-called task priority.

One can argue about the variety of psychological models on the subject, but to me, there's no such thing as task priority in the real world.
A task – sooner or later – is being done or discarded, or better, it starts consuming resources right from its definition, and those resources are real, the time spent is real.
That's why, the only questions how (= when + how much) those resources are spent.
Thus, the most natural thing to do is to define a period of time this task can "wait" – until the next action.

So I propose always to use time-to-action as the basic measure of task precedence.

Of course, deadlines, dependencies, schedule and resource constraints might be additional parameters to the planning equation, but even that basic attribute on each of your tasks is good enough to answer the core question "What in the bloody hell should I be doing right now?"

20091205

test report - embedding bzipped tar in a bash script (with uuencode)

Just a quick note on the cunning technique used in the making of tag_test.sh.

The utility's both data store and main interface is file system - which makes it easy to think of diff'ing directory trees (actual to golden) as a means to test the former.

Now, I would generate a golden test directory tree, test it manually all I want, tar-bzip2 it, and uuencode the data for pasting as an in-place redirection block (<<EOF) - which is fed to uudecode and untar in the script, of course.
And I'd also repeat this operation for every test I wanted to perform.

The resulting bash code is rather fatty, but it is totally self-contained.

tag: the bash utility's major update

Although I have properly realised the truly versatile filesystem-based tagging-enabled environment is much further away than I originally thought, I've updated my simple bash mini-utility, and it is now as useful as ever. I've even creatively wrote some tests for it.
Dowload/Clone Here

p.s. Some thoughts on the ideal filesystem interface left out for a while.

20090909

bash contexts


in your ~/.bashrc and any .bashrc's in your working directories
— for context-(cwd)-specific bash sessions!

20090804

simple (bash) file tagging utility

444 lines of pure bash tagging goodness!

Usage: tag OPTIONS FILENAME [TAG ...]
- tag FILENAME with the TAGs (if none, list current tags on FILENAME)
untag OPTIONS FILENAME [TAG ...]
- remove TAGs (or ALL if none specified) from FILENAME and list removed

(currently, you need some aliases to make this work)

This is a very raw (alpha, hehe) version of my new invention, but it works: I can tag and I can untag, and I can browse tags in my (unix) filesystem.

It has plenty of info inside, so please take your time and look at it.

Comments are much more than welcome.

p.s. In no particular order:
p.p.s. UPD!

20090719

in-cwd web serving

I've come across a simple need to serve some (static) files temporarily, for the development. I didn't find anything on the surface for this purpose, though the need may be quite common, hence the note.
The obvious choice for the server is lighttpd, and the scripting goes along the lines of lighthere.sh.

If anyone is aware of another known-good solution, please share.

20090604

programming as an evolutionary advantage

It might just happen that the ability to program – spanning informational pattern recognition through behaviour formalisation – is the next woman's skill along the line of the commonly accepted ones, in our information-driven civilisation.
The human brain processing capacity – acknowledged evolutionary advantage of our species – will most probably not increase any time soon, but rather re-utilised by outsourcing particular activities to individually programmable computer systems.
What this might do to our culture – I can only guess. Let's not live in denial then, my hopes are for good.

Some related, but practical stuff of mine coming soon.

20090531

A Guiding Tagline

I find it reasonable to label content (speaking of British of course) with a word or two in the plural — for common objects, and use the singulars just for proper names (while appropriate casing is in order). The use of 'ing'ed verbs is also welcome since it reduces the confusion from noun homonyms.
Semantic systems of the future are nowhere but in a reach.

20090529

Sinatra is really good just for one-filers.

p.s. But merb's flat app is pretty much in its diapers, and they're not fresh clean.