<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Ahmed Hashim&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/" />
<modified>2008-04-20T16:10:58Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, ahashim</copyright>
<entry>
<title>Book Review: High performance web sites</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/04/book_review_hig_1.html" />
<modified>2008-04-20T16:10:58Z</modified>
<issued>2008-04-20T16:10:48Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9574</id>
<created>2008-04-20T16:10:48Z</created>
<summary type="text/plain"> High Performance Web Sites by Steve Souders is one of the most important books front end engineers should read to be able to develop a proper web sites. In 14 chapter, you will know 14 of the best tips...</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Web Applications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<table>
<tr>
<td>
High Performance Web Sites by Steve Souders is one of the most important books front end engineers should read to be able to develop a proper web sites. In 14 chapter, you will know 14 of the best tips to enhance the performance of your website. The good thing in this book, it is quick read and specific, the author gives example by numbers and statistics about the top 10 websites on the internet. In each tip Steve tells the effect of applying this tip on the top 10 websites.
</td>
<td><a href="http://www.oreilly.com/catalog/9780596529307/" target="_blank"><img src="http://www.oreilly.com/catalog/covers/9780596529307_thumb.gif"/></a></td>
</tr></table>

<p>In this book, you will learn some great tips in web development like (Minimizing the number of Http Requests sent to the server, improve the caching in your site, compressing the content to save time and resources, best location for scripts and styles and other interesting tips) </p>

<p><br />
I highly recommend any engineer working in the front end tier to read this book and apply the tips inside on the web pages.</p>

<p>Ahmed Hashim, <a href="http://www.egjug.org" target="_blank">EGJUG </a>Leader, Software Engineer, <a href="http://www.etisalat.com.eg" target="_blank">Etisalat</a>.</p>]]>

</content>
</entry>
<entry>
<title>Helwan JUG sessions</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/04/helwan_jug_sess.html" />
<modified>2008-04-16T12:21:38Z</modified>
<issued>2008-04-16T12:21:23Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9547</id>
<created>2008-04-16T12:21:23Z</created>
<summary type="text/plain">Yesterday, I did a couple of presentations about Java platform and Open Source for HelwanJUG, Faculty of Computers and Information at Helwan University. download the sessions Java Platform Open Source Software...</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>Yesterday, I did a couple of presentations about Java platform and Open Source for HelwanJUG, Faculty of Computers and Information at Helwan University. download the sessions </p>

<p><a href="http://weblogs.java.net/blog/ahashim/archive/WhatsJava3.pdf">Java Platform</a></p>

<p><br />
<a href="http://weblogs.java.net/blog/ahashim/archive/OSSHelwan.pdf">Open Source Software</a><br />
</p>]]>

</content>
</entry>
<entry>
<title>EGJUG Meeting: Faculty of Science, Ain Shams University</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/04/egjug_meeting_f.html" />
<modified>2008-04-13T10:14:49Z</modified>
<issued>2008-04-13T10:14:34Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9524</id>
<created>2008-04-13T10:14:34Z</created>
<summary type="text/plain">Yesterday I made a presentation about Java platforms, it was an introductory session for students and graduates in Faculty of Science AinShams University. It is the same session I did last week with some additions like Security, Connection Management, Scalability...</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[Yesterday I made a presentation about Java platforms, it was an introductory session for students and graduates in Faculty of Science AinShams University. It is the same session I did last week with some additions like Security, Connection Management, Scalability and Messaging. <a href="http://weblogs.java.net/blog/ahashim/archive/WhatsJava2.pdf">Download file</a>
]]>

</content>
</entry>
<entry>
<title>Introduction to Java Programming language Presentation</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/04/introduction_to.html" />
<modified>2008-04-10T08:52:33Z</modified>
<issued>2008-04-10T08:51:38Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9496</id>
<created>2008-04-10T08:51:38Z</created>
<summary type="text/plain">As a part from the EGJUG activities; being a Java Champion, I am visiting universities where students don&apos;t know about Java and make an introductory level presentation to show them the cool things in Java. </summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[Today, I have visited Faculty of Engineering at Shubra "Banha University" and made a presentation in the IEEE event. The session was about "What is Java platforms?!". It is a basic introduction about Java for the students, less than 10 students using Java there !!


<a href="http://weblogs.java.net/blog/ahashim/archive/WhatsJava.pdf">Download file</a>

]]>

</content>
</entry>
<entry>
<title>Microsoft is Golden sponsor for the Java Developer Conference in Egypt</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/02/microsoft_is_go_1.html" />
<modified>2008-02-28T08:24:23Z</modified>
<issued>2008-02-28T08:24:15Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9232</id>
<created>2008-02-28T08:24:15Z</created>
<summary type="text/plain">Egyptian Java User Group is organizing the 2nd annual technical day, Microsoft will be the Golden sponsor in the event.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>Microsoft? Yes, Microsoft will be a Golden sponsor in the Java Developer Conference which organized by the Egyptian Java User Group. </p>

<p>Why? Because Microsoft has something to show to the Java developers and Open Source fans. Integrating the Java platform with .net platform is a serious topic which Java Developers should be aware with. Also it will be interesting for .net developers. Microsoft joined the Open Source echosystem through the <a href="http://port25.technet.com/">port25 </a>portal and <a href="http://www.codeplex.com/">CodePlex</a>. It is a great initiative in Egypt came through the JDC Team and Microsoft :-).</p>

<p>Why other Java related companies & vendors didn't sponsor? Because they don't have local office in Egypt which can do marketing staff, or because they don't care about the Java and Java Technology.</p>

<p>Why Sun Microsystems didn't sponsor? Well, Sun always supporting us, Sun is supporting us in this event with the speakers. The support we got from Sun is more than the usual sponsorship.</p>

<p>What about Oracle, they have a big office in Smart Village, and marketing office in Helioplis? I don't know .. </p>

<p>IBM, I hope we can arrange it well with them next year. For this year, we got a speaker from IBM.</p>

<p>Some telecome companies sponsor all events in Egypt, why they didn't sponsor JDC? We don't have soccer player to speak in this event. we don't have a music to play or hot videos to show.. except the <a href="https://jugs.dev.java.net/juggy/">juggy</a> ;). BUT <a href="http://www.etisalat.com.eg">Etisalat </a>will do, because they have different vision and objectives.</p>

<p>There are 10's of local companies, big names .. if you are working in a big company and you can't see it in our sponsors list, please talk to your (HR, Marketing, Technology) department. </p>]]>

</content>
</entry>
<entry>
<title>Ahmed Hashim has been nominated to be a Java Champions</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/02/ahmed_hashim_ha.html" />
<modified>2008-03-23T12:17:06Z</modified>
<issued>2008-02-08T00:42:19Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.9152</id>
<created>2008-02-08T00:42:19Z</created>
<summary type="text/plain">Ahmed Hashim has been nominated to be a Java Champion at December 2007. He is the first Java Champion in Egypt and MENA.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>I would like to announce that I have been nominated by Sun Microsystems and Sun Java Champions Community to be a Sun Java Champion.<br />
<a href="https://java-champions.dev.java.net/#newchampions"><br />
https://java-champions.dev.java.net/#newchampions</a></p>

<p>It is my honor to be the first Java Champion in Egypt and the MENA!</p>

<p>This nomination will recharge my power to continue working for the community. </p>

<p>I am sure that Egypt is full of champions, I am calling them to show up.</p>

<p>Thanks for Aaron Houston, Roman Strobl,Bruno Bossola and Michael Huettermann.</p>

<p><br />
My plan for this year as a Java Champion:-<br />
1- More technical Presentation about Java technologies<br />
2- Spread Java knowledge in universities which don't have any experience with Java (Menofia, Zagazig, Mansoura, Ainshams) as a start.<br />
3- More support for the JUG<br />
4- More open source contribution</p>]]>

</content>
</entry>
<entry>
<title>How popular is Java compared to .Net in Egypt?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/01/how_popular_is.html" />
<modified>2008-01-19T22:08:21Z</modified>
<issued>2008-01-19T22:08:10Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.8981</id>
<created>2008-01-19T22:08:10Z</created>
<summary type="text/plain">Geertjan Wielenga asked me this question while the interview published on JavaLobby 2 weeks ago. I will write in more details my opinion about the Java popularity in Egypt.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[How Java is popular in Egypt?

In my <a href="http://www.javalobby.org/forums/thread.jspa?messageID=92221224&#92221224">interview with Geertjan Wielenga</a>, he asked me this question, I think Java popularity is around 25% in Egypt. Some friends asked me verbally about the reason behind my opinion. 

<strong>.net platform is very popular because of</strong>
<ol>
<li>.net is popular in universities, very easy to learn and TA's can easily work through it. In some egypian universities, you will not find any student know Java. I did a presentation in one of those universities , check <a href="http://www.egjug.org/node/824">this event</a> and see the comments of the students. Another guy telling that his university student also don't know yet about Java. 
</li>

<li>The number of graduation projects being developed by .net is more than those developed by Java, because .net is easy to startup and can make a showy project in less time than other. As a result, guys who developed a graduation project with .net will target .net developer vacancies after graduation.
</li>

<li>Microsoft supports the universities and provide them with a training material and free license for the software. Sometimes they offer a free training program for all students. 
</li>

<li>Every year, Microsoft make a celebration for honoring the students who have used .net in their graduation projects.</li>

<li>The training programs we have by the government focus on .net technologies.</li>

<li>Microsoft has an active office in Cairo with 100's of partners. They are doing good marketing for their products.</li>

<li>In the companies I know, the .net team usually bigger than the Java team.</li>

<li>Microsoft pays attention to the Egyptian market & Middle East, unlike Sun, IBM, Oracle and other Java vendors.</li>

<li>Companies can easily find .net developers with differnt skills & experience, while Java developers are not easy to find and hire, speacially the senir guys.</li>
</ol>
On the other hand, it seems that the Java community more active than others, check <a href="http://www.google.com/trends?q=C%23+%7C+csharp+%7C+%28c+sharp%29+%7C+%28c+%23%29%2C+VB+%7C+vb.net+%7C+%28visual+basic%29%2C+Java%2C+PHP%2C+RoR&ctab=0&geo=EG&date=all&sort=0">Google Trends </a> you will see that the search on Google about Java is more than other technologies like (C#, VB, RoR, PHP) allover the year.

<img src="http://weblogs.java.net/blog/ahashim/archive/java_pop.PNG" width=597 height=345/>

Also the Java news reader are more than PHP, while .net doesn't exists! this what I noticed withing the .net developers in Egypt, almost all of them don't read blogs or articles .. the main source of knowldge is MSDN! ]]>

</content>
</entry>
<entry>
<title>How to make a Successful Java User Group</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/01/how_to_make_a_s.html" />
<modified>2008-01-04T17:31:37Z</modified>
<issued>2008-01-04T17:27:43Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.8923</id>
<created>2008-01-04T17:27:43Z</created>
<summary type="text/plain">After discussing with JUG-Leaders all over the world Ahmed Hashim of Egyptian Java Users Group suggests points on how to make a successful Java User Group. If you have an inactive user group, or when you are going to establish a new user group, check out these tips.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<table>
<tr>
<td>Mmm, you can ask this question if you have an inactive user group, or when you are going to establish a new user group. How to make a successful Java User Group?
After discussing with <a title="JUG" href="http://community.java.net/jugs/">JUG-Leaders</a> allover the world, and with the support & idea of Aaron Houston, the Sun JUG program coordinator we reached the keys of the success of every java user group. Now I will try to conclude them in points and add my points inside.</td>
<td><img width="90" alt="Juggy logo" src="https://jugs.dev.java.net/juggy/JavaSparrow-med.jpg" /></td>
</tr>
</table>
<ol>
        <li>Ask all members to tell their friends & collegues about your the community.</li>
        <li>Find a university to sponsor meeting place, else find local IT company. Then invite the university student or company employees to join your JUG.</li>
        <li>If there is a Sun Local office there and you have a contact person, let them know about your JUG.</li>
        <li>Make a regural meeting and consider having a senior programmers in your community to make presentations.</li>
        <li>You can use the presentation which Sun evengelists are giving in the Sun Tech Days program:         -http://developers.sun.com/events/techdays/self_paced_labs.jsp      -http://developers.sun.com/events/techdays/past_presentations.jsp       -http://developers.sun.com/events/techdays/presentations/2006_ZA_JNB.jsp</li>
        <li>Consider inviting local headhunter or employment recruiting firms to your meetings. Some JUGs let the recruiter pass out their cards for a small donation to the JUG...say $25 - $50 to support refreshments. Some JUGs have been successful in doing this while not allowing the recruitor to disrupt their meetings with high pressure sales pitches about their placement firm.</li>
        <li>When your JUG membership reaches 50 or so members, contact Sun Technology Outreach. Get on Java.net mailing list; and, they will send you some T-shirts, CDs-software, or Java Brand novelties to raffle off...support your local JUG.</li>
        <li>Post your meeting and events in the java.net JUGs Community page. (Keeps Sun and potential speakers aware of your JUG events, just in case we have an engineer or evangelist in the area or traveling to that area)</li>
        <li>Contact your local Universities, particularly the instructors of any Java or OO classes. Offer tutoring help to students who become members. Getting someone to post on the Technology area public boards helps.</li>
        <li>You can contact Publishers of Java books, some will send you books to pass out during meetings. It helps if you can setup a page to publish Book Reviews. (I make it a requirement to receive a book difficult to enforce but...)</li>
        <li>Avoid politics between sponsores and head hunting firms.Try to stay neutral.Even though you will see that eventually certain companies will support the JUG constantly.Try to give equal opportunities to all the sponsores, if you have a lots of offers.</li>
        <li>Try to make good enough events, have experience developers presenting, try to find interesting topics, make polls before the events - tech days asking people about topics . Make a call for presenteres among the JUG members</li>
        <li>Try to make some kind of service in order to inform the JUG members for Job vacancies.</li>
        <li>A good site always helps. An easy and flexible CMS system (lots of them in PHP, or Java as well) can make your JUG site more interesting.</li>
        <li>Be online. Answer emails fast, use IMs. People will never ask you again unless you provide them with fast and positive result.</li>
        <li>Keep the core leader team of the JUG small. The team needs to be highly motivated and passionate about Java and the JUG. It happens to be more or less 2-4 people.Eventually decisions need to be taken quickly so its going to be a matter of one person sometimes...that is normal. You can see that probably lots of people will get interested in participated or helping though not all of them remain loyal to the core intiative of the JUG.</li>
</ol> 

There is an update for this post, available on Java.net, <a href="https://java-champions.dev.java.net/content/How_To_Make_a_Successful_Java_User_Group.html">check it</a>.]]>

</content>
</entry>
<entry>
<title>Interview with JavaLobby</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/01/interview_with.html" />
<modified>2008-01-04T08:55:40Z</modified>
<issued>2008-01-04T08:54:29Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.8921</id>
<created>2008-01-04T08:54:29Z</created>
<summary type="text/plain">Last week, I had an interview with Geertjan Wielenga, an author at JavaLobby (also Netbeans Engineer ), it was about JUG in Egypt and our upcoming event.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>Last week, I had an interview with Geertjan Wielenga, an author at JavaLobby (also Netbeans Engineer ), it was about JUG in Egypt and our upcoming event.</p>

<p>It was a very interesting meeting, Geertjan can speak Arabic BTW:-)</p>

<p>The interview is available on <a href="http://www.javalobby.org/java/forums/t105160.html">JavaLobby website</a><br />
</p>]]>

</content>
</entry>
<entry>
<title>JavaPolis, the event which I can&apos;t attend</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2008/01/javapolis_the_e.html" />
<modified>2008-01-02T11:26:57Z</modified>
<issued>2008-01-02T11:26:49Z</issued>
<id>tag:weblogs.java.net,2008:/blog/ahashim/371.8910</id>
<created>2008-01-02T11:26:49Z</created>
<summary type="text/plain">I tried twice to attend JavaPolis but I have a major show stopper, I can&apos;t get Visa from Egypt to Belgium. </summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>I tried twice to attend JavaPolis but I have a major show stopper, I can't get Visa from Egypt to Belgium. I am not the only case, a sporting club in Egypt lost an opportunity to join a champion in Belgium because of the Visa. Simply the Belgium Embassy in Cairo rejects 95% of the visa applications without any justification. </p>

<p>In <a href="http://news.filbalad.com/News.asp?NewsID=22921">this article</a>, they mentioned the case of the "Shotting club" which they lost this champion, the Perelman will investigate in this case to know the reason of this behavior from Belgium Embassy.</p>

<p>I am sure that this will effect the business relations between Egypt and Beljium, the first reaction from the sporting clubs is to terminate the contracts between them and any Belgian company.</p>

<p>About myself, I will not try to attend JavaPolis until it is easy to get Visa.</p>]]>

</content>
</entry>
<entry>
<title>JDC 2008 Call for sponsors</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2007/12/jdc_2008_call_f.html" />
<modified>2007-12-24T15:19:01Z</modified>
<issued>2007-12-24T15:18:06Z</issued>
<id>tag:weblogs.java.net,2007:/blog/ahashim/371.8894</id>
<created>2007-12-24T15:18:06Z</created>
<summary type="text/plain">EGJUG is preparing for JDC 2008, looking for sponsors...</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Community: Java User Groups</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>JDC 2008 will take place at 15 March 2008 @ Intercontinental CityStars.</p>

<p>We are looking for sponsors for our event. If your company can sponsor our event, contact me off list and will give you all information about the sponsorship.</p>

<p>In JDC2008, we have a lot of interesting topics to introduce like</p>

<p>    * Rich Internet application development using Java Server Faces and AJAX<br />
    * Service Oriented Architecture<br />
    * Business Process Management & Business Rules<br />
    * Open Enterprise Java Bean 3.0, a light weight implementation<br />
    * Spring2.5, The de-facto Java EE application platform.<br />
    * Aspect Oriented Programming<br />
    * Developing Rich clients using JavaFX</p>

<p>Our speakers:-</p>

<p>    * Ed Burns (Sun Microsystems, co-specs lead for JSF)<br />
    * Chuck Mun-Lee (Sun Microsystems Evangelist)<br />
    * Alef Arndsen (SpringSource's Principal Consultants)<br />
    * Hossam Kareem (ITWorx  Technical Architect)<br />
    *<br />
      Mohamed Nour El-Din (Apache OpenEJB committer)<br />
    * Ahmed Hashim (EGJUG Leader)</p>]]>

</content>
</entry>
<entry>
<title>The Programmer Dress Code</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2007/12/the_programmer.html" />
<modified>2007-12-14T16:24:35Z</modified>
<issued>2007-12-14T16:24:21Z</issued>
<id>tag:weblogs.java.net,2007:/blog/ahashim/371.8835</id>
<created>2007-12-14T16:24:21Z</created>
<summary type="text/plain">Some companies sticked to a specific dress code for employees, even developers! 
I believe that developers can&apos;t have a standard dress code, developers are crazy, unorganized people :)

but it seems that geeks share a common dress code (long hair and a beard)</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p>Some companies sticked to a specific dress code for employees, even developers! <br />
I believe that developers can't have a standard dress code, developers are crazy, unorganized people :)</p>

<p>but it seems that geeks share a common dress code (long hair and a beard)</p>

<p>In this <a href="http://www.codethinked.com/post/2007/12/The-Programmer-Dress-Code.aspx">post </a>you will see how the geeks look like. The <a href="http://www.codethinked.com/post/2007/12/The-Programmer-Dress-Code---Part-Deux.aspx">2nd part</a> also is very interesting. </p>

<p>It seems that it is funny while reading about those geeks, but one important thing to remember, we owe them favors!</p>]]>

</content>
</entry>
<entry>
<title>Open Source Software session</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2007/07/open_source_sof.html" />
<modified>2007-07-12T07:48:58Z</modified>
<issued>2007-07-12T07:48:53Z</issued>
<id>tag:weblogs.java.net,2007:/blog/ahashim/371.7841</id>
<created>2007-07-12T07:48:53Z</created>
<summary type="text/plain">I presented in IEEE job fair in faculty of computer science Helwan university about Open Source Software.</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Open Source</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[I presented in IEEE job fair in faculty of computer science Helwan university about Open Source Software.

It was very nice day and I saw a lot of great graduation projects in GIS, Virtual reality, Neural networks, Telecom & Networking using different technologies Java, c++, .net, matlab, Linux ..etc

You can download the OSS presentation <a href="http://weblogs.java.net/blog/ahashim/archive/Open_source_Ahmed_Hashim.pdf">Download file</a>
]]>

</content>
</entry>
<entry>
<title>Tips to save client&apos;s bandwidth</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2007/03/tips_to_save_cl.html" />
<modified>2007-04-17T11:02:45Z</modified>
<issued>2007-03-21T15:08:08Z</issued>
<id>tag:weblogs.java.net,2007:/blog/ahashim/371.6875</id>
<created>2007-03-21T15:08:08Z</created>
<summary type="text/plain">In this post, I will write about the client/server bandwidth saving. In some countries, the cost of the Internet is based on the bandwidth consumption, you pay for the number of MB&apos;s you have used as traffic, so, if there is a website which contains pages with large size, you will consume the client bandwidth!</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>
<dc:subject>Web Applications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p><a href="http://egjug.org/hashimblog/2007/03/20/tips-to-save-clients-bandwidth/">http://egjug.org/hashimblog/2007/03/20/tips-to-save-clients-bandwidth/</a></p>

<p>In this post, I will write about the client/server bandwidth saving. In some countries, the cost of the Internet is based on the bandwidth consumption, you pay for the number of <span id="misp_compose_2" class="hm">MB's</span> you have used as traffic, so, if there is a website which contains pages with large size, you will consume the client bandwidth! Also the request will take long time because of the large size of the page. People always talking about saving server bandwidth which is good, but it is important too to save the client's bandwidth.<br />
How can I save the client's bandwidth?<br />
<ol><br />
	<li> Don't use images instead of text. Write the text and use <span id="misp_compose_2" class="hm">CSS</span> and javascript to add styles and effects for the text. For example, if you want to make a link to your homepage, some people use graphics package to write the word 'Home' and add effects, background color, borders..etc. All this staff can be done by <span id="misp_compose_3" class="hm">CSS</span> and JavaScript with a great feature "you can change the text without need to use any graphics package". So, it is very important point to replace images with text as much as possible.</li><br />
	<li>Don't use background image if it is blank, else use <span id="misp_compose_4" class="hm">CSS</span> background color.</li><br />
	<li>Don't use a big image as background, try to make a small on and repeat is using <span id="misp_compose_6" class="hm">CSS</span>.</li><br />
	<li>Don't write HTML comments in your code, instead, write server side comments in <span id="misp_compose_7" class="hm">JSP</span>, <span id="misp_compose_8" class="hm">PHP</span> ...etc code.<br />
<code><br />
HTML comments &lt;!-- comments --&gt;<br />
JSP comments &lt;%--comments --%&gt;<br />
<code>&lt;?php<br />
//comments<br />
?&gt;<br />
</code></code></li><br />
	<li>Don't copy-past from any word processor. The word processor like Microsoft Word add extra not-standard code, check this bulk of code<br />
<code><br />
&lt;p class="MsoNormal" dir="ltr" style="text-align: left; unicode-bidi: embed"&gt;&lt;span style="font-size: 10pt; color: black"&gt;Test<br />
the Microsoft Words HTML code!&lt;/span&gt;&lt;span dir="rtl" lang="AR-SA"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;</code>I want just to write a statement "Test the Microsoft Words HTML code!" without any styles but the word add intelligent code :)</li><br />
	<li>Don't make inline CSS, move it to a file. Don't repeat the styles and reuse those in the common CSS. For example, you will repeat the same style for every item in a list like that<br />
<code><br />
&lt;ul&gt;<br />
&lt;li style="color:#fffaaa;font-size:20;"&gt;1&lt;/li&gt;<br />
&lt;li style="color:#fffaaa;font-size:20;"&gt;2&lt;/li&gt;<br />
&lt;li style="color:#fffaaa;font-size:20;"&gt;3&lt;/li&gt;<br />
&lt;li style="color:#fffaaa;font-size:20;"&gt;4&lt;/li&gt;<br />
&lt;/ul&gt;<br />
</code>While you can make<br />
<code><br />
.listItemStyle<br />
{<br />
color:#fffaaa;<br />
font-size:20;<br />
}</code><br />
and the list will be<br />
<code><br />
&lt;ul&gt;<br />
&lt;li class="listItemStyle"&gt;1&lt;/li&gt;<br />
&lt;li class="listItemStyle"&gt;2&lt;/li&gt;<br />
&lt;li class="listItemStyle"&gt;3&lt;/li&gt;<br />
&lt;li class="listItemStyle"&gt;4&lt;/li&gt;<br />
&lt;/ul&gt;<br />
</code><br />
This will keep your code clean and easy to use. The code will be reusable and easy to maintain.</li><br />
	<li>Don't make inline Javascript, move it to a file. This will promote reusability and maintainability.</li><br />
	<li>Use client side validatoin with JavaScript before submitting the data to the server. So, if there is an error in the data, you will not submit and back again.</li><br />
	<li>Use AJAX to send partial requests to the server. For example, if you have 2 <span id="misp_compose_8" class="hm">dropdown</span>, one for the country and another for the city and want to load the cities of the countries choose by the user, no need to submit the complete form, just send request with the country and use the returned data from the server to update the DOM of the page.</li><br />
	<li>Use JavaScript and <span id="misp_compose_9" class="hm">CSS</span> compressor to compress the javascript and <span id="misp_compose_11" class="hm">css</span> files, it will be sent to the client, so try to minimize the size as much as possible.<br />
The <a href="http://www.cssdrive.com/index.php/main/csscompressor/" title="css compressor" target="_blank"><span id="misp_compose_12" class="hm">CSS</span> compressor</a>  can reduce the size of the <span id="misp_compose_14" class="hm">CSS</span> files. You can use the <a href="http://dojotoolkit.org/docs/compressor_system.html" title="dojo compressor" target="_blank"><span id="misp_compose_15" class="hm">DOJO</span> compressor</a> or any other <a href="http://javascriptcompressor.com/" title="Javascript compressor" target="_blank">javascript compressor</a>.</li><br />
	<li>Use valid XHTML code to make sure that your code is correct.</li><br />
	<br />
	<li> Use compression in the webserver/application server used in your application, this will compress the request/response and will save both client and servers's bandwidth. This may have a performance impact. An example for tomcat configuration:<br />
<code><br />
&lt;Connector port="8080" maxHttpHeaderSize="8192"<br />
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />
enableLookups="false" redirectPort="8443" acceptCount="100"<br />
connectionTimeout="20000" disableUploadTimeout="true"<br />
compression="no"<br />
/&gt;<br />
</code><br />
You will need to add to this four attributes:<br />
compression="force"<br />
compressionMinSize="2048"<br />
noCompressionUserAgents="gozilla, traviata"<br />
compressableMimeType="text/html,text/xml"<br />
Notice that there is a list of compressible MIME types. Basically:<br />
* compression="no" means nothing gets compressed.<br />
* compression="yes" means only the compressible MIME types get compressed.<br />
* compression="force" means everything gets compressed (assuming the client accepts gzip and the response is bigger than compressionMinSize)You can test your application compression http://www.port80software.com/products/httpzip/compresscheck</li><br />
	<li> Use the ZipOutputStream as a resonse output stream if you will return to the user a big plain text file. This will compress the file on the server and send it, the client's browser will extract it.<br />
<code><br />
String encoding = request.getHeader("Accept-Encoding");<br />
OutputStream out = null;<br />
if (encoding != null &amp;&amp; encoding.indexOf("gzip") != -1) {<br />
response.setHeader("Content-Encoding", "gzip");<br />
out = new GZIPOutputStream(response.getOutputStream());<br />
}<br />
else if (encoding != null &amp;&amp; encoding.indexOf("compress") != -1) {<br />
response.setHeader("Content-Encoding", "compress");<br />
out = new ZipOutputStream(response.getOutputStream());<br />
}<br />
else if (encoding != null &amp;&amp; encoding.indexOf("deflate") != -1) {<br />
response.setHeader("Content-Encoding", "deflate");<br />
out = new DeflaterOutputStream(response.getOutputStream(), new Deflater(<br />
Deflater.BEST_COMPRESSION, false));<br />
}<br />
else {<br />
out = response.getOutputStream();<br />
}<br />
out.write(".....");<br />
</code></li><br />
	<li>Optimize your resources (images, flash).</li><br />
<li><br />
Another great tip from the comments below, use the Cache-control headers to cache the static resources on the client side for a specific duration. A perfect example is <a href="http://www.onjava.com/pub/a/onjava/2004/03/03/filters.html">there<br />
</a> OnJava.</li><br />
</ol><br />
This will result in save the client/server bandwidth and develop more fast web application.<br />
<h4>References:</h4><br />
<a href="http://www.cssdrive.com/index.php/main/csscompressor/" target="_blank">http://www.cssdrive.com/index.php/main/csscompressor/ </a><br />
<a href="http://dojotoolkit.org/docs/compressor_system.html" target="_blank"> http://dojotoolkit.org/docs/compressor_system.html</a><br />
<a href="http://javascriptcompressor.com/" target="_blank"> http://javascriptcompressor.com/</a><br />
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/ZipOutputStream.html" target="_blank"> http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/ZipOutputStream.html</a><br />
<a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html" target="_blank"> http://httpd.apache.org/docs/2.0/mod/mod_deflate.html</a><br />
<a href="http://www.codinghorror.com/blog/archives/000059.html" target="_blank"> http://www.codinghorror.com/blog/archives/000059.html</a><br />
<a href="http://tomcat.apache.org/tomcat-5.5-doc/config/http.html" target="_blank"> http://tomcat.apache.org/tomcat-5.5-doc/config/http.html</a><br />
<a href="http://fmarcia.info/jsmin/test.html" target="_blank"> http://fmarcia.info/jsmin/test.html</a> </p>]]>

</content>
</entry>
<entry>
<title></title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/ahashim/archive/2007/03/httpegjugorghas.html" />
<modified>2007-03-12T17:48:35Z</modified>
<issued>2007-03-12T17:48:27Z</issued>
<id>tag:weblogs.java.net,2007:/blog/ahashim/371.6793</id>
<created>2007-03-12T17:48:27Z</created>
<summary type="text/plain">http://egjug.org/hashimblog/2007/01/03/dwr-hello-world/ Hi, After making few samples with DWR framework, I think it is a very good, powerful and easy to use AJAX framework. I am using it mainly to perform File Upload with progress bar, taking into consideration to be...</summary>
<author>
<name>ahashim</name>

<email>hashim@egjug.org</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/ahashim/">
<![CDATA[<p><a href="http://egjug.org/hashimblog/2007/01/03/dwr-hello-world/"><strong>http://egjug.org/hashimblog/2007/01/03/dwr-hello-world/</strong></a></p>

<p><br />
<table><br />
<tr><br />
<td>Hi, After making few samples with DWR framework, I think it is a very good, powerful and easy to use AJAX framework. I am using it mainly to perform File Upload with progress bar, taking into consideration to be working in all browsers like IE5.5, Netscape, Firefox, Mozilla, Opera, Safari and other browsers in MAC and Linux.</td><br />
<td><img src="http://getahead.ltd.uk/images/dwr-logo.png" alt="DWR logo" /></td><br />
</tr><br />
</table><br />
I made a simple chat application with DWR and I liked the simplicity of this framework, will present now how to make Hello World and may continue in the future blogging about DWR.</p>

<p>1- <strong>Whats is DWR?</strong> DWR (Direct Web Remoting) is a  Java/JavaScript OpenSource library which allow you to write AJAX enable application with Java without the need to use XMLHTTPRequest and other low-level javascript staff.</p>

<p>2- <strong>Why DWR is different?</strong> You can invoke Java Bean's method directly from within JavaScript block! No XMLHTTPRequest, No Servlet, You can Recerse AJAX!!! which means calling JavaScript Methods from Java Code!</p>

<p>3- <strong>How DWR will handle this staff?</strong> The DWR library will create a servlet for you to handle this staff, but you will have to declare your Java classes in dwr.xml file.</p>

<p>4- How to?<br />
<ul><br />
	<li>Get <a href="http://getahead.ltd.uk/dwr/download" title="Download DWR" target="_blank">DWR </a>jar file</li><br />
	<li>Create Java Class</li><br />
</ul><br />
<img src="http://egjug.org/hashimblog/wp-content/uploads/2007/01/dwr-hellloworldclass.JPG" /><br />
<ul><br />
	<li>Create dwr.xml file and add definition to this class</li><br />
</ul><br />
<img src="http://egjug.org/hashimblog/wp-content/uploads/2007/01/dwr-dwrxml.JPG" /><br />
<ul><br />
	<li>Configure web.xml to add DWRServlet</li><br />
</ul><br />
<img src="http://egjug.org/hashimblog/wp-content/uploads/2007/01/dwr-webxml.JPG" /><br />
<ul><br />
	<li>Create JSP page with HTML controls</li><br />
</ul><br />
<img src="http://egjug.org/hashimblog/wp-content/uploads/2007/01/dwr-html.JPG" /><br />
<ul><br />
	<li>Write the JavaScript part</li><br />
</ul><br />
<img src="http://egjug.org/hashimblog/wp-content/uploads/2007/01/dwr-js.JPG" /><br />
<ul><br />
	<li>Testing DWR, you can deploy your application at any servlet container and run the JSP page <a href="http://localhost:8080/DWRHelloWorld/jsp/helloWorld.jsp" title="Test DWR" target="_blank">http://localhost:8080/DWRHelloWorld/jsp/helloWorld.jsp</a> you should</li><br />
</ul><br />
As you can see in few steps you can start working with DWR and produce Rich Clients with AJAX features without writting low-level javascript.</p>

<p><a href="http://egjug.org/hashimblog/wp-content/uploads/2007/01/DWRHelloWorld.war" title="WAR File" target="_blank">The attached war file</a> include the demo source code and can be deployed in any servlet container. I hope that you can see this post useful and would like to continue in DWR posts.</p>]]>

</content>
</entry>

</feed>