Smokes your problems, coughs fresh air.

Author: Rowan Rodrik (Page 2 of 25)

My day job is at YTEC, where I build tailor-made software ("maatwerk software") for clients in logistics, healthcare and printing.

I like my day job, but I would like it even more to not have (and need!) a day job, which is why I built, an index of job offers for people looking for temporary work abroad. We feature job offers in many countries. Whether you want to polish your Spanish by working in Costa Rica or working in Honduras, or whether you rather go grape picking in France, we may have wat you're looking for.

Which context does the circumflex accent (^) refer to in BULL?

  • ^ refers to the last step left in the superpath, never to a step right. (In the A4 notes below, in red, I seem to disagree with what I say here.)
  • [^] refers to the superpath’s imprint, [^^] to the super-superpath’s imprint, etc. Referring to a superpath’s imprint from within a subpath is only possible if the subpath’s imprint isn’t included in the superpath’s—that is: the subpath shouldn’t preceed \\ or be preceded by //.
  • [[^]] refers to the superpath as a whole, [[^^]] to the super-superpath, etc.

My A4 notebook (p. 23) also bears witness to complicated thoughts and conflicting insights (in red) about what the ^ symbol should and should not refer to.

BULL TiddlyWiki

At some point, I started condensing some paper and digital notes into a TiddlyWiki, which seemed like an appropriate tool for a personal project. Looking at the timestamp (July 26 of 2013), this choice doesn’t make sense, because at that time I had already started this blog and discovered the joy of indexical knowledge management based on links between temporal blurbs (as within a blog) rather than links between named blurbs (as within a wiki). I guess it had everything to do with wanting the execution of the BULL idea to be perfect before daring to share. It’s definitely time to get over that.

The BULL TiddlyWiki.

BULL progress and stagnation

At work yesterday, during lunch, I started a lengthy discussion that stretched out long beyond the boundaries of regular lunch hours. The discussion topic was my surprise that IT practices—particularly programming methodologies—hadn’t changed much, if at all, between my leaving the industry in 2007 and re-entering the industry in 2015. My surprise wasn’t a rethorical technique; my unpreparedness for this lack of change has lost me a long-running bet with Wiebe around 2007, when we stopped being colleagues for about 8 years. The content of that bet was as follows: I predicted that in 10 years time—now—computer science would have sufficiently evolved so that software would behave intelligently. In fact, I didn’t believe that AI would have emerged by now, but I did expect software architecture to have changed in such a fundamental way that computers would at least have behaved intelligent, even if they weren’t self-taught and self-learning.

I was doubly wrong when I entered the bet with Wiebe: software systems are messier and more difficult to change than they were 10 years ago, and special purpose, self-learning AIs are obsoleting humans even in such areas as driving cars. So, was I fundamentally wrong in thinking that a different type of software would be possible? Should I simply wait for AI to take over my job as a programmer and obsolete these concerns?

I don’t know. I do know that if AI doesn’t make my job obsolete (any time soon), I no longer believe that anybody else is going to make my job obsolete. And I really do believe that my job—the functions that I perform during the majority of my working hours—ought to be obsolete. But, since I can’t seem to convince anybody of this fact, I should suck up my pride and shame and start sharing what I’ve come up so far.

The notes that I’ve made the last few years aren’t as disjointed and messy as they were when I wrote my previous—and first—post about BULL. Here are some of the better-looking notes, from my A4 notebook:

BULL notes – A4 notebook p. 18

BULL notes – A4 notebook p. 19

BULL notes – A4 notebook p. 20

BULL notes – A4 notebook p. 21

BULL notes – A4 notebook p. 22

BULL notes – A4 notebook p. 23

BULL notes – A4 notebook p. 24

BULL notes – A4 notebook p. 25

Meanwhile, yesterday, while I should have been clocking work time, I’ve been condensing some of the threads in my head into a in a newly published GitHub repository. This morning, I also rebased my latest half-assed attempt at a formal EBFN grammar and a parser in C++ to that same repository.

Epson XP-630 cartridges

Our printer is an Epson XP-630, courtesy of Marilisa’s parents who gifted it to us when we moved into our new place together. Suitable ink comes in the following multipacks:

  • C13T33374510 (24.4 ml),
  • C13T33574510 (47.0 ml),
  • C13T33374010 (24.4 ml), and
  • C13T33574010 (47.0 ml).

I ordered a supposedly compatible multipack (“Epson 33XL multipack zwart en kleur”) through for our first cartridge replacement (which has been due since Marilisa’s trip to India about half a year ago).

The decade-old posts bug

I just noticed that none of my posts older than a decade could be listed:

The culprit was in the following function, where I had to add "century" and "10" to the lists of $periods and $lengths respectively.

function bigsmoke_ago($timestamp_gmt)                                                    
  $difference = current_time('timestamp', true) - $timestamp_gmt;                        
  $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
  $lengths = array("60","60","24","7","4.35","12","10");                                 
  for($j = 0; $difference >= $lengths[$j]; $j++)                                         
    $difference /= $lengths[$j];                                                         
  $difference = round($difference);                                                      
  if($difference != 1) $periods[$j].= "s";                                               
  $text = "$difference $periods[$j] ago";                                                
  if ($j < 3) {                                                                          
    $current_day = date('j', current_time('timestamp', true));                           
    $arg_day = date('j', $timestamp_gmt);                                                
    $relative_day = ($current_day == $arg_day ? 'today' : 'yesterday');
    $text = "$relative_day, $text";                                                      
  return $text;                                                                          

While add it, I also got rid of the useless Google ads.

Plus, I improved the link text replacement for posts without comments and commenting turned off.

The terrible state of my tech

It’s a bit pathethic how well I have been taking care of my own tech. ever since I started studying. What’s worse: this haven’t improved when I stopped my studies for other ventures. I think the reason for this is exceedingly simple: I don’t like to do work-like things I don’t write about; luckily, I love to structure my goals in writing, and this blog still hasn’t completely collapsed under my neglect.

If I love writing about stuff I do, have I simply not done anything in the past few years? Well, I’ve done things. I’ve even written about them too, in other places, mostly on paper. It’s just that, dispite working for a tech company for the last couple of years, I have done hardly a thing about ridding myself of my private technical debt. Or is it because of working at a tech company, where I’m hard at work fighting technical debts in Python/Django projects and documenting the progress in Redmine?

I won’t mention the reasons why I want to spend time on this weird, hodgy-podgy blog again. Let me just say that the main motivation is not guilt for having created a technical debt. And the actual reasons are better suited for other posts at another time.

Domain Problem Short-term fix Mid-term fix Long-term fix Spam ✔ 2017-07-18 Disable comments and ping/trackbacks on new posts.
2017-07-18 Disable comments and ping/trackbacks on old posts.
2017-07-19 Remove spam.
Security Upgrade WordPress svn:external Automatically upgrade WordPress Non-responsive Make responsive
Outdated 2018-10-28 Reduce and update content
* Huge hosting costs Find sinkhole between my NFSN accounts 2019-01-26Move to cheapsolid VM host (TransIP? Tilaa) Security Move personal posts to and replace with redirects
Replace blog with static rendering of blog
opschoot Wheezy fan Replace or re-attach fan.
Neglected backups Backup monitoring: opschoot should register itself when online and I should then be nagged if I don’t backup.
butler Legacy Move files somewhere else (public?)

Recent posts on the YTEC blog

Ytec, where I work since July 31 2015, is an IT company specializing in customer-specific custom software (“klantspecifieke maatwerk software“). Somewhere in late 2015, YTEC deployed a fancy new website based on React, which, to my surprise, is actually indexed somewhat decently by Google. Still, I want to be able to find my own posts on the YTEC blog when I filter by “”, which is why I’m listing my posts there here:

  1. I contributed on a post about developing apps with React Native. Later, I might post some more about the pros and cons of using regular React in combination with Django.
  2. I wrote a post about the advantages of snapshot isolation, which was prompted by my being annoyed with all the problems caused by the Exact Globe ERP not supporting snapshot isolation for MS SQL Server.
« Older posts Newer posts »

© 2022 BigSmoke

Theme by Anders NorenUp ↑