my things

Sunday, April 30, 2017

Flashlight Tuning

Some time ago, I got a G700 zoomable flashlight. I've been very happy with it; however, thinking back on a scout flashlight that I used to have way-back-when, some improvements could be thought of:

  • Color filters
  • Morse code sending
  • Dimming
Now, my old scout light didn't have any dimming, and the G700 has some; three stages, full-bright, and two steps of brightness below that. These are cycled so that the first full depression of the butt cap switch turns the light on; subsequent strokes of the switch cycle the modes, in the order of full - less - least (and then strobe - SOS - back to full). Now, pushing and pulling on the emitter hood (the part of the flashlight usually furthest away from the holder) applies the zoom. I would really like the hood to be turnable along the light's body axis, as well - actually, it turns, but what I'd like is for this turning action to function as a dimmer. I don't understand much about electronics, but seeing how there are already discrete dimming steps, some kind of Pulse Width Modulation is likely to already be at play, no? So, what remains to be added are electronics similar to a camera's focus ring, to control said PWM dimming.
Another thing, adaptable from a camera, that would be a great addition to an already neat flashlight would be a half-depressible button: such that, when pushed half-way, it would turn on the light, but turn it off again when released; then, as the light currently functions, when pushed all the way, the light would remain on. Kind of like some cameras, where you can push half-way for autofocus, and all the way for shutter release. This would yield a true Morse-capable flashlight: it kind of seems backwards that I could Morse to my heart's content with my scout's flashlight, but can only set this modern torch to a preset SOS pattern (the way it worked in this scout light was that you could push the switch for momentary light, then turn it for persistent light).
Well, seeing as modifying the dimming, or the butt cap button were beyond my skill level, I decided to at least add color filters and a way to Morse, albeit in a hacky, workaround kind of way.
So, with the help of my friend spiikki, we modelled a ring with blender to fit the hood of the flashlight, into which I drilled some dimples at the 5w hacklab. This, combined with a filter, allows for a snap-on filter, in this case red.

The next step would have been to make a hinged shutter for this same mount using the filter ring as a base, but unfortunately, I lost the flashlight that had these modifications. I've since gotten a new one, but this one hasn't been modified, at least not yet.

Wednesday, November 30, 2016

Daily Dharma

To pass on the gift of Dharma, I developed a Twitter bot that tweets one verse from the Dhammapada Dharma Store each day. The source code is on Github.
Effective awk Programming was a great help while I developed my first awk program, to weed out verses too long to be tweets.
Dhammapada is available for free on Project Gutenberg, or on Amazon.
Whatever way you discover Dharma, it is like finding priceless jewels on your path.

Tuesday, September 6, 2016

Language learning

I just came across a nifty little script for the awesome mpv media player. I made a slight improvement to it: multiple language support, seeing as I always like to have subtitles, in case I can't make out a word, and because I find that having subtitles in a language you're learning, provided the audio is in a language you can understand, is a great way to keep in practice.
Here are some other resources I have used in learning new (human) languages:
  • Duolingo
    • Very nice interactive language training, free!
  • Free Rice
    • Best for building a vocabulary, this site has many subjects besides languages, and also works like the Hunger Site, in that your clicks give food to those suffering from starvation.
  • CouchSurfing
    • The way to learn to speak a living language is to converse. Having guests over, or visiting people in areas with other languages, is a great way to make that happen.
  • ConversationExchange
    • A neat way to find foreign-language pen-pals, this site lets you lists languages you know, those you'd like to learn, and will do the match-making for you.
  • Bookmooch
    • Another way to learn is to read in the language you're learning. Bookmooch will help you find books to read, especially if the language you're trying to learn is english - which most of the books on offer are in.

Saturday, August 27, 2016

Sea Initiation

I did not write "Sea Christening", as it has unwanted christian connotations. In fact, in finnish, this ritual is something like "wettening"; and that amply describes mine. Sea water spray, obviously.
I've been sailing for a few years, but so far, only sweet waters. That changed.
I sailed with the sailing galleon Albanus from Turku to Mariehamn. Thanks to Suomen Nuorisopurjehtijat for organizing this trip, and to the captain and crew for making it happen!
From there, the adventure continued, and began in earnest when I got a message from the captain of the sailing yacht Gust. We met in Godby, and from there, set out for Örö, where Snupu was to have a sailing date on the coming weekend.
Along the way, fair sailing weather turned to a storm. Gust kissed... then again. The sea is a harsh lover, so the kisses were with rocks. The bow of this plywood boat split. As I write this, it is in the very hospitable marina of Seglinge.
There are treasures along this route. We saw two rainbows, one very broad.
As Gust is now in dire need of assistance, donations  are more than welcome! Read more on the Gust blog. There are also two separate wishlists available, for those who are pondering how much to give, and to what end the money will go:

Of course, direct material donations are very appreciated, as well!

My photo gallery.

Here are some more photos from the voyage of Albanus: 
I ran out of money on this trip. When this happened, I went to Heavenly Senses in the Sittkoff Gallery to get a "Anti-Stress" incense, to ease and to help me think on how to sort this situation out. It turned out I was 5 cents short. I explained that I needed this incense specifically to balance out my monetary woes, and that I had given the sales attendant my last coins. She was very understanding, and let me have it without a further word.
I spent the last of my dough on attaining Nirvana, and on Mercedes' Chocolates to accompany it.
Pride was ongoing. I couldn't afford a flag. Pride goeth before a fall... in love, I should hope.

Sunday, August 21, 2016

Liberty in Software

Give me liberty, give me death, or give me liberty in death.

I just now put up a small improvement to a Python program that I made.  It made me think of something I think of almost daily: how great free software truly is.
The program linked to comes from now-deceased Crunchbang Linux (it has continuations), which is the distro I installed on my netbook when I got it from a friend. Eric S. Raymond, a man I respect and otherwise hold to a high esteem, recommends Ubuntu. I wouldn't - why? Because Ubuntu is derived from Debian (as is Crunchbang), but is not binary-compatible with Debian. So, for a general-purpose, reliable & mature (just celebrated its 23rd birthday) OS, I'd recommend Debian. If I were to install for myself, now, I'd probably choose Kali, another Debian derivative - just because of all the tools that come pre-installed. Doesn't really matter what distro you choose; but, unless you are already running a free/libre OS, or have pressing reasons not to, please, do choose one. You can always change later (my path has been Red Hat > Ubuntu > Crunchbang > Debian).

Thursday, June 23, 2016

War as a Tool

Recently, something I read got me fired up, so I put down some of this stuff.
Scarcity of the impose variety - everything for us, deluxe top notch, nothing... oh.... I mean crumbs to them; that's trickle-down, and that's the ruling economic principle. So all you get down-river from our toxic plant is worse poisons than the shit that people gasp at, that goes in the Ganges, that people can actually bathe in and feel refreshed instead of acid-burnt, like our tetra-fuckumups or whatever you didn't learn to fear in chemistry class due to budget cuts?
Dow chemical and friends are not to be feared, unless you're the enemy "du jour", an Indian piece of collateral damage or some slant-eyed Indo-China gook, fuck those people you've never met, not like you'll get a napalm strike in your back yard as long as you stay on our good side, and we don't do it by accident, like those few nuclear bombs our flyboys have accidentally dropped on our soil, to date. See, the fact that they didn't detonate just proves manifest destiny, and that the big dude upstairs is on our side. Just ignore the fact that in one instance, at least three redundancy safe-guards failed simultaneously. It's not like that could be construed as any kind of warning; you're reading too much into stuff, go back to sleep and be a good citizen. Not like there's any danger if your infallible leadership is wrong; besides, to err is human, and have those people shown much humanity in their actions? Thought so.
Oh hey, did you hear? They finally got the eternal war machine in the teeth of the war crimes tribunal! Turns out, every serviceperson's justification was the same: the order came from on high. I guess they we're successful in washing out personal ethics and morality from those folk in basic training, and then the superceding principle of "your responsibility is to turn down and refuse immoral orders" became what it really is: word rattle.
But guess what? They went up the chain all the way to the top: the commander-in-chief, the head honcho with the big hat. The answer was still the same! Well whoop-de-doo, I guess we were a theocrary all this time! It was God's work, so it's their responsibility - not the people's, 'cos have you seen any real power in those voices that cry harshly far into the night, begging for their children's safety overseas? Nah, man!
Well, past attempts to bring God to justice have been less than successful, so it looks like the system is fool-proof. Keep those wheels turning, and keep them well-lubricated, with blood for oil. More meat for the grinder! At least we got us our hamburger... hill. Who'd dare to throw a wrench into the works of such a wretched, yet functioning machine? You might get hurt by shrapnel, unlike on those no-knock guns-blasting warrantless searches that gunslingers get to go on. I mean, there's gotta be a reason they call the sight on that carbine "ACOG", right?
Of course, anyone willing to look behind the curtain will see a wizened banker family named Rothschild pulling the strings, not God, but who'd care to see the true face of our rulers? Just obey.
 “If my sons didn't want war, there wouldn't be any” -- Gutle Schnaper Rothschild
"Ours is not to wonder why, ours is but to do, or die." - Military motto 
Well, my measly country of five million is no better (although not engaged in plundering resource wars abroad currently; more like peacekeeping). The politicos cut welfare, education, research, medicine, infrastructure, but those are just too common for them to care about; common stuff is for commoners. It's a much more hefty power trip to spend 10 billion €uros on weapons to maim "those other folk", meaning anybody's child but yours, and on a persistent atmosphere of high-tension terror. Keeping the herds fearful? Priceless!
Oh yeah, words like "mine scare" and "persistent horror effect" are surely not terrorist parlance - if it's the Defense Minister talking! Source criticism, or lack thereof, huh? Sounds like an exploitation of trust with regards to source, but then, no-one seems to mind day-to-day exploitation of their very beings; their bodies turned to work for scraps of food, so that they'll work another day; their emotions played on, like an orangutang might play the harp.
Be glad there's currently no draft, so that there's less of a visible protest against sending young-uns off to kill, wound, harm and die for the fat cats' interests of the day, and for their entertainment. In here, there's a "weapons duty", ie. conscription. If you're born into a certain type of body, that is. There's also a full-time Equality Minister, who got grilled about the fact that only males have to serve in the armed forces (or else). She made the reply that yeah there's inequality there, because if a woman wants to serve voluntarily, she must pay for her own entry medical examination. The questioner was stunned to silence, the minister went on with her life and didn't fix even this problem that she herself recognized and voiced.
Now, there's been a wider recognition of the blaringly obvious in-your-face fact that the law "you must grab a weapon and serve. If you are male. Unless you are a Jehova's Witness, or unless you live in a certain island that's been granted an autonomous status, being the right to decide for yourself" just might be less that egalitarian. Well, the suggested fix by one of the current ruling parties, the third-largest such political entity in Finland right now, was to make women fall under the same mandatory conscription. So yeah, if you see the need to take a fork in the road, of course it's possible to go full-steam in the wrong direction.
Unofficially, you see, it's been the recognize state of affairs that's even been said aloud by some in political discourse: a woman is already duty-bound, and that duty is to make babies, 'cos a man can't. But two women can (for real, these days). Women make 'em, men destroy 'em. Shakti-Shiva. Ok, checks out, but I don't agree with turning a woman's body into a state's baby factory. Of course, there's no legislation to force them to do so, so I guess it wan't really a comparable situation to begin with, now was it?

Friday, June 17, 2016

Webhack 2016

This week, I participated in Solita Webhack, an information security event where we got to try our hacking hand at real-world web applications. I'm under a Non-Disclosure Agreement about the specifics, but fun was had and some holes were poked. The timing was great, as I've been studying the Web Application Hacker's Handbook, which helped me uncover a lead on a potential vulnerability relating to session cookies. I even picked a physical lock while I was there!

Saturday, May 21, 2016

War Against the World

Recently, certain theocratic groups have been a constant source of news. It is my view that politics and religious fanaticism do not mix well at all.
Even in "liberal" Finland, there's been statements such as "the government has gotten its mission from God", and that God is to be feared. It follows that the government's mission is a fearsome one; and that much would seem to be true. Be that as it may, it looks like the powers that be have shed their pretense of being empowered representatives of the people, and elected instead to answer to a "higher calling" (other than the Christian Party, which has always been like that, I suppose).
In fact, on close inspection, a lot of finnish society is influenced by christian theism - and many would like to keep it that way (eg. certain songs being sung at school). There is also no separation of church and state, here: a few christian sects have the prerogative of collecting tax, and are formally supported by the state apparatus. Even the flag has a cross on it, by jiminy!
Here is a video production that plays with some of these themes.

It was originally meant for the Wild compo at the aptly named JumaLAN 2016 (Jumalan = of God). Unfortunately, I was unable to book edit times for the last parts before the party, so I sat on it for a while and now released it at Simulaatio 7, where it got disqualified. The name is from a series called Black Sails that deals with piracy in the West Indies. My political standing is firmly anarchist, but I've voted Pirate in the past.
An effect in the video, I'm sure you can tell which one, is a re-hash of pakkoruotsi by HTeL. Here's the video capture of that:

It is a protest demo against mandatory swedish education. Christendom came to Finland from Sweden by way of the sword, so I think the placement of this demo within my work is apt. But, rather than take the path of the aggressor and follow the finnish adage "what would remove evil if not evil?", I think we should adapt to this teaching of the Master, the One-well-gone, Buddha:
putting away all unkindness to sentient beings, he abstains from destroying life. He lays aside the cudgel and sword and, full of humility and pity, he is compassionate and kind to all creatures that have life
(emphasis mine)
And, thus, we come to the main themes of this productions, which are the overt and covert symbols of violence in our society. I, for one, feel a decrease, not an increase, in security, when armed thugs and neo-nazi paramilitary forces on patrol cross my path.

Wednesday, March 30, 2016

Old Memes are Old

I was recently trying a USB thermal printer, and I wanted to test the improved image handling in python-escpos, courtesy of my friend Zouppen. First of all, do not buy this printer. The print quality is extremely shoddy; I get a rorschachuesque splotch when I try to print a solid-black block.
So anyway, I needed a vertically long image to test, and what is long? Longcat is long. I usually scoff at meme propagation, but what the hey. So, here is a longcat generator. Base image by some fine dude on an imageboard somewhere. And here's the result:
The code is forkable on Github. Essentially, it's missing a "save stitched image file as..." button. I printed the image as PDF, then used ImageMagick to convert the file to GIF (understood by the printer).

Wednesday, March 16, 2016

Instanssi 2016

As long as I learned about them, I have liked Lissajous curves and related curves, along with their automated creating apparatus, such as Spirographs and Guilloché patterns.
I participated remotely in Instanssi 2016 with a quick Processing entry. It placed #3/3. I had scribbled together something resembling a classic Amiga effect, known as shadebobs, but it ran sub-1 frame per second on my netbook. So, to get a video capture out of it, and to support the event, I entered it in the compo at Instanssi. It was accepted into the "Pikkiriikkinen demo"/Intro competition, with the size only including the source file, which could've been squeezed down even more by making all the variable names single characters, but I couldn't be bothered. The standalone Linux application exported from Processing is ~4.3 MB, and even this needs the Java Runtime Environment, so the admittance into the Intro category is sketchy (geddit?), but then, the border between an intro and the environment always has been.
Anyway, turns out the effect is slow even on proper machines, so enjoy this still image of an effect that was meant to be animated.

Wednesday, February 3, 2016


On 26.1.2016, I took part in a hacker conference, I was there as a speaker, which made me quite nervous, and, in fact, caused me to forget to mention a tidbit about how Burp Suite can be set to automatically update the content-length header of requests modified at the proxy. The presentation is available on Github. Here's a video recording:

All in all, it was a great time! I might have also shown some interesting Shodan  searches (product:mongodb and some webcam searches come to mind), but oh well.
There were interesting presentations and workshops. Sadly, I missed out on the traffic analysis workshop, but I got a +1 to lockpicking, which is a great hobby! There are practice locks and lockpicks available on and AliExpress. It's a great feeling when things finally "click" and the lock yields.
I've been focusing on information security, lately, eg. by taking a course on Coursera, which is a great, free-as-in-beer learning platform. And speaking of "free as in beer", I was approached by a recruiter from a certain major finnish software vendor at the event! I thought I would finally make myself useful in the working life after some years of unemployment, when he promised that "you're already hired, you can start on Monday!". We shook hands, twice, and I even got him to buy me a beer to seal the deal. So there's the segue.
However, the following Monday, the email I got was far more reserved. He asked me to submit a formal application, including my résumé, which I did. Then, some days of agitated waiting later, he got back to me with "yeah, we're really looking for someone in the Helsinki region" (whereas I'm based in Tampere). Even though we'd discussed this at the event, and he'd promised that the company would take care of finding me an apartment (I would've been willing to relocate)!
Well, I guess I'll just continue my studies and FLOSS efforts in "noble poverty". At least I got a beer out of it!

Monday, July 20, 2015

Some fabric designs

So I've added a new site, Spoonflower to the About me - sites section. There's a couple of fabric designs available, there. I'm also looking for work in this area - probably on a per-design basis.
The basis for the other design is one that I drew freehand some time ago, and now traced in Inkscape. There is a losslessly zoomable SVG version online.

Sunday, June 14, 2015

Graffathon 2015

This past weekend, I took part in Graffathon, a three-day hackathon.

This demo (link has binaries/source) was made during the time of the party. It placed #25/32. The idea for it was to make a simple "memento mori" type of thing. We shall all melt away, like the skulls shown. I am skeleton jelly.
The music is by my friend, tzaeru. A later, more finished version of the song is available. The effect is a recreation of one from Doom, while the graphical assets were from VectorFree:
It uses a meter analysis tool by Wavesum for sync data. Syncs could have been improved a lot, but I gave up on this as I was unable to work on the prod on my own computer.
Releasing this made me realise I had not updated here about another HTeL production that I was a part of. The theme here is doing more with less - ironic, as the new demo plagiarizes an effect that the 386s of Doom's time had no trouble with, and yet it completely exhausts my Samsung N145 Plus (Intel Atom N455 1.66 GHz). It's likely that I just can't code - time, indeed, to "upgrade my software", ie. thinking.

These days, everything, up to and including thinking, is becoming increasingly controlled. Just recently, a german was the victim of a police operation because she is a holocaust skeptic. Even in my native Finland, there have been outcries for laws against holocaust denialism. The fact that both of these cases deal with holocaust skepticism is purely accidental, by the way.
In any case, HTeL, as I see it, stands against this kind of infringement on our freedom of expression, with no internal quality control and an open joining process. Indeed, within our small sub-culture, it has elicited a very similar response to the skeptics mentioned above - to wit, a quote from the demoscene:
can someone ban this nazi scum please
As a funny aside, while editing this blog post on the bus, I got the message "The site you requested ( has been blocked". It seems the automated algorithms we employ to sanitize our information feeds are not as infallible as we'd like... or maybe my writings are more dissident than I've thought! Well, this blog ought to make it to a few more blacklists as I publicly and unequivocally deny the Holocaust. That's right, I'm now going on record stating that the Holocaust never happened. No such events took place. It was all made up.
There, now ask yourself: is my saying this a threat to democracy? Should it be a criminal offense? A string of words with a particular meaning? What if I'd denied the moon landing, instead?

Friday, June 5, 2015

Assembly 2003

Recently, a friend mentioned that old Assembly competition entries might be available from the compo crew. So, I emailed them and found out an old demo of mine for the TI-86 is, indeed, available and online!
This demo was not qualified to be shown on the big screen at Assembly 2003's Mobile Demo competition. Sadly, the binaries were lost long ago, but here is the recording of it:

I made this demo with TI Basic, directly on the device (while at school...).

Saturday, May 23, 2015

Simulaatio 2015

This weekend, I participated in the awesome Simulaatio 6 demoparty. Here is my contribution to the short wild competition (max. 45 second running time):
It's the spiritual successor to yyyy yy yyyy (ff fff ffff). The music is by my friend zax. Of the binary releases above, Linux 64 bit is what I developed on, and is the only one verified as working (by me and another user). If you try the builds for other platforms, let me know.
I drew inspiration from WOWGREAT, a cool blog that features abstract, geometric art, often done with Processing. I wanted it to show two ideas: a field recording soundtrack and a graphical style of painter's algorithm without canvas clearing. I thought there were too few productions where the buffer is not cleared every frame. It makes for a neat effect, reminiscent of classics, such as shadebobs. Different blending of the elements would be a possible avenue of development.
It placed #4 out of 12 in the compo.