Open source reader

Saturday, May 20, 2006

jBixbe: a java tool I consider ... buying !

I found this tool on Erik's linkblog, thanks to him !

jBixbe provides a new quality of debugging complex Java applications by showing their structure and functioning on the conceptual level of the UML.



Look at this ...
I find this kind of visualization absolutely wonderfull !
Look how they handle collections, pretty neat !






Look at this sequence diagram !
You can collapse code that does not matter to you...






This tool is not production ready yet, looks like it will be release this summer ...
I need to play with it for a while to be sure it is okay, but looks like I'll buy my first commercial java tool !
Unless you'll give me open alterntives :)

This tool has a drawback for now: it works only on linux boxes ... and I do prefer to work under windows ...

GNU's "Free But Shackled - The Java Trap" article, time to reread it....

Now that sun will open-source java it may be the time to re-read an article from GNU called "Free But Shackled - The Java Trap"...
Btw it was written in 2004 by Richard Stallman.

Declarative Caching Services for Spring

Alex Ruiz wrote an article on dev2dev about declarative caching ...
Here is what you'll read:
  1. Abstract
  2. Caching Overview
  3. Declarative Caching Services for Spring
  4. Benefits of Declarative Caching Services
  5. How Declarative Caching Services Work
  6. Configuring Declarative Caching Services
  7. BeanNameAutoProxyCreator
  8. Download
  9. Conclusion
Checkout the BeanNameAutoProxyCreator, damn spring is full of great features !

5 things I do not like in blogger - 1 = 4 things I do not like in blogger

Here was a post I did some times ago 5 things I do not like in blogger
Item #1 was the captcha everywhere ...
I fact I realized after that my account was lock by their anti-spam-robot, for every publishing action I do, I have to fill a captcha ... which is very ennoying ...
Now that I have understood that, I made a request for human checking ....
I should get regular usage now ...

So it still remains these 4 items
  1. Publishing is very slow
  2. Html editor is too basic
  3. Default templates are a mess
  4. Calendar to select posts is missing

Friday, May 19, 2006

The Five Basic Principles of Online Marketing

This article describes the most vital parts of online marketing, which always end up with
  • Dead-ends
  • Giving and selling
  • Trust
  • Push and pull
  • Niche marketing
Nice read.

The korean techcrunch !

Yes, even techcrunch has me toos !



Beware Michael Arrington korea is in the place !

The Startup CEO: Chief Everything Officer

Nik Cubrilovic is a CEO in a startup and talks about his job.
Here is the last sentence:
The CEO role while beginning as an ‘everything’ role is constantly in flux - the company moves forward only as quickly as the CEO can take it forward, and a good CEO will be able to adapt to change and respond quickly so that the forces of growth can take effect uninhibited (fuelling those forces of growth is a whole other thing).
Enjoy this post !

You need Developers, not Programmers in smalls Independent Software Vendor

This Eric Sink entry summarize it well, it is about
  • Spec documents
  • Configuration management
  • Code reviews
  • Testing
  • Automated tests
  • Documentation
  • Solving tough customer problems
Basically, he could have said, programmer = stuborn geek, developper = professional business driven. :)

Acrobat reader is soooo slow, here is a solution !

Acrobat reader is free, slow and consumes lots of memory.
FoxitReader is free, fast and consumes little memory !
Grab it now, you'll like it as much as I do.

Capgemini CTOs blog

Here is a blog that might be a reference someday, a blog feeded by the Capgemini technical directors, you'll find it here ...

1 week old, and already 3 entries ! Here's what you'll get from these CTOs
  1. Searching, Browsing, Indexing, Tagging, or looking for the answer?
  2. It’s SOA, but not as we know it!
  3. ASPs - an old idea warmed up?
Welcome in the blogosphere !

FYI: Capgemini is ranked among the world’s top five outsourcing providers. That means, it is a huge international company.

Smells to refactoring quick reference guide

Joshua Kerievsky has put on his a pdf file up for download called "Smell to Refactoring Cheat Sheet" http://industriallogic.com/papers/smellstorefactorings.pdf
Here is how it looks like:



I found this link here

The Top 5 Tips for Getting Publicity

Here is simple (and ugly looking) article titled "Using Free Publicity to Build Your Web Site Links and Traffic"
  • Be Consistent - Stick With It For The Long-Haul
  • Offer Great News Ideas and Quality Articles
  • Expand Your Publicity Campaign By Building A Media List
  • Distribute Via E-Mail
  • Post Your Articles On Your Web Site And E-Mail Newsletter
I like his conclusion, which is why this entry his here ...
As the great P.T. Barnum once said... Without publicity a terrible thing happens... nothing!" Publicity is a great way to build your web site links, visibility, traffic and sales. Use these tips to maximize your publicity campaign's success.
KISS

Making Money With Software: Usability vs. Buyability

Another worth reading article from Dharmesh Shah from onStartups.
Basically he says focus fast on buyability and recommends:
  • Transparent Pricing
  • Immediacy
  • Minimal Steps
  • Payment Methods
His last sentence is
If you spent half as much time on making your product more buyable as you do making it more usable, chances are you’d make more money.
There is tons of other valuable articles

Color scheme generator

When it comes to creating web pages with nice and clean colors ... I call one of my friends that has graphical talents (who said taste ?)
Maybe with this tool I'll call him less frequently.
Btw, you can share your color scheme too, and see whan a deuteranomaly-an person would see !

Thursday, May 18, 2006

C to Java translator

Found this article about jazillia a C-to-Java translator company...
I have a really hard time to believe this kind of stuffs:
Not only is it faster, the Jazillian C-to-Java Translation Solution generates Java output code that is 100 percent useable and realistic,
Which contradicts to the following
In recent client applications, the Jazillian solution lowered rewrite time and costs between 60 and 80 percent compared to traditional handwritten conversions that often require extensive re-work plus error and bug corrections.
Marketing wonders :)

How To Sell Your Products and Services Now

Here is the article, you'll find the following ideas:
  1. visualize
  2. article
  3. bargain
  4. direct
  5. fast
  6. money back
  7. surprise
  8. specific
  9. tips
Most of the ideas describes in this article are obvious, but it is always good to see them again.

Wednesday, May 17, 2006

A generic typesafe DAO with Hibernate and Spring AOP

Per Mellqvist wrote an article on dao driven by generics.
Here is what you'll read:
  1. The DAO implementation
  2. A generic DAO interface
  3. Implementing the interface
  4. The Spring configuration
  5. A usable generic DAO
  6. Spring AOP introductions
  7. Extending GenericDAO
  8. Configuring PersonDao
  9. Hibernate named queries
  10. A step-by-step overview
  11. A reusable DAO class
  12. The executeFinder() method
  13. In conclusion
DAO ? :)
The DAO pattern should be well known to any enterprise Java developer. Implementations of the pattern vary considerably, however, so let's clarify the assumptions behind the DAO implementation I present in this article:
  • All database access in the system is made through a DAO to achieve encapsulation.
  • Each DAO instance is responsible for one primary domain object or entity. If a domain object has an independent lifecycle, it should have its own DAO.
  • The DAO is responsible for creations, reads (by primary key), updates, and deletions -- that is, CRUD -- on the domain object.
  • The DAO may allow queries based on criteria other than the primary key. I refer to these as finder methods or finders. The return value of a finder is normally a collection of the domain object for which the DAO is responsible.
  • The DAO is not responsible for handling transactions, sessions, or connections. These are handled outside the DAO to achieve flexibility.
Damn ... another gazillion way of doing DAO :)

You will learn a lot from this interview of the Amazon.com's CTO.

Here is an interview of Werner Vogels the CTO of amazon.com.
You'll learn a lot from what follows:
  1. Growth
  2. Services
  3. AWS
  4. Requirements
  5. Integration
Here are two excerpts:
He maintains that research spirit at Amazon, which regularly must solve problems never before encountered. "Maybe other companies call it research. We just call it development," he points out.
The traditional model is that you take your software to the wall that separates development and operations, and throw it over and then forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer. This customer feedback loop is essential for improving the quality of the service.
Definitely worth reading.

Edit: this article just got slashdotted, read the mob comments.

Google's Ajax web toolkit

Yesterday, google released their beta version of the "Google Web Toolkit".

Here is what you can get from GWT
  • Dynamic, reusable UI components
  • Really simple RPC
  • Browser history management
  • Real debugging
  • Browser compatible
  • Interoperability and fine-grained control
The GWT architecture is the following


  • GWT Java-to-JavaScript Compiler
  • GWT Hosted Web Browser
  • JRE emulation library
  • GWT Web UI class library
How well does it work ?
  • Compiler-generated JavaScript size
  • End-user performance
  • Development time
Can you use it in your commercial application ?
yes

Is it free ?
yes

Sample applications ?


You know what, it isn't already on Ajaxian !

A very (un)usual story, it already happened to you ... or it will !

This kind of story happened to everybody in the industry once ! (who said twice ?)

Here is an excerpt:

Such things happened at least once to every unix person... To me it happened on February 1, 2000, after several years of heavy Unix usage/administration, when I was damn confident in myself and just leniently smiled on all these for-clueless-newbies warnings about not doing things as root

To know what happened jump here.

Tuesday, May 16, 2006

a java opensource graphical DB schema generator

SchemaSpy is ...
SchemaSpy is a Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. It lets you click through the hierarchy of database tables via child and parent table relationships. The browsing through relationships can occur though HTML links and/or though the graphical representation of the relationships. It's also designed to help resolve the obtuse errors that a database sometimes gives related to failures due to constraints.
Here a browsable sample and the generated image schema:

And yes, for those who recognized this kind of graphs: SchemaSpy is using the great graphviz library.

A *bold* paper against Threads

Edward A. Lee wrote a paper called "The Problem with Threads", you can find his pdf paper here. There is no rant here but facts, and sound reasoning.

Here is two excerpts from the abstract:
Many technologists are pushing for increased use of multithreading in software in order to take advantage of the predicted increases in parallelism in computer architectures. In this paper, I argue that this is not a good idea. Although threads seem to be a small step from sequential computation, in fact, they represent a huge step. They discard the most essential and appealing properties of sequential computation: understandability, predictability, and determinism.
and the finish
Rather than pruning nondeterminism, we should build from essentially deterministic, composable components.
(Found this paper on Weiqi Gao's blog)

A nice eclipse plugin, where is the opensource alternative ?

Do you know World Of Java ?
Here is what it does:
WOJ is a set of services that integrates seamlessly with your IDE and provides access to Java projects, documentations and sample source code.
Here is what bugs me:
This kind of service already exists, doesn't it?
Some sites provide access to javadocs and sample source code, but none of them provides the integration and the features that WOJ offers.
Anyone knows how to contradict this company ? :)

FYI wink screencasts of this product are available here.

a *must* read:The hardest Lessons for Startups to Learn

Paul Graham has always given us great articles on startups.
Here is his new essay called "The hardest Lessons for Startups to Learn"
The startups we've funded so far are pretty quick, but they seem quicker to learn some lessons than others. I think it's because some things about startups are kind of counterintuitive.

We've now invested in enough companies that I've learned a trick for determining which points are the counterintuitive ones: they're the ones I have to keep repeating.
Here are the lessons to learn according to Paul:
  1. Release Early.
  2. Keep Pumping Out Features.
  3. Make Users Happy.
  4. Fear the Right Things.
  5. Commitment Is a Self-Fulfilling Prophecy.
  6. There Is Always Room.
  7. Don't Get Your Hopes Up.
  8. Speed, not Money
Paul's writing style is lean and clean, read it.

What Would Google Do?

Another worth reading article from Derek Powazek
  • Portal to the Past (I like the "Their Zen-like homepage has remained pristine through it all. But what seems like smart marketing now was probably just design ineptitude")
  • Their Zen-like homepage has remained pristine through it all. But what seems like smart marketing now was probably just design ineptitude
  • The Problem
  • The Cult of Google
  • Something Completely Different
  • The Question to Ask
Here are the last two sentences:

So I beg you, the next time you’re faced with a design decision, don’t ask “What would Google do?” Instead ask, “What would the people who use our product totally love?”

Answer that and Google might just have competition someday.

Monday, May 15, 2006

Signs You're a Crappy Programmer (and don't know it)

Please read this great post from Damien Katz, and watch the signs
  1. Java is all you'll ever need.
  2. "Enterprisey" isn't a punchline to you.
  3. You are adamantly opposed to function/methods over 20 lines of code.
  4. "OMG! PATTERNS!"
  5. CPU cycles are a precious commodity and your programming style and language reflects that belief.
  6. You think no function/method should have multiple return points.
  7. Your users are stupid. Really stupid.
  8. You take great pride in the high volume of code you write.
  9. Copy and paste is great, it helps you write decoupled code!
  10. You think error handling means catching every exception, logging it and continuing on.
  11. You model all your code in UML before you write it.
  12. Your code wipes out important data.
I have to admit, that #12 happened to me 1 month ago ... and that #8 is still something I do value ...
Evan Summers has something to say about this list too...

Geniuses/Rocket developpers beware ! We average joes can beat you !

Here is an article at American Psychological Association called "Groups Perform Better Than The Best Individuals At Solving Complex Problems"
Excerpt:
We found that groups of size three, four, and five outperformed the best individuals and attribute this performance to the ability of people to work together to generate and adopt correct responses, reject erroneous responses, and effectively process information," said lead author Patrick Laughlin, PhD., of the University of Illinois at Urbana-Champaign
Nice read, but 5 guys working together is still a challenge :)

Outsourcing your code is so cheap ... but why are so many jobs coming back from their indian trip ?

There are websites where you can get very cheap developpers, here are the one I know:

http://www.getacoder.com/
http://www.rentacoder.com/
http://www.getafreelancer.com/
http://www.odesk.com/

You can see amazingly low rates such a $10/hour, websites clones for $200,
Does that sounds scary ? Yes it does, but ...
Try out theses services, you'll find that the developpers are mainly students (showing as companies).
Most students are talented, but they have very little experience.

Theses sites are not competing with real professionals, but giving an option to customers that cannot afford paying a full featured service.

I read somewhere that the bay area job market was great, not because of a new web 2.0 bubble, but because the companies discovered the hidden costs and challenges in outsourcing, therefore many jobs are coming back from their indian trip !

I like this article which warns about the following hidden costs:
  1. The Cost of Selecting a Vendor
  2. The Cost of Transition
  3. The Cost of Layoffs
  4. The Cultural Cost
  5. The Cost of Ramping Up
  6. The Cost of Managing an Offshore Contract
I think that #1 is a killer one, you'll probably fail a few times, before finding the right vendor...
Then #6 will suck lots of time and money :(

Webapps gone bad ...

Within one hour I got these at

technocrati


Sorry, we couldn't complete your search because we're experiencing a high volume of requests right now. Please try again in a minute or add this search to your watchlist to track conversation.
codehaus.org


We are currently experiencing disk problems with beaver.codehaus.org. The problem is being looked at by our service provider
sourceforge
developper cvs is (once again) still down.

moola
I read this on their blog

Who said, webapplication was easy ?

Ruby on Rails is competing with PHP not with Java !

While reading this article What's the secret sauce in Ruby on Rails? you'll find
  • Hype and skepticism
    • Rails philosophies
      • Seamless integration
      • Convention over configuration
      • Low repetition
      • Immediate feedback
    • Focus on a niche
      • Model-view-controller
      • Project directory structure
      • Architecture
      • Tooling
  • The developer experience
    • The feedback loop
    • Interactivity
    • Convention over configuration
  • What can Java developers learn?
I have to be honest I was reluctant to ROR because I thought it was competing with java, but in fact I just realized I was wrong, Ruby on rails is not competing with java ... but with PHP !
Let's face it, with ROR you'll probably wrap up a simple web site in hours like with PHP, but when you'll need to add some real features in it, you'll miss the large panel of existing frameworks/library ... just like for PHP.

I'll stick with java for some more time ...

Sunday, May 14, 2006

Linux boot process explained

Here is an article that explains the Linux boot process, you'll find
  • Short history of the UNIX operating system
  • Booting the Linux operating system
  • The init process
  • The initialization files in /etc/inittab
  • The files in /etc/rc.d/rc.sysinit
  • The /etc/rc.d/init.d directory
  • The login process
  • Linux's execution levels
  • Modification of execution levels
  • The directories of execution levels
  • Changing the current execution level
  • Adding a service to an excution level
happy reading !