Apache Maven tips and tricks: war plugin vs assembly plugin

When in #apache #maven you have multiple dependencies with the same artifact id but different group id 

<dependencies>
    <dependency>
        <artifactId>any</artifactId>
        <groupId>groupId1</groupId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <artifactId>any</artifactId>
        <groupId>groupId2</groupId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <artifactId>any</artifactId>
        <groupId>groupId3</groupId>
        <version>1.3</version>
    </dependency>
</dependencies>

So it’ll look like this in WEB-INF/lib

-rw------- 1 user grp  135851 Aug 24 12:21 grp1-any-1.1.jar  
-rw------- 1 user grp 1406696 Sep 18 11:51 grp2-any-1.2.jar  
-rw------- 1 user grp   88873 Aug 19 13:58 grp3-any-1.3.jar 

Apache #maven war plugin is able to detect this case and will automatically add the groupId to resolve filename conflicts. If it would not do that the last one name any.jar would win

 In #Maven Assembly this will not occur, and the last file name will be the only one available. There is at least two way to solve this issue:

  1. Use unique groupid and artifactid name: something you can do across your module code, it can be done if these dependencies are real 3rd party librairies
  2. Use the outputFileNameMapping in assembly 
<outputFileNameMapping>${artifact.groupId}-${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping> 
${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}

Another use case for outputFileNameMapping is when you want to remove the timestamp from filename but keep the version in assembly dependencySet

Apache Maven Archetype for Joomla

Got this email from Cyprian Sniegota, he did develop a #Maven Archetype for easing development of Joomla extensions. His archetype currently support the creation of a skeleton for components, modules, plugins and templates.

I noticed some time ago that you described combination of #Joomla! and #Maven. Few weeks ago i wrote joomla-maven-plugin with skeleton projects (sources: bitbucket.org/deviapps) based on php-maven.org work.
Here is short description http://deviapps.com/create-joomla-extension-with-maven and 5 min video (in Polish so far) http://www.youtube.com/watch?v=aE8w9EZciTg
I hope you will be interested.

Thanks to him for having written this project. I will also try to #Maven-ize what #Joomla has done with Ant in the future (I prefer now crystal clear software lifecycle )

socialsharing extension for Joomla! 1.6

joomla_cms

joomla_socialsharing_logo_thumb4

This small plugin add automatically to any articles a set of social icons that let your reader increase your social ranking. It support

socialsharing extension for Joomla! 1.5

joomla_socialsharing_logo

This small plugin add automatically to any articles a set of social icons that let your reader increase your social ranking. It support

There is 2 different branches of this plugins depending on your version of #Joomla!

Don’t' mix them and use the right version!

joomla_socialsharing_horizontal_left joomla_socialsharing_left

Features

  • Output is CSS driven, 6 preset styles
  • Toolbar can be added before or after your article
  • It is possible to include exclude sections and category for displaying the toolbar
  • Inclusion of  #JavaScript done using asynchronous techniques for more performances
  • Less than 220 lines of PHP code!
  • Support for SEF friendly URLs
  • Code produced is XHTML 1.0 Strict,
  • License under GNU/GPL v3
  • Tested in the following browser Firefox, Opera, Chrome, IE 8

Documentation

Plugin Freemind for Joomla! 1.6

The extension has been converted successfully to Joomla! 1.6

FreeMind is a free mind mapping application written in #Java which runs on Microsoft Windows, Mac OS and #Linux operating systems. FreeMind is licensed under the GNU General Public License

Freemind is a content plugin for #Joomla! that easily display mind map in your articles.

Mind map (*.mm) has to be on your host, you can not display currently remote mind map, aka URL starting with http://
You can put anywhere in your article the following keywords (one time or multiple times):

{freemind uri= width= height=}

All these parameters are mandatory
uri has to be a path to a local freemind map files

mymap.mm being in images/stories/maps/

{freemind uri=images/stories/maps/mymap.mm width=400 height=400} 

mymap.mm being in root folder of #Joomla!

{freemind uri=mymap.mm width=400 height=400} 

Features

  • Update manager is also supported, keep up to date this extension with only one click using #Joomla! 1.6 extensions manager
  • Freemind 1.6 is #Joomla! 1.6 native, it wont run in #Joomla! 1.5 (use Freemind 1.2.x)
  • Code produced is XHTML 1.0 Strict,
  • Tested in the following browser Firefox, Opera, Chrome, IE 8
  • License as always under GNU/GPL v3.0 or later

Download

Demo

Documentation

Visit the online WIKI

Support

Use the forum board

Hosts file protection

hosts.file The hosts file is a computer file used by an operating system to map hostnames to IP addresses. This method is one of several methods used by an operating system to locate network nodes on a computer network. Spybot Search and Destroy is using this technique when you click on immunize button behind the scene.

Found at http://someonewhocares.org/hosts/

Use this file to prevent your computer from connecting to selected internet hosts. This is an easy and effective way to

  • protect you from many types of spyware,
  • reduces bandwidth use,
  • blocks certain pop-up traps,
  • prevents user tracking by way of “web bugs” embedded in spam,
  • provides partial protection to IE from certain web-based exploits
  • blocks most advertising you would otherwise be subjected to on the internet.

There is a version of this file that uses 0.0.0.0 instead of 127.0.0.1 available at http://someonewhocares.org/hosts/zero/. On some machines this may run minutely faster, however the zero version may not be compatible with all systems.

This file must be saved as a text file with no extension. (This means it that the file name should be exactly as below, without a “.txt” appended.). Let me repeat, the file should be named “hosts” NOT “hosts.txt”.

Continue reading Hosts file protection

Fully Time Deterministic Java

The AIAA (American Institute of Aeronautics and Astronautics) paper [.pdf] plan to use java (For cost reasons) for safety-critical missions. The first fully time-deterministic and open-source library for #Java: Javolution is ready to fight!

Javolution real-time goals are simple: To make your application faster and more time predictable!
That being accomplished through:

  • High performance and time-deterministic (real-time) util / lang / text / io / xml base classes.
  • Context programming in order to achieve true separation of concerns (logging, performance, etc).
  • A testing framework addressing not only unit tests but also performance and regression tests as well.
  • Straightforward and low-level parallel computing capabilities with ConcurrentContext.
  • Struct and Union base classes for direct interfacing with native applications (e.g. C/C++).
  • World’s fastest and first hard real-time XML marshalling/unmarshalling facility.
  • Simple yet flexible configuration management of your application.

 Top 10 Reason to make a try:

  1. Javolution classes are simple to use, even simpler than most JDK classes. You don’t need to guess the capacity of a TextBuilder, FastTable or a FastMap, their size expand gently without ever incurring expensive resize/copy or rehash operations (unlike StringBuilder, ArrayList or HashMap).
  2. Developers may achieve true separation of concerns (e.g. logging, configuration) through Context Programming or by using classes such as Configurable.
  3. Javolution classes are fast, very fast (e.g. Text insertion/deletion in O[Log(n)] instead of O[n] for standard StringBuffer/StringBuilder).
  4. All Javolution classes are hard real-time compliant and have highly deterministic behavior (in the microsecond range). Furthermore (unlike the standard library), Javolution is RTSJ safe (no memory clash or memory leak when used with #Java Real-Time extension).
  5. Javolution makes it easy for concurrent algorithms to take advantage of multi-processors systems.
  6. Javolution‘s real-time collection classes (map, list, table and set) can be used in place of most standard collection classes and provide numerous additional capabilities.
  7. Any #Java class can be serialized/deserialized in XML format in any form you may want, also no need to implement Serializable or for the platform to support serialization
  8. Javolution provides Struct and Union classes for direct interoperability with C/C++ applications.
  9. Javolution runs on any platform from the simplest J2ME CLDC 1.0 with no garbage collector to the latest J2EE 5.0 with parameterized types.
  10. Javolution is a pure Java Solution (no native code), small (less than 300 KBytes jar file) and free; permission to use, copy, modify, and distribute this software is freely granted, provided that copyright notices are preserved (BSD License).

Another geek unboxing his PS3

sony_playstation_ps3

This time it is me, unboxing my expensive but shinny PS3

I’ve bought today a PS3 (899 CHF), along with

  • 2 games Resistance: fall of man (89 CHF) and Motor Storm (89 CHF)
  • Mission Impossibles blue-ray box, the whole sequel, (89 CHF)
  • 1 additional wireless controller (69 CHF)

See the pictures below

Continue reading Another geek unboxing his PS3

1.0.6 yesrterday and 1.0.7 today!

Joomla! 1.0.7 [ Sunburst ] is now available as of Sunday 15th January 2006 21:00 UTC for download here. 1.0.7 is essentially 1.0.6 repackaged to fix one major bug in 1.0.6 – therefore it should still be considered a Security Release.  It contains nine (9) `Low Level` Security Fixes, and seventy (70) plus minor/non-critical bug fixes.
I’ve looked at the code, it contains small patches in all files, in 2 places I’ve found a code suppose to protect #Joomla against spoofing attack:

A spoofing attack, in computer security terms, refers to a situation in which one person or program is able to masquerade successfully as another. There is some tools (windows, linux) and EVEN a Firefox extension: Refspoof available at http://refspoof.mozdev.org/

Amiga 1200 Infinitiv Tower

The Infinitiv 1200 Tower was custom designed for the A1200 computer and is rather rare. It neatly houses the motherboard and floppy drive and expands the possibilities of this excellent computer. It’s design includes a convenient back panel which slides out of the Tower to allow simple fitting of the A1200 motherboard.

The standard unit is a midi sized Tower, but this can be increased by adding snap-on 5.25″ bays which raise the Towers height. One of these bays is required if a 1200 accelerator is to be fitted. There is also the facility to add internal 3.5″ bays in the same manner, so the possibility of adding extra hard drives, CD-ROM, floppies

The A1200 was launched a few months after the Amiga 600 using a similar, slimline design that replaced the earlier Amiga 500 Plus and Amiga 500. Whereas the A600 used the 16-bit Motorola 68000 of earlier Amigas, the A1200 was built around the faster, more powerful Motorola 68EC020.

Physically the A1200 is an all-in-one design incorporating the CPU, keyboard, and disk drives (including the option of an internal 2.5″ hard disk drive) in one physical unit. The A1200 has a similar hardware architecture to Commodore’s Amiga CD32 game console.

The A1200 offers a number of advantages over earlier lower-budget Amiga models. Specifically, it is a 32-bit design; the 68EC020 microprocessor is faster than the 68000 and has 2 MB of RAM as standard. The AGA chipset used in the A1200 is a significant improvement. AGA increases the color palette from 4096 colors to 16.8 million colors with up to 256 on-screen colors normally, and an improved HAM mode allowing 262,144 on-screen colors.

The graphics hardware also features improved sprite capacity and faster graphics performance mainly due to faster video memory. Additionally, compared to the A600 the A1200 offers greater expansion possibilities.

  • Blizzard 1230 IV 68040 @ 50Mhz 64Mb RAM
  • Blizzard scsi kit with 16mb ram – no scsi cable
  • DD 540 Mb
  • Vidi Amiga
  • CD Rom 12X
  • Ethernet Card
  • IDE extension board
  • VGA card
  • HD floppy disk