mardi 23 décembre 2008

Web is originally and mostly an HTML world with page by page navigation. Oh yes there is flash but it is designed for graphist with massive website and it was always used for merchandising and promotion site.

In business, in the better case, we had some techno like Struts for it's Model View Controller architecture. Sadly this was not a good looking user interface with old fashioned page by page navigation with maybe some css styling.

Almost two years ago, a "new" techno appears called Ajax. This was the begining of revolution and what we call "Web 2.0". Why it was revolution ? because it enables changement in a page without changing this page thanks a little command and a good use of DOM model (the HTML model of a page). With the use of massive javascript, good looking UI for web appears like Dojo.But a problem remains, a techno problem because it's need to the developper to know very well javascript and html DOM. These techno are not known very well, not very interesting to code and difficult to maintain.

It was at this time that GWT from Google appears. For me, it was amazing. Why ? firstly because it is like coding Swing (the desktop UI techno from Java) and it pushs the developper to see it's website like a desktop UI with frames, menus, buttons ... Secondly it was easy to code, easy to debug and easy to maintain.

Now GWT and similar techno have made their ways and it becomes better and better with more and more UI component like SmartGWT or Tatami Toolkit or AjaxSwing which converts your old Swing application to web with little (no ?) refactoring.

dimanche 14 décembre 2008

I have already talked about CUDA after the GPU barcamp.Now it's time for OpenCL which specifications have been "officialy" launched a few days ago.Like they say :"OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs."

mardi 9 décembre 2008

I have worked one big year at Thales Service and I was so disapointed.

I have worked on two very interesting project on paper : a radar system and a combat management system for a frigate.

Technically they were, at the best case, moderately good. Sometimes awfull.But the worst was the "political" decisions ruining the progression, the quality and motivation of people working on this project.

So when i see this : www.moonshield.com ... I want to cry or laugh, your choice.Maybe, instead of doing 'serious game', Thales can do 'serious project' ?

And when you go here, www.jobs.thalesgroup.com.You can see the marvelous work of marketing and advertising. You can discover different careers at Thales ... and yes you can see, there is only one people who produce something (although it is mostly a searcher). The others are manager.

And you now understand the problem. They put no interest in project development, in software engineer and, with only managers, you can't do good project in your firm. You can only do outsourcing. But maybe it's the goal of Thales ?

lundi 8 décembre 2008

First was getting things done. An interesting method of every day work and life management.You can manage this method with Google notepad !The best thing I have learned so far is to clean my mind of "open loop" and note everything.

I have read the book "Influence: The Psychology of Persuasion" which describe six common things in people psychologie. Like PersonnalMBA says :Knowing these natural psychological tendencies will help you in two ways: (1) you'll become more persuasive, and (2) you'll be able to identify when these tendencies are present, protecting you from being misled in the future.

I am now reading "how to win friends & influence people" and my next books will be :The unwritten laws of business, the design of every day things and Making things happen.

CUDA, the "general" programming language for Nvidia GPU (waiting for OpenCL to have a common language for all hardware). It seems powerfull. However the language is a bit hard due to specifical programming of architecture, optimizations and parallelism.

Like you see in diagram below, the architecture of CUDA is based on multiple grid running one kernel (program). Grids contain blocs which contain thread. One thread apply kernel on one data (for example a float).

Warning : there is only one if else prediction by kernel.

A very interesting note is that code run in a determined time ! We can so create a real time system !Another note is that approximation disappear since Nvidia G200.

And a presention on a work thesis about real time representation of "Positron emission tomography" (medical imagery) with specific problem of memory optimization (but finally common in programming of parallel architecture.