tag:blogger.com,1999:blog-24203971798357190372024-03-19T18:00:18.775+01:00kabadostories and history of computer sciencePhilippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-2420397179835719037.post-3552975602316757712012-04-13T13:48:00.003+02:002012-04-13T14:55:24.099+02:00Maven pom treeHere is a very nice trick I discovered almost by chance. Maven is an amazing tool to build software project. It scales...Complex and big projects follows the SCM (Source Control Management) structure, usually a tree. Maven's best weapon is indeed to structure the project in a tree, where each node contains a pom that follows more or less the following rules:module list is the list of children,it Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-54876970463932444662009-10-19T15:49:00.012+02:002009-10-20T09:31:51.571+02:00The Turing Test in practiceWhile wandering on a merchant site, full of popups and flashing frames, my attention has been attracted by a new window popping up in the middle of the screen made of a title "New chat window", a text area which contains "operator>May I help you ?" and an input text field.I was about to close this ad when a second line appeared "operator>Do you have a question ? I can help you."This time I Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-82210071751826668902009-07-02T18:02:00.014+02:002009-07-10T15:36:43.287+02:00My favorite development processAfter years of experience, I identified three kind of development processes that are commonly used for projects, according to their size, complexity, etc.Direct coding in a scripting language (like perl),writing code from requirements,writing code from specification documents.Direct coding should be reserved for PoC and small projects, clearly doesn't scale, and is not suitable for teams. Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-29387208370823171042009-04-04T19:27:00.003+02:002009-04-08T17:42:17.880+02:00The lost control flowWhen I started learning programming languages, in Pascal, the emphasis was on the block structure. The advantages for the developer are obvious, like divide and conquer design, visible scope of variables, linear flow of control, etc.It seems to me that things were getting too easy, and today the block structure is falling apart. The success of scripting languages, multi-tier architectures, and Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-72587285764123618412009-03-10T13:47:00.004+01:002009-03-10T14:13:22.548+01:00Ten years of my life...I give away ten years of my life, to play guitar like David Gilmour! This song is a new version of the final solo of Fat Old Sun, an old but still one of the best of Pink Floyd. This version is available on the DVD remember that night, described by critics as a near-perfect gig.I am able to work out Fat Old Sun on my acoustic guitar. Slow pace, 4 chords, tricky solo, very pleasant to play and Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-11083983460953720582009-01-26T09:41:00.015+01:002009-02-02T10:30:58.187+01:00Teach it ...phenomenologyImagine yourself in front of a talking Thermostellar bomb which is about to detonate, and start to verbally convince it to abort the countdown because, well, everything else failed...This is one funny scene of first John Carpenter's movie Dark Star and one of the best (and extreme) dialog between a human and a machine. Of course, it's only a movie but the argument between Lt. Doolittle and Bomb #Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-16513889008674029622008-11-05T17:11:00.009+01:002008-11-06T14:40:45.294+01:00Who cares about algorithms ?The real question is: what is the value of an application. Is it the algorithm behind, or the user environment provided by the application. For most applications, the expected level in terms of performance and memory footprint reaches only "good enough". But what makes the difference is indeed the user perception of the application, that is the documentation, the online support, automatic Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-8444870882320724892008-10-24T16:31:00.006+02:002009-01-09T17:12:03.131+01:00The lost Beautiful Programming LanguageIt was old time when a new programming language comes out, trying to be the best of all existing languages, designed by a Guru, aiming too fill a hole, etc. I think the last one was Java. Today when we see what a developer can do with an IDE like eclipse on Java, we really wonder what will the next language be and how can it be better.However this is not taking account what mankind can do for itsPhilippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-63985840094539450962008-10-14T10:06:00.013+02:002008-10-14T10:54:31.264+02:00I fixed a bug in 37 minutesObviously, this is not an outstanding performance. The statement looks very common, however it assumes a lot of things: I was able to measure the time it really takes. Actually I use mylin extension of Eclipse to help me drive my work by task. This time, I don't know why, I paid attention to the elapsed time to completion, a built-in feature of mylin I never used before. I was not disturbed Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-56339595176700995102008-09-19T15:51:00.006+02:002008-10-06T18:04:17.089+02:00Sofware equationsI've told already about:Software = Algorithms + User Interface + BugsHere is another one:Programming Language = syntax + semantic + doc + libraries + IDEThe two first, syntax and semantic, are mandatory to define the language. The other ones are simply making it respectively understandable, useful, and usable.The documentation contains the reference manual, the user manual, tutorials, and Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-58453515303849361862008-07-02T09:29:00.005+02:002008-07-02T09:50:36.634+02:00flex / silverlight comparisonI've just attended a presentation comparing flex and silverlight. In short, both languages are equivalent in terms of functionalities and libraries, which is not really a surprise... However, the noticeable differences are: - IDE: Flex builder exploits 10% of eclipse capabilities and is far behind visual studio (but is far less expensive). There is not even automatic indentation! - Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-64683043027643831612008-06-13T09:24:00.004+02:002008-06-16T09:44:26.605+02:00Software = Algorithms + User Interface + BugsThis point of view holds for desktop applications, but also for any embedded software or more generally, everywhere there is a programmable chip.The algorithm part is the most obvious for developers. It represents the processing of data and more recently the integration of libraries at different levels to provide compatibility between the various operating systems, languages, and protocols (read Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-86229506404109770332008-06-03T17:00:00.006+02:002009-01-09T17:11:09.800+01:00OS scheduler and grilled beef skewersDid you try to cook beef skewers on a BBQ ? A BBQ is not a balanced heat source, and skewers are difficult to turn around. The result is that some pieces are burned while others are still raw.For sure OS makers are aware of this problem. The proof ? Try to run an infinite loop in a shell, like in bash: while true; do set x 1; done, and look at the task manager to see how busy are your multi-corePhilippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com1tag:blogger.com,1999:blog-2420397179835719037.post-31789281141228588142008-05-13T11:02:00.001+02:002009-01-09T17:11:09.800+01:00Multi-threading: the mine field is aheadYou think you master multi-thread programming ? CPU makers are asked to improve CPU efficiency, without payingattention to the software behind who needs to cope with the new features. To put it clear, CPU makers are working on your next traps.memory access swappinginstruction reorderingasymmetric cores and unfair memory accessA read instruction is a lot faster than a write, and the memory bus Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-31646369810698837182008-04-18T13:28:00.002+02:002008-04-18T13:29:54.581+02:00RIA: is Java out ?I've just read Hybridizing Java from Bruce Eckel, the author of Thinking in Java. Bruce was an early adopter of Java and now he opens fire on the language. How could he change his mind so radically ?Thinking in Java was my primary book to learn Java, 10 years ago.I still recommend it to my students or colleagues as it is ideal for developers with already a good knowledge of computer languages. Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-69550525838721108732008-03-28T14:50:00.002+01:002008-03-28T15:06:20.032+01:00When guitars meet computersI am always surprised by the ratio of amateur artists among engineers. For example, we are 5 guitarists among my 10 closest colleagues in the office.I guess it's likely the need to balance rigid computer logic with forgiving art. Music is a frequent choice, guitar seems the winner over piano (because of yet another keyboard?).But the interesting point is that one kind of guitar, the electric Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-15560065632197221172008-03-20T22:23:00.006+01:002009-01-09T17:12:03.131+01:00The most expensive bug1996 june 4th, the first european rocket Ariane V exploded 40 seconds after launch. The payload alone cost about US$370 million. The cause ? A bad cast in the software initiated a chain of dramatic errors and led to Ariane destruction.The full report worths the reading, here is a summary.The attitude of the rocket is given by an Inertial Reference System (IRS), which is a combination of gyro Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-62938227781482393132008-03-14T14:18:00.002+01:002009-01-09T17:12:03.132+01:00Marcel-Paul Schützenberger and complexityIt may happen in your lifetime that you have the luck to meet extraordinary people. MPS is one of them. I attended his lectures when I was a student at the university (Paris 7). This guy is not really famous, he didn't look for fame. We were always less than 10 in the audience. So who is he ?MPS is a physician, a mathematician, and a computer scientist. Obviously he is excellent in all three Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-51193041301433645972008-03-07T17:42:00.002+01:002009-01-09T17:11:09.801+01:00The Next Programming LanguageEverybody knows Moore's law: "Computer performance doubles every 18 months". But programming languages have also their growing law: "A very new language appears every 10 years". "very new" is indeed relative, and should be understood as "language with new features and successful". Let's review the last ones:1972 : C was the first high level language bound to an operating system (unix). For the Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-85711030843961238942008-02-21T16:06:00.002+01:002008-03-31T13:42:34.023+02:00Multithread: the new eraMulti-threading is not new. This is, for instance, natively supported in Java since the beginning in 1996.What is new started with this very popular article that appeared in Dr. Dobb's Journal, 30(3), March 2005. Basically the heat produced by the CPU doubles when the clock is 20% faster. Usual fans and radiators are saturated with CPU around 4GHz. It means the clock race is over. But processor Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-46580743643983499532008-02-14T14:07:00.003+01:002008-03-19T15:47:56.461+01:00Function as parameterAll decent programming language allows function calls, with parameters.Level 1 of parameter is a literal. It's safe, the literal is read-only and has no side effect outside the scope of the function.Level 2 of parameter is a variable. More useful, but may have side effect if the variable is modified in the body of the function. Even when variables are copied before the function call, they can Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-6790736381664830032008-02-14T11:47:00.002+01:002008-03-19T15:24:41.071+01:00World Wide Web: The Boostrap AgeBack in 1990, Tim Berners-Lee started the Web with the first web server. At this time internet wasn't mainstream and I was lucky enough to work in a research institute, probably the only one in France to be connected.At this time internet was used to send email (no spam at all), download files through ftp and read news on newsgroups.I met several times TBL. He's a pure geek. No surprise it's Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-67235538077793347112008-02-12T17:31:00.001+01:002008-03-19T15:24:08.155+01:00User InterfaceThere are several domains in computer science. Database, algorithms, networks, etc. I'm rather specialized in User Interface.Usually, UI shortcuts Graphical User Interface. However, UI in general means the relationship between users and computers, and as computers are connected together, interfaces between users.This encompasses software tools to help users communicate and share data, through thePhilippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0tag:blogger.com,1999:blog-2420397179835719037.post-28183981096133980592008-02-12T17:19:00.002+01:002008-03-19T16:08:37.954+01:00Hello WorldI don't know how many blogs start with such a post. I could have set the title to "Yet Another Hello World Initial Post", which is level 2, and same feed of computer joke...So why I started this blog ? Well, I have things to tell, like everybody else. I'm modest enough to realize I may catch attention of 1 person over a million. That's few. But there are now several millions of people accessing Philippe Kaplanhttp://www.blogger.com/profile/05450378950404949939noreply@blogger.com0