Development or developing may refer to: read more at WikiPedia

  • ISO 8859-1 Symbol Entities

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

    In order to better develop for Joomla by having your own subversion local repositories.

    My second objective is to version different version of Joomla!/my components so I can
    run a continuous build strategy with XINC...but more on that later when I will have enough regression tests :-)

    Download the Subversion distribution for you operating system at:

    Subversion Binary Packages
    Debian Project
    apt-get install subversion
    Fedora Project
    yum install subversion
    Mac OS X
    Fink package (Requires Fink)
    MacPorts (Requires MacPorts)
    FreeBSD Project
    cd /usr/ports/devel/subversion;
    make install
    Red Hat
    CollabNet (Certified binaries)
    SummerSoft (Red Hat 8,9 +)
    cd /usr/pkgsrc/devel/subversion;
    make install clean
    CollabNet (Certified binaries, SPARC)
    Sunfreeware (SPARC & i386)
    OpenBSD Project
    cd /usr/ports/devel/subversion;
    make install
    CollabNet (Certified binaries) Apache 2.0 or Apache 2.2
    VisualSVN (VisualSVN Server)
    Ubuntu Packages
    apt-get install subversion





    The first thing you'll need is a new repository. A repository is where all of your individual projects will be stored.

    Create a new directory using the file explorer or with

    # mkdir e:\xsubrversion

    Initialize it by issuing this command:

    # svnadmin create e:\xsubrversion

    Inside your new repository (e:\xsubrversion ) there is a directory called /conf. There you'll find a file
    svnserve.conf. Open this file in a text editor.

    Just uncomment the following lines by removing the #:

    anon-access = read
    auth-access = write
    password-db = passwd

    In the same directory, you'll find another text file called passwd, if it do not exist, just create it and put all
    users authorize to access subversion in a [users] section. It is a pure key value pair file in the format

    [users] = xxxxxxx
    monkey.coder = yyyyyy

    Restart the service "Subversion Server"

    In Eclipse PDT/PHP Eclipse, you can now connect to Subversion with Subversive client (Subclipse is not part of
    Eclipse consortium)

    Password: xxxxxxxxxxxx

    suversion.subclipse  and be able to commit and browse you code trunk.subversion.local

  • Introductiontom2eclipse

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

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

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

     Character  XML ISO code  HTML entity   Character  XML ISO code  HTML entity 
    À&192;À Ã&224;à
    Ã?&193;Á Ã¡&225;á
    Â&194; â&226;â
    Ä&196;Ä ä&228;ä
    Æ&198;&Aelig; Ã¦&230;æ
    Ö&214;Ö ö&246;ö
    Ü&220;Ü ü&252;ü
     &129;  Â¡&161;¡
    ‚&130;  Â¢&162;¢
    ƒ&131;  Â£&163;£
    „&132;  Â¤&164;¤
    …&133;  Â¥&165;¥
    â€&134;  Â¦&166;¦
    ‡&135;  Â§&167;§
    ˆ&136;  Â¨&168;¨
    ‰&137;  Â©&169;©
    Å&138;  Âª&170;ª
    ‹&139;  Â«&171;«
    Œ&140;  Â¬&172;¬
     &141;  Â­&173;­
    Ž&142;  Â®&174;®
     &143;  Â¯&175;&masr;
     &144;  Â°&176;°
    ‘&145;  Â±&177;±
    ’&146;  Â²&178;²
    “&147;  Â³&179;³
    â€?&148;  Â´&180;´
    •&149;  Âµ&181;µ
    –&150;  Â¶&182;¶
    —&151;  Â·&183;·
    ˜&152;  Â¸&184;¸
    ™&153;  Â¹&185;&supl;
    Å¡&154;  Âº&186;º
    ›&155;  Â»&187;»
    œ&156;  Â¼&188;¼
     &157;  Â½&189;½
    ž&158;  Â¾&190;¾
    Ÿ&159;  Â¿&191;¿
  • A collections of links, this time. A lot of persons have already done a stunning job:

    • Sun Java Center - J2EE Patterns:The J2EE Patterns presented here, a collection of J2EE-based solutions to common problems, reflect the collective expertise and experience of Java technology architects in the Sun Java Center over the past three years.
    • Wiki pattern catalogwith some famous contributors like Kent Beck and co.
    • The server side: get the latest informations on Patterns.
    • Javaworld a list of articles

  • Â

    Java Coding guidelines

    I won&39;t give you here all explanations on how to improve your code, only some references to external ressources, a lot of people have done a good job (hard work, respect!). Feel the need to improve your code, and you will follow more or less the same road

    Kent Beck often makes a statement about himself, "I&39;m not a great programmer; I&39;m just a good programmer with great habits."

    "keep it small to keep it beautiful" me speaking about refactoring ;-)

    "Tests don&39;t prove the absence of bugs"

    "Good judgment comes from experience. Unfortunately, the experience usually comes from bad judgment"

    Occam&39;s razor (14th century philosopher monk): No complexity beyond what is necessary.

    Things you may do to improve your code

    • Respect the Java guidelines, a lot of white papers can be found on internet.
    • Never return a collection (Vector or Hashtable or) in java, prefer to return a class which hide the real collection, better return an interface, this will allow to refactor the code if performances issues are found. Difficulty is of course to define a good contract between your code and client which will use it (good interface). Never use a Vector and let the client cast or extract Object type, let the compiler protect yourself against runtime error!!!!
    • If you need to have diffferent implementation of a class, but do not want to have one of them in memory (for example because of costly licences), you need a dynamical factory (Abstract polymorphical factory) Here is a templates of this ZIP file
    • Use idea of design from open source project! a lot of great and skilled people are working for the fundation Apache for example.
    • Use Object development (of course) but do not rely on interface shipped with 3rd party objects you are buying/integrating, always create a wrapper around them or better define your own interface, use a strategy pattern....
    • A good code is a small code! responsabilities must be properly localized (do not be lazy, create more objects!)and not spread around or worse localized in one object (spaghetti code). Naming convention is very important! you can distinguish an orange from an apple? right so do not forget that the easiest refactoring methods are: rename methods, rename variables, rename objects, rename packages, move code to...
    • Use a logging framework or better use nothing else than log4j or any implementation based on it. It is a great advantage to know how many bugs or errors has occured in production and when. Moreover changing debug level without rebooting server, or changing output destination are neat features FAQ.
    • Feel the need to avoid comments! they are not really synchronized (some people prefer to say NEVER synchronized) with the source code. If you still need comments, ask yourself if you can not use these comments to rename or reorganize the code they belongs. You may only explain: designs patterns used, bugs corrected (prefer to write a Junit testcase), algorithms or hacks (hacks are temporary solutions that do not create any major problems).
    • Do a daily integration, this is quite simple with eclipse and if you use ANT, read more at
    • Use XML! yes it is memory consuming, slow to read (not always) but it has a so much advantages that they can not be listed here (or not now),
    • Prefer lossely coupled system or process, for example try to create a meta descriptions data storage if you have a lot of layers in your system or use webservices


    Of course some habits of coding are really bad, but nearly all compilers are catching them, and can do some agressive optimizations... you will never thinks of, moreover some JVM can optimized the bytecode on the fly (HOTSPOT) or do second pass during compile time. Do you really think that you will speed up your program when you take care of writing rules or try to use a non readable algorithm which contains a lot of tricks? if you do so, you will not see the evil loop where your system will hang for seconds....Keep always in minds:

    • Do not try to start any optimizations too early, code must be readable and high level.
    • Use a profiler, if you are not satisfied with performances! and locate precisely the place where you loose time or eat memory. Memory leaks can be found with profilers too (yes memroy leaks are existing in java :-) ). This can be done by a core taskforce team, generally in one/two week(s).
    • Remember that when you will ship your code to customers, new cpu or machines will be available, chance is that a better cpu will cost less than hours of optimizations.
    • Techniques to improves performances are well documented, and quite easy. I use generally: pooling, load balancing, caching, precomputing values (you remember people using sinus table accurate at 10-3 for demo on amiga or HP48?), some patterns are helpful too, lazy evaluations, lazy initialization, delayed constructions! and so on...It is like a new world!
    • If you use a storage system, like a database, you can use an external ressource to improve IO, turn on the SQL query analyzer in SQL or Oracle to see what is going on. Any DBA (Database Administrator) can determine really fast where problems are: no index, bad design, foreign keys not well choosen, too much or bad join of tables, tables are too big, temporary table not empty after use, not enough virtual memory tuning, no cache tuning, bad JDBC-ODBC driver....
    • JVM parameters tuning: after using the profiler, you can determine the optimal size of heap and stack, turn hotspot on or cut it off because sometimes it has some bad effects.
    • User determine if a system is slow, or after loading the applications you can decide to improve your code if needed (memory used, cpu used, io used...). Remember end users are humans (not always ;-) for me), you can disturb them or make the wait look shorter if you use a hourglass or vertical slider, system must be responsive to user interactions! display something but do not hangs during seconds. A small javascript code can give you 40% more "hanging" time with great users acceptance

    Things you may read to improve your code

    • Read news about java technologies:, project hosted at and so on. You must keep yourself inform about the latest state of the art.
    • Register at a lot of great forums, and a knowledge database can be freely browsed.
    • Refactoring:a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. (from Martin Fawler&39;s book: Refactoring) and techniques associated.
      My own definition would be: never be satisfied with your code! when it works and has been tested, write JUnit testcases and take 10 min to refactore your code each day. The book above has a good introduction about why it is important and how you can explain it to your manager. read one refactoring technique per day, it will also help you to improve your code.
    • AntiPattern: "An AntiPattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences.
    • AntiPatterns are a method for efficiently mapping a general situation to a specific class of solutions.
    • AntiPatterns provide real-world experience in recognizing recurring problems in the software industry and provide a detailed remedy for the most common predicaments.
    • AntiPatterns provide a common vocabulary for identifying problems and discussing solutions.
    • AntiPatterns support the holistic resolution of conflicts, utilizing organizational resources at several levels, where possible.
    • AntiPatterns provide stress release in the form of shared misery for the most common pitfalls in the software industry" from
    • Reference book isAntiPatternsRefactoring Software, Architectures, and Projects in Crisis
      William J. Brown - Raphael C. Malveau - Hays W. McCormick III - Thomas J. Mowbray - John Wiley & Sons, Inc.

    • follow this rules to respect deadlines and work in an ambitious project.
    • use patterns in your projects! and use comments saying which one you are using and why.It help a lot to understand the code.
    • and his famous free book "Thinking in Java" is a must for all developer (entry level but sometimes it is good not to forget basics of languages or OO)
    • Checked exceptions are not supported in Java but can be implemented, read here:
    • Read cocomo in order to know what can make sense, statistics released by an university in USA that show influence of parameters during a project: what does a guru bring to a project?...what are the cost of a reatime application? how do I determine how long it will take?
  • As always updating to the latest version of all your developement components is never without any issues, here is what  you need to take into consideration when upgrading Joomla 3.8.7 and WinNMP 18.03

    Install WinNMp 18.03 from in any directory, default is C:\WinNMP\

    Unpack Joomla 3.8.7 to C:\WinNMP\WWW\dev for example

    When starting WinNMP, you can click reload, to see the site appearing


     Now edit Nginx virtual server


     And cut and paste the following config (you can get it from Joomla-Nginx-configuration">


    You can now install Joomla like you are used to, by opening a browser and pointing to http://dev.test

    After the installation you'll notice that the administrator area is broken, some CSS/Javascript can not be located (Http 404). To solve this, open with your favorite text editor joomla! configuration.php and set the live site property (was in Joomla 1.5, then removed then it appear again)


     Now the administrator area should work again... but you can not install any Joomla! extensions, because open_basedir = "c:/winnmp" and do not contains the temporary directory, you can safely deactivate it for development, but NOT on ANY production server.

    ;open_basedir = "c:/winnmp"

     Last but not least, php_uname is used by Joomla, activate it in php.ini to remove some warnings





  • In order to better test the code I am giving You, I have now locally running...

    1. DEV: developing new PHP code, connected to CVS at Joomlaforge
    2. TEST to test component installation and code in a clean Joomla installation. If everything work, a binary version will be created at Joomla Forge in developer section.
    3. PROD is a copy of my production site (You are currently reading :-) )
    I have also set 2 machines with each time these 3 stages:
    1. WindowsXP - eclipse 3.1 - phpeclipse - mysql5 - php 4.1 - apache for DEV, TEST and PROD
    2. SuSE 10.0  - eclipse 3.1 - phpeclipse - mysql5 - php 4.1 - apache for DEV, TEST and PROD

    so i will be able to better test my components, You can still contact me and offer translations or beta testing....

    You want to have or see new functionnalities in one of these components?
    use my WIKI Order and priorities has to be discussed, a poll/vote can be open in a few days here as well.

    You have found bugs?

    Please, do not contact me and ask for support on my homepage, ALL Projects are now hosted at Joomlaforge and have each one their Tracker
    Project Report Bug here   click on Tracker icon   click on Tracker icon   click on Tracker icon   click on Tracker icon   click on Tracker icon   click on Tracker icon
  • In this series of post I will outline some common techniques to help Joomla extensions development.

    As you know Joomla is shipped with Mootools library which assign $ also to Ajax. Here is 2 tips that will allow you to use jQuery scripts without any modifications (most of the time you will find tips to assign jQuery to something else than $ and rewrite your scripts)

    First it is recommended to include always mootools first to avoid jQuery conflict issues

    $document = JFactory::getDocument();
    $document->addScript(JURI::root() . "media/com_cedtag/js/jquery.1.7.2.min.js");

    then to run jQuery in noConflict mode. Note that here I do not assign jQuery to any alias.


    Till here, this is what you will find on all Joomla forums, posts over the internet. The last tips is what make the difference!

    Instead of using a different alias for the jQuery object (when using noConflict), you can write your jQuery code by wrapping it all in a closure. This can be done in the document.ready function

    $script = "jQuery(function($) { $();

    });"; $document->addScriptDeclaration($script);

    This way you are not force to rewrite your scripts to use another alias (replacing $ with jquery alias for example in all your scripts). This make inclusion of jQuery really easy!

    Happy Coding!

  • joomla_logo

    I am still fighting against Joomla! 1.5 API but I've made good progress!

    in the queue, I am developing

    • Akobookplus for Joomla! 1.5,
    • Akocommentplus for Joomla! 1.5,
    • SecurityImages for Joomla! 1.5,
    • Opencomment for Joomla! 1.5,

    At the same time! Akobookplus/Akocomment is really easy to migrate, Opencomment because of Ajax is more difficult (in order to have access to Joomla API in the Ajax request). SecurityImages is working but I've break the backward compatibilities, I am now trying to solve that issue.

    I am on it, and has work 25 hours in 5 days, tonight I hope to release Akobookplus tonight

  • joomla_cms

    jocomment I did install yesterday evening the latest version of !JoomlaComment

    !JoomlaComment is one of the first extensions for Joomla,that let you comment under articles.

    The !JoomlaComment system can be installed on any joomla website within seconds! Make
    your website more interactive!

    Main Features:

    • ajax-based
    • captcha protection
    • akismet support
    • ubb code support
    • threathed/nested comments
    • multilanguage support
    • mail, website input
    • See more features here

    Joomla support templates, depending on which templates you use

    • MTdefault-emotop, these templates MTxxxx use mootols 1.11
    • JQdefaut-emotop, these templates JQxxxx use Jquery
    • ..

    You may behind the scene include another additional AJAX library in Joomla!® frontend, this lead to performance issues:

    If !JoomlaComment use JQuery 1.1.4 and not the AJAX library of Joomla!, aka Mootools 1.11. Another huge JavaScript files that make my server busier!

    Since any static files can be offloaded to another server to gain more speed. For example, any static images, JavaScript or CSS files can be moved to a different server for more speed.

    In order to be able to offload this JavaScript library to Google code, you’ll have to do the following:

    In the template you are using, for example in components/com_comment/joscomment/templates/JQdefault-emotop/index.html

    Search for

    <script type="text/javascript" src="components/com_comment/joscomment/jscripts/jquery-1.1.4.pack.js"></script>

    and replace with

    <script type="text/javascript" src=""></script> 

    Note that I use here the latest JQuery version (1.3.2) and not the default version of !joomlaComment (1.1.4), here is why

    • This version 1.1.4 is not available at jquery"> :-)
    • I did test the frontend of !JoomlaComment 4.0 with JQuery 1.3.2 and it work great
  • Came across this excellent collection of resources ( to learn object-oriented programming and related concepts for PHP developers. A lot of tutorials on OOP Fundamentals, OOP Advanced, Object Oriented Design, Design Patterns, Refactoring, Architecture, and more.
  • linux

    How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It: An August 2009 Update

    The kernel which forms the core of the Linux system is the result of one of the largest cooperative software projects ever attempted. Regular 2-3 month releases deliver stable updates to Linux users, each with significant new features, added device support, and improved performance. The rate of change in the kernel is high and increasing, with over 10,000 patches going into each recent kernel release. These releases each contain the work of over 1000 developers representing around 200 corporations. Since 2005, over 5000 individual developers from nearly 500 different companies have contributed to the kernel. The Linux kernel, thus, has become a common resource developed on a massive scale by companies which are fierce competitors in other areas. A number of changes have been noted since this paper was first published in 2008:

    • We have seen a roughly 10% increase in the number of developers contributing to each kernel release cycle.
    • The rate of change has increased significantly; the number of lines of code added to the kernel each day has nearly tripled.
    • The kernel code base has grown by over 2.7 million lines The overall picture shows a robust development community which continues to grow both in size and in productivity. source
  • There seems to be a lot of way to merge two #git repositories into one repository without losing file history. Here is another straightforward method.

    This method do not use #submodules or #subtree merges. it uses regular merge operations.

    1. Create a new empty repository New.
    2. Make an initial commit because we need one before we do a merge.
    3. Add a remote to old repository A.
    4. Merge A/master to New/master.
    5. Make a subdirectory folderA.
    6. Move all files into subdirectory folderA.
    7. Commit all of the file moves.
    8. Repeat 3-6 for another repository.
    mkdir result
    cd result
    git init
    touch README.MD
    git add .
    git commit -m "added"
    Step 3 to 6
    git remote add -f A
    git fetch --all
    git merge --allow-unrelated-histories  A/master
    mkdir folderA
    git mv -k * folderA
    git commit -m “moved A files into subdir folderA”
  •  Meta-Patterns: Design Patterns Explained
    Moisés Daniel Díaz Toledano. Email : This email address is being protected from spambots. You need JavaScript enabled to view it.

    MetaPatterns can be contemplated like a form of understanding the underlying mechanisms of patterns and the form in which they work, and even as a new patterns’ classification.
    The principal objective of patterns is capturing good practices that allow us to improve the quality of the design of systems, determining objects that support useful roles in a specific context, encapsulating complexity, and making it more flexible.
    We can observe that the structure of these solutions (patterns) repeats, using a series of basic mechanisms (even in different levels of abstraction) to produce the same effects in the system.

  • "For more than 50 years software has been a troublesome discipline. Software's problems are numerous and include cancelations, litigation, cost overruns, schedule overruns, high maintenance costs, and low levels of user satisfaction. The problems with software occur more often than not. My company's research indicates that more than half of large software projects will encounter some kind of delay, overrun, or failure to perform when deployed. But software does not have to be as troublesome as it has been. Some complex software projects do achieve their delivery schedules and cost targets, and behave properly when used. Throughout my career in software I've been interested in what distinguishes successful software projects from failures and disasters. It happens that the main factors leading to software success are easily identified when side-by-side comparisons of similar projects are performed, where one set was successful and the other set was troublesome. The successful software projects achieve excellence in software quality control, and they are able to do this because of excellence in software quality measurements. Although it might be thought that excellent software quality control is expensive, it turns out to yield a very positive return on investment. When canceled software projects and disasters are studied by means of "autopsies," they all have similar patterns: Early phases of troubled projects are handled carelessly without adequate requirements analysis or design reviews. After rushing through the early phases and seeming to be ahead of schedule, problems begin to mount during coding and testing. When testing begins in earnest, serious problems are detected so that schedules and cost targets cannot be achieved. Indeed, some software projects have so many serious problems—termed bugs or defects—that they are canceled without completion. By contrast, successful projects are more thorough at the start. The requirements are carefully analyzed and the designs are formally inspected. This takes some time and adds upfront costs, but once coding and testing begin, the value of careful quality control allows the projects to move rapidly to a successful conclusion. Stephen Kan and I both learned the importance of software quality control and good software quality metrics at IBM. Even though Stephen and I worked in different IBM labs during different decades, we have some common viewpoints. We have both been convinced by empirical evidence that without excellent software quality control, large system development is hazardous and likely to fail. We also both know that effective software quality control is built on a foundation of careful measurements using accurate metrics."

    A free metrics plugin for eclipse is also available on sourceforge "Provide metrics calculation and dependency analyzer plugin for the Eclipse platform. Measure various metrics with average and standard deviation and detect cycles in package and type dependencies and graph them."
  • More sites using Google maps:

    And If You have a good idea and want to develp our own application  using Google Maps, You may ask How it works...

    Google maps is using Javascript, XML, XSLT, and CSS to create a web application that behaves more like a desktop application. With normal web programming, the user is presented with a form, the user inputs its data, the user submits the form, and finally the entire web page reloads with new content. AJAX, as this type of programming has been coined,  does not require the reloading of the entire interface.  The Javascript is able to make calls back to the server to get the required information and update only those parts of the interface that needs to change.

    You can start by registering for a key HERE, and start reading all blogs describing hacks an tips, for example:

    • Google Maps Mania: An unofficial Google Maps blog tracking the websites, ideas and tools being influenced by Google Maps.

    And for finishing, the most beautiful hacks I've found: Google Maps Transparencies  and extended box zooming function

  • google_logospeedapache_logo

    mod_pagespeed is the latest addition to our family of products, performing on-the-fly optimization in the Apache™ 2 HTTP Server. It provides webmasters and web developers that manage their Apache 2 configuration with technology that applies Page Speed performance best practices automatically. Webmasters can get the benefits of the optimizations without having to manually going back and fixing the performance issues that Page Speed detects.

    This solution is valid if you do not want to carefully optimize your site, and it come for now at huge initial CPU costs till the cache is filled up. The load on my server has proven to be unacceptable (for me) and I was forced to switch it off. But it may work on your server depending on the page size, number of visitors. Authors are working hard and communicating a lot on the official mailing list to reduce that load and improve the code in the coming weeks

    If you trust me, you can download the library module for Apache 2.2


    Check before installing the MD5 keys of this file

    # md5sum -b
    187995e3623a222ec5b54c331ee7ffaa *

    If it matches, drop it into your Apache library folder /usr/lib64/apache2/

    Build Apache module mod_pagespeed yourself

    On my OpenSuSE system, I was forced to install first

    zypper in gcc-c++

    Then read

    you should get after a successful build

    • ./out/Release/
    • ./out/Release/install/common/pagespeed.conf

    Install the module library

    cp ./out/Release/  /usr/lib64/apache2/


    After installing mod_pagespeed, it can be customized and configured by editing the Apache configuration file


    so you can run

    # cp ./out/Release/install/common/pagespeed.conf /etc/apache2/conf.d/pagespeed.conf

    Create some directories

    # mkdir /var/mod_pagespeed/
    # mkdir /var/mod_pagespeed/cache/
    # mkdir /var/mod_pagespeed/files

    Has to be writtable by apache

    chown -R wwwrun:www /var/mod_pagespeed/

    and finally restart apache

     apache2ctl restart

    There is a lot of available settings that are all well explained in this page

    Here is my /etc/apache2/conf.d/pagespeed.conf stripped of all comments as an example:

    LoadModule pagespeed_module /usr/lib64/apache2/
        ModPagespeed on
        ModPagespeedUrlPrefix                ""
        ModPagespeedFileCachePath "/var/mod_pagespeed/cache/"
        ModPagespeedGeneratedFilePrefix "/var/mod_pagespeed/files/"
        ModPagespeedRewriteLevel CoreFilters
        ModPagespeedEnableFilters collapse_whitespace
        ModPagespeedEnableFilters extend_cache
        ModPagespeedEnableFilters combine_css
        ModPagespeedEnableFilters rewrite_css
        ModPagespeedEnableFilters rewrite_javascript
        ModPagespeedEnableFilters rewrite_images
        ModPagespeedEnableFilters remove_comments

    # This page lets you view statistics about the mod_pagespeed module. Order allow,deny # You may insert other "Allow from" lines to add hosts you want to # allow to look at generated statistics. Another possibility is # to comment out the "Order" and "Allow" options from the config # file, to allow any client that can reach your server to examine # statistics. This might be appropriate in an experimental setup or # if the Apache server is protected by a reverse proxy that will # filter URLs in some fashion. Allow from localhost SetHandler mod_pagespeed_statistics


    You may be forced to remove mod_deflate

    You can disable mod_pagespeed by adding in the url  ?mod_page_speed=0

    Some mod_pagespeed filters


  • When Eclipse meet Joomla

    Project: SolarJoomla
    The easiest way to develop component, modules, bots for Jooomla using best of the breed open source software.

    In order to speed up development of Joomla software, I am currently developing a developer package "start and ready to work". This package will be release at the beginning of next week (18.04.2006)

    Click

    Content of package

    eclipse logo
    Eclipse 3.1.2
    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.
    php eclipse plugin
    PhpEclipse 1.1.8
    The PHPeclipse project aims to create a full featured PHP IDE with features like internal PHP parser, debugger, code formatter, outline view, templates and much more.
    apache http server
    Apache 1.3.33

    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
    PHP  4.3.1
    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
    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:
    joomla logo
    Joomla 1.0.8
    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.1alpha2
    configured to access mysql dev15x database
    admin panel login: admin
    admin panel pwd: admin
    mysql logo
    MySQL 4.1.19 
    root login: root
    root password: empty
    Eclipse Launcher Version 2.0.2A 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.
    Sun JDK 1.5
    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.

    Some figures

    • Distribution will be available as zip or setup.exe
    • You will have to accept and Read all licences in directory c:\SolarJoomla\licences\
    • start one program EclipseLauncher.exe to enjoy a running Joomla 1.X environment.
  • PrinciplesBehindTheAgileManifesto

    We follow these principles:

    Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

    Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

    Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

    Business people and developers must work together daily throughout the project.

    Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

    The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

    Working software is the primary measure of progress.

    Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

    Continuous attention to technical excellence and good design enhances agility.

    Simplicity--the art of maximizing the amount of work not done--is essential.

    The best architectures, requirements, and designs emerge from self-organizing teams.

    At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.



  • AgileRequirementEngineeringPoster


    You can order a print version at

    Find more at

  • The file web.xml inside the WEB-INF folder is the Web Application Deployment Descriptor for your application. This is an XML file describing the servlets and other components that make up your application. The file below is what I use at work. It contains better settings than the default one, plus all descriptions of parameters.

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns=""
    Comma separated list of URIs of (additional) faces             config files. (e.g. /WEB-INF/my-config.xml) See JSF             1.0 PRD2,
    10.3.2 Attention: You do not need to put
    /WEB-INF/faces-config.xml in here.
    Follow Divide and Conquer rule:
    Do not put all your managed beans, navigations rules in one big file. Consider one faces-config per functions or html page.
    <description>State saving method: "client" or "server"          (= default) See JSF Specification 2.5.3
    Server is recommended.
    Ive tried one day client, but HTML pages were 10Mb big!
    Only applicable if state saving method is "server"         (= default) and if
    org.apache.myfaces.SERIALIZE_STATE_IN_SESSION is           true (=default) If true (default) the serialized              state will be compressed before it is written to the session. If false the state will not be compressed.
    You should always balanced cpu/memory usage.
    (Compressing state cost CPU but spare memory...obvious)

    Only applicable if state saving method is "server"             (= default). If true (default) the state will be               serialized to a byte stream before it is written to             the session. If false the state will not be                     serialized to a byte stream.
    Compressing data save memory bytes on server at the cost of more computational power.
    Number of back button. Default is 20. far too much. reducing this value decrease memory size.
    This parameter tells MyFaces if javascript code               should be allowed in the rendered HTML output. If             javascript is allowed, command_link anchors will have javascript code that submits the corresponding form. If javascript is not allowed, the state saving info and nested parameters will beadded as url parameters. Default: "true"
    Nothing special here. Most of the time, webpage are full of javascript.
    <description>The buffer size to set on the response         when the  ResponseWriter is generated.
    By default the value is -1, which will not assign             a buffer size on the response.
    Try to set the buffer size to the most common page size.
    In production, no need to let comment in rendered code
    If true, rendered HTML code will be formatted, so             that it is "human readable". i.e. additional line             separators and whitespace will be written, that do             not influence the HTML code. Default: "true"
    Cpu waste in production.
    Beautify your code in eclipse.
    Consider instead using Firefox source chart plugin which always beautify and color the source source
    If true, a javascript function will be rendered               that is able to restore the former vertical scroll             on every request.
    Convenient feature if you have pages with long                 lists and you do not want the browser page to                 always jump to the top if you trigger a link or               button action that stays on the same
    page. Default: "false"
    Validate managed beans, navigation rules and                   ensure that forms are not nested.
    Can be turned off in production, if you have a good testing team and many deployment stage This kind of errors should not go un noticed.
    List here all 3rd party and your own tag library
    <description>Special Debug Output for Development
    			Using a 
    			facelets.REFRESH_PERIOD >= 1 
    			means that templates 
    			will be reloaded after 
    			a given period if the
    			file has been modified 
    			on the file-system.





    Obvious settings

    Some security settings. Consider settings these values accordingly to your needs.
    Standard settings not related to JSF. Never reveal any useful informations in error pages!

  • Books:



    Structural Analysis for Java"SA4J is a technology that analyzes structural dependencies of Java applications in order to measure their stability. It detects structural "anti-patterns" (suspicious design elements) and provides dependency web browsing for detailed exploration of anti-patterns in the dependency web. SA4J also enables "what if" analysis in order to assess the impact of change on the functionality of the application; and it offers guidelines for package re-factoring."


    Metrics sourceforge
    eclipse plugin