tag:blogger.com,1999:blog-91156446058333841382024-03-13T21:16:17.380+01:00X de XavierUnos y ceros. A veces, en el orden adecuado.-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-9115644605833384138.post-7644782350204236922009-09-10T22:02:00.004+01:002009-09-14T14:48:32.027+01:00My tablet PC says hiOne of the joys of not being an Apple fanboy is that you can already be the user of a tablet PC. In case you are not aware of it, tablets are cool, comfortable and in a similar price range than any laptop.<br /><br /><a href="http://www.flickr.com/photos/xverges/3905535665/" title="My tablet pc says hi by -Xv, on Flickr"><img src="http://farm3.static.flickr.com/2447/3905535665_bcd390e9f6.jpg" width="400" alt="My tablet pc says hi" /></a><br /><br /><div>In june I got an <a href="http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01572835&lc=en&dlc=en&cc=us&lang=en&product=3804230">hp tx2000</a> at <a href="http://www.mcs-n.com/">http://mcs-n.com</a> and paid €712 for it. I took advantage of <a href="http://www.planavanza.es/Herramientas/PreguntasFrecuentes/pregunta6.htm">Plan Avanza</a>'s interest free credits.</div><div><br /></div><div>It's small and easy to carry around; reading on it with its screen folded, either on the coach or in the bus, is very comfortable. Unfortunatelly, battery life is not that great; I'm hopping to extend it a bit by taking the time to undervolt its cpu.</div><div><br /></div><div>It came preloaded with lots of crapware (dear HP, haven't you considered that maybe all this bloatware makes your hardware look bad and underperformant?). I wiped it and did a clean installation of Vista 64bits (make that two or three clean installations... damn activation!) <b>Update:</b> Before doing a clean install on a tablet pc, <a href="http://www.gnegg.ch/2007/08/careful-when-clean-installing-tabletpcs/">you may want to save some calibration data</a> (something that I failed to do)</div><div><ul><li>I went for 64 bits because I was hoping that the OS would be taking advantage of the 4GB of RAM that are available (<a href="http://www.codinghorror.com/blog/archives/000811.html">it won't happen with Vista 32 bits</a>; <a href="http://support.microsoft.com/kb/929605/en-us">it may happen in Vista 64 bits</a>; I don't know if it happens in my laptop)</li><li>I went for Vista Ultimate because I found a good deal for students <a href="http://daelgolpe.es/">http://daelgolpe.es/</a> and I thought that I may end up needing its support for different language packs. Yes, this school year I'm a student.</li><li>I don't recall how I got out of the <a href="http://twitter.com/XavierVerges/status/3222900040">activation nightmare</a>. The great <a href="http://directedge.us/content/abr-activation-backup-and-restore">Activation Backup and Restore</a> and <a href="http://www.microsoft.com/windowsvista/1033/ordermedia/default.mspx">Microsoft alternate media</a> allowed me to go from bloated Vista Home 32 to fresh installation to Vista Home 64. I then, don't ask me how, was able to use the Ultimate upgrade license key.</li></ul><br /></div>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-72785246669360712282008-12-09T16:11:00.002+01:002008-12-09T16:27:59.488+01:00Some notes about troubleshootingFrom <a href="http://www.whyprogramsfail.com/">Why Programs Fails: A Guide to Systematic Debugging</a>:<br /><br />Some terminology: from defects to failures<br /><ol><li>The programmer creates a <span style="font-weight: bold;">defect</span>.</li><li>The defect causes an <span style="font-weight: bold;">infection</span> (the program state differs from what the programmer intended)</li><li>The infection propagates</li><li>The infection causes a <span style="font-weight: bold;">failure</span> (an externally observable error in the program state).<br /></li></ol><br />Debugging can be decomposed into seven steps:<br /><blockquote><span style="font-weight: bold;">Track</span> the problem in the database<br /><span style="font-weight: bold;">Reproduce</span> the failure<br /><span style="font-weight: bold;">Automate</span> and simplify the test case<br /><span style="font-weight: bold;">Find</span> possible infection origins<br /><span style="font-weight: bold;">Focus</span> on the most likely origins:<br /><small> Known infections</small><br /><small> Causes in state, code, and input</small><br /><small> Anomalies</small><br /><small> Code smells</small><br /><span style="font-weight: bold;">Isolate</span> the infection chain<br /><span style="font-weight: bold;">Correct</span> the defect<br /></blockquote><br />Note the <span style="font-weight: bold;">TRAFFIC</span> mnemonic.<br /><br />Opinion ON:<br /><br />That's nice theory. Unfortunately, the complexity of IT has teached us that computers are non-deterministic beasts. The first thing that we do in case of a problem is restart the system, hope that the problem will go away, and be able to keep doing our job. And it often works.<br /><br />But we, software developers and support technicians, need to <span style="font-weight: bold;">un-learn our hide the symptoms urge</span>. If we suspect that there is some defect in the code (and trust this old software developer, you can be confindent that it very likely that there is one),<span style="font-weight: bold;"> our goal should always be to find the defect</span>, instead of changing things so that the defect is not executed or the infection does not end up causing a failure. Leaving that defect unfixed is very likely to cause pain in a future situation. À la <a href="http://www.pragprog.com/the-pragmatic-programmer/extracts/coincidence">programming by coincidence</a>.<br /><br />Some advice<br /><ul><li>avoid corrective actions before the issue is understood. Before the failing code is identified, you should <span style="font-weight: bold;">only use temporary corrective actions to help you frame the problem</span>. I'm guilty of having neglected this rule lots of times, and requested customers to just upgrade the code to see if the issue goes away.<br /></li><li>when possible, use tools that <span style="font-weight: bold;">minimize the infection propagation</span> (that, crash as soon as possible). On Windows, I was recently introduced to <a href="http://support.microsoft.com/kb/286470">pageheap</a> and I'm in love with. More on it another day.</li><li>defects come from source code:<span style="font-weight: bold;"> give support technicians access and knowledge to read the source code</span>. Support people and developers should change seats quite often.<br /></li></ul>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com1tag:blogger.com,1999:blog-9115644605833384138.post-6612833507831523722008-04-03T09:41:00.002+01:002008-04-03T09:44:08.433+01:00In YouTube times...<div xmlns="http://www.w3.org/1999/xhtml">...I don't want to have to download (and install!?) your video. And I don't want to have to find out what is the missing codec that I need to view it. And if you have been nice/smart enough to create a transcript of your video, don't make it only accessible from the huge installer.<br /><br />Breathing, forgetting about the wasted time in my <a href="http://msdn2.microsoft.com/en-us/beginner/bb964635.asp">Introduction to Visual Web Developer 2008 Express Edition video</a> fiasco, and going back to work...</div>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0tag:blogger.com,1999:blog-9115644605833384138.post-38121166806543454892007-08-20T22:15:00.000+01:002007-09-09T20:59:32.897+01:00cmd.exe goodiesGoogling to remember again the key that allows a command history window to be opened in cmd.exe (F7, in case you care), I found the misstitled <a href="http://www.codinghorror.com/blog/archives/000334.html">Stupid Command Prompt Tricks</a> post. Nice. Things that I did not know and that I'm going to use often:<br /><ul><li>dropping a file/dir on a console writes its full path in it</li><li>console settings (window/buffer size, fonts, quickedit...) are tied to the title, not to the shortcut that is used to launch them.<br /><code>cmd /c start "MyCmd" cmd /k ...</code><br />will launch a command prompt that will use the settings associated to MyCmd. If there are none, just go to 'Properties' and create them<br /></li></ul>-Xvhttp://www.blogger.com/profile/12954073038736466058noreply@blogger.com0