development

Development or developing may refer to: read more at WikiPedia

  • Scrum is an iterative, incremental framework for project management and agile software development.
    Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as a general project/program management approach.

    And now visit the funny Scrum cartoons

    Scrumtoon33 

    Scrumtoon31

    http://defunctscrum.blogspot.com/

    And there is a lot more HERE :-)

  • I use previously Jedit (www.jedit.org) and reach the limit very fast (no versionning, no helper, nothing...)  I recommend to  any serious developer to install:
    1. Eclipse from www.eclipse.org free
    2. PHPEclipse plugin from phpeclipse free
    3. A concurent versionning system: CVS fro windows CVSNT  free
    4. A runnable Mambo environment like EasyPHP free
  • agile.development

     

    Starting from now on, I will deliver all my latest (unstable) extensions versions through  my continuous build server. All request or bugs discovery that are requested in my forums and solved will lead to a new build that you will be able to download a lot faster than before.

    Thanks to Maven for PHP, I can now commit, 60 seconds later, unit test run and  the result is a direct download for my extensions snapshots.

     

     

     

     

     

     

    Here is an example with the module mod_related_thumb_items

    Head to http://teamcity.waltercedric.com/teamcity/guestLogin.html?guest=1

    Locate the module or component you are interested in:

    HowTODownloadLatest

    Click on the latest build, must be  Success

    HowTODownloadLatest.01  

    If this build is a direct answer to a support request in my forums, or solve an issue, You should be able to see in changes the commit description, and even which file have been changed after and before the commit.

    http://teamcity.waltercedric.com/teamcity/viewLog.html?buildId=217&buildTypeId=bt3&tab=buildChangesDiv

    HowTODownloadLatest.05

    But Hey! you want to download this latest build now, go to artifact

    HowTODownloadLatest.02

    Staying  on the edge by using RSS

    You can monitor any build by using the RSS icon in your browser toolbar, or example with this module, it would be

    http://teamcity.waltercedric.com/guestAuth/feed.html?buildTypeId=bt20&itemsType=builds&userKey=guest

    This way of downloading the latest extensions do not replace the page http://www.waltercedric.com/joomla-releases-mainmenu-269.html where there is there only stable versions.

    The next step is to make the maven phase “site” work (I have issue with phpdocumentor not found), this will create automatically a internet site in one of my sub-domains ad hide this complexity.

  • This package contains a dynamic polymorphic factory...

    •  New class can be add dynamically to the factory... even during runtime (dynamic)
    • Factory methods are in a separate class as virtual functions. (polymorphism)
    • Different types of factories can be subclassed from the basic factory.. (abstract)
    • Useful iin case of licence problem, since Concrete classes are created at runtime, and only need to reside in classpath (If they are not present the code still compile). Below, the example show multiple authorization and autorisation scheme, that can be switche on/off very fast.
    • Factory can be driven with an external condition (properties, registry....)
     
    Notice also that the specific concrete classes are dynamically loaded on demand...(class.forname())


    Source Code

    /**
     * Creation date: (7/19/2002 2:50:45 PM)
     * 
     * @author: Cedric Walter
     */
    public interface AuthentificationIF {
    
            public boolean Authentificate(HttpServletRequest req,                        HttpServletResponse resp);        public boolean hasAutorisation(HttpServletRequest req,                        HttpServletResponse resp);}
    
    public abstract class AuthentificationA implements AuthentificationIF {
    
    /**
      * AuthentificationA constructor comment.
      */
            public AuthentificationA() {
                    super();        }
    
           
    /**
      * Authentificate method comment.
      */
           
    public abstract boolean Authentificate(                       
    javax.servlet.http.HttpServletRequest req,                       
    javax.servlet.http.HttpServletResponse resp);
    }
    
    abstract class AuthentificationFactoryA {
    
            private static java.util.Map factories = new java.util.HashMap();       
    /**
      * ComputeFactory constructor comment.
      */
            public AuthentificationFactoryA() {
                    super();        }
    
            public static void addFactory(String id, AuthentificationFactoryA f) {
                    factories.put(id, f);        }
    
            public static final AuthentificationIF createAuthentification(String id)                        
    throws FactoryCreationException { if (!factories.containsKey(id)) { try { // Load dynamically Class.forName(id);
    }
    catch (ClassNotFoundException e) { throw new FactoryCreationException(id);
    } // verify that it has been stored if (!factories.containsKey(id))
    throw new FactoryCreationException(id);
    } return ((AuthentificationFactoryA) factories.get(id)).getAuthentification();
    } protected abstract AuthentificationIF getAuthentification();} /** * concrete class of the abstract factory */ public class MyAuthentificationFactory extends AuthentificationFactoryA { public MyAuthentificationFactory() { super(); } /** * not use since it is subclass */ protected AuthentificationIF getAuthentification() { return null; } } /** * @author: Cedric Walter */ public class NimiusAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new NimiusAuthentification(); } } static { AuthentificationFactoryA.addFactory("com.waltercedric.gof.pattern.factory.NimiusAuthentification", new NimiusAuthentification.Factory()); }
    /**
      * Local constructor comment.
      */
            public NimiusAuthentification() {
                    super();        }
    
           
    /**
      * Authenficate method comment.
      */
            public boolean Authentificate(javax.servlet.http.HttpServletRequest req, 
    javax.servlet.http.HttpServletResponse resp)
    { //do some stuff return true; } public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp)
    { //do some stuff return true; } } /** * @author: Cedric Walter */ public class NoAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new NoAuthentification(); } } static { AuthentificationFactoryA.addFactory( "com.waltercedric.gof.pattern.factory.NoAuthentification", new NoAuthentification.Factory()); } /** * Local constructor comment. */ public NoAuthentification() { super(); } /** * Authenficate method comment. */ public boolean Authentificate(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } /** * hasAutorisation method comment. */ public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } } /** * @author: Cedric Walter */ public class ObtreeAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new ObtreeAuthentification(); } } static { AuthentificationFactoryA.addFactory( "com.waltercedric.gof.pattern.factory.ObtreeAuthentification", new ObtreeAuthentification.Factory()); } /** * Local constructor comment. */ public ObtreeAuthentification() { super(); } /** * Authenficate method comment. */ public boolean Authentificate(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } /** * hasAutorisation method comment. */ public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } }
  • While the Brits are lighting up for Bonfire Night and burning effigies of Guy Fawkes, the Eclipse development team has delivered their 3rd Eclipse 3.1 milestone build. Here are some of the more noteworthy things available in milestone build M3 (November 5, 2004) which is now available for download. See the M3 build notes for details about bugs fixed and other changes.
  • eclipse

    It is always difficult to discover what’s new in every Eclipse release, as the number of features is just growing over the years. More difficult is even to locate the new and noteworthy page, that’s why I list them all below for eclipse 3.5

    News and noteworthy pages contains interesting or significant changes made to the Eclipse Platform for the 3.5 release of Eclipse.

    &160;

    &160;

    I have personally saved them all (since eclipse 3.3) in a directory for further references. I wish eclipse would list them all in their wiki

    You’ll find a “What’s new page” also in your local help at http://127.0.0.1:1829/help/topic/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html but it look smaller in size than the html counterpart.


  • Community Bulletin

    Eclipse is turning 5! It was November 7, 2001 when IBM first released Eclipse as an open source project. To celebrate, a number of activities are being organized for the Eclipse community.

    Birthday Card

    An electronic birthday card has been setup to allow individuals in the the Eclipse community to show their support for Eclipse. Everyone in the Eclipse community is encouraged to sign the Eclipse birthday card.

    Individuals signing the card before December 1, 2006 will qualify for a random draw to win one of 20 Eclipse sweaters.

    Product Hall of Fame

    Over the last five years, the Eclipse community has built hundreds, if not thousands, of Eclipse based products. Therefore, an Eclipse Product Wall of Fame has been setup to showcase these products. Organizations and individuals that have created Eclipse based products and plug-ins are invited to add their solution to the Product Wall of Fame.

    Eclipse Birthday Parties

    There are over 25 local Eclipse birthday parties organized in cities around the world to celebrate this event. Locations, dates, and RSVP links can be found here.


    And here is my submission

     
  • The goal of the Callisto Simultaneous Release is to release ten major Eclipse projects at the same time. We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. While those product producers naturally accept the ultimate responsibility for their customers' experiences, Callisto's goal is to eliminate uncertainity about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier. Callisto is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle; Callisto is about developers helping developers serve the whole Eclipse community.

    from Eclipse.org Calisto

    I am using Calisto now and YOU?

  • The major news I was waiting for:


    Eclipse Foundation, Zend Technologies, and IBM Announce the Approval of the PHP IDE Project
    The Eclipse Foundation, an open source community committed to the implementation of a universal software development platform, Zend Technologies and IBM, today announced that the Eclipse PHP IDE project has been approved by the Eclipse Foundation. The technology project was proposed by Zend and IBM on October 21, 2005. It will deliver a PHP Integrated Development Environment framework for the Eclipse Platform and will encompass the development components necessary to develop PHP-based web applications and will leverage the existing Eclipse Web Tools Project.

    Read the proposal here, If youre are in the area of Santa Clara, Zend is showing  demo at EclipseCon. Do someone know what wwill happen wwith PHPeclipse.de ???

  • eclipse.galileo

    For the sixth year in a row, the Eclipse community has delivered its annual release train on its scheduled date. Galileo, the 2009 release train, is the largest ever release from the Eclipse community, comprising 33 projects and over 24 million lines of code. Over 380 committers from 44 different organizations participated to make this release possible.

    &160;

    &160;

    Download it now

    Note: Subversive is part of Galileo, but the first time you sync your code, you may get in SVN console a red error message:

    Selected SVN connector library is not available or cannot be loaded.
    If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
    If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Client.

    That’s because SVN connectors are not part of Galileo…

    The site where you’ll be able to download subversive connectors is HERE

  • I found today the mother of all shortcuts in eclipse, by accident....

    Type CTRL-3 in eclipse and a pop windows will appear where you can type any part of
    a keyword

    eclipse.best.shortcut.ctrl-3

    The windows will propose you anything related to your search (here I am searching
    the rename refactoring, for the example)

    shortcut

    This is the most easiest way to learn new tricks (news and noteworthy release note being the second).

    If you prefer the old way, that is by printing a huge list of shortcut list, here is what
    I found to be the most up to date:
    http://eclipse-tools.sourceforge.net/shortcuts.html

  • eclipse_indigo_aka_3_7

    Eclipse Indigo is the annual release of Eclipse projects on June 22 2011; this year 62 project teams are part of the release.

    New and Noteworthy

    JBossTools

     
  • My platform of development is Suse 9.0 and Eclipse 3.0M4

    eclipse launcher (link)

    The best eclipse launcher available as today, written in smalltalk by my friends of www.xdreamteam.ch

    xdt Eclipse Launcher V1.0 RC2(761 KB) ist ein Tool für Java-Entwickler die mit Eclipse arbeiten.Mit dem xdt Eclipse Launcher verwalten Sie ihre Workspaces und können diese von einem Ort aus starten. Der xdt Eclipse Launcher startet als System-Tray Program, von wo Sie die Möglichkeit haben neue Definitionen einzutragen, oder die bestehenden Definitionen einfach und schnell zu starten.

    HP Nimius/E3 launcher

    Plugin for starting a HP Nimius application, Hewlett Packard Nimius informations can be found at www.hpnimius.com This plugin was originally developped at work, and has been totally rewritten to avoid any copyright infrigment.
    Why is the difference with a Eclipse Launcher? you have 3 icons...

    Installation:

    Prerequisite:
    This plugin assume that you are using a project for E3 which have the following structure (but you can change the default location of components):

         
    Project XXX/etc contains xml files, properties  
    Project XXX/log    
    Project XXX/lib contains applications E3 services and java code  

    Greetings:
    This plugin is based on Tomcat sysdeo plugin and was simply extended. Since the original code is based on the MIT licence, I am also giving you this code under the same conditions.

    The MIT Licence:
    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
    conditions:
    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

     

     

    Tutorials:

    http://www.awprofessional.com/articles/article.asp?p=31789&seqNum=1

    FAQ:

     

    Starting Tomcat in eclipse

    i get the following exceptions:

    2004-07-14 14:40:55,540 0 [main] ERROR org.apache.commons.digester.Digester - Digester.getParser:
    javax.xml.parsers.ParserConfigurationException: AElfred parser is namespace-aware
    at com.icl.saxon.aelfred.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:37)
    at org.apache.commons.digester.Digester.getParser(Digester.java:686)
    at org.apache.commons.digester.Digester.getXMLReader(Digester.java:902)
    at org.apache.commons.digester.Digester.parse(Digester.java:1548)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:449)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203

     

    "With tomcat 4.x, things become simpler, but this version of tomcat uses the jaxp sax parser factory. Moreover, this version of tomcat requires a validating parser, and it doesn"t check whether the parser actually is validating. If the AElfred parser is supplied in the system properties, an exception will be thrown when tomcat attempts to set validating on. I"d recommend using the (validating) xerces 1.4.4 sax parser rather than AElfred parser. It"s not safe to rely on the default parser, by not setting system properties, because it"s very likely there are several versions of the JAXP classes in the classpath, and who knows when you might get another one. The practice by the distributors of XML tools to include implementations of the JAXP classes in their own jar files is, of course, rather insane, but that"s the way it is.

    Do this,
    System.setProperty("javax.xml.parsers.SAXParserFactory",
    "org.apache.xerces.jaxp.SAXParserFactoryImpl");=20
    but also do this
    System.setProperty("org.xml.parsers.sax.parser",
    "org.apache.xerces.parsers.SAXParser");=20
    since many third party tools base the parser choice on =
    "org.xml.parsers.sax.parser" rather than use the SAXParserFactory.

    Regards,
    Daniel Parker
    http://presentingxml.sourceforge.net/"

    in eclipse add the following key to the launcher in VM arguments

    -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
    -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
    -Dorg.xml.parsers.sax.parser=org.apache.xerces.parsers.SAXParser

     

     

     

  • maven-logo-2 eclipse

    I did develop this solution at work for our internal purpose at www.innoveo.com. Going away from the paradigm “As a developer I run everything locally” isn’t easy to accept but in some rare cases, it make sense. Below I list what I consider to be the main advantages and drawbacks.

    Stability

    • Not everybody is changing the developer environment as you need admin right to be able to do changes, more stability.
    • The developer environment is standardized: convention over configuration always pays like in Apache Maven.

    Sharing

    • you can work from anywhere as long as you have an internet/VPN connection
    • You can move your working place around, show your workspace to a colleague, reduce your coupling to Windows, use Linux, use a Mac!

    Security

    • The source code stay on the server, if someone steal notebooks you don’t loose your software assets.

    Efficiency

    • Somebody maintains the developer environment and settings for you, some developers can still beta test a new eclipse version before till it is considered stable.
    • Rollout is limited to a minimum loss of time, as you will see below 
    • Setting up a new developer account is basically settings up a new account on the shared server, running 3 lines of shell.
    • The server  is not full of unwanted applications running in background, only java.exe. eclipse.exe, databases can still run on another server (MYSQL, Oracle), runtime environment (Tomcat).

    Speed, speed and speed

    • A server is cheap compare to one big notebook for every developer.
    • Server is most of the time fully 64bits, may have up to 8 cores, RAID 5 typically  output 350Mb/s read (a good notebook: 32 bits, 2 cores and 80Mb/s without SSD)

    Drawbacks

    • A shared developer environment is a Single point of failure –> you need a very good backup, and eventually hardware fallback machine in hot standby!
    • You can not work if developer have no or limited internet access, in train for example.
    • It required a bit of initial engineering, hence this article.

    Access

    Windows

    Use Windows Remote desktop connection, define a DNS entry to access the server.

    remote.desktop

    Linux

    Linux has a free remote desktop implementation of Microsoft protocol, if it not installed, run either on Debian

    # apt-get install rdesktop

    or in OpenSuSE

    # zypper install rdesktop

    or in RED HAT

    # yum install rdesktop

    Create a script .sh file to save the connection parameters:

    rdesktop -A -C -k de-ch -r PRIMARYCLIPBOARD -u username -p password -xl  ipadress

     

    Eclipse

    One install for all users

    1. Unpack the latest eclipse in any location, I recommend on c:\eclipse-3.5, but any location where you have some space will work.
    2. Start eclipse as administrator and install all required 3r party plugin: we use M2Eclipse, Subversive for example.
    3. Stop Eclipse,
    4. Remove ALL write rights to ALL users including admin if needed.
    5. When Eclipse will start under a developer account, it will copy its configuration files into C:\Users\%USERNAME%\.eclipse
    6. Every users will be able to adjust the eclipse.ini but these settings are a good start (adapt memory to your requirements)
    7. Create a shortcut for every developer on their desktop pointing to c:\eclipse\eclipse.exe

    C:\Users\cedric.walter\.eclipse\org.eclipse.platform_3.5.0_1770938306\configuration\eclipse.ini

    -startup
    plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    -configuration
    ../Users/cedric.walter/.eclipse/org.eclipse.platform_3.5.0/configuration
    -Dfile.encoding="UTF-8"
    -vmargs
    -Xms2048m
    -Xmx2048m
    -XX:PermSize=256m
    -XX:MaxPermSize=256m
    -XX:+UseParallelGC

    Updating Eclipse

    A rollout of new Eclipse version is easy thanks to symbolic link. Download junction.exe, a small tool to create symbolic links

    Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer.

    and run as admin

    junction.exe c:\eclipse c:\eclipse-3.5

    Now thanks to symbolic links any update to a major new version of eclipse will be plain easy: just delete the symbolic link c:\eclipse and create a new one to the new version!

    Users with Multiple Eclipse workspaces

    1. Create an empty directory for hosting your new workspace, for example at
          e:\%USERNAME%\workspace\maven
    2. Create a new shortcut with this content
      C:\eclipse\eclipse.exe --launcher.ini
      "C:\Users\\%USERNAME%\.eclipse\org.eclipse.platform_3.5.0_1770938306\configuration\eclipse.ini"
      -data e:\\%USERNAME%\workspace\maven

    Apache Maven

    Maven Local repository, every user has it’s own

    It is not recommend to share the local Maven repository cache among users as Maven has no locking concept in place. The local maven repository is expected to be located at

    c:\users\%USERNAME%\.m2\repository

    If you have enough space there for all your users, you can skip that chapter, Otherwise I will show you how to locate it anywhere on the file system.

    Let’s store it at e:\%USERNAME%\repository, here I have choose another drive with more space as Maven local repository can be quite big (700Mb per user today)

    The design chosen impose me to one more time play with symbolic links, using junction.exe in c:\users\%USERNAME%\.m2\repository pointing to e:%USERNAME%\repository

    When you are logged in as a normal developer account, in a dos windows, run the following

    junction.exe c:\users\%USERNAME%\.m2\repository e:\%USERNAME%\repository

    Maven settings.xml, one for all users

    I like the idea to maintain only one settings.xml. Apache Maven recommend to have one settings.xml per user (located in c:\users\%USERNAME%\.m2\settings.xml). This is true if you have different responsibilities among all your developers. For example some may not be able to deploy in Artifactory/Nexus while other can. Luckily, this is not the case as for today in our company. That is why I will only have one Settings.xml on server, located at c:\server.xml

    I will use a hard link to c:\settings.xml. When you are logged in as a normal developer account, in a dos windows, run the following

    fsutil hardlink create c:\users\%USERNAME%\.m2\settings.xml c:\settings.xml

    This make Apache Maven think that the settings.xml is in the default location c:\users\%USERNAME%\.m2\

    Updating Maven

    I do use the same trick for having a unique version of maven binary on the server while keeping some flexibility thanks to symbolic links.

    1. Unpack Apache Maven anywhere
    2. As an admin, in a dos windows, run the following:
      junction.exe c:\maven-3.0-beta1 c:\maven

    Now you can let all your developer reference in M2Eclipse this virtual directory c:\maven. Switching all developers to a new version is done by deleting and pointing to an older/newer version of Maven.

    It is not finished

    Our shared developer environment setup also virtualizes MYSQL (multiple schema per developer ) and Tomcat (per developer port range) using –D system variables in eclipse.ini

    References

    Scenario 2 - shared install

    In this scenario, a single install area is shared by many users. The "configuration" directory under the install area is home only to the config.ini as shipped with the product (it is not initialized). Every user has their own local standalone configuration location.

    The set up for this scenario requires making the install area read-only for regular users. When users start Eclipse, this causes the configuration area to automatically default to a directory under the user home dir. If this measure is not taken, all users will end up using the same location for their configuration area, which is not supported.

  • Eclipse version 3.1 is AVAILABLE. New features added in this release: full support for Java 5.0 and improved support for developing rich client applications. Performance has been also significantly enhanced across the board since the 3.0 release. (what a blast with Jrockit 1.4.2!!!) . SWT can make a lot more graphical tricks, and has more widgets
    Do not forget to read what is maybe the best documentation online: 
    New and Noteworthy, (because You can get the substance of the new features in very few pages)
  • I came across this article at IBM developerworks, which explain how to use the RDT: Ruby IDE for the Eclipse platform. I decide also to give You here an overview of all languages supported by eclipse:

    • JDT: The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of any Java application, including Eclipse plug-ins. It adds a Java project nature and Java perspective to the Eclipse Workbench as well as a number of views, editors, wizards, builders, and code merging and refactoring tools. The JDT project allows Eclipse to be a development environment for itself.

    • RDT is an open source Ruby IDE for the Eclipse platform.
      Features supported are syntax highlighting, on the fly syntax check, graphical outline, Test::Unit view/runner, Ruby application launching, content assist, source formatter, and a Ruby debugger.

    • CDT (C/C++ Development Tools) Project is working towards providing a fully functionalC and C++ Integrated Development Environment(IDE) for the Eclipse platform. 

    • Cobol: Eclipse fundation is hosting one COBOL CDT project but there is also a commercial plugin: theACUCOBOL-GT Eclipse Plug-in,

    • PHP:   PHPeclipse (open source CPL) PHP parser, debugger, code formatter, outline view, templates. Note also that ZEND has joined the eclipse board, so their flagship product ZEND Studio Pro may have a future as an eclipse plugin.

    • PERL: EPIC is an opensource Perl IDE for the Eclipse platform. Features supported are syntax highlighting, on the fly syntax check, content assist, perldoc support, source formatter, templating support and a Perl debugger. A regular expression plugin and support for the eSpell spellchecker are also available.

    • Python: PyDev is a plugin that enables users to use Eclipse for Python and Jython development. It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others.
    • Eiffel: The Eclipe Eiffel Development Tools (EDT) are a set of plugins which eventually implement a full-fledged, highly integrated Eiffel development environment based on the Eclipse Platform
    • Groovy: The plugin provides a Groovy editor for editing scripts or classes in Groovy (Groovy is an object-oriented programming language designed for the Java platform as an alternative to Java with features from Python, Ruby and Smalltalk. see WikiPedia) language. Groovy makes writing scripts and applications for the Java Virtual Machine fast and easy.
    • Microsoft C#: Improve C# code editing with: Creation of new C# files (with a basic structure) - Syntax highlighting - Content assistant for C# keywords - Auto-indentation - C# code compilation etc  Unfortunately no more active development since June 2004

    And the list goes on......beside this nearly all minor scripting languages are supported (jsp, javascript... for ex.) and minor markup language (XML, HTML, JSF...) with the tremendous list of plugins:

    • www.eclipseplugincentral.com Eclipse Plugin Central (EPIC) offers the Eclipse community and users of IBM WebSphere Studio application development environments (WSAD, WSSD, WSED, etc.) a convenient, information-rich portal that helps software developers find open source and commercial Eclipse plug-ins, tools, and products that enhance the entire Java software development life-cycle.
    • eclipse-plugins.2y.net
  • As Git Bisect is not clear a lot of people, here is a nice PDF to look at Enjoy Fighting regressions with git bisect, LinuxCon EU 2013.pdf

    it is about "Linux" combinational explosion... Bug software have the following properties (not desired):

    • has many different "configurations"
    • may fail under one configuration but not another

    N configurations, T tests and C new commits means that a release needs:

    C * N * T tests performed

    where N and T, at least, are growing with the size of the software.

    Git Bisect help find a first bad commit and use a binary search algorithm for efficiency if possible.

  • apache_maven

    Packt publishing has offered me to make a review of two of their new books (Thanks to them). I should receive free samples for review beginning of next week. Since it is two of my favorite subjects (Maven and Joomla!® ), I think it may also interest you. A review will follow in some days.

    ApacheMaven2EffectiveImplementation  

    Build and Manage Applications with Maven, Continuum, and Archiva

    • Install Apache Maven and follow the sample application to build up your project as quickly as possible
    • Test your applications to ensure maximum stability using Maven's inbuilt tools
    • Use Maven's report and checking tools to ensure the health of your projects
    • Explore Apache Continuum which will help you to ensure the health of your source code
    • Improve your team builds with the powerful combination of Maven, Archiva and Continuum
    • Install and run the repository manager Apache Archiva
    •  

     

    Joomla!1.5DevelopmentCookbook

    Joomla!® 1.5 Development Cookbook 

    • Make your extensions extensible, add extensions points to allow third parties to customize your extension
    • Create international extensions by enabling multilingual capabilities
    • Build more than just HTML pages - create PDF documents, Atom Feeds, and more!
    • Improve the user experience by adding Ajax
    • Create Atom and RSS feeds to keep users up-to-date
    • Utilize the power of Subversion to maintain your source code
    • Execute database queries and handle returned data in order to access and modify your data
    • Dynamically extend your database tables using JParameter to make your extensions more flexible
    • Keep your gremlins at bay by handling errors the Joomla! way
    • Work with the file system, interrogate existing files and folders and store data in the file system
    • Take control of your workflows by using www.JoomlaCode.org to manage your Joomla! projects
  • In this article, an excerpt from Test-Driven Development: A J2EE Example (Apress, 2004), author Thomas Hammell helps you select the right tools for getting started with test-driven development (TDD)
    ...
    Following the Keep It Simple, Stupid (KISS) and You Aren't Gonna Need It (YAGNI) rules of extreme programming (XP), each tool listed in the following sections fits into the TDD process...
    more Here
  • joomlaloveRAD

    Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. Something that was really slowing me a lot and making any builds or changes in my extensions a real pain to maintain was the packaging of code spread in the joomla tree. I did create numerous custom Phing builds to automate and reduce these pains (Phing is heavily derived from Apache ANT) and  2 months ago  Joomla-packager was born!

    My Joomla-packager is a generic Phing build script to build any Joomla 3rd extension, being a set of components, modules, plugins and or libraries, packages in a simple way.

    Audience

    Developers of 3rd party extensions for Joomla

    Convention over configuration…

    • A single script to rule all your need of Joomla packaging: multi modules/ multi plugins/multi components/multi library is supported,
    • If you respect Joomla conventions, this packager will be able to create a build of any of your extensions or set of extensions,
    • just configure one file (like for example in buildCedThumbnails.xml), mainly listing what your extension is made of and run with minimal efforts,
    • Packaging Joomla extensions will always look look the same = repeatability = convention over configuration

    Usage

    1. Download https://raw.github.com/cedricwalter/joomla-packager/master/joomla-packager.xml locally
    2. Download a copy of buildCedThumbnails.xml You only need to rename and touch this file, it is self documented.
    3. Download a copy of pkg_cedthumbnails.xml You only need to update this file if you alter the structure. (later Joomla-packager will create this file on the fly)
    4. Run the main target build of buildCedThumbnails.xml

    How it is working?

    This script implement ALL standard Joomla conventions to perform the packaging, and offer reusable Phing targets to package any number of extensions. Here is what is implemented:

    Modules

    • 1. Code is located in /modules/mod_${xxxxx} and self contained
    • 2. Languages files are optional but if they exist are located at /language/xx-yy/mod_${xxxxx}.ini /language/xx-yy/mod_${xxxxx}.sys.ini
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/mod_${xxxxx}
    • 4. name of zip files as follow:
      • mod_{yourextension1}.zip

    Plugins

    • 1. Code is located in /plugins/${type}/${xxxxx} and self contained
    • 2. Languages files are optional but if they exist are located at /plugins/${type}/${xxxxx}/language/ or anywhere else in directory at step 1.
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/plg_${type}_${xxxxx}
    • 4. name of zip files as follow:
      • plg_${type}_{yourextension}.zip

    Components

    • 1. Code is located in /administrator/components/${xxxxx} and /components/${xxxxx} and is self contained
    • 2. Languages files are optional but if they exist are located at /administrator/language/xx-yy/${xxxxx}.ini and /language/xx-yy/${xxxxx}.ini and
    • 3. Media files (css,js,images) are optional but if they exist are located at /media/${xxxxx}

    Packages

    • 1. one zip file which contains 1 to n other zip file + a manifest file named pkg_{yourextension}.xml
    • 2. manifest file named pkg_{yourextension}.xml has to be written manually for now and place beside your build{yourextension}.xml
    • 4. name of zip files as follow:
      • com_{yourextension}.zip

    You can browse numerous examples (for Joomla 2.5/3.0/3.1 at the project page (GitHub)

  • DevFest is the biggest Google tech conference in Switzerland. All about machine learning, programming, emerging technologies and much more!  GDG DevFests are large, community-run developer events happening around the globe focused on community building and learning about Google’s technologies.

    This year i will be helping and organizing some of the side activities between the talk session. And i prepared a lot of stuff, enough for 11 screens!

    Not everything is on pictures, NES and SNES classic are missing for example.

    Screen Google Related Flyer Require Links
    1 Google Chrome OS 1 {fa-file-pdf-o fa-2x} HDMI / Wifi / keyboard / mouse Rapberry Pi 3
    2 Google Chrome OS 2 {fa-file-pdf-o fa-2x} HDMI / Wifi / keyboard / mouse Rapberry Pi 3
      Google Android Thing 1 {fa-file-pdf-o fa-2x} Wifi Rapberry Pi 3 + Tensorflow Sample
      Google Android Thing 2 {fa-file-pdf-o fa-2x} Wifi Rapberry Pi 3 
    3 Google Coder {fa-file-pdf-o fa-2x} Wifi Rapsberry Pi 1 + Make web stuff on PI
    4 Google Chromecast   HDMI + Wifi  
      Google Home Speaker   Wifi  
    Electronic DIY
      Rapsberry Pi1 + Pi Face Digital  {fa-file-pdf-o fa-2x}  Wifi / Switch for SSH  
      Rapsberry Pi1 + Gertboard  {fa-file-pdf-o fa-2x}  Wifi / Switch for SSH  
      Raspberry Pi 2 + PI Sense Hat

    {fa-file-pdf-o fa-2x}

    +

    {fa-file-pdf-o fa-2x}

    +

    {fa-file-pdf-o fa-2x}

     Wifi / Switch for SSH  
    • Gyroscope
    • Accelerometer
    • Magnetometer
    • Temperature
    • Barometric pressure
    • Humidity
    Fun
    6 Nintendo Wii U 1 + 4 Pad + Mario Kart 8   HDMI  
    7 Nintendo Wii U 2 + 2 Controller+ Mario Bros u   HDMI  
    8 SNK Neo Geo X + Games + 2 pad  {fa-file-pdf-o fa-2x} HDMI  
    9 Nintendo NES mini classic + 2 pad + 21 games  {fa-file-pdf-o fa-2x} HDMI  
    10 Nintendo SNES mini classic + 2 pad + 21 games  {fa-file-pdf-o fa-2x} HDMI  
    11 Sega Megadrive Streefighter / Sonic + 2 pad   RCA  
      2 Gameboy Classic  {fa-file-pdf-o fa-2x} N/A  
      3 Gameboy Advance SP  {fa-file-pdf-o fa-2x} N/A  
      Nintendo DS Lite   N/A  
      1 Gameboy Advance   N/A  
      Chess Game   N/A  
      Rubik's Cube + Mindcuber   N/A  
      Powerball   N/A  

     

    Get your ticket now https://devfest.ch/ 

    BTW, I was also there last year in 2016, watch the gallery and also the interesting talks

     

    Rapsberry Pi Gertboard

    Named after its designer, Gert van Loo, the Gertboard is an IO expansion board for the Raspberry Pi with a lot of flexibility.

    Plug the Gertboard into the GPIO header on your Raspberry Pi and you’re ready to start detecting and responding to events in the real world. Jumper wires (called “straps”) and pin jumpers are used to reconfigure the board in any number of ways. Whether you need to detect button presses or analog voltages, control motors or relays, the Gertboard is the ultimate tool for exploring the Raspberry Pi’s full I/O potential!

    Features:

    • Plugs directly onto Raspberry Pi GPIO socket
    • Motor controller, capable controlling a motor bi-directionally, delivering 18V and 2A maximum
    • Dual-channel D-to-A converter, 8-bit
    • Dual-channel A-to-D converter, 10-bit
    • Onboard Atmel ATmega328 MCU for running off-board programs which are written, compiled and uploaded to Gertboard from Raspberry Pi
    • 6 x open collector outputs
    • 12 x LED indicators
    • 3 x momentary push switches
    • 10 x strap cables included
    • 18 x jumpers included

     

     

     

  • googleBuzz.small Buzz is a new way to share updates, photos, videos and more, and start conversations about the things you find interesting.

    • Share updates, photos, videos, and more.
    • Start conversations about the things you find interesting.
    • You're already following the people you
    • Email and chat with the most in Gmail.
    • Follow your friends and get recommended
    • Buzz from others — all within Gmail.

    I did rewrite nearly the whole code in behind, better administrator panel, 2 different outputs, all is customizable through CSS, Better caching of all costly operations like RSS, profile retrieval.

     

    If you are limited with space in your template, use the compact layout:

    Google.buzz.joomla.module

    While if you have at least 320 pixel wide left/right/module size, you can enjoy the buzzy box output

    google.buzz.for.joomla

    The administrator panel has now a bit more settings:

    google.buzz.for.joomla.adminpanel

     

    Download GoogleBuzz module 1.1.0 for Joomla!

    googleBuzz.logo Enjoy

  • phpstorm_header

    JetBrains PhpStorm is a commercial IDE for PHP built on JetBrains' IntelliJ IDEA platform.

    PhpStorm provides intelligent editor for PHP code, HTML and JavaScript with on-the-fly code analysis and automated refactoring for PHP and JavaScript code. Code completion supports PHP 5.3 including namespaces and closures.

  • Preinstalled applications are in /system/app folder, these are the one that can not be removed without root access. User installed applications are in /data/appbut also can be seen nor downloaded without a root access.

    If you just want to get an APK file of something you previously installed, you can do this:

    1. Get AirDroid from Google Play, this app let you wirelessly manage, control and access to Android Devices from a web browser Over-The-Air.
    2. Access your phone using AirDroid from your PC web browser,
    3. Go to Apps and select the installed app,
    4. Click the "download" button to download the APK version of this app from your phone.

    airdroid2

  • Everything on this pageshould NOT be applied

    "In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn't be able to maintain the code!
    You don't want to overdo this. Your code should not look hopelessly unmaintainable, just be that way. Otherwise t stands the risk of being rewritten orrefactored."