tag:blogger.com,1999:blog-22229166717049371152024-03-06T08:57:21.012+00:00IT Pr0 lifeThe path of the software engineer - towards enlightenmentTomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.comBlogger138125tag:blogger.com,1999:blog-2222916671704937115.post-79310730816537926602018-05-10T16:56:00.003+01:002018-05-10T16:56:33.898+01:00Musical hardwareInteresting Radiohead song cover on computer and other devices.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/pmfHHLfbjNQ/0.jpg" src="https://www.youtube.com/embed/pmfHHLfbjNQ?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-82210339381787058342017-07-24T21:42:00.002+01:002018-05-10T16:53:09.566+01:00Text mode ZX Spectrum mini demoSome folks I know spent long summer days on recovering a ZX Spectrum program <a href="https://gizmodo.com/radiohead-secretly-hid-an-old-computer-program-in-the-a-1796877805">hidden as a bonus track of OK Computer 2017 OKNOTOK Radiohead Album</a>. It was recorded on compact cassette, so probably it was ready to run on original Speccy with good cassette reader.<br />
<br />
It's kind of bleeping text mode demo that reminds me fiddling with such things in past.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/JDM5YBS6KMc/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/JDM5YBS6KMc?feature=player_embedded" width="320"></iframe></div>
<br />
So, I've tried to make mini with similar look and feel, but with nowadays technology like HTML and Javascript stack.<br />
<br />
<a href="https://cdn.rawgit.com/uones/oknotok-jsdemo/master/index.html" target="_blank">https://cdn.rawgit.com/uones/oknotok-jsdemo/master/index.html</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_NLRV7bRlFop3jGbR0CfrzIdvFmob1sLuV-M77D489GCGH45N98I6O5epFICfi7dqZIXR7afIhywNynA9hGtiRjyFOOmzXwSXTlXwoVl7167WXDZ5MzTC6jgC8DVmbmhJ6NcDt6NHUuqx/s1600/20170724.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="470" data-original-width="634" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_NLRV7bRlFop3jGbR0CfrzIdvFmob1sLuV-M77D489GCGH45N98I6O5epFICfi7dqZIXR7afIhywNynA9hGtiRjyFOOmzXwSXTlXwoVl7167WXDZ5MzTC6jgC8DVmbmhJ6NcDt6NHUuqx/s320/20170724.jpg" width="320" /></a></div>
<br />
<br />
Initial part need key press to continue. Closing window will end show. Enjoy! ;)<br />
<br /><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-48988223767437186142015-03-25T19:08:00.001+00:002015-03-25T19:09:53.169+00:00Statistical testingOn the tidal wave of Big Data there are more and more people trying to get the clue behind that buzzword. Here is one slide that describes situation:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.xaprb.com/media/2014/05/smirnov.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.xaprb.com/media/2014/05/smirnov.jpg" height="233" width="320" /></a></div>
<br />
The picture is coming from nice <a href="http://xaprb.com/">Baron Schwartz's blog</a> about databases, distributed systems performance and monitoring, and something beyond that.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-68678567522406620602014-05-14T19:35:00.001+01:002014-05-14T19:36:16.384+01:00New Java themed TV series parodiesThree Java themed TV series parodies trailers! I can see it how it goes further ...<br />
<br />
<a href="http://2014.javazone.no/">http://2014.javazone.no/</a><br />
<br />
It looks that I will be Writing Bad fan. But "welcome to Oracle" sounds so familiar ...<br />
<br /><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-5011384536009194652014-04-15T15:49:00.000+01:002014-04-15T15:49:53.786+01:00Somewhat ridiculous ways to calculate PI numberI've found description of experiment to calculate PI number as a result of physical Monte Carlo simulation by <a href="https://medium.com/the-physics-arxiv-blog/c1eb776193ef">shooting shotgun pellets over quarter of circle marked inside square</a>. At least it is great visual explanation how to calculate PI.<br />
<br />
I remember that I saw other technique using pins tossed over parallel lines. I've searched that and found something much more ridiculous: <a href="http://www.wikihow.com/Calculate-Pi-by-Throwing-Frozen-Hot-Dogs">Calculating Pi by Throwing Frozen Hot Dogs</a><br />
<br />
I don't dare for searching any more of that today...<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-28350743413172581132014-04-11T05:10:00.000+01:002014-04-15T15:50:41.167+01:00Real life stories behind bug reportsI've found some gem, while browsing through Android reported issues:<br />
<div>
<br /></div>
<div>
<cite>My Nexus 10 was on silent mode this yesterday at church. I was using the YouVersion Bible app, taking notes. All of a sudden my Nexus 10 let off a shreaking siren type noise that couldn't be silenced. My church (of about 1500 people) all heard it, it stopped the pastor mid-sentence - as I ran out of the auditorium. Has anyone else experienced something like this? I don't think I can ever trust it to be quiet - in a quiet place again.</cite>
<br />
<br />
source: Aaron.Ky report at <a href="https://code.google.com/p/android/issues/detail?id=42447">https://code.google.com/p/android/issues/detail?id=42447</a><br />
<div>
<br />
It shows also why some environments have distance to newest technology. </div>
</div>
<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-12860239141112207632014-03-15T08:56:00.002+00:002014-04-15T15:51:01.148+01:00What does it mean to "be Agile" today?Are you using Agile approach in your organisation?<br />
You can often hear:<br />
<i>"Yes, and we are going do make SCRUM certification"</i>.<br />
What does it mean in practice?<br />
Read more about other shades of Agile methodologies, effects of PR and buzzword leverage for Agile movement:<br />
<a href="http://pragdave.me/blog/2014/03/04/time-to-kill-agile/">http://pragdave.me/blog/2014/03/04/time-to-kill-agile/</a><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-16623237927475132922014-02-26T17:52:00.000+00:002014-02-26T17:52:07.771+00:00Dropping domain - use blogspot.com instead of worona.euI've dropped custom domain, so all old links pointing to:<br />
<b>http://itprolife.worona.eu/</b><br />
should be changed to:<br />
<b>http://itprolife.blogspot.com/</b><br />
<br /><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-33680554237089852322013-09-03T20:45:00.000+01:002017-07-30T07:04:15.835+01:00Hackathon idea - export Endomondo user data<span style="font-family: "arial" , "helvetica" , sans-serif;">I've used Endomondo sport tracker for some time. I'm still using it. But sometimes I like to switch to other tracking software, to get other features. Last time I've decided to make some comparisons with other software, and to dig data with other tools. I've heard that Endomondo (non pro) is not too nice about data export policy.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So, there was no big surprise - no export all data option. I've checked option of exporting single workout - but if you have hundreds of those - it is no option. I'm a hostage that could go out with a very short chain attached.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">So I've started to looking for solutions. Because of large user-base there are some links found:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>1. exportmondo Android app (cost about 2$)</b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Probably one of the easiest options to go. Not tested.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Btw. It is very nice gesture from Endomondo to make niche for other business opportunities. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>2. Dump Database hidden feature </b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><a href="http://forums.androidcentral.com/health-fitness/218459-exporting-data-endomondo.html" style="color: #1155cc; font-size: small;">http://forums.androidcentral.com/health-fitness/218459-exporting-data-endomondo.html</a></b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Very nice Android option. You can use special copydb/endomondo credentials to have SqlLite3 database copied into root folder of card. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">If previously you had your data on device and Endomondo asked for logging ti is good for you, in other case...</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">If you use copydb user id you have empty database. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">If you use your own credentials, your data gets synchronized. Then to use copydb logon you have to be logged out. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Unfortunatelly that way was secured by wiping out local database. There is a way to get it work - application could have more hidden features like dumping database. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">I've tested that - and got only empty database.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>3. PHP script that fetches data from Endomondo web site</b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">https://www.bytopia.dk/blog/2012/11/30/download-all-workouts-from-endomondo/</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;">not tested</span><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>4. some Python script to fetch data </b></span><a href="https://github.com/yannickcarer/endomondo-export"><span style="font-family: "arial" , "helvetica" , sans-serif;">https://github.com/yannickcarer/endomondo-export</span></a><span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;">not tested</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span><span style="font-family: "arial" , "helvetica" , sans-serif;"><b>5. GreaseMonkey script to fetch data</b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><a href="http://userscripts.org/scripts/show/128743" style="color: #1155cc; font-size: small;">http://userscripts.org/scripts/show/128743</a> </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">Because I'm playing a lot with browsers and GreaseMonkey engine I've gave it a chance.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">First run and success! It is fun to see how much time it cold take for poor user to export all those files manually. Probably it could be recorded as a new kind of workout activity.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">After operation I've above hundred of gpx files. I'm going to merge it into larger database.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">And I have to rethink future use of Endomondo if I had to fight more for my data. </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>2017 Update</b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b>6. tapiriik.com</b></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">Open source project that synchronises data between various tracking services accounts like Endomondo or Runkeeper.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">There is a full list of services I found in the project:</span><br />
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">BeginnerTriathlete</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Dropbox</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Endomondo</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">GarminConnect</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Motivato</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">NikePlus</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Pulsstory</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">RideWithGPS</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">RunKeeper</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Smashrun</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">SportTracks</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Strava</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">TrainAsONE</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">TrainerRoad</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">TrainingPeaks</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">VeloHero</span></li>
</ul>
<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-17942786160554355422013-08-10T22:18:00.001+01:002013-08-10T22:18:52.618+01:0099 $items on the $container ...Do you know the song that goes like:<br />
<br />
<em>
99 little bugs in the code
<br />99 little bugs in the code
<br />Take one down, patch it around<br />
~ <br />117 little bugs in the code<br />
...<br />
</em>
<br />
That was about some funny facts we are experiencing some days.<br />
<br />
Now something more didactic:<br />
<a href="http://www.99-bottles-of-beer.net/">http://www.99-bottles-of-beer.net/</a><br />
<br />
<br /><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-45824357009852567392013-07-12T21:49:00.000+01:002014-04-15T15:52:05.894+01:00Old games are too difficult - Increase of Casual Gaming effect or something elseMaybe target demography is more Casual Game oriented, or something. Further studies results could bring interesting results:<br />
<br />
<i>Source: <a href="http://www.p4rgaming.com/majority-of-gamers-today-cant-finish-level-1-in-super-mario-bros/">http://www.p4rgaming.com/majority-of-gamers-today-cant-finish-level-1-in-super-mario-bros/</a></i><br />
<div>
<strong style="border: 0px; color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: italic; line-height: 22.390625px; margin: 0px; orphans: 4; outline: 0px; padding: 0px; vertical-align: baseline;">"I feel that Nintendo games today are much easier which is why the Wii U might be failing. Back then, games were much more difficult and therefore gamers really enjoyed them so they continued to buy Nintendo games and systems. Do you feel the same way?</strong></div>
<div style="background-color: white; border: 0px; color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: italic; line-height: 22.390625px; margin-bottom: 1.5em; orphans: 4; outline: 0px; padding: 0px; vertical-align: baseline;">
<strong style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Satoru Iwata (president)</strong>: I actually agree with your assessment.... It may come as a shock to some of you that most gamers today can not finish the original <em style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Super Mario Brothers</em> game on the Famicom. We have conducted this test over the past few years to see how difficult we should make our games and have found that the number of people unable to finish the first level is steadily increasing.</div>
<div style="background-color: white; border: 0px; color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: italic; line-height: 22.390625px; margin-bottom: 1.5em; orphans: 4; outline: 0px; padding: 0px; vertical-align: baseline;">
This year, around 90 percent of the test participants were unable to complete the first level of <em style="background-color: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Super Mario Brothers</em>. We did not assist them in any way except by providing the exact same instruction manual we used back then. ...<b>"</b></div>
<div>
Most scary option is going towards world like in movie:</div>
<div>
<b><span class="itemprop" itemprop="name">Idiocracy</span> <span class="nobr" style="color: #666666; font-size: 15px; white-space: nowrap;">(<a href="http://www.imdb.com/year/2006/?ref_=tt_ov_inf" style="color: #70579d; text-decoration: none;">2006</a>) </span></b><br />
<b><span class="nobr" style="color: #666666; font-size: 15px; white-space: nowrap;"><br /></span><a href="http://www.imdb.com/title/tt0387808/">http://www.imdb.com/title/tt0387808/</a></b></div>
<div>
<br /></div>
<div>
Fat Bookers ...</div>
<div>
<br /></div>
<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-3465465000018844612013-06-23T21:42:00.001+01:002013-06-23T21:42:15.071+01:00JAVAPOCALYPSE - its good it is only fiction... , but a fun one<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/E3418SeWZfQ?feature=player_embedded' frameborder='0'></iframe></div>
Posted by <a class="yt-uix-sessionlink yt-user-name " data-sessionlink="ei=dVzHUcynOYyp_gaZ3IHICg&feature=watch" dir="ltr" href="http://www.youtube.com/user/JavaZoneNo?feature=watch">JavaZone Norway</a><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-77870581069631364832013-01-05T22:47:00.000+00:002013-01-05T22:47:14.646+00:00Copied from <a href="http://oferia.pl/zlecenie/item499594-program-w-javie">http://oferia.pl/zlecenie/item499594-program-w-javie</a> and translated:<br />
<br />
"I ask to write a program or game in Java. Program / game must contain at least 15 classes and show all the stigmata of object-oriented programming..."<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-42599048133790340302012-12-22T23:02:00.000+00:002012-12-22T23:02:27.493+00:00HNY 2013<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script language="Javascript" type="text/javascript" src="http://www.littlewebthings.com/projects/countdown/demo/js/jquery.lwtCountdown-1.0.js"></script>
<style>
div.blogger-clicktrap{
display:none;
}
body,html{
height:100%;
}
#hny2013_container {
margin: auto auto;
width: 100%;
height:100%;
position:absolute;
top:0px;
left:0px;
color: #eee;
background-color:white;
z-index:10;
display:none;
vertical-align:middle;
}
#countdown_dashboard {
height: 96px;
margin-left: 125px;
}
.dash {
width: 138px;
height: 96px;
background: white;
float: left;
margin-left: 2px;
padding-left: 13px;
position: relative;
color: #333;
}
.weeks_dash {
background: white;
}
.days_dash {
background: white;
}
.hours_dash {
background: white;
}
.minutes_dash {
background: white
}
.seconds_dash {
background:white;
}
.dash .digit {
font: bold 66pt Verdana;
font-weight: bold;
float: left;
width: 59px;
text-align: center;
position: relative;
}
.dash_title {
display: block;
}
#hny2013_container h1{
text-align:center;
font-size:24pt;
}
</style>
<div id="hny2013_container">
<h1>HNY 2013</h1>
<!-- Countdown dashboard start -->
<div id="countdown_dashboard">
<div class="dash weeks_dash">
<span class="dash_title">weeks</span>
<div class="digit">3</div>
<div class="digit">6</div>
</div>
<div class="dash days_dash">
<span class="dash_title">days</span>
<div class="digit">0</div>
<div class="digit">3</div>
</div>
<div class="dash hours_dash">
<span class="dash_title">hours</span>
<div class="digit">1</div>
<div class="digit">3</div>
</div>
<div class="dash minutes_dash">
<span class="dash_title">minutes</span>
<div class="digit">4</div>
<div class="digit">6</div>
</div>
<div class="dash seconds_dash">
<span class="dash_title">seconds</span>
<div class="digit">2</div>
<div class="digit">6</div>
</div>
</div>
</div>
<button id="hny2013btn">The Final Countdown</button>
<script>
$(document).ready(function() {
$('#countdown_dashboard').countDown({
// Targeting: April 7th, 22:00 (local NY time)
// in UTC: April 8th, 2:00 (NY is UTC-4)
targetDate: {
'day': 1,
'month': 1,
'year': 2013,
'hour': 0,
'min': 0,
'sec': 0,
'utc': false }
});
$('#hny2013btn').on("click",function(){
$('#hny2013_container').show();
});
});
</script><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-68290094096151735482010-08-16T11:10:00.003+01:002010-08-16T11:16:40.334+01:00Life after life of Google Wave<div style="text-align: justify;">It is a little sad, but <a href="http://googleblog.blogspot.com/2010/08/update-on-google-wave.html">Google ends development of Wave</a> product as <cite>"Wave has not seen the user adoption we would have liked"</cite>.<br /><br />I liked the whole "Wave" idea presented at <a href="http://googleblog.blogspot.com/2010/08/update-on-google-wave.html">Google I/O conference</a>. It was new an powerful tool, covering the features of multiple existing services like instant messengers, chats, forums with threads and more. On the other side, people were scared of initial learning curve, even understanding at the start what is this service for. Compare other successful service Twitter that wins with simple question "what’s happening now" and message box for simple text message. It seams that simplicity of use and ascetic features win in that case.<br /><br /> Wave has unique features like live collaborative editing that I like the most. This is perfect tool for quickly writing documents by collaborating team. Google Wave is open source project ,so I hope such features would be incorporated into on-line editing suites, in a way that makes collaboration almost effortless. It should also take its place on some forum based sites.<br /><br />If you miss that service, look for Google Wave offspring or make your own service- the code is publicly available.<br /></div><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com1tag:blogger.com,1999:blog-2222916671704937115.post-28693312922419497082010-07-01T14:10:00.004+01:002010-07-01T14:17:32.980+01:00Software development platforms wars as a movie themeSummer break make me think about funny side of life.<br /><br />Check this <a href="http://www.youtube.com/watch?v=A1zySeNpW20">parody "Java 4 Ever" movie trailer</a>, set in reality of dominance and war between development platforms .<br /><br /><object height="240" width="400"><param name="movie" value="http://www.youtube.com/v/A1zySeNpW20&hl=pl_PL&fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/A1zySeNpW20&hl=pl_PL&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="240" width="400"></embed></object><br /><br />Relax and consider that development platform is only a one of choices for a bigger purpose.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com1tag:blogger.com,1999:blog-2222916671704937115.post-2071527441592615002010-06-15T12:40:00.003+01:002010-06-15T12:50:48.306+01:00Funny work story - Slippery slopeAlthough <a href="http://www.dadhacker.com/blog/?p=1246">story</a> has a software engineering context, the situation described there seems common for almost all kind of workplaces. <br />btw. I like the style of www.dadhacker.com posts.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-91116075926878156532010-05-31T13:23:00.003+01:002010-05-31T13:27:39.360+01:00Requirements management storyThe development of simple specific project management system was set in motion. There were couple of meetings and email "conversations" about requirements and use cases scenarios. There was one administration like system role valid for period of time when system "project" was running. I asked client few times about replacing user of that role in case of illness days off etc.<br /><br /><em>It is not important now .....</em><br /><br />The answers were: it is not important part of story, we can wait for finishing project business if there is enough time or substitute someone in place using the same system user, and finally there is only one administrative user for single "system project". The message was clear: it is not important, keep going, we can handle situation. The application was simple so it was looking like cutting the corners on unused features.<br /><br /><em>... but I cannot accept that ...</em><br /><br />The story was finished till final acceptance tests. One of the users from client side playing such system "administrative role", get few days off. The other administrative user asks now for guidance because "there was something in manual about replacing users of other role in system projects". After reviewing quick "user doable" solutions he had serious objectives about completeness of the system. So either detailed "walk through" procedure will be enough or new feature have to be added to application functionality as a part of service agreement.<br /><br /><em>The role of Final user adoption</em><br /><br />It's story about little detail but it shows common scenario that very often takes place during software development.<br />During requirements gathering the project team was planning common usage and sanely limited set of functionalities.<br />Every user thinks in a different way. Some will understand used functionality set, other will need detailed procedures for every specific situation.<br />Final user adoption is important thing. That is one of the reasons why so many classic waterfall project models fail. There are also stories about complete systems, agreed on paper but unused or misused by users that just didn't like it.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-25637429027817083852010-05-26T10:51:00.002+01:002010-05-26T10:53:44.997+01:00Spring cleaning time - making room for new activitiesThe Spring is very worky time for me. I'm not talking about casual house cleaning (I used to do it fast), but mainly about my work context. It's time to finish started projects and make room for new ones and for incoming summer activities. Weather in May is really nice in my place - so I devote some time to biking and long walks. I really didn't want to start another tasks, like writing blog posts about something abstract enough (I still have "blog vs privacy" issues). So please forgive me for long break without posts.<br /><br />I'm thinking also about blog character- it's now mixed personal/technical blog. I like reading entertaining personal blogs, but that is not a point. It seems people like more specialized thematic blogs, so maybe I should go that way. I don't want to fight for readership with every possible mean, but more viewers means more potential interesting contacts for me.<br /><br />Yes, I'm talking about <em>you</em> dear reader. So if you are interested in my subjects, or have an project/business idea write me <a href="mail:itprolife@gmail.com">itprolife@gmail.com</a>.<br /><br />I'm inviting commenters too.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-69541842037289587202010-03-31T11:37:00.004+01:002010-03-31T14:42:32.973+01:00Good practices for backups on DVDDVDs are good and cheap media for middle term backups of old files, or periodical snapshots that fit into 4.37 GiB space. Best example of mine is storing old photos. <br /><br /><strong>Choose you disc</strong><br /><br />Choose good quality discs from known brand/manufacturer relying on <a href="http://www.digitalfaq.com/reviews/dvd-media.htm">reliability statistics</a><br /><br />Choose DVD+R over DVD-R - +R uses better writing method and has better error correction, check <a href="http://adterrasperaspera.com/blog/2006/10/30/how-to-choose-cddvd-archival-media">this article for long explanation</a>. Do not use rewritable discs that use erasable data layer, that could be more easily damaged.<br /><br />Burning speed - the lower the best - higher speed means potentially more errors to correct during writing and reading. Most hardcore safe backup setting will be x1 , but 4x or 8x should be quite safe when today DVD writers give you x16 writing speed. <br /><br /><strong>Handling</strong><br /><br />DVDs are fragile to physical damages, specially vulnerable to scratches. So discs should be handled with care, without touching recorded surface. Discs surface should be clean to avoid scratching by hard dust particles. Blank discs should be perfect clean before writing, as any speck on surface will block laser beam.<br /><br />Do not place adhesive labels and use special CD/DVD markers for labeling. The best place for tiny label is not recordable small middle ring. Why is that? Label side of CD or DVD is separated only by thin layer, that chemicals could easy get through and damage data layer with recorded pits.<br /><br />Recorder DVDs should be stored in dark and dry place. Here is nice list of DVD handling recommendations on a <a href="http://www.itl.nist.gov/iad/894.05/docs/disccare.html">NIST page</a>.<br /><br /><strong>Additional backup safety measures</strong><br /><br />Redundancy increases probability of data retrieval. For critical data it makes sense to make more copies. Other copy could be placed off-site, for better protection in fire and flood proof place.<br /><br />Another option would be additional error correction data created by ECC software like <a href="http://dvdisaster.net/en/index.html">dvdisaster</a>. The best option is to write additional ECC data scattered on the same disc with data. It's a trade-off of disc capacity for additional data safety.<br /><br />Every media has limited life span even stored in best conditions. Some manufacturers give even 30 years (or even 100 years!) for DVD discs, but I'm not such optimistic. Stored archives should be periodically checked for errors (dvdisaster has that functionality), and then moved to new media. It makes also sense in case of technology change and migration. Today next popular optical format is Blu-Ray Disc, but its still young.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-60863363760019692202010-03-25T08:21:00.003+00:002010-03-25T08:47:46.194+00:00Software development project size and methodologyHere is a short description of software development characteristics for projects of different size and its impact for methodology.<br /><br /><strong>Very simple application (single programmer, tester - one man for all)</strong><br /><br />Requirements are simple and all known. If you are writing very simple application, using good architecture plan and code writing practices, as a result you should have clean ready to change application. Adding automated tests makes changes easier without software quality drop. You know all details without looking into documentation, and testing new changes and features during implementation. All changes go to the code repository with comments and TODO file. <br /><br /><strong>Simple/medium, application (team of 1+ programmers and other stakeholders)</strong><br /><br />The requirements should be gathered and agreed before development. You are using some kind of Issue Management System, tracing all change requests. Application is divided into main modules referred in task details. Programmers know what to change and what are dependencies between modules and side effects of implemented changes. Testers know main modules, and are going through test procedures of modules and functionalities. Procedures are short and clean and there is a natural place for agile methodologies.<br /><br /><strong>Large application, (team of 10+ programmers and stakeholders)</strong><br /><br />Application is quite huge. Preparing requirements is often separate project. Every change request is thoroughly reviewed then approved. Application have many interdependencies caused by re-usability and connection points. Some changes have strictly local effects for given feature, those are less harmful. Other change some lower level service, probably unit tested, but still having impact on bigger process. Automated tests are not covering every possible use of code, manual top level functional tests are last line of defense in quality assurance. In real life every module has many connections with other modules. Testers have very limited knowledge about those dependencies. Everyone needs more plans, documents, procedures and artifacts that is slowing down the whole process. Practical solution is to divide the large project into smaller, less complex sub-projects.<br /><br />At this level of complexity there are many "process complete" management methodologies. The winning one is the best suitable for given project, reducing risks and allowing to finish project at planned costs and time.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-81189000213947583702010-03-20T05:41:00.003+00:002010-03-20T05:53:48.365+00:00Plan for data backup and recoveryI've started writing about data backup and recovery as a necessity in a "digital era". To make it simple and successful it needs some upfront planning.<br />I've brought together most important issues about safe data backup and recovery. No matter if you have you PC hard disk full of pictures or have lots of business data on workstation, you should consider following subjects:<br /><br /><ul><br /><li>Why do you need to make backups? (read <a href="/2010/03/backup-your-important-data.html">Backup your important data</a> article)</li><br /><li>Categorize your data - easy manageable big chunks divided by type/importance</li><br /><li>Plan for recovery - what is saving data worth if you are unable getting it back?</li><br /><li>Consider data retention - time horizon (short vs long term backups)</li><br /><li>Choose storage media/place - what suits your needs</li><br /><li>Simplify and automate backup procedure - use specialized software or scripts to keep your backup plan going with minimum work from your side</li><br /><li>Monitor condition and manage backup copies - think about change if process doesn't meet your needs</li><br /></ul><br /><br />Maybe it seems dull and hard to implement, but everyone should cut it to their needs.<br />It's all about time and costs, but having saved your data is sometimes priceless.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-82730266624477356482010-03-15T11:16:00.002+00:002010-03-15T11:35:01.806+00:00Database related general application performance tipsMost of the serious applications nowadays use some kind of relational database engine. Database becomes main data source and data processing module in application architecture. That's the reason why it's common application performance bottleneck and main scalability factor.<br /><br />Having design and data flow requirements its possible to prepare database system at the system planning and implementation phase. Don't get to much into performance details at that stage because <a href="http://en.wikiquote.org/wiki/C._A._R._Hoare">"premature optimization is the root of the evil"</a>. Sometimes system requirements and design meets reality and final expectations, but changes in requirements that could change application data flow are more common. The most accurate results are coming from real data and users usage patterns, so getting system responsiveness metrics is crucial even at the early prototype stages.<br /><br />Having such data about performance "weak points" is a start point to optimize and improve overall system scalability. It's good to begin from top more abstract layers in application architecture before rushing to lower level database storage tweaking.<br /><br />There are some tips divided by subsystem scopes and ordered by top to bottom abstraction level:<br /><br />Application scope<ul><li>discuss with project stakeholders responsiveness requirements for various application functionalities</li><li>analyze data usage patterns like writes vs reads, common data usage vs casual reporting, written once or changed often etc.- it gives image what could be improved, and what kind of underlying database mechanism you will need</li><li>remove worst bottleneck (having biggest performance impact) first to get best results</li><li>use cache for most used data (reads and writes if its possible)</li><li>design transactions smart- long transactions cause performance problems</li><li>at first you should use normalized data schema, but there are situations where little denormalization is crucial for good performance (f.e. copying some data to most read table to eliminate need for joining other big tables)</li></ul><br />Database system scope<br /><ul><li>use indexes where it works best (every index adds performance penalty for data writes)</li><li>use vertical and horizontal data partitioning - move less used data into other tables or use database engine specific features</li><li>configure database and use its features like special table types, special indexes for your best</li></ul><br />Operating system scope:<br /><ul><li>use database dedicated host or performance cluster - for large scale systems</li><li>check network latency and throughput for large data transmissions</li><li>tune underlying disks structure and file system- separate partitions or disks for database files, use low overhead file system or custom database "raw" partitions (like in Oracle DB)</li></ul><div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-74057960973300919092010-03-10T14:11:00.003+00:002010-03-10T14:21:27.473+00:00The meaning of "realistic" in FPS gamesGrog News wrote <a href="http://grognews.blogspot.com/2010/02/guns-and-gear-weapons-and-tactics-in.html">long and interesting article</a> about reality of guns, gears and tactics in FPS games. Even games most rated as "realistic" have large discrepancies vs reality.<br /><br />Although gaming industry considers fun more important over realistic features, new FPS games are incorporating more complicated graphics, physics and AI engines, to raise playing experience to the next level. <br /><br />Games having good balanced reality and fun, are tough enough to keep interest of players for a long time (like Counter Strike type games). Too much realistic constraints in game are resulting in too hard and annoying experience (f.e. player can't jump 20 meters down, or can't run long distance keeping constant high speed). It's an entertainment industry so usually more fun means more profit.<br /><br />I have to admit that even simple change in details pointed in Grog News article, could improve both fun and reality. It doesn't even had to be some kind of new fancy physics engine. Let's take for example weapons and ammunition/magazine compatibility issues or bunny jumping tactic to avoid shots. I really would like to have features like ricochets effects, but there is a field to improve simple mechanisms first.<br /><br />There is a bright future for "reality simulating" games, these are just slow evolving.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com0tag:blogger.com,1999:blog-2222916671704937115.post-50149272371228059712010-03-06T07:22:00.001+00:002010-03-06T07:27:49.390+00:00Backup your important dataOrganizations are collecting more and more data on their workstations/servers. They are doing also regular data backups to prevent loss of assets, time and money. Are you doing data backups? Are you ready to lose your data?<br /><br />Simplest hard disk drive failures are bad-blocks affecting single files. If file is important there is good chance that it can be recovered using proprietary tool. More destructive could be malware erasing or damaging random files, or user hitting "delete all" button on wrong marked files. <br /><br />Hard disk drives aren't perfect and there is quite <a href="http://www.usenix.org/events/fast07/tech/schroeder.html">large probability that you hard disk will die</a>. The last resort then are data recovery companies, but the cost starts from about thousand of dollars and more. <br /><br />What about laptop theft or lost external drive? There are events that could physicaly destroy your hardware, like fire f.e. Then probably all is gone.<br /><br />Backup your important data. In best case you will save your time or money. In worst you will prevent of loss of valuable data.<div class="blogger-post-footer"><p>
Published by Tomasz Worona at <a href="itprolife.worona.eu">IT Pr0 Life</a> blog
</p>
<p>Copyright Tomasz Worona 2007-2017</p></div>Tomasz Woronahttp://www.blogger.com/profile/04219658620436612454noreply@blogger.com1