Innovation and Business

Innovation makes people push their limits. Imagination is the only frontline. Business is cold and reuse old ideas, which aren’t mature for commercial use when they outcome. Inventors are forgotten and Business man becomes icones.

What I liked in IT company is the innovation promotion. During the 90s two major Software Companies compete to be the leader in innovation. However Microsoft won the business challenge, Apple was the heading company and Microsoft the follower. To stay in race Microsoft bought a lot of innovative startup without a clear strategy.

Now the competition is between Google and Apple. Apple is still good at innovation and Google try to keeps the distance. As Microsoft, Google works with a lot of startup company or get inspiration from these innovative company, but with a better integration strategy.

-The Impressive Street view is born with the collaboration of a canadian company

http://en.wikipedia.org/wiki/Immersive_Media

-The Project glass comes after some years of research by different companies 

(Sony video glasses at CES 2009

Brothers …

Lumus OE-31 at CES 2012 … ).

 

But who cares, only one video make forget all these companies: Google Project Glass is every where in every mind. History is erased, only business is important and I am sad of it.

 

 

Categories: IOS

Xcode stronger than eclipse + maven

Coming from java ‘s land, I got some habits.

I was very surprised to see that xcode features seem to be as efficient as ecplise + maven.

In fact xcode got same concepts:

xcode workspace is equivalent to eclipse workspace
xcode project is equivalent to eclipse project
xcode target is equivalent to maven project
xcode scheme is like maven lifecycle.

Declarative configuration are also very similar.

Jenkins can also be used for continous integration. As in java (I have suffered a lot before maven 2.10), I spent a lot of time in configuration, linking error are very hard work
“duplicate symbol” some times appear because of category issue

see http://stackoverflow.com/questions/6629979/what-does-the-objc-linker-flag-do

Some people don’t use them because of this issues. But I can tell you it works. I succeed in not thanks to documentation, but thanks to video of WWDC, only available if you paid ….

 

 

 

Categories: IOS

Software or marketing

March 12, 2012 1 comment

Recently, I join an IOS Team.

I was in charge of designing the GUI. I was very surprised by the state of the art. However IOS 5 got a lot of advanced graphical components, a lot of things are missing, such as data binding, real skin, validators…

Yes all these things are integrated in java JDK and all these things are normalised. But right now the most buzzy langage is like java at the beginning of the year 2000….

Futhermore, objective-c is late compare to c sharp and java in graphical components framework. It’s like reinvent the wheel. I thinks that thinking different is not good in software revolution. :-)

Categories: IOS Tags:

How to survive with maven lesson two

Issues when releasing

In theory “mvn release” ease developers to release maven project, that is to say:

  1. test the code
  2. tag the corresponding source
  3. deploy the artifacts to the repository
  4. create a web site for documentation
  5. Finally prepare the next iteration

But sometimes, maven become a nightmare. In this post I will give you two examples
which illustrate the issues we have to bypass.

1) The multi modules project case

Sometimes when you use multi modules project, you design your code with some
dependencies between modules. In this example below you have three modules.

project-impl depend on project-api ….

 <modules>
 <module>project-api</module>
 <module>project-impl</module>
 <module>project-web</module>
 </modules>

In theory if the order of compilation is the same that the order in the parent pom, there’s no issue.
But in practice there’s compilation issues. Issues appear during release prepare and release perform.
Indeed release prepare has to compile the version n-SNAPSHOT artifacts and
the release perform has to compile the version n+1.

Compilation issues do not appear with mvn install so you can bypass with the following solution:

Solution very dirty

  1. mvn install (to compile version n-SNAPSHOT)
  2. mvn relase:prepare (it tags the version n in the scm)
  3. checkout the tag version
  4. mvn install (to compile version n)
  5. mvn release:perform

If you don’t do that you never deliver your project to your community.

1) The profile environment case

When you deploy artifacts on different repositories, one for developpement and one for production
you have to distinguish the two destination in the same pom.xml, that’s why you use profiles and the classifier tag.

Normally with that you will deploy your artifact in the right repository and the name
will have the right suffix.

  <profile>
   <id>production</id>
<distributionManagement>
 <repository>
 <id>production.repo</id>
 <name>My Production Repository</name>
 <url>Host to Production Repository</url>
 </repository>
 </distributionManagement>
 ...
 <classifier>prod</classifier>
 ...
  </profile>

In this example wi will have a jar filename like that artifaceID-version-prod.jar.
Unfortunately you will observe that pom.xml won’t be deploy when you release with a certain profile.

Solution crappy to deploy again the pom.xml.

Conclusion:

Maven got a lot of bugs, which forbid developpers to use right out of the box for releasing software.
You have to inform your community with crappy solution or you have to patch the maven plugin for you
community.

Categories: maven

How to survive with maven lesson one

November 27, 2010 Leave a comment

Issue on Repositories

Maven is composed by three different parts:

the binary (shell, jar and configuration xml files)
the local repository(jars and xml files)
the maven project

When you use maven you launch the binary to modify, compile and produce artifact from your maven project
all libraries are coming from repositories. This libraries are downloaded from external repositories to your local repository.

When you have a missing libraries.

The local and the external repositories does not contains your libraries.
You have to change something but what?

The default external repositories is

http://repo1.maven.org/maven2

This is configured in a xml files (from the binary) the super pom.
You have to change it or to add other external repositories.

1) add new repositories in the pom file of your maven project

like that

 <project>
...
 <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

2) add a mirror in the settings.xml

like that

<settings>
...
  <mirrors>
    <mirror>
      <id>UK</id>
      <name>UK Central</name>
      <url>http://uk.maven.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

Conclusion:

When you have missing libraries, you have to find which external repositories contains your libraries.
You can googled to find them. Then you have to add the external repositories.
The first way add specific repositories to your maven project.

The second one is to handle failure when repo1 is down.

Categories: maven

Maven heaven or hell

A long time ago when I began to work, I was amazed, I discovered a magic command. The name of this fabulous command was make. Indeed this command did everything, I didn’t have to say words, it did it.
But sometimes it did wrong, I thought it depend of the mood of my computer. Unfortunately it was always complicate to debug.

Some decades later, I am less naive. But sometimes I think that Maven, is a lit bit like make, magic, moody and complicate.
In fact I think Maven is good for automate the build process, but not for replacing my IDE.

After developping java projects with Maven during thee years, I know that Maven is not easy, and can’t be used just out of the box.
That’s why I decide to write some post about it.
I will name it Maven heaven or hell or how to survive when maven won’t work.

Categories: maven

Taranis is available


The first version of taranis is now available.
This software will help you to save your credentials on your personal web site.
This software is composed of a client and a server.

You can download these at this urls:

http://willll.linux-quebec.ca/taranis/

This software help you to save your credentials in your pc.
This is useful, when you don’t want to let your password on the other computer than yours.

First you have to install your taranis server.

Second you have to fill the configuration form with url: http://hostname/index.php/loginManager.


Third you use firefox as usual and you can store your login and password to your taranis server.

Then enjoy you can use your Firefox as usual, the only difference is you don’t let your private data, in Firefox database.

This addon will be soon available on https://addons.mozilla.org.

Follow

Get every new post delivered to your Inbox.