A diff will tell you what changed, but only the commit message can properly tell you why.
[S]amaan aikaan kun muu maailma on havahtunut Edward Snowdenin paljastusten myötä elektronisen massavalvonnan perus- ja ihmisoikeusongelmiin, Suomi kulkee vastavirtaan: Meillä muutetaan perustuslakia, jottei ainakaan se muodostuisi vastaavan valvonnan esteeksi.
Shorts
A shoe is a shoe is a shoe, but isn’t
17:31
This is a story about a man and a pair of shoes. A pair of shoes, that at the time of purchase seemed to the man like any other ordinary pair of shoes. Little did he know, what kind of adventures the shoes would lead the man into, or the depths their relationship would eventually reach.
Mein Name Ist Parker
Our story begins in Berlin, more specifically in the Mephisto Shoes store on Kurfürstendamm, in the part of the German capital known as Charlottenburg, some time in the early 2010’s. Our hero picks up a pair of Mephisto Allrounder Parker shoes. Because they look and feel nice.
Today, years later, these same shoes are still our hero’s most favourite shoes in the whole world. His greatest fear, each time he wears them, is that they will break, and he can wear them no longer. Thus he seldom wears them, to keep them from falling apart, which is sad, because the effect is the same as them having fallen apart: our hero is shoeless.
As the picture maybe shows, despite its mediocrity, the shoes are well-worn, having accompanied our hero for many, many miles in several countries. They have attended many parties, and been the sole of nights in bars on many occasions. They are also the shoe of choice when a pair of conveniently packable shoes is called for. Their compact size really makes them ideal for the purpose.
One of our hero’s greatest regrets in life is not buying several pairs of these shoes when he had the chance.
Dwindling Quality
Fast forward some years, until 2013 to be exact, and several pairs of Allrounder shoes. Our hero is once more shopping for shoes, and to his delight has spotted a very near revival of his favourite shoe. This time, not wanting to repeat his earlier mistake, our hero buys two pairs at once.
And the shoes are good! They are nearly as conveniently sized as his all-time favourite, just as comfortable, and they even look pleasant to the eye. Sadly, neither of the two pairs is no longer with our hero.
The first pair suffered a torn seam almost immediately and was returned to the factory for a check up, never to be seen again, to our hero’s great disappointment. Being wiser, when a shoe in the second pair tore a seam, our hero took it to his local cobbler for repair. And the cobbler did a good job and the shoes were whole again, as was our hero.
As the picture maybe shows, despite its mediocrity, as time went on, our hero became good friends with his local cobbler, due to his frequent visits when seam after seam eventually let go in his near-all-time-favourite shoes. Eventually, to our hero’s great dismay, this unfortunate pair of shoes suffered a tear which rendered them irreparable.
Once more our hero was left caring for his only pair of his all-time favourite pair of shoes.
A Big Mistake
Despite having suffered great disappointment, our hero, being the loyal kind, still decided to invest yet once more into a pair of Allrounder shoes. After all, they had in general given more pleasure than caused displeasure.
This time, however, he decided to try a pair which weren’t all leather. As is customary when buying shoes, he bought a pair that were just a bit not-quite-but-very-nearly comfortable. The adage being shoes should be worn comfortable, not bought. This decision would haunt our hero later on, when after tens and tens of agonising hours later, the pair of shoes are still undistinguishable from medieval instruments of torture.
As the picture maybe shows, despite its mediocrity, the shoes are still looking nearly as new. Our hero believes this is not likely to change any time soon, as wearing them is not likely to inspire loving verse and song for a long time.
The Bane of Constant Renewal
It’s understandable that shoemakers feel the need to constantly create new designs, even our hero can understand the sentiment, but he still feels it is ridiculous: The Parker was already perfect, and improving perfection can only result in an inferior outcome. Instead it should have been made a staple, a permanent model.
If there is a moral to this story, it is to act when you have the opportunity. Like everything else in this world, opportunities are by nature fleeting, and you might not have another one.
In the end our hero was lucky. Living in the internet age, he found a pair of correct size Allrounder Parkers for sale in a far-away land.
Yhden projektin epilogi
20:20
Vuoden kestänyt kokeilu on päättymässä. Kun heinäkuun alkupuolella justnyt.fi-domain vanhenee, en näillä näkymin ole sitä uusimassa. Vaikka vastaanotto oli alussa varovaisen innokas, osoittautui se kuitenkin lopulta laimeaksi.
Vaikka olen tietysti harmissani, olinhan itse kovin kiintynyt ajatukseen mikä sai koodikynän viuhumaan, niin en lopulta kuitenkaan koe menettäneeni mitään. Oikeastaan päinvastoin, sillä ryhdyinhän vastoin normaalien toimintatapojeni vastaisesti ajatuksesta tekoihin ja toteutin ideani, sen sijaan, että olisin jättänyt sen haaveilun asteelle.
Kiitos kaikille projektiin osallistuneille. Vielä on aikaa jäädä historiaan justnytin viimeisenä kuraattorina.
URLs Need Due Diligence
11:25
Considering how central the URL (Uniform Resource Locator) is to the World Wide Web, it should really be blatantly obvious that it needs proper attention during the design process of any new website. It’s not always easy, and I for one have certainly at times been guilty of poor URL design, but making changes later can be a tall mountain to climb.
bq.. URL Design is a complex subject. I can’t say there are any “right” solutions — it’s much like the rest of design. There’s good URL design, there’s bad URL design, and there’s everything in between — it’s subjective.
What I especially liked in the article is the notion that URLs are for humans. SEO is useful, not the least because it employs a whole industry, but really the human you’re trying to attract to your website should always be at the centre. But all other things aside, the absolute most important attribute about a URL, is and always has been is that it works, and that it keeps on working.
bq.. What makes a cool URI?
A cool URI is one which does not change.
What sorts of URI change?
URIs don’t change: people change them.
Having revisited older posts in this blog, it’s unfortunate to see so many dead external links. Luckily there are projects like the Internet Archive that make internet archaeology possible.
So do the internet a favour: keep your URLs alive, and donate to the Internet Archive project to mitigate the consequences of dying URLs.
Suru laskeutui Blogilistan kotikadulle …taas
22:13
Vuosia kestäneen suhteen päivät on nyt luetut. Nimittäin Blogilista tiedotti tänään pistävänsä pillit pussiin kesäkuun alusta.
Lienen viimeisiä Blogilistaa aktiivisesti vielä käyttäviä. En osaa varsinaisesti sanoa miksi edelleen listaa käytän, mutta uskollisesti palaan suosikkilistaani katsomaan lähes päivittän.
Lopetuksen syistä ei ole julkisuudessa puhuttu. En voi uskoa että käyttökustannukset ovat niin suuret, että palvelu sen takia ajettaisiin alas. Viime aikoina palvelu on tosin kärsinyt jonkinasteisesta spam-ongelmasta uusien blogien listassa, joten kenties kehitystarpeet ja niiden kustannukset painoivat vaakakupin armokuoleman puolelle.
Itse käytin Blogilistaa jo silloin kun se vielä tunnettiin nimellä Päivän Pamaus, tämäkin blogi on listalta löytynyt vuodesta 2006. Sami kertaa hieman historiaa postauksessaan Blogilistalla uusi omistaja.
Blogilistalla on vaiheikas historia. Se sai alkunsa “Päivän Pamaus” nimellä Pinserin sivupalkista vähän Pinserin syntymisen jälkeen vuonna 2002. Aluksi Riitan ja minun tarkoituksena oli kerätä itseämme varten muistilistaa suomalaisista blogeista, mutta lista laajeni nopeasti niin isoksi, että aloin rakennella sen ympärille erilaisia aputoimintoja. Suosikeiksi merkitseminen ja päivitystarkistukset helpottivat blogien seuraamista ja vähän kerrassaan monet muutkin bloggaajat alkoivat käyttää listaa.
Kiinnostuneena Blogilistaa ja sen kehittymistä on käsitelty tässäkin blogissa usean postauksen verran.
Blogistanian kultakaudella Blogilistan “kilpailijoita” tuli ja meni. Nyt yksikään niistä (mitä blogini arkistoista löysin) ei ole enää hengissä. Myös oma JustNyt!-viritykseni tehnee laimeahkon vastaanoton takia dodolle seuraa sekin, kun seuraavan kerran täytyy kaivaa kuvetta.
Kovasti kiitos kuluneista vuosista, toivottavasti joku täyttää suomalaiseen blogiskeneen syntyvän aukon.
Leikekirjaani otin tänään kuvakaappauksen blogini lisätietosivusta. Se ehtii päivittyä vielä yhden kerran.
Shorts
That thing in your pocket used to fill a large room just a few decades ago — Computers, who knew…
Sujuvampaa kirjautumista mobiilissa
12:15
PA bloggaa mobiilisovelluksien sisäänkirjautumispoluista: Älä kompastu kynnykseen – 30 vinkkiä mobiilin sisäänkirjautumispolun suunnitteluun.
Vaikka juttu onkin suuntautunut natiiveihin sovelluksiin, on lähes kaikki käyttötapaukset sovellettavissa myös verkossa.
Host aliases and tab completion for SSH
13:02
Despite being a relentless tinkerer, for some bizarre reason instead of using the proper mechanics I’ve resorted to aliases for hosts I log in to frequently. Thankfully, the mental strain of remembering all the hosts I log in to finally forced me to sit down for 2 minutes and add the host + username combinations into my ssh-config
. (Procrastination is such a beautiful word!)
<code>Host freq
HostName some.long.hostname.that.i.need.frequently.com
User mysysadminassignedmethis</code>
Configuration blocks like the example above shorten the full command to ssh freq
from ssh mysysadminassignedmethis@some.long.hostname.that.i.need.frequently.com
. Quite an improvement, I’m sure you’ll agree.
However, since I did a proper job, naming things in a logical and consistent manner using patterns such as servicename-stg
for the staging environment and servicename-prod
for the corresponding live host, there was still quite a lot of typing to do. If you saw my post about tab completion for project folders you can probably guess where this is going.
As I now have all the relevant information in ~/.ssh/config
it’s very easy to parse out a helpful wordlist to create ssh tab completion. I have it and now you can have it, too.
Download ssh-complete.bash, source it from your ~/.bashrc
and simply
There are plenty of other useful things you can set in your ssh-config. See its man page for further information.
Shorts
“Stand Still. Stay Silent” is a post apocalyptic webcomic with elements from nordic mythology mixed in, set 90 years in the future. Contains plenty of friendship, exploration adventure and some horror.
A blast from the past: Is JavaScript Here To Stay?
Differential Syncing
16:57
For a personal project, I looked into the magical world of how to sync work from two or more peers on a single item, without anyone losing their work.
Thankfully, Neil Fraser has published a paper on Diff Strategies, Fuzzy Patching, and indeed Differential Synchronization. Even more thankfully, Google has open sourced a diff-match-patch library (ported to several popular programming languages) that does all the heavy lifting for you.
Most likely my personal project will never be finished to a point where it would be made public, but since I found this stuff interesting, I just thought I’d put this out there for others to enjoy.
Blogi on kuollut, kauan eläköön blogi!
16:14
Kun kahdeksan vuotta sitten muutin Helsinkiin, blogiskene oli suomessa voimissaan. Huippuaikaa kesti kai muutaman hienon ja miitintäyteisen vuoden, jonka jälkeen iski ähky ja inflaatio. Blogeja alkoi syntyä enemmän kuin koskaan, mutta laadukas sisältö muuttui entistä vaikeammin löydettäväksi.
Siitä se ajatus heräsi, kun lomallelähtökaljaa olin ryystämässä. Kun heinäsuovasta on niin kovin vaikeaa löytää neulaa, kenties kädestä pitävä opas olisi vastaus.
Inspiroituneena kasasin kesäloman aikana JustNytin. Palvelua on nyt beta-testattu parisen viikkoa ja toimii riittävän hyvin noustakseen varjoista.
Jos innostuit, lähde mukaan: levitä sanaa, ilmoittaudu kuraattoriksi.
Better tools for procrastination
14:20
I have a problem: the internet. Or rather the vast amount of interesting content being published versus the time and energy I have to consume it. I’ll read an article here, bookmark an article there, but mostly I just open stuff in tabs in order to “read them later.” And I know I’m not alone.
Currently, I have too many bookmarks to count both locally and in various cloud services, but more importantly around 80 tabs across 9 windows open. More importantly because those tabs and windows each use up a chunk of the finite RAM memory in my computer. As a result of this my computer almost constantly feels sluggish.
Now, I know the right course of action would be to address my behaviour. But who does the right thing?
In lieu of improving my judgment on what’s truly worth my time and attention, I instead found a tool to help me with the immediate symptom: The Great Suspender.
The Great Suspender suspends a tab after a set timeout, unless it matches a white list, or on demand. Individual tabs or all tabs in a window can later be restored as needed.
What I really need is a plugin that will simply close unattended tabs after a period of time. Because, even though I really do revisit some of those postponed articles, many are just waiting to be bookmarked and forgotten about forever. Perhaps I’ll add it to my ever growing list of hobby projects…
Meta
Subscribe to feeds
Pages
Latest Posts
- Overland from Finland to London: Epilogue
- Overland from Finland to London: Days 3 and 4
- Overland from Finland to London: Day 2
- Overland from Finland to London: Day 1
- Overland from London to Finland: Day 5
- Overland from London to Finland: Day 4
- Overland from London to Finland: Day 3
- Overland from London to Finland: Day 2
- Overland from London to Finland: The Beginning
- The day the .dev gTLD died
Latest comments
- nikc on Managing scrollTop in your Backbone single-page app: Richard, you’re right, you can store...
- Richard Hunter on Managing scrollTop in your Backbone single-page app: Unfortunately, pop state wont help you...
- nikc on Managing scrollTop in your Backbone single-page app: Richard, Thank you. You’re right, scroll position...
- Richard Hunter on Managing scrollTop in your Backbone single-page app: This is a clever solution- however...
- llaurén on Better tools for procrastination: Yer welcome!
- nikc on Better tools for procrastination: Well, after evaluating both, I find...
- nikc on Better tools for procrastination: Having taken a closer look at...
- nikc on Better tools for procrastination: One Tab looks nice, too. But...
- llaurén on Better tools for procrastination: Nice catch! I use One Tab to...
- nikc on How to turn your smartphone (nearly) useless in one simple step: Wow, I’d love for the EU...