• apache_maven

    We had serious performance problems with MAVEN in our environment. It seems to be a recurrent problem
    for MAVEN... anyway I did came through the following changes...the 2.0.9.db1 Maven2 patch make really
    Maven fly!

    General settings to speed up Maven:

    • More memory for Maven process, change the launcher of eclipse to set MAVEN_OPTS like this:
      -DMAVEN_OPTS="-Xms64m –Xmx128m"
    • Use the latest version of Maven, but be careful of regressions! the latest as for today is 2.0.9
    • There is a patch available for Maven 2.0.9, which speed up build by 40%. It is just simply day and
      night! try it, you'll love it! Basically Don Brown alter MAVEN2 2.0.9 to

    General settings to speed up Eclipse:

    1. Use javaw.exe to start eclipse and not java.exe (more for console base program with a lot of feedback),
      while javaw.exe is more for graphical environment.
    2. Aggressive JIT and double core processors should use:  
       -XX:-UseParallelGC -XX:+AggressiveOpts -XX:-UseConcMarkSweepGC -XX:+UseFastAccessorMethods
    3. Give more memory, MORE MEMORY for eclipse, on a 4GB machine, these are my settings: 
      -Xms768m -Xmx1024m -XX:MaxPermSize=256m
    4. Reduce the number of warning reported by eclipse per compilation unit (class), default is 100, reduce it to 10.
      It help nobody to see a workspace slowing down because of too many warning logging.
      Remove the warnings instead ;-)
    5. SVN console with subversive is too verbose as default, go to eclipse preferences - Team – SVN - Console.
      Logging SVN errors should be enough.
    6. Use a Defragmenter! NTFS fragment fast with so many small files in workspace, every 2 week is a good practice.
    7. I am using Java 1.6u10 (BETA!) and have experience no crash till now,
      being on the edge can be costly in time through. Maven forking should benefit from the reduce java kernel
      size and bootstrap time
  • When working with many feature/release/bugix/hotfix branches, it is a bad idea to start changing the pom version as this will create merge conflicts using pull request. this plugin allow you to keep in ALL branches the same pom version for all your projects, for example MASTER-SNAPSHOT the version will be derived from branch name automagically :-)

    You may want to read more first these 2 short articles

    git-branch-renamer-maven-plugin allow you to keep in ALL branches the same pom version for all your projects: for example MASTER-SNAPSHOT and never change it again.

    the project version will be derived from branch name automatically when running in your continuous integration server.

    branch name feature/xxxx

    • <version>xxxx-SNAPSHOT</version> (default)
    • <version>xxxx</version> (release = true)
    • <version>0-xxxx-SNAPSHOT</version> (forceNumericalVersion = true)
    • <version>feature-xxxx-SNAPSHOT</version> (filterOutBranchQualifier = false)

    The project is hosted at Github https://github.com/cedricwalter/git-branch-renamer-maven-plugin 

  • From http://www.bunniestudios.com/wordpress/?p=74 the man wo break the first XBOX.

    At any rate, some very interesting things are afoot. Much of it stems from the discovery of an all-media bootable kiosk demo disk. Many hackers will instantly recognize the value of this, but it’s still interesting to reflect on the significance of this find. Like the original Xbox, the Xbox360 uses a media flag on its executables.

    The media flag tells the OS what type of media it should be on; typically, games are released with the flag set to Microsoft’s proprietary secure Xbox DVD format (which is in itself not that secure…). Significantly, only the executable is signed for a game; the data sections typically are not signed (presumably for performance reasons). Thus, one has the ability to fuzz the executable by corrupting the data sections, potentially invoking a buffer overrun or some other unintentional behavior–if one could effectively modify the data sections. Remember that this is normally not possible, since modifying the data segment requires making a copy to a writeable media, and this contradicts the signed media flag.

    Thus, the run-anywhere demo disk now enables software hackers to create and test the interaction of signed executables with modified game data using no tool other than a DVD-RW drive (and an Xbox360 console, still considerably rare and difficult to obtain in the US). Some of the more interesting modifiable data regions include Shockwave Flash movies, and the pixel shaders executed by the GPU (more info can be found on the xboxhacker.net website). Of particular interest is the MEMEXPORT shader command in the 360, which could enable people to dump physical memory to the screen (where it can be digitized or extracted with a sniffer upstream of the ANA chip), or to some other peripheral function. Presuming plaintext kernel code can be extracted this way, it bootstraps further efforts in vulnerability analysis of the code running in the Xbox…and so forth. Of course, its quite possible that this hole is plugged, since Microsoft’s NGSCB spec calls for the Northbridge to limit DMA access from the graphics card to main memory. Furthermore, buffer overrun exploits have questionable applicability since each process runs as its own virtual machine and rumors has it that the no-execute bit is used on heap space. Still, I’m very surprised that such a media was even released into the wild by Microsoft…their own worst enemy is their own haste to get to the market and carelessness; security is for naught without consideration of human factors. Very exciting! Perhaps the Xbox360 will be opened without the need for significant hardware hacking.
  • Since January 10th this year, it has become illegal to use radar POI in Switzerland, to warn of safety cameras and mobile speed surveillance locations.

    Sorry I love Swizerland, but on this one,  i can't understand it.

    The Swiss police are currently actively searching for navigational systems with any type of camera pre-warning that are being used while driving. When such a device is found, the device is confiscated and destroyed and the motorist can also expect a fine. Not only has the use of these warning devices been banned, but their production, import or sale has also become illegal. Swiss road authority ASTRAannounced these measures on January 8th.

    ASTRA has released adocument with answers to frequently asked questions.

    "Solche Führer stören die Homogenität des Verkehrs und das Verkehrsklima, und sie animie-ren überdies andere Strassenbenützer zu Ge-schwindigkeitsmissachtungen."

    hahaha just say You're are loosing million of CHF. I just hope manufactures, shops will be able to change that ridiculous law. On the other side we will see a lot of confiscated GPS device on flea market sold by police officer.

    And here TomTom answer: Ist die Nutzung des TomTom Radarkamera-Dienstes legal?

  • Hackers have modified an estimated 150,000 of the 9 million Xboxes Microsoft has sold worldwide to turn them into PCs that would normally cost $800 or more. What you need:
    1. A new Xbox, with 733-megahertz processor, custom graphics chip, 8-gigabyte hard drive: $149
    2. A keyboard and mouse, with adapters: $35
    3. A modified start-up chip: $21
    4. 120-gigabyte hard drive: $120
    5. Linux ans some free software: $0
    Total: $325
    Source: USA TODAY research

    Valentines Day is a day to express your love, and to celebrate the spirit of love.
    Afrikaans - Ek het jou lief
    Albanian - Te dua
    Arabic - Ana behibak (to male)
    Arabic - Ana behibek (to female)
    Armenian - Yes kez sirumen
    Bambara - M'bi fe
    Bangla - Aamee tuma ke bhalo baashi
    Belarusian - Ya tabe kahayu
    Bisaya - Nahigugma ako kanimo
    Bulgarian - Obicham te
    Cambodian - Bung Srorlagn Oun (to female)
    Oun Srorlagn Bung (to male)
    Cantonese/Chinese  Ngo oiy ney a
    Catalan - T'estimo
    Cheyenne - Ne mohotatse
    Chichewa - Ndimakukonda
    Corsican - Ti tengu caru (to male)
    Creol - Mi aime jou
    Croatian - Volim te
    Czech - Miluji te
    Danish - Jeg Elsker Dig
    Dutch - Ik hou van jou
    English - I love you
    Esperanto - Mi amas vin
    Estonian - Ma armastan sind
    Ethiopian - Ewedishalehu : male/female to female
    Ewedihalehu: male/female to male.
    Faroese - Eg elski teg
    Farsi - Doset daram
    Filipino - Mahal kita
    Finnish - Mina rakastan sinua
    French - Je t'aime, Je t'adore
    Gaelic - Ta gra agam ort
    Georgian - Mikvarhar
    German - Ich liebe dich
    Greek - S'agapo
    Gujarati - Hu tumney prem karu chu
    Hiligaynon - Palangga ko ikaw
    Hawaiian - Aloha wau ia oi
    Hebrew - Ani ohev otah (to female)
    Hebrew - Ani ohev et otha (to male)
    Hiligaynon - Guina higugma ko ikaw
    Hindi - Hum Tumhe Pyar Karte hai
    Hmong - Kuv hlub koj
    Hopi - Nu' umi unangwa'ta
    Hungarian - Szeretlek
    Icelandic - Eg elska tig
    Ilonggo - Palangga ko ikaw
    Indonesian - Saya cinta padamu
    Inuit - Negligevapse
    Irish - Taim i' ngra leat
    Italian - Ti amo
    Japanese - Aishiteru
    Kannada - Naa ninna preetisuve
    Kapampangan - Kaluguran daka
    Kiswahili - Nakupenda
    Konkani - Tu magel moga cho
    Korean - Sarang Heyo
    Latin - Te amo
    Latvian - Es tevi miilu
    Lebanese - Bahibak
    Lithuanian - Tave myliu
    Malay - Saya cintakan mu / Aku cinta padamu
    Malayalam - Njan Ninne Premikunnu
    Mandarin Chinese - Wo ai ni
    Marathi - Me tula prem karto
    Mohawk - Kanbhik
    Moroccan - Ana moajaba bik
    Nahuatl - Ni mits neki
    Navaho - Ayor anosh'ni
    Nepali - Ma Timilai Maya Garchhu
    Norwegian - Jeg Elsker Deg
    Pandacan - Syota na kita!!
    Pangasinan - Inaru Taka
    Papiamento - Mi ta stimabo
    Persian - Doo-set daaram
    Pig Latin - Iay ovlay ouyay
    Polish - Kocham Cie
    Portuguese - Eu te amo
    Romanian - Te ubesc
    Roman Numerals - 333
    Russian - Ya tebya liubliu
    Rwanda - Ndagukunda
    Scot Gaelic - Tha gra\dh agam ort
    Serbian - Volim te
    Setswana - Ke a go rata
    Sign Language - ,\,,/ (represents position of fingers when signing 'I Love You'
    Sindhi - Maa tokhe pyar kendo ahyan
    Sioux - Techihhila
    Slovak - Lu`bim ta
    Slovenian - Ljubim te
    Spanish - Te quiero / Te amo
    Surinam- Mi lobi joe
    Swahili - Ninapenda wewe
    Swedish - Jag alskar dig
    Swiss-German - Ich lieb Di
    Tagalog - Mahal kita
    Taiwanese - Wa ga ei li
    Tahitian - Ua Here Vau Ia Oe
    Tamil - Naan unnai kathalikiraen
    Telugu - Nenu ninnu premistunnanu
    Thai - Chan rak khun (to male)
    Thai - Phom rak khun (to female)
    Turkish - Seni Seviyorum
    Ukrainian - Ya tebe kahayu
    Urdu - mai aap say pyaar karta hoo
    Vietnamese - Anh ye^u em (to female)
    Vietnamese - Em ye^u anh (to male)
    Welsh - 'Rwy'n dy garu
    Yiddish - Ikh hob dikh
    Yoruba - Mo ni fe
    Zimbabwe - Ndinokuda
  • I will try to keep an history of all my previous machine on this page...yes it is just a nerd/geek behavior...


    In 15 years...

    • Cost in euro are in green, are similar in amount, you just get more size, disk, speed for your buck
    • 1208 times more IPS and my PC is still sometimes hanging (In order Vista, XP, Linux I look at you) :-(
    • 81 times more disk space!
    • Power consumption 360 watts today :-(
    • PC are still slower than what I expect...


    Instructions per second (IPS) is a measure of a computer's processor speed. Many reported IPS
    values have represented "peak" execution rates on artificial instruction sequences with few branches,
    whereas realistic workloads consist of a mix of instructions and even applications, some of which take
    longer to execute than others. The performance of the memory hierarchy also greatly affects processor
    performance, an issue barely considered in MIPS calculations. Because of these problems, researchers
    created standardized tests such as SPECint to (maybe) measure the real effective performance in
    commonly used applications, and raw IPS has fallen into disuse. [WikiPedia]

  • ISO 8859-1 Symbol Entities

    Result Description Entity Name Entity Number
      non-breaking space &nbsp; &160;
    ¡ inverted exclamation mark &iexcl; &161;
    ¤ currency &curren; &164;
    ¢ cent &cent; &162;
    £ pound &pound; &163;
    ¥ yen &yen; &165;
    ¦ broken vertical bar &brvbar; &166;
    § section &sect; &167;
    ¨ spacing diaeresis &uml; &168;
    © copyright &copy; &169;
    ª feminine ordinal indicator &ordf; &170;
    « angle quotation mark (left) &laquo; &171;
    ¬ negation &not; &172;
    ­ soft hyphen &shy; &173;
    ® registered trademark &reg; &174;
    ™ trademark &trade; &8482;
    ¯ spacing macron &macr; &175;
    ° degree &deg; &176;
    ± plus-or-minus  &plusmn; &177;
    ² superscript 2 &sup2; &178;
    ³ superscript 3 &sup3; &179;
    ´ spacing acute &acute; &180;
    µ micro &micro; &181;
    paragraph &para; &182;
    · middle dot &middot; &183;
    ¸ spacing cedilla &cedil; &184;
    ¹ superscript 1 &sup1; &185;
    º masculine ordinal indicator &ordm; &186;
    » angle quotation mark (right) &raquo; &187;
    ¼ fraction 1/4 &frac14; &188;
    ½ fraction 1/2 &frac12; &189;
    ¾ fraction 3/4 &frac34; &190;
    ¿ inverted question mark &iquest; &191;
    × multiplication &times; &215;
    ÷ division &divide; &247;
    À capital a, grave accent &Agrave; &192;
    Á capital a, acute accent &Aacute; &193;
    Â capital a, circumflex accent &Acirc; &194;
    Ã capital a, tilde &Atilde; &195;
    Ä capital a, umlaut mark &Auml; &196;
    Å capital a, ring &Aring; &197;
    Æ capital ae &AElig; &198;
    Ç capital c, cedilla &Ccedil; &199;
    È capital e, grave accent &Egrave; &200;
    É capital e, acute accent &Eacute; &201;
    Ê capital e, circumflex accent &Ecirc; &202;
    Ë capital e, umlaut mark &Euml; &203;
    Ì capital i, grave accent &Igrave; &204;
    Í capital i, acute accent &Iacute; &205;
    Î capital i, circumflex accent &Icirc; &206;
    Ï capital i, umlaut mark &Iuml; &207;
    Ð capital eth, Icelandic &ETH; &208;
    Ñ capital n, tilde &Ntilde; &209;
    Ò capital o, grave accent &Ograve; &210;
    Ó capital o, acute accent &Oacute; &211;
    Ô capital o, circumflex accent &Ocirc; &212;
    Õ capital o, tilde &Otilde; &213;
    Ö capital o, umlaut mark &Ouml; &214;
    Ø capital o, slash &Oslash; &216;
    Ù capital u, grave accent &Ugrave; &217;
    Ú capital u, acute accent &Uacute; &218;
    Û capital u, circumflex accent &Ucirc; &219;
    Ü capital u, umlaut mark &Uuml; &220;
    Ý capital y, acute accent &Yacute; &221;
    Þ capital THORN, Icelandic &THORN; &222;
    ß small sharp s, German &szlig; &223;
    à small a, grave accent &agrave; &224;
    á small a, acute accent &aacute; &225;
    â small a, circumflex accent &acirc; &226;
    ã small a, tilde &atilde; &227;
    ä small a, umlaut mark &auml; &228;
    å small a, ring &aring; &229;
    æ small ae &aelig; &230;
    ç small c, cedilla &ccedil; &231;
    è small e, grave accent &egrave; &232;
    é small e, acute accent &eacute; &233;
    ê small e, circumflex accent &ecirc; &234;
    ë small e, umlaut mark &euml; &235;
    ì small i, grave accent &igrave; &236;
    í small i, acute accent &iacute; &237;
    î small i, circumflex accent &icirc; &238;
    ï small i, umlaut mark &iuml; &239;
    ð small eth, Icelandic &eth; &240;
    ñ small n, tilde &ntilde; &241;
    ò small o, grave accent &ograve; &242;
    ó small o, acute accent &oacute; &243;
    ô small o, circumflex accent &ocirc; &244;
    õ small o, tilde &otilde; &245;
    ö small o, umlaut mark &ouml; &246;
    ø small o, slash &oslash; &248;
    ù small u, grave accent &ugrave; &249;
    ú small u, acute accent &uacute; &250;
    û small u, circumflex accent &ucirc; &251;
    ü small u, umlaut mark &uuml; &252;
    ý small y, acute accent &yacute; &253;
    þ small thorn, Icelandic &thorn; &254;
    ÿ small y, umlaut mark &yuml; &255;
    Πcapital ligature OE &OElig; &338;
    œ small ligature oe &oelig; &339;
    Š capital S with caron &Scaron; &352;
    š small S with caron &scaron; &353;
    Ÿ capital Y with diaeres &Yuml; &376;
    ˆ modifier letter circumflex accent &circ; &710;
    ˜ small tilde &tilde; &732;
      en space &ensp; &8194;
      em space &emsp; &8195;
      thin space &thinsp; &8201;
    &8204; zero width non-joiner &zwnj; &8204;
    &8205; zero width joiner &zwj; &8205;
    &8206; left-to-right mark &lrm; &8206;
    &8207; right-to-left mark &rlm; &8207;
    – en dash &ndash; &8211;
    — em dash &mdash; &8212;
    ‘ left single quotation mark &lsquo; &8216;
    ’ right single quotation mark &rsquo; &8217;
    ‚ single low-9 quotation mark &sbquo; &8218;
    “ left double quotation mark &ldquo; &8220;
    ” right double quotation mark &rdquo; &8221;
    „ double low-9 quotation mark &bdquo; &8222;
    † dagger &dagger; &8224;
    ‡ double dagger &Dagger; &8225;
    … horizontal ellipsis &hellip; &8230;
    ‰ per mille  &permil; &8240;
    ‹ single left-pointing angle quotation &lsaquo; &8249;
    › single right-pointing angle quotation &rsaquo; &8250;
    € euro &euro; &8364;
  • Message Description
    100 Continue Only a part of the request has been received by the server, but as long as it
     has not been rejected, the client should continue with the request
    101 Switching Protocols The server switches protocol
    200 OK The request is OK
    201 Created The request is complete, and a new resource is created 
    202 Accepted The request is accepted for processing, but the processing is not complete
    203 Non-authoritative Information  
    204 No Content  
    205 Reset Content  
    206 Partial Content  
    300 Multiple Choices A link list. The user can select a link and go to that location. Maximum five addresses  
    301 Moved Permanently The requested page has moved to a new url 
    302 Found The requested page has moved temporarily to a new url 
    303 See Other The requested page can be found under a different url 
    304 Not Modified  
    305 Use Proxy  
    306 Unused This code was used in a previous version. It is no longer used, but the code is reserved
    307 Temporary Redirect The requested page has moved temporarily to a new url
    400 Bad Request The server did not understand the request
    401 Unauthorized The requested page needs a username and a password
    402 Payment Required You can not use this code yet
    403 Forbidden Access is forbidden to the requested page
    404 Not Found The server can not find the requested page
    405 Method Not Allowed The method specified in the request is not allowed
    406 Not Acceptable The server can only generate a response that is not accepted by the client
    407 Proxy Authentication Required You must authenticate with a proxy server before this request can be served
    408 Request Timeout The request took longer than the server was prepared to wait
    409 Conflict The request could not be completed because of a conflict
    410 Gone The requested page is no longer available 
    411 Length Required The "Content-Length" is not defined. The server will not accept the request without it 
    412 Precondition Failed The precondition given in the request evaluated to false by the server
    413 Request Entity Too Large The server will not accept the request, because the request entity is too large
    414 Request-url Too Long The server will not accept the request, because the url is too long.
    Occurs when you convert a "post" request to a "get" request with a
    long query information 
    415 Unsupported Media Type The server will not accept the request, because the media type is not supported 
    417 Expectation Failed  
    500 Internal Server Error The request was not completed. The server met an unexpected condition
    501 Not Implemented The request was not completed. The server did not support the functionality required
    502 Bad Gateway The request was not completed. The server received an invalid response from the
    upstream server
    503 Service Unavailable The request was not completed. The server is temporarily overloading or down
    504 Gateway Timeout The gateway has timed out
    505 HTTP Version Not Supported The server does not support the "http protocol" version
  • apache_maven

    I was fighting today against the maven-release-plugin of maven, solving complicated  errors in a row. As I am convince I made all possible errors,   I think it is worse to compile my findings here to help others :-)

    Maven Release Plugin

    This plugin is used to release a project with Maven, saving a lot of repetitive, manual work. Releasing a project is made in two steps: prepare and perform.

    My approach to speed up things is always to define a small project (in a sandbox SVN root) that is compiling and running in 10 seconds to make some test before trying to make it run on our bigger Innoveo Skye(tm) product (35 modules)

    I always have 2 projects prepared:

    • One TestSimpleProject: one Maven project with no code
    • One TestComplexProject: one maven project and 2 Maven sub modules

    For the reader that can not wait here is the running command line from TeamCity to be put in Build Runner Goals

    release:clean release:prepare release:perform -Dusername=xxxxxxx -Dpassword=yyyyyy


    Latest SVN client is  recommended

    You need the latest SVN command line client on all TeamCity  agent, or  at least not any SVN command line client > 1.5.x which don’t work (but 1.5.0 would have). We were using 1.5.1 of course on all our server (Murphy’s laws)

    Use at least a Subversion SVN client (1.6.6 as for today).

    If you dont have any SVN command line installed in your TeamCity agents, you’'ll  end with this easy to understand error

    [INFO] Unable to check for local modifications
    Provider message:
    The svn command failed.
    Command output:
    /bin/sh: svn: command not found
    [INFO] Trace
    org.apache.maven.BuildFailureException: Unable to check for local modifications
    Provider message:
    The svn command failed.
    Command output:
    /bin/sh: svn: command not found
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
    [11:34:40]: at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

    The  maven release plugin require SVN client to be installed.

    Update maven-release-plugin to the latest

    You need to update maven-release-plugin away from 2.0.beta9 to 2.0 to solve the issue with multi module release. Luckily for me the 2.0 is available since 10 February 2010 Older version were working for simple Maven project (a project with no Maven module)  but not with Multi Modules Projects!

    With 2.0-beta9 I was getting this error in Multi Modules Projects!

    [18:41:46]:[ERROR] BUILD FAILURE
    [18:41:46]: [INFO] ------------------------------------------------------------------------
    [18:41:46]: [INFO] Unable to tag SCM
    [18:41:46]: Provider message:
    [18:41:46]: The svn tag command failed.
    [18:41:46]: Command output:
    [18:41:46]: svn: Commit failed (details follow):
    [18:41:46]: svn: File '/svn/xxxxx/skye/tags/skye-2.1.0.M8/skye-admin/pom.xml' already exists
    [18:41:46]: [INFO] Trace
    [18:41:46]: org.apache.maven.BuildFailureException: Unable to tag SCM
    [18:41:46]: Provider message:
    The svn tag command failed.
    [18:41:46]: Command output:
    [18:41:46]: svn: Commit failed (details follow):
    [18:41:46]: svn: File '/svn/xxxxx/skye/tags/skye-2.1.0.M8/skye-admin/pom.xml' already exists

    Invalid certificate handling

    Sometimes an issue if you craft some certificate yourself, You need to import certificate in each TeamCity build agent by running

    # svn co https://svn.xxxxxx.com/svn/yyyyyy/skye

    at least once and accepting permanently the certificate (break the command afterward) Do this with the same UNIX user under which the agent run or you’ll always get this error:

    [11:52:11]:[ERROR] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Unable to checkout from SCM
    Provider message:
    The svn command failed.
    Command output:
    svn: OPTIONS of 'https://xxxxx.: Server certificate verification failed: certificate issued
                      for a different hostname, issuer is not trusted (xxxxxxxxx)
    [INFO] Trace
    org.apache.maven.BuildFailureException: Unable to checkout from SCM
    Provider message:
    The svn command failed.
    [11:52:11]: Command output:

    Maven 2.2.1 wrongly calculate SCM commit URL

    You can not use in <scm> tag this kind of URL’s https://user:This email address is being protected from spambots. You need JavaScript enabled to view it.  like in the example below:

    <connection>scm:svn:https://username:This email address is being protected from spambots. You need JavaScript enabled to view it./svn/yyyyy/skye/trunk/skye</connection>
    <developerConnection>scm:svn:https://username:This email address is being protected from spambots. You need JavaScript enabled to view it./svn/yyyyy/skye/trunk/skye</developerConnection>
    <url>scm:svn:https://username:This email address is being protected from spambots. You need JavaScript enabled to view it./svn/yyyyy/skye/trunk/skye</url>

    Even if the documentation state otherwise, as the maven-release-plugin go “crazy” by concatenating wrongly the tagging URL.

    [17:32:47]: [INFO] Working directory: /home/agent/buildagent/work/3d299c4b925af39b/TestRelease
    [17:32:47]: [INFO] ------------------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] Unable to tag SCM
    Provider message:
    The svn tag command failed.
    Command output:
    svn: Source and dest appear not to be in the same repository
                         (src: 'https://svn.xxxxxx.com/svn/xxxxxxx/Sandbox/trunk';
                         dst: 'https://xxxxxxx:This email address is being protected from spambots. You need JavaScript enabled to view it./svn/xxxxxx/Sandbox/tags/TestRelease-0.0.11')
    [17:32:47]: [INFO] ------------------------------------------------------------------------

    I found a workaround by adding environment variables in the TeamCity build in the list of Maven Goals:                 

    –Dusername=xxxx –Dpassword=yyyy

    Beware of invalid SCM URL

    SCM (Software Configuration Management, also called Source Code/Control Management or, succinctly, version control) is an integral part of any healthy project. If your Maven project uses an SCM system (it does, doesn't it?) then here is where you would place that information into the POM.

    A lot of example are floating around in internet about <scm> values that look like this:


    With the above, you’ll end up tagging your whole trunk under a new tags in https://svn.xxxxx.com/svn/yyyyy/skye/tags/skye-2.1.0

    No one is saying that you' should better have this, end up your scm connection with the project you would like to tag


    Failure to deploy newly artifact

    This one is also irritating, because running a build in TeamCity with the goal : deploy run perfectly, the same build in prepare:release perform:release failed miserably at the end with

    [19:26:08]: [INFO] [INFO] ------------------------------------------------------------------------
    [19:26:08]: [INFO] [INFO] Error deploying artifact: Failed to transfer file: http://artifactory.xxxxxx.com:/libs-releases-local/…
                                           . Return code is: 401[19:26:08]:
    [INFO] ------------------------------------------------------------------------
    [INFO] Maven execution failed, exit code: '1'
    [19:26:08]: [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    org.apache.maven.lifecycle.LifecycleExecutionException: Maven execution failed, exit code: '1'
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
    [19:26:08]: at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

    I was not able to find a workaround to this one, the build is running without the maven-release-plugin and deploy correctly to artifactory! But I managed to get around it by using in place of the stable Maven 2.2.1 the latest version 3.0.alpha7!!!!

    I hope this post will help some of you.

  • No Xbox You can modded, but still wanting to use this beautiful piece of software: XBMC ?

    You may take a look at the Media Portal
    "Media Portal turns your PC in a very advanced Multi MediaCenter / HTPC.

    It allows you to listen to your favorite music & radio, watch your video's and DVD's, view, schedule and record live TV and much more. You get Media Portal for free/nothing/nada/noppes and best of all it is opensource. This means anyone can help developing Media Portal or tweak it for their own needs!"

    It is using a regular PC architecture and has more possibilities like MPG recording, TV (PVR). It cost also a lot more too, but it is still less expensive than M$ media center 2005 and is not cripled with Digital Right Management (DRM [wikipedia]) technology.

    Project homepage of mediaportal

    {mosgoogle center}

  • I am currently trying to look for the best streaming solution (in order to unleash the power of my new Home Cinema). While there is a lot of hardware and software solutions on the
    market, it is quite difficult if not impossible to futhfillall my wishes...

    Currently I have following possibilities:
    1. Buy a dedicated embedded appliance (Hauppauge, Pinnacle, linksys others) they are cheap but firmwares update is dependent of a company, and not all movies may be correctly played on them.
    2. Mod a device, XBOX (powered by XBMC) and/or XBOX360 (soon possible with I.C.E mod chip??) and run a dedicated Linux HTPC on top of it.
    3. Buy a dedicated Media Center PC but then It is full of DRM, and I am blocked in a Microsoft world....expensive, noisy (for the least expensive model)
    4. Build a customs PC, with selected and dedicated hardware and run on top of it, Microsoft MCE 2005or Linux MythTV (www.mythtv.org) or MediaPortal  (www.team-mediaportal.com)
    5. Buy a dedicated powerful appliance, for example a Dreambox (www.dream-multimedia-tv.de), but I would rather wait on the Dreambox HDTV model
    My preferences would go to 5 (if available), or 2 (the XBOX360) but I may try 4.

    Anyway, I will document the build and show here the result. In between, You may be interested by these links:
    • The Linux HTPC How toThe purpose of the Linux HTPC How to is to help educate people who are interested in learning about or building their own media computer (aka HTPC).
    • MediaPortal is an Open Source application ideal for turning your PC in a very advanced Multi-Media Center / HTPC. MediaPortal allows you to listen to your favorite music & radio, watch your video's and DVD's, view, schedule and record live TV and much more. You get MediaPortal for free, as Open Source software. This means anyone can help develop MediaPortal or tweak-it for their own needs
  • Introductiontom2eclipse

    The Eclipse IDE is the most widely used IDE for Java development today. At the same time, Apache Maven continues to mature, and has grown to be the industry standard for creating extensible and reliable enterprise builds. While it is certainly possible to develop applications in Eclipse and use Maven as a command-line build tool, most developers expect the IDE to know how to invoke and interact with the build tool they are using.

    Enter m2eclipse. Them2eclipse project provides support for Maven within the Eclipse IDE. It is a plugin which helps bridge the gaps between Maven and Eclipse. Using m2eclipse you can develop a large multi-module project with nested Maven modules and have this hierarchical structure reflected in your Eclipse IDE. Using m2eclipse, you can launch and manage your project's Maven build using editors, and your IDE will become aware of both the local and remote Maven repositories allowing you to quickly search for and locate any artifact made available in the Maven repository. m2eclipse will also change the way you create projects with a novel and easy-to-use interface for creating projects from Maven Archetypes.

    In this article, we will explore the features m2eclipse provides and help you start using an Eclipse plugin which provides real Maven integration for the best IDE platform available. After reading this article you should have enough information to install the m2eclipse plugin and start creating or importing existing Maven projects into your Eclipse workspace. You will also have an idea of some of the features provided the plugin. read more at ServerSide

  • apache_maven

    Static analysis is in the verification of properties of software used in safety-critical computer systems and locating potentially vulnerable/buggy code. it is desirable to make your build fails at compile/test phases to detect faults earlier. Thanks to JSFUnit and Maven, you’ll be able to plug a JSF checker in your build with no effort.

    JSFUnit is a test framework for JSF applications. It is designed to allow complete integration testing and unit testing of JSF applications using a simplified API. JSFUnit tests run inside the container, which provides the developer full access to managed beans, the FacesContext, EL Expressions, and the internal JSF component tree. At the same time, you also have access to parsed HTML output of each client request.

    JSFUnit provides a set of unit tests for static analysis of JSF applications. Compare to JSFUnit, you can run these tests without any container, in Maven phase “test” like any regular Unit Test

    Views tests (JSFUnitStaticAnalysisViewTest.java)

    • Do any of your facelets templates or well formed JSPs reference nonexistent managed beans?
    • Do any of your templates or JSPs have EL expressions for nonexistent managed bean actions or action listeners?

    Faces-configurations tests (JSFUnitStaticAnalysisFacesConfigTest.java)

    • Are all of your session and application scoped beans Serializable?
    • Invalid Managed Bean Scope?
    • Missing Managed Bean Class?
    • Faces Configurations Class Inheritance?
    • Missing Setter Methods?
    • Duplicate Managed Bean Names?

    TLD tests (JSFUnitStaticAnalysisFacesConfigTest.java)

    • Correct Tag Attribute Types?
    • Unique Tag Names?
    • Correct Tag Inheritance?
    • Unique Tag Attributes?


    Put the following in your web project pom.xml (the pom.xml with <packaging>war</packaging>) between <dependencies> .. </dependencies>, Note that this dependency is only available in scope “test”

        <!-- TLD test  dependencies  below, for
             View and facesConfig not needed-->

    Add the following repository in your pom, settings.xml or your Maven proxy repository (Artifactory for example).


    Create now 3 test classes in /src/test/java


    package com.waltercedric.jsfunit;
    import java.util.HashSet;
    import java.util.Set;
    import org.jboss.jsfunit.analysis.AbstractViewTestCase;
    public class JSFUnitStaticAnalysisViewTest extends AbstractViewTestCase {
      private static Set absoluteViewPaths = new HashSet<String>() {
          // add("C:/work/project/src/home.xhtml");
      private static Set recursiveViewPaths = new HashSet<String>() {
      public JSFUnitStaticAnalysisViewTest() {
        super(absoluteViewPaths, recursiveViewPaths,


    package com.waltercedric.jsfunit;
    import java.util.HashSet;
    import java.util.Set;
    import org.jboss.jsfunit.analysis.AbstractFacesConfigTestCase;
    public class JSFUnitStaticAnalysisFacesConfigTest extends AbstractFacesConfigTestCase {
      private static Set<String> paths = new HashSet<String>() {
      public JSFUnitStaticAnalysisFacesConfigTest() {


    package com.waltercedric.jsfunit;
    import java.util.HashSet;
    import java.util.Set;
    import org.jboss.jsfunit.analysis.AbstractTldTestCase;
    public class JSFUnitStaticAnalysisTldTest extends AbstractTldTestCase {
      private static Set<String> paths = new HashSet<String>() {
      public TldTestCase() {


  • inspire-1-aircraft

    Dà-Jiāng Innovations Science and Technology Co., Ltd (Chinese: 大疆创新科技有限公; marketed as DJI) is a Chinese technology company founded in 2006 by Frank Wang (Wāng Tāo, Chinese: 汪滔) and headquartered in Shenzhen, Guangdong. It manufactures unmanned aerial vehicles (UAV) for aerial photography and videography, gimbals, flight platforms, cameras, propulsion systems, camera stabilizers, and flight controllers.

    The DJI Inspire 1 is brand new quadcopter capable of capturing 4K video and transmitting an HD video signal (up to 2km) to multiple devices straight out of the box. Equipped with retractable landing gear, it can capture an unobstructed 360 degree view from its camera. The built-in camera has an integrated gimbal to maximize stability and weight efficiency while minimizing space. When no GPS signal is available, Vision Positioning technology provides hovering precision.

    DJI’s most advanced technology comes together in an easy to use, all-in-one flying platform that empowers you to create the unforgettable.


  • apache_maven

    It is not unusual in a project to have a huge number of third party artifacts and Plug-in. Apache Maven help you keep track of them, along with their transitive dependencies.

    But how do you know when a new version of an artifact is available?  This is where the Maven Versions plug-in come hand in.

    The Versions Plug-in is used when you want to manage the versions of artifacts in a project's POM.

    By running

    mvn versions:display-dependency-updates

    in any Apache Maven project or modules, you’ll get for example (we have a lot of 25 Maven modules, here is only one presented as an example, the list being too long)

    [INFO] --------------------------------------------------------------------------------------------------
    [INFO] Building Unnamed - com.innoveo:skye-services-api:jar:2.2.0-M-06
    [INFO] --------------------------------------------------------------------------------------------------
    [INFO] The following dependencies in Dependency Management have newer versions:
    [INFO]   junit:junit............................................. 4.4 -> 4.8.1
    [INFO]   log4j:log4j......................................... 1.2.15 -> 1.2.16
    [INFO]   org.springframework:spring...................... 2.5.6 -> 2.5.6.SEC02
    [INFO]   org.springframework:spring-test............... 2.5.6 -> 3.0.4.RELEASE


    It is not always an easy task to update some core components or 3rd party libraries in a complex software, as it may introduce some regressions, incompatibilities..

    At least thanks to this Versions plug in, you are aware that they may be something newer to try. What this plug in do not report is why you may want to update some artifacts libraries:

    • Do I have to use the latest version x.y.z because of  security issues?
    • Will i get more performances by updating to x.y.z?
    • New Version x.y.z resolve bug xxxx, will I have other annoying issues?

    In all the above case, you are on your own, but this is not the scope of this plug in. You’ll have anyway to

    1. Carefully decide which library can be updated,
    2. Match it to your software roadmap,
    3. Have enough confidence in your test suite (unit test, BDD, integration tests) and testing team,
    4. Communicate with your customer (for security issues in 3rd party library)
    5. .. and the list goes on

    The Versions Plug-in has a lot of interesting goals.

    Some are also updating values across all pom.xml for you.

    • versions:update-parent updates the parent section of a project so that it references the newest available version. For example, if you use a corporate root POM, this goal can be helpful if you need to ensure you are using the latest version of the corporate root POM.
    • versions:update-properties updates properties defined in a project so that they correspond to the latest available version of specific dependencies. This can be useful if a suite of dependencies must all be locked to one version.
    • versions:update-child-modules updates the parent section of the child modules of a project so the version matches the version of the current project. For example, if you have an aggregator pom that is also the parent for the projects that it aggregates and the children and parent versions get out of sync, this mojo can help fix the versions of the child modules. (Note you may need to invoke Maven with the -N option in order to run this goal if your project is broken so badly that it cannot build because of the version mis-match).
    • versions:lock-snapshots searches the pom for all -SNAPSHOT versions and replaces them with the current timestamp version of that -SNAPSHOT, e.g. -20090327.172306-4
    • versions:unlock-snapshots searches the pom for all timestamp locked snapshot versions and replaces them with -SNAPSHOT.
    • versions:resolve-ranges finds dependencies using version ranges and resolves the range to the specific version being used.
    • versions:set can be used to set the project version from the command line.
    • versions:use-releases searches the pom for all -SNAPSHOT versions which have been released and replaces them with the corresponding release version.
    • versions:use-next-releases searches the pom for all non-SNAPSHOT versions which have been a newer release and replaces them with the next release version.
    • versions:use-latest-releases searches the pom for all non-SNAPSHOT versions which have been a newer release and replaces them with the latest release version.
    • versions:use-next-snapshots searches the pom for all non-SNAPSHOT versions which have been a newer -SNAPSHOT version and replaces them with the next -SNAPSHOT version.
    • versions:use-latest-snapshots searches the pom for all non-SNAPSHOT versions which have been a newer -SNAPSHOT version and replaces them with the latest -SNAPSHOT version.
    • versions:use-next-versions searches the pom for all versions which have been a newer version and replaces them with the next version.
    • versions:use-latest-versions searches the pom for all versions which have been a newer version and replaces them with the latest version.
    • versions:commit removes the pom.xml.versionsBackup files. Forms one half of the built-in "Poor Man's SCM".
    • versions:revert restores the pom.xml files from the pom.xml.versionsBackup files. Forms one half of the built-in "Poor Man's SCM".

    The easiest way to live dangerously is to try to update all 3rd parties in one shot by issuing

    mvn versions:use-latest-versions

    but that’s another story :-)

  • TIDLP I've probably found my next projector, if only price is right...

    Texas Instruments DLP&174; Products Demonstrates Innovation Leadership with New Prototypes Including Lamp-Free
    Projector DLP unveils the world's first 3-D Front Projector and shows the first DLP Pico chipset product

    Texas Instruments at InfoComm DLP&174; Products introduced the industry's first home theater lamp-free projector
    that utilizes a PhlatLight&8482; LED light source and a BrilliantColor&8482; chipset. This technology demo delivers a superior
    1080p picture for which DLP technology is known, while eliminating maintenance costs such as lamp replacements
    and filter changes required by some competing projector products. Multiple DLP customers have plans to develop
    DLP lamp-free LED-based projectors, including Optoma, with units expected to ship in late 2008. Similar to the
    deployment of DLP Product's now popular BrilliantColor technology, the solid-state, lamp-free innovation will first
    be incorporated into home theater units and proliferate through corporate and education product lines thereafter.

    Benefits of Lamp-free projectors

    • LED are coming from Luminus (120'000 hours lifetime or 13 years!),
    • With DLP chipset, more light can reach the screen resulting in a 50% increase in color gamut range producing more
      than 200 trillion colors!
    • Contrast ratio expected in excess of 500,000:1.
    • 30% lower power usage
    • No cooling&160; or FAN, no dust and cleaning required
    • hundreds of euro in savings from lamp purchases.

    Visit http://www.luminus.com/ and http://www.dlp.com/

  • tuxdroid.teamcity

    I did refresh the tuxdroid teamcity plugin project a bit on request to Jasper Moltke Nygaard (Danmark )

    TeamCity is a Java-based build management and continuous integration server from JetBrains, creators of IntelliJ IDEA and ReSharper

    With this plugin you can notify your Tux Droid with your TeamCity build results. After login you can find the new notificator Tux Droid in your notification settings. You need your Tux Droid server IP and port to connect your Tux to TeamCity. After you have saved the parameters you can configure your individual notification settings for just all projects/specific projects/build failures/... Each registered User can customize Tux Droid messages or choose different Attitunes.

    Attitunes are

    robot animations you can create combining movement, sound, Text-To-Speech and fun. Make Tux Droid sing 'Dancing in the rain' or make him cry when you didn't receive any new E-mail.

    The new version is now 0.0.2-SNAPSHOT, and I am able to support both TeamCity 4.x and TeamCity 5.x

    Visit the site http://tuxdroid.waltercedric.com/ to grab the latest version

    This project is Open Source (GPL V3.0) and the source code is available at Google Code, you can join the project by contacting me

    You can read the online documentation in my WIKI

    The Teamcity builds (latest trunk) are also available as artifacts in my public Teamcity server (No login required).