I'm in the middle of reading the latest HBR case study, Too Far Ahead of the IT Curve? and thought I'd place my bet before reading the commentary.
This is what I think: all IT investments rust rapidly. Prevention is a hundred times cheaper than repair. Just one quarter of lapsed prevention means repairs. Just one quarter of lapsed repairs means that parts of the system are beyond repair and have to be replaced wholesale or they start falling apart.
There must be software governance. Software auditors must routinely inspect corporate software assets and report back to the board if they find signs of disrepair, whether because of neglect or malice. SAP, like Arthur Andersen, is just not an acceptable excuse.
2007-08-31
Generating Amazon EC2 web service client classes with Metro 1.0m6 and JAX-WS 2.1.2RC1
WSIMPORT_OPTS="-Djava.endorsed.dirs=./lib" bin/wsimport.sh -extension -d . -s . http://s3.amazonaws.com/ec2-downloads/ec2.wsdl
zip -r amazon-ec2.jar com
rm -rf com
2007-08-30
Java: the barriers of entry are ridiculously low
It came to my mind as I was just eating lunch: the barriers of entry to starting a software development business are getting ridiculously low these days. The only expensive things you need are skills, a decade of experience and a willingness to meet new people.
As an example, I have three computers at home, just for redundancy. The latest addition cost me €600 for an Acer Aspire E380 with an AMD64 dual core processor, 2GB of memory and a 320GB disk. My other two computers cost a couple hundred euros more per computer, but they are a bit more silent. You can reasonably run a software business with two home computers. I use the third to test things like new Solaris versions with DTrace and ZFS that really need to run on bare iron, and as beta stuff, might not necessarily play nice with other products.
For effective Eclipse use, I bought a 22" widescreen monitor for €400. Had I gone with a good Acer AL2216WSD instead of the best Samsung 226bw, I would have saved €150 on that too. Having a good monitor is extremely important, and having a widescreen monitor really pays off when working with modern IDE's.
I have both an ADSL and a cable Internet connection, again for redundancy. I monitor the lines, and in the last 3 or so years there's only been a single one hour time period when both lines have been down at the same time. A fast ADSL line and a fast cable connection together cost around €80 a month, maximum.
For servers, I'm enrolled in the Amazon S3 and EC2 programs, and I can easily start up as many servers as I need in a few minutes. No need for costly infrastructure investments. Since gigabytes of transfer and storage cost peanuts (literally ten cents an hour and gigabyte,) I can easily fund whatever I need from my Pepsi cola budget until the customers pay the first bills. For external version control, I can use services such as CVSDude, or just set up an EC2 server that automatically backs itself up on S3.
Since the Acer E380 disk was partitioned in two, I just installed Ubuntu Feisty Fawn 64bit on the empty partition, and kept the original Windows Vista on the other. Installing Ubuntu was a breeze, unlike the process of initializing the "pre-installed" Windows Vista that took hours.
After that, I downloaded and installed the 64-bit JDK 1.6 from Sun, downloaded and installed Eclipse, its JEE plugins and Subclipse, Glassfish and some other tools. You can tell the Ubuntu system to apt-get all of these tools automatically, with just one apt-get, but I like to use the newest JDK and application servers to check on my desktop whether the newest bug fixes and features have any adverse effect on my stuff before they get installed on any servers.
The free VMWare Server and Player products take care of any virtualization needs that the Amazon EC2 service doesn't cover.
After that, if you know how to develop good software, you're home golden. If you don't, all the money in the world won't help you.
As an example, I have three computers at home, just for redundancy. The latest addition cost me €600 for an Acer Aspire E380 with an AMD64 dual core processor, 2GB of memory and a 320GB disk. My other two computers cost a couple hundred euros more per computer, but they are a bit more silent. You can reasonably run a software business with two home computers. I use the third to test things like new Solaris versions with DTrace and ZFS that really need to run on bare iron, and as beta stuff, might not necessarily play nice with other products.
For effective Eclipse use, I bought a 22" widescreen monitor for €400. Had I gone with a good Acer AL2216WSD instead of the best Samsung 226bw, I would have saved €150 on that too. Having a good monitor is extremely important, and having a widescreen monitor really pays off when working with modern IDE's.
I have both an ADSL and a cable Internet connection, again for redundancy. I monitor the lines, and in the last 3 or so years there's only been a single one hour time period when both lines have been down at the same time. A fast ADSL line and a fast cable connection together cost around €80 a month, maximum.
For servers, I'm enrolled in the Amazon S3 and EC2 programs, and I can easily start up as many servers as I need in a few minutes. No need for costly infrastructure investments. Since gigabytes of transfer and storage cost peanuts (literally ten cents an hour and gigabyte,) I can easily fund whatever I need from my Pepsi cola budget until the customers pay the first bills. For external version control, I can use services such as CVSDude, or just set up an EC2 server that automatically backs itself up on S3.
Since the Acer E380 disk was partitioned in two, I just installed Ubuntu Feisty Fawn 64bit on the empty partition, and kept the original Windows Vista on the other. Installing Ubuntu was a breeze, unlike the process of initializing the "pre-installed" Windows Vista that took hours.
After that, I downloaded and installed the 64-bit JDK 1.6 from Sun, downloaded and installed Eclipse, its JEE plugins and Subclipse, Glassfish and some other tools. You can tell the Ubuntu system to apt-get all of these tools automatically, with just one apt-get, but I like to use the newest JDK and application servers to check on my desktop whether the newest bug fixes and features have any adverse effect on my stuff before they get installed on any servers.
The free VMWare Server and Player products take care of any virtualization needs that the Amazon EC2 service doesn't cover.
After that, if you know how to develop good software, you're home golden. If you don't, all the money in the world won't help you.
2007-08-09
2007-08-08
2007-08-04
Presentaatioiden konvertoiminen webimuotoon
Päivitys:
http://www.readwriteweb.com/archives/adobe_flash_player_moviestar_h264.php
http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html
http://www.readwriteweb.com/archives/adobe_flash_player_moviestar_h264.php
http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html
mplayer -playlist 'http://kraken.it.helsinki.fi/ramgen/TP2007/19447_ISO.rm' -dumpstream -bandwidth 10000000 -dumpfile input.ra
mplayer -identify input.ra -ao null -vo null -frames 0 2>/dev/null | grep ^ID_
mencoder -ovc x264 -x264encopts pass=1:8x8dct:i8x8 -nosound -o output.mov input.ra
mencoder -ovc x264 -x264encopts bitrate=1000:pass=2:8x8dct:i8x8 -oac copy -o output.mov input.ra
2007-08-03
Ohjelmistokehitysongelman selvittäminen ensimmäisen ja toisen kerran
Kananmunan paistaminen 1.0:
1. Otetaan kananmunat ja pekoni ulos jääkaapista.
2. Otetaan rypsiöljy ulos kaapista.
3. Laitetaan lieden vasen takalevy päälle, teholle 4.
4. Laitetaan rypsiöljyä paistinpannulle.
5. Laitetaan pekonit paistinpannulle.
6. Odotetaan 2min.
7. Nostetaan vasemman takalevyn tehoa 5:n.
8. Odotetaan 2min.
9. Käännetään pekonit.
10. Odotetaan 1min.
11. Huomataan, ettei ole puhtaita lautasia.
12. Siirretään paistinpannu oikealle takalevylle.
13. Pestään lautanen.
14. Siirretään vetiset pekonit lautaselle.
15. Laitetaan pannu takaisin vasemmalle takalevylle.
16. Odotetaan 3min.
17. Rikotaan kananmunat paistinpannulle.
18. Otetaan paahtoleipä jääkaapista.
19. Laitetaan ensimmäiset leivät paahtumaan.
20. Käännetään kananmunat.
21. Ripotellaan pippuria ja suolaa munille.
22. Siirretään kananmunat lautaselle.
23. Odotetaan 2min.
24. Otetaan leivät paahtimesta, laitetaan toiset tilalle, ja paahdin päälle.
25. Otetaan valkosipulijuustolevite ulos jääkaapista.
26. Pestään voiveitsi nopeasti.
27. Levitetään levite kuivahtaneille leiville.
28. Odotetaan 1min.
29. Otetaan leivät paahtimesta.
30. Laitetaan kuivahtaneet mutta vetiset pekonit leiville, ja kylmentyneet kananmunat päälle.
31. Syödään.
32. Elinkumppani tulee kommentoimaan sarkastisesti astioista.
33. Jätetään aamiainen kesken, laitetaan astiat likoamaan.
34. Jatketaan nyt kylmän aamiaisen syömistä.
Kananmunan paistaminen 2.0:
1. Valitaan liedestä paisto- ja alustalevyt Lp ja La.
2. Laitetaan Lp päälle, teholle 6.
3. Otetaan paahtoleipä ja valkosipulijuustolevite ulos jääkaapista.
4. Laitetaan kaksi paahtoleivänpalasta valmiiksi paahtimeen.
5. Otetaan voiveitsi valmiiksi levitykseen.
6. Otetaan kananmunat ja pekoni ulos jääkaapista.
7. Odotetaan 1min.
8. Laitetaan pekonisuikaleet paistumaan.
9. Laitetaan leivänpaahdin päälle.
10. Otetaan lautanen ulos kaapista ja asetetaan se La alustalle.
11. Käännetään pekonit ja muutetaan Lp teho 5:n.
12. Otetaan ensimmäiset leivät ulos paahtimesta, uudet leivät sisälle ja paahdin päälle.
13. Levitetään juustoa leiville.
14. Otetaan pekonit pannulta lautaselle.
15. Rikotaan kananmunat pannulle.
16. Otetaan viimeiset leivät uudet paahtimesta ja levitetään juustoa ja pekonit leiville.
17. Ripotellaan pippuria ja suolaa kananmunien päälle, ja käännetään ne pannulla.
18. Siirretään kananmunat lautaselle leipien päälle.
19. Laitetaan Lp pois päältä, paistinpannu ja -lasta veteen, pekoni, kananmunat, levite ja leipä jääkaappiin.
20. Syödään.
1. Otetaan kananmunat ja pekoni ulos jääkaapista.
2. Otetaan rypsiöljy ulos kaapista.
3. Laitetaan lieden vasen takalevy päälle, teholle 4.
4. Laitetaan rypsiöljyä paistinpannulle.
5. Laitetaan pekonit paistinpannulle.
6. Odotetaan 2min.
7. Nostetaan vasemman takalevyn tehoa 5:n.
8. Odotetaan 2min.
9. Käännetään pekonit.
10. Odotetaan 1min.
11. Huomataan, ettei ole puhtaita lautasia.
12. Siirretään paistinpannu oikealle takalevylle.
13. Pestään lautanen.
14. Siirretään vetiset pekonit lautaselle.
15. Laitetaan pannu takaisin vasemmalle takalevylle.
16. Odotetaan 3min.
17. Rikotaan kananmunat paistinpannulle.
18. Otetaan paahtoleipä jääkaapista.
19. Laitetaan ensimmäiset leivät paahtumaan.
20. Käännetään kananmunat.
21. Ripotellaan pippuria ja suolaa munille.
22. Siirretään kananmunat lautaselle.
23. Odotetaan 2min.
24. Otetaan leivät paahtimesta, laitetaan toiset tilalle, ja paahdin päälle.
25. Otetaan valkosipulijuustolevite ulos jääkaapista.
26. Pestään voiveitsi nopeasti.
27. Levitetään levite kuivahtaneille leiville.
28. Odotetaan 1min.
29. Otetaan leivät paahtimesta.
30. Laitetaan kuivahtaneet mutta vetiset pekonit leiville, ja kylmentyneet kananmunat päälle.
31. Syödään.
32. Elinkumppani tulee kommentoimaan sarkastisesti astioista.
33. Jätetään aamiainen kesken, laitetaan astiat likoamaan.
34. Jatketaan nyt kylmän aamiaisen syömistä.
Kananmunan paistaminen 2.0:
1. Valitaan liedestä paisto- ja alustalevyt Lp ja La.
2. Laitetaan Lp päälle, teholle 6.
3. Otetaan paahtoleipä ja valkosipulijuustolevite ulos jääkaapista.
4. Laitetaan kaksi paahtoleivänpalasta valmiiksi paahtimeen.
5. Otetaan voiveitsi valmiiksi levitykseen.
6. Otetaan kananmunat ja pekoni ulos jääkaapista.
7. Odotetaan 1min.
8. Laitetaan pekonisuikaleet paistumaan.
9. Laitetaan leivänpaahdin päälle.
10. Otetaan lautanen ulos kaapista ja asetetaan se La alustalle.
11. Käännetään pekonit ja muutetaan Lp teho 5:n.
12. Otetaan ensimmäiset leivät ulos paahtimesta, uudet leivät sisälle ja paahdin päälle.
13. Levitetään juustoa leiville.
14. Otetaan pekonit pannulta lautaselle.
15. Rikotaan kananmunat pannulle.
16. Otetaan viimeiset leivät uudet paahtimesta ja levitetään juustoa ja pekonit leiville.
17. Ripotellaan pippuria ja suolaa kananmunien päälle, ja käännetään ne pannulla.
18. Siirretään kananmunat lautaselle leipien päälle.
19. Laitetaan Lp pois päältä, paistinpannu ja -lasta veteen, pekoni, kananmunat, levite ja leipä jääkaappiin.
20. Syödään.
2007-08-02
Päivän ravintolalöytö: Pizza Pasila
Olin tänään sairaslomalla kotona, jääkaappini oli tyhjä ja Gastronautti konkurssissa, joten päätin kokeilla uutta ravintolaa, joka oli sujauttanut postiluukkuuni mainoksen, Pizza Pasilaa. Mainos oli varsin pizzeriamainen, mutta ruoka oli todella hyvää, 24 EUR maksoi iso annos currykanaa ja riisiä, katkarapupasta, 3 litraa Pepsi Maxia ja kotiinkuljetus. Positiivinen yllätys! Puh. 09-147393, ma-pe 10-22, la-su 11-22. Opastinsilta 10.
2007-08-01
Atlassian Crucible koeajo
Koeajoin tänään muutamaa ajankohtaista projektia varten Atlassian Cruciblen.
Se on laatutyökalu ohjelmistokehitysprosessiin, jolla ohjelmoijat saavat tukea ja kuria toisiltaan.
Crucible kuuntelee versionhallintaa, ja kun sinne tulee muutoksia, niitä voi kehittäjä tai arkkitehti poimia arvioitaviksi kokonaisuuksiksi, joilla on useita arvioijia ja yksi moderaattori.
Arvioijat käyvät koodia läpi ja merkkaavat paikat joista heillä on kysymyksiä tai kommentteja klikkaamalla selaimessa highlightatun muuttuneen koodirivin päälle. Koodin kirjoittaja voi vastata heille siihen.
Ymmärtääkseni kehittäjä voi myös tehdä koodiinsa muutoksia, kommitoida ne, ja lisätä uudet muutokset samaan arviointiin.
Lopuksi moderaattori sulkee arvionnin, ja tekee tuloksista yhteenvedon.
Työkalu vaikutti juuri riittävän monimutkaiselta, ja yllättävän hyvältä versioksi 1.0, mutta toisaalta se onkin suoraa jatkoa Cenquan FishEye-työkalulle, jonka päälle Crucible on kerros.
Taidan ottaa työkalun käyttöön muutamassa tulevassa uudessa projektissa, joiden kehitysprosessissa todennäköisesti tarvitaan jotain tälläistä.
Atlassian osti Cenquan muutkin tuotteet, mm. Cloverin, jonka versio 2.0 vaikuttaa oikein hyvältä.
Arvion teossa Amazon EC2:sta oli paljon hyötyä. Loin yhdellä komennolla uuden virtuaalikoneinstanssin, SSH:asin sinne sisään, asensin Javan, unzippasin Crucible-paketin, lisäsin SvnKit-kirjaston, käynnistin Cruciblen, ja voilá. Sekä koekaniini Heimo että minä pääsimme käsiksi kätevästi työkaluun. Oodin Sampokin varmaan jossain välissä testaa työkalua.
Se on laatutyökalu ohjelmistokehitysprosessiin, jolla ohjelmoijat saavat tukea ja kuria toisiltaan.
Crucible kuuntelee versionhallintaa, ja kun sinne tulee muutoksia, niitä voi kehittäjä tai arkkitehti poimia arvioitaviksi kokonaisuuksiksi, joilla on useita arvioijia ja yksi moderaattori.
Arvioijat käyvät koodia läpi ja merkkaavat paikat joista heillä on kysymyksiä tai kommentteja klikkaamalla selaimessa highlightatun muuttuneen koodirivin päälle. Koodin kirjoittaja voi vastata heille siihen.
Ymmärtääkseni kehittäjä voi myös tehdä koodiinsa muutoksia, kommitoida ne, ja lisätä uudet muutokset samaan arviointiin.
Lopuksi moderaattori sulkee arvionnin, ja tekee tuloksista yhteenvedon.
Työkalu vaikutti juuri riittävän monimutkaiselta, ja yllättävän hyvältä versioksi 1.0, mutta toisaalta se onkin suoraa jatkoa Cenquan FishEye-työkalulle, jonka päälle Crucible on kerros.
Taidan ottaa työkalun käyttöön muutamassa tulevassa uudessa projektissa, joiden kehitysprosessissa todennäköisesti tarvitaan jotain tälläistä.
Atlassian osti Cenquan muutkin tuotteet, mm. Cloverin, jonka versio 2.0 vaikuttaa oikein hyvältä.
Arvion teossa Amazon EC2:sta oli paljon hyötyä. Loin yhdellä komennolla uuden virtuaalikoneinstanssin, SSH:asin sinne sisään, asensin Javan, unzippasin Crucible-paketin, lisäsin SvnKit-kirjaston, käynnistin Cruciblen, ja voilá. Sekä koekaniini Heimo että minä pääsimme käsiksi kätevästi työkaluun. Oodin Sampokin varmaan jossain välissä testaa työkalua.
Completely Fair Scheduler työpöydällä
Testaan juuri Linux 2.6.23:n sisällytettyä Completely Fair Scheduleria, ja täytyy sanoa että tämä tekee työpöytätyöskentelystä mukavampaa. Selaimessa hidastelevat verkkosivut eivät hidasta muita selainikkunoita saati sitten muita sovelluksia. Kokeilkaa huviksenne.
Subscribe to:
Posts (Atom)