<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18717694</id><updated>2011-04-21T10:46:17.171-07:00</updated><title type='text'>A Cat in California</title><subtitle type='html'>Blogging from Oakland in California.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18717694.post-116598326279673910</id><published>2006-12-12T20:11:00.000-08:00</published><updated>2006-12-18T20:24:42.130-08:00</updated><title type='text'>Prosper : comment ça marche ?</title><content type='html'>Depuis quelques mois, je m'intéresse à un concept très prometteur. Il s'agit des plates-formes qui permettent de mettre en relation une offre et une demande de crédit sans passer par l'intermédiaire d'une banque.&lt;br /&gt;&lt;br /&gt;L'idée est que, si on supprime le « middle man » dans la transaction, le coût final pour l'emprunteur sera inférieur au coût d'un prêt standard ou, pire, d'une carte de crédits (j'écrirai un article à ce sujet dans le futur).&lt;br /&gt;&lt;br /&gt;En tant que prêteur, l’avantage que je vois à ce système est double :&lt;br /&gt;&lt;br /&gt;- Aider des personnes qui ont besoin d’un crédit pour se sortir d’une mauvaise passe ou qui, pour une raison ou une autre, ne peuvent pas demander un prêt standard à une banque ;&lt;br /&gt;- Avoir la satisfaction de ne pas laisser une banque engranger un maximum d’intérêts pour ne payer qu’un taux ridicule en échange. Par exemple, un compte qui est supposé être rémunéré rapporte 2 ou 3 pourcents alors que la banque fait un prêt à 10, 12 ou 15 pourcents de l’autre côté, encaissant la différence.&lt;br /&gt;&lt;br /&gt;Le site dont je parle est &lt;a href="http://www.prosper.com"&gt;www.prosper.com&lt;/a&gt; et il faut montrer patte blanche avant de pouvoir l’utiliser en tant qu’emprunteur (borrower) ou prêteur (lender).&lt;br /&gt;&lt;br /&gt;Pour être autorisé à devenir un prêteur, il m’a fallu donner mon « social security number », une photocopie de mon permis de conduire (qui sert aussi de carte d’identité) et authentifier mon compte chèque.&lt;br /&gt;&lt;br /&gt;De la même manière, les emprunteurs doivent faire la même démarche, afin que Prosper (la société) sache qui ils sont et puisse déterminer leur profil de crédit, afin de déterminer le risque que l’emprunteur représente.&lt;br /&gt;&lt;br /&gt;Le concept devient intéressant lorsqu’on apprend que l’idée principale pour minimiser le risque consiste à faire de petits prêts qui sont alors mis en commun.&lt;br /&gt;&lt;br /&gt;Par exemple, si j’ai $1,000 à prêter, faire un seul prêt à une seule personne représente un risque important. Si cette personne ne me rembourse pas, je perds tout le capital restant dû au moment où le remboursement s’arrête. Par contre, si je prête $100 à 10 personnes différentes, je distribue le risque et si une personne arrête de me rembourser (on appelle cela « to default » en Anglais), il me reste encore 9 autres prêts. En d’autres termes, on peut dire que l’idée consiste à ne pas mettre tous ses œufs dans le même panier.&lt;br /&gt;&lt;br /&gt;Le fonctionnement du système suit un principe d’enchères inversées.&lt;br /&gt;&lt;br /&gt;Un emprunteur potentiel (une fois enregistré) va mettre en place une description de son besoin (combien d’argent) et un texte de quelques lignes pour expliquer sa situation particulière ainsi qu’un taux d’intérêt initial maximum qu’il accepte de payer.&lt;br /&gt;&lt;br /&gt;Les prêteurs intéressés peuvent alors choisir combien ils veulent prêter et à quel taux minimum (forcément inférieur au taux maximum que l’emprunteur a défini).&lt;br /&gt;&lt;br /&gt;Chaque demande de prêt a une date limite. Si le prêt n’est pas financé à 100% au moment où la date limite est atteinte, la demande est rejetée. Si le prêt est financé à 100% avant la date limite, d’autres prêteurs peuvent faire une contre offre, en baissant le taux d’intérêt minimum qu’ils acceptent d’être payés.&lt;br /&gt;&lt;br /&gt;La valeur ajoutée de la plateforme mise en place par Prosper est de se charger de tous les détails techniques des enchères, de valider l’identité des acteurs et de pouvoir mettre en relation des prêteurs et des emprunteurs qui n’auraient quasiment aucun moyen de se rencontrer autrement.&lt;br /&gt;&lt;br /&gt;Pour ceux qui sont intéressés, allez faire un tour sur &lt;a href="http://www.prosper.com"&gt;www.prosper.com&lt;/a&gt; où vous pouvez naviguer sans avoir besoin de vous enregistrer. Seuls ceux qui veulent emprunter ou prêter de l’argent ont l’obligation de s’enregistrer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-116598326279673910?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/116598326279673910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=116598326279673910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116598326279673910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116598326279673910'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/12/prosper-comment-marche.html' title='Prosper : comment ça marche ?'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-116597924509773783</id><published>2006-12-12T18:56:00.000-08:00</published><updated>2006-12-12T19:07:25.110-08:00</updated><title type='text'>Enfin la Green card !</title><content type='html'>Après plus de deux ans d'attente, j'ai finalement reçu la fameuse "green card" qui me donne le droit de vivre et travailler aux Etats-Unis indéfiniment. Enfin, quand j'écris "indéfiniment", il faut comprendre pour dix ans. En effet, cette autorisation légale doit être renouvelée tous les dix ans.&lt;br /&gt;&lt;br /&gt;Prochaine étape, la nationalité ! Si je ne me trompe pas, dans mon cas, j'aurai le droit, légalement, de faire une demande de naturalisation dans un peu moins de trois ans maintenant.&lt;br /&gt;&lt;br /&gt;Bref, le besoin de renouveler cette green card ne me dérange pas une seule seconde puisque que je serai citoyen bien avant qu'elle n'expire.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-116597924509773783?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/116597924509773783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=116597924509773783' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116597924509773783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116597924509773783'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/12/enfin-la-green-card.html' title='Enfin la Green card !'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-116319311072727996</id><published>2006-11-10T13:11:00.000-08:00</published><updated>2006-11-10T13:11:50.753-08:00</updated><title type='text'>Crackintosh</title><content type='html'>Oh boy!&lt;br /&gt;&lt;br /&gt;Now I get it. Now I know why people who have been using a Mac for some time always told me they just loved the experience. I got my brand new MackBook Pro this morning and this machine simply rocks!&lt;br /&gt;&lt;br /&gt;First of all, the design of the case is gorgeous. Just look at some pictures on Apple's web site if you have never seen one before.&lt;br /&gt;&lt;br /&gt;Second, the OS is very elegant. It feels like an extension of my brain.&lt;br /&gt;&lt;br /&gt;Third, it is running Unix behind the scenes and it feels totally natural to pop up a shell and issue commands or simply log on to a remote server using ssh.&lt;br /&gt;&lt;br /&gt;On top of all this, the machine is very quiet. The only moment I hear something is when the fan spins up when the CPU is running a heavy task for more than a few seconds.&lt;br /&gt;&lt;br /&gt;Using this machine is definitely addictive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-116319311072727996?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/116319311072727996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=116319311072727996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116319311072727996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116319311072727996'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/11/crackintosh.html' title='Crackintosh'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-116284533490521835</id><published>2006-11-06T12:33:00.000-08:00</published><updated>2006-11-06T12:35:34.916-08:00</updated><title type='text'>I did it!</title><content type='html'>I finally purchased a MacBook Pro (the latest core 2 duo) from Amazon.com.&lt;br /&gt;&lt;br /&gt;Interestingly, when ordering it from Amazon.com, I didn't have to pay sales tax, whereas ordering it from the Apple store online would have triggered an 8.25% California Sales Tax.&lt;br /&gt;&lt;br /&gt;It should arrive on Thursday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-116284533490521835?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/116284533490521835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=116284533490521835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116284533490521835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116284533490521835'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/11/i-did-it.html' title='I did it!'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-116174461606151547</id><published>2006-10-24T17:57:00.000-07:00</published><updated>2006-10-24T19:50:16.103-07:00</updated><title type='text'>Getting rid of Windows (Finally)</title><content type='html'>Today, Apple officially released an upgraded version of its MacBook Pro. New CPU (Core 2 Duo) more memory, bigger hard drive, for the same price.&lt;br /&gt;&lt;br /&gt;Sales of Macintosh laptops are growing at twice the rate of the global laptop market. Hmm... Let me guess. People are ditching their Windows laptops and are switching over to the Mac?&lt;br /&gt;&lt;br /&gt;Since Windows Vista is almost ready to be shipped to retailers (I have the feeling this is going to be funny) I think it is now time to stop the BS and move over to the Mac side.&lt;br /&gt;&lt;br /&gt;Time for me to finally switch over and buy my first Mac ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-116174461606151547?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/116174461606151547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=116174461606151547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116174461606151547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/116174461606151547'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/10/getting-rid-of-windows-finally_24.html' title='Getting rid of Windows (Finally)'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-115872104283757821</id><published>2006-10-15T00:01:00.000-07:00</published><updated>2006-10-15T12:39:48.840-07:00</updated><title type='text'>Getting rid of Windows (part 2)</title><content type='html'>I have finally found a little bit of time to work on removing Windows from my machines. The obvious choice (for those of us who &lt;i&gt;need &lt;/i&gt;to use a computer to get our work done) is Linux or MacOS.&lt;br /&gt;&lt;br /&gt;Unfortunately, when using a PC laptop (like Dell), one cannot legally install MacOS without an actual Macintosh. I know it can technically be done, but one has to hack the MacOS installer to bypass the initial test of the hardware that is in there to prevent it from being installed on a non Apple computer.&lt;br /&gt;&lt;br /&gt;Being a computer professional, I believe one should pay a license (and respect its terms) when the product needs to be licensed.&lt;br /&gt;&lt;br /&gt;We can all argue about the choice made by Apple, but in the end, &lt;i&gt;they&lt;/i&gt; own the product (Mac OS) and we must follow &lt;i&gt;their&lt;/i&gt; rules about licensing it.&lt;br /&gt;&lt;br /&gt;So, until I actually buy a Mac (which I will probably do as soon as they release the new MacBook Pro) Linux is my only option to get rid of Windows.&lt;br /&gt;&lt;br /&gt;Lately, Windows has triggered some really nasty feelings in my brain. This so-called "Operating System" keeps getting in the way. The network connections get dropped for no apparent reason (ok, it is easily fixed by rebooting)  the system freezes from time to time for a few seconds (even the mouse doesn't move any more, what is crappy Windows doing under the hood?) etc.&lt;br /&gt;&lt;br /&gt;I got a new PC and Windows is definitely &lt;i&gt;-not-&lt;/i&gt; going to be installed on it. I even expressely asked my vendor not to install Windows on it nor to charge me a license fee (that looks more like a Microsoft tax.) I installed CentOS 4.3 on it and this machine is flying.&lt;br /&gt;&lt;br /&gt;For my laptop, I purchased a new hard drive at Fry's and I installed Suse 10.1 on it. I migrated my emails, calendar, address book etc. over to the new system. It took a bit of time, but it was well worth it. No more questions like "what is the OS doing?" or "Why is it frozen now?"&lt;br /&gt;&lt;br /&gt;I made the choice of Suse 10.1 because it contains a lot of tools for laptops and it was easy to install. The only trick I had to use with my laptop (a Dell Inspiron 600m) was to install a small package called "NDIS Wrapper" that implements an NDIS layer to be able to use a driver written for Windooz. Some hardware manufaturers still don't understand that providing a driver for Linux is to their advantage. Anyway, the installation of the NDIS wrapper was easy and now, I can use my wireless card in the laptop, using the driver written for Windows.&lt;br /&gt;&lt;br /&gt;I don't think Linux is ready to be installed on every desktop/laptop in the world to replace Windows.&lt;br /&gt;&lt;br /&gt;However, compared to the first version of Linux I was using back when I was a student (in 1994), it has made significant progress. The main limitation that I see is that Linux is giving you too much power and thus, too much responsibility with your system. The average user is probably not willing to spend the time to learn Unix. &lt;br /&gt;&lt;br /&gt;There is hope, however. The hope of a world where Windows and Microsoft are not the &lt;i&gt;de facto&lt;/i&gt; monopoly on the computer. India is now training its students, starting in High School on Linux only, not Windows any more. This means that these students will then go to College, using Linux instead of Windows. In less than ten years from now, India will have millions of people entering the work force who know how to use Linux and won't be willing to buy the crap MS is selling any more.&lt;br /&gt;&lt;br /&gt;Windows is gone from my machines. Good riddance!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-115872104283757821?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/115872104283757821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=115872104283757821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115872104283757821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115872104283757821'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/10/getting-rid-of-windows-part-2.html' title='Getting rid of Windows (part 2)'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-115256690950774553</id><published>2006-07-10T14:23:00.000-07:00</published><updated>2006-07-10T14:28:29.520-07:00</updated><title type='text'>Getting rid of Windows (sort of)</title><content type='html'>In my quest to get rid of Windows on my machines (I know, it won't be completely gone, I still have a few software to work with that only run on Windows) I found a fantastic option: Linux with a Virtual Machine to run Windows in it.&lt;br /&gt;&lt;br /&gt;I know I want a Mac (which, by the way, is running Unix behind the scenes) but while I am waiting for Apple to release its next generation of Power Books Pro, I am going to test this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maconstuff.blogspot.com/2006/06/how-to-run-windows-xp-under-ubuntu.html"&gt;Mac On Stuff: How to run Windows XP under Ubuntu Dapper&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ubuntu is a distribution of Linux pre-packaged to be easily installable. I am definitely going to check it out. If Windows runs with a satisfactory speed, I will do a full backup of my hard drive (just in case) and will reformat it entirely to run  Ubuntu only.&lt;br /&gt;&lt;br /&gt;No more Windows!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-115256690950774553?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/115256690950774553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=115256690950774553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115256690950774553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115256690950774553'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/07/getting-rid-of-windows-sort-of.html' title='Getting rid of Windows (sort of)'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-115143264112422672</id><published>2006-06-27T11:17:00.000-07:00</published><updated>2006-06-27T12:06:03.163-07:00</updated><title type='text'>That's it! I am switching over!</title><content type='html'>My wife has been telling me for a while now how using a Macintosh and its amazing OS X environment was so much more pleasant than #$@% Windows.&lt;br /&gt;&lt;br /&gt;I am so over Windows right now. I won't write up a list of all the problems I have been confronted with, but it is simply amazing to me that so many people still use this unreliable piece of crap to work every day.&lt;br /&gt;&lt;br /&gt;Lately, Outlook has decided to go on strike for no apparent reason. Unfortunately, I still need to use this software as I have a ton of emails that I need to get access to (yes I did archive them).&lt;br /&gt;&lt;br /&gt;Now, Microsoft is touting another major piece of junk called Vista. Just by looking at the requirements, I can already see this thing is a joke. I ran their "Vista ready assessment software" and I found out that my machine won't be able to run Vista. So, I will have to buy YET another computer.&lt;br /&gt;&lt;br /&gt;If I have to change my PC, I am going to change for good and buy a Mac. Now that Apple uses Intel CPUs I could even run Windows (I know I won't be able to entirely get rid of it, unfortunately) in a virtual machine, so that when it craps out (and it will, we all know Windows is &lt;i&gt;not&lt;/i&gt; reliable) it will be in its own sand box.&lt;br /&gt;&lt;br /&gt;Let's do the math here:&lt;br /&gt;&lt;br /&gt;Option 1: I buy a new PC with Vista to run it. I obviously will have to spend about $1,000 to get something decent to run Vista. I have to re-learn an interface that Microsoft completely reshuffled just for the sake of it and will have to go through the pre-SP2 hell (we all know that an MS product is not stable before SP2 minimum.)&lt;br /&gt;&lt;br /&gt;Option 2: I buy a Mac with OS X. Depending on what I want to do, I could get a Mac mini (dual core, 1 Gb of RAM, wireless keyboard and mouse) for about $1,000 too. I get to work on OS X that I already know and have access to Unix (since OS X is built on top of BSD.) As a complimentary feature, I get to work on a machine that doesn't crap out here and there without any warning.&lt;br /&gt;&lt;br /&gt;In both cases, I won't have to buy a screen, since I would reuse the one I already have on my desk.&lt;br /&gt;&lt;br /&gt;For most people, it makes sense to buy a Mac. If all you do is email, surf the web, edit a spread sheet or write a document in a word processor, Windows is not necessary. Even for those that have one or two applications that run only on Windows (like Visio), buying a Mac makes a lot of sense since you can still run Windows in a virtual machine by using a software like "Parallels" and still have access to your Windows only applications.&lt;br /&gt;&lt;br /&gt;By forcing people to buy a new machine to run Vista, Microsoft is offering Apple an amazing opportunity to grab market shares since there is the cost of changing the hardware for both options. If we are forced to change the whole machine, then let's change for a better system.&lt;br /&gt;&lt;br /&gt;My decision is made; my next machine won't be a Windows PC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-115143264112422672?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/115143264112422672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=115143264112422672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115143264112422672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115143264112422672'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/06/thats-it-i-am-switching-over.html' title='That&apos;s it! I am switching over!'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-115137447468402203</id><published>2006-06-26T18:55:00.000-07:00</published><updated>2006-06-26T19:14:34.693-07:00</updated><title type='text'>World Cup</title><content type='html'>Most of the world is currently preoccupied by the FIFA world cup. Once every four years, it looks like nothing else matters on this planet.&lt;br /&gt;&lt;br /&gt;In the US, soccer is not as popular and most of the population simply doesn't care. Is it a big deal? I don't think so. People should be free to like what they want to like and simply ignore what they don't. It's the same concept with music. The different kinds of music exist because all the different tastes in the world are represented. We all simply ignore the music we don't like and choose to buy and listen to the music we do like. If people in the US would rather watch baseball or basketball, so what?&lt;br /&gt;&lt;br /&gt;Many people ask me what I miss about France and Europe. I can't make a list of what I am missing just yet, but I can definitely say that not having to be bombarded all day long with the latest news about the World Cup like they do in Europe has given me an immense pleasure. I have the freedom to have a look on the web only when I want to. &lt;br /&gt;&lt;br /&gt;That's one of the reasons why I love the US so much: freedom.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-115137447468402203?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/115137447468402203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=115137447468402203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115137447468402203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115137447468402203'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/06/world-cup.html' title='World Cup'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-115129258255951889</id><published>2006-06-25T20:23:00.000-07:00</published><updated>2006-06-25T20:38:09.726-07:00</updated><title type='text'>Graduation day!</title><content type='html'>Congratulations to my brother Laurent!&lt;br /&gt;&lt;br /&gt;Last week-end I went to Evanston, Illinois for the graduation ceremony at the Kellogg School of Management. My brother earned two degrees. An MBA from Kellogg and a Masters of Science from the McCormick University.&lt;br /&gt;&lt;br /&gt;He got his MBA with distinction (top 10% of the class) with a GPA of 3.86. Not bad for a non native speaker...&lt;br /&gt;&lt;br /&gt;The best part though was to see the pride into my parents' eyes.&lt;br /&gt;&lt;br /&gt;That was a moment I will never forget.&lt;br /&gt;&lt;br /&gt;Bravo Laurent!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-115129258255951889?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/115129258255951889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=115129258255951889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115129258255951889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/115129258255951889'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/06/graduation-day.html' title='Graduation day!'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-114168939316236720</id><published>2006-03-05T12:40:00.000-08:00</published><updated>2006-04-24T17:55:39.546-07:00</updated><title type='text'>Go live!</title><content type='html'>Finally, the system I have been working on for a year now is live! Although we didn't have time for enough testing (as usual) it was a vibrant success. There were just a few glitches here and there, of course, but there was no show stopper.&lt;br /&gt;&lt;br /&gt;This system is built on Oracle 10g R2 running on AIX 5.3. The Application is written in ASP.NET (using C#) on Windows Server 2003, and the client is using Internet Explorer. I know this is not a typical configuration, since Microsoft is pushing SQL Server 2000 and now 2005 as &lt;em&gt;the&lt;/em&gt; database to use and Oracle is pushing Java. So what? As long as it gets the job done and is reliable, &lt;em&gt;who cares?&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;When building a computer system, one should focus on getting the database, the data and the integration right. The engine used to generate HTML pages in front of the Database doesn't really matter, as long as it gets the job done. Java, ASP.NET, PHP you name it... As long as you generate decent pages, provide a reasonable response time and don't corrupt data, everybody is happy! &lt;br /&gt;&lt;br /&gt;Also, by using PL/SQL and writing the queries by hand, you get a serious advantage over those who rely on &lt;em&gt;click-click&lt;/em&gt; tools to use Oracle as a bit bucket. A database is &lt;u&gt;not&lt;/u&gt; a bit bucket. Spend the time to learn and understand relational concepts, the set theory relational databases are based on and SQL. Sure, it takes more time, but the result is &lt;em&gt;very&lt;/em&gt; different.&lt;br /&gt;&lt;br /&gt;What is this system used for?&lt;br /&gt;&lt;br /&gt;It is used by a nationwide retailer to manage its promotional orders. Corporate buyers create a Promotion centrally (they have a well defined calendar of Promotions) by adding items and stores (they have about 200 of them) and the estimated quantities they think store managers should order. This part of the process is still handled in  a mainframe.&lt;br /&gt;&lt;br /&gt;Then, data is exported every night from the mainframe into flat files (lots of them!) and are imported automatically in Oracle, through a bunch of Unix shell scripts, SQL Loader Control files and PL/SQL procedures. Let me tell you it took me a few months just to build this part right. Why is that? Because the data coming from the mainframe is not perfect (far from that actually) and I had to build tons of checks and watchdogs in order to catch problems and clean up the data so I could load it. My favorite part is that the data sent by the mainframe is even plain &lt;em&gt;wrong&lt;/em&gt; and I have to supplement the data set and correct it using data from another database.&lt;br /&gt;&lt;br /&gt;Once the data is loaded, I turn on a flag and I open up the new Promotions for adjustments. Store Managers and District Managers can then enter the quantities they want to order and spread them out over their delivery schedule as defined by the Warehouse managers.&lt;br /&gt;&lt;br /&gt;Then, every day and every hour, when there are orders to send to the supply chain management system (again, as defined by the different Warehouses), I send those values down the pipe.&lt;br /&gt;&lt;br /&gt;What is the beauty of all this?&lt;br /&gt;&lt;br /&gt;It just plain works and is generating a lot of value for my client since they now save a lot of time (remember they have 200 stores, lots of economies of scale here) and a lot of pain.&lt;br /&gt;&lt;br /&gt;The new system also offers the transportation managers the option to change the different deliveries to the different stores. Of course, corporate users have access to many reports to slice and dice the data in all possible dimensions, to follow what stores ordered and how products on promotion performed.&lt;br /&gt;&lt;br /&gt;I am really proud of this achievement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-114168939316236720?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/114168939316236720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=114168939316236720' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/114168939316236720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/114168939316236720'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2006/03/go-live.html' title='Go live!'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-113530436617691472</id><published>2005-12-22T18:16:00.000-08:00</published><updated>2005-12-22T18:33:38.896-08:00</updated><title type='text'>Back Online</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I am back after a one-week vacation at Thanksgiving and a trip to Yosemite National Park.&lt;br /&gt;&lt;br /&gt;Then, of course, I had to go back to work to finish up building the system I am working on for a major retailer (sorry, I don't want to give a name).&lt;br /&gt;&lt;br /&gt;My client just purchased a $170,000 server (no, I did not add a zero, you read it correctly, $170k) to run Oracle 10g on it, even though I probably don't need &lt;em&gt;that&lt;/em&gt; power under the hood to run my application.&lt;br /&gt;&lt;br /&gt;I am finishing up a few things before I can install the production system and open it up to the 250+ users. It seems that this system has generated a lot of buzz internally and a lot of people got excited after using the test system for a while.&lt;br /&gt;&lt;br /&gt;Honestly, even though I have been working with Oracle for quite some time now, I am still impressed by this amazing piece of engineering.&lt;br /&gt;&lt;br /&gt;Now, I am thinking about what I want to do after this project is over (should be in a month or two, then it will be maintenance and enhancements). I know my client has many more ideas for the future (and I have plenty as well) but I also have very interesting offers appearing on the radar.&lt;br /&gt;&lt;br /&gt;Maybe it is time for me to move on…&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-113530436617691472?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/113530436617691472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=113530436617691472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113530436617691472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113530436617691472'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2005/12/back-online.html' title='Back Online'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-113219704486730663</id><published>2005-11-18T18:40:00.000-08:00</published><updated>2005-11-18T18:40:02.006-08:00</updated><title type='text'>ODP.NET and Optimistic Locking in C#</title><content type='html'>&lt;span style="font-family:georgia;"&gt;Tonight, I am working on an implementation in C# of an Optimistic Locking mechanism for an Application in ASP.NET. I am using Oracle 10g R2 on Windows and I am currently stuck by the unfamous ORA-00600. Hmm... Not good.&lt;br /&gt;&lt;br /&gt;The idea is to create a table as follows (it is just a sample table):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;create table ZIPCODE&lt;br /&gt;(&lt;br /&gt;  ZIP         varchar2(5) not null,&lt;br /&gt;  STATEID     char(2) not null,&lt;br /&gt;  NAME        varchar2(40),&lt;br /&gt;  LONGITUDE   number,&lt;br /&gt;  LATITUDE    number,&lt;br /&gt;  POPULATION  number,&lt;br /&gt;  ALLOCFACTOR number,&lt;br /&gt;  LASTMODIF   timestamp with time zone default systimestamp not null,&lt;br /&gt;  constraint ZIPCODE_PK primary key (ZIP)&lt;br /&gt;)&lt;br /&gt;organization index&lt;br /&gt;  storage&lt;br /&gt;  (&lt;br /&gt;    initial 4M&lt;br /&gt;    next 1M&lt;br /&gt;    minextents 1&lt;br /&gt;    maxextents unlimited&lt;br /&gt;    pctincrease 0&lt;br /&gt;  )&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I then populate it with the list of the US ZIP codes, along with some other information, from a flat file and SQL Loader.&lt;br /&gt;&lt;br /&gt;The objective is to check the LASTMODIF field when the code attempts to save changes to the NAME. In order to do this, I have the following PL/SQL Procedure:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PROCEDURE SaveChangesLock ( p_zip       in  t_zip,&lt;br /&gt;                            p_name      in  t_name,&lt;br /&gt;                            p_lastmodif in  t_lastmodif ) IS&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;  FORALL i IN p_zip.FIRST..p_zip.LAST&lt;br /&gt;   UPDATE ZIPCODE&lt;br /&gt;   SET    NAME      = p_name(i),&lt;br /&gt;          LASTMODIF = systimestamp&lt;br /&gt;   WHERE  ZIP       = p_zip(i)&lt;br /&gt;   AND    LASTMODIF = p_lastmodif(i);&lt;br /&gt;&lt;br /&gt;   IF ( SQL%ROWCOUNT &lt;&gt; p_zip.COUNT ) THEN&lt;br /&gt;     -- Someone has updated our rows&lt;br /&gt;&lt;br /&gt;     ROLLBACK;&lt;br /&gt;     &lt;br /&gt;   END IF;&lt;br /&gt;&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I will raise an exception after the rollback when I make it work, but unfortunately I am stuck right now, because of what looks like a bug in ODP.NET.&lt;br /&gt;&lt;br /&gt;When I call the procedure from C# like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt; connection = new OracleConnection(ConfigurationSettings.AppSettings["connectionString"]);&lt;br /&gt; connection.Open();&lt;br /&gt;&lt;br /&gt; command = new OracleCommand("GRIDPAGER.SaveChangesLock", connection);&lt;br /&gt; command.CommandType = CommandType.StoredProcedure;&lt;br /&gt; command.BindByName = false;&lt;br /&gt;&lt;br /&gt; // add the parameters to the command object&lt;br /&gt; command.Parameters.Add(p_zip);&lt;br /&gt; command.Parameters.Add(p_name);&lt;br /&gt; command.Parameters.Add(p_lastmodif);&lt;br /&gt;&lt;br /&gt; // Start a transaction&lt;br /&gt; transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);&lt;br /&gt;&lt;br /&gt; // execute the procedure&lt;br /&gt; command.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt; // Commit the changes&lt;br /&gt; transaction.Commit();&lt;br /&gt;}&lt;br /&gt;catch(Exception ex)&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;I get the following exception:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ORA-00600: internal error code, arguments: [15419],&lt;br /&gt;[severe error during PL/SQL execution], [], [], [], [], [], []&lt;br /&gt;ORA-06544: PL/SQL: internal error, arguments:&lt;br /&gt;[78502], [], [], [], [], [], [], []&lt;br /&gt;ORA-06553: PLS-801: internal error [78502]&lt;/pre&gt;&lt;br /&gt;Lovely!&lt;br /&gt;&lt;br /&gt;So I thought that maybe I messed something up in the declaration of the variables and here is how they are defined:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Oracle parameters declarations.&lt;br /&gt;OracleParameter p_zip     = new OracleParameter("p_zip", OracleDbType.Varchar2, ParameterDirection.Input);&lt;br /&gt;p_zip.CollectionType      = OracleCollectionType.PLSQLAssociativeArray;   &lt;br /&gt;p_zip.Value               = ar_zip;&lt;br /&gt;p_zip.ArrayBindSize       = p_zip_bind;&lt;br /&gt;p_zip.Size                = index;&lt;br /&gt; &lt;br /&gt;OracleParameter p_name    = new OracleParameter("p_name", OracleDbType.Varchar2, ParameterDirection.Input);&lt;br /&gt;p_name.CollectionType     = OracleCollectionType.PLSQLAssociativeArray;   &lt;br /&gt;p_name.Value              = ar_name;&lt;br /&gt;p_name.ArrayBindSize      = p_name_bind;&lt;br /&gt;p_name.Size               = index;&lt;br /&gt;&lt;br /&gt;OracleParameter p_lastmodif = new OracleParameter("p_lastmodif", OracleDbType.TimeStampTZ, ParameterDirection.Input);&lt;br /&gt;p_lastmodif.CollectionType  = OracleCollectionType.PLSQLAssociativeArray;   &lt;br /&gt;p_lastmodif.Value           = ar_lastmodif;&lt;br /&gt;p_lastmodif.Size            = index;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I suspect a bug in the way the TimeStampTZ variables are passed. So, I will try to do it differently, converting those timestamps to strings and then, converting them back in PL/SQL. Hopefully, this will fix the problem.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-113219704486730663?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/113219704486730663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=113219704486730663' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113219704486730663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113219704486730663'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2005/11/odpnet-and-optimistic-locking-in-c.html' title='ODP.NET and Optimistic Locking in C#'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-113202706560535628</id><published>2005-11-14T19:51:00.000-08:00</published><updated>2005-11-15T09:29:08.460-08:00</updated><title type='text'>It's all about the Data</title><content type='html'>&lt;span style="font-family:georgia;"&gt;I have been working for almost a year now on this project for a retailer in California (sorry, I cannot give a name). We are using Oracle as the Database Server and ASP.NET with C# at the Application Server level. I know this is not a typical configuration but it works really well. I'll probably talk a bit more about this system in the future.&lt;br /&gt;&lt;br /&gt;The major problem with an Enterprise Application (i.e. an Application used to run a business) is to get the data. When your system is alone in the world and is the master of its own data, life is good and simple. When your system &lt;b&gt;must &lt;/b&gt;interface with other systems that are the master sources for different sets of data, it is a completely different game.&lt;br /&gt;&lt;br /&gt;Right now, the system we are building is interfacing with three major systems:&lt;ul&gt;&lt;li&gt;A Mainframe through flat files&lt;/li&gt; &lt;br /&gt;  &lt;li&gt;Another Oracle database through a DB link&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Tibco through a staging area and triggers&lt;/li&gt;&lt;/ul&gt;Even though the technical parts are pretty easy to put together, the major obstacle is getting clean data in. In other words, getting bits and bytes into our system is technically easy, but getting &lt;em&gt;meaningful&lt;/em&gt; and &lt;em&gt;coherent&lt;/em&gt; data is not.&lt;br /&gt;&lt;br /&gt;Meaningful data means that what you get in your Database makes sense and is correctly mapping the real world.&lt;br /&gt;&lt;br /&gt;Coherent data means that different tables in the Database modeling real world entities are matching. For instance, if you have a set of Items and a set of Vendors, you'd better make sure that the link between Items and Vendors are referencing entries that exist!&lt;br /&gt;&lt;br /&gt;The only way I know to get a grasp on the problem is to abstract it, don't get lost in the details of the implementation and its mechanics. Look at the data from a set perspective. Easier said than done, I know. But if you can think of all the data in terms of &lt;em&gt;dimensions&lt;/em&gt; it helps a lot to get it done.&lt;br /&gt;&lt;br /&gt;For instance, the data for a retailer uses the typical dimensions known as Item, Store, Vendor, Distribution Center (DC) etc. You will find these fields almost everywhere.&lt;br /&gt;&lt;br /&gt;Lately, I have been struggling with the other Oracle Database I am supposed to interface with. I usually scratch my head querying around, trying to match things up. No matter what I do, this database is full of incoherent data. Hmm...&lt;br /&gt;&lt;br /&gt;The other day, I asked the guy who built it (or at least was seriously involved in the building) about the best way to get the data I needed. His answer was really puzzling. He sent me back an email telling me to do this and that and to avoid querying table A or B, because, as he put it:&lt;blockquote&gt;&lt;em&gt;"The data in those tables is not reliable"&lt;/em&gt;&lt;/blockquote&gt;Excuse me? You are telling me that the data currently stored in &lt;em&gt;your&lt;/em&gt; database is &lt;em&gt;not reliable&lt;/em&gt;? And it is not bothering you more than the blinking ads on a web page? Well, at this point in the game, there is not much I can do. I &lt;em&gt;need&lt;/em&gt; your data, so I guess I will have to deal with it...&lt;br /&gt;&lt;br /&gt;The moral of the story is simple: You can put all the intelligence and hard work you want in building a Computer System, at the end of day, it's all about the Data. As they say, garbage in, garbage out.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-113202706560535628?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/113202706560535628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=113202706560535628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113202706560535628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113202706560535628'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2005/11/its-all-about-data.html' title='It&apos;s all about the Data'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18717694.post-113193128479058584</id><published>2005-11-13T17:05:00.000-08:00</published><updated>2005-11-13T18:08:52.623-08:00</updated><title type='text'>NoCOUG</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia;"&gt;I attended the Northern California Oracle User Group (&lt;a href="http://nocoug.org/"&gt;NoCOUG&lt;/a&gt;) conference last Thursday, in &lt;/span&gt;&lt;st1:city&gt;&lt;st1:place&gt;&lt;span style="font-family: Georgia;"&gt;Mountain View&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;span style="font-family: Georgia;"&gt;. The event took place at the &lt;/span&gt;&lt;st1:place&gt;&lt;st1:placename&gt;&lt;span style="font-family: Georgia;"&gt;Computer&lt;/span&gt;&lt;/st1:PlaceName&gt;&lt;span style="font-family: Georgia;"&gt; &lt;/span&gt;&lt;st1:placename&gt;&lt;span style="font-family: Georgia;"&gt;History&lt;/span&gt;&lt;/st1:PlaceName&gt;&lt;span style="font-family: Georgia;"&gt; &lt;/span&gt;&lt;st1:placetype&gt;&lt;span style="font-family: Georgia;"&gt;Museum&lt;/span&gt;&lt;/st1:PlaceType&gt;&lt;/st1:place&gt;&lt;span style="font-family: Georgia;"&gt; (more information &lt;a href="http://www.computerhistory.org/"&gt;here&lt;/a&gt;) and was informative.&lt;br /&gt;&lt;br /&gt;The museum in itself was well worth the commute (&lt;/span&gt;&lt;st1:city&gt;&lt;st1:place&gt;&lt;span style="font-family: Georgia;"&gt;Oakland&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;span style="font-family: Georgia;"&gt; to &lt;/span&gt;&lt;st1:city&gt;&lt;st1:place&gt;&lt;span style="font-family: Georgia;"&gt;Mountain View&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;span style="font-family: Georgia;"&gt; round trip is about 70 miles) as they have an amazing collection of "old" computers and a well documented presentation of the challenge the building of a strong chess program on a computer represented. If you have a chance to be in &lt;/span&gt;&lt;st1:city&gt;&lt;st1:place&gt;&lt;span style="font-family: Georgia;"&gt;Mountain View&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;span style="font-family: Georgia;"&gt; some day, I strongly encourage you to take the time to have a tour. Of course, this only applies if you are a computer lover like me otherwise, you may not be that thrilled by the visit.&lt;br /&gt;&lt;br /&gt;I attended two presentations by Tom Kyte, one of the most knowledgeable individuals in the Oracle field. He is the Tom behind the site &lt;a href="http://asktom.oracle.com/"&gt;asktom.oracle.com.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first presentation he made was about asking "why?" when someone when someone asks him how to do X or Y with Oracle. I guess his intention is to protect users from themselves by getting as much information as possible up front.&lt;br /&gt;&lt;br /&gt;I enjoyed his presentation very much because I usually have the same approach when someone asks me a question that starts with "How do I ..." or, even better, when someone tells me "we need to do this and that" without any further explanation.&lt;br /&gt;&lt;br /&gt;Immediately, I try to get more data, find out where this person is coming from, what thought process was followed to arrive to the conclusion that is summed up in the question I am being asked. I usually ask "what is your objective". Many people get upset pretty quickly, as they only want an answer and think that I am trying to avoid the question. The whole point of asking about the true objective is definitely not to avoid answering but to define the &lt;em&gt;&lt;span style="font-family: Georgia;"&gt;context&lt;/span&gt;&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;It may be due to my education as an engineer, but to me, pushing a solution before analyzing the problem is just ideology.&lt;br /&gt;&lt;br /&gt;Tom's second presentation was about binding when building an application on top of an Oracle database. Once again, it is all a question of putting things in perspective. It is just plain amazing to see how many people don't take the time to learn the minimum needed to use Oracle (or any other sophisticated system for that matter) before starting their project.&lt;br /&gt;&lt;br /&gt;I know that there are many constraints to get the system up and running as soon as possible (and for a good reason, time is money) but come on! If you don't take the time to learn how to do your job correctly, your system will never be up and running and you will end up playing the infamous blaming game (pick a scapegoat: Oracle, the Operating System, the disks, the CPU, the business users, management etc.) when the project was doomed to fail from day 1.&lt;br /&gt;&lt;br /&gt;I have been using computers for a long time now, as I had my first machine in 1985 when I was still a kid. Compared to the machines we can buy nowadays, this &lt;a href="http://mo5.com/musee/fiche.php?id=mo5"&gt;one&lt;/a&gt; looks like a toy! Anyway, the point here is that I learn early on how to get the maximum out of a machine and that one should always be as thrifty as possible when building a system. I &lt;i&gt;hate &lt;/i&gt;it when I hear comments like "the server is very powerful so we don't need to...” Sure, the server is powerful and your stuff runs great when you are alone using. Now, how does it behave when you have 200+ users pounding it?&lt;br /&gt;&lt;br /&gt;I am currently reading (among other books as I usually read more than one book at a time) the latest book by Tom Kyte. My current interest is about locking mechanisms, read consistency and so on. Another interesting area where a lot of people never spent the time to understand how Oracle is working and what the consequences are. Bottom line: You get ridiculous myths that appear here and there about what Oracle is doing or not behind the scenes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18717694-113193128479058584?l=lechatcalifornien.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lechatcalifornien.blogspot.com/feeds/113193128479058584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18717694&amp;postID=113193128479058584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113193128479058584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18717694/posts/default/113193128479058584'/><link rel='alternate' type='text/html' href='http://lechatcalifornien.blogspot.com/2005/11/nocoug.html' title='NoCOUG'/><author><name>A Cat in California</name><uri>http://www.blogger.com/profile/08619983322716991809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
