eric.mariacher@gmail.com
lundi, janvier 17, 2011
samedi, janvier 15, 2011
HTML5 & CSS3 READINESS
Here is an interestzing way of displaying information I found at http://html5readiness.com/
Click on the image below to dynamically see data:
Click on the image below to dynamically see data:
vendredi, janvier 07, 2011
Dimensions Treemap using Protovis
Based on Treemap from protovis design in javascript, I have now a treemap with 3 dimensions.
Click on the image below to see it in action (because my post does not allow it to be dynamically displayed).

3 Dimensions are:
Click on the image below to see it in action (because my post does not allow it to be dynamically displayed).
3 Dimensions are:
- definition of groups that share the same kind of color
- each square with it's area
- each square is more or less dark and more or less saturated
- The yellow group of color could group all keyboard projects.
- square area is proportional to the total number of bugs for this project
- square darkness and saturation/alpha is proportional to the number of open bugs for this project
Labels:
information visualization,
IT geek,
javascript,
treemap
lundi, décembre 27, 2010
Chinese language to dominate the internet
What is interessant in the format of this visualization is earth at the center that stresses the fact that we are talking about world wide statistics.
We can also notice how internet growth in China is presented as a subset of the first graph.
jeudi, décembre 09, 2010
How to conduct a braimstorming session
Before brainstorming session:
During actual brainstorming session:
· Define a one sentence clear and focused objective.
· Choose participants
o Select a diverse and eclectic team
o assign leader role (who is also a timekeeper)
o assign script role (to write ideas on whiteboard)
· Prepare material
o whiteboard
o clean wall
o lots of post-it notes and markers
During actual brainstorming session:
1. Write the one sentence clear and focused objective on white board
2. Let wild ideas flowing
· script writes ideas as they come on another whiteboard (meanwhile ideas are also written on post-it notes)
· probably ideas will start with the most rational ones, but don't stop at the 1st good idea that comes, spend more time than you think, letting people write and post their ideas
3. Classify/group ideas written on post-it notes by main topic
4. Precise/detail main objective in SMART statements
5. Remove ideas that cannot fit SMART objective
6. Vote on remaining ideas
- Assign actions items to follow on most promising ideas
lundi, novembre 01, 2010
Logitech Wireless Solar Keyboard K750 Firmware
Our keyboard embedded software team built the firmware for the Logitech Wireless Solar Keyboard K750. It was a tough project, because while we have extensive experience at Logitech Switzerland to use and manage regular and rechargeable batteries, here, we entered new area ... under the Sun.
Here are some of the new challenges that we had to tackle:
- How much solar cell space do we need for an average user?
- Who is the average user, someone living at the equator or a norvegian living above the polar circle?
- Where do people work at home, in a cellar or near a wide window?
- How long shall the keyboard work in total darkness?
- How big should we make the energy reserve?
- How to increase "battery" life by decreasing power consumption while keeping good keyboard performance?
The small energy reserve (a button battery) has electrical characteristics that are quite different from the batteries we were used to (especially the battery internal resistance). This had great impacts on the firmware which was "asked" to optimize power consumption, latencies, etc...
For instance we cut power supply if you leave a book on your keyboard. If we did not do that, you would temporary "kill" your keyboard until sufficiently recharged, which may take quite a long time depending on the light it gets.
We also worked closely with the software team for defining and developing a solar widget. We added a very basic "luxmeter" to measure the light that the solar cells are receiving. This is a gadget that was not required to have the keyboard working, but we felt it was a nice to have for users. Now for those who are using the keyboard at Logitech, we like to measure our light environment from time to time.
I hope we tackled all issues successfully. The customers will tell us, and we are eager to get their feedback through forums or Amazon.
Read more on Logitech's blog here.
vendredi, octobre 29, 2010
A history of world GDP
Unknown source :(
What would have been good is to have a definitions of the countries boudaries accross time. Anyway it gives a good idea of the trends.
What would have been good is to have a definitions of the countries boudaries accross time. Anyway it gives a good idea of the trends.
Labels:
china,
france,
india,
information visualization
vendredi, septembre 24, 2010
generating Innovation by linking different fields
About the T9 inventor:
King had an uncanny ability to look at problems from various angles, discovering new ways to solve complex issues, recalled Mason Boswell, a Seattle patent attorney who worked closely with the inventor.
“He would often ask questions that connected two fields in a way I had not thought of but that clearly pointed the way to interesting innovation,” said Boswell. “He also had a point of view five to 10 years into the future, thinking about devices in a way that transcended current hardware limitations and going more to what could be common down the road.”
“He would often ask questions that connected two fields in a way I had not thought of but that clearly pointed the way to interesting innovation,” said Boswell. “He also had a point of view five to 10 years into the future, thinking about devices in a way that transcended current hardware limitations and going more to what could be common down the road.”
lundi, juillet 26, 2010
Creativity is not top priority for the emergence of an innovation culture
Posted by: innovtoday @ http://innovtoday.wordpress.com/2010/07/06/creativity-is-not-top-priority-for-the-emergence-of-an-innovation-culture/
An injection of creativity serum for all employees – if such a thing was ever invented – is not what the enterprise seeking to become more innovative needs ... So, if it is not creativity, what will make the difference? My top-three critical success factors are:
* Setting the strategic challenge
* Getting out and making connections
* Driving ideas through the stage-gate.
An injection of creativity serum for all employees – if such a thing was ever invented – is not what the enterprise seeking to become more innovative needs ... So, if it is not creativity, what will make the difference? My top-three critical success factors are:
* Setting the strategic challenge
* Getting out and making connections
* Driving ideas through the stage-gate.
vendredi, juillet 23, 2010
Apple an innovative company
By John C. Dvorak
From the iPod to the iPhone to the iPad, Apple has a nearly perfect track record of re-energizing lackluster product spaces.
Apple is doing nothing more than addressing exactly what is wrong with all of the previous initiatives.
samedi, juillet 10, 2010
jeudi, juin 17, 2010
searching for a director job position: do not forget professionals...
I am heavily involved in social networking (LinkedIn, Viadeo, Xing, Rozee), and I noticed that job positions at director's level often do not appear in "standard" social networking sites.
The best way to find these director job position is to send your resume to "professional" recruiters, such as Hays, Michael Page & co.
mardi, juin 01, 2010
2010 - Trends of next years: oil spills, strikes in China...
Oil spills: worse may be to come...
Worse may be to come. One industry insider, who asked not to be named, said: "Major spills are likely to increase in the coming years as the industry strives to extract oil from increasingly remote and difficult terrains. Future supplies will be offshore, deeper and harder to work. When things go wrong, it will be harder to respond."
Wage raises and first strikes in China
FOSHAN, CHINA/TOKYO, May 31 (Reuters) - Workers at a strike-bound Honda Motor parts factory in southern China pressed on with a drive to win higher wages on Monday while the carmaker lured back many to partly resume production. read more
And this morning the firm raised the base salary by 20%, which labour activists say will keep it narrowly ahead or in line with a rise in the minimum wage. read more
Chinese wages pose questions for exporters: Analysts at UBS, for example, estimate that Foxconn’s 30 per cent wage increase will translate into a 20 per cent reduction in company earnings this year. read more
Chinese wages pose questions for exporters: Analysts at UBS, for example, estimate that Foxconn’s 30 per cent wage increase will translate into a 20 per cent reduction in company earnings this year. read more
vendredi, mai 07, 2010
Liz Taylor knows it...
Andy Warhol wrote : "What’s great about this country is that America started the tradition where the richest consumers buy essentially the same things as the poorest. You can be watching TV and see Coca-Cola, and you know that the President drinks Coke, Liz Taylor drinks Coke, and just think, you can drink Coke, too. A Coke is a Coke and no amount of money can get you a better Coke than the one the bum on the corner is drinking. All the Cokes are the same and all the Cokes are good. Liz Taylor knows it, the President knows it, the bum knows it, and you know it.........." The Philosophy of Andy Warhol (From A to B & Back Again)
mercredi, avril 21, 2010
An History Of Inventors
Good insight into inventors personality and more generally on the way innovation occurs.
mardi, avril 20, 2010
When you need to build a java jar with external dependencies
When you need to build a java jar with external dependencies use Fat Jar Eclipse Plug-In
dimanche, avril 11, 2010
3 most important questions to ask as a recruiter or to answer as a job applicant
All questions asked during an interview for a job come down to one of the 3 following questions:
- Can the person do the work (qualifications)?
- Will the person do the work (motivation)?
- Will the person fit in company/team (adaptability)?
The goal of the interview is that the interviewer has a clear view on answers on these 3 questions.
Read details and slightly different views here:
Read details and slightly different views here:
- 3 Things Employers Look for on Your Resume
- Can the candidate solve the specific top problems I have today?
- Can the candidate build shareholder value?
- Will the employee fit in with the company’s culture?
- The 3 Things a Hiring Manager Needs to Know to Hire You
- Are you likeable?
- Are you motivated?
- Can you do the job?
- Attitude (behavior and posture)
- Appearance (attire and expression)
- Aptitude (skills and talent)
- Agility (communication skills)
Generally an individual excludes the first 2 A’s and concentrate on the last two. Observing the attitude of the interviewee helps the interviewer to determine if the candidate will fit in the prevailing organizational culture and environment. Appearance indicates interviewee’s interest towards the job and respect for the employer. According to a wise saying “You dress for the person you are going to meet and not for yourself.”
jeudi, avril 08, 2010
lambdaj errors explained
java.lang.IllegalAccessException: Class ch.lambdaj.proxy.ProxyIterator can not access a member of class XYZ with modifiers "public" at line forEach(products_byname).cropDefects();
assuming List products_byname = new List();
means that class Product should be made public.
java.lang.IllegalAccessException: Class ch.lambdaj.proxy.ProxyIterator can not access a member of class XYZ with modifiers "" at line forEach(products_byname).cropDefects();
means that method cropDefects() should be made public.
java.lang.RuntimeException: It is not possible to create a placeholder for class: java.lang.reflect.Field at line List l_null_fields = select(l_fields,having(on(Field.class).get(this),nullValue())); means that you encountered a Limitation of lambdaj caused by the Java language specification because Field is a final class.
java.lang.IllegalArgumentException: forEach() is unable to introspect on an empty iterator. Use the overloaded method accepting a class instead at line forEach(defects).updateBugActivity(stateArray); means that you encountered a Limitation of lambdaj caused by the Java language specification because defects is an empty list.
assuming List
means that class Product should be made public.
java.lang.IllegalAccessException: Class ch.lambdaj.proxy.ProxyIterator can not access a member of class XYZ with modifiers "" at line forEach(products_byname).cropDefects();
means that method cropDefects() should be made public.
java.lang.RuntimeException: It is not possible to create a placeholder for class: java.lang.reflect.Field at line List
java.lang.IllegalArgumentException: forEach() is unable to introspect on an empty iterator. Use the overloaded method accepting a class instead at line forEach(defects).updateBugActivity(stateArray); means that you encountered a Limitation of lambdaj caused by the Java language specification because defects is an empty list.
mercredi, avril 07, 2010
Java program using lambdaj
A while ago I wrote a program in Java doing some filtering and displaying without using for while statements and an other one using haskell functional language.
Today, I did the same thing (i.e. no for or while statements), but using lambdaj java library.
There is still a for statement but if you make country as an object and not a string then you can use lambdaj features.
European people: [Eric from France, Martine from France, John from Great-Britain, Martha from Great-Britain, Carine from France, Gerd from Deutschland, Giuseppe from Italia, Martha from Deutschland]
2 Get the different countries:
European countries: [Great-Britain, France, Italia, Deutschland]
3 List the people that belong to each country:
People from: [France]: [Carine from France, Eric from France, Martine from France]
People from: [Deutschland]: [Gerd from Deutschland, Martha from Deutschland]
People from: [Great-Britain]: [John from Great-Britain, Martha from Great-Britain]
People from: [Italia]: [Giuseppe from Italia]
Here is the code:
1 import static ch.lambdaj.Lambda.*; 2 import ch.lambdaj.group.*; 3 import java.util.List; 4 import java.util.Arrays; 5 import java.util.Set; 6 7 8 public class Europeans1 { 9 10 static List<People> l_europeans = Arrays.asList( 11 new People("Eric", "France"), 12 new People("Martine", "France"), 13 new People("John", "Great-Britain"), 14 new People("Martha", "Great-Britain"), 15 new People("Carine", "France"), 16 new People("Gerd", "Deutschland"), 17 new People("Giuseppe", "Italia"), 18 new People("Martha", "Deutschland")); 19 20 public static void main(String[] args) { 21 System.out.println("European people: "+l_europeans); 22 Group<People> g_countries = Groups.group(l_europeans, 23 Groups.by(on(People.class).getNationality())); 24 Set<String> set_countries = g_countries.keySet(); 25 System.out.println("European countries: "+set_countries); 26 for(String s_country:set_countries) { 27 print_inhabitants(s_country); 28 } 29 } 30 31 static void print_inhabitants(String s_country) { 32 System.out.print("People from "+s_country+": "); 33 List<People> l_inhabitants = select(l_europeans, 34 having(on(People.class).getNationality(), 35 org.hamcrest.Matchers.equalTo(s_country))); 36 forEach(l_inhabitants).printFirstName(); 37 System.out.println(""); 38 } 39 }dimanche, avril 04, 2010
Java vs Haskell
A while ago I wrote a program in Java doing some filtering and displaying without using for while statements and another one using lambdaj java library.
At that time I did not know it, but I was doing some kind of functional programming. I discovered Haskell a few weeks ago, and I duplicated what I did in Java.
As you can guess the Haskell code is way shorter, and goes even a little further.
European people: [Eric from France, Martine from France, John from Great-Britain, Martha from Great-Britain, Carine from France, Gerd from Deutschland, Giuseppe from Italia, Martha from Deutschland]
2 Get the different countries:
European countries: ["Deutschland","France","Great-Britain","Italia"]
3 List the people that belong to each country:
People from: [France]: [Carine from France, Eric from France, Martine from France]
People from: [Deutschland]: [Gerd from Deutschland, Martha from Deutschland]
People from: [Great-Britain]: [John from Great-Britain, Martha from Great-Britain]
People from: [Italia]: [Giuseppe from Italia]
import Data.List
import Data.Function
le = [
("Eric", "France"),("Martine", "France"),
("John", "Great-Britain"),("Martha", "Great-Britain"),("Carine", "France"),
("Gerd", "Deutschland"),("Giuseppe", "Italia"),("Martha", "Deutschland")
]
dla xs = "European people: " ++ show [ fst x ++ " from " ++ snd x | x <- xs]
lc xs = [ head y | y <- group(sort([ snd x | x <- xs]))]
dlc = "European countries: " ++ show(lc le)
lpc5 xps = groupBy (\x y -> snd x == snd y) (sortBy (compare `on` snd)([ xp | xp <-xps ]))
lpc9 xps = unlines [ "People from " ++ show (snd (head xp)) ++ ":" ++ (show [fst x | x<-xp ]) | xp <-xps ]
fait9 = do { m <- [lpc5 le]; lpc9 m }
dlad = [ dla le, dlc, fait9 ]
main = putStrLn (unlines(dlad))
import Data.Function
le = [
("Eric", "France"),("Martine", "France"),
("John", "Great-Britain"),("Martha", "Great-Britain"),("Carine", "France"),
("Gerd", "Deutschland"),("Giuseppe", "Italia"),("Martha", "Deutschland")
]
dla xs = "European people: " ++ show [ fst x ++ " from " ++ snd x | x <- xs]
lc xs = [ head y | y <- group(sort([ snd x | x <- xs]))]
dlc = "European countries: " ++ show(lc le)
lpc5 xps = groupBy (\x y -> snd x == snd y) (sortBy (compare `on` snd)([ xp | xp <-xps ]))
lpc9 xps = unlines [ "People from " ++ show (snd (head xp)) ++ ":" ++ (show [fst x | x<-xp ]) | xp <-xps ]
fait9 = do { m <- [lpc5 le]; lpc9 m }
dlad = [ dla le, dlc, fait9 ]
main = putStrLn (unlines(dlad))
Inscription à :
Articles (Atom)




