development

Development or developing may refer to: read more at WikiPedia

  • In Praise of Tweaking: A Wiki-like Programming Contest By Ned Gulley, The MathWorks, Inc.
    I know something you want to know. But will I tell you? Why should I? What's in it for me? Internet technology makes the simple act of online collaboration easy, but human nature stubbornly resists change. Why should I collaborate with you? What would convince me to share my ideas with you, given that you might use them to compete with me? In a larger sense, how might we build a system that encourages people to collaborate in, for example, writing useful code? These are some of the questions we have explored with a new kind of open source programming contest.
    ...
    To return to our earlier question: why should I collaborate with you? The answer is that I value your opinion. Since your opinion of me depends on the value of the ideas I put into play, I will work hard to give you exactly what you want. Good collaboration environments continuously and generously reward sharing with reputation-enhancing praise. The successful push-pull of collaboration and competition in our contests echoes the popularity of both open source programming and wikis and is certain to find its way into many enterprises as collaborative design becomes commonplace.
    Read more Here
  • MapReduce: Simplifed Data Processing on Large Clusters

    "MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. "
    Statistics of jobs in august 2004, as usual impressive amount of data!!!
    Number of jobs 29,423
    Average job completion time 634 se
    Machine days used 79,186 days
    Input data read 3,288 TB
    Intermediate data produced 758 TB
    Output data written 193 TB

    ...

    "It has been used across a wide range of domains within Google, including:&160;&160; large-scale machine learning problems,&160;&160; clustering problems for the Google News and Froogle products, MapReduce has been so successful because it makes it possible to write a simple program and run it ef ciently on a thousand machines in the course of half an hour, greatly speeding up the development and prototyping cycle. Furthermore, it allows programmers who have no experience with distributed and/or parallel systems to exploit large amounts of resources easily." more in the PDF here
  • Really worth reading if you are experiencing Agile Scrum development.

    800px-Scrum_process.svg 

    I do think AGILE and SCRUM has its place.  It is just that I believe this place is running projects under 5 people and delivery durations of less than 6 months. At that level, employing the right people with the right skills and motivation frequently guarantees that MAGIC will occur. The new media industry proves this everyday, irrespective of approach /method used. Good people always have the potential to overcome deficiencies with methods /approaches and poor management. I have seen it time and time again.

    From AGILE /SCRUM Fails to get to grips with Human Psychology.
    Posted by Kevin Brady on Thu 17th August 2006 at 03:10 PM, Filed in Software Dev Methodologies,  Key Articles

    This is what I would call 

    anti patterns for Scrum

    I think you can learn a lot more from these anti scrum pattern failures than from success stories. The path to success is narrower than you may think!, and you can be on a parallel road leading to a failure. Take also time to read all the comments, some are really interesting.

    What is the most interesting is this article was written in 2006!

    AGILE /SCRUM Fails to get to grips with Human Psychology.

  • Agile testing is a software testing practice that follows the principles of agile software development. Agile testing is built upon the philosophy that testers need to adapt to rapid deployment cycles and changes in testing patterns. Providing and getting feedback early, fast and regularly is one of the testers main task.

    AgileTestingPoster

    From http://bbv.ch/images/bbv/pdf/downloads/poster/bbv12_poster_agile_testing_1.0_web.pdf

    You can order a print version at http://www.bbv.ch/de/posterbestellung.html

    Find more at http://bbv.ch/de/unternehmen/publikationen.html

  • ganymede

    Here is the list of all 380 default shortcuts keys for eclipse Ganymede in an easy to print layout (4 pages A4). I recommend you to print a booklet out of it.

    Nobody on Internet is currently providing such a list, except a sourceforge project but their keys binding is for eclipse 2.1,Others keys binding for eclipse will follows soon.

    3rd party plugin shortcuts:

    Download as PDF now eclipse.ganymede.shortcuts.keys.binding.pdf

  • When Eclipse meet Joomla!...from 0 to Joomla! in 3 minutes

    &160;

    The easiest way to develop component, modules, plugin for Joomla! using best of the breed open source software.&160;
    In order to speed up development of Joomla software, I did develop a developer package "start and ready to work". So basically nothing special for any experienced developer, just a gain of time. Less experienced developer will enjoy the package!&160; Just unpack the big ZIP file on any drive, start 2 program and you have a running Eclipse and Joomla! environment for developing

    Read more in the WIKI

    To be release in a few hours from now


    Content of package

    eclipse logo
    Eclipse 3.4
    www.eclipse.org
    Eclipse is an open source community whose projects are focused on providing a vendor-neutral open development platform and application frameworks for building software. The Eclipse Foundation is a not-for-profit corporation formed to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services.
    PDT 2.0 The PDT project provides a PHP Development Tools framework for the Eclipse platform. This project encompasses all development components necessary to develop PHP and facilitate extensibility. It leverages the existing Web Tools Platform (WTP) and Dynamic Languages Toolkit (DLTK) in providing developers with PHP capabilities.
    xampp.logo&160;
    XAMPP 1.7.0
    XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start.
    apache http server
    • Apache HTTPD 2.2.11 + Openssl 0.9.8i

    The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.

    Apache has been the most popular web server on the Internet since April 1996.
    with mod_rewrite
    php logo
    • phpMyAdmin 3.1.1
    • FileZilla FTP Server 0.9.29
    • Mercury Mail Transport System 4.52
    PHP is a popular open-source programming language used primarily for developing server-side applications and dynamic web content, and more recently, other software. The name is a recursive acronym for "PHP: Hypertext Preprocessor".

    with PHPdg debugger support
    with GD2 image manipulation library
    phpadmin
    PphpMyAdmin 3.1.1
    phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields.

    Accessible through:
    http://localhost/mysql/
    joomla logo
    Joomla 1.0.15
    www.joomla.org
    Joomla! is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable.

    configured to access mysql dev10x database
    admin panel login: admin
    admin panel pwd: admin
    joomla logo
    Joomla 1.5.9
    www.joomla.org
    configured to access mysql dev15x database
    admin panel login: admin
    admin panel pwd: admin
    mysql logo
    MySQL 5.1.30&160;
    root login: root
    root password: empty
    Eclipse Launcher Version 2.0.2 A tool for java developers using eclipse IDE. The eclipse launcher provides developers to manage multiple workspaces and to start those. The program is shown in system tray from which it is possible to edit or start the workspace definition in an easy way.
    java
    Sun
    KDK 1.6u11
    Java Development Kit from Sun Microsystems that implements the basic set of tools needed to write, test and debug Java applications and applets. Needed to run Eclipse.


    &160; MySQL Administrator is a powerful visual administration tool that makes it easy to administer and monitor your MySQL environment and gain significantly better visibility into how your databases are operating. MySQL Administrator now integrates database management and maintenance into a single, seamless environment, with a clear and intuitive graphical user interface.

    MySQL Query Browser is the easiest visual tool for creating, executing, and optimizing SQL queries for your MySQL Database Server. The MySQL Query Browser gives you a complete set of drag-and-drop tools to visually build, analyze and manage your queries.

    The MySQL Migration Toolkit is a powerful framework that enables you to quickly migrate your proprietary databases to MySQL. Using a Wizard-driven interface, the MySQL Migration Toolkit implements a proven methodology and walks you through the necessary steps to successfully complete a database migration project.

    Some figures

    • Distribution is available as zip
    • You will have to accept and Read all licenses in directory SolarJoomla\licenses\
    • start one program to enjoy a running a Joomla developer environment in no time!
  • AntiPattern: "An AntiPattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences.

  • Some nice reading on AOP...

    Aspect-oriented programming (AOP) is an exciting new paradigm that should have the same effect on software development that object-oriented programming (OOP) had 15-20 years ago. AOP and OOP are not competing technologies, but actually complement each other. OOP is great for modeling common behavior on a hierarchy of objects.

    In software engineering, the programming paradigm of aspect-oriented programming (AOP), also called aspect-oriented software development (AOSD), attempts to aid programmers in the separation of concerns, or the breaking down of a program into distinct parts that overlap in functionality as little as possible. In particular, AOP focuses on the modularization and encapsulation of cross-cutting concerns. from WikiPedia


    What's keeping you from trying out AOP? Whether you think it's only good for low-level functions like tracing and logging, worry that it'll get in the way of unit testing, or would simply rather stick with the object-oriented alternatives, Ramnivas Laddad gives you good reason to reconsider. Follow along as this popular author and speaker digs beneath the surface of 15 myths that hinder the adoption of AOP.(IBM)
  • greenhoppertaskboard

    Atlassian just acquired GreenHopper, a popular JIRA plugin with over 800 customers.

    GreenHopper is a JIRA plug-in that adds a broad collection of agile project management capabilities to JIRA, and extends JIRA as a powerful platform for agile development teams. GreenHopper simplifies the planning and organization of tasks, workflows and reporting for agile teams.

    It introduce in JIRA

    • Card management:&160; Visualise issues, tasks and user stories as graphical "cards", color-coded and dynamically editable.

    • Planning Board: Quickly create, assemble, sort and prioritize project tasks with drag-and-drop simplicity.

    • Task Board: Track progress through simple, graphical views of remaining tasks across projects and teams.

    • Chart Board: Customizable dashboard, dynamic burn down and burn up charts.

    Learn all about GreenHopper at www.atlassian.com/greenhopper. Unfortunately it is not a free extension… ($700 to $1150 to add to JIRA)

  • Stop waiting for build & deploy make code changes. Write code and refresh your browser!

    Use DCEVM and add java fields, methods, classes and use them without restarting your application server, it's a modification of the HotSpot VM that allows unlimited class redefinition at run-time. You can add/remove fields and methods and change the super types of a class at run-time. The features of DCEVM are likely to be integrated in a future update of Java 8 as part of JEP 159.

    View code changes instantly and increases team velocity!

              DCEVM                  JVM Hot Swap         
    Changes to method bodies  yes yes
    Adding/removing Methods  yes  no
    Adding/removing constructors  yes  no
    Adding/removing fields  yes  no
    Adding/removing classes  yes  no
    Adding/removing annotations  yes  no
    Changing static field value  yes  no
    Adding/removing enum values  yes  no
    Modifying interfaces  yes  no
    Replacing superclass  yes  no
    Adding/removing implemented interfaces  no  no
    Initializes new instance fields  yes  no

     

  • Standard Java Hotswap allows only method body change , which makes it practically unusable. (Here you can find some explanations why and how) This article is all about reloading java code without restart :-)

  • apache_maven

    jbehave-logo

    I won’t explain you how to write any JBehave tests as the online documentation is more than complete.

    I prefer to show you how to make them run in eclipse, and in Apache Maven as the example were not easy to run (scenario are wrongly in src/main/java).

     

    JBehave is a framework for Behaviour-Driven Development
    Behaviour-driven development (BDD) is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike.
    It shifts the vocabulary from being test-based to behaviour-based, and positions itself as a design philosophy.
    You can find out more about behaviour-driven development on the BDD wiki, or in the article Introducing BDD

    Features of JBehave include:

    • Pure Java implementation, which plays well with Java-based enterprises.
    • Users can specify and run text-based user stories, which allows "out-in" development.
    • Annotation-based binding of textual steps to Java methods, with auto-conversion of string arguments to any parameter type (including generic types) via custom parameter converters.
    • Annotation-based configuration and Steps class specifications
    • Dependency Injection support allowing both configuration and Steps instances composed via your favourite container (Guice, PicoContainer, Spring).
    • Extensible story reporting: outputs stories executed in different human-readable file-based formats (HTML, TXT, XML). Fully style-able view.
    • Auto-generation of pending steps so the build is not broken by a missing step, but has option to configure breaking build for pending steps.
    • Localisation of user stories, allowing them to be written in any language.
    • IDE integration: stories can be run as JUnit tests or other annotation-based unit test frameworks, providing easy integration with your favourite IDE.
    • Ant integration: allows stories to be run via Ant task
    • Maven integration: allows stories to be run via Maven plugin at given build phase

    To make the online sample run easily without having to check out the whole tree of JBehave, I will show you that by slightly altering the pom.xml of a sample (Trader), you can run them against a fix version of JBehave.

    The whole pom.xml

    <profiles>
    <profile>
        jbehave
        <activation>
            <activebydefault>false</activebydefault>
        </activation>
        <build>
          <plugins>
            <plugin>
                <groupid>org.apache.maven.plugins</groupid>
                <artifactid>maven-dependency-plugin</artifactid>
                <executions>
                    <execution>
                        unpack-jbehave-site-resources
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <overwritereleases>false</overwritereleases>
                            <overwritesnapshots>true</overwritesnapshots>
                            <artifactitems>
                                <artifactitem>
                                    <groupid>org.jbehave.site</groupid>
                                    <artifactid>jbehave-site-resources</artifactid>
                                    <version>2.0.2</version>
                                    <outputdirectory>
                                        ${project.build.directory}/jbehave-reports/rendered
                                    </outputdirectory>
                                </artifactitem>
                            </artifactitems>
                        </configuration>
                    </execution>
                    <execution>
                        unpack-jbehave-reports-resources
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <overwritereleases>false</overwritereleases>
                            <overwritesnapshots>true</overwritesnapshots>
                            <artifactitems>
                                <artifactitem>
                                    <groupid>org.jbehave</groupid>
                                    <artifactid>jbehave-core</artifactid>
                                    <version>${jbehave.version}</version>
                                    <outputdirectory>
                                        ${project.build.directory}/jbehave-reports/rendered 
                                    </outputdirectory>
                                    <includes>
                                        **\/*.css,**\/*.ftl,**\/*.js
                                    </includes>
                                </artifactitem>
                            </artifactitems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupid>org.jbehave</groupid>
                <artifactid>jbehave-maven-plugin</artifactid>
                <version>${jbehave.version}</version>
                <executions>
                    <execution>
                        run-scenarios-found
                        <phase>integration-test</phase>
                        <configuration>
                            <scenarioincludes>
                                <scenarioinclude>
                                    **/scenarios/*.java
                                </scenarioinclude>
                            </scenarioincludes>
                            <scenarioexcludes>
                                <scenarioexclude>
                                    **/i18n/scenarios/*.java
                                </scenarioexclude>
                            </scenarioexcludes>
                            <batch>false</batch>
                            <ignorefailure>
                                true
                            </ignorefailure>
                            <classloaderinjected>false
                            </classloaderinjected>
                            <scope>test</scope>
                        </configuration>
                        <goals>
                            <goal>run-scenarios</goal>
                        </goals>
                    </execution>
                    <execution>
                        run-i18n-scenarios-found
                        <phase>integration-test</phase>
                        <configuration>
                            <scenarioincludes>
                                <scenarioinclude>
                                    **/i18n/scenarios/*.java
                                </scenarioinclude>
                            </scenarioincludes>
                            <skip>false</skip>
                            <classloaderinjected>
                                true
                            </classloaderinjected>
                            <scope>test</scope>
                        </configuration>
                        <goals>
                            <goal>run-scenarios</goal>
                        </goals>
                    </execution>
                    <execution>
                        stepdoc
                        <phase>integration-test</phase>
                        <configuration>
                            <scenarioincludes>
                                <scenarioinclude>
                                    **/scenarios/*.java
                                </scenarioinclude>
                            </scenarioincludes>
                            <scenarioexcludes>
                                <scenarioexclude>
                                    **/scenarios/None.java
                                </scenarioexclude>
                            </scenarioexcludes>
                            <skip>false</skip>
                            <scope>test</scope>
                            <classloaderinjected>false
                            </classloaderinjected>
                        </configuration>
                        <goals>
                            <goal>stepdoc</goal>
                        </goals>
                    </execution>
                    <execution>
                        render-reports-generated
                        <phase>post-integration-test</phase>
                        <configuration>
                            <formats>
                                <format>txt</format>
                                <format>html</format>
                                <format>xml</format>
                            </formats>
                            <scope>test</scope>
                            <ignorefailure>true</ignorefailure>
    
                        </configuration>
                        <goals>
                            <goal>render-reports</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            </plugins>
        </build>
      <reporting>
        <excludedefaults>true</excludedefaults>
        <plugins>
            <plugin>
                <groupid>org.jbehave</groupid>
                <artifactid>jbehave-maven-plugin</artifactid>
                <version>${jbehave.version}</version>
                <configuration> </configuration>
                <reportsets>
                    <reportset>
                        <reports>
                            <report>render-reports</report>
                        </reports>
                    </reportset>
                </reportsets>
            </plugin>
        </plugins>
      </reporting>
    </profile>
    </profiles>
    
  • eclipse_home_header&160; After the huge success and feedback of my first tips on how to speed eclipse, here are more performances tips, some are obvious some not:

    Disabled/Exclude the virus scanner for the eclipse directory: while obvious It will or may be difficult to achieve if you're not administrator on your machine (while not impossible) and that may not make some people happy especially security officers ;-) It is obvious that scanning on the fly every resources in a workspace, is detrimental for speed. You'll get at least 15 to 20% more raw input output speed and gain 5 to 15% CPU cycles.

    Defragment often: NTFS fragment, File get changed, added or remove, so NTFS will fragment very fast, it is time to defragment&160; your disks. And since there is a lot of free program floating around, why not trying to get the last 20% loses in access time and transfer rate? Defragment at least one time a week your Eclipse workspace.

    Get more memory! Windows Server 64bits or Linux 64bits allow you to start with 3GB contiguous memory without complaining, the more memory the better!

    Get a faster disk for your notebook (western Digital black edition / Seagate momentus 1.3 are cheap), or better build yourself a RAID0 array made of 3 disks as you'll get the IO output of 3 disks. Since we do usually more READ access&160; (searching code, browsing hierarchy of objects) than write (writing code, let the compiler run)

    RAID 0 (striped disks) distributes data across several disks in a way that gives improved speed and full capacity, but all data on all disks will be lost if any one disk fails.

    Stop as many thread as possible that are not needed, in this category go all 3rd party nice to have software you may have authorized or not on your notebook: Google desktop search , Windows desktop search, widgets, Rss feeds... the less threads running in the background the better...

    Change for another operating system :-) Linux file systems are blazing fast compare to the venerable NTFS, and threading seems to be a lot better on any 2.6 Linux Kernel.

  • Decouple an abstraction from its implementation so that the two can vary independently.

    from the gang of the four





    Source Code

    /**
     * Defines Abstraction interface. Stores reference to implementation.
     * 
     * @role __Abstraction
     */
    public abstract class Abstraction {
    	/** Reference to actual implementation */
    	private Implementor impl;
    
    	/**
    	 * @return implementation-in-action.
    	 */
    	protected Implementor getImplementor() {
    		return impl;
    	}
    
    	/**
    	 * This sample operation delegates call to particular implementation
    	 */
    	public void someOperation() {
    		getImplementor().someOperationImpl();
    	}
    }
    
    /**
     * Concrete implementation
     */
    
    public class ConcreteImplementorA extends Implementor {
    	/** @see patterns.gof.bridge.ImplementorsomeOperationImpl() */
    	public void someOperationImpl() {
    		// provide implementation here
    	}
    }
    
    /**
     * Concrete implementation
     */
    
    public class ConcreteImplementorB extends Implementor {
    	/** @see patterns.gof.bridge.ImplementorsomeOperationImpl() */
    	public void someOperationImpl() {
    		// provide implementation here
    	}
    }
    
    /**
     * Defines interface for implementation classes. Is not oblidged to provide
     * one-to-one correspondence to interface of Abstraction.
     * 
     * @role __Implementor
     */
    
    public abstract class Implementor {
    	/** Implement this method to provide implementation-specific behavior */
    	public abstract void someOperationImpl();
    }
    
  • Separate the construction of a complex object from its representation so that the same construction process can create different representations.



    Source Code

    /**
     * The interface Product defines interface to create parts of the
     * Product.
     */
    public interface Builder {
    
        /**
         * Construct part of the complex Product.
         */
        public void buildPart();
    
        /**
         * Construct the Product.
         *
         * @return the constructed product
         */
        public Product getProduct();
    }
    
    /**
     * The ConcreteBuilder is the product of a concrete builder.
     *
     */
    public class ConcreteBuilder implements Product {
    }
    
    
    /**
     * The ConcreteBuilderBuilder creates and assembles parts of
     * the Product.
     *
     */
    public class ConcreteBuilderBuilder implements Builder {
    
        /**
         * Reference to Product being constructed
         */
        private ConcreteBuilder concreteBuilder;
    
        /**
         * Construct part of the complex Product.
         */
        public void buildPart() {
            // put your code here
        }
    
        /**
         * Construct the Product.
         *
         * @return the constructed product
         */
        public Product getProduct() {
            return concreteBuilder;
        }
    }
    
    
    /**
     * The ConcreteBuilderClient initialized the Director with a
     * Concrete Bulder to create the Product and gets result from the Builder.
     *
     */
    public class ConcreteBuilderClient {
    
        /**
         * Use the Builder to create the Product.
         */
        public void createProduct() {
            ConcreteBuilderBuilder builder = new ConcreteBuilderBuilder();
            new Director(builder).construct();
            Product product = builder.getProduct();
        }
    }
    
    
    /**
    * The class Director manages Product creation using Builder.
    */
    public class Director {
    
        /**
         * Reference to Builder currently used
         */
        private Builder builder;
    
        /**
         * Create a new Director instance.
         *
         * @param builder the builder which will create the product
         */
        public Director(Builder builder) {
            this.builder = builder;
        }
    
        /**
         * Construct the Product using the Builder.
         */
        public void construct() {
            builder.buildPart();
        }
    }
    
    
    /**
     * The interface Product defines a complex object that is
     * constructed part-by-part with Builder.
    
     */
    public interface Product {
    }
    
    
    
    
    
    
    
  • cedTag

    CedTag&160; has been updated to version 2.5.3 and correct a lot of bugs and contains some nice features.

    CedTag is the continuation of the GPL component Joomla Tags (www.joomlatags.org), Most of the codehas been rewritten according to the new standard of Joomla 2.5, the component has been greatly extended and most bugs have been removed. I will continue removing, refactoring existing codebase, in order to be able to add new features faster.

    What’s new

    NEW: Auto completion of tags in frontend and backend using jQuery. You can add new tags, search and remove tags without fearing creating duplicates!
    NEW: Joomla ACL support,
    NEW: Add basic support for themes, still need some css correction for optimal results
    NEW:Use confirmation popup windows for all delete/clear operations,
    NEW: New option to switch off tags title in front page,
    NEW: No white background in simple.css for people loving their black background as default,
    NEW: cedTag is now having no warnings/errors in PHP error level E_STRICT
    BUG:&160; I cant disable cedTag on front page when i disable it any thing not change...i want show tags only on full article view...
    BUG:&160; Working update manager: starting at version 2.5.3 you can update with one click in the update manager.
    BUG: Did remove a hack of me for testing -> it was not possible to switch off the add tags button in frontend since i fixcoded to true :-(
    BUG: Correct issue in editor xtd plugin blocking users to edit/view articles in frontend

    Code cleaning

    • Rewrite 90% of all query string to use the $query object api of joomla
    • Did clean the content plugin a lot,

    CedTag is used on this site with more than 5000 tags in 2200 articles.

    Your ideas are important, feel free to contact me and ask for new features!

  • cedTag4

    CedTag&160; has been updated to version 2.5.5 and correct a lot of bugs and contains some nice new features.

    CedTag is the continuation of the GPL component Joomla Tags (www.joomlatags.org), Most of the code if not allhas been now rewritten according to the new standard of Joomla 2.5, the component has been greatly extended and most bugs have been removed. I will continue removing, refactoring existing codebase, in order to be able to add new features faster.

    What’s new

    NEW: Wikipedia auto-completion of tag descriptions with Wikipedia&160; OpenSearch API!

    Support more than 40 localized Wikipedia servers (all Wikipedia with more than 100’000 articles)

    العربيةБългарскиCatalàČeskyDanskDeutschEnglishEspañolEsperantoEuskaraفارسیFrançais한국어हिन्दीHrvatskiBahasa IndonesiaItalianoעבריתLietuviųMagyarBahasa MelayuNederlands日本語Norsk (bokmål)PolskiPortuguêsҚазақша / Qazaqşa / قازاقشاRomânăРусскийSlovenčinaSlovenščinaСрпски / SrpskiSuomiSvenskaTürkçeУкраїнськаTiếng ViệtVolapükWinaray中文

    For all termscedtag_wikipediaautofill1

    cedtag_wikipediaautofill2

    or while editing a term

    cedtag_wikipediaautofill3
    NEW:diagnostic page

    cedTag_newDiagnostic
    NEW: tags can also now be automatically inserted when new article is entered from the backend,
    NEW: new configuration settings “Force Existing articles get their tags updated always from article meta keywords at save time” under Tab Tags (default is No)


    NEW: Supporting tags containing many words separated by space: There are normally 5 ways to insert a tag after inputting some text: space, comma, enter, selecting an autocomplete option, or defocusing the widget. Now space now longer save the tag: You can enter tags with space as a result!
    NEW: inline documentation when adding tag in frontend

    cedTag_supportTagsWithSpace

    &160;

    BUG: Code cleaning, according to Joomla standard: my dream is to have this extension accepted in Joomla core! Still a lot of PHP Unit test to be written before submitting this to the mailing list of Joomla developers. Now I use Joomla CodeSniffer&160; and PSR-1 CodeSniffer rules in my day to day development.
    BUG:&160; after click on Template Manager it show this err Fatal error: Class 'UsersHelper' not found in /home/assafir/public_html/administrator/components/com_cedtag/views/css/view.html.php on line 41
    BUG: tags were not inserted automatically from new content article in frontend,
    BUG: it was not possible to use html descriptions
    BUG: missing some http://jqueryui.com images resources

    Your ideas are important, feel free to contact me and ask for new features!

  • Warning

    IT IS MANDATORAY TO COMPLETELY REMOVE ALL VERSION < 2.6.0 BEFORE INSTALLING THIS NEW ONE!
    Go to the Extension Manager under the tab Manage, enter in filter "tag", select all and click Actions – Uninstall
    Reason: I did change a lot of folder name and file casing casing to be more Joomla compliant
    Don’t be scared you will not loose any Tags or data from your database! uninstalling do not remove currently any tables!

    &160;

    Your ideas are important, feel free to contact me and ask for new features!

    New & Noteworthy

    Security

    SECURITY: all Ajax operations+Admin operation are now protected with a Joomla token to avoid CSRF

    SECURITY: All SQL statement have been migrated to use Joomla Query Object so the code should be portable now under SQL Server, Postgress

    Code review and refactoring is a recurring task for me!

    Performances

    PERF: Faster escaping in modules if there is no tags matching any criteria,

    Features

    NEW:&160;More themes are available.

    joomla_cedtag_moreThemes

    NEW: In “article Manager”, multi-tag filtering it is now possible to simply select multiple tags and/or searching for one tag and then another within the previous results.

    joomla_cedtag_multitagFiltering

    NEW: In “article Manager”, tab index is supported, enter tags hit tab to go to next articles,

    NEW:Full rewriting of Tag List layout, now table less.

    NEW:Full rewriting of blog layout: having as much if not all features of the internal Joomla category blog feature.

    • Table less layout,
    • Category display,
    • Articles Metadata: publish, created, hits,
    • Articles operations like print, email,
    • As it reuse the setting of Joomla, you’ll have to go to Joomla configuration to make changes or better it will inherit the same setting as Joomla content blog layout.

    joomla_cedtag_newBlogLayout

    NEW: full internationalization of all 5 modules:

    • Custom Tags Cloud (en-GB.mod_cedtagcustom.ini),
    • Latest Tags Cloud (en-GB.mod_cedtaglatest.ini),
    • Most Popular Tags Cloud (en-GB.mod_cedtagmostpopular.ini),
    • Most Read Tags Cloud (en-GB.mod_cedtagmostread.ini),
    • Random Tags Cloud (en-GB.mod_cedtagrandom.ini).

    NEW: Add “Save” button for “Template manager” and “Stop words”

    NEW: It is now possible to change the title of tags by changing the value of the key COM_CEDTAG_ITEMS_TITLE in&160; /plugins/content/cedtag/language/en-GB/en-GB.plg_content_cedtags.ini

    ; %1$s = frequency,
    ; %2$s = name,
    ; %3$s = created,
    ; %4$s = hits
    COM_CEDTAG_ITEMS_TITLE="%1$s items tagged with %2$s | created %3$s | Hits: %4$s"

    joomla_cedtag_ titleofTags

    &160;

    NEW: More Options for Menu Entry “All Tags” Count, Page Title, Meta Description, Meta Keywords, Reverse display and tags ordering. Some default are provided.

    joomla_cedtag_ alltagsMenuEntry

    NEW/BUG Wordlenow working on Linux, was always working on windows due to a path issue to the true type font I did introduced, I took the time to add a lot more settings so you can fully customized the images created!

    joomla_cedtag_wordlejoomla_cedtag_ wordleOptions

    NEW: Rockettheme Installer removed to use standard Joomla installation packages. To remove now all CedTag components, just remove the main component. No risk of incomplete removal.

    joomla_cedtag_newInstallerjoomla_cedtag_newUninstall
    NEW: menu entries for administration backend

    joomla_cedtag_MenuEntriesForAdministrationBackend

    NEW: 5 Modules are now created as default but not published nor assigned to any page.

    joomla_cedtag_5ModulesAreNowCreatedAsDefault


    NEW: option so front page tagging to be just available in front page edit before , it was too long, and breaks the browsing experience for any logged author browsing the site, sometimes appearing even twice. (Request)

    NEW:scripts to switch off all subsystem of cedTag if you get no access to your site (happen only when you remove some part and not all of cedTag)

    Known Issues

    • CSV export of all tags is currently broken

    &160;

    Bugs

    BUG:Error 500 Some people encounter while using URL rewriting.
    Found also that RokComment is crashing when used with cedTag. I did solve the issue by patching RokComment (I think the error is there and not in my component). YOu can ask me for the custom build of RokComment.

    BUG: correct handling of trash item in frontend
    BUG: correct handling of Joomla ACL using authorized access levels for the user
    BUG: Can add tag but cannot delete tag, request http://forums.waltercedric.com/index.php?topic=1401.0
    BUG
    : Content plugin don’t get executed in blog layout,
    BUG: wordle links were not supporting SEF
    BUG: advertisement code was not allowing html,
    BUG: Custom tag cloud module: the SQL query was broken,
    BUG: Custom tag cloud font size and title overlay was not defined ,
    BUG: All tags layout was not taking “count” into account for limiting the size of the cloud.
    BUG: default file css restore was not depending on user selection of theme, as a result restore was always using simple.default.css
    BUG: installer now create default modules instances without publishing them.
    BUG: metadata of menu entry “All tags” was not reading parameters, now you can set count, sorting, metadata descriptions and keywords
    BUG: paging at the limits (where ?limitstart= is in the url) lead to a tag not found.
    BUG: “:” was always filtered from tag name even when removed from “Strip Characters”
    BUG: Solved “Warning: Missing argument 4 for plgContentCedTags::onContentBeforeDisplay() in plugins/content/cedTags/cedTags.php on line 41"

  • cedTag provide a useful way to group related posts together and to quickly tell readers what a post is about. Tags also make it easier for people to find your content. Tags are similar to, but more specific than, Joomla categories.

    What’s NEW

    NEW: Adding a debug switch in administrator configuration area, this will write a file at logs/cedtag.php that contains some debug information that may be useful to spot difficult bugs,

    NEW:a new css file (/media/com_cedtag/css/blog.css) is added to the blog layout to give you more control on the rendering of top and bottom publicity,

    BUG cedtag was adding ul no matter if tags were available for the current article.

    BUG title of html page was not translated correctly and was displayed wrongly like this

    <title>%1$s items tagged with %2$s | created %3$s | Hits: %4$sjoomla | test</title>

    BUG solve cedtag: Warning: Missing argument 8 for plgContentCedTag::execute(), called in /htdocs/public/www/plugins/content/cedtag/cedtag.php on line 72 and
    defined in /htdocs/public/www/plugins/content/cedtag/cedtag.php on line 136 Fatal error: Call to a member function get()
    on a non-object in /htdocs/public/www/plugins/content/pagenavigation/pagenavigation.php on line 30

    &160;

    Features

    what are the features of cedtag? get an overview by reading http://cedtag.waltercedric.com

    Your ideas are important, feel free to contact me and ask for new features!

  • cedTags_for_joomla

    cedTag&160; has been released and it is still beta, it has been made available to gather feedback. Don’t use it in production or at your own risk. I plan to use it before the end of months on my site. I would love to hear what is missing, what you don’t like, how it can be better.

    A real free tag system for Joomla!

    Front end features

    • Show tags at the bottom of each article.
    • Tag list view
    • Tag blog view
    • Most popular tags.
    • Most hits tags.
    • Latest tags.
    • SEF support, compatible with sh404SEF,ARTIO JoomSEF,AceSEF
    • XMap Plugin
    • Language file support
    • Add/Edit tags
    • Compatible with JoomlFish
    • Search plugin.

    Back end features

    • Import Tags from Meta keywords
    • Import tags from 3rd party system
    • Term editable.
    • Batch term add.
    • Batch tag management.
    • Auto extractable tag.
    • Language file support
    • Template edit online.
    • Tags filter by section and category.
    • One click installation.

    User of Joomla Tags, just install this all in one package and select Import – Souce – Joomla Tags and click import to copy your data in the new table.

    cedTag a new Tag system for Joomla 2.5 (based on Joomla tags) is now deployed on my showcase

    http://demo-joomla-2.5.waltercedric.com/

    &160;

  • CedThumbnails has been updated to version 2.5.5 and contains 1 new features for both Joomla 1.7 and Joomla 2.5. For existing users the update will display in the Extensions Manager under Updates. If you do not have this currently installed, you can click the link below and install as normal via the Extensions Manager.

    What’s new?

    • Video Thumbnail Feature: Google Youtube video are now supported as thumbnails!
    • Administrator panel
    • Update server simplified

    Full list of changes available in GIT commit aa32de404c928f3bd0fc67d7b9302e236893fd48

  • CedThumbnails has been updated to version 2.6.0 and contains 4 new features and correct 1 bug for Joomla 2.5. For existing users the update will display in the Extensions Managerunder Updates. If you do not have this currently installed, you can click the link below and install like you are use to via the Extensions Manager.

  • Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.



    Source code

    /**
     * Handles request it is responsible to.
     */
    public class ConcreteHandler extends Handler {
            /**
      * Handle request or delegate it.
      */
            public void handleRequest() {
                    boolean canProcessThisRequest = false;                if (canProcessThisRequest) {
                            // handle request if possible
                    } else {
                            // pass it to the next in chain
                            super.handleRequest();                }
            }
    
    }
    
    /**
     * Defines interface for request handling
     * @role __Handler
     */
    public class Handler {
            private Handler successor;        /** Default request handling */
            public void handleRequest() {
                    if (successor != null) {
                            successor.handleRequest();                }
            }
    
            public Handler getSuccessor() {
                    return this.successor;        }
    
            public void setSuccessor(Handler successor) {
                    this.successor = successor;        }
    
    }
    
    
    
    
    
  • As I am in the middle of the development (a little bit more than 60% done) of my PHP Bayesian Naive Filter (a learning filter against spams comment, guestbook, and posting in general) for Joomla/Mambo and after reading some paper found on internet:

    • On Attacking Statistical Spam Filters, Gregory L. Wittel and S. Felix Wu - Department of Computer Science - University of California, Davis One Shields Avenue, Davis, CA 95616 USA
    • A Naive Bayes Spam Filter, Kai Wei This email address is being protected from spambots. You need JavaScript enabled to view it. CS281A Project, Fall 2003
    • But there is more...

    I decide that my project will be certainly a failure if I rewrite or reuse a Bayesian filter engine which is not accurate or using the latest countermeasures. Since I do not want to develop during 3 years an effective filter (will I ever be able to do it???), I came across the idea of implementing the component com_bayesiannaivefilter in such a way that I can abstract the core engine and use the work done by the best open source project.

    It is also clear for me since the beginning that a spam filter must be trained on a very large data volume (more than 1000 messages, the more the better) in order to categorize the message with accuracy. Webservices will have my preference as an internet entities with the require cpu horsepower and data store should be able to offer the best categorizing messages efficiency....

    My component will be able to use following Bayesian Naive Filter core: (planned but not done, I it is technically possible I will do it)

    Plugins Remarqs Possible open source project
    JAVA I am a J2EE developer, Back to the roots :-) Som. to propose? contact me!
    PHP Core done, but very simple tokenization and hashing of message
    Volume of data small
    Som. to propose? contact me!
    PERL Can PHP call perl code? Som. to propose? contact me!
    CGI-BIN Should be easy to do Som. to propose? contact me!
    WEBSERVICES Should be easy as soon as we found a WS provider
    Data volume?
    Som. to propose? contact me!

    Each technology may contains many core engine, or different versions. I will fill this table with possible candidate (You can heelp me by suggesting or speeding development).

    Core requirement:

    • Use mySQL,
    • Most of internet provider allow the use of CGI-BIN, PERL, JAVA

    This project will be soon committed to Joomla forge!

  • This visualization, called code_swarm, shows the history of commits in a software project. A commit happens when a developer makes changes to the code or documents and transfers them into the central project repository. Both developers and files are represented as moving elements. When a developer commits a file, it lights up and flies towards that developer. Files are colored according to their purpose, such as whether they are source code or a document. If files or developers have not been active for a while, they will fade away. A histogram at the bottom keeps a reminder of what has come before.

    this is how it look like with eclipse from eclipse.org

     


    code_swarm - Eclipse (short ver.) from Michael Ogawa on Vimeo.

     

     An experiment in organic software visualization.