<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7864604315847802409</atom:id><lastBuildDate>Fri, 30 Apr 2010 06:20:45 +0000</lastBuildDate><title>Inside JavaBlackBelt</title><description>The JavaBlackBelt team blog.</description><link>http://www.javablackbelt.com/blog/</link><managingEditor>noreply@blogger.com (Nicolas Brasseur)</managingEditor><generator>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-9108984385435221091</guid><pubDate>Fri, 27 Mar 2009 15:17:00 +0000</pubDate><atom:updated>2009-03-27T16:29:00.727+01:00</atom:updated><title>Manager's point - interview - 4</title><description>This is the interview of the managers of the first students having taken the new JavaBlackBelt coached e-learning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;John is co-founder of JavaBlackBelt.com and has 10 years experience in Java training and skills management.&lt;br /&gt;&lt;br /&gt;Philippe Varin is Managing Director of Genesis Consult, a privately held company of 60 consultants.&lt;br /&gt;&lt;br /&gt;Stephane Levaque is Sales Director.&lt;br /&gt;&lt;br /&gt;They know both the IT and consultancy business inside out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): Why did you decide to train the consultants with the JavaBlackBelt coached e-learning? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The training that we asked you to give isn't directly in line with a specific project, but rather to offer some kind of benefit to our consultants. Developers talk to each other on Facebook and social networks, and if we take good care of our developers, the news spreads fast. People who work for a consulting and services company expect trainings, to be taken care of. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;However, quality training is expensive. With traditional training, one must also account for loss of revenue, that is what Genesis cannot bill the client for. With the JavaBlackBelt coached eLearning we saved the equivalent of 6 people at a cost of 500 Euro a day for 10 days, that's 30,000 euros. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stephane: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;I knew what blended learning was, but I had never really experienced it. I'd done traditional training or elearning. But not blended learning with coaching. With your solution, the consultants learn at their own pace. That is the problem of heterogeneous groups, where the slowest and the fastest are unhappy. Here, we have the core which teaches the basics, then each student can continue at his pace, depending on his skills and availabilities. It's as motivating for the highly skilled developers as for the others. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): And were you surprised with the formula? &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Yes, there was a result-driven objective, which we have already taken advantage of. For example, we were able to answer a client's proposal for a mission, thanks to the skills that Fred acquired during training. If he hadn't done the training, I wouldn't have replied to the offer! &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The best aspect of the formula, is that we set a time limit on the trainings that are given here. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Stéphane:&lt;/span&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;I am positively surprised, because I didn't think that the developers would manage to finish the course and pass the exam in the given time frame. In two months, we finished the whole training cycle that we had initially planned. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): How did the consultants give you their feedback? &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;We see the consultants once a month. I will have a very tangible feedback. I saw nearly all of them this month. I think that by the end of the month, I will have received an email from everyone with some feedback. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;They are all delighted. Some were faster than others, some are more tenacious than others, it's normal. For some it was like going through an obstacle course. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB):  Are the integrated exams important? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Yes, very important because consultants like to get a diploma and it brings added value. When they pass with 95%, they are proud, it allows them to know where they stand. Thanks to the exams, consultants were more driven. It's not only the final objective that is important, but also the journey.&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Also, the first thing a consulting firm sells, is the resume, it's the first thing that appears. Success on an exam brings added value to the resume &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;There's the gratifying aspect, but also the fact that we can situate them. There is a purpose, it's not only learning for the sake of learning. Otherwise, the consultant does a course and doesn't have the need for it immediately and he forgets it. Here they have a final objective, a reward. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Tuan, for example when he passed with 92%, everyone knew about it and he was very proud. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): How do you perceive the coach's role in this training? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The coach is very important because he is the consultant's guide, when he can't finish an exercise, he can help and the consultant can ask questions without feeling embarrassed. Some of the consultants don't dare to raise their hand or ask a question during a traditional class. During individual coaching, the student will make progress much faster. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;There's the motivation aspect as well, the coach encourages the consultant to reach the final goal which is to pass the exam. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;In regard to Genesis, it is in the coach's interest to liaise between the consultant and management. It's an interesting triangular relationship. Everybody has his own interests which, in the end aim to add value to the consultant and the company. The coach will inform the company's management of the students' progress. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;For a company such as our own, I can delegate some of the follow-up of the people who are coached and trained. Big companies have a training department. But small ones don't have the time or the know-how (often neither do big companies). JavaBlackBelt sells the training outsourcing for the company. The next step would be to ask JavaBlackBelt to write up a yearly customized training plan for each consultant. some consultants would have 5 certifications at the end of the year, others only one. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;JBB: How do you measure the success of a training? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Philippe:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Objectively and subjectively &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Objectively: on the basis of the technical level attained. The exam is the first snapshot. Then there is the interview: the JavaBlackBelt training allows us to send our consultants to more interviews! In the end, it's the work accomplished at our client's one year later: that's the real added value. What will the feedback be in a real situation? It's specific to any training, not only in IT. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The subjective aspect: What are the consultant's feelings about this training. How did he perceive it, not only the logistics (JavaBlackBelt monitoring during the training period), what he thought of the contents, and the difficulty level of the exam questions. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;JBB: To what extent can a training change a consultant's confidence when going to an interview for a project? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Stéphane: &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;At first glance, if you go on a training, you feel more confident on the subject. Someone like Fred needed a refresher, and this refresher came at the right time. It's a question for the consultants. Some consultants say they know the subject and that they don't need the course. They say no thank you. I was surprised, but there are. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): What is the financial impact? &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane:&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;The real question is: for an investment of X what is the impact in the sales cycle. &lt;/p&gt; &lt;ol&gt;&lt;li&gt;We better the resume. The client sees that he did a Spring/Hibernate training, he wants to meet him. &lt;/li&gt;&lt;li&gt;During the interview, he can then evaluate the skills. &lt;/li&gt;&lt;li&gt;As he knows Spring and Hibernate, we can increase the price. &lt;/li&gt;&lt;/ol&gt;   &lt;p style="margin-bottom: 0cm;"&gt;The financial impact is that he must be easier to sell and at a higher rate. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The number of missions that we can offer our consultants increases or the rate increases. The rate can be +20 Euro / day. As for the number of projects: it's nearly impossible to measure, but maybe 20% more missions. I first try to match skills, that way, the client knows I am not just sending anybody and the trust grows stronger on the long term. During a sale, sometimes we might say we are increasing the price because  we spent money training the person. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;The equation is interesting, not only the financial aspect but also the human aspect. The marketing aspect exists at the time of hiring and also at the time of sale: people know if we are able to offer our people training. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;Beyond the trust, there is also the certification aspect. Some clients require certified consultants, be it Microsoft or others. It has a value for certain clients. I ask myself what value a JBB certification has: purely commercial beyond a community aspect. I don't have the answer. I'll probably get clients who couldn't care less and others who will see it as a bonus. You must put forward what is recognized by clients and the community. Some consulting firms invest a lot in certifications. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): What is the financial upgrade of a well-known certification such as Sun or Microsoft? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;There are 2 aspects: 1 "must have" or 2 "nice to have" &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;1. It is required by the client, for example Prince2 for project leaders. It's the "project charter". In Java we don't have this demand for certification. In terms of financial impact, the price is already at level, the client who wants a certified consultant is prepared to pay the price, which is certainly 10% more. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;2. There is a selection by certification: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;A client such as SNCB (Belgian rails) who are looking for a Java developer get 50 resumes in 3 days. So they use an objective criteria to weed out, such as a certification, to avoid getting 50 more resumes (100 pages). Usually, it's the project leader who sets this criteria, because he has other things to do. What other clients do is shorten the response time (in order to receive less resumes) In the 20th century, the big eat the small and in the 21st century, the fast beat the slow (and the big aren't fast). &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): Do clients have assessment processes to weed out the candidates? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stephane:&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;At Electrabel, for example, they have very advanced .Net exams. They torture consultants who tell us that they not only have to drive the car but also have to be able to take the engine apart. Some clients push the interview very far, to know how it really works. It's difficult for a consultant who thinks he knows and comes out thinking he knows nothing. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;JBB: In the future, for your trainings at Genesis, which training type would you choose? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Stephane:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;I would choose the JBB Coached eLearning again. I speak for myself, this formula allows a great deal of flexibility for the company, the consultant and the client who doesn't feel an impact during the mission. &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;John (JBB): What are the next steps for trainings at Genesis? &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt; &lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-weight: bold;"&gt;Stéphane: &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;We must work on the short term (quarter), but also on the long term (end of year, you must know that) &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;We must analyze this internally, get feedback. We should have feedback from our people by the end of the month and see which other aspects they want to look at. We will have to do the analysis based on the JavaBlackBelt exam list. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-9108984385435221091?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/03/managers-point-interview-4.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-8433140156839067473</guid><pubDate>Wed, 18 Mar 2009 19:50:00 +0000</pubDate><atom:updated>2009-03-18T20:54:23.914+01:00</atom:updated><title>Coached e-learning student - interview - 3</title><description>This is the interview of the first three students having taken the new JavaBlackBelt coached e-learning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;John is co-founder of JavaBlackBelt.com and has 10 years experience in Java training and skills management.&lt;br /&gt;&lt;br /&gt;Véronique is a consultant with 8 years of experience including 6 years of Java experience.&lt;br /&gt;&lt;br /&gt;Véronique followed the JavaBlackBelt's JPA Fundamentals Course in January/February 2009. His employer gave her one day to do it, and the rest was done home (evenings and week-ends). John was her personal coach.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB): How do you usually learn?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Véronique:&lt;br /&gt;Usually, with ebooks from the web that I read. What I like most is downloadable code to see how it works. I'm more of a tutorial person. It's been years since I last bought a book.&lt;br /&gt;&lt;br /&gt;I did a classic 5 day EJB 2 classroom training a long time ago, with slides and an instructor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;You just finished the final exam of a Spring Core course from JavaBlackBelt. How would you compare that with your past learning experience?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The advantage with classroom training, is that you are coached from A to Z. When you're at home, you don't call for any old reason, so you do some research. I would have asked more questions if an instructor had been present. But the research you do leads to interesting discoveries. It depends on your character. It suits me to do some research, but others may need more support. For the JavaBlackBelt course, I didn't call the coach often, because I tend to find the answers by myself. I also talked to one of my colleagues who knows Hibernate well to solve a problem I had on one exercise.&lt;br /&gt;&lt;br /&gt;I really appreciated the flexibility of the JavaBlackBelt formula. As I'm working on a project, it was too much for me to do the course in a classroom over a week's time. With JBB, I spread it out. You're not overwhelmed with information, you have time to process it. The exercises were fun. We still are developers so we have to put it into practice. I didn't do the workshop.&lt;br /&gt;&lt;br /&gt;My main problem with the JavaBlackBelt training was time. I had to work from home. When you are on a client assignment, it's not easy to find time in the evening and at weekends. It's good that there was some flexibility for the exam date. The thing is to do it when you're ready. The inconvenient is to have a week between two resumptions. I worked two hours a couple of evenings per week and a bit during the weekends. No more than 2 days in total for the JPA course ( not including the whole day at her office). I could have asked my manager to get away from my assignment for a second day to do the course, but in the end it wasn't necessary.&lt;br /&gt;&lt;br /&gt;A solution where I would have stayed at my employer's office for 2 days would have had the advantage of being able to focus on the course only. That would have been a good way to do it. At home I can easily be distracted by something else, whereas at the office there are no easy distractions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Has the final exam been useful for you?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Véronique:&lt;br /&gt;The system I followed was good because there was enough flexibility for the exam date. It's important to have an exam. You need to measure your accomplishment, after a training.&lt;br /&gt;&lt;br /&gt;When I do an exam, maybe I make a mistake, but I don't forget my mistakes, I won't make that mistake twice.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How would you compare the atypical training you've had at JavaBlackBelt with learning alone with a book?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Véronique:&lt;br /&gt;It would have taken me more time because I would have had to make up the exercises. I would have studied the theory and not gotten much hands-on experience. I would have waited to start a mission which required JPA.&lt;br /&gt;Actually, I have no idea because I always had to study specific subjects. I can't compare.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And compared with a classic classroom course?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A classroom training isn't as flexible, I liked the fact that each student could work at his own pace, we didn't have to wait for the others. That suits me best. Everyone does it with his capabilities. If someone doesn't have the basics he isn't punished. In a classroom, it's very rigid, and it doesn't work if there are different levels. In a classroom I would have been frustrated not to have done all the exercises in depth.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Would you participate in another course with the same (JavaBlackBelt) methodology?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, without a doubt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-8433140156839067473?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/03/coached-e-learning-student-interview-3.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-4061229097478178519</guid><pubDate>Wed, 18 Mar 2009 19:47:00 +0000</pubDate><atom:updated>2009-03-18T20:50:31.344+01:00</atom:updated><title>Coached e-learning student - interview - 2</title><description>This is the interview of the first three students having taken the new JavaBlackBelt coached e-learning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;John is co-founder of JavaBlackBelt.com and has 10 years experience in Java training and skills management.&lt;br /&gt;&lt;br /&gt;Toan is a consultant with 7 years of Delphi experience but no experience with Java.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Toan followed the JavaBlackBelt's Spring Core course and the corresponding workshop in January/February 2009. His employer gave him two weeks to do it, while Toan was between two missions. John was his personal coach.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB): How do you usually learn?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Toan:&lt;br /&gt;I taught myself Delphi.&lt;br /&gt;At the moment, I am taking evening classes which include Java at an IT school.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;You just finished the final exam of a Spring Core course from JavaBlackBelt. How would you compare that with your past learning experience?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Toan:&lt;br /&gt;I really enjoyed working directly with pros. At school, it's purely theoretical and conceptual. For example, we are taught design patterns, but don't get to apply them. I lacked hands-on experience. At JavaBlackBelt, you work as if on a real project.&lt;br /&gt;&lt;br /&gt;I was part of a group of different levels to begin with. I had some knowledge of Java, but I had never worked on a Java project. The workshops really helped me a lot to put things into practice and I realized I was very far behind, I could see my weaknesses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How would you compare the atypical training you've had at JavaBlackBelt with learning alone with a book?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Toan:&lt;br /&gt;When you're self-taught, you don't know the best practices. With a coach (JavaBlackBelt), I can call and I get a precise answer from a pro, without any misunderstanding and when I finish the training, I'm more confident, I know how it's done.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How long would you have taken to learn the same amount of Spring, alone with a book?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Toan:&lt;br /&gt;I may have given up...For example, the book I received, I use it as a reference. But that kind of book frightens me. If I hadn't given up, it would have taken me more than double the time than with JavaBlackBelt.&lt;br /&gt;&lt;br /&gt;With JavaBlackBelt, I had to provide a result (pass the exam) to my manager. Each time there was a question, I was helped and it went faster. Thanks to the course, I know what is essential. With only the book, I would have done other things, in the wrong order.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;One month ago, you started JavaBlackBelt's Spring Core course. Now, one month later, do you feel you retained more information than with other methods?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I haven't worked with Spring since, but I still know it. The workshop really helped me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Would you participate in another course with the same (JavaBlackBelt) methodology?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-4061229097478178519?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/03/coached-e-learning-student-interview-2.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-8944493496602704096</guid><pubDate>Wed, 18 Mar 2009 19:37:00 +0000</pubDate><atom:updated>2009-03-18T20:46:13.822+01:00</atom:updated><title>Coached e-learning student - interview - 1</title><description>This is the interview of the first three students having taken the new JavaBlackBelt coached e-learning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;John is co-founder of JavaBlackBelt.com and has 10 years experience in Java training and skills management.&lt;br /&gt;Patrick is a consultant with 4 years of Java experience. He is currently working on a Java project in a bank.&lt;br /&gt;&lt;br /&gt;Patrick followed the JavaBlackBelt's JPA/Hibernate course in January/February 2009. His employer gave him one day to do it, then Patrick did finish the rest home. John was his personal coach.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB): How do you usually learn?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick:&lt;br /&gt;I'm mainly self-taught, I use resources found on the Internet. To solve small problems, I search on Google, or sometimes in a book. The need to learn always comes from a specific need on a real-life project. Except for Hibernate, which I decided to learn on my own initiative. I tried to follow the tutorials on the Hibernate website, but phew! Mainly, it was a question of not having enough time more than anything else.&lt;br /&gt;&lt;br /&gt;I've also done classroom trainings with an instructor. One at BEA on weblogic, and another on Business Objects.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;You just finished the final exam of a JPA/Hibernate course from JavaBlackBelt. How would you compare that with your past learning experience?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick:&lt;br /&gt;The course material is top notch. The course website is well designed, with good examples, the learning process has a very interesting logic. The references to external resources are also interesting for those who want to dig deeper into the subject. I really liked that.&lt;br /&gt;&lt;br /&gt;The only thing I found repetitive was the workshop. It's true I'd already acquired a little knowledge about Hibernate before the course and that I did all the workshop projects on the same day. But I understand its usefulness for weaker students.&lt;br /&gt;&lt;br /&gt;The idea of letting each student go at his own pace, even when we were all together was great.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How would you compare the atypical training you've had at JavaBlackBelt with the classic trainings you had in a classroom with slides and an instructor?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick:&lt;br /&gt;With JavaBlackBelt, time just flew, I felt I was learning at a faster pace, because I didn't have to wait for someone to speak. I probably felt that because I had a faster speed than the average in my group.&lt;br /&gt;&lt;br /&gt;As for the exercises, JBB is more open and more interesting than the step by step exercises I came across in both the classroom trainings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How would you evaluate the relative speed of these 3 learning methods (alone on the web, classic class training, JavaBlackBelt) ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm self-taught, so for me classic classroom training is the slowest. With JBB, it took less time to assimilate because I didn't have a need for what I learned at the training centers right after the course.&lt;br /&gt;Whereas with the workshop and test system, I had to use what I learned right away. I certainly went twice as fast as with a traditional course.&lt;br /&gt;&lt;br /&gt;Compared to learning by reading a book, I must have learned 30% faster with JBB, because it uses real-life examples earlier in the course. And the exam was a real incentive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;One month ago, you started JavaBlackBelt's JPA course. Now, one month later, do you feel you retained more information than with other methods?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick:&lt;br /&gt;Yes, because I had reviewed the subject for the exam not so long ago. Because of that, I learned better. That's what happens when you put into practice what you have learned. I couldn't have done it alone with a book without JavaBlackBelt. The problem with traditional classroom training is that it rarely comes at the moment you need it the most, so you don't tend to use it immediately and you tend to forget it quite fast.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;John (JBB):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Would you participate in another course with the same (JavaBlackBelt) methodology?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Patrick:&lt;br /&gt;Yes, certainly. Honestly, it's the best training I've ever taken.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-8944493496602704096?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/03/coached-e-learning-student-interview-1.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-701098567103044496</guid><pubDate>Sun, 01 Mar 2009 16:43:00 +0000</pubDate><atom:updated>2009-03-02T16:00:06.822+01:00</atom:updated><title>JavaOne 2008 - part 2: Big Booths</title><description>&lt;div id="g0c647"&gt;&lt;font style="font-style: italic;" size="2"&gt;-- &lt;a href="http://www.javablackbelt.com/blog/2008/05/javaone-2008-part-1-small-booths.html"&gt;Part 1&lt;/a&gt; was about small booths -- &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="4"&gt;&lt;font style="font-weight: bold;"&gt;AMD and Intel&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Still in the JavaOne Pavillon, you could not miss two large booths, these held by AMD and Intel. What the hell do these CPU hardware companies do at JavaOne? While I could understand that Sun promotes some of his servers at JavaOne, I was curious to see how AMD/Intel relates to Java.&lt;br /&gt;&lt;br /&gt;They gave me a very reasonable explanation: over the years CPU companies have significantly improved their CPU capabilities; still few software companies take advantage of it. In order to make their improvements used and their live more meaningful, they help the software side.&lt;br /&gt;&lt;br /&gt;It reminds me of my IBM years, while studying the AS/400-iSeries systems. They have a microkernel concept which is a software view of a CPU. The source code is compiled to executable microkernel instruction set. When the executable program is copied/installed on a specific hardware, the OS who knows the exact CPU, finishes the compilation process starting from the microkernel instructions to the CPU related machine code. Thank to this system, IBM could migrate customers from CICS processors &lt;a href="http://en.wikipedia.org/wiki/AS400"&gt;to RISC processors&lt;/a&gt; effortless.&lt;br /&gt;&lt;br /&gt;Doesn't this 2-phase compiling remind you of something ? The JVM and JIT (Just in Time Compiler) do the same. The .java source code is compiled by the developer into .class byte code. At runtime, the JVM (acting as a kind of operating system...) who knows the target hardware, finishes the work by transforming the .class bytecode into machine instructions. If the JVM knows the new optimized machine instructions from the last Intel or AMD CPU, then your code will be optimized for these CPUs and run much faster.&lt;br /&gt;&lt;br /&gt;Classical programs written in C/C++ for example, must be compiled by the developer to the most common backward compatible machine instruction set to be able to run on any compatible CPU, taking advantage of no new machine instruction.&lt;br /&gt;&lt;br /&gt;Who would have ever believed a decade ago that Java would be faster than C ?&lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;" size="4"&gt;Oracle and BEA&lt;/font&gt;&lt;br /&gt;&lt;/div&gt; &lt;p id="g0c654"&gt;Oracle also had a big booth. In fact, Oracle had two booths. The BEA team had a separate area while BEA has been &lt;a href="http://www.oracle.com/corporate/press/2008_jan/bea.html"&gt;acquired&lt;/a&gt; by Oracle some time ago. I'm curious to see how they will integrate in the future.&lt;/p&gt; &lt;div id="g0c656"&gt;&lt;br /&gt;&lt;font style="font-weight: bold;" size="4"&gt;Sun Microsystems&lt;/font&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;&lt;br /&gt;Last but not least in this article: Sun! Sun was massively present in the Pavillon, with many little booths. Sun Education booth took most of my attention: you know my passion for learning!&lt;/div&gt; &lt;div&gt; And -- &lt;font style="font-style: italic;"&gt;what a great surprize&lt;/font&gt; -- I met somebody who is at least as passionate about learning as I am, and who truly understands what's wrong with the way courses and certifications are taken and used by most people. I had a great discussion with &lt;a href="http://www.linkedin.com/pub/5/a47/240"&gt;Kevin Streater&lt;/a&gt;, Customer Learning Manager, Sun Microsystems.&lt;br /&gt;&lt;br /&gt;Our discussion turned around how to help students who aim at passing &lt;a href="http://www.sun.com/training/certification/java/scjp.xml"&gt;the SCJP &lt;/a&gt;. One problem is the size of SCJP which increased over the years and is now v6. It's too much to digest at once, even with one or two intense week of Java course. Smaller exams (such as JavaBlackBelt exams ;-) that break down the big SCJP objective into little steps along a clear learning path would definitely help.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-701098567103044496?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/03/javaone-2008-part-2-big-booths.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-4150839388499967361</guid><pubDate>Tue, 17 Feb 2009 16:22:00 +0000</pubDate><atom:updated>2009-02-17T17:24:35.134+01:00</atom:updated><title>How JavaBlackBelt Helped my Career</title><description>&lt;div style="margin: 1ex;"&gt;      &lt;div&gt;    &lt;p align="center"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;i&gt;Interview Transcript&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;i&gt;&lt;span style="font-weight: bold;"&gt;John Rizzo&lt;/span&gt;  – JavaBlackBelt co-founder, hereunder  “JBB”, and&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;i&gt;&lt;span style="font-weight: bold;"&gt;Lukasz Kryger&lt;/span&gt;  – JavaBlackBelt Moderator, hereunder LK&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;i&gt;Taken at QCON conference,  March 12&lt;/i&gt;&lt;sup&gt;&lt;i&gt;th&lt;/i&gt;&lt;/sup&gt;&lt;i&gt;, 2008&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: When did you first learn about JavaBlackBelt?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: About a year ago.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: And what was the first JavaBlackBelt  exam you took?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: The first exam I have taken was one  of SCJP mocks, which I obviously failed answering correctly only 1 question  out of 28. Back then I wasn't even aware how little I knew about Java.  After failing the exam a few times, I realized I had to start from the  beginning: that is, to pass each exam on the JavaBlackBelt “belt track”  one by one, focusing on one area at a time.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: So you ended up earning your “&lt;b&gt;&lt;i&gt;yellow  belt&lt;/i&gt;&lt;/b&gt;”?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: Yes, of course, it was a good preparation  for the rest of the track: it helped to familiarize with the JBB rules  and conventions. Step by step, I managed to earn enough knowledge points  to become a “&lt;b&gt;&lt;i&gt;brown belt&lt;/i&gt;&lt;/b&gt;”. Now I can't wait for the  “&lt;b&gt;&lt;i&gt;black belt”&lt;/i&gt;&lt;/b&gt; to become available.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: When did you start to contribute  to the JBB website?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: My first contributions were forced  by the JBB system, requiring to „pay" for most of the exams with  contribution points. I created few questions, corrected number of existing  ones – and soon it became my everyday habit. I became a “&lt;b&gt;&lt;i&gt;JBB&lt;/i&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt; moderator”&lt;/i&gt;&lt;/b&gt;, so I had to spend a little more time verifying   existing questions' quality, responding to users' attention requests  and guiding new JBB users.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: Which exams have you been most involved  in?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: I am “&lt;b&gt;&lt;i&gt;JBB&lt;/i&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt;Exam  Leader”&lt;/i&gt;&lt;/b&gt; of both Java SE Basic and Java SE Core, which are  probably most popular among the users, so they need a little more attention  than other stable exams. I don't limit myself to these exams however,  when I have enough time I try to help with other exams as well.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: These two Java exams require a lot  of work because they are relatively larger than other exams.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: Yes, I receive many attention requests  daily, sometimes taking a few days of holidays to handle!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: Could you tell us about your professional  background?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: I'm a relatively new software developer.  After graduating from university almost a year ago I moved from Poland  to Edinburgh, Scotland. Soon I started to work as a software engineer  on University of Edinburgh, working with Java and related technologies.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: What are your duties there?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: My company, Edina, maintains the  University's Data Library – provides access to all kinds of data for  all subscribed universities across UK. I'm personally involved in services  for providing geospatially-constrained data of all kinds: historical,  statistical, social, demographical etc.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: How did you get the job?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: While in Poland I found the advertisement  on the university's website. Realising that I had all the skills required  to apply for that position, I didn’t hesitate and filled in the application forms.  I was invited for an interview shortly after. I was pretty self-confident  that I was well-suited for this position, because I had acquired all  the necessary Java skills, which were confirmed by passed JBB exams.  The actual job interview turned out to be relatively easy, again largely  thanks to my experience with JBB – the main part was solving a short  Java test which was a walk in the park after passing all those JBB exams!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: Great! And more recently, you earned  enough contribution points to bid and to win the JavaBlackBelt auction  to come for the QCon… &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK : Yes, it turned out that this relatively  valuable item had less interest than other ones available on JBB auctions.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: I guess the fact you have to pay  the flight and the hotel is an obstacle for most people. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;a name="0.1_11dab5b4941e8d37_119e9333068433e8_119e87"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK : Yes, but my company  covered my travel expenses, they were actually very happy to send their  employee to such an event, which is not very cheap, to put it mildly.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: Is QCon 2008 the first professional  developer conference that you attend?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: Yes, the first strictly Java-oriented.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: What are your feelings about it,  what do you enjoy most?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;LK: I'm delighted by the opportunity  to listen to many of my „Java heroes": authors of book I have  on my shelf, programmers whose frameworks I use every day and influential  developers that make the Java community expand and go forward. I also  enjoy the freedom of choice – there are always at least four lectures  in parallel and everyone is free to pick the one they are most interested  in.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: OK, thank you for this short interview.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;JBB: I'd like to thank JBB for the chance  to attend this conference, and it was great meeting you.&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-4150839388499967361?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/02/how-javablackbelt-helped-my-career.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-4689326930883607315</guid><pubDate>Wed, 21 Jan 2009 16:36:00 +0000</pubDate><atom:updated>2009-01-21T18:01:35.954+01:00</atom:updated><title>U.S. and India</title><description>Dear JavaBlackBelt Community Members,&lt;br /&gt;&lt;br /&gt;I have some very exciting news – this week JavaBlackBelt has reached agreement with Boston-based &lt;a href="http://www.globalforcedirect.com/"&gt;Global Force DIRECT&lt;/a&gt; for distribution rights of our enterprise services across North America and India. We believe that this move represents a major milestone for our company and community – we will be well-represented and poised for expansion into two of the world’s largest IT markets! (see our Press Release)&lt;br /&gt;&lt;br /&gt;As a result, we do anticipate an up-leveling of membership, which will no doubt enhance the networking effect for you and your organizations and enable JavaBlackBelt to accelerate the expansion of services to you.&lt;br /&gt;&lt;br /&gt;If you’d like to help spread this news, here are a few ideas:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Participate to our Satisfaction Survey&lt;/span&gt;: we’re posting &lt;a href="http://www.surveymonkey.com/s.aspx?sm=0YXeE9p5V3VGDotulTYPDQ_3d_3d"&gt;a member satisfaction survey&lt;/a&gt; on &lt;a href="http://www.javablackbelt.com/NewsView.wwa?newsId=9258600"&gt;a separate news&lt;/a&gt; today. To better communicate and plan our services, we’re eager to hear what’s working, what needs improving, and new services that you seek.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Participate in Java Blogs&lt;/span&gt;: if you’re happy with JavaBlackBelt, post a few comments that say so and why on your favorite Java blogs.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Talk to your Manager&lt;/span&gt;: our Enterprise Edition (formerly Corporate Edition) gives managers online access to group skills reports, let you create and track learning paths, and let’s you include custom enterprise knowledge into assessments. We think that it’s great for careers and organizations. If you agree, let them know.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mention JavaBlackBelt&lt;/span&gt; in your social networking websites (eg, LinkedIn, Facebook, etc): it’s a great/simple way to communicate your hard-earned skills and further our community efforts.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Email US/India Colleagues the Announcement&lt;/span&gt;: &lt;a href="http://www.javablackbelt.com/DocumentView.wwa?page=UsIndiaPressRelease"&gt;This link&lt;/a&gt; will take you to the PR that announces our US/India agreement with Global Force DIRECT – it will place them at the front of the line.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Link JavaBlackBelt&lt;/span&gt;'s congratulations box onto your website: Let your friends and colleagues in your region know that you’re skills are advancing.&lt;/li&gt;&lt;/ol&gt;Best regards,&lt;br /&gt;John&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-4689326930883607315?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2009/01/us-and-india.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-9177924584427312526</guid><pubDate>Wed, 31 Dec 2008 15:09:00 +0000</pubDate><atom:updated>2009-01-05T09:15:19.249+01:00</atom:updated><title>2008 review, 2009 hopes</title><description>Dear Java Belts,&lt;br /&gt;&lt;br /&gt;I write this note to you shortly before midnight this December 31st 2008, GMT. As our East-Asia members are already waking up in 2009, our members on the American continent are just starting Sylvester Day 2008.&lt;br /&gt;&lt;br /&gt;As we jump into a new year, it is time to think about our achievements in 2008 and what lies ahead.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JavaBlackBelt Platform&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In 2008 our main platform development has been &lt;a href="http://www.javablackbelt.com/DocumentView.wwa?page=AboutUmp"&gt;the new moderation process&lt;/a&gt;.&lt;br /&gt;Together with this new process we designed a new UI for managing questions.&lt;br /&gt;I'm happy it's up and running. As we are fine-tuning the process, adding your contributions will be easier and more efficient, with undoubtedly a positive impact on the overall content.&lt;br /&gt;&lt;br /&gt;Making so many teams and individuals across the globe working together efficiently on-line, remains a major challenge of most 2.0 communities.  Some recent JavaBlackBelt community numbers:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;250.000 contribution points earned by&lt;/li&gt;&lt;li&gt;50.000+ registered users.&lt;/li&gt;&lt;li&gt;2.000+ unique visitors / day&lt;/li&gt;&lt;li&gt;4.000.000 answers given to technical questions.&lt;/li&gt;&lt;/ul&gt;On the corporate side, one of our main 2008 achievements has been to change the education culture of a large banking and insurance group with more than 100 Java developers. Learning in this company was organized with traditional courses in a conventional classroom-oriented fashion. Today the organization has adopted a dynamic and result-driven approach based on JavaBlackBelt exams. It does not mean that classroom learning has been replaced, but rather that they have defined targets and implemented measurable learning paths. Now classroom courses are just one possible mean to achieve individual and organizational education targets. In the past, just taking a course was a target/achievement by itself. Throughout the JavaBlackBelt implementation process, the reaction of developers has been very interesting. I will post an article about that in the upcoming weeks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conferences&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In 2008, we've had the opportunity to meet and talk to hundreds of you (if not thousands) at many conferences. It's always very enjoyable to meet in the physical world and put faces to the members of an on-line community. Most of all, it is inspiring to hear your numerous stories about how JavaBlackBelt impacted your Java skills, sometimes even your life. For instance I recall meeting Lucasz, based in Poland, who explained us how he got his job in the UK thanks to JavaBlackBelt, or Eric in Denver who's career was boosted largely thanks to the recognition he got via our platform.&lt;br /&gt;&lt;br /&gt;You'll find some pictures of our 2008 activities in &lt;a href="http://picasaweb.google.com/JavaBlackBelt.Admin"&gt;our web album&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We apologize to the organizers of the conferences we had to decline, we just cannot physically be everywhere, sometime we have to work home ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goodbye 2008, hello 2009!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's difficult to talk about 2008 without mentioning the financial crisis, the real-estate crisis, automotive crisis, and yes indeed the IT crisis, ... More particularly it is interesting to note the consequences of the crisis on developers and the relation to their skills. Imagine a pyramid with the best developers at the top, and  mediocre developers at the bottom according to their ability. Horizontal bars represent the level you need to get a job as a developer. When the bar is high, there are fewer positions open and it's more difficult to be hired (or the rate is lower).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/img-Z30155412-0001-710189.jpg"&gt;&lt;img style="cursor: pointer; width: 450px; height: 390px;" src="http://www.javablackbelt.com/blog/uploaded_images/img-Z30155412-0001-710186.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's go back to the Internet bubble at the beginning of the millennium. I remember how companies were hiring developers as if they were buying office supplies! I've seen so many self-proclaimed highly-skilled developers who could barely find the power button on their computer. At the same time, J2EE came out. It was incredibly hard to use (remember EJB v1, no Spring, no Hibernate, no Struts2,...). The perfect mix for most Java projects to fail. As of today I am still wondering how Java survived that stage.&lt;br /&gt;&lt;br /&gt;The bubble bursted and in 2003 it was much harder to get a job as a developer. As you can see on the diagram, the ability bar was raised. The market has been purified someway. Fewer crazy projects. Fewer inefficient coworkers. More professional attitude adopted by recruiters. It has probably been unfair and unpleasant to many people, but globally, in the long run, I think it was better for the IT professionals and their customers.&lt;br /&gt;&lt;br /&gt;Even with high growth rates and difficulties to find skilled good developers in 2008 (until the last few months), it seems the market remembered mistakes done during the internet bubble and recruiters further increased professionalism, although the ability bar was lower in 2007 than in 2003. A large number of companies hired junior developers fresh from school and took on the entire training.&lt;br /&gt;&lt;br /&gt;I fear that the current crisis will make the bar very high again. This time I'm afraid some good developers will be looking for a job.&lt;br /&gt;&lt;br /&gt;For illustration purpose, every year, since 2003, my team has been training 12 job-seeking developers as a government-run program. They usually have some experience or an IT degree when starting. After 6 months of intensive class training, they are able to develop a web-application with Spring and Hibernate. Near the end of their training, they start looking for a job. In June 2008, we started with a really outstanding group of above the average achievers. They've been just brilliant. Two months ago, they started looking for jobs. It has been much more difficult for them. Over the past 3 years, 90% of the group was hired before the end of the training. This year, only 50% were hired (note: my best wishes to the remaining 50%).&lt;br /&gt;&lt;br /&gt;Today the experience level required to get a job is definitely higher than one year ago.&lt;br /&gt;&lt;br /&gt;If you are at the bottom of the pyramid, don't even think about it. Unless you have a really strong potential, IT is no longer a gold mine.&lt;br /&gt;&lt;br /&gt;If you are at the top, you'll never be in real trouble (just your salary/rate may drop).&lt;br /&gt;&lt;br /&gt;But what if you are "stuck" in the middle?  Are you just below or above the line?&lt;br /&gt;&lt;br /&gt;This question is quite complex, because the ability (to make successful projects) is not only about hard technical skills. It's also about soft teaming and communication skills. I leave the soft skills to others. Let's talk about the technical skills.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Learning in 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recently I was showing some stats about JavaBlackBelt exams (number of succeeded exams vs. number of failed exams over time),  when someone asked a very disturbing question:  "What do we propose to those numerous developers who failed their exams ?"&lt;br /&gt;&lt;br /&gt;As you know, exam takers learn during the exam, and also after the exam when they see the correct answer of each question.&lt;br /&gt;&lt;br /&gt;But it would be great if we could provide them the necessary support to succeed rapidly and efficiently. It is impossible to propose classroom training as there are simply too many candidates, and they are too dispersed. On the other hand, leaving them alone with the web and a book is not enough for most people. We are convinced there is a solution somewhere between these two alternatives (classroom and alone) that really helps programmers learn efficiently and faster.&lt;br /&gt;&lt;br /&gt;We are currently working on it, and that will be one of our main projects in 2009: develop the best distant support we can for programmers to learn Java technologies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On behalf of the JavaBlackBelt team, I am graetful to all 50.000 of you for your great and quality activity on JavaBlackBelt this year.&lt;br /&gt;&lt;br /&gt;As a token of our appreciation, I have a New Year gift for you: &lt;a href="http://www.javablackbelt.com/BidEdit.wwa?auctionItemId=9103072"&gt;$100 auction&lt;/a&gt; to spend your remaining 2008 points. Good luck !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I look forward to seeing you on the platform this new and challenging year,&lt;br /&gt;&lt;br /&gt;John&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-9177924584427312526?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/12/2008-review-2009-hopes.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-4665319884497821899</guid><pubDate>Sun, 14 Dec 2008 18:37:00 +0000</pubDate><atom:updated>2008-12-15T11:09:07.936+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>conference</category><title>Devoxx 2008: Conference Day 1</title><description>One of the best things about conferences (if you're a consultant, at least), is catching up with a lot of former colleagues at once, even if it means missing the JavaFX/IBM keynote (the IBM part is widely deemed to have sucked). I also got the chance to talk to the guys at the &lt;a href="http://www.kaazing.org/confluence/display/KAAZING/Home"&gt;Kaazing&lt;/a&gt; stand, following up on &lt;a href="http://www.javablackbelt.com/blog/2008/11/javablackbelt-redev08.html"&gt;Nicolas's hype of a few weeks back&lt;/a&gt;. To complement his post, here's an &lt;span style="FONT-STYLE: italic"&gt;impromptu&lt;/span&gt;, Scoble-style &lt;a href="http://vimeo.com/2490067"&gt;interview with John Fallows&lt;/a&gt;, Kaazing's CTO.&lt;br /&gt;&lt;br /&gt;&lt;object height="375" width="500"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2490067&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00adef&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2490067&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00adef&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="375" width="500"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;InfoQ also has &lt;a href="http://www.infoq.com/news/2008/12/websockets-vs-comet-ajax"&gt;an interview with Kaazing&lt;/a&gt;.&lt;br /&gt;Of course, I was there for the sessions and saw a couple particularly good ones.&lt;br /&gt;&lt;br /&gt;Brian Goetz outlined &lt;a href="http://devoxx.com/display/JV08/From+Concurrent+to+Parallel"&gt;the evolution from concurrency to parallelism&lt;/a&gt;, reminding us that &lt;a href="http://www.gotw.ca/publications/concurrency-ddj.htm"&gt;the free lunch is over&lt;/a&gt;. He took us on a tour of the &lt;a href="http://artisans-serverintellect-com.si-eioswww6.com/default.asp?W1"&gt;fork-join API&lt;/a&gt;, discussed work stealing and the higher-level abstraction (in terms of parallelism) introduced by &lt;a href="http://gee.cs.oswego.edu/dl/jsr166/dist/jsr166ydocs/jsr166y/forkjoin/ParallelArray.html"&gt;ParallelArray&lt;/a&gt;. He also stated that closures could have made the API a lot nicer, to which audience-member Joshua Bloch could not help but respond that they introduced a lot of overhead for relatively little gain.&lt;br /&gt;&lt;br /&gt;Bill Venners gave an awesome talk entitled &lt;span style="FONT-STYLE: italic"&gt;&lt;a href="http://devoxx.com/display/JV08/The+Feel+of+Scala"&gt;The Feel of Scala&lt;/a&gt;&lt;/span&gt;. Most Scala tutorials and examples I've read make the language seem really hard and concentrate on its functional aspects. Venners took a different approach, focusing on the wonderful DSL-ish syntax he relatively easily created for &lt;a href="http://www.artima.com/scalatest/"&gt;ScalaTest&lt;/a&gt; and augmentations to the type system such as type inferencing, structural types and traits.&lt;br /&gt;&lt;br /&gt;Pete Muir's &lt;a href="http://devoxx.com/display/JV08/Introduction+to+Web+Beans"&gt;&lt;span style="FONT-STYLE: italic"&gt;Introduction to Web Beans&lt;/span&gt;&lt;/a&gt; reassured me that Java web frameworks really are moving towards full-stack environments (UI, persistence and integration), but wasn't too exciting in itself. I wonder if we'll ever get to something like a Java version of Google App Engine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devoxx.com/display/JV08/How+to+hack+and+secure+your+Java+web+application"&gt;&lt;span style="FONT-STYLE: italic"&gt;How to Hack and Secure your Java Web Application&lt;/span&gt;&lt;/a&gt; is a great title, but things got off on the wrong foot when the presenter spent five minutes explaining the benefits of the wiki ("Everyone has the latest copy of the information!" - you don't say) and it kind of went downhill from there. The only benefit here was learning about the extensive security resources and tools &lt;a href="http://www.owasp.org/"&gt;OWASP&lt;/a&gt; has created.&lt;br /&gt;&lt;br /&gt;I'm looking forward to the videos coming up on &lt;a href="http://www.parleys.com/"&gt;Parleys&lt;/a&gt; so I can catch up with some of the talks I missed. Were you at Devoxx? Let us know in the comments!&lt;br /&gt;&lt;br /&gt;Some other Devoxx postings:&lt;br /&gt;The Java Posse's &lt;a href="http://www.javaposse.com/index.php?post_id=412440"&gt;live podcast&lt;/a&gt;&lt;br /&gt;Stephen Colebourne's &lt;a href="http://www.jroller.com/scolebourne/entry/devoxx_2008_whiteboard_votes"&gt;whiteboard polls&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.hippo.nl/jasha/2008/12/devoxx_2008.html"&gt;Jasha of Hippo CMS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kollerie.wordpress.com/2008/12/14/devoxx-08/"&gt;Guido Kollerie&lt;/a&gt;&lt;br /&gt;The Java Blog has an extensive report, starting with &lt;a href="http://thejavablog.wordpress.com/2008/12/08/devoxx-university-day-1/"&gt;University Day 1&lt;/a&gt;.&lt;br /&gt;And &lt;a href="http://blogsearch.google.com/blogsearch?hl=en&amp;amp;ie=UTF-8&amp;amp;q=devoxx&amp;amp;btnG=Search+Blogs"&gt;lots more&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-4665319884497821899?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/12/devoxx-2008-conference-day-1.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-7516677402994049382</guid><pubDate>Mon, 24 Nov 2008 14:33:00 +0000</pubDate><atom:updated>2008-11-24T18:01:09.043+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Sweden</category><category domain='http://www.blogger.com/atom/ns#'>conference</category><category domain='http://www.blogger.com/atom/ns#'>oredev</category><title>JavaBlackBelt @ Øredev08</title><description>Last week the other Nicolas and I were invited to the &lt;a href="http://www.oredev.org/"&gt;Øredev08&lt;/a&gt; conference in Sweden to demonstrate our JavaBlackBelt platform and spread the word to the Swedish community. This was actually a double-first for me: first times at Øredev and in Sweden - and I sincerely hope not the last time for either! The experience was so worth it that I decided to share it with you.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The con&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/space-invader-762884.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; WIDTH: 150px; CURSOR: pointer; HEIGHT: 146px" alt="" src="http://www.javablackbelt.com/blog/uploaded_images/space-invader-762879.jpg" border="0" /&gt;&lt;/a&gt;&lt;span style="FONT-WEIGHT: bold"&gt;ference&lt;/span&gt;&lt;br /&gt;Unlike most of the other conferences I attend, Øredev is cross-technology, mixing tracks such as classic Java, .NET, Agile and Mobile tracks with more exotic subjects such as Domain-Driven Design, Aspects of Leadership, PM in Practice, User Experience and more. I like conferences where you have the opportunity to meet people active outside Java: it's&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/torso-711179.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 113px; CURSOR: pointer; HEIGHT: 150px" alt="" src="http://www.javablackbelt.com/blog/uploaded_images/torso-711176.jpg" border="0" /&gt;&lt;/a&gt; always enriching to share ideas and vision with someone from a different viewpoint. The conference was held in &lt;a href="http://en.wikipedia.org/wiki/Malm%C3%B6"&gt;Malmö&lt;/a&gt;, a nice city in the southern part of Sweden 20 minutes away from Copenhagen.So, for a week the city streets were festooned with old style space invaders () indicating the way to the conference center.&lt;br /&gt;The &lt;a href="http://www.malmomassan.se/eng/index_eng.html"&gt;venue&lt;/a&gt; was nice but is being torn down soon, so next year the conference will be held elsewhere. I hope the organizing team manages to book the strange &lt;a href="http://en.wikipedia.org/wiki/Turning_Torso"&gt;Turning Torso&lt;/a&gt; of Malmö.&lt;br /&gt;&lt;br /&gt;Another unique characteristic is the conference's sense of social responsibility:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The exhibitor's &lt;a href="http://www.oredev.org/topmenu/activities/unicef.4.9748e5511d79d43d9e8000299.html"&gt;fund-raising&lt;/a&gt; for the UNICEF collected 190.000 SEK, enough to build 2-3 schools in Malawi.&lt;/li&gt;&lt;li&gt;Plates, cups and cutlery were made of banana leaves, corn and other recyclable materials.&lt;/li&gt;&lt;li&gt;Fair-trade coffee&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The Talks I attended&lt;/span&gt;&lt;br /&gt;I couldn't attend many sessions, as I was often at the booth with Nicolas, welcoming people and informing them about our community. The first day I managed to get away and see the following speeches:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Five Aspects You've Never Heard About : Alef Arendsen demonstrated uncommon uses of AOP. The talk was interesting but there was a lot of code and little time in which to read it, so we only reviewed 3 out of 5 of the planned aspects. He later confessed to me that the talk normally ran 90 minutes. He promised to post a blog entry about it on the SpringSource &lt;a href="http://blog.springsource.com/author/alefa/"&gt;blog&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Qi4j - code, examples and demo : Qi4j is basically a framework that aims to make it easier to create applications using DDD. Not being not familiar with this technology I must admit I did not understand the whole thing but I met &lt;a href="http://www.jroller.com/niclas/"&gt;Niclas Hedhman&lt;/a&gt; on the last day and he explained more about this promising framework. Niclas is CEO of code dragons, a Malaysian company that seems to be highly skilled in OSGi and DDD.&lt;/li&gt;&lt;li&gt;Benchmarks Puzzlers - K.Pepperdine : Borrowing the Bloch/Gafter style (minus the overalls) to show some interesting examples of benchmarks that seem valid but aren't.&lt;/li&gt;&lt;li&gt;Real-time web development - J.Jacobi : Jonas (former Oracle employee) showed his new baby : the Kaazing Gateway explaining how it is possible, using the HTML 5 specification, to have full-duplex TCP connections between browsers and middleware. I must say this talk made me feel as I had years ago at TSSS Las Vegas when I saw my first Ajax demo by Dion Almaer : a revolution is coming. Kaazing's booth was next to our's so we chatted with them a lot (see below).&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The Talks I heard about&lt;/span&gt;&lt;br /&gt;I also heard a lot of good things about:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The groovy patterns talk : I'm really bummed I missed this one - I've wanted to use Groovy for years, but I've never convinced any customers, for lack of business examples. It seems that this talk had the answers to all my questions. I hope it will be available online soon. (By the way most the sessions were recorded so we can hope).&lt;/li&gt;&lt;li&gt;The DDD workshop on Thursday given by Eric Evans of course&lt;/li&gt;&lt;li&gt;And an excellent &lt;a href="http://www.oredev.org/topmenu/program/workshops/dianalarsen.4.3efb083311ac562f9fe800014174.html"&gt;Agile workshop&lt;/a&gt; given by Diana Larsen, an active member of the agile alliance.&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The neighbors&lt;/span&gt;&lt;br /&gt;Jonas and Ric of Kaazing were giving away nice t-shirts promoting their new gateway techn&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/kaazing-716403.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 91px; CURSOR: pointer; HEIGHT: 93px" alt="" src="http://www.javablackbelt.com/blog/uploaded_images/kaazing-716386.jpg" border="0" /&gt;&lt;/a&gt;ology. As I told them, I believe what they have done is the future of the web and I strongly advise anyone involved in RIA development to have a look at it. If you are currently using Comet or similar technologies, consider the &lt;a href="http://ajax.sys-con.com/node/677813"&gt;Kaazing gateway&lt;/a&gt; as another solution. While the HTML 5 spec is not yet released (planned for 2022, joked Jonas), its 'communication' section, which introduces 2 new core features: Server-Sent Events and WebSockets, is already well-defined.&lt;br /&gt;&lt;br /&gt;Quote from the Kaazing website:&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;Server-sent events standardizes and formalizes how a continuous stream of data can be sent from a server to a browser. Server-sent events is designed to enhance native, cross-browser streaming. Server-sent events introduces eventsource, a new HTML DOM element that connects to a server URL to receive an event stream.&lt;/span&gt; &lt;span style="FONT-STYLE: italic"&gt;The HTML 5 Web sockets specification introduces the WebSocket interface, which defines a full-duplex communications channel that operates over a single socket. WebSocket:&lt;/span&gt; &lt;ul style="FONT-STYLE: italic"&gt;&lt;li&gt;Traverses firewalls and routers seamlessly&lt;/li&gt;&lt;li&gt;Allows authorized cross-domain communication&lt;/li&gt;&lt;li&gt;Integrates with cookie-based authentication&lt;/li&gt;&lt;li&gt;Integrates with existing HTTP load balancers &lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-STYLE: italic"&gt;A WebSocket connection is established by upgrading from the HTTP protocol to the WebSocket protocol during the initial handshake between the client and the server. Once established, WebSocket data frames can be sent back and forth between the client and the server in full-duplex mode.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What the Kaazing team provides is &lt;ul&gt;&lt;li&gt;a client library for the browser to simplify client-side development of full-duplex applications.&lt;/li&gt;&lt;li&gt;a gateway implementation that transfers the TCP/HTTP full duplex to middleware protocols. &lt;/li&gt;&lt;/ul&gt;See &lt;a href="http://www.kaazing.org/"&gt;Kaazing.org&lt;/a&gt; for more info.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/oracle-shirt-767540.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 150px; CURSOR: pointer; HEIGHT: 200px" alt="" src="http://www.javablackbelt.com/blog/uploaded_images/oracle-shirt-767538.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Oracle booth was serving strong expressos and cappuccinos. One friendly Oracle guy named &lt;a href="http://blogs.oracle.com/olaf/"&gt;Olaf Heimburger&lt;/a&gt; took the JBB contest and complained about a question, but I wasn't at the booth at the time to argue about it. I was happy to see him come back later to admit that actually the question was correct and that JavaBlackBelt had taught him something, which is exactly our aim. That's a mantra you must all have in mind when writing questions/explanations on JavaBlackBelt: What am I teaching the guy reading this?&lt;br /&gt;We decided to do t-shirt cross-referencing so he now wears a JavaBlackBelt polo and I am the proud owner of an Oracle red t-shirt.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The community&lt;/span&gt;&lt;br /&gt;Talking about you guys, the community was well represented at Øredev. I met auction-winner Mateusz Kwasniewski and Dejan Vukmirovic who helped us on the booth. We had nice chats about the community and the future of the website and even interviewed Mateusz (article coming soon). There were also a lot of members from JetWay, one of the organizing partners. Lots of them took the JavaBlackBelt contest, so I guess that this week their offices are full of people proudly wearing their hard-earned JavaBlackBelt t-shirts.&lt;br /&gt;Pictures can be found at &lt;a href="http://picasaweb.google.com/JavaBlackBelt.Admin/Oredev2008"&gt;http://picasaweb.google.com/JavaBlackBelt.Admin/Oredev2008&lt;/a&gt; and embedded at the end of this post.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The Organizing Team&lt;/span&gt;&lt;br /&gt;I can't end this article without warmly thanking Emilie and Michael, the core organizers, for the amazing event they have successfully set up. Thank you very much and I hope to see you next year at Øredev09.&lt;a href="http://picasaweb.google.com/JavaBlackBelt.Admin/Oredev2008"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Parting Advice&lt;/span&gt;&lt;br /&gt;One last piece of advice: next year bid on the auction to win the free entrance and join us at Øredev09!&lt;br /&gt;&lt;br /&gt;&lt;embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" type="application/x-shockwave-flash" flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FJavaBlackBelt.Admin%2Falbumid%2F5271951779126180353%3Fkind%3Dphoto%26alt%3Drss"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-7516677402994049382?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/11/javablackbelt-redev08.html</link><author>noreply@blogger.com (Nicolas Brasseur)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-5612398560567226739</guid><pubDate>Mon, 23 Jun 2008 11:07:00 +0000</pubDate><atom:updated>2008-06-23T13:32:57.120+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>dev</category><title>Use extension to avoid utility class proliferation</title><description>Neal Ford &lt;a href="http://www.iasahome.org/web/itarc/atlanta/Agenda?p_p_id=20&amp;amp;p_p_action=1&amp;amp;p_p_state=exclusive&amp;amp;p_p_col_id=null&amp;amp;p_p_col_pos=0&amp;amp;p_p_col_count=1&amp;amp;_20_struts_action=%2Fdocument_library%2Fget_file&amp;amp;_20_folderId=149&amp;amp;_20_name=Neal_Ford-10_Ways_To_Improve_Your_Code-handouts.pdf"&gt;claims&lt;/a&gt;&lt;a title="claims" href="http://www.google.com/bookmarks/url?url=http://www.iasahome.org/web/itarc/atlanta/Agenda%3Fp_p_id%3D20%26p_p_action%3D1%26p_p_state%3Dexclusive%26p_p_col_id%3Dnull%26p_p_col_pos%3D0%26p_p_col_count%3D1%26_20_struts_action%3D%252Fdocument_library%252Fget_file%26_20_folderId%3D149%26_20_name%3DNeal_Ford-10_Ways_To_Improve_Your_Code-handouts.pdf&amp;amp;ei=RggJSLWTGpWo0ATyva2mDA&amp;amp;sig2=6hLVWPlLYHfzQ4N1Ur_V5Q&amp;amp;ct=b" id="qp16"&gt;&lt;/a&gt; that "Lots of 'Helper' or 'Util' classes indicates a poor design" and suggests trying to "incorporate your helpers into an intelligent domain object." If the projects I've been on are any indication, his advice hasn't been heard, and people end up with, for example, a DateUtil class that provides calculations, formatting and all that other stuff that the JSE libraries are so terribly unwieldy for. I'm sure you've come across code like:&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;long DateUtil.calculateTimeBetweenDatesInSeconds(Date, Date)&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;String DateUtil.formatyyyyMMdd(Date)&lt;br /&gt;&lt;br /&gt;or even (gulp):&lt;br /&gt;&lt;br /&gt;date1.getTime() &gt;= date2.getTime()&lt;br /&gt;&lt;br /&gt;This kind of code is extremely common, but, let's face it, pretty ugly, not really object-oriented and, most importantly, difficult to read and error-prone. I'd be much happier writing:&lt;br /&gt;&lt;br /&gt;boolean Date.isBefore(Date) [No more "Which date goes first, again?"]&lt;br /&gt;&lt;br /&gt;String Date.formatyyyyMMdd()&lt;br /&gt;&lt;br /&gt;long getIntervalInSeconds(Date)&lt;br /&gt;&lt;br /&gt;So, here's an attempt to apply Ford's advice.&lt;br /&gt;&lt;br /&gt;Begin by extending java.util.Date and copy the truly necessary DateUtil methods (I've found that utility classes have a tendency towards bloat) to it. That's pretty easy, but it's when you try to integrate your fancy new MyExtendedDate with clients and frameworks that things get a little trickier.&lt;br /&gt;&lt;br /&gt;You could simply change the type of the domain object's field and modify the getters and setters [1]. However, if you're using an ORM framework, it might not be too happy about that, as it doesn't know MyExtendedDate. You'd have to teach it about your class. For example, with Hibernate you'd use a &lt;a title="custom type converter" href="http://www.hibernate.org/hib_docs/v3/reference/en/html/mapping.html#mapping-types-custom" id="u_nl"&gt;custom type converter&lt;/a&gt;. If you're using Struts2 and navigating your object graph with OGNL [2], you may have a similar problem, which you'd resolve &lt;a href="http://www.developer.com/open/article.php/3694496"&gt;in a similar way&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you're mapping getters and setters directly onto your fields [3], your new setter will break clients. You could simply change setDate(MyExtendedDate) back to setDate(Date), because the subclass doesn't add any state, only behaviour, then create a new MyExtendedDate instance based on the date passed in. Or, if possible, keep setDate(MyExtendedDate) and change all its clients. Or have both and mark the former deprecated. The ideal solution, of course, would be getting rid of the setter altogether [3].&lt;br /&gt;&lt;br /&gt;If you can't change the type of the field, you could change getDate() to return MyExtendedDate, which has the advantage of not breaking clients. If you can't change the field's type, you probably can't get rid of setDate(Date), either, but clients can give it a MyExtendedDate anyway, so it's not too much of an issue ([3] notwithstanding).&lt;br /&gt;&lt;br /&gt;All that now remains is to find all the calls to DateUtils, replace them with MyExtendedDate's  methods and eventually get rid of DateUtils. If you can't remove DateUtils right away, you could at least deprecate  it and reimplement its methods to call the corresponding ones on MyExtendedDate.&lt;br /&gt;&lt;br /&gt;&lt;i id="lm4s0"&gt;Voilà&lt;/i&gt;: nice, smart and object-oriented Dates, at your service! If you're interested in more ways to improve your code without breaking everything, I highly recommend &lt;a href="http://michaelfeathers.typepad.com/"&gt;Michael Feathers&lt;/a&gt;' book&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt; &lt;a href="http://www.objectmentor.com/resources/bookstore/books/welc/"&gt;&lt;span style="font-style: italic;"&gt;Working Effectively With Legacy Code&lt;/span&gt;&lt;/a&gt;. It's like an extension to Martin Fowler's &lt;span style="font-style: italic;"&gt;Refactoring&lt;/span&gt; that deals with all those real-world situations that make your eyes bleed.&lt;br /&gt;&lt;br /&gt;[1] Getters and setters are evil, of course, but that's another topic, see &lt;a href="http://jupitermoonbeam.blogspot.com/2007/05/encapsulating-top-trump-objects.html"&gt;Peter Gillard-Moss for a possible alternative&lt;/a&gt;. The last line, paraphrased, sums it all up nicely: "The trick with maintaining your encapsulation as neatly as possible is to try and ensure that [you] deal with the concepts of [the] domain (for example IStatistic) and not the structure of the data (e.g. int speed)."&lt;br /&gt;&lt;br /&gt;[2] If you have a big domain model, I highly discourage this, as it leads to unrefactorable and tightly-coupled code. Another topic for another time.&lt;br /&gt;&lt;br /&gt;[3] Remember: getters and setters are evil! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-5612398560567226739?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/06/use-extension-to-avoid-utility-class.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-3789054139962662288</guid><pubDate>Fri, 06 Jun 2008 07:32:00 +0000</pubDate><atom:updated>2008-06-06T09:32:18.963+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>links</category><title>Is JavaBlackBelt among your favourite Java resources?</title><description>Ted Neward recently asked what &lt;a href="http://blogs.tedneward.com/CommentView,guid,c917a24e-d656-4d7f-be58-1eb2ae816f82.aspx"&gt;people's favourite Java resources were&lt;/a&gt; and I'll try to get some recommendations from everyone at JBB.&lt;br /&gt;&lt;br /&gt;Alex Miller &lt;a href="http://tech.puredanger.com/2008/06/03/favorite-java-resources/"&gt;listed some &lt;/a&gt;of his, including JavaBlackBelt! Thanks, Alex. As it happens, we agree with his list: his three books are on our shelves, we all read the&lt;a href="http://www.javaspecialists.eu/archive/archive.jsp"&gt; Java Specialists newsletter&lt;/a&gt; and I saw an eye-opening talk by Angelika Langer on annotations at JSpring.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Definitely check out the rest of &lt;a href="http://tech.puredanger.com/"&gt;Alex's blog&lt;/a&gt;. You might want to start with his &lt;a href="http://tech.puredanger.com/popular"&gt;most popular posts&lt;/a&gt;.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-3789054139962662288?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/06/is-javablackbelt-among-your-favourite.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-1460144283978753541</guid><pubDate>Thu, 22 May 2008 06:56:00 +0000</pubDate><atom:updated>2008-05-22T08:56:01.183+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>community</category><title>Is it important that JavaBlackBelt runs on Java?</title><description>Have you seen the massive debate on The Server Side about &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=49064"&gt;companies not using their own products&lt;/a&gt;? The examples given were the Spring and JavaLobby websites using Drupal rather than a Spring- or Java-based CMS and TSS.NET itself not actually running on .NET.&lt;br /&gt;&lt;br /&gt;How important is it to eat your own dog food? From the  discussion on TSS, I gathered that there were three elements concerning technology choice: how  it affects the user experience, how it affects your own work and how it reflects on your company (ie. image).&lt;br /&gt;&lt;br /&gt;For the most part, the JavaBlackBelt user experience is language-agnostic. The obvious exceptions are the &lt;a href="http://www.javablackbelt.com/ProgExplanation.wwa"&gt;programming exams&lt;/a&gt;, which rely on the Java compiler. Those aside, as a site member passing exams and contributing to them, objectively it wouldn't make a difference if JavaBlackBelt were written in PHP or Ruby or C# or &lt;insert&gt;.&lt;br /&gt;&lt;br /&gt;However, our use of Java technologies  extends beyond JBB and into the classroom, when we teach. In that situation, developing in Java is a great advantage, as we have years of real-world experience (with JBB and as consultants on other projects) to draw on.&lt;br /&gt;&lt;br /&gt;Finally, in terms of image, it makes sense for a platform that encourages the use and better understanding of Java technology (rather than simply reports news and information about it) to live by its own slogans (and it seems that &lt;a href="http://graemerocher.blogspot.com/2008/05/grailsorg-now-powered-by-grails.html"&gt;Grails feels the same way&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Of course, this logic  applies only to our core domain. Blogging, for example, is not our core domain, so we just use Blogger's platform without wondering if it runs on Java or not. As ever, one must pick and choose battles wisely.&lt;/insert&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-1460144283978753541?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/is-it-important-that-javablackbelt-runs.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-3404024601672074279</guid><pubDate>Tue, 20 May 2008 15:47:00 +0000</pubDate><atom:updated>2008-05-21T00:07:43.120+02:00</atom:updated><title>JavaOne 2008 - part 1: small booths</title><description>&lt;img src="http://www.javalobby.org/images/nl/javaone20080506/IMG_0546.jpg" align="right" /&gt;&lt;br /&gt;This month, I really enjoyed going to JavaOne.&lt;p&gt;&lt;br /&gt;I must admit that I spent more time talking to people than attending technical sessions. That's probably the thing I like best about JavaOne: soooo many people to meet. It's huge. And they are all interesting, experienced folks.&lt;p&gt;&lt;br /&gt;The pavilion is a great place to meet them. Imagine a huge room, probably the size of a football (soccer) field, filled to the brim with sponsors, meeting tables and VIP lounges.&lt;p&gt;&lt;br /&gt;I'll refrain from telling you which was the worst company with the worst product. But I'm willing to tell you about one of the best: &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;JavaRebel&lt;/a&gt;.&lt;p&gt;&lt;br /&gt;Jevgeni Kabanov proposes a product with a very narrow purpose, but that could save most of my customers a huge amount of man days and frustration. His tool frees the developer from waiting on the build.&lt;p&gt;&lt;br /&gt;Of course, you'll argue that IDEs like Eclipse compile as we type the code and there is no need to wait for them to compile. But as you know, Java EE introduces a productivity-killing concept: deployment. Large projects have an Ant build that takes a significant amount of time to execute. Significant enough to make you start doing something else and forget what you were doing originally. It interrupts your development process and context switching kills a developer's productivity.&lt;p&gt;&lt;br /&gt;Jevgeni didn't want to tell me the inner details/secrets, but basically, you can add methods to existing classes, add new classes and so on, save the source file from your IDE, and the change is instantly deployed.&lt;p&gt;&lt;br /&gt;JavaRebel small team developed &lt;a href="http://www.zeroturnaround.com/a-javarebel-story/"&gt;a funny video&lt;/a&gt; to convince your boss:&lt;br /&gt;&lt;a href="http://www.zeroturnaround.com/a-javarebel-story/"&gt;&lt;img src="http://www.javablackbelt.com/gen/news/javarebel.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;i&gt;JavaRebel cartoon (click to play)&lt;/i&gt;&lt;p&gt;&lt;br /&gt;I also made an interesting stop at the Jetty booth.&lt;br /&gt;&lt;br /&gt;As you know, Jetty is a free web application server competing with Tomcat and others. For running JavaBlackBelt.com, &lt;a href="http://www.javablackbelt.com/blog/2008/05/how-tomcat-ruined-my-night.html"&gt;we use Tomcat&lt;/a&gt;. So, I naturally asked the question: "Why should I move from Tomcat to Jetty ?"&lt;p&gt;&lt;br /&gt;The first answer was funny: "Because it's not Apache". Maybe some of you have non-funny experiences with Apache people/culture and want to debate it on our forum.&lt;p&gt;&lt;br /&gt;He also was convincing, giving me &lt;a href="http://blogs.webtide.com/jetty/files/articles/jetty-v-tomcat.pdf"&gt;technical reasons&lt;/a&gt; which we could summarize as: smaller, embedded, faster.&lt;p&gt;&lt;br /&gt;&lt;img src="http://www.javablackbelt.com/gen/news/jetty.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Webtide (Jetty) booth, with on the right, Greg Wilkins, Webtide's CTO&lt;/i&gt;&lt;p&gt;&lt;br /&gt;My next question was obvious: I asked why Tomcat was such a success. Tomcat, he said, was the reference Servlet/JSP implementation. That fact alone draws many downloads, but currently, Tomcat is losing significant market share to ... Jetty.&lt;p&gt;&lt;br /&gt;Later in the evening, I dined with a few high-end technicians from various horizons. After a beer of two, I asked the question: "What's the best web application server, according to you ?"&lt;br /&gt;&lt;br /&gt;The guys were quite unanimous that it was definitely not Tomcat, and they saw Jetty as a good choice.&lt;p&gt;&lt;br /&gt;In the part 2 of this article, we'll visit some large booths.&lt;p&gt;&lt;br /&gt;John.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-3404024601672074279?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/javaone-2008-part-1-small-booths.html</link><author>noreply@blogger.com (John Rizzo)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-4052383334546643306</guid><pubDate>Fri, 16 May 2008 11:00:00 +0000</pubDate><atom:updated>2008-05-17T13:54:40.510+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>community</category><title>You must obey the rules !</title><description>With the upcoming revamp of the moderation process, here at the JavaBlackBelt &lt;a href="http://www.javablackbelt.com/blog/atomium.jpg"&gt;secret HQ&lt;/a&gt; we are fiercely arguing about &lt;span style="font-weight: bold;"&gt;What Makes A Question Good&lt;/span&gt;. I've summed up our discussions in the form of rules and have decided to share them with the community in this blog entry.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A question must be in the &lt;span style="font-weight: bold;"&gt;right place&lt;/span&gt;. A major problem in the basic exams is that many questions are too hard for the category they're in.&lt;/li&gt;&lt;li&gt;The question's statement must be clear, easy-to-understand, well-formatted, typo-free and focussed on testing real knowledge.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Avoid ambiguity&lt;/span&gt;: nothing is worse than knowing the answer but hesitating to state it because it's unclear what the question author wants. Example: "How old is J2SE?"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Avoid trick questions&lt;/span&gt;: does a question test the user's attention rather than her technical knowledge?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Avoid never-ending questions&lt;/span&gt;: questions containing too much text/code/choice are usually of poor quality.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Avoid &lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;cut &amp;amp; paste code&lt;/span&gt; questions&lt;/span&gt; : ask yourself "Is it easy to find the right answer without even understanding why the answer is right, simply by pasting into an IDE or googling for 10 seconds?"&lt;/li&gt;&lt;li&gt;A question must include a &lt;span style="font-weight: bold;"&gt;clear and pedagogical explanation&lt;/span&gt; that will teach the user something. We aim to teach people new things.&lt;/li&gt;&lt;li&gt;Don't copy other people's questions. &lt;span style="font-weight: bold;"&gt;Plagiarism is evil&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;You must obey the rules !&lt;br /&gt;&lt;br /&gt;We've built JavaBlackBelt as a learning tool where people play with exams to discover new things. Help them in their journey. The main mantra when you write a question should be &lt;span style="font-weight: bold;"&gt;"Do not try to trap people, help them learn and understand the technology."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-4052383334546643306?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/you-must-obey-rules.html</link><author>noreply@blogger.com (Nicolas Brasseur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-3929680297771901216</guid><pubDate>Fri, 09 May 2008 06:30:00 +0000</pubDate><atom:updated>2008-05-11T18:56:39.994+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>music</category><title>Singing about architecture is like...</title><description>&lt;a href="http://globalnerdy.com/2007/11/28/dilbert-on-extreme-and-agile-programming/"&gt;Extreme Programming&lt;/a&gt; and &lt;a href="http://dilbert.com/strips/comic/2008-04-15/"&gt;stand-up meetings&lt;/a&gt; have appeared in Dilbert over the years, but there's a new reference point to prove that software development methodology is a hot topic in mainstream pop culture: &lt;a href="http://www.youtube.com/watch?v=k2CFDsG_oxg"&gt;"The Architect"&lt;/a&gt; by &lt;a href="http://www.myspace.com/deusbe"&gt;dEUS&lt;/a&gt; (one of Belgium's best-known rock bands - which sounds like an insult, but isn't... I hope):&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k2CFDsG_oxg&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/k2CFDsG_oxg&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;There's more to the song than a catchy guitar riff that's both dissonant and jerkily propulsive, it's clearly lambasting &lt;a href="http://www.waterfallmanifesto.org/"&gt;Waterfall&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Big_Design_Up_Front"&gt;Big Design Up Front&lt;/a&gt; and &lt;a href="http://www.joelonsoftware.com/articles/fog0000000018.html"&gt;Architecture Astronauts&lt;/a&gt;. Check out some of the &lt;a href="http://www.hotellounge.com/songs/thearchitect.html"&gt;lyrics&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What is the architect doing?&lt;br /&gt;(...)&lt;br /&gt;I'm gonna go home and shut up for a year&lt;br /&gt;And when that year is over I will reappear&lt;br /&gt;And have a solution.&lt;br /&gt;I've reason to believe that what I find&lt;br /&gt;Is gonna change the face of human kind&lt;br /&gt;(...)&lt;br /&gt;Cause I'm the architect.&lt;br /&gt;(...)&lt;br /&gt;About all the problems on this earth we should&lt;br /&gt;Worry now to solve them later&lt;br /&gt;And so he’s brooding and alluding on a perfect design.&lt;br /&gt;(...)&lt;br /&gt;Now if these aspirations bother you&lt;br /&gt;Well you are just you, you don’t have a clue&lt;br /&gt;I'm sticking to the plan, I will see it through&lt;br /&gt;Let there be no confusion.&lt;br /&gt;Cause I'm the architect.&lt;/blockquote&gt;&lt;br /&gt;It may only be software development, but at least now it's rock 'n' roll, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-3929680297771901216?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/singing-about-architecture-is-like.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-6539513726381476226</guid><pubDate>Wed, 07 May 2008 10:01:00 +0000</pubDate><atom:updated>2008-05-07T12:01:00.689+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>dev</category><category domain='http://www.blogger.com/atom/ns#'>testing</category><title>JUnit and auto-boxing</title><description>After that gigantic &lt;a href="http://www.javablackbelt.com/blog/2008/04/tomcat-memory-leak.html"&gt;previous post&lt;/a&gt;, I thought it'd be good to post something simpler and more widely applicable.&lt;br /&gt;&lt;br /&gt;I came across a little JUnit assertion gotcha that had me puzzled for a second. I was testing this (note, calculateDurationInSeconds() returns a long)&lt;br /&gt;&lt;blockquote&gt;assertEquals(120, subjectUnderTest.calculateDurationInSeconds());&lt;/blockquote&gt;and getting the following, less-than-helpful test failure message&lt;br /&gt;&lt;blockquote&gt;expected: &lt;120&gt; but was: &lt;120&gt;&lt;/blockquote&gt;I figured this one out pretty quickly because my Eclipse underlines cases of auto-boxing/unboxing. Since the assertEquals(Object, Object) method is being used, my int is becoming an Integer and the long returned by the method is becoming a Long. Obviously, any equals() comparaison is going to fail. I corrected this by using the long literal notation:&lt;br /&gt;&lt;blockquote&gt;assertEquals(120L, subjectUnderTest.calculateDurationInSeconds());&lt;/blockquote&gt;What with all the conversion already going on between the presentation and data layers, I'm trying to generalise the practice of making primitive/wrapper conversions explicit, just in case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-6539513726381476226?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/junit-and-auto-boxing.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-6331309041174752733</guid><pubDate>Mon, 05 May 2008 16:16:00 +0000</pubDate><atom:updated>2008-05-06T10:31:10.218+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>dev</category><category domain='http://www.blogger.com/atom/ns#'>app servers</category><title>How Tomcat ruined my night</title><description>Tomcat is probably &lt;a href="http://blog.springsource.com/main/2007/12/24/is-it-a-tomcat-or-the-elephant-in-the-room/"&gt;one of the more widely used pieces of open source infrastructure&lt;/a&gt; and it's a great boon to our productivity. Sometimes, though, a deep-rooted problem can sneak up on you and drag you into a sleep-deprived night of frantic web searching.&lt;br /&gt;&lt;br /&gt;One day, I happened to see our production JVM restart, for no apparent reason. Intrigued, I looked into it a little bit more and realised that since &lt;a href="http://www.javablackbelt.com/NewsletterPreview.wwa?newsletterId=5819858"&gt;the release of JBB v3&lt;/a&gt; last December, it had been restarting roughly 6 times per month. After an OutOfMemory, &lt;a href="http://blogs.sun.com/alanb/entry/heap_dumps_are_back_with"&gt;the JVM dumps its heap into an hprof file&lt;/a&gt;, so there were a number of these files on the server, often over 1GB each!&lt;br /&gt;&lt;br /&gt;I downloaded an hprof file and tried to open it with &lt;a href="https://hat.dev.java.net/"&gt;jhat&lt;/a&gt;, provided with the default Java 6 distro. jhat creates a website for you to visualise the heap [1]. Unfortunately, I couldn't get jhat to work, probably because &lt;a href="http://blogs.sun.com/alanb/entry/heap_dumps_are_back_with#comment-1174977909000"&gt;JavaScript support is not yet implemented in MacOSX's JDK 1.6&lt;/a&gt;. I got around this problem by reading the hprof with &lt;a href="http://yourkit.com/"&gt;YourKit Java Profiler 7.0&lt;/a&gt; and quickly saw that vast amounts of memory were being taken up by several huge char arrays (click on the image for a larger version).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.javablackbelt.com/blog/uploaded_images/yourkit_sc-743134.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.javablackbelt.com/blog/uploaded_images/yourkit_sc-743123.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see from the screenshot, 115 instances of &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/jasper/runtime/BodyContentImpl.html"&gt;org.apache.jasper.runtime.BodyContentImpl&lt;/a&gt; were holding on to over 560 million bytes worth of objects, keeping them from being garbage-collected and eating up inordinate amounts of RAM. So, what's BodyContentImpl actually doing?&lt;br /&gt;&lt;br /&gt;Tomcat maintains a pool of PageContext instances, which in turn have an array of BodyContentImpls. Each BodyContentImpl has an array with the text from the tag's body. This array has a default size of 512 that is hard-coded as org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE. Once the body of a custom tag gets bigger than that, the array grows and is never reset to its original size. With concurrent users, several such arrays might be created, so if a few popular pages use big custom tags, you can end up with a number of gigantic, un-garbage-collectable char arrays. In our case, this happened because in v3 we started decorating large blocks of JSP code with SiteMesh custom tags.&lt;br /&gt;&lt;br /&gt;One solution would be to set the environment variable org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER to true, so that arrays over 512 bytes are released. Another would be to recompile Tomcat with a tag buffer size more suited to our needs. So both choices are extreme: either you maintain huge arrays for ever, or you're constantly creating and garbage collecting arrays, as 512 bytes is a fairly low limit for custom tags. We settled on giving the JVM more RAM to handle the extra garbage collection.&lt;br /&gt;&lt;br /&gt;Of course, &lt;a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=37793"&gt;others&lt;/a&gt; have &lt;a href="http://jira.atlassian.com/browse/JRA-10145"&gt;experienced&lt;/a&gt; the same problem&lt;a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=37793"&gt;&lt;/a&gt;. What's the word from the Tomcat camp? Well, Remy Maucherat, Tomcat committer, &lt;a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=37793#c8"&gt;considers that&lt;/a&gt;: &lt;blockquote&gt;Using sensibly written software helps. It should be obvious reading the API that using large body tags is going to be a huge problem.&lt;br /&gt;&lt;/blockquote&gt;Please draw your own conclusions.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;By the way, jhat loads the whole hprof file into memory, so you may need to use the -J-mx512m flag if you're having OutOfMemory thrown.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-6331309041174752733?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/05/how-tomcat-ruined-my-night.html</link><author>noreply@blogger.com (Aymeric Levaux)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7864604315847802409.post-1868907648201276264</guid><pubDate>Wed, 30 Apr 2008 08:52:00 +0000</pubDate><atom:updated>2008-04-30T11:04:22.324+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>general</category><title>Welcome!</title><description>Welcome to &lt;a href="http://www.javablackbelt.com/"&gt;JavaBlackBelt&lt;/a&gt;'s new blog!&lt;br /&gt;&lt;br /&gt;The aim and content are likely to evolve, but at the moment, we plan to write about some of the interesting technical issues Aymeric and I face developing the website, along with tips and tricks/how-to posts to help you get the most out of JBB.&lt;br /&gt;&lt;br /&gt;Please leave comments, bookmark us, subscribe to the &lt;a href="http://www.javablackbelt.com/blog/atom.xml"&gt;RSS feed&lt;/a&gt;, share us on your favourite social networks and whatever else people are doing to blogs nowadays. We hope you enjoy delving Inside JavaBlackBelt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7864604315847802409-1868907648201276264?l=www.javablackbelt.com%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.javablackbelt.com/blog/2008/04/welcome_30.html</link><author>noreply@blogger.com (Moandji Ezana)</author><thr:total>0</thr:total></item></channel></rss>
