Sivut

tiistai 1. joulukuuta 2020

Stretchly break time reminder

Asensin kaikille työkoneille Stretchly break time reminder sovelluksen. Taukoaikojen muistuttajan. Sovelluksen ruutu hyppää silmille aina määrävälein: 10s lyhyt tauko puolen tunnin välein ja pidempi 2min tauko aina tunnin välein. Ruudulla annetaan ohjeita siitä, mitä tauon aikana tulisi tehdä. Esimerkiksi nouse ylös ja käy juomassa lasi vettä.

Taukojen pituutta voi säätää ja voihan tauon tietysti ohittaa, mutta siitä muistuttaja vain yltyy muistuttamaan lisää. Yritin ensin hakkeroida ohjelmaa, mutta se osoittautui hankalaksi (on hyvin kirjoitettua koodia). Mitä se sitten hyödyttäisi?

Voihan olla, että tässäkin on kyseessä lumevaikutus, mutta luulen, että tämä taukojen pitäminen on parantanut omaa tehoani ja mielen kuntoa.

Kuva 1) 2min tauko, Kuva 2) 10s tauko. 




Linux FTP Timeout

Linux FTP-ohjelma heittäytyy huvittavaksi.

ftp> ls
421 Timeout - try typing a little faster next time

No, aikakatkaisu on säädettävissä, mutta ei sitä viitsi äärettömäksi laittaa.
Turvallisuuden vuoksi.


perjantai 30. lokakuuta 2020

Ohjelmointia opetellessa

Muuttokuormasta löytyy myös palanen historiaa. Kaiken krääsän ja piirikorttien seasta löytyi kolme ohjelmointiopasta, joilla olen joskus aloittanut.

 
1) Nova Extend Basic. Vuonna 1977 aloitin Mikkeli Teknillisessä Oppilaitoksessa (MTOL) opiskelun. Jo alussa matematiikan kurssiin kuului Basic kielen opinnot. Tämän kirjan esipuheessa sanotaan: "Tulevaisuudessa henkilökohtaisten tietokoneiden hinnat tulevat laskemaan, jopa alle 300 000 markan.
Oikeassa oli Pekka Markkula.
 
 
2) Tämä Basic opas kuuluu jo 1980 luvulle ja Commodore PET 8050 koneeseen. Sen esipuheessa puolestaa todetaan: "Mikään vaatimaton kieli ei Basic silti ole, sillä sen avulla voidaan yksinkertaisella tavalla ratkaista hyvinkin monimutkaisia tehtäviä ja ohjata jopa teollisuuslaitosta." 
Jälleen oli kirjoittaja oikeassa.
 

 
3) Vuonna 1989 olen näköjään siirtynyt C-kieleen. Alkusanoissa todetaan: "C-kieli on yleiskäyttöinen ohjelmointikieli, jossa yhdistyvät korkean tason ja koneläheisen ohjelmointikielen ominaisuudet ja sillä voidaan tehdä tehokkaita ohjelmia erilaisiin laiteympäristöihin.
Hmmm ... Niinhän se taisi olla.
 
 

 

 

 

Tietoturvaa

 

Vanha fraasi: olenhan minäkin ... ! Nyt puhutaan tietoturvasta. 
 
Minä luen tietoturvaan paljon enemmän kuin "123456" tai muut tyhmät salasanat. Tietoturvalla tarkoitan myös tietojen varmistuksia. Ja vielä pidemmälle: myös varmistusten palautuksia ja sen testaamista. Kun jotakin sattuu, niin ollaanko varmoja, että tietojen palautus onnistuu?
 
Yksityisten henkilöiden tietoturvasta olen ollut vain huolissaan ja ilmaissut huoleni heille. Mutta yritysten (pienten ja suurten) tietoturvaan olen tarjonnut ratkaisua. Yhtään kauppaa ei ole tullut, koska se olisi maksanut ehkä liikaa. Minä(kään) en tarjonnut tietoturvan palvelua ilmaiseksi.
 
Vaikka tietojen varmistus olisi hoidettu tavalla tai toisella, niin onko koskaan testattu sitä, että toimiiko tietojen palautus. Varmistukseen käytettyjen laitteiden asennuksen jälkeen ovat järjestelmät saattaneet muuttua, eikä vanhan varmistusmenetelmän palautus enää toimi.
 
Silloin sanotaan kuten Pohjanmaalla: Siinä sitä sitten ollaan, kipiän lehemän kanssa!

tiistai 29. syyskuuta 2020

Linux päivitykset

 

Kun seuraa Linux'in päivityksiä, niin välillä on mukava tarkistaa, että mitä tietokoneessa oikein tapahtuu. Tämä on mahdollista Linux'in ohjesivujen kautta (manuaalit, man-pages).

Esimerkiksi tänään aamulla tuli kaksi päivitystä. Yksi deja-dup palveluun ja toinen cifs-utils palveluun. Nämä englanninkieliset termit löytyvät ohjesivuilta suomennettuna. 
 
* Déjá Dup on suomenkielinen yksinkertainen varmuuskopiointiohjelma. Se on yhdistetty osaksi Linux työpöytää. Se osaa varmuuskopioida tiedostot kansioista, ohittaa tiedostoja, salata, purkaa salauksia ja säännöllisin väliajoin varmuuskopioida automaattisesti. Se osaa myös käyttää pilvipalveluita, kuten Amazon S3:a. Myös USB-kovalevyjä voi käyttää.
 
* SAMBA on IBM:n ja Microsoftin kehittämä hajautettu levyjärjestelmä. Tunnettu myös nimellä CIFS (engl. Common Internet File System). Tämä mahdollistaa yli 2 GB tiedostojen tuen ja Unicode-tiedostonimet (ääkköset ja öökköset) Windows'ille ja Linux'ille. Protokollasta on avoimen lähdekoodin toteutus Unix-kaltaisille käyttöjärjestelmille (cifs-utils).

Sosiaalisen median ohjelmointikielet

Kuinka väärässä voikaan vanha nörtti olla!

Toki Facebook selaimen asiakasohjelma (Front-end) on kirjoitettu JavaScript-kielellä, kuten melkein kaikki muutkin sosiaalisen median palvelut (Twitter, Wikipedia, Yahoo, WordPress). Mutta taustalla (Back-end) toimii LAMP-palvelin [ Linux, Apache, MySQL(MariaDB), PHP ]. Tai ainakin toimi vielä 2012. Vieläpä Facebook'in itse koodaama ja virittämä versio [ Hack, PHP, Python, C++, Java, Erlang, D, XHP, Haskell ]

Lähde: https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites


perjantai 28. elokuuta 2020

Testaamisen sietämätön keveys

 Joudun säännöllisen epäsäännöllisesti testaamaan kaikki hengentuotteeni erilaisilla järjestelmillä. Testit täytyy tehdä erilaisilla käyttöjärjestelmillä (Windows 7/8/10, MacOS ja Linux), erilaisilla laitteilla (PC, Laptop, Mobiilit) sekä erilaisilla selaimilla (ja niitähän riittää). Vaikka kehitystyö ja käyttö tehdäänkin internetissä, niin ohjelman käyttäytyminen asiakkaan laitteella riippuu noista kaikista tekijöistä. Osa toiminnoista kun on sidottu järjestelmään, eikä siihen pääse kehittäjä vaikuttamaan. Vielä 1990-luvulla piti "vain" tietää, että millaiseen Windows versioon ohjelma tullaan asentamaan. Nykyaika ei ole tuonut tähän ainakaan helpotusta. Etenkin mobiililaitteet ovat tyhjentäneet hiukset päästä. Tässä eräänä päivänä (nyt) ajattelin testata erästä tuotetta vanhassa Windows 7 ja 8.1 koneessa. Huomasin kyllä, että selain oli toki päivittynyt uudempaan versioon (IE 11.x). Mutta sitä en muistanut, että kuinka hankalaa on Windows 7 koneelle kertoa, että WiFi verkon reititin ja salasana ovat vaihtuneet. Se vai haluaa itse ratkaista verkon ongelmat, eikä päästä käyttäjää väliin. Kun tein saman testin uudemmalla Windows 10 koneella, niin se oli jo sujuvampaa. Win 10 osasi kysyä WiFi verkon salasanaa kun vanhalla ei enää päässyt verkkoon.

Tästä satunnainen lukija huomaa, että minulla saattaa olla useampi tietokone käytössä. Oikeassa on hän. Nopeasti laskettuna niitä on kaikkiaan kahdeksan (8) erilaista. Kaikissa hieman erilainen järjestelmä. Onneksi suurin osa laitteista on hankittu kierrätyksestä.

Tykkää
Kommentti
Jaa

Avoin kehittäjäpalvelu muuttui maksulliseksi

Kehitys kehittyy ja internetin kehittäjäpalvelutkin muuttuvat maksulliseksi. Olen joskus kehittänyt (kopioinut ja muokannut) sellaisen Visitor Tracking menetelmän. Tarkoitus ei ole vain laskea käyntimääriä vaan tallentaa sivuilla vierailijasta hieman tarkempaa dataa. Sivuilla vierailijasta tallennetaan: aikaleima, selaimen nimi, selaimen tunniste (agentti), selaimen alusta (Win, Mac, Linux), selaimen käyttämä laite (PC, Laptop, Mobiili), IP-osoite ja onko kysymyksessä Robotti vai Botti. Botit heitetään roskiin, muuta vierailijat tallennetaan tietokantaan. Tämä menetelmä on ollut asennettuna asiakkaiden palveluihin.

Nyt kokeilen sitä omille sivuilleni ja uuteen kehitysympäristöön (CodeIgnniter 3). IP -osoitteen perusteella olen voinut hakea internetin palvelusta vierailijan maakoodin (FI, US, CH). Tähän palveluun minulla on ollut rekisteröitynä ilmainen kehittäjälisenssi (ipinfo.io/developers). Eräänä aamuna huomasin, että palvelu on antanut maakoodiksi pelkkää tähteä (**). Lokitiedoista sain selville, että palvelun lisenssi oli vanhentunut. Yritin sitä tietenkin uusia, mutta kas! Se olikin muuttunut maksulliseksi :-\ Onneksi internet on nykyisin tulvillaan vastaavia palveluita. Ei muu auttanut kuin vaihtaa palvelua (www.geoplugin.net). Turha ja tyhmä juttu. Teettää ylimääräistä työtä.

Miksi aikaisemmin kehittäjien yhteisön ylläpitämä avoin palvelu on muuttunut maksulliseksi? Rahan ahneus tietenkin. Ovat varmaan huomanneet, että palvelu on ollut suosittu: sillä voidaan ansaita!

Minut ja asiakkaani saivat ainakin ulkoistettua palvelusta. Onko se nyt parempi vaihtoehto?

keskiviikko 26. elokuuta 2020

Facebook plug-in Twitteriin ja Bloggeriin

Kukahan kehittäisi (uudestaan) sellaisen moduulin, joka osaa postata saman julkaisun monelle eri alustalle. Kun kirjoitan tänne Facebookiin, niin nykyisin saman tekstin joutuu käsin siirtämään Twitteriin, Instagramiin, Bloggeriin ja muualle. 
 
Joskus oli olemassa edes sellainen Facebook liitännäinen (Plug-In), joka postasi automaattisesti Facebook kirjoituksen Twitteriin. Jos sen pituus oli liikaa Twitterille, niin moduuli osasi lyhentää postin ja liittää siihen linkin Facebook sivulle. Sitten iski kilpailu ja mustasukkaisuus. Liitännäinen poistettiin käytöstä.
 
Toki toki. Onhan niitä maailmalla. Mutta ne, jotka minä olen löytänyt ovat maksullisia eikä edes kokeiluversio toimi. Ei sellaisen tekeminen ylivoimaista olisi, mutta ei vanha setä jaksa enää heilua.
 
Tykkää
Kommentti
Jaa


 

Ohjelmistojen kehitys kehittyy

Hups! On taas aikaa kulunut kun olen tänne kirjoittanut.
On niin monta paikkaa, mihin tekstejä täytisi muistaa päivittää.

Olen sentään jotakin oppinut tästä tietokoneiden ohjelmoinnista.
Viimeisen 20 vuoden aikana ohjelmointi on siirtynyt työasemasta (Windows) internettiin ja pilvipalveluihin (Cloud Service). Erilaisia sovelluksia käytetään nyt oman tietokoneen selaimella (Browser), eikä ohjelmia enää asenneta kiinteästi omalle tietokoneelle. Lisäksi mukaan ovat tulleet mobiililaitteilla käytettävät sovellukset (Applications). Ei taida olla mitään sellaista elämän aluetta, mitä ei voisi käyttää puhelimella tai tabletilla, jopa henkilökohtaisella älykellolla tai rannekkeella.

Joka tapauksessa. Kun nykyaikana aloittaa rakentamaan erilaisia sovelluksia, niin on otettava huomioon muutama seikka jo alusta alkaen. Riippumatta siitä, että millä ohjelmointikielellä tai millä ympäristöllä (IDE) ohjelmia kehität ja tuotat. 1) Kaikki tieto tulee tallentaa tietokantaan (Database). 2) Sovellusta pitää pystyä käyttämään monella eri kielellä (Languages). 3) Sovelluksesta pitää pystyä tuottamaan erilaisia raportteja ja listauksia ja niissä tulee ottaa huomioon listauksen sivutukset (Pagination). Muuten olet samassa liemessä kuin se "vanha" rallikuljettaja, joka ei asunut Laukaassa vaan Laukaalla.

Otetaan alusta.1) Kun kaikki tieto, tekstit, kuvat ja tapahtumat ovat tietokannassa, niin muutokset on "helppo" suorittaa ja antaa ne jopa käyttäjän itsensä tehtäväksi, harkitusti ja rajoitetusti.2) Edellisestä johtuen, myös erilaisten kieliversioiden toteuttamisen tekee tietokanta huomattavasti helpommaksi. Kielen vaihtaminen näytöllä tulee paljon helpommaksi kun kieliversiot on tallennettu tietokantaan.3) Kun tietoa tallennetaan, niin on tyypillistä, että sitä kertyy ajan kanssa huomattavia määriä. Silloin on tärkeää, että halutun tiedon löytäminen pitää tehdä helpoksi. Kaikkiin raporteihin ja listauksiin tulee järjestää tiedon hakemiseen (Search) ja sivunumerointiin (Pagination) tarvittavat välineet. 

Tämän kohdan 3) kanssa olen jumpannut viimeisen kuluneen viikon aikana. Kiitän luojaani (??) ja itseäni siitä, että olen ottanut huomioon kohdat 1) ja 2) jo alkuvaiheessa.

Siitä huolimatta siihen kuluu yllättävän paljon aikaa. Kyllä tekniikan saa toimimaan suhteellisen nopeasti, mutta ennen kuin raportti on luettavassa muodossa, siistin näköinen ja muutenkin selkeä, niin kyllä aikaa ja kahvia kuluu. Onneksi en polta tupakkaa 😉 

Yksi esimerkki on internet sivulla vierailleiden kävijöiden seuranta (Visitor Tracker). Vaikka mitään tarkkaa ja yksityistä tietoa ei tallenneta, niin on mukava seurata, että mistäpäin maailmaa, mihin aikaan, millä laitteella ja millä tekniikalla ihmiset verkossa liikkuvat. Taisin jo mainostaa tätä sovellusta aikaisemmin. Oheisessa kuvassa on kuitenkin viime yön aikana (noin 1:30) jälkeen omalla sivullani vierailleet käyttäjät. Listassa on kymmenen viimeistä tapahtumaa. Jo tästä näkee aikaeron, tekniikan ja vierailijan sijainnin (IP osoitteen perusteella). Listalta on poistettu kaikki tunnetut robotit (Botit, joita minun tiedossa on noin 4650) sekä minun omat käynnit. Aikaerosta johtuen on aamukahvin aikana mukava seurata, että ketä kaikkia on sivulla vieraillut.

Että onko tästä mitään hyötyä? Ei yhtään mitään. Tämä puuhastelu on pelkkää ajan kuluttamista sekä uusien asioiden ja tekniikoiden oppimista. Uskokaa tai älkää, niin kyllä vanhakin koira oppii uusia temppuja.

lauantai 2. toukokuuta 2020

Tietokoneiden sietämätön kilpajuoksu

Vieläkin tänä päivänä hämmästyttää, kummastuttaa pientä (tai aika suurta) koodaria sellainen asia: miksi yksinkertaiseen käyttöliittymään pitää lisätä kaikenlaista vilkkuvaa ja välkkyvää sekä pyörivää animaatiota?

Taas mennään sille muistelun osastolle.
Silloin kun aloitimme rakentaa ohjelmia Windows 3.1x, 95, 98 (eli käytännössä MS-DOS) käyttöjärjestelmälle, niin laitteiden kapasiteetti oli rajoitettu. Viimeisen päälle huippulaitteet olivat silloin varustettu x386 (16MHz) tai jopa x486 (25MHz) prosessorilla (CPU). Eikä erillistä grafiikkaprosessoria (GPU) ollut. Hyvä jos oli edes erillinen matematiikka prosessori.

Voitte vain kuvitella, millaiset rajat se ohjelmoijalle asetti? Kaikki kuvaruudun käsittelyyn tarkoitetut moduulit piti koodata ASM kielellä (eli Assembler konekielellä). Sitä laitteen CPU pystyi sentään suorittamaan ilman tulkin avustusta ja kuvaruudun sai toimimaan siedettävällä vasteajalla.

Mutta nyt kun laitteiden suorituskyky ei olisi esteenä, niin siitä huolimatta kaikki käytettävissä oleva kapasiteetti menee kaikenlaisten animaatioiden pyörittämiseen. Onhan se varmaan hienoa, kun vaihtaa ohjelmasta toiseen, niin ikkunat liukuvat, siirtyvät ja sinkoilevat sinne ja tänne. Mutta se syö turhaan resursseja. Minä pidän ensisijaisesti nopeasti toimivasta käyttöliittymästä, en mistää turhasta animaatiosta. Onneksi nykyaikaisissa käyttöliittymässä (ainakin Linux) voi itse säätää animaatioiden ja tehosteiden tasoa ja jättää pois kaikki turhat tehosteet.

Onko kukaan laskenut, kuinka kauan maailmassa käyttäjät odottavat ns. tiimalasia tai jotakin muuten pyörivää ja hyrräävää kursoria? Poikkeuksetta, kun avaat jonkin web-sivun, niin ruudulla pyörii joku väkkärä ja varmaankin hieno animaatio. Eikö tämän sijasta voisi käyttää yksinkertaista tekstiä: "Odota hetki ..."

Silloin ei prosessori ressukan aika menisi turhaan. No tietysti nyt kaikki suuttuvat: Sen animaation hoitaa nykyjään grafiikkaprosessori (GPU), mutta kaikilla käyttäjillä ei ole kallista ja tehokasta GPU laitetta. Sillä joku ATI Radeon tai NVIDIA GeForce maksaa aika paljon ja mitä sillä saavutetaan tavallisessa käytössä?

Laitetaan ostohetkellä myssy päähän ja mietitään sitä, että mitä me oikeasti tarvitaan? Jos olemme ostamassa lapselle tai lapsenlapselle pelikonetta, niin silloin tarvitaan tehokas GPU ja siihen riittävästi muistia. Sen lisäksi, että tarvitsemme myös erittäin tehokkaan keskusyksikön (CPU). Siihen totta tosiaan tarvitaan myös paljon rahaa.
Mutta jos olemme ostamassa itselle toimistokonetta ja/tai etätyöhön vaadittavaa LapTop konetta, niin hieman vähempikin riittää. Ei Office, sähköposti ja internet liikenteeseen tarvita mitään hirmukonetta.

Anteeksi jo etukäteen. Tästä tulee varmasti sanomista, mutta tulkoon. Minä olen tullut toimeen web- ja tietokanta- kehittäjänä melko vanhalla tekniikalla. En todella ole tarvinnut mitään huippuvirityksiä. Ja teen sentään työkseni internet ohjelmia.

Kuinka käy hakukoneiden?


Internetin hakukone on kuin maaperän öljy ennen moottorin keksimistä.
Vasta kun keksittiin mihin sitä voidaan käyttää siitä tuli merkityksellistä ja arvokasta. Nyt öljyä osataan käyttää ja joskus se loppuu.

Kuinka käy hakukoneen? Se valvoo, kuuntelee ja katselee meitä ja oppii koko ajan lisää meistä. Juuri kun opimme sitä käyttämään niin se on hyödytön.

(Blue Book Weinberg)

Salasanat haltuun


Olen kirjoittanut tästä jo aikaisemmin, mutta kertaus se on opintojen anoppi.

Oletteko koskaan miettineet erilaisten salasanojen (Password) sekamelskaa? Varmaan olette, jos olette kiinnostuneita pitämään omat tiedostonne turvassa.

Sääntö on sellainen, että samaa salasanaa ei saa käyttää joka paikassa.
Salasanan pitää olla riittävän turvallinen.
Salasanan tulee olla sellainen, että sitä ei voi arvata.
Salasanan pitää sisältää erilaisia merkkejä, numeroita sekä isoja että pieniä kirjaimia.

Siinä sitä sitten ollaan, kuka niitä muistaa? Internet on täynnä erilaisia salasanojen muistamiseen tarkoitettuja ohjelmia. Kaikissa niissä on se huono puoli, että ne ovat murrettavissa.

Yksi hyvä menetelmä on olemassa. Käytä omaa päätäsi ja käytä sellaista salasanaa, jonka voit päätellä aivan itse. Minä kerron kuinka se toimii.

Oma salasana alkaa aina tietyllä tavalla: alkuun joku erikoismerkki, vaikka # tai &.
Sitä seuraa neljä tai viisi numeroa, esimerkiksi oman puhelinnumeron alkuosa tai joku muu numero minkä itse muistat. Minulla se alkaisi siis: #1650.
Sen jälkeen aina sama kaava: lisätään siihen :4 eli Salasana jotakin varten. Siitä tuo kaksoispiste ja nelonen (:for).
Tämän jälkeen salasanaan lisätään sen palvelun nimi, mihin olemme kirjautumassa. Minä olen nyt kirjautumassa Youtube palveluun, niin lisään salasanaan tekstin Youtube. Eli koko salasana on: #1650:4Youtube tai jos kirjaudun Googleen, niin salasana on #1650:4Google

Helppoa kuin heinänteko, mutta muiden on sitä melkein mahdoton arvata tai hakkeroida. Arvaatte varmaan, että minä en käytä omaa puhelinnumeroa, enkä tätä esimerkkiä :-) Mutta en ole koskaan myös hukannut salasanoja.

Valitettavasti on olemassa sellaisia palveluita, jotka eivät salli salasanaan erikoismerkkejä (#,$,&,:). Silloin pitää käyttää sitä maalaisjärkeä ja jättää ne pois. Se on vaan muistettava. Eikä toimia niin, kuin eräässä laitoksessa, jonka palveluksessa olin.

Asia meni muuten hyvin perille, mutta ... Kun kävin työntekijän tietokoneella ja nostin hiirimattoa, niin siltä löytyivät tämän käyttäjän kaikki salasanat.

On olemassa sellainen ohjelmisto kuin Team Password Manager https://teampasswordmanager.com/
Se toimii salatulla tietokannalla ja cryptatulla PHP-kielellä, mutta vaatii oman web palvelimen.

Facebook ja sietämätön hitaus.


Hieman ärsyttää tämä Facebook'in jQuery ja JavaScript kielillä toteutettu käyttöliittymä. Tämä yrittää olla niin viisas, mutta epäonnistuu siinä surkeasti.

Ymmärrän täysin miksi Facebook on valinnut käyttöliittymän moottoriksi JavaScriptin: he ovat haluneet, että Facebook'in alusta ei kuormita heidän omia palvelinkeskuksia. Sillä kaikki - aivan kaikki - koodi suoritetaan juuri Sinun omalla tietokoneellasi.

Jos joskus ihmettelet, että miksi joku sivu tai posti ei aukea nopeasti tai miksi kirjoitettu teksti ei aina näy oikein tai miksi ei voi käyttää Kopioi/Liitä tekniikkaa, niin voit syyttää vain omaa tietoliikennettä, omaa tietokonetta tai omaa selainta.

Minulla on testejä takana, monella eri käyttöjärjestelmällä ja monella eri selaimella.

Päivityksen puute

Hupsista. On kulunut jo tovi kun viimeksi tänne kirjoitin. Ei vaan aina jaksa kirjoittaa samaa tekstiä kolmeen eri mediaan (Facebook, Twitter ja Blogger).
Joskus näiden medioiden välille sai muodostettua linkin jonka kautta päivitykset toimivat "automaattisesti". Nykyisin memä mediat ovat niin mustasukkaisia, että kaikki linkitykset on estetty.

Yritän parantaa tapani ja kirjoittaa tai siirtää kirjoituksiani myös tänne Bloggeriin.