With Pepper or Poison?

Reading Time: 3 minutes

It’s not particularly new trend. The companies have existed for 20-25 years, or more. Some have just begun, yesterday. I’m talking about “all-round IT service companies”. A typical company describes itself as “providing anything related to information technology”, and that is very close to the actual strategy. The older ones have good ties with hardware providers, in fact they have seen hardware shops come and go. The younger ones got sleeker ties and outfit.

How would one go to describe the field? IT outsourcing is technologically wide, but basically it’s about taking care of all the requirements that a client might have regarding work which involves computers, software and networks. From purchasing, installation, maintenance to all the after-sales activities including recycling and data migration. Most IT shops provide the whole palette, perhaps excluding some specialties like servers, or expensive/complex network devices.

They are competiting on a very densely populated minefield. A slight surprise is that even though PC and other technology has completely blown out of proportions what comes to diversity, still in reality there aren’t that many practical solutions. Why? Because systems have to be interconnected with partners’ networks and devices. One can’t choose an arbitrary mix of devices, even though theoretically it could be feasible. In practise – it just doesn’t make sense, costwise.

Every company should have a somewhat unique strategy and an idea of how that will be translated into practical operations.

Good companies really are worth their nickel to the customer. They patch the potholes of the digital road ahead; they chart out unknown territory, apply pressure to possible lazy upstream customer service, serve the tools and some of the trade knowhow in a pleasant way. Good companies do a little extra; they nurse their clients, prevent data catastrophies, and catch anyone who even tries to fall.

Bad ones – well, we’ve seen them: excuses, inaction, bad pricing, next-to criminal policies, communication that doesn’t work, etc. Often it’s the customer driving the B-company with a whip, not the B’s giving positive advise and options to the customer (as it should be). The best a client can get with B’s is an overpriced, medium-quality service. What’s really surprising to me is that the B-segment exists also in the Big Companies world; it’s not limited to SMBs at all. On the other hand also A’s exist within the Big fish.

The interesting fact is that both A and B type of companies probably set out to the voyage with sound principles, vision, and energy. But B-class boys somehow lost their interest, became indifferent and plain greedy. They acknowledged every possibility to milk the cow, and willingly did so. All means accepted: The Jargon Attack; Technology Lock-In; closed source, secrets, obfuscation. If I’d be in a bad mood I’d call these measures manipulation – that close they go.

Big trends in technology are an interesting double-edged sword. A -companies use trends to anticipate future threats, and start building firm structures to serve their customers better. They do research and invest in all the work that goes to fulfilling their scenario. B -companies use trend knowledge to build strangling loops, because they know that for some time now their customers and perhaps even their rival’s customers don’t have a choice but to jump in. It’s like building bridges for a beautiful capricorn running towards a river, vs. building a trap.

I wish I had more to tell you, more than just the experience and gut feeling to help you select well. But perhaps the article has shown some examples that help you in the work of choosing a good partner. Trust in the field – in other people who are also making their selection. Trust in customer testimony (especially when it’s being present in somewhere else than the company’s own media). Unfortunately I think financial figures do not convey much real information about the friendliness and efficiency of a IT outsourcing company. They do have some value though. Seldom a B survives past 10 years, when its angel investor-backed money runs out and scorched customers have already left the boat.

My first BEMER microcirculation massage

Reading Time: 2 minutes
Animation of hemoglobin t-r state transformation
Image via Wikipedia

I had the opportunity to listen to an hour of introduction to a massage device called BEMER. The operating principle is quite simple: non-invasively accelerate the blood cells through using a pulsing magnetic field. Because blood heme (hemoglobin) contains iron (Fe), this is an atom that a magnetic field can exert force on.

The BEMER was invented by scientific and medical research people. The company is based in Liechtenstein.

I’m a raw amateur, but with some understanding of principles of physics, chemistry, and electromagnetism. Thus when I enter any opening ceremony, or private introduction to a new medical apparatus or method, I’m quite interested in how sound principles the mechanism relies on. That doesn’t mean that I would dismiss all “non-western” practises, but it means that I do my best to objectively cover, and avoid full hoaxes.

BEMER seems to be a very valid thing. It is been used in clinical practise, in hospitals, and by professionals who wouldn’t put so much money into some hypothetical thing that wouldn’t work. German court of law awarded the company’s claims a positive

The principle in fact is simple. By using a certain shape of a signal, the device can penetrate tissue into proper depth, and affect the target area. BEMER targets blood flow. Why doesn’t it shake, warm up, or affect non-blood material? Because of the fact that electromagnetism is effective only to substances that have a real or apparent magnetic (di)pole in them. In other words, if a substance is composed of completely symmetrically from atoms, and as we know, an atom has an internal charge of zero, then that kind of matter is not within “reach” for a magnetic field.

What about blood? Why is it affected by a certain type of signal? Blood has as part of its constituent the substance called hemoglobin, which consists of four subunits, each having one single Fe atom (iron) in them. What I believe is that the iron presence is one of the key factors that can be used in order to specifically narrow down the affect of the BEMER signal. Note, I am not a physicists or certified MD, thus this statement above is my best educated guess.

The microcirculation boosting effect does bring changes to tissues connected with the circulation, as there’s more oxygen carried to the tissues. Tissues use oxygen as a central “fuel” to enable their biochemical reactions.  Thus the BEMER therapy is said to have a positive clinical effect via selective microcirculation boosting.

Bloodflow is one the most fundamental aspects of the human body. Principally blood carries oxygen in, and waste products out of the body. The clinical usage scenarios of BEMER are:

  • restoring and enhancing the body’s own immune system
  • accelerate or decelarate bloodflow with “pinpoint accuracy”
  • open microvascular clogs

For further references:

Dr. med R. Klopp (Berlin)

Dr. Wolf A. Kafka

Ubiquity, sir!

Reading Time: 2 minutes

fluffy alter deckPalasin katsomaan, miten Firefoxin leirillä menee. Itse asiassa pitäisi puhua Mozillasta — Mozillahan on ns. 503c non profit, eli voittoa tuottamaton järjestö, jonka kotipaikka on Yhdysvallat. Sen siipien alla on kehitelty standardeihin tarkasti nojaavaa selainta, ja monia muitakin nettikansalaiselle tuikitärkeitä projekteja. Teknologiakelkka etenee anarkistisen epäjärjestyksessä, mutta on poikinut todella mielenkiintoisia tuotteita. Parhaiten maailmalla tunnetaan varmasti www-selain Firefox.

Parasta Firefoxin suunnalla tuntuu olevan lisäosa
Ubiquity, joka on sen eräänlainen sisäinen komentotulkki. Asentamalla tuon palikan Firefoxiin siihen tulee aika voimakkaat ja täysin muokattavat makrot, joita voi ohjelmoida Javascriptilla.

Minä, vannoutunut Chrome-käyttäjä, hämäännyin Ubiquity -hovipalvelijan tarjoamasta elämän helpotuksesta niin paljon, että olen jo toista päivää työskennellyt tulikettu kainalossa. Eipä silti, syyt miksi olen valinnut vakituiseksi selaimeksi Chromen, olivat hienon hienoja: FF vie hieman enemmän resursseja, on käsittääkseni hieman Chromea hitaampi, ja yliheitto 3.x versiokelkasta 4.0 -versioon tiputti taas ikävästi monia lisäosia käytöstä.

Ubiquity on hauska! Se tarjoaa valmiiksi hyödyllistä sisältöä, mahdollisuuden nikkaroida, ja tuntuu luoneen myös asialle dedikoituneen harrastelijaporukan. Teknologia on tosin myös kuulemma hieman yskinyt, ja pysytellyt pitkään kehittäjille tarkoitetussa ohjelmointirajapinnan versiossa 0.5

En tiedä, mutta uskoisin että Ubiquityn lisäosien lähdekritiikissä kannattaa olla tarkkana, koska nuo komentolisäkkeet saavat selaimen sisällä paljon oikeuksia, ja niiden oikeudet eivät pysähdy pelkästään selaimeen; suomeksi, jos laitat vääriä lisäosia, voi olla että virität koneestasi herkullisen zombien tai muuten vain vähennät tietoturvaa. Mutta tämäntyyppinen valinnan vaikeus liittyy nykyään melkein kaikkeen – ainoastaan Apple-kansalaiset voivat tuudittautua väärässä turvallisuudentunteessa.

Näin Ubiquityä käytetään
Pihviin!

Asenna Ubiquity. [Työkalut, Lisäosat, Hae laajennuksia]

Kun se on asennettuna selaimessasi, paina ctrl+space yhtäaikaa. Tämä avaa uuden ikkunan, jossa voit sekä laukoa loitsuja että tutustua teknologiaan. help -komento antaa lisäapuja. Jopa suomenkielisiä apusivuja on kirjoitettu, mikä on todella kiva poikkeus yleensä kovin englanninkielisessä maailmassa.

Lyhimmät omat Ubiquity-komennot ovat vain neljän rivin mittaisia. Tälla saa aikaiseksi ikkunan, jonne tulostetaan rivi tekstiä. Ohjelmien monimutkaisuutta ja voimaa ei sinänsä rajoita mikään. Mozilla-organisaation ympärille on kehittynyt myös paljon hienoja valmiita koodimoduleita, joita voi käyttää hyväkseen.

Idea uusien komentojen lataamiseen on lainattu syötteiden maailmasta: komento voidaan ’tilata’. Komennothan sinänsä ovat pohjimmiltaan vain Javascriptaa, eli tekstitiedostoja. Jos et halua tilata päivityksiä, voit vain kerran ladata uuden komennon.

Tuleepa twiserreltyä enemmän, kun se on helppoa. Painan ctrl+space, ja kirjoitan ‘tw viesti’. Ubiquityn periaatteisiin kuuluu, että se tunnistaa aina lyhyimmästä mahdollisesta tyngästä komennot.

tw Suukko : lähettää twitter viestin

check weather : avaa paikallisen sääsivun selaimen tabiin

check google cal : avaa kalenterin uuteen tabiin

Anatomy of an operating system

Reading Time: 2 minutes

There must have been time, when you most likely would’ve received some major antidotes for talking about operating systems that could fit into a mobile phone. Radio phones used analog technology, and they were like tuned musical instruments, only that these devices operated on a specified band of electromagnetic spectrum.

The early mobile phones were set up at the factory, and then used in unmodified form for their lifetime. The things you could change were ringing tone, and your address book contents.

The phones certainly had no “disk drives”, no code pointer, stack pointer, internal memory, or the kind. At least this is how it looked to the surface – for the end user. The phones indeed had already quite sophisticated operating systems, but they were closed-source and hidden from prying eyes, running stealth within the phone. Just like nowadays you can’t modify the operating system of a washing machine… Because there’s simply no compelling reason.

The OS’s role was to handle things as complicated as multitasking; the early WAP browsers, which were supposed to bring mobile Internet to European countries, probably contained tens of thousands of lines of code.

It would be most interesting to know more about the early history of mobile operating systems. I had a British Psion Revo pocket computer, which had EPOC operating system on it. These little computers were called organizers, or PDA (personal digital assistant). In 1986 Psion released the Organizer II, which marked a milestone in the march of PDAs.

Later on, Palm Computing and many others created a variety of these devices. They almost invariably lacked proper data connectivity, which perhaps made their era shorter.

Without slick network access, you had to use all kinds of docking solutions to wind up the PDA with a PC – and your data would not be synchronized in real time, nor was sending or receiving possible when the user was away from those “PC access points”. It wasn’t very beautiful at all. We were still talking about sales figures like 1 million units per year.

Later on, this EPOC would be the core on top of which Symbian was built. Nokia, in 2001, had produced its flagship communicator 9210 which ran Symbian OS (which was a rename from previous EPOC32). Symbian grew, measured by units shipped. In 2007, there were 126 million units sold by end of March, 2007. Nokia was also active on “non-smart” phones, ie. ordinary mobile phones. It lost focus in the smartphone sector, partially because of the steep learning curve of new programming developers trying to enter Symbian world. In addition, Nokia kept the development environment semi-closed, requiring participants to register for a fee.

Now, years later, in 2011 as Microsoft and Nokia have decided to use Microsoft’s Windows Mobile Phone (WMP) platform as Nokia’s future smartphone operating system, the Symbian was given to a consulting company called Accenture, along with some 3000 developers from Nokia. One good question which has been circulating in media is: What happens to Symbian? And the developers? Even though the sentiment is generally a bit gloomy, we might have surprises along the way. As Finns say; “Älä heitä kirvestä jorpakkoon, vaan tee ilmaveivi.”

Listojen puhdistus, I

Reading Time: 2 minutes
The Turing memorial plaque in Sackville Park
Image via Wikipedia

Alan Mathison Turing oli matemaattinen nero, joka tutki monenlaisia asioita. Parhaiten hänet muistetaan toisen maailmansodan aikaisesta työstä. Turing oli mukana ryhmässä, joka mursi saksalaisten Enigma-salakirjoituslaitteen. Turingin asemapaikkana oli Brittein Government Code and Cypher School.

Turing määritteli tietojenkäsittelytieteeseen keskeisiä termejä ja ongelmia, aika paljon ennen kuin mainstream-tietojenkäsittelyn katsotaan alkaneen 1960-luvulla transistorin ja tietokonetekniikan miniatyrisoitumisen myötä. Tässä on itse asiassa mielenkiintoinen esimerkki siitä, että matematiikkaan perustuvat järjestelmät eivät sinänsä muutu juurikaan ajan saatossa, koska matematiikassa uusien teoreemojen todistuksen julkisuus- ja hyväksymisvaatimuksena on tiukat todistettavuuteen ja universaaliuteen liittyvät ehdot.

Turingin kuuluisimpia “pelejä” tai testejä on Turing-testi. Se testaa koneen kykyä tuottaa matkimalla ihmismäistä käytöstä. Mutta miksi Turingin ongelmat ovat keskeisiä nykyaikana?

Sain käsiini erään projektin myötä valtavan käyttäjätietokannan. Suurin osa noista käyttäjistä on tuulesta temmattuja, tietokoneella tuotettuja. Niiden ainoa tarkoitus on olla aseina sille, joka on tunnukset luonut. Jokainen haamukäyttäjä on kuin tehokas sprayaaja, valmiina töhrimään verkkoon omia jälkiään. Käyttäjiä “animoidaan” koodilla, eli esimerkiksi kymmeniätuhansia käyttäjiä voidaan samanaikaisesti ohjata tekemään asioita alkuperäisen omistajan puolesta. Jäljet johtavat usein juoksuhiekkaan, jos käyttäjän historiaa aletaan tutkia.

Nykyaikaiset blogit ovat monesti kuin käyttöjärjestelmiä: näennäisen helppouden alla on kuitenkin monimutkainen koodi pyörimässä, ja mikäli blogi jätetään päivittämättä, sen koodista löytyy reikiä joita voidaan hyväksikäyttää (exploits).

Blogaajalla on vaihtoehtona valita valmis peti (‘hosted’), jonka tietoturvakin pysyy usein ajantasaisena (koska ylläpitäjä voi kerralla päivittää automaattisesti kaikki vuokraamansa blogit). Toinen vaihtoehto on itse pystyttää serveri, ja tarjota sisältöä omalta tietokoneelta. Tällöin on melkeinpä päivittäin tarkistettava, että serverille on ajettu viimeisimmät turvapäivitykset sisään – tai esimerkiksi jätettävä poiju, joka hälyttää kun uusia päivityksiä on saatavilla.

Miten eroon haamukäyttäjistä?

Fundamentaali ongelma on siis erotella “kasvottomasta” tietokannasta todelliset käyttäjät niistä, jotka eivät oikeasti edusta luonnollista henkilöä. Usein tiedossa on vain käyttäjätunniste, sähköpostiosoite, ja mahdollisesti jotain lisätietoa.

Naiivi lähestymistapa, jos halutaan kuitenkin pitää oikeat käyttäjät elossa, on lähestyä jollain tapaa kaikkia käyttäjiä (koska päälle päin emme voi päätellä juuri mitään). Voisimme filtteröidä pois selkeästi “huonot” käyttäjät, ja sen jälkeen keskustella todennäköisesti aitojen käyttäjien kanssa.

Vastaamattomuus voi muuten riippua monesta asiasta. Kolme tulevat päällimmäisenä mieleen: henkilö matkoilla, henkilö hämääntynyt tarkistusviestistä, tai “henkilö” on botti jonka tekoälyyn ei ole ohjelmoitu vastausta juuri tämän tyyppiseen pyyntöön.

Osan tunnistaa siitä, että ne on raavittu netistä: ei kenenkään oikea sähköpostiosoite voi olla etunimi.sukunimi ät firma.com , koska meillä Suomessa ei asusta Etunimi -nimisiä henkilöitä. Jäljistä näkee hieman spam-bottien filosofiaa ja sielunelämää. Ne löytävät Internetistä erilaisilta sivuilta merkkijonoja, joissa on keskellä @ merkki. Botti ottaa tällaisen talteen, ja jatkaa sivun kahlaamista.

Suorituksen mittaus ja parantaminen

Isoja projekteja ei kannata vetää, jollei niistä voi mitata parametreja. Tässä tapauksessa haluaisimme tutkia, miten onnistunut puhdistus on ollut. Pieni koodinpätkä lienee paikallaan ensin itse työkalun luomiseksi. Ajattelin lähteä ratkaisemaan ongelmaa Pythonilla. Toinen vaihtoehto voisi olla Perl, jossa on nopeat ja hyvät merkkijonojen käsittelyominaisuudet.

Katson vielä tässä vaiheessa netistä, josko valmiita samanlaisia projekteja on olemassa. En usko, että olen ainoa ylläpitäjä jolle rojahtaa iso käyttäjätietokanta täynnä spammaajia.

Teknisesti filtterin luomisessa pieni ongelma on sovittaa letkut lähtöpään tietopankkeihin, eli erilaisiin todellisiin käytössä oleviin käyttäjätietokantoihin. Web-maailmassa näitä on ainakin jokaisella sisällönhallinta-alustalla luultavasti omansa, ja sen lisäksi erilaisilla lista / postitusohjelmilla myös omansa. Koska tiedot vaihtelevat paljonkin riippuen ihan tekniikan luomista rajoitteista siihen, kuinka paljon kukin käyttäjä haluaa antaa itsestään listalle, pitää löytää pienin alijoukko jonka voidaan aina olettaa olevan.

Some-time.. eli, minne viestit matkaavat?

Reading Time: 2 minutes

Onko sosiaalisen median tavoista tullut jo kuin jokin etäinen eliitin protokolla, jota seurataan tietämättä, miksi? En oikeastaan tiedä. SEO eli digitaalisen median (haku)optimointi on sateenkaaritermi, jonka alle mahtuu paljon. Se lupaa tuotteistettuna tuoda oikeat kävijät tiedon juurille, oikeaan aikaan.

Kaikkihan tietävät perussäännöt:

  1. Kirjoita säännöllisesti. Yllätä, mutta älä revittele tylsällä tavalla.
  2. Tutustu lukijoihisi, siis: vuorovaikuta. Yksipuolinen tulitus puuduttaa. Parhaimmat blogit saavat paljon mielenkiintoista palautetta, josta syntyy keskustelua ja uutta tietoa.
  3. Mitä enemmän aidosti vuorovaikutat, sitä innokkaammin ja enemmän blogiasi / muita kanaviasi seurataan.
  4. Originaali sisältö on parempaa kuin muualta kopioitu. Pahimmat anti-esimerkit saattavat jopa hetken aikaa mennä läpi, kunnes lukija huomaa, että kaikki saitin tieto on automatiikalla kopioitu muualta.
  5. Twitterissä kannattaa seurata (“follow”) nimimerkkejä, muttei sellaisia joiden ainoa tarkoitus on päätön massatiittailu ja spämmaily.
‘Tylsä tapa’ riippuu hieman kulttuurista. Itse näen punaista viesteistä, jotka ovat kuin suoraan siitä 10 sekunnin radiospotista, jossa huudetaan täysillä ja väitetään että Kuu on oikeasti punainen, ja sitten kehotetaan käymään webbisaitilla tarkistamassa tämä uskomaton väittämä. Eli sellainen hieman naiivi, mutta tylsän ontto ja studiomainen viesti.
Käsittääkseni monet tähtäävät tiittauksilla kansainvälisille apajille, toisinsanoen de facto kieli on usein englanti. Toisaalta omaa kieltään käyttämällä voi hyvinkin tarkasti kohdistaa viestin vaikka pelkästään suomalaisille (en usko että vielä toistaiseksi kovin moni käyttää automaattista Google Translate -palvelua kääntämään “omituisista” pikkukielialueista viestiä omalle äidinkielelleen).
Vuorokaudessa on 24 tuntia. Erilaisia aktiivisia blogeja ja uutislähteitä on kymmeniä miljoonia. Yksittäinen ihminen jaksaa seurata oikeasti ehkä 10-20 kpl näistä. Monesti omat kirjoittelumme heijastelevat jossain määrin muiden lähteiden sanomaa – aivan kuin kirjailija ammentaa kirjaansa sitä, mitä näkee, kuulee ja haistaa ympärillään.
Olen nyt lähettänyt Twitteriin noin 2200 pikkuviestiä. Niistä ehkäpä 1/4 sisältö liittyy välittömään elämääni, tekemisiini; suhautin kevään ensimmäisen lenkin, kävin uudella paikkakunnalla tutkailemassa luontoa, sain hyviä valokuvia saaliiksi luonnosta, jne.
Suurin osa viesteistä on jollain tavalla kommentoivia, elämään liittyviä yleisiä oivalluksia. Viime aikoina olen alkanut saada jonkinlaista surinaa ja elämää jukkapaulin -twitternimeni ympärille. Se on ollut äärimmäisen kiehtova ilmiö. En nimittäin oikeastaan alussa juurikaan ymmärtänyt, miksi koko juttua tein. Vasta tekemällä oppi, ja jatkamalla pystyy ammentamaan lisää tuntumaa, kehittymään. Teknologia ja yrittäminen pyörii aiheissa usein, ja niinpä seuraajani ovat myös start-up enkeleitä, vanhoja ohjelmoijakollegoita, satunnainen Grateful Deadin jäsen, ja parisataa muuta. Oikeastaan hassua ajatella, miten satunnaisen joukon lopulta tuo media yhdistää.
Sosiaalisella medialla voi olla mahdollista saada noita aiemmin mainitsemiani tarkkoja kampanjoita ja mitattavaa tulosta, mutta en tiedä kuinka moni sellaisesta on kiinnostunut. Some on tietyllä tapaa vasta nousemassa vakiintuneeksi kanavaksi yrityspuolella. En epäile, etteikö se voisi soveltua hyvinkin siihen tarkoitukseen. Mediaa ei vaan kannata ottaa liian ryppyotsaisesti. Media nimittäin, jos joku, on kuin se tarinan pulloon sujautettu filosofin kirjoittama pieni tarina, joka leviää ja kohtaa rantoja, joille se ei ikinä olisi uskonut pääsevänsä.

Valituskeskitin

Reading Time: 2 minutes

Jokainen tuppaa natisemaan ajoittain; autoista, ruoasta, palvelusta. Jollekulle lihapakkauksen muovikuori on liian tiukassa; toiselle sipsien kypsennysaste on väärä. Pikaruokala sattaa olla kaikkea muuta kuin “pika”, jonon venyessä 20 minuutin paremmalle puolelle, jos puikoissa on amatööriporukka ja muutenkin sopivat olosuhteet. Ainahan huonon laadun tunnistaa, ehkä niinkin usein, että otamme sen jo vakiona.

Olemme silti aika kärkkäitä toteamaan, että jokin asia ei mielestämme toimi niinkuin pitäisi.

Mutta: miksi firmat saavat lopulta niin kovin harvoin nämä mielipiteet?

Eli jokin maaginen muuri erottaa tietomme huonosta palvelusta, ja sen, että signaloisimme ulospäin oikeille tahoille tämän tiedon.

Miksi mielipiteet muuttuvat matkan varrella, ja menettävät sen emotionaalisen latauksen, joka kertoisi onko kyseessä todella suuri ongelma vai vain hieman toleranssin ulkopuolella oleva yksityiskohta, joka kärttyisänä päivänä sai meidät astumaan valitusrajan yli? Oliko tuotteen vika tai puute se todellinen ongelma, vai oliko valituskanava keino meille purkaa kaikki senpäiväinen angsti?

Yritykset hyötyisivät valtavasti, jos ne kaappaisivat ja käsittelisivät edes lähelle 80% valituksista. Veikkaan, että nykypäivänä yrityksen johtoporukkaan, tuotekehitykseen ja vastaaviin elintärkeisiin osastoihin osuu korkeintaan joka tuhannes valitus. Tiedän loistoyrityksiä, joiden pinnan alla muhii aikapommi, koska yritys ei reagoi oikeasti aitoon asiakaspalautteeseen millään tavalla. Tällaisten firmojen vihdoin tasatessa punttena markkinoiden kanssa (esim. osakekurssien merkeissä) ja näkemyksiä tosimaailman kanssa niiden antifanittajat työntävät puukkoa haavaan ja kääntävät – monesti.

Sana ‘valitus’ tuo mieleemme usein jotain negatiivista; kulttuuriimme kuuluu tietty stoalaisuus, kovanahkaisuus, turhista asioista kitisemättömyys – ja tämä on perinjuuri haitallista, monella tapaa. Asiat eivät kehity, niin kauan kuin niiden tuotannosta vastaavat tahot eivät saa tarkkaa ja rehellistä palautetta. Niin kauan kun maksamme häpeästä vuosi toisensa jälkeen huonosta palvelusta, tai luemme yksipuolisesti saneltuja toimitusehtoja kuin piru Raamattua, annamme tietämättämme piut paut laadulle. Laadun pahin vihollinen on harmaa keskinkertaisuus – ja usein nykypäivänä: härski ala-arvoisuus.

Mistä valitukset sitten löytää? Aivan vääristä paikoista. Äidit valittavat kaikista käyttämiensä esineiden laatuvioista omilla äitien foorumeillaan. Ei se tieto sieltä koskaan päädy tuotantoon tai laadunvalvontaan. Asioita on turha muhia erilaisissa kuppikuntablogeissa. Valituksille pitäisi saada selkä, avoin, nopea, ja tehokas valituskeskitin. Paikka, josta kuluttaja tietäisi valituksen etenevän välittömästi kohti oikeaa osoitetta. Paikka, jossavalituksen tekemiseen ei liity minkäänlaisia ylimääräisiä kustannuksia.

Keskittimessä voitaisiin todeta nopeasti ja yrityksistä riippumatta, onko jokin tietty tuote selkeästi ongelmallinen. Onhan eri toimialoilla jo blogeja ja arvostelupaikkoja pilvin pimein, mutta siinäpä ongelma onkin: jokaiselle segmentille löytyy omanlaisensa, ja niiden tietojen kerääminen, visualisoiminen ja vertailu on vaikeata. Yksittäinen blogi nimittäin täytyy usein kirjoittaa journalistisella otteella, mikäli haluaa pitää lukijoistaan kiinni.

Firmat puolestaan käyttävät joskus härskejäkin konsteja suojautuakseen todellisilta toimilta. Ne pistävät jonotuksen maksulliseksi; vaikkei sinänsä ole kyse kovin suuresta asiasta, voidaan kuitenkin helposti käsittää, että useat ihmiset jättävät puhelun sikseen. Asiakaspalvelijoita ei ole kovin montaa useinkaan; tällöin syntyy jono, ja kuten aiemmin sanottu, jonosta ihmiset usein tippuvat pois. Myös kaksi asiaa on mainitsemisen arvoisia; valituksen käsittelijä voi käyttää iskunvaimennintaktiikkaa, ja tarjota yksittäiselle kuluttajalle jotain pientä kivaa, jolloin valitus absorboidaan ja varsinaisesti mitään muutosta ei tapahdu. Toinen on se, että yrityksessä ei ole yksinkertaisesti määritelty riittävän tarkasti palautteen keruun käsittelystä, ja tieto pääsee harakoille.

Parhaimmat firmat pitävät jokaista palautetta käsissään kuin kultahippusta. Aito, valehtelematon palaute on todellakin kullan arvoista. Se kertoo, mitä mieltä kuluttaja oli siitä, josta maksoi. Ja epäsuorasti palaute kertoo, aikooko hän maksaa uudestaankin saman firman tuotteista.

Otherworld – getting Linux

Reading Time: 4 minutes
Tux, as originally drawn by Larry Ewing
Image via Wikipedia

Being “on your own”, meaning running the PC environment with Linux only is interesting. It brings about a different kind of challenge, than having a typical corporate Windows environment. The GNU (or Free software foundation) people have brought a huge number of free software to play with.

GNU got started with Richard Stallman, an MIT university hacker extraordinaire, a bit frustrated with the implications that firmware copyright had on system usability. Unix programmers often needed to get ahold of source code for completely legit purposes, namely “making things work”. The world was at that time pretty different from ours, but already it was ridden with the secretive and quite invalidating paradigm of software vendors wanting to always cover their software lock it up as much as possible. This was mostly due to general paranoia – not necessarily so much of real use, but a habit that everyone did.

Stallman wanted to make the computing more sane one. He started writing a very central piece of the Unix world, GCC compiler. It is an advanced and flexible suite of compiler technology, by which follow-up software could be made in a more controlled and powerful manner. Using GCC “the rest” of utilities and applications could be compiled. In fact, one of the best features of it was that GCC could compile to many platforms, not only its native original one.

FSF’s software range from the very core necessary (GCC compiler suite) to scientific simulators, and a lot in between. GNU is a bit like the app industry of mobiles, except that an average GNU program is more complex and less fancy looking. They’re in the class of true utilities. In fact I think so far we as a general population have not yet understood fully the value of this chest of treasures.

Linux is about hacking. It’s about reading. Getting hard answers and a good laughter in your face. And learning. But it’s fun.

For a desktop user, I can recommend you get started with:

  • Pidgin for instant messaging
  • aterm or xterm for terminal working
  • emacs for text editing
  • GIMP for graphic working
  • Apache (www server)
  • openssh suite for secure connections
  • Putty (ssh client)
The above is just a foursome example of what kind of tools you can use. Let’s say that “for everything, there’s a tool”. This is the Unix/Linux philosophy. The open source world is crafting more and more gems, and I cannot think of an area where the free software movement wouldn’t have a solution. To get going, I’ll drop a few lines in the end of this article.
Many people think about total cost of ownership and other parameters, which is fine. In a business world you need some kind of justification often about the decisions. I personally have no idea of the current TCO numbers. I just love Linux, and the way that it has so much to offer. For personal use it’s all the justification I need.

It’s about knowing how your machine behaves; how to install things that enable you to do more. There’s inherent power in the tools. If you don’t like a particular one, usually there are tens of alternatives. And what’s really a treat is that you get them for free. This is one aspect of the FLOSS world: you truly do have the freedom to explore, test, take advantage, grow, and get satisfaction from software.

You have to tolerate a bit of chaos in order to live a happy life in GNU/Linux world. If you are the kind of type who always needs direct command and instructions from somewhere, it might be that this world might scare a bit. But under the surface, there’s plenty of instructions available for newbies. I wouldn’t hesitate to make the step now, 2011 (I made it approximately 1999, running my own RedHat 6.0).

One way to get going easily is test a Live CD version of your favorite Linux. These kinds of distributions make no modifications into your PC: you can test it without any commitment at all. The Live technology expands the Linux runnable code both into your computers working memory, and into the stick, using the latter as a file system (fs). This way the runtime Linux seems like a whole, normal system, but actually it does not touch hard drives nor any other “real” media. You still have every bit of normal Linux functionality, including the ability to install new applications, create files, run programs and so on.

And once you got the media going (a CD, DVD or USB stick), there’s always the option to really install it permanently on your system. Yet even here the Linux offers you courteously two alternatives: all for linux, or install it side-by-side preserving the existing operating system.

You can get a wonderful tool for downloading and burning the image in one go: Unetbootin.

Unetbootin is such wonderful, because it supports “everything on everything”. It is there to help you easily select, download, and burn a bootable ISO (clone of a Linux) into a USB stick. You can the tool itself from a Mac, Win or Linux.

Intro to very first steps on Ubuntu

So, Unetbootin got you a bootable Linux. I’m putting here just a couple of points where you can get into reading and learning. Remember; no need to overdo. Learn as much as feels comfortable. The Linux is almost completely virus-free, though network security is quite essential.

  • Ubuntu Forums
  • kernel.org
The UF contains a Absolute Beginners Talk sections which gives good advice. Read the top-most sticky notes, which are there to guide all participants and ensure more efficient commmunications. By adhering to basic rules you will benefit the whole community and also get answers quicker.

Go. Get. And test! Welcome to the otherworld 🙂

Happy snappy, go short!

Reading Time: < 1 minute
Graph, created in Neato
Image via Wikipedia

Shortest path.

Hmmm? you ask. What’s the man mumbling about this time. Well, shortest path is both a theoretical problem class in computer science, but it’s also a good model to use in measuring mobile phone usability.

Imagine you’ve just taken a wonderful picture of a evening, the sky just before sunset. Your 5 megapixel camera takes accurate images. Why did you take the photo? Well, you can use it as a background image in the phone. You can also download (or, let’s just say send) it to your computer back home. Or you can send it to a social network, photo gallery, or as an email attachment.

The crucial question is:

how, when, does it work? Does it reach the audience? Are you happy?

Simple as that.

How do you do it?

Koodia kapulaan! osa 1

Reading Time: 4 minutes
Blaise Pascal first explained his wager in Pen...
Blaise Pascal first explained his wager in Pensées (1669) (Photo credit: Wikipedia)

Vihdoin vanhallakin välähtää. Yleensä pyrin ahtamaan artikkeliin kamalasti tauhkaa, mutta mietin että nytpä olisi hyvä idea kirjoittaa samaan tahtiin, kun opettelen itse kirjoittamaan koodia Androidille.

Taustana on javaa ja kahvia; sinänsä artikkeli ei tule olemaan kovin teknisesti haastava, vaan enemmänkin joriseva ja mobiilimaailmaa kahlaileva. Toivon, että se innostaa porukkaa tutustumaan oman puhelimensa ohjelmoitavuuteen, ja kenties voi olla jollekulle ponnahduslauta ohjelmoinnin jaloon maailmaan.

Kirjoitan myös hieman puhelinteknologiasta ja verkoista, sikäli kun ymmärrän niitä itse. En ole tämän alan ekspertti, vaan enemmän keskittynyt nimenomaan kirjoittamaan koodia, käyttöliittymiä ja selittämään näitä kahta. Mobiilikoodi on ollut oppimislistalla pitkään, mutta joskus homma on aloitettava. Androidin myötä tulee selkeä Java-rajapinta, joka näyttää hyvin puhtaalta ainakin tällaisen keltanokan silmään.

Artikkelisarja on jaoteltu näin:

  1. osa: “miten ennen kaikki oli paremmin, ja nykyhetken kauhistelu”
  2. kädet taskusta ja ohjelmointityökalujen asennus koneeseen
  3. äh, ei se toiminutkaan?!
  4. No nyt saatiin tulosta!
  5. Mitä kannattaa tutkia taitojen parantamiseksi?

Vanhana ohjelmoijana varmaan kaihtaa helposti monimutkaisen näköisiä sovelluskehitysalustoja. Sitä on aikoinaan tottunut ensin kirjoittamaan lähdekoodin pienellä tehokkaalla editorilla, ja perään kääntämään sorsan valmiiksi ohjelmaksi valonnopealla Borlandin kääntäjällä.

En koskaan oikein jaksanut perehtyä Symbianiin tai muihin mobiilialustoihin; Symbianin dokumentteja vilkaisin, mutta muutamien tuntien pähkäilyn jälkeen olin edelleen tuskastuttavasti lähtökuopissa ja silmissäni vilisi käsittääkseni noin 7-8 eri kehitystyökalun pakkopulla… joten jätin sen kesken.

Palm-koodaus oli joskus mielessä, mutta aika ajoi ohi. Omistin ylpeänä Psion Revo taskutietokoneen vuoden 2000 kieppeillä, ja näpyttelin sitä aina bussimatkoilla Otaniemen ja Espoon Piilaakson välillä. 🙂 Nuo PDA-laitteethan eivät (yleensä) olleet vakiona verkoissa, tosin osan niistä sai käyttämään erilaisia kommunikointimuotoja jos jaksoi hikoilla ja jumpata tekniikkaa.

Toki 1990-luvun omat projektit tosiaankin olivat aivan erilaisia. Tein suurinpiirtein 400-500 ohjelmaa huvikseni tietokoneille. Alustoina olivat pienet kotitietokoneet ja PC; yleensä kielivalintana Pascal + assembler. Ohjelmat löytyvät vieläkin kovalevyltä, ja niihin on joskus tosi kiehtovaa palata – katsomaan, miten silloin ajatteli, miten koodasi, ja erityisesti myös: miten suuri merkitys oli tiimiytymisellä, ideoiden jakamisella kavereiden kesken ja yhteisillä koodisessioilla.

Olimme tavallaan “agile” jo silloin 1990-luvun alkupuolella, 13-15 -kesäisinä teineinä. Juomat olivat tutut: kahvi, Cokis ja vesi.

Välillä mentiin konekieleen, tai pamauteltiin suoraan muistipaikkoihin bittejä heksaeditorilla. Joskus käyttöjärjestelmä loogisesti näytti ohjelmoijakokelaalle, mitä tapahtuu kun annetaan vääriin kohtiin sähköshokkeja – sehän kaatui suorilta jaloilta. Ei muuta kuin bootti, ja takaisin kokeilemaan.

Androidissa olen huomannut yhden merkittävän piirteen: ohjelmien ajonaikainen koodi+muistinkäyttö on yllättävän pientä. Osa ohjelmista on vain muutaman 10 Kilotavun, joka on todella pientä tämäntyyppisessä maailmassa. Tietenkin isoimmat ovat 10 megatavun luokkaa. Yleensä mobiiliohjelmia on nimenomaan vaivannut se paradoksi, että ne ovat kuin elefantit syrjäkylän antiikkiliikkeessä. Kun rajoitteet ovat olleet pahimmat, koodi on ollut aika bloattia.

Tuonaikaisten PC:eiden käynnistymisaika oli kovalevyjen markkinoilletulon jälkeen erittäin hyvä – sitten myöhemmin graafisten käyttöjärjestelmien kompleksisuuden myötä ajat venyivät; ja kohta ne taas trimmautuvat, kun Googlen käyttöjärjestelmää alkaa olla saatavilla kera SSD-muistin.

Jokaisen mobiilialustan periaatteet ovat oikeastaan aika samanlaiset. Tosin iPhone:n IOS:stä en ole saanut kokemusta. Mutta olettaisin että seuraavanlaista sielläkin on:

  • rauta = sensorit (kamera, kiihtyvyys), prosessori, muisti
  • mahdollisesti eriytetty kriittisten prosessien käyttöjärjestelmä
  • varsinainen käyttäjätason “vapaa” käyttöjärjestelmä, jossa saa melskata ja kirjoitella jätkänshakkiohjelmia
Koska käyttöjärjestelmä on nykypuhelimissa jo varsin kehittynyt ja vapaasti ohjelmoitava, kannattaa huomata, että sitä myös vaivaavat klassisten käyttöjärjestelmien tietoturvaongelmat – ja tukku uusia, jotka liittyvät lähinnä hieman arvaamattomampien tilanteiden esiintymiseen (puhelin kulkee taskussa mukana tuntemattomiin ympäristöihin) ja mm. siihen, että hankala haittaohjelma voi tuottaa päänsäryn lisäksi isoja puhelinlaskuja.

Kuten tietokone, myös puhelin on käytännössä arkkitehtuuriltaan kuin pieni tietokone. Eikä enää niin pienikään. Nykyisissä älypuhelimissa pörrää jo lähelle 1 GHz:n nopeuksiset prosessorit. Androidissani (ZTE Blade Android2.2) on 700 MHz prossu. Se tuntuu toimivan yllättävän hyvin, ja kaikkialla käyttöliittymä on siedettävän jouhea.

Mobiilikäyttöjärjestelmiä on itse asiassa kymmeniä, mutta joudun keskittymään artikkelissa periaatteessa Google Androidiin ja hitusen pystyn avaamaan myös Symbianin historiaa.

Puhelimissa on niinikään PC-maailmaa mallintaen myös esimerkiksi näytönohjain, eli pääprosessorilta otetaan grafiikan luomisen ja päivityksen taakka pois ja annetaan erikoistuneen grafiikkaprosessorin hoitaa homma näpsäkästi.

Klassisesti aivan alkuaikojen puhelimet olivat hyvin suljettuja järjestelmiä, joihin pystyi korkeintaan vääntämään muutaman bitin haluamakseen jollain erikoisohjelmalla (esimerkiksi puhelimen ikonit saattoi piirtää pikseli kerrallaan, tai apuohjelmalla pystyi PC:llä luomaan omia soittoääniä). Joka tapauksessa tällöin oltiin vielä kaukana nykyisestä avoimesta arkkitehtuurista.

Puhelimen suunnittelijan kannalta haasteellista itse asiassa on keskeytykset. Keskeytyksiä tapahtuu, kun puhelimen prosessori saa signaalin ulkoisesta tapahtumasta: sisääntuleva soitto, saapuva tekstiviesti, mahdollisesti myös tukiaseman vaihtuminen toiseen; oleellista on, että käyttöjärjestelmän koodi käsittelee keskeytyksen hyvin nopeasti – tai tarkemmin sanottuna, ottaa sen käsittelyyn. Nimittäin jos tämä koppi jää tekemättä, voi esimerkiksi puhelu jäädä kuulematta, tai muuta – eihän se kuolemanvakavaa ole, mutta vastannee nyt kuitenkin suurinpiirtein samaa kuin catwalk-mallin kompastelu maahan.

Perinteisesti keskeytysten käsittelyssä on kaksi strategiaa: se voidaan kokonaan nakittaa ulkopuoliselle raudalle (prosessorille), tai keskeytykset otetaan prioriteettijonoon ja niitä pyöritetään resurssien ja tarpeiden mukaan yhdellä prosessorilla. Joka tapauksessa myös useamman prosessorin mallissa pääprosessorin pitää jollain tapaa tietää mitä ulkomaailmassa tapahtuu, joten kommunikointi on tarpeen.

Keskeytysten yhteydessä voit törmätä termiin IRQ – interrupt request. Nämä ovat “nimitauluja”, itse asiassa vektoreita eli laskeutumisosoitteita. Osoitteen päästä löytyy sopiva rutiini, joka käsittelee kunkin keskeytyksen. En ala sekoittaa tässä yhteydessä kertomalla keskeytysten ketjutuksesta; se on tarpeetonta. Idea siis on: IRQ on osoite koodiin, joka suoritetaan kun kyseisen keskeytyksen tyyppinen tapahtuma laukeaa.

Tukiasemat ovat mobiilikielellä MSS eli Mobile switching station. Sinänsä niissä ei ole mitään mystistä, verrattuna muuhun radiotekniikkaan.

Karkeistaen voidaan sanoa, että MSS on pidemmän kantaman langaton verkko, jonka ylläpitopuolella on hieman järeämpää teknologiaa kuin kodin langattomissa verkoissa.

MSS pitää rekisteriä puhelimien sijainnista, laskutuksista ja muusta tällaisesta operaattorin kannalta olennaisesta. Tukiasemiin liittyy myös mobiilimaailman salaisuus: vain tukiaseman ja puhelimen välinen tietoliikenne on yleensä langatonta; sen jälkeen data viedään ihan normaalisti nopeissa kuituyhteyksissä sinne, missä toisen (vastapuolen) puhelin sijaitsee – ja taas radioteitse puhelimeen. Eli puhelinteknologia yhdistää tietoliikenteessään suvereenisti langatonta ja perinteistä tekniikkaa.