<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
<channel rdf:about="http://www.codegravity.com/rss/freelance/">
<title>Freelance</title>
<link>http://www.codegravity.com/rss/freelance/</link>
<description>Freelance programmers at codegravity.com</description>
<dc:language>en-us</dc:language>
<dc:rights></dc:rights>
<dc:date>2010-09-09T21:00:00+01:00</dc:date>
<dc:creator>me</dc:creator>
<dc:subject>Freelance</dc:subject>
<items>
<rdf:Seq><rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=855"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=854"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=853"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=852"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=851"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=846"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=845"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=844"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=843"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=842"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=841"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=840"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=839"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=837"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=836"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=835"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=831"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=830"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=829"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=826"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=824"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=822"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=820"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=819"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=816"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=814"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=813"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=811"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=810"/>
<rdf:li rdf:resource="http://www.codegravity.com/index.php?option=com_content&amp;id=809"/>
</rdf:Seq>
</items>
<image rdf:resource="http://www.codegravity.com/favicon.ico"/>
</channel>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=855">
<title>JQuery in place editor plugin tutorial - Introduction
jQuery is an ope ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=855</link>
<description>Introduction
jQuery is an open source cross browser javascript library . jQuery is a very popular javascript library and has a lot of plug-ins for a wide variety of task . JQuery has got plug-ins from simple task like form validation to a lot of complex behavior. In this article I am going to discuss some of the very useful plug-ins of jQuery to do in place editing.
&amp;Acirc;&amp;nbsp;
Jeditable
&amp;Acirc;&amp;nbsp;
Jeditable is a very handy and small jQuery in place editor plug in . This plug in helps you make a lot of HTML elements directly in place editable with just a few lines of code
This plug in can be downloaded from
&amp;Acirc;&amp;nbsp;
http://www.appelsiini.net/projects/jeditable
&amp;Acirc;&amp;nbsp;
You can also get more information about it on
&amp;Acirc;&amp;nbsp;
http://plugins.jquery.com/project/jeditable
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
Once you have downloaded jQuery and jeditable using this plug in is very simple.
I will start with a very simple e.g:-
&amp;Acirc;&amp;nbsp;




Jeditable Demo








click to Update Text Here



This example creates a div element and clicking on it will make it editable. Once the user clicks on it and makes changes and clicks the data is posted to the script 'updatedata.php' (below the code for updatedata.php is shown).
&amp;Acirc;&amp;nbsp;
In this example first I have created a &amp;amp;lt;dev&amp;amp;gt; element using
&amp;amp;lt;div class=&amp;quot;div_txt&amp;quot; id=&amp;quot;div_text&amp;quot;&amp;amp;gt;click to Update Text Here&amp;amp;lt;/div&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
To make this element in place editable you just have to add
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
$(document).ready(function() {
$('.div_txt').editable('updatedata.php');
});
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;

&amp;Acirc;&amp;nbsp;
The only mandatory parameter is the complete URL where the data will be posted when the user changes the content.( in our case its 'updatedata.php' or it could be http://abc.com/updatedata.php ) . My updatedata.php just echoes the value back so that it is displayed to the user back
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;?php
//Add Code here to $_POST['id'] and $_POST['value'] and update
//in a database or file
echo $_POST['value']; // Return the changed value so that is displayed to the user
?&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
Adding buttons and tool tips
&amp;Acirc;&amp;nbsp;
We can even add Ok and cancel buttons when the user tries to edit the content in place. So when the user clicks Ok the data is posted to updatedata.php . We can also add a tool tip which can give instructions to the user like &amp;acirc;Click to edit&amp;acirc;
&amp;Acirc;&amp;nbsp;
So if I add a new div element to my page as follows
&amp;amp;lt;div class=&amp;quot;div_txt_area&amp;quot; id=&amp;quot;div_txt_area&amp;quot;&amp;amp;gt;Click on text here&amp;amp;lt;/div&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
Then the following code
&amp;Acirc;&amp;nbsp;
$('.div_txt_area').editable('updatedata.php', {
type      : 'textarea',
cancel    : 'Cancel',
submit    : 'OK',
tooltip   : 'Click to edit...'
});
&amp;Acirc;&amp;nbsp;
will add two buttons when the user is editing the text as Ok and Cancel .
Also when the user hovers the mouse over the div the tool tip will be shown as 'Click to edit...'
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;

&amp;Acirc;&amp;nbsp;
Other Features
&amp;Acirc;&amp;nbsp;
This plug-in has a lot of other features like


To use selects in , in-place 	edition


To specify a load url from which 	data is loaded in a Text area


To post data to a function instead 	of an URL


&amp;Acirc;&amp;nbsp;
You can read a complete list of features with code examples at http://www.appelsiini.net/projects/jeditable
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
Another In-Place Editor
&amp;Acirc;&amp;nbsp;
An another good jQuery in place editor plug in is the &amp;acirc;Another In-Place Editor &amp;acirc;
&amp;Acirc;&amp;nbsp;
This is also a very good plug-in which makes HTML elements in place editable .
This plug in can be downloaded from http://code.google.com/p/jquery-in-place-editor/
&amp;Acirc;&amp;nbsp;
Once you have downloaded this plug in and jQuery using this plug-in is also very simple .
An example to demo its usage is as follows
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;amp;gt;
&amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; lang=&amp;quot;en&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;amp;gt;
&amp;amp;lt;head&amp;amp;gt;
&amp;amp;lt;title&amp;amp;gt;Another In-Place Editor&amp;amp;lt;/title&amp;amp;gt;
&amp;amp;lt;script src=&amp;quot;jquery-1.4.2.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;
&amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;jquery.editinplace.js&amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
$(document).ready(function() {
$(&amp;quot;#div_text&amp;quot;).editInPlace({
url: &amp;quot;updatedata2.php&amp;quot;
});
&amp;Acirc;&amp;nbsp;
});
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;/script&amp;amp;gt;
&amp;amp;lt;/head&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;body&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;amp;lt;p id=&amp;quot;div_text&amp;quot;&amp;amp;gt;
Click to Update Text Here
&amp;amp;lt;/p&amp;amp;gt;
&amp;Acirc;&amp;nbsp;

&amp;amp;lt;/body&amp;amp;gt;
&amp;amp;lt;/html&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
Like the above example for Jeditable I have created one div element using
&amp;amp;lt;p id=&amp;quot;div_text&amp;quot;&amp;amp;gt;     Click to Update Text Here        &amp;amp;lt;/p&amp;amp;gt;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
To make this element in place editable with &amp;acirc;Another In-Place Editor &amp;acirc;
You have to just add
&amp;Acirc;&amp;nbsp;
$(&amp;quot;#div_text&amp;quot;).editInPlace({
url: &amp;quot;updatedata2.php&amp;quot;
});
&amp;Acirc;&amp;nbsp;

&amp;Acirc;&amp;nbsp;
This will make the element div_text in place editable and when the value is changed by the user and presses enter the data is posted to url parameter specified. (In our example it is updatedata2.php )
&amp;Acirc;&amp;nbsp;
The parameters which are posted to the URL are
&amp;Acirc;&amp;nbsp;


original_html; 	The original value in the element prior to the post


update_value; The value which the 	user changed


element_id; The ID of the 	current element



&amp;amp;lt;?php
//Add Code here to add or update  $_POST['update_value']
//in a database or file
echo $_POST['update_value']; // Return the changed value so that is displayed to the user
?&amp;amp;gt;
The updatedata2.php just echoes the value back so that it is displayed to the user back
&amp;Acirc;&amp;nbsp;
Adding a select for in place edit 
&amp;Acirc;&amp;nbsp;
We can even add a select in the in place edit so that the user can choose from options while editing. Once the user will select the value the data will be posted to url specified.
&amp;Acirc;&amp;nbsp;
To do this I will have to create a div element
&amp;Acirc;&amp;nbsp;

&amp;amp;lt;p id=&amp;quot;div_select&amp;quot;&amp;amp;gt;Click Here to Choose country&amp;amp;lt;/p&amp;amp;gt;
The following code will add a select to the in place edit
$(&amp;quot;#div_select&amp;quot;).editInPlace({
url: &amp;quot;updatedata2.php&amp;quot;,
field_type: &amp;quot;select&amp;quot;,
select_options: &amp;quot;USA, UK , Australia&amp;quot;
});
&amp;Acirc;&amp;nbsp;
To add the select you will have to add the parameter field_type  as&amp;quot;select&amp;quot; and specify the options in  select_options parameter.
Other Features
Some of the other features of this plug in are


Adding a 	saving image or saving text while the save happens on the server.


This plugin allows to submit to a 	callback function rather than to the server URL


This plug in allows validation 	of blank field



For a list of more features you can visit http://code.google.com/p/jquery-in-place-editor/
Some other good jQuery in place editor plug-ins 
Following are some other jQuery plug-in which can be used for in place editor functionality


contentEditable 	- http://valums.com/edit-in-place/


jQuery Edit In Place - 	http://josephscott.org/code/javascript/jquery-edit-in-place/


Editable - 	http://arashkarimzadeh.com/index.php/jquery/7-editable-jquery-plugin.html


Conclusion
jQuery and its plug-ins have really changed the way UI is developed for websites now. The plug in described in this article make is very easy to make a UI in websites where there is need In place editable elements. Adding in place elements just take a few lines of code with the use of these plug-ins.

&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=855</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=854">
<title>ORM frameworks in PHP - Introduction
&amp;Acirc;&amp;nbsp;
ORM (Object  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=854</link>
<description>Introduction
&amp;Acirc;&amp;nbsp;
ORM (Object Relational mapping) is a technique in which Objects oriented languages i.e Objects are mapped directly to relational databases. This is a generic concept which can be applied to any object oriented language like C++, Java, PHP etc and any relational database like Oracle, Mysql etc.
&amp;Acirc;&amp;nbsp;
Object Relational Mapping Frameworks
&amp;Acirc;&amp;nbsp;
Generally if you are working in a big web application you will have the data stored in some relational database. For e.g.  If you are using PHP to build web applications there is a good chance that you would be using MySql as your relational database. As the application gets large dealing in with SQL in your PHP code gets very messy.
&amp;Acirc;&amp;nbsp;
ORM frameworks are generally written in an object oriented programming language like PHP and map (or even generate) objects which directly map to relational databases.
&amp;Acirc;&amp;nbsp;
So if you have an ORM object of customer and want to save it in your database the code required to do that would be some what like the following if you use an ORM frame work
&amp;Acirc;&amp;nbsp;
$objCustomer = new Customer();
$objCustomer-&amp;amp;gt;name=&amp;acirc;John&amp;acirc;
$objCustomer-&amp;amp;gt;emaail=&amp;acirc;john124@example.com&amp;acirc;;
$objCustomer-&amp;amp;gt;save();
&amp;Acirc;&amp;nbsp;
Some of the good Object Relational Mapping Frameworks in PHP
&amp;Acirc;&amp;nbsp;
CakePHP
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
CakePHP is a rapid application development framework in PHP. You can download it from http://cakephp.org/ .
&amp;Acirc;&amp;nbsp;
CakePHP has a support for developing application with ORM and MVC architecture. The licensing of CakePHP is flexible as it is distributed under MIT license. CakePHP is a complete Object oriented framework.
&amp;Acirc;&amp;nbsp;
As CakePHP is a complete MVC architecture supporting framework it is an excellent framework to use specifically if a new application is to be started. CakePHP also has a good mechanism to define relationships between different objects and tables.
&amp;Acirc;&amp;nbsp;
CakePHP has a feature called as CRUD scaffolding which with one line helps you create views for performing CRUD (Create Read Update Delete) operations once your modeler is defined.
&amp;Acirc;&amp;nbsp;
Doctrine 
Doctrine is another good ORM framework in PHP. It can be downloaded from http://www.doctrine-project.org/ .
Doctrine allows one to write database query in Doctrine Query Language (DQL) which is a dialect of SQL which is inspired by Hibernates HQL. This provided one with the flexibility to easily change backend database without much rework. Doctrine also has support for hooks. Hooks can be used to validate data which is stored in the database or which is retrieved from the database. Doctrine also has other features like a caching framework and also the ability to combine multiple PHP files in one which reduces the performance which is due to inclusion of many PHP file at runtime. 
Propel
Propel is an ORM toolkit written in PHP. It can be downloaded from 
http://www.propelorm.org/
Propel is an open source framework which is under which is released under the MIT license. Propel has a component for source code generation which generated PHP classes on basis of datamodel definition language which is in XML. Propel also has a component which manages connections and transactions with RDBMS you are using.
Propel has a features of easily describing relationship between different objects .It also has features to define database transaction in your code which will help you ensure database integrity and also improves the performance of database queries.
CoughPHP
CoughPHP is only an ORM framework in PHP. It can be downloaded from http://coughphp.com/ 
CoughPHP is not an MVC framework and hence is very light weight compared to other PHP frame works which provide MVC functionalities as well .As CoughPHP is not an MVC framework it does not affect the ways your views are built .Because of this it can be integrated into existing projects also easily . It is an open source framework and is licensed under FreeBSD license.
CoughPHP generates all the PHP classes for the ORM mapping to the database. CoughPHP also provided hook like mechanism to validate or invalidate data before saving them in database. It also has support for specifying database transactions.
Symphony
Symphony is a MVC architecture web application framework written in PHP. It also has support for ORM .It can be downloaded at http://www.symfony-project.org/ 
Symphony is an open source framework which is licensed under MIT license. Symphony uses Propel or Doctrine as its Object Relational mapping layer. So if you are using Symphony you can use all the features which belong to Propel or Doctrine. As Symphony is a complete MVC framework it helps you create views controllers etc also. Symphony makes heavy use of other open source frameworks like Zend , Propel , Doctrine. So the features of these frameworks can be used when using Symphony. JavaScript frameworks like jQuery and prototype can be easily integrated as plug-ins in Symphony.
Advantages of using a PHP ORM framework.
Most PHP ORM frameworks generate code which is required for CRUD ( Create Read Update Delete ) operation on the database automatically . This helps in rapid development of the application as one requires to deal with only high level things of the application. The code for basic database functionalities is directly taken care by the PHP ORM framework
In relational database you have a type like int, text, blog etc associated to each field in the database. Some times we have to convert the type on the fly from get data or storing data in the database from PHP code. This all will be taken care by the PHP ORM framework which is used in the project.
As the PHP ORM frameworks are used by many people they are less likely to have security problems than hand written code specifically for your project. This protects your application from attacks like SQL injections etc.
By using ORM frameworks there is no mixing of SQL code with business layer code of your application. This makes the code much easier to maintain.
If during the lifecycle of the application the backend database needs to be changed then if a PHP ORM framework is will become comparatively much easier to perform a transition then if one was not using a ORM framework.
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=854</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=853">
<title>Interactive HTML5 as flash banner replacement -    
 
 
Introduction 
 
H ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=853</link>
<description>   
 
 
Introduction 
 
HTML 5 is the new version of HTML.Like previous version of HTML this specifies the structuring and presenting content on the World Wide Web. But what we will roughly refer to as HTML 5 in this articles is actually the whole web technology stack (HTML 5 + CSS + JavaScript) and not only of the markup language.
 
So when we talk of HTML 5 we have a programming language JavaScript ( like flash ) a set of api and JavaScript frameworks and the new multi media features of HTML 5 like drawing graphics ( using the &amp;amp;lt;canvas&amp;amp;gt; ) , play audio( using &amp;amp;lt;audio&amp;amp;gt;) and video ( using &amp;amp;lt;video&amp;amp;gt; )
 
Features of HTML5 for supporting Media
 
HTML5 has added new features to HTML . To have a complete overview of HTML 5 and its features please visit http://dev.w3.org/html5/spec/Overview.html 
 
But the tags for media support which are very important are 
 

&amp;amp;lt;video&amp;amp;gt;      tag 

 
The video tag defines a video or other video stream.
 
&amp;amp;lt;video src=&amp;quot;myVideo.ogg&amp;quot; controls=&amp;quot;controls&amp;quot;&amp;amp;gt; Video Tag Not Supported &amp;amp;lt;/video&amp;amp;gt;
 

&amp;amp;lt;audio&amp;amp;gt;      tag 

 
The audio tag defines sound, music or other audio streams
 
&amp;amp;lt;audio src=&amp;quot;myMusic.ogg&amp;quot; controls=&amp;quot;controls&amp;quot;&amp;amp;gt; audio Tag Not Supported 
&amp;amp;lt;/audio&amp;amp;gt;
 

&amp;amp;lt;canvas&amp;amp;gt; tag

 
The canvas tag is used to display graphics. Canvas is just a container. One can use JavaScript to draw in the container.
 
&amp;amp;lt;canvas id=&amp;quot;drawCanvas&amp;quot;&amp;amp;gt; Canvas Tag Not Supported &amp;amp;lt;/canvas&amp;amp;gt;
 
&amp;amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;amp;gt;
 
var drawingcanvas=document.getElementById('drawCanvas');
var drawingcontext= drawingcanvas.getContext('2d');
drawingcontext.fillStyle='#FFFFF';
drawingcontext.fillRect(0,0,70,70);
 
&amp;amp;lt;/script&amp;amp;gt;
 
Web Development trend towards open technology
 
Web development is certainly moving towards open technologies and non proprietary standards like HTML 5. Moving towards open technologies becomes necessary for the developers specifically at client side technologies as they do not have control over it and are depended on what the client is using ( e.g. the client might be using IE on windows , or might be using IPhone to access the website ) . In such cases open standards and software are a better bet than a proprietary technology like Flash. 
 
It is seen that JavaScript frameworks like Jquery etc are continuously replacing flash at least in things such as animated menus and basic web animation. So basically web developers are now using Flash at least for lesser things than they used to use it a couple of years earlier.
 
Software giants like Microsoft (which have there own proprietary Silverlight ) are also embracing open software like Jquery and are also going to make it a part of visual studio.
 
So with the in a war of flash (a proprietary technology) competing with HTML5 (an open standard), HTML5 (the complete stack) has a much better chance of winning till the features both provide are similar.
 
Also HTML 5 is render directly by the browser (flash is rendered through the flash plug-in), in case there are any bug in it they can be directly fixed by the browsers. The browsers don&amp;acirc;t have to wait for adobe to fix the bug in the flash plug-in.
 
YouTube launches support for HTML5
 
 

One      of the biggest site using Flash would be youtube . You tube launched      support for HTLM5. The support is limited but this is a huge step towards      HTML5.

 
 

 
Screen shot of youtube without a adobe flash plug-in
 
No flash on iPhones, iPods and iPads
 
There is no flash support on iPhones, iPods and iPads. Apple has rather given support for HTML5 on iPhones, iPods and iPads . 
 
Steve jobs have shared his thoughts on flash and the reason behind not using as flash being a propriety technology and only adobe controlling it. So apple wanted to use open standards in their products ( i.e. on iPhones, iPods and iPads) 
 
You can read a detail reasoning given by Steve Jobs for this decision on -
 
http://www.apple.com/hotnews/thoughts-on-flash/
 
 
Flash offers things that open web don&amp;acirc;t offer (may be also not in coming years)
 
The HTML 5 (stack) is good for basic animations. But capabilities of Flash are still unmatched by far by any combination of open standards for higher end animation and interactive capabilities.
 
Javascript also is very processor intensive currently. So here also Flash presents a better solution for the sites which have a lot of animations and high interactivity like gaming sites etc.
 
Flash has a more than just video, flex currently provides a very rich programming model and create very rich interactive web applications.
 
Also the Action script engine is very robust and efficient which contributes to the popularity of Flash.
 
Developers can only move if the users move
 
One another major hurdle in HTML 5 replacing flash is the developers can use these new standards only if the users of the web sites move to software which supports these new standards. Still a lot of users use IE6 to access websites which is quite an old technology.
 
Though backed up by big software players HTML 5 video is also not mature enough still.
 
 
Tools to create rich content for authors
 
There are a lot of tools associated with flash to create rich content in flash. Some of these tools are specifically built and marketed by adobe itself. Such tools support is currently lacking for HTML5. This might not be a problem for developers. But authors who are not developers it would be a big problem if such tools are not present or easily available.
 
Conclusion
 
With all the factors mentioned above HTML5 ( stack ) at least in the recent years will replace flash for basic animation , but flash would still be a dominant technology for high end animation and interactivity applications on net . Total replacement of flash by 
HTML 5 in recent years looks highly unlikely unless some combination of open technologies can provide all sets of features provided by flash.
 
But the use of flash will surely diminish as HTML 5 can do more and more things (like use of flash to do basic animation is greatly reduced) and if Adobe has to keep flash in the race against HTML5 and other open technologies it will have to continuously improve Flash and provide better features and capabilities the open standard can provide. 
&amp;Acirc;&amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=853</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=852">
<title>Java Data&amp;Acirc;&amp;nbsp;Repository&amp;Acirc;&amp;nbsp;performance - Scenario: It&amp;acirc;s a common scen ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=852</link>
<description>Scenario: It&amp;acirc;s a common scenario that a web site rarely updates the background database but frequently access the database to fetch requested data.  Consider the web site that provides the results of Secondary School Certificate exam of a country, based the population of that country the total number of students who attended the exam may be 2 million, 3 million or more. In India it may be more than 10 million. When the result is just published just think about the number of hits per second on that web site.  A student just provides a Student Registration number and gets the result from the site. So should that web application search the database every time there is a request for result in that site? To me it&amp;acirc;s a &amp;acirc;NO&amp;acirc;.   In the age of WiMax and 3G it is expected the website to appear in a twinkling of an eye. So if you can provide sufficient RAM to that web server why don&amp;acirc;t you use data repository. &amp;acirc;Data Repository&amp;acirc;? Yes. Data Repository:  It&amp;acirc;s an implementation of virtual storage of a portion of a database or entire database.  The concept is: Database (MySQL, SQL Server etc),  Load the data in to RAM and refresh periodically  &amp;Atilde; Response of the data query. For each subsequent database query, after the initial loading, the response is generated from the data loaded into RAM. So, there is no need to knock the database for every query.  This is a quite faster approach. But remember if the database rarely has insert, update and delete operation this approach is very much efficient.  If the there is a change in the database the change will be reflected in the database only after the data repository is refreshed.
Implementation: So in a web server how would you implement that? Here is an example to implement Data Repository using Java and STRUTS framework. For simplicity I have omitted some minor parts such as import statement, portion to fetch data from Database in the reload() method. I have also omitted the details of the DataDTO class.
&amp;Acirc;&amp;nbsp;
Implementing the DataRepository:

/***********************&amp;Acirc;&amp;nbsp;Start&amp;Acirc;&amp;nbsp;of&amp;Acirc;&amp;nbsp;DataRepository.java************************/&amp;Acirc;&amp;nbsp;
public&amp;Acirc;&amp;nbsp;class&amp;Acirc;&amp;nbsp;DataRepository&amp;Acirc;&amp;nbsp;
{&amp;Acirc;&amp;nbsp;
	//&amp;Acirc;&amp;nbsp;60&amp;Acirc;&amp;nbsp;Seconds,&amp;Acirc;&amp;nbsp;you&amp;Acirc;&amp;nbsp;can&amp;Acirc;&amp;nbsp;change&amp;Acirc;&amp;nbsp;it&amp;Acirc;&amp;nbsp;s&amp;Acirc;&amp;nbsp;u&amp;Acirc;&amp;nbsp;like&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;public&amp;Acirc;&amp;nbsp;static&amp;Acirc;&amp;nbsp;final&amp;Acirc;&amp;nbsp;long&amp;Acirc;&amp;nbsp;REFRESH_INTERVAL&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;60&amp;Acirc;&amp;nbsp;*&amp;Acirc;&amp;nbsp;1000;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;static&amp;Acirc;&amp;nbsp;DataRepository&amp;Acirc;&amp;nbsp;repository&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;null;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;private&amp;Acirc;&amp;nbsp;long&amp;Acirc;&amp;nbsp;lastRelodingTime;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;//Its&amp;Acirc;&amp;nbsp;a&amp;Acirc;&amp;nbsp;map&amp;Acirc;&amp;nbsp;to&amp;Acirc;&amp;nbsp;get&amp;Acirc;&amp;nbsp;Result&amp;Acirc;&amp;nbsp;using&amp;Acirc;&amp;nbsp;Registration&amp;Acirc;&amp;nbsp;number&amp;Acirc;&amp;nbsp;as&amp;Acirc;&amp;nbsp;KEY&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;HashMap&amp;Acirc;&amp;nbsp;regMap;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;private&amp;Acirc;&amp;nbsp;DataRepository()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;forceReload();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;public&amp;Acirc;&amp;nbsp;static&amp;Acirc;&amp;nbsp;DataRepository&amp;Acirc;&amp;nbsp;getInstance()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;if&amp;Acirc;&amp;nbsp;(repository&amp;Acirc;&amp;nbsp;==&amp;Acirc;&amp;nbsp;null)&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;createDataRepository();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;return&amp;Acirc;&amp;nbsp;repository;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;private&amp;Acirc;&amp;nbsp;synchronized&amp;Acirc;&amp;nbsp;static&amp;Acirc;&amp;nbsp;void&amp;Acirc;&amp;nbsp;createDataRepository()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;if&amp;Acirc;&amp;nbsp;(repository&amp;Acirc;&amp;nbsp;==&amp;Acirc;&amp;nbsp;null)&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;repository&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;new&amp;Acirc;&amp;nbsp;DataRepository();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;private&amp;Acirc;&amp;nbsp;void&amp;Acirc;&amp;nbsp;reload()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;//&amp;Acirc;&amp;nbsp;DataDTO&amp;Acirc;&amp;nbsp;is&amp;Acirc;&amp;nbsp;the&amp;Acirc;&amp;nbsp;clas&amp;Acirc;&amp;nbsp;to&amp;Acirc;&amp;nbsp;hold&amp;Acirc;&amp;nbsp;Registration&amp;Acirc;&amp;nbsp;Number,&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;//&amp;Acirc;&amp;nbsp;Name&amp;Acirc;&amp;nbsp;and&amp;Acirc;&amp;nbsp;CGPA&amp;Acirc;&amp;nbsp;of&amp;Acirc;&amp;nbsp;any&amp;Acirc;&amp;nbsp;student&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;//&amp;Acirc;&amp;nbsp;For&amp;Acirc;&amp;nbsp;simplicity&amp;Acirc;&amp;nbsp;here&amp;Acirc;&amp;nbsp;I&amp;Acirc;&amp;nbsp;havent&amp;Acirc;&amp;nbsp;added&amp;Acirc;&amp;nbsp;it.&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp; &amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;ResultSet&amp;Acirc;&amp;nbsp;rs&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;null;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp; &amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;rs&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;ResultSet&amp;Acirc;&amp;nbsp;after&amp;Acirc;&amp;nbsp;database&amp;Acirc;&amp;nbsp;query&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; while(rs.next())&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; {&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; // DataDTO&amp;Acirc;&amp;nbsp;provides&amp;Acirc;&amp;nbsp;StudentName,&amp;Acirc;&amp;nbsp;Student&amp;Acirc;&amp;nbsp;Registration&amp;Acirc;&amp;nbsp;Number&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; // and&amp;Acirc;&amp;nbsp;student&amp;Acirc;&amp;nbsp;CGPA.&amp;Acirc;&amp;nbsp;You&amp;Acirc;&amp;nbsp;can&amp;Acirc;&amp;nbsp;add&amp;Acirc;&amp;nbsp;additional&amp;Acirc;&amp;nbsp;member&amp;Acirc;&amp;nbsp;variable&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; // or&amp;Acirc;&amp;nbsp;method&amp;Acirc;&amp;nbsp;for&amp;Acirc;&amp;nbsp;more&amp;Acirc;&amp;nbsp;details*/&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; DataDTO&amp;Acirc;&amp;nbsp;dto&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;new&amp;Acirc;&amp;nbsp;DataDTO();&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; dto.setName(rs.getString(&amp;quot;name&amp;quot;));&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; dto.setCGPA(rs.getFloat(&amp;quot;cgpa&amp;quot;));&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; regMap.put(dto,&amp;Acirc;&amp;nbsp;new&amp;Acirc;&amp;nbsp;Long(rs.getLong(&amp;quot;registration&amp;quot;)));&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp; }&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;public&amp;Acirc;&amp;nbsp;synchronized&amp;Acirc;&amp;nbsp;DataDTO&amp;Acirc;&amp;nbsp;getResult(long&amp;Acirc;&amp;nbsp;registrationNumber)&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;checkForReload();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;return&amp;Acirc;&amp;nbsp;(DataDTO)this.regMap.get(new&amp;Acirc;&amp;nbsp;Long(registrationNumber));&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;private&amp;Acirc;&amp;nbsp;void&amp;Acirc;&amp;nbsp;checkForReload()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;long&amp;Acirc;&amp;nbsp;now&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;System.currentTimeMillis();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;if&amp;Acirc;&amp;nbsp;(now&amp;Acirc;&amp;nbsp;-&amp;Acirc;&amp;nbsp;lastRelodingTime&amp;Acirc;&amp;nbsp;&amp;gt;&amp;Acirc;&amp;nbsp;REFRESH_INTERVAL)&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;lastRelodingTime&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;now;&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;reload();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;public&amp;Acirc;&amp;nbsp;synchronized&amp;Acirc;&amp;nbsp;void&amp;Acirc;&amp;nbsp;forceReload()&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;{&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;lastRelodingTime&amp;Acirc;&amp;nbsp;=&amp;Acirc;&amp;nbsp;System.currentTimeMillis();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;reload();&amp;Acirc;&amp;nbsp;
&amp;Acirc;&amp;nbsp;&amp;Acirc;&amp;nbsp;}&amp;Acirc;&amp;nbsp;
}/***********************&amp;Acirc;&amp;nbsp;End&amp;Acirc;&amp;nbsp;of&amp;Acirc;&amp;nbsp;DataRepository.java************************/&amp;Acirc;&amp;nbsp;

Look at the implementation, you can&amp;acirc;t directly create object of the DataRepository Class. The DataRepository class is an implementation of a singleton.  So, there will be only one instance of the DataRepository Class. You should get the instance of the Class this way: DataRepository instance = DataRepository.getInstance();
The logic here is, you create a single instance of the class. Load the data from database to Java data structure inside the reload() method. The data loaded from the database is refreshed when a new request is made and the refresh time interval expires. Now the object of the DataRepository Class is loaded into the memory along with the data loaded from Database.  Suppose, a student with registration number  = 101 is looking for his result.  You can provide the result without searching it again.  DataDTO studentInfo ;  long regNumber = 101;  studentInfo=(DataDTO) DataRepository.getInstance().getResult(regNumber);  String studentName = studentInfo.getName();  float studentCGPA = studentInfo.getCGPA();     If you are using STRUTS framework you can have Form Class that extends ActionForm. Say, you Form class name is DataForm. DataForm form = new DataForm(); form.setName(studentName) form.setCGPA(studentCGPA) Finally: Forward this DataForm to your Action class. You can use this architecture in any desktop, web or other server type application based on your requirements.   </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=852</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=851">
<title>Pagerank prediction tool - I finally found some working p ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=851</link>
<description>I finally found some working pagerank prediction tool.
I've been using http://www.iwebtool.com/pagerank_prediction , but it is completely broken. It gives you result: &amp;quot;Unable to retrieve prediction at this time&amp;quot;.
This website: http://www.seomastering.com/pagerank-prediction.php uses it's own algorithm to estimate your future pagerank based on the quality of backlinks.
It's hard to say how accurate it is, but maybe it at least does something :) This website has got several other useful SEO tools.</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=851</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=846">
<title>Joomla services and commercial support - Joomla Services and Commercial ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=846</link>
<description>Joomla Services and Commercial support</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=846</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=845">
<title>Advertise joomla sell web hosting or joomla services - You can advertise on this webs ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=845</link>
<description>You can advertise on this website. This website is visited by many software developers, webmasters and joomla cms users (about 2000 unique users per day).  				  It has a great potential in selling your services. Get the text advertisement and see new customers immediately.  				  You can sell joomla web hosting, joomla consulting services, customizations, templates and so on. There is a 7-day trial period available. (29.05.2009) 2</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=845</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=844">
<title>JoomlaWatch 1.2.11 now available! - &amp;gt;&amp;gt; *NEW Click here to see the  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=844</link>
<description>&amp;gt;&amp;gt; *NEW Click here to see the flash demo  *NEW Click here to watch the flash demo </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=844</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=843">
<title>Doucovanie Nemcina - 
Doucovanie NJ - Nem&amp;Auml;ina / N ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=843</link>
<description>
Doucovanie NJ - Nem&amp;Auml;ina / Nemeck&amp;Atilde;&amp;frac12; Jazyk Bratislava
Som &amp;Aring;&amp;iexcl;tudentkou bilingu&amp;Atilde;&amp;iexcl;lneho nemeck&amp;Atilde;&amp;copy;ho gymn&amp;Atilde;&amp;iexcl;zia v Bratislave a z&amp;Atilde;&amp;shy;skala som jazykov&amp;Atilde;&amp;frac12; diplom Das Deutsche Sprachdiplom &amp;Atilde;&amp;ordm;rovne C1 (&amp;Atilde;&amp;ordm;rove&amp;Aring; materinsk&amp;Atilde;&amp;copy;ho jazyka).
Pon&amp;Atilde;&amp;ordm;kam dou&amp;Auml;ovanie nem&amp;Auml;iny pre &amp;Aring;&amp;frac34;iakov z&amp;Atilde;&amp;iexcl;kladn&amp;Atilde;&amp;frac12;ch &amp;Aring;&amp;iexcl;k&amp;Atilde;&amp;acute;l, resp. za&amp;Auml;iato&amp;Auml;n&amp;Atilde;&amp;shy;kov a&amp;Aring;&amp;frac34; mierne pokro&amp;Auml;il&amp;Atilde;&amp;frac12;ch.
Okres:


Bratislava I
Bratislava II
Bratislava III
Bratislava IV
Bratislava V



Cena: 8,00&amp;Acirc;&amp;nbsp;&amp;acirc;&amp;not;
Kontaktn&amp;Atilde;&amp;copy; &amp;Atilde;&amp;ordm;daje

Meno: Horv&amp;Atilde;&amp;iexcl;thov&amp;Atilde;&amp;iexcl;,  Michaela
Telef&amp;Atilde;&amp;sup3;n: &amp;Atilde;&amp;ordm;daj  neuveden&amp;Atilde;&amp;frac12;
Mobil: 0908  556 518

E-mail: horvathova_micha&amp;Acirc;&amp;shy;ela (zavinac) zoznam.sk
</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=843</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=842">
<title>PagePank increased to 6 again - After the pagerank drop to 5 f ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=842</link>
<description>After the pagerank drop to 5 from which many pages suffered at end of the year 2009 (probably due to changes in the ranking algorithm), the google pagerank increased today to 6.</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=842</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=841">
<title>JoomlaBug - Frontend
 List of bugs on you ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=841</link>
<description>Frontend
 List of bugs on your website visible to everyone  Bug detail with custom fields  Bug comments with changed status  New bug report form with custom fields
Administration
 List of bugs from administration  List of projects from administration  List of custom fields  Custom field properties  Simple statistics</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=841</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=840">
<title>New bug tracking system for Joomla - 
I'm flooded with various rep ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=840</link>
<description>
I'm flooded with various reports for new features and discovered bugs for existing projects like JoomlaWatch, MathGuard, etc.I was trying to find some existing bug tracking systems to help me out with this.
&amp;Acirc;&amp;nbsp;
Flyspray, Bug Genie, etc. They were nice, but -
1. I was missing sychronization between the existing joomla users already registered
2. They were not simply embeddable into existing pages
3. Most of them were too complex
4. I wanted to have my custom fields with custom types an my custom email templates
5. There were not any good usable bug tracking components for Joomla
&amp;Acirc;&amp;nbsp;
That's why I've developed my own simple bug tracking system for Joomla !
&amp;Acirc;&amp;nbsp;
Well, I've spent some of my days off on this, instead of some other more enjoyable activity, but I hope it's worth it.
It's still in development, but you can check it out the first version at http://www.codegravity.com/bug/
&amp;Acirc;&amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=840</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=839">
<title>JoomlaComment spam protection - After the upgrade to Joomla 1. ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=839</link>
<description>After the upgrade to Joomla 1.5, I've installed the JoomlaComment component. This component was a replacement for the AkoComment for Joomla 1.0.
But after serveral days, I've realized that my site got spammed, even though this JoomlaComponent uses the CAPTCHA protection. The spambots somehow bypass this protection. I've created a modification to this JoomlaComment component, which uses the MathGuard protection against spam bots. This class I've used also with the AkoComment component.
The advantage of MathGuard class is, that it's not so much wide-spread, and therefore, not many bots have mechanisms to bypass this kind of CAPTCHA.</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=839</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=837">
<title>Email as Image in PHP -  This is a class which is diff ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=837</link>
<description> This is a class which is different than every other class you can find regarding coverting an email address to image.This is because it uses the encryption of the email addresswhich is being passed to the script which renders the image. The renderer decrypts this parameter produces an image output. &amp;amp;nbsp;&amp;amp;nbsp;   </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=837</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=836">
<title>Custom JSF component - Birthday -           One of the powerful  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=836</link>
<description>          One of the powerful feature of JSF is to extend its tag library and create custom tags. Developers can use this feature and enhance the tags that are provided by JSF implementations (e.g. sun, myfaces, etc). Or they can straight away start writing the tags of their own. Today we&amp;amp;rsquo;ll see how easy it is to create a custom tag in JSF. Let&amp;amp;rsquo;s try out with an example, to create a tag, which will display today&amp;amp;rsquo;s date and a list of people who has birthday today.                 </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=836</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=835">
<title>Write paid blog posts about programming - tips and articles - I'm looking for skilled develo ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=835</link>
<description>I'm looking for skilled developers who can write technical articles for this popular website.The same way as they would do on their own blog but I can pay for their posts. Our portal is quite popular and at first places on google so this is also opportunity to introduce yourself. Short note about your person and your skills will be at the end of each of your article also with a link to your own website/profile.I'm interested in topics: &amp;amp;gt;&amp;amp;gt;HTML5, SVG, CSS3&amp;amp;lt;&amp;amp;lt;, Joomla CMS (creating components/modules), Java, Spring, JSF, IceFaces, EJB, Hibernate, Javascript frameworks, jQuery, SEO tips, Liferay portal, etc.
Looking for a long term co-operation at reasonable prices. First I'd like to start with small tips/articles to see potential of developer, then giving him more responsibility for longer articles.
The content should be unique, not copied from somewhere else. After I pay for an article, I buy this article including copyright.&amp;Acirc;&amp;nbsp;Paypal is required.Another thing what I'm looking for is some developer - native english speaker, preferably from US or UK, who can make corrections on existing posts by other users who are from other countries including me.
 If you are interested, please reply to an email in header of this website with overview of your recent work, CV and rates at which you would be able to create such content.Thank you!</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=835</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=831">
<title>Stavebn&amp;Atilde;&amp;frac12; pozemok - 					Na predaj: Stavebn&amp;amp;yacute ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=831</link>
<description>					Na predaj: Stavebn&amp;amp;yacute; Pozemok Vy&amp;amp;scaron;n&amp;amp;eacute; Ru&amp;Acirc;bachy 				Pred&amp;amp;aacute;m stavebn&amp;amp;yacute; pozemok v prijemnom prostred&amp;amp;iacute; k&amp;amp;uacute;pe?ov Vy&amp;amp;scaron;n&amp;amp;eacute; Ru&amp;Acirc;bachy v bl&amp;amp;iacute;zkosti ly&amp;Acirc;iarskych vlekov. In&amp;Acirc;inierske siete v bl&amp;amp;iacute;zkosti. Vhodn&amp;amp;yacute; na relax ale aj podnikanie. 1767+27m2. 0908 190 372             </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=831</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=830">
<title>Format on save in Eclipse IDE - &amp;amp;nbsp;I found a great plug-in  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=830</link>
<description>&amp;amp;nbsp;I found a great plug-in to Eclipse. There was always a problem to run the source-code formatting in Eclipse, it was annoying to do it all the time. Fortunately, there&amp;amp;#39;s a plugin that runs this indentation and organizes the imports for you everytime you hit Ctrl+S (Save).Here&amp;amp;#39;s a link: http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=1162I use it in the BEA Workshop for JSP that is perfect when developing JSP + JSTL + Spring MVC.The main feature why I like it is a hot-deploy functionality. Everytime you save JSP or a .java class, it reloads it in tomcat and you can see your changes immediatel. &amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=830</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=829">
<title>CodeGravity.com has now Pagerank 7 ! -  Dear visitors. CodeGravity.co ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=829</link>
<description> Dear visitors. CodeGravity.com has reached the Google Pagerank 7 today! Thanks everyone who have supported this website and I hope it will provide more and more useful information and projects in future for everyone.</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=829</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=826">
<title>Privacy policy - Privacy Policy CodeGravity.com ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=826</link>
<description>Privacy Policy CodeGravity.com is strongly committed to protecting the privacy of its  user community. Whilst this Privacy Policy also covers the fine detail,  we can sum it up here: we won&amp;amp;#39;t publish (except where permission has explictly  been given), give, sell or rent your data to anyone, ever. We hate spam just as  much as you do, and we don&amp;amp;#39;t abuse the trust you place in us when you sign up.  We know we have certain obligations under the Data Protection Act 1998, and so  we take good care to comply at all times with this and all relevant UK and EU  laws. We understand the issues and concerns surrounding the use of personal data  in business, so we maintain very high standards and are accountable to you at  all times. Individual User Information Individually identifiable information will not be released without that  individual&amp;amp;#39;s prior consent. Visitors are specifically asked for individually  identifiable information when signing up to use certain CodeGravity.com  services. In some instances, users may be asked for personal interest and  demographic information in order to create a more customized user experience;  however these fields will generally be optional. From time to time, Codegravity.com may wish to contact individual users regarding community news or to make  promotional offers. However, such communications will only be delivered to users  who have previously approved them, and we do not share neither e-mail  addresses nor individually identifiable information with any third  parties. Site Usage  CodeGravity.com gathers &amp;amp;quot;site usage&amp;amp;quot; information from all visitors to the Codegravity.com Web site. Such data is used in the aggregate, to help  determine general usage patterns and fine tune layout in order to ensure that  our site is as useful and enjoyable as possible. This &amp;amp;quot;site usage&amp;amp;quot; and  statistical information may be made public information at CodeGravity.com&amp;amp;#39;s  discretion. Use of Cookies When you view our Web site, we may store some information on your computer.  This information will be in the form of a &amp;amp;#39;Cookie&amp;amp;#39; and will help us in many  ways. For example, Cookies allow us to tailor our Web site to better match your  interests and preferences and optionally provide automatic member login. With  most Internet Browsers, you can erase Cookies from your computer hard drive,  block all Cookies, or receive a warning before a Cookie is stored. Please refer  to your Browser instructions or help screen to learn more about these functions.   Disclosure CodeGravity.com reserves the right to access and disclose individually  identifiable information to comply with applicable laws and lawful government  requests, to operate its systems properly or to protect itself or its users.  Where practical, CodeGravity.com will attempt to obtain the prior consent of  the individual prior to disclosing individually identifiable information. As  mentioned above, we reserve the right to share aggregated &amp;amp;quot;site usage&amp;amp;quot;  information with third parties.  Your Acceptance of the Terms of this Privacy PolicyBy using  this site, you signify your assent to the CodeGravity.com Privacy Policy. If  you do not agree to this policy, please do not use this site. The terms of this  Privacy Policy may change from time to time without prior notice to you, so  please check this page periodically for any changes. Your continued use of this  site following the posting of changes to these terms will mean you accept those  changes. If you have any questions about our privacy policy, or believe that we have  not adhered to the guidelines set forth above, please contact us. </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=826</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=824">
<title>12 or 13 men ? - Do you see 12 or 13 men? Do yo ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=824</link>
<description>Do you see 12 or 13 men? Do you know a solution for this? Isn&amp;amp;#39;t this puzzle just great?! &amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=824</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=822">
<title>JoomlaWatch - A real-time AJAX joomla monitor and live stats - JoomlaWatch is an AJAX compone ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=822</link>
<description>JoomlaWatch is an AJAX component and module for Joomla CMS that allows you to watch your website visitors and bots in real-time from the administration menu. Specially their IP addresses, countries they come from, which pages they are viewing, their browser and operating system, it creates daily and all-time stats from these information plus unique, pageload and total hits statistics. Furthermore, you can block harmful IP addresses and see blocked attempts stats.
 

 
 

&amp;amp;gt;&amp;amp;gt;DOWNLOAD  the NEW 1.2.12&amp;amp;lt;&amp;amp;lt;

22.06.2010 - News in JoomlaWatch 1.2.12:
- graphs from all items on one page (goals, referers, keyphrases, pages, etc.)
- updated greek translation
- other small fixes

26.05.2010 - News in JoomlaWatch 1.2.12:

- Complete refactoring of code
- Email reports with values, percentage 1-day, 7-day, 30-day changes with settings
- History of visits (you can view and analyze user behavior from previous days)
- New geolocation database
- Keyphrases monitoring
- Add as goal directly from visits
- Database status - you can see how much data JoomlaWatch occupies
- Extracted Keywords right next to Came from URL
- Keep data setting on uninstall (useful when doing an upgrade)
- Timezone setting taken directly from Joomla global server settings
- Information about blocked spam attempts per day/total
- AJAX updates traffic information
- layout changes for email reports, antispam
- i18n, now you can use all languages (new messages are not translated yet, 
  but are mixed with the original ones - you can help)
- Hide repetitive titles, show only last URI for each visitor
occupies
- better bug report/feature request handling (using JoomlaBug)
- many other bugfixes and small features


JoomlaWatch




Live JoomlaWatch sample site
Sample Live site | Sample live site administration back end with JoomlaWatch username: demo  password: demo
- contains bugfixes, several new features, but is not tested by many users - is updated repeatedly, so always check for the new version - if you'll find a bug, please submit it using this form  Thank you!




Single domain license: 9 EUR   







- you'll support further development with new features available for you in future
- adds posibility to remove ad panel from back end
- adds posibility to remove frontend logo
- adds posibility to remove backlink
- your donation details here (optional)


Single domain PRO license: 15 EUR   







- prioritized when answering support questions
- a link to your website from the donations page (rel=nofollow) (Your website has to use JoomlaWatch)

- you'll support further development with new features available for you in future
- adds posibility to remove ad panel from back end
- adds posibility to remove frontend logo
- adds posibility to remove backlink
- your donation details here (optional)







DOWNLOAD older version 1.2.9 (also for Joomla 1.0)

*NEW Live JoomlaWatch demo! (development)
Sample Live site | Sample live site administration back end with JoomlaWatch username: demo  password: demo
News in this version: - translations: brazilian portuguese, dutch, french, german, greek, russian, slovak, slovenian, spanish, swedish - multi-page settings in tabs - internal referrers - anti-spam: blocks IPs based on a customizable list of bad words - protection against spam bots and automatic form submitters - frontend user module to show the most active visitors for current day - optional frontend user link to a user detail (eg. fireboard, community builder) - exclude particular users from stats in settings - country as a new parameter in goals - upper/lower case character of countries in frontend - live site setting in config.php - refactored classes - starting frontend value of &amp;quot;total:&amp;quot; in settings - &amp;quot;add as goal&amp;quot; link from statistics   (13.01.2009): New features : - fixed the problem with loading visits... loading stats..  (11.01.2009): New features : - splitted the mod_joomlawatch into mod_joomlawatch_agent (which records all of the visits, and has to be published on all pages eg. in footer) and mod_joomlawatch_visitors (which is optional, and can be published only on some pages where it's needed). - optimized the ajax requests, and refreshes, now the stats and visits refreshes only when there is a new visit - expand/collapse now appears only if there are more items in particular statistical group - fixed a bug causing that flags were not shown properly, if user had a different joomla table preffix than 'jos'    that in all .sql files, there was jos_joomlawatch_ip2c, replaced it to #__joomlawatch_ip2c  (30.11.2008): New features : - available now in: english, german, dutch, french, slovak, spanish, russian, brazilian - settings divided into slides using the coda slider  - splitted the jos_joomlawatch_ip2c into two separate tables, so it consumes 42% less database space.  - new ip2country database from http://ip-to-country.webhosting.info/downloads/ (new more accurate ip to country resolving)  - disable the backlink to codegravity in the settings - information about amount of data transferred per session.   - Special thanks to:

Andrey Kovalev - http://www.yourlaptopbatteriesonline.com for ukrainian translation
Stanislaw Lenkiewicz - http://www.lenkiewicz.eu for polish translation
Kaunas - http://sraimund.net for lithuanian translation
Allan Hallengreen - http://cms-solution.dk for danish translation
Petr Houba - http://www.folktime.cz for czech translation
JOKR Solutions - http://www.jokrsolutions.se for swedish translation
George Papadopoulos - http://www.netlook.gr for greek translation
iPo - http://www.mrt.si for slovenian translation
Jacobo Villarreal - for spanish translation
Dick Bronder - www.dbws.nl for dutch translation
7P-Darkman - hubpantanal.no-ip.info for brazilian/portuguese translation
Stephane Couderc - www.cours-svt.fr for french translation
Vitaliy K. - psa-club.ru for russian translation
Andreas Hofelich - www.andreashofelich.de for german translation
myself :) - for slovak translation

(3.10.2008): New features :  - english.php, which you can translate to your own language - GERMAN translation by Andreas Hofelich - right panel ignore ip fix - swap visitors/countries - other smaller improvements and bugfixes
 
(25.08.2008): VERSION 1.2.7 OFFICIAL - New features :
-complete documentation with references - username showing next to IP address and in statistics- recent came from (HTTP referer) in the list of visits- tooltip with a geographical map- daily and monthly graphs of a specific value, with daily and weekly increase in percents- goals (enables you to specify rules) and execute some action- frontend module that shows numbers of visitors today/yesterday/this week/last week/this month/last month/total- frontend module that displays the % of visitors by countries- timezone offset in settings- ignore list for certain IPs, URI- better customization with new settings by checkboxes- reset all stats data button- customizable map from specific address http://ip2geomap.com?ip={ip}- added current date and time next to &amp;quot;We have x visitor and y guests online&amp;quot;. - new logo- and many more new improvements :)
      
 

JoomlaWatch Documentation
Accessing JoomlaWatch
To access JoomlaWatch, log in to your Joomla administration. You will see the JoomlaWatch icon in the &amp;quot;Components&amp;quot; menu.   
 Accessing JoomlaWatch

Stats
You will see the JoomlaWatch main window. This window consists of JoomlaWatch menu (1), Visitors (2), Bots (3), Weekly visits graphs (4), Daily and All-time stats (5). All of these information are updated in real-time. It means, that you can easily &amp;quot;watch&amp;quot; what's going on currently on your website. 
 The main window of JoomlaWatch

Latest visitors
In this window you can see the &amp;quot;real users&amp;quot;. Stats are updated in intervals specified in the settings. When there is some activity, it is highlighted by the yellow fading rectangle. In each row you can see:

A &amp;quot;globe-like&amp;quot; icon. When you point your mouse over this icon, the map is being displayed, where is the actual location of the user. The map comes from the 3rd party service (default by http://www.netip.de) 
Then, there is country code
Country flag
IP address of visitor (you can click on this IP and toggle blocing of this user)
Username (below the ip address)
Browser icon (when you point your mouse over it, you will get the detailed browser information)
Operating system icon (when you point your mouse over it, you will get the detailed browser information)
Access time
Title of webpage (when you click on this link, the webpage will open)
URI of webpage (the relative webpage path)
Came from information (shows how did the actual visitor got to your webpage)

When the user visited more than one page, they are all listed there, with the actual time of the visit (as shown on a screenshot below). 
 The latest &amp;quot;real&amp;quot; visitors

Map
When you point your mouse cursor over the &amp;quot;globe&amp;quot; icon, that's usualy at the very left. A new window will appear, opening a frame with a website that shows a location of this user on the map. During the time this window is open, everything behind it stops. This window will disappear, when you click somewhere else, and everything continues as before. 
 A geographical map showing where the user came from

Bots
The same applies to &amp;quot;bots&amp;quot;. Bots are usualy special programs, that access your website for special purpose. Some of them are good (such as google bot that indexes your website content), and some of them are not (several spambots, that gather e-mail adresses). This differentiation is made by a simple &amp;quot;trick&amp;quot;. When someone is a real user, his browser loads the page source (HTML), plus immediately all images.  Bots just load the HTML source, which they usualy parse. You can also see, that these bots usualy don't have any browser identification. 
 Bots &amp;amp;amp; spiders

Visit stats
This is a real-time updating statistics of your visitors. The heading displays the current week number and year.  The current week is selected by default. There is a simple navigation - you can move backward and forward between weeks. Then, the table for selected week follows. For each row: on the very left, there is a date, plus the week day shortcut. Then, there are three information.  The first one, displayed in blue color, displays the number of unique visitors for that particular date. The green data mean the pageloads (how many webpages the users have viewed).  The last information (in grey) are hits. These hits are taking also the loads that comes from the bots. In the cell to the very right, there is a graphical representation of these data - as bar charts.  The percentage is a ratio (unique/pageloads). The lower this percentage is, the more pageviews each user on your website makes.  
 Visit statistics

Daily stats
This part shows the real-time updated statistical information for current day. You can also navigate to previous days.  Each of the stats module shows the name, number of hits, an arrow, trends icon, graphical representation (a bar chart) and percentage. It contains just top 5 values. You can however see more values, when you click on &amp;quot;Expand&amp;quot; link. It shows 15 more records by default, but this number can be increased in the settings. At the bottom (Total:), there is a sum of all the data from this statistical part.

First, there is the URI stats part. It shows the most popular webpages of your website. It's shown as the relative path (the URI [Uniform Resource Identifier])
Next module is the Countries module. It shows a flag and a country code of your visitors.
Then, there are the Referers. The top domains, where your users came from
The IP module show the most active IP adresses on your website. Some IPs are &amp;quot;too active&amp;quot;. This can make more load to your website.  When you point your mouse over the 'globe' icon, you can see, where is this IP from. The country flag is also helpful there.


 Daily statistics
It's not all..

Then you can see the most active users. You can also click on the username, and the user detail will be opened.
Goals are the special feature. It shows the top goal hits. For explanation, please see the Goals section. You can just click the goal name, and the form with that actual goal will be opened, and you can make some modifications to it. 
The next feature is, the Google keywords. You can see the top 5 most used keywords the user have used to get to your website from any google search. For now, just google is supported, maybe there will be some other search interfaces added in the future.
Next, the top 5 browsers, with icons, and their statistics
And last, but not least, the icons and names of most popular operating systems used by your visitors


 Daily statistics (continued)

All-time stats
When you click on the second tab, right next to the default &amp;quot;Daily&amp;quot; tab, you will see the all-time statistic.  This statistic is made of all available data gathered from the time JoomlaWatch was installed. This is quite the same as the daily stats, except it takes a wider range. 
 All-time statistics
Frontend
In the frontend, there are the country information, plus information about the unique visits for: Today, Yesterday, This Week, Last Week, This Month, Last Month and Total. You can hide these information in the Settings, in the &amp;quot;Frontend&amp;quot; section. 
 JoomlaWatch Frontend showing the top Countries and Visitors information

Settings
In the settings you can alter several parameters concerning appearance, frontend appearance, history &amp;amp;amp; performance, ignoring &amp;amp;amp; blocking and some expert settings. All of the fields have the explanatory text with an example right next to it.  
 Appearance &amp;amp;amp; Frontend settings

 History &amp;amp;amp; performance, Advanced, and Expert settings

Reset all data
At the very bottom, there is a link that resets all the data. This is good, when you want to start from scratch. Of course, there is a confirmation window to ask you whether you really wish to do that. 
 Reset all data link, and the confirmation window

Trends
Green &amp;amp;amp; red arrow icon
You could have noticed some new icons next to each 'data' name. First one is the arrow icon.  This icon indicates the increase or decrease or particular data - in our case (on screenshot), the visitors coming from extensions.joomla.org. This always the last yesterday's value compared to the day before yesterday.  The arrow is green, when there's an increase, and red, when the value has decreased. When there is no change, the little gray dash (-) appears.  
 The arrow icon and the trend icon
Trend icon
Right next to the arrow, there is a little blue trends icon. When you move your mouse cursor over it, the window appear (as shown on a screenshot below). &amp;quot;Trends&amp;quot; are in fact, vertical bar charts, that show how your data changed in time.  First graph shows the daily changes, and the next one, the weekly changes. Below each bar, there is a percentage, indicating the increase or decrease from the previous day. The same is on the weekly basis. These data are available everywhere, where there is a trend icon. It applies to all kind of data - URI, referers, keywords, countries, and even goals. 
 Trends (daily and weekly charts) for country: us 

IP Blocking
You can block IP address, just by clicking on it. The confirmation is needed. When the IP is blocked, it's indicated by a strike-out. 
 Blocked IP, plus the confirmation window
IP Unblocking
To unblock the IP, you can click on blocked IP again. If this IP already disappeared from the visitors windows, you can still find it at the bottom of the stats window (as shown on a screenshot below).  There you can directly see the number of blocked attempts for each IP. Click &amp;quot;unblock&amp;quot; to unblock it. You can also enter the IP manually, by clicking the &amp;quot;Enter the IP manually&amp;quot;. There, you can use wildcards as well. Eg. 217.* will block all IP starting with 217.  
 List of blocked IPs, plus a window to enter a new IP manually

Goals
Goals.. Goals are quite handy feature when you want to get some more advanced information. &amp;quot;Goals allow you to specify special parameters. When these parameters match, the goal counter is increased. This way you can monitor whether the user has visited a specific URL, posted a specific value, has a specific username or came from a specific address. You can also block or redirect such users to some other URL.&amp;quot;. On a screenshot below, you can see a table with several goals, their parameters, how many times the goal has been reached, and the action image buttons to enable/disable a goal, edit, and delete a goal. To create a new goal, click the icon with caption &amp;quot;New goal&amp;quot;.  
 The main goals table

New goal
You will get the blank form. This topic is quite advanced, and might appear quite complex, but actualy isn't. Every field contains a long description, so it should be quite easy to figure out what to put there. When you don't fill anything in, the condition is ignored. It means, that the more fields are filled, the more likely is this goal going to be reached. The best would be to make an example: Let's assume, we want to protect our website from some spambots 
 Creating a new goal
Goal example - protecting our Order form
Let's assume now, that some bad guys posted a message about your website, on let's say: &amp;quot;badforum.org&amp;quot;. The message states,  that some of them has discovered, that you have a form on your website, and there is a possibility to flood this form with thousands of messages. This form represents an order form, and everytime someone submits the form, you receive a text-message about the new order. Your order form has an address: www.yoursite.com/order-form .  However, this time someone wants to abuse it.  Your order form is inacessible without registration, so they registered a user: botuser1.  You have discovered, that they use special server somewhere in, let's say, Malaysia, for this purposes. The IP of their servers is 201.2.3.2, 201.2.3.3, 201.2.4.4.. This program they have made fills the order message about how fantastic the game &amp;quot;World of Warcraft&amp;quot; is, with tons of links to some inappropriate websites they own. So, with JoomlaWatch, you can do something against it, or agains some other attempts like this. Let's look at the filled form below: The first field contains the name of our goal, it can be anything. Then, there is the URI condition, that we are just checking whether they are trying to access a webpage with our form. Title condition is effective, when you want to protect several websites with some keyword in it. Then, their the username follows. Then, there is their IP address range, which covers all addresses mentioned above, just with one wildcard (*). Your form, when submitted, calls /order-form?form_action=submit_form. When you specify this, it will cover only the cases, when the form has been submitted. And.. when we look at the order form on our website, the field with named &amp;quot;order_message&amp;quot;. (It's in the HTML source &amp;amp;lt;texarea name='order_message'&amp;amp;gt;&amp;amp;lt;/texarea&amp;amp;gt;) Finally.. we specify, where we want such bad guy to be redirected. In our case, it's some general server, or, if we do not want to forward him anywhere, we can just &amp;quot;block&amp;quot; him, and set the &amp;quot;Block&amp;quot; field to 1.  
 Example: A goal to protect the order form
Some information related to previous versions follow
 
top referers: now you can see the daily and all time statistics where the most visitors come from
 
 Top domains refering to your website
 
 
(24.03.2008): VERSION 1.2.5 
- should fix errors of 1.2.4 like &amp;quot;blank page&amp;quot; and define notices- all the features from 1.2.4
(16.03.2008): VERSION 1.2.4
Version 1.2.4 had some problems with installation and many people reported a &amp;quot;blank page&amp;quot;. The bad thing is, that for me it works well. But was unable to figure out what was causing the problems for so many users.
New features in this version:- Was rewritten to work with both Joomla 1.0 and 1.5 (NOW NATIVE)!- IP statistics - can help you to identify spambots or users that make most requests- IP blocking feature: blocking of single IPs or using wildcard filter- A counter of blocked attempts for particular blocked IP- Introduced some new config parameters - Parameters now fully configurable in UI in back-end.- Flags show the whole country name in mouseOver- and many more fixes and improvements
(17.03.2008): VERSION 1.2.4
- I got some complains like &amp;quot;Why do I have to enable the legacy mode, when it should work with Joomla 1.5&amp;quot;, or &amp;quot;the Legacy mode sux..&amp;quot;, and so on..- the thing was, that the you had to enable the legacy mode just because of a fact that two different versions of joomla use different XML descriptors (joomlawatch.xml in com_joomlawatch.zip)- finally, I found a &amp;quot;trick&amp;quot;, I did not know about before. You can have 2 descriptors in one .zip archive - (joomla.xml and joomla.j15.xml). Pitty that I did not know that before.- but now it's fixed and it runs on 1.5 and 1.0 natively ! - so just please re-download and re-install from this day.

Things you shouldn't forget: - When upgrading to a new version, all tables are being deleted, so if you want to keep the stats, make a database backup- Before installation, please make sure you have at least 20 MB of free space. - Don't forget to unzip the whole archive and then just use those .zip files for installation.- Now you don't have to enable the legacy mode in Joomla 1.5- You MUST publish the mod_joomlawatch module, to see users on your website.- make sure you did all of this, before you ask for help in forum or in comments. Thank you
Possible problems with registrationSome users reported that when they wanted to register, the system has blocked their account.It's probably because you have to click the link recieved by an email to activate it.When you don't revieve this email, your domain is probably blacklisted, so try to use another email. If this still doesn't work, please write me a short email and I'll enable your account manually. Thank you.


 JoomlaWatch troubleshooting (check this first!) 
 Sometimes even if the software is written correctly, some of the settings of the webhosting system might influence it's behaviour. It's also quite hard to predict many of the custom settings for each individual webhosting provider.  Identify the source of the problem: 
1. Access the files on your webhosting
- get the connection details from your system administrator / webhosting provider: hostname, username, password   a) Use Total Commander to access your remote files:  - press Ctrl+N  System will show the dialog with the new FTP connection  Connect to (host or URL)  - enter: yourlogin@yourdomain.com and press OK  - Total Commander will ask you for the password  - in one of the panels you'll see the files / directories on your remote host   b) Use the webftp access to access your remote files  - webhosting providers usually allow you to view the content of your remote directories via the web browser.  It's usually accessible via the webhosting Control panel.  - find out, what's the url in your case navigate to that url: (In many cases it's http://webftp.yourdomain.com, or http://ftp.yourdomain.com)  - You should see the dialog asking you for the username / password  - Enter your login / password and press ok  - You should see the remote directories. You'll be able to navigate between directories and edit the files remotely via this web interface 
2. Set the live site
1. Open the file /components/com_joomlawatch/config.php  change  # define('JOOMLAWATCH_LIVE_SITE','/');  to:  define('JOOMLAWATCH_LIVE_SITE','http://www.yoursite.com');  (remove the # )  2. Save and check whether it works 
3. Enable the debug mode
- Open the file /components/com_joomlawatch/config.php  - Change the value:  define('JOOMLAWATCH_DEBUG', 0);  to  define('JOOMLAWATCH_DEBUG', 1);  Usually all the notices and messages are hidden, because every hosting has it's own level of PHP error reporting defined in php.ini. (E_NOTICES, E_PARSE, E_WARNING)..  This setting sets the error reporting in JoomlaWatch to E_ALL (showing all messages)  - check for the possible errors in your JoomlaWatch now (ignore the Notices, only check for Warning, Error)  - you can anytime switch this debug mode back to 0 
4. Check for Javascript errors
- In your firefox browser click: Tools -&amp;amp;gt; Error Console (or press Ctrl+Shift+J)  - click on tab Errors, then press Clear  - Now try to access the JoomlaWatch from administration and watch for Javascript errors  - If there are some, try to set the Live site (2) and/or Debug mode (3).  - Report your findings as a bug 
5. Check Directory permissions
- use the Total Commander or webftp to access your files (1)  - navigate to the content of /components/com_joomlawatch/  - Set the directory permissions to 755 and file permissions to 644 (mark the directories css, flags, icons, js, lang, sql),  then select from Total Commander menu: Files -&amp;amp;gt; Change Attributes, instead of ---- write 755, press OK  - Do the same with the files admin.joomlawatch.php, block.php, etc... intead of ---- write 644, press OK  - navigate one level up (/components/ directory), and change the permissions on folder com_joomlawatch to 755 too. 
6. Check the database
- check whether your database isn't full. Some webhosting providers give you only the limited database space.  JoomlaWatch is quite intensive in demand for the database space, because it stores the statistics from previous days.  Access your database using phpMyAdmin  - open your webhosting control panel. Usually you'll be able to navigate to the url with the phpMyAdmin  - enter your database user name, database password  - on the right side, you'll see all your databases (they have usually the same name as the database user name). Click on that particular database  - in the right panel scroll to the very bottom of the page. Check for the Sum of your table sizes and make sure it doesn't exceed the space limit of your webhosting provider  - make sure there are jos_joomlawatch_* tables and they don't exceed any limit
JoomlaWatch Frequently Asked Questions (FAQ)

When I open the JoomlaWatch back-end, I just see &amp;quot;Loading visits...&amp;quot;, &amp;quot;Loading stats..&amp;quot;
This is because the files in the folder /components/com_joomlawatch/ have the wrong permissions. Please change the permissions to this whole foder to 755. (Make them visible to everyone). To do this, you can use the Total commander Files-&amp;amp;gt;Change attributes, or the unix command: chmod 755 &amp;quot;folder&amp;quot;. 
I cannot see the JoomlaWatch icon
When you see an icon of a &amp;quot;broken image&amp;quot; instead, click it and choose &amp;quot;View image&amp;quot;.  You'll probably see a message: 500 Internal server error. I cannot do anything about this error, cause it's something wrong with your server's configuration. You can try to set the permissions to the files and folters of JoomlaWatch to 755, and if this wouldn't help, please contact your system administrator and ask him, why it doesn't work.
Who are the &amp;quot;bots&amp;quot; appearing in the statistics?
Bots and spiders are special programs run by individuals or companies that visit your website for some purpose. Some of them are &amp;quot;friendly&amp;quot;, like googlebot that tries to index the content of your website, and some of them are not.Like the ones, that extract email adresses to send spam to. There are some other spambots, that are filling forms and this way are trying to &amp;quot;promote&amp;quot; some websites. That's why most of the forms use the CAPTCHA (http://en.wikipedia.org/wiki/Captcha) mechanisms. Some of those bots can make many requests to your website, and make it load slower or very occasionally they may cause a server crash (Distributed Denial of Service Attack from many IP adresses). 
How is it determined who is a &amp;quot;bot&amp;quot;?
The principle of JoomlaWatch's differentiation of bots and visitors is simple.. Real visitors when having a normal browser usualy load the images, including the joomlawatch icon. The others are just interested in th HTML source without loading additional images, whsere they can find some email addresses or some other valuable information. It's like I would make a program, that opens the address, parses it, and then sends some emails to the email addresses that it has found. Of course, there are &amp;quot;friendly&amp;quot; bots as well, like the googlebot, that takes care of indexing your website for the google search, or some other. Without these, you won't see your page in search results.
I cannot open the .zip archive
Sometimes it happens, that when you are downloading a file from the internet, the HTTP connection is timed out. It means, that the download seems to be completed, but only 80% of it is really downloaded. If this happens, try to re-download it again, until you open it succesfully. It's recommended to use some download manager as wget, FlashGet or Mass downloader.
The component installation ends with &amp;quot;Cannot find the XML setup...&amp;quot;
Free some of your webhosting space. The installation of JoomlaWatch requires at least 20MB. It's because it contains huge ip to location resolving tables.
AJAX permission Denied
This usualy happens whey you have forgotten the &amp;quot;www.&amp;quot; in front of your domain name. It makes the JavaScript think you are trying to access the different domain, and it's restricted because of the security reasons. So, please just try to access your site administration with the domain name that's specified as a &amp;quot;live site&amp;quot; in your configuration.php. (Usualy the domain with the www in in &amp;quot;http://www.yourdomain.com&amp;quot;)
Why do I see the ads in the JoomlaWatch backend?
This is the only way how to keep the component free. Developing the new features costs a lot of time and effort. I hope these ads are not that much intrusive that it would annoy that much people, than paying some money for a single download. If you don't like the ads, please use the version 1.2.5, that comes without them, but with the older features as well.
 
Do you like JoomlaWatch?
Please support it at    and submit your vote. Thank you :-P
 
See the most active IP addresses. This way you can determine eg. spambots trying to harm your website.    Now everything is configured without editing configuration files with user-friendly interface  You can block several IP addresses manually   All IP you blocked are in a list with number of blocked attempts.
 
 
 Click to see the flash demo of JoomlaWatch stats

REQUIREMENTS:
- Apache web server- PHP 4 or 5 (Tested on 5.2.5)- MySQL &amp;amp;gt;= 5.0 (Tested on 5.0.51)- Joomla 1.0.x
INSTALLATION INSTRUCTIONS for Joomla 1.0.x
 



Click to see the installation howto (same as the steps below) 
 





INSTALLATION INSTRUCTIONS for Joomla 1.5.x
From v1.2.4 you don't need to enable &amp;quot;Legacy mode&amp;quot; Plug-in. Proceed like with installation for 1.0
 
To install the JoomlaWatch,!!! first make sure you have enough space on your hosting, approximately 20 MB of free space !!!
Component installation for Joomla
1. log into the joomla administration2. Choose Installers-&amp;amp;gt;Components3. Click &amp;quot;Browse...&amp;quot;4. Choose the com_joomlawatch.zip you downloaded5. Click &amp;quot;Upload File &amp;amp;amp; Install&amp;quot;6. You should see the Installation procedure and the &amp;quot;Installation finished&amp;quot;.
Module installation for Joomla
This module shows a little monitoring icon with JoomlaWatch logo on your website.This way you can identify a browser of your visitor or whether it's a bot.Without this icon there won't be any user-Agent information available.1. Choose Installers-&amp;amp;gt;Modules2. Click &amp;quot;Browse...&amp;quot;3. Choose the mod_joomlawatch.zip you downloaded4. Click &amp;quot;Upload File &amp;amp;amp; Install&amp;quot;5. Choose Modules-&amp;amp;gt;Site modules6. Find JoomlaWatch and click the &amp;quot;X&amp;quot; icon to make it switch from unpublished to published7. Click the JoomlaWatch link, and choose where this module would appear. The default are right, left, bottom.. but make sure this position appears in your template. It's also recommended to switch the &amp;quot;Show title&amp;quot; to No. Pages/Items -&amp;amp;gt; MenuItem Link(s) has to be &amp;quot;All&amp;quot;.8. Click the &amp;quot;Save&amp;quot; icon and check whether your site shows the joomlawatch icon.
That's it !
CONFIGURATION OPTIONS
You can change some parameters of JoomlaWatch editing the /components/com_joomlawatch/config.php file.
/* This is the main file with basic settings */define('JOOMLAWATCH_VERSION', &amp;quot;1.2.0&amp;quot;);define('JOOMLAWATCH_UPDATE_TIME_VISITS', &amp;quot;2000&amp;quot;); // time in miliseconds, default is 2000, be careful with thisdefine('JOOMLAWATCH_UPDATE_TIME_STATS', &amp;quot;4000&amp;quot;); // time in miliseconds, default is 4000, be careful with thisdefine('JOOMLAWATCH_MAXID_BOTS',10);            // how many bot visits keep in databasedefine('JOOMLAWATCH_MAXID_VISITORS',60);        // how many real visits keep in databasedefine('JOOMLAWATCH_TRUNCATE_VISITS',40);       // maximum characters to be shown in long titles and urisdefine('JOOMLAWATCH_TRUNCATE_STATS',20);        // maximum characters to be shown in right statistics paneldefine('JOOMLAWATCH_STATS_KEEP_DAYS',9);        // days to keep statistics, 0 = infinite
 
 
UPDATE INSTRUCIONS
1. Re-download the latest archive from the download section of this website
2. Unzip the archive with joomla component and module into some temporary folder ( the archive contains com_joomlawatch.zip, mod_joomlawatch.zip and some     text files)
3. Uninstall the old JoomlaWatch module  Choose Installers -&amp;amp;gt; Modules from the main menu choose mod_joomlawatch  click &amp;quot;Uninstall icon&amp;quot; in the upper right corner
4. Install the new JoomlaWatch module Click &amp;quot;Browse&amp;quot;,  choose a mod_joomlawatch.zip from your temporary folder,  Click &amp;quot;Upload file &amp;amp;amp; Install&amp;quot;5. Uninstall the old JoomlaWatch component  Choose Installers-&amp;amp;gt;Components from the main menu choose JoomlaWatch click &amp;quot;Uninstall icon&amp;quot; in the upper right corner
6. Install the new JoomlaWatch component Click &amp;quot;Browse&amp;quot;,  choose a com_joomlawatch.zip from your temporary folder,  Click &amp;quot;Upload file &amp;amp;amp; Install&amp;quot;
7. Publish the JoomlaWatch module: Choose Modules-&amp;amp;gt;Site modules from the main menu Find JoomlaWatch and click the &amp;quot;X&amp;quot; icon to make it switch from unpublished to published Click the JoomlaWatch link, and choose where this module would appear. The default are right, left, bottom.. but make sure this position appears in your template. It's also recommended to switch the &amp;quot;Show title&amp;quot; to No. Pages/Items -&amp;amp;gt; MenuItem Link(s) has to be &amp;quot;All&amp;quot;. Click the &amp;quot;Save&amp;quot; icon and check whether your site shows the joomlawatch icon.
 
 
Reporting possible problems of this Joomla stats component
Even though most of the bugs are fixed in the latest update, the range of browsers, web servers and their different implementation is very wide, so it's impossible to reproduce the runtime enviroment of every user - you.
Before reporting any possible problem, please read the Forum of this website, whether the solution isn't there.If not, please try to include as much information as you can (Browser type and version, PHP version, OS, and the problem why it didn't work). Not just &amp;quot;it doesn't work for me&amp;quot;. This kind of report doesn't help anyone. Thank you.
 

OLDER RELEASES:
 
UPDATE (27.01.2008)
- added more configurable options into config.php- JOOMLAWATCH_BLANK_ICON to use the blank icon- date and week offsets- JOOMLAWATCH_SERVER_URI_KEY option for cases that it logged only index.php. Now, there is an option to use your own $_SERVER key
To upgrade to the new version, please just re-download and re-install.
VERSION 1.2.0
Changes and improvements:- improved security- now showing real visitors and bots separately- added right panel with live statistic information:- graph showing weekly unique visitors, page loads and total hits- smaller expandable charts showing daily and all-time count and percentage of popular pages, countries, browsers and operating systems- more configurable parameters- performance improvements using database indices and optimized queries- everything made by AJAX request and partial page updates so you don't have to wait for the whole page refresh
 
UPDATE (03.12.2007): Some improvements - version 1.0.3
 - discovered a bug, some PHP configuration are just set to interpret &amp;amp;lt;?php and ignore &amp;amp;lt;? , fixed- config.php with the update interval configuraiton- country code right next to the country flag (for those who don't know country flags)- JoomlaWatch icon now looks better on a dark background - some minor issues fixed (thanks to Wayne Wenquiang)- notice about the latest version in the installation- versioning
UPDATE (22.11.2007): Automatic Refresh in IE
Some users reported that the administration part did not refresh automatically. I found out that this problem occured only in Internet Explorer. The problem was, that IE did not recognized the http.responseText[i] javascript  command, so I replaced it with  http.responseText.charAt(i) and succesfully tested it with Internet explorer, firefox and Joomla 1.0.13.
Sorry for any inconvenience
UPDATE (15.11.2007): Notices
Some people reported, that the JoomlaWatch icon was not properly shown, and therefore JoomlaWatch did not work. It was mainly because they had the PHP NOTICES enabled on server by default. This caused the coruption of the gif icon adding PHP text output to icon's binary data.
In this fix I suppressed the notices by adding the @ in front of several PHP expressions and corrected some PHP's complains.
 

 
 
 

JoomlaWatch component after installation in the Joomla Administration
A country flag, IP address, browser and OS identification, title and url of the webpage
 Click to see the flash demo of JoomlaWatch stats
 
Stats layout in Joomla administration
 </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=822</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=820">
<title>Problems with Mastercard abroad - Last weekend I was in Prague w ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=820</link>
<description>Last weekend I was in Prague with my girlfriend. We stayed in the IBIS hotel Karlin. When they asked me how would I pay, I said, I would pay with my debit Mastercard. They took it to &amp;amp;quot;authorize me&amp;amp;quot;.  To my surprise the amount of approx. 300 EUR was taken, I recieved an notification SMS immediatelly.They said they are going to return this at the check-out date. Ok, after a check-out they gave me two reciepts, one for the rollback of the authorization (300 EUR) and second for our room (178 EUR). &amp;amp;nbsp;Now, five days have passed, and I didn&amp;amp;#39;t get my money back ! Why ? .. I went to my bank, they said - It&amp;amp;#39;s a problem of a hotel.&amp;amp;nbsp;So I decided to call a hotel manager. They said, as I thought, the problem is in the bank, and it&amp;amp;#39;s an usual situation and I should wait and wait and wait until I&amp;amp;#39;ll get my money back. But how long ???Is it normal ? 300 EUR were taken immediatelly, so what the hell the return takes such a long time ?How then the clients should be motivated to pay with a card, when such situation happens? I am not desperate about that money, it&amp;amp;#39;s about a principle.. My friend said, what would happen when you will travel around europe and everytime you will stay night in different hotel you will pay also the authorization.A friend of mine payed the same way somewhere in France. His money are somewhere &amp;amp;quot;on the way&amp;amp;quot; in the virtual world second week !&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=820</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=819">
<title>Strange IE problems - I&amp;amp;#39;ve been experiencing str ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=819</link>
<description>I&amp;amp;#39;ve been experiencing strange Internet Explorer 6.0 problems. I&amp;amp;#39;m using firefox, but when I wanted to check my site at internet caffee last saturday, I just couldn&amp;amp;#39;t. I just saw the error dialog &amp;amp;quot;Internet Explorer cannot open the Internet site http://www.codegravity.com&amp;amp;quot;..But WHY ??Then there was a blank page with &amp;amp;quot;The page cannot be displayed&amp;amp;quot;. DNS problem? - IP resolving worked well !..Today I tried to comment out every javascript code, but without any special result. Now it seems to work better. If anyone knows where the problem was, please feel free to comment.Sorry for any inconvenience..&amp;amp;nbsp;&amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=819</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=816">
<title>JSF, Icefaces and custom components experiences -   I got the task to evaluate t ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=816</link>
<description>  I got the task to evaluate the new web-frameworks in the company I work for.&amp;amp;nbsp; There were many candicates that might enhance the web user interface and move away from the old struts framework. If you want to know some of my experiences, just read on.. </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=816</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=814">
<title>Icefaces custom tag with facelets - I&amp;amp;#39;ve been struggling with  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=814</link>
<description>I&amp;amp;#39;ve been struggling with creating my own icefaces tag that I could use everywhere it&amp;amp;#39;s needed. There are many tutorials on the internet, BUT.. I couldn&amp;amp;#39;t get it work anyway. When I looked at the sourcecode on the webpage, the tag &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;ticker:ticker /&amp;amp;gt;&amp;amp;nbsp; was there directly in the HTML sourcecode. This is wrong, because I expected the rendered ouput there.One whole week I tried to solve this problem trying almost everything. But then, finally, I found it.So, what was the problem? When you are using Facelets with your JSF/Icefaces, the TLD (tag library descriptor) files are for nothing. Even if I tried to place them everywhere. You have to create the equivalent of the TLD file for the Facelets - the XML file describing the tag structure. In this case it&amp;amp;#39;s ticker.taglib.xml &amp;amp;nbsp;    The tag descriptor for the facelets &amp;amp;nbsp;&amp;amp;nbsp;There you specify the component&amp;amp;#39;s class - Ticker, and it&amp;amp;#39;s renderer - TickerRenderer. Now, you don&amp;amp;#39;t need the TickerTag as suggested when using JSP in many tutorials around the internet.Also don&amp;amp;#39;t forget to tell the JSF to recognize your taglib and place this XML snippet into web.xml (just the first reference to xml, the second is when you want to use also another taglib - eg. the tomahawk components)       Put the reference to your tag descriptor into web.xml   &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;context-param&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;param-name&amp;amp;gt;facelets.LIBRARIES&amp;amp;lt;/param-name&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;param-value&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /WEB-INF/ticker.taglib.xml;/WEB-INF/tomahawk.taglib.xml&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;/param-value&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;lt;/context-param&amp;amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;    JSF source with a custom tag       Rendered output&amp;amp;nbsp;I wonder why this &amp;amp;#39;trick&amp;amp;#39; hasn&amp;amp;#39;t been described yet in some tutorial. So, I hope you will find this remark useful and it will help you when creating your own JSF components. &amp;amp;nbsp;&amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=814</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=813">
<title>Firefox extensions - useful XUL resources - &amp;amp;nbsp;I&amp;amp;#39;ve been reading so ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=813</link>
<description>&amp;amp;nbsp;I&amp;amp;#39;ve been reading something about firefox extensions programming. There are many tutorials on the web showing just the basics - how to create the .xpi file, and describe contents of this archive. None of these tutorials showed something more about the XUL programming and theory behind it.Check out these cool XUL presentations I found:&amp;amp;nbsp;http://www.xmlaustin.org/wk/385/4/Eitan_Suez_XUL.pdf &amp;amp;nbsp;http://media.wiley.com/product_data/excerpt/04/04714158/0471415804.pdf </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=813</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=811">
<title>Amazing Flex 3d demo - Check out this amazing 3D Flex ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=811</link>
<description>Check out this amazing 3D Flex demo:
 3D Flex gallery </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=811</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=810">
<title>Kosice plavaren - V Ko&amp;amp;scaron;iciach som u&amp;Acirc; sie ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=810</link>
<description>V Ko&amp;amp;scaron;iciach som u&amp;Acirc; siedmy rok, posledn&amp;amp;eacute; roky pracujem ako program&amp;amp;aacute;tor a o to d&amp;amp;ocirc;le&amp;Acirc;itej&amp;amp;scaron;ie je pre m?a &amp;amp;scaron;portova? a odreagova? sa od rozm&amp;amp;yacute;&amp;amp;scaron;?ania a du&amp;amp;scaron;evnej pr&amp;amp;aacute;ce. Sk&amp;amp;uacute;ste v&amp;amp;scaron;ak n&amp;amp;aacute;js? tak&amp;amp;uacute; aktivitu ktor&amp;amp;aacute; by v&amp;amp;aacute;m vyhovovala. Pl&amp;amp;aacute;vanie je v zime jednou z m&amp;amp;aacute;la ke? je vonku &amp;amp;scaron;karedo. Ak&amp;amp;aacute; je v&amp;amp;scaron;ak situ&amp;amp;aacute;cia, druh&amp;amp;eacute; najv&amp;amp;auml;?&amp;amp;scaron;ie slovensk&amp;amp;eacute; mesto ?   Neuver&amp;amp;iacute;te, no v Ko&amp;amp;scaron;iciach si nezapl&amp;amp;aacute;vate! Vyzer&amp;amp;aacute; to tu tak, &amp;Acirc;e 236 093 ?ud&amp;amp;iacute; (&amp;amp;uacute;daj z roku 2001) je tu JEDNA ! &amp;amp;Aacute;no - jedna kryt&amp;amp;aacute; plav&amp;amp;aacute;re?. Ne&amp;amp;scaron;lo by tak ani o to, ako sk&amp;amp;ocirc;r o jej dostupnos?:          &amp;amp;nbsp;   Pripad&amp;amp;aacute; mi to ako keby plav&amp;amp;aacute;re? bola nejak&amp;amp;aacute; banka (ako sme to mohli vidie? v istej poslednej reklame) - maj&amp;amp;uacute; rovnak&amp;amp;uacute; pracovn&amp;amp;uacute; dobu ako vy :)    Poml?ky znamenaj&amp;amp;uacute; &amp;Acirc;e baz&amp;amp;eacute;n nie je verejnosti k dispoz&amp;amp;iacute;cii. Va?&amp;amp;scaron;inou je to kv&amp;amp;ocirc;li tomu, &amp;Acirc;e s&amp;amp;uacute; to vrieskaj&amp;amp;uacute;ce deti, ktor&amp;amp;eacute; maj&amp;amp;uacute; tr&amp;amp;eacute;ning v ?ase kedy chcete oddych :) Nerozumiem pre?o by tie tr&amp;amp;eacute;ningy nemohli ma? niekedy cez obed, alebo dokonca r&amp;amp;aacute;no, tak ako to bolo napr&amp;amp;iacute;klad v Poprade na gymn&amp;amp;aacute;ziu.    ?al&amp;amp;scaron;ej veci ktorej nerozumiem, je to, &amp;Acirc;e sa plav&amp;amp;aacute;re? zatv&amp;amp;aacute;ra o &amp;amp;ocirc;smej. &amp;Acirc;eby tety za okienkom chodili sp&amp;amp;aacute;va? po ve?ern&amp;amp;iacute;?ku a plav?&amp;amp;iacute;ci tie&amp;Acirc; ? Nechcem robi? reklamu, ale pre?o napr. Popradsk&amp;amp;eacute; Aquacity m&amp;amp;aacute; plaveck&amp;amp;yacute; baz&amp;amp;eacute;n bez probl&amp;amp;eacute;mov do 22:00 ? (zdroj: http://www.aquacity.sk/opening.aspx )  Niekto m&amp;amp;ocirc;&amp;Acirc;e poveda? - &amp;amp;quot;ve? tam m&amp;amp;ocirc;&amp;Acirc;e&amp;amp;scaron; by? cez v&amp;amp;iacute;kend&amp;amp;quot;..&amp;amp;Aacute;no, ale cez v&amp;amp;iacute;kend sa d&amp;amp;aacute; &amp;amp;iacute;s? relaxova? aj inde mimo mesta, tak sk&amp;amp;ocirc;r ?lovek vyu&amp;Acirc;ije to. Neostane kv&amp;amp;ocirc;li pl&amp;amp;aacute;vaniu predsa sedie? doma.   T&amp;amp;aacute;to situ&amp;amp;aacute;cia sa mi v&amp;amp;ocirc;bec nep&amp;amp;aacute;?i a Ko&amp;amp;scaron;ice ako mesto otrasne zaost&amp;amp;aacute;vaj&amp;amp;uacute;. Prich&amp;amp;aacute;dzaj&amp;amp;uacute; tu nov&amp;amp;eacute; IT firmy a ost&amp;amp;aacute;vaj&amp;amp;uacute; nov&amp;amp;iacute; ?udia. No &amp;Acirc;e by preto spravilo nie?o mesto, tak toho sa asi nedo?k&amp;amp;aacute;me, &amp;Acirc;e?  Sk&amp;amp;uacute;ste &amp;amp;iacute;s? pl&amp;amp;aacute;va? ke? s&amp;amp;uacute; vo?n&amp;amp;eacute; 4 dr&amp;amp;aacute;hy. Ka&amp;Acirc;d&amp;amp;yacute; ide ako buldoz&amp;amp;eacute;r, pomal&amp;amp;iacute; plavci, t&amp;amp;iacute; ?o sa len ?vachtaj&amp;amp;uacute; - chaos :). V Anglicku sa mi p&amp;amp;aacute;?ilo ako mali baz&amp;amp;eacute;n riadne rozdelen&amp;amp;yacute; pod?a toho ?i pl&amp;amp;aacute;ve niekto r&amp;amp;yacute;chlo, stredne r&amp;amp;yacute;chlo alebo pomaly. Vr&amp;amp;aacute;mci jednej dr&amp;amp;aacute;hy pl&amp;amp;aacute;vali dvaja plavci, ka&amp;Acirc;d&amp;amp;yacute; po pravej strane v smere pl&amp;amp;aacute;vania podobne ako na ceste. U&amp;Acirc; som tento n&amp;amp;aacute;vrh p&amp;amp;iacute;sal aj cez str&amp;amp;aacute;nku plavaren.info, no asi treba ?aka? e&amp;amp;scaron;te 10 rokov :)   Som z tejto situ&amp;amp;aacute;cie sklaman&amp;amp;yacute; a vlastn&amp;amp;iacute;k hospod&amp;amp;aacute;ri naozaj zle, ve?a ?ud&amp;amp;iacute; by si aj priplatilo aby malo nejak&amp;amp;uacute; kvalitu, ale ke? naozaj nie je z&amp;amp;aacute;ujem nie?o meni? ?   Uv&amp;amp;iacute;tam ka&amp;Acirc;d&amp;amp;yacute; n&amp;amp;aacute;zor a pomoc v rie&amp;amp;scaron;en&amp;amp;iacute; probl&amp;amp;eacute;mu ktor&amp;amp;yacute; tr&amp;amp;aacute;pi ur?ite nielen m?a ale mnoho ?al&amp;amp;scaron;&amp;amp;iacute;ch Ko&amp;amp;scaron;ia?anov. V?aka. </description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=810</feedburner:origLink>
</item>
<item rdf:about="http://www.codegravity.com/index.php?option=com_content&amp;id=809">
<title>MathGuard anti-spam patch for Joomla's Akocomment  component - Some time ago I started using  ...</title>
<link>http://www.codegravity.com/index.php?option=com_content&amp;id=809</link>
<description>Some time ago I started using the &amp;amp;quot;AkoComment tweaked&amp;amp;quot; component with my joomla instalation. Even though it is protected with the captcha image that you have to enter everytime before you submit the form, some spambots somehow broke this protection and kept flooding my comments. This was the reason why, I decided to replace the default captcha mechanism with my own PHP MathGuard Class. Here is a short overview how to apply my patch.&amp;amp;nbsp;</description>
<feedburner:origLink>http://www.codegravity.com/index.php?option=com_content&amp;id=809</feedburner:origLink>
</item>
</rdf:RDF>
