Saturday, December 24, 2005

New site popularizes feed icons

The Firefox feed icon (see below) is going to be the new de-facto standard for feed icons - for both RSS and Atom feeds. A new site, Feed Icons, has been set up to popularize the icon and provide high-quality versions of it.

- Noam.

Tuesday, December 20, 2005

Performancing: blogging extension for firefox

This post is edited and published from Performancing for Firefox. This is an extension for blog publishing, straight from the browser - without going to first. It's way cooler than Google's "Blog This!".
It also allows me to see (and edit!) previous posts - and almost completely replaces Blogger's dashboard. Very nice UI!

Still missing: a spell checker.

Thanks, Asa, for the link.


Sunday, December 04, 2005

Firefox Extensions

I'm trying to think of creative uses for tags. My first one - that's also practical - is recommending Firefox extensions.

I have tagged the installation pages of my favorite extentions as my-firefox.

- Noam.

Saturday, December 03, 2005

Moving my paper

The problem with finishing college, is that they don't let you keep your home page. At least that's the case in my college.

So as of now, the paper I wrote with Dr. Iaakov Exman, "Compact Comparison of Competing Software Designs", is hosted in Yahoo!'s Geocities instead.

Update, 29/Apr/2006: another copy can be found in Google Pages.

- Noam.

Friday, December 02, 2005

Google Analytics: Flash?!

Google's Web Analytics service seems very nice. It's a well-done AJAX application. Except that...
  1. Some parts of it use Flash instead of JavaScript. This is strange, and doesn't fit the current trend (across the Web and in Google's sites).
  2. One of the features is a map - you can see where in the world your visitors come from. The big surprise here, is that it doesn't use the Google Maps API. Instead it uses... A FLASH map!

I'm almost certain this is just because they bought the software (from Urchin), and that they're going to "fix" it to be a regular AJAX app that uses Google Maps.

- Noam.

Tuesday, November 15, 2005

Google Analytics

Google has just launched Google Analytics a web site traffic analysis service. They offer it for free. It is based on software from their recent acquisition, Urchin.

I just installed it on this blog, to check how good it is.


Wednesday, September 14, 2005

Google has launched a blog-search tool


Is that the end of Technorati? I hope not, I kind of like it.

I guess now Yahoo/AOL/MSN will buy them.


Saturday, July 23, 2005

Google Suggest for Firefox

This is really cool. If you use Firefox (which you should) and Google - and you like Google Suggest - you'll love this new Firefox extension from Google. Google Suggest for Firefox integrates Suggest into the Firefox search box. The result is really nice.

Tag: ,

Music: Live8, AOL, Yahoo!

If You like music...
  1. AOL has the entire Live8 show online, on-demand. The quality of the streaming video is pretty good. You can select any played song, and just view it within seconds. I couldn't get it to work with Firefox though - only IE.
  2. Yahoo!'s LAUNCHcast service is very nice. Basically, you select your favorite artists and genres, and let the system play songs that much your taste. And when you hear new content, you can rate it - and the system learns your taste better. The best thing about this service - it's free. The second best thing: you get to know new artists.
Tag: , , ,

Friday, July 01, 2005

Enum Code Generation

Once you start playing with code generation, you can't stop. At least, I can't.

One of the new features in J2SE 5.0 (or 1.5) is enums. I've missed enums for a long time, and I usually used the unsafe "static int" enums when I had to use them. The new version of Java provides real, type-safe, enums - but unfortunately, I can't use it, because I code for an old version of the language.
So I developed my own type-safe enums, based on Joshua Bloch's suggestion from the Effective Java book.

My idea is to describe the enum using XML, and then use XSLT to translate it to Java. The XSLT stylesheet adds all the boilerplate code required by type-safe enums.

One advantage of using XML+XSLT is portability between languages: at work, I build a Java component of a mostly-C++ project. The other engineers in my group have defined their enums in C++, and currently, to communicate with their code, I have to manually update my enum with theirs. If the enum is defined by using XML, we can write another XSLT that translates it to "regular" C++ enums.

I will publish my XML format + XSLT translator here, after I clean it a bit.


Saturday, June 25, 2005

Gmail vs. Blogger Composer

Speaking of Gmail: I wish Google will unify the Gmail and Blogger message/post composers. They are almost identical, but each of them has its advantages:

Gmail: looks better. The "font" and "size" selectors are smaller (better). Better speller.
Blogger: Allows images to be inserted to the post. Allows HTML source editing.

In Gmail, you can only insert an image that is already hosted somewhere on the web (like it used to be with Blogger). You add an image by dragging it from a webpage to your message. You cannot however embed an image that is attached to the message.


Gmail subdomain changes

It seems like Google is changing Gmail's subdomain from to When you go now to you are redirected to - instead of the regular
For a few minutes the domain was unavailable, now it redirects to the new subdomain.

I wonder if it means anything about Gmail's name. Will they change it from Gmail to Google Mail?

Anyway, they'll have to update their help item about phishing to reflect this change, or some people will mistake them for phishermen...


Google adds image upload to

Finally, users can easily upload and add images to their posts, without using 3rd party image hosting solutions. This was only a matter of time, after Yahoo! had acquired the service most used for that purpose among Blogger users - Flickr.


Thursday, June 23, 2005

Finally, the Final Project is over

I'm happy to say that my Final Project, on which I blogged here in the past, is done. The project is a Statecharts code generator and simulator suite. It uses technologies like XML, UML, XMI, XSL, Java, Swing, and more. Yes, it is fully buzzword-compliant ;-).
The project was built for a large high-tech company, and by their requirements. It was very interesting to design and implement. The only "problem" is that now I have to write a report about it, for the college (Jerusalem College of Engineering).

Since the project itself is not yet production-quality (more like an initial alpha), it requires more work. And since I already work for this company (although on a different project), I might help in its future development.


Monday, June 20, 2005


I've just added a Blogroll section to this blog - you can see it in the right sidebar ("I Read"). It is powered by, which is the news aggregator I use.

I will later customize the appearance...


Friday, June 17, 2005

Bruce Eckel on Object Design

If you're into Software Engineering (like I am), you'll be interested in reading Bruce Eckel's blog post on Object Design. He writes (also) about how people confuse abstraction layers, and how the UML doesn't help in this field.
I also wrote a comment in the thread, which I'll duplicate here (but first read the original post):

I'm a Software Engineering student - graduating in a few weeks. My final project is a Statechart code generator + simulator for a high-tech company.
Interestingly, I had two problems with UML while developing the software:

1. The designer of the statecharts I had to generate code from uses UML it in a very abstract manner. For example, in actions he doesn't call real functions - he just puts some text that will mean something to someone. That's because this is the company's first attempt at code generation - and the designer "knows" that a human will read the charts and translate them into code (and not a computer).

2. When, in the middle of the year, I had to prepare UML diagrams to document my own software, I found it impossible: most work (code generation) was done in XSLT, which is not OO - so I found no matching UML diagram. Instead, I came up with a DFD that shows what my software does. Since DFDs are not part of the UML, and because I found no open-source DFD diagramming tool, I had to use... PowerPoint!

For fixing the first problem, I wish UML tools had "design modes", something based on Fowler's UML Mode ( referred-to earlier in this thread. That is, in the "sketch" mode, the tool will hide those detailed-design features of the UML (like composition/aggregation). When running in "programming" mode, users will be able to add these details to the model. Later, when the high-level designer edits the model again, those features will be hidden - but will remain in the model. I realize that doing this correctly is not trivial - it's in my wish-list nevertheless.

The second problem is different. UML is for OOAD, not procedural/functional design. But there are still projects that use the older methods. What diagrams should they use? In my college, they teach UML thoroughly, but say next to nothing about the other options - as if one should never develop non-OO software.


Saturday, May 14, 2005

The Search Engine Relevancy Challenge

This is interesting. RustySearch allows a "search engine blind test". You enter your keyword, and it queries - in random - one of Google, Yahoo, MSN, and Ask Jeeves. It then displays the results, and allows you to rate them (1 to 5) - without telling you which engine it came from. Results from all engines are using the same template.
There are also initial results (they are not displayed in real time), after 5,000 votes:
1. Yahoo (3.4287)
2. Google (3.3668)
3. Ask Jeeves (3.2602)
4. MSN Search (3.0855)


Saturday, May 07, 2005

Google Web Accelerator

So, Google wants to be the world's web proxy server? I don't think it's such a good idea. Why? Well, start with thinking on why they want it. They want to know more about web users. Much more. If you use GWA, all of your web traffic goes through their servers. They will know everything about you, maybe even more than yourself - because they will have the chance to analyse your behavior.

They say they do prefetching. Firefox does that, and only when appropriate (i.e. when the website uses a special html attribute). They say they compress the data sent. Well-configured web-servers already do that. And the mere functionality of a proxy server, in the past, was the responsibility of ISPs.

Plus, when yesterday I installed it - just to check it out - it killed my Firefox. I had to uninstall GWA, then restart Windows, to be able to use Firefox again. I have no idea why, but I saw another user complaining about it in slashdot (and another one in a blog comment).

I may try it again after, in a few version, Google fixes some bugs and clarify their intentions.

Nathan Weinberg puts it all together on his excellent Blog News Channel.


Wednesday, May 04, 2005

Is software engineering, math, science, or what?

There seems to be a debate going on in the Software Engineering world, about whether SE is really Engineering. I don't know who started it, but it's interesting.
First, Allen Holub writes "Is Software Engineering an Oxymoron?". Then, as a reply, Jack Ganssle writes that "Software engineering is NOT an oxymoron". I tend to agree with Holub, but not entirely. They both have valid points.

In Artima, there's a discussion on the above articles.

Finally, there's this apparently unrelated article written by B. Jacobs, titled "Computer Science" is Not Science and "Software Engineering" is Not Engineering . I'm about 90% with him. A fascinating read, about 10 pages.


Saturday, April 30, 2005

I'm back

I took some time off blogging, because I was very busy. Now I'm back, and I've already posted two items, as you probably noticed.

I hope I can keep updating this blog. It's fun.


Friday, April 29, 2005

Firefox 1.0.x was downloaded more than 50,000,000 times

Two or three years ago I "found" a new web browser called Phoenix. It was based on the Mozilla rendering engine (Gecko), but was much smaller. I gave it a shot. I liked it, but it wasn't enough for me, so I uninstalled and forgot about it.

Some time later, I saw another new browser, also based on Mozilla. This one was called Firebird. Only after downloading and reading about it, I found out this was actually a new name for Phoenix. This version was much better (as far I as remember) than the Phoenix, so I kept it.

I updated Firebird with every minor version. One upgrade suddenly changed the name to... Firefox. Whatever. Firefox was a really good browser, so I stopped using MSIE (*).

I followed Firefox with anticipation through all versions. I was really happy when version 1.0 was out, and installed it on every computer I go to (work computers, friends computers, etc).

And now - 50 million is a real milestone. Wow.

Congratulations, Mozilla developers! Thank you, and keep up the good work!

(*) Except for annoying sites that won't render correctly in non-IE browsers.


Saturday, April 23, 2005

Gmail Blacklisted by

Gmail's SMTP (outgoing) mail servers seem to be blocked by I keep getting failure messages from servers I try to send mail to.
See: checkblock

This means that Gmail users (at least in my cluster) can't send mail to servers that use SpamCop's blacklist. I've notified Gmail, and I wait for them to take action.


Saturday, February 26, 2005

The Eclipse Modeling Framework

I've downloaded EMF, and I'm trying to figure out how it can help either my final project or my work in general (at work I also use Eclipse). I like the fact that it can generate a model from Java source code, but I wish it could also generate a Rational Rose model.
Can it do that?


Monday, February 21, 2005

My Final Project

Today I had a presentation-exam about my project. I talked about my progress and my future work. It went pretty good, but I didn't get a grade yet. It is expected in a week or so.

To summarize:
My project is about code generation from UML statecharts. Using Java and XSLT, I take the XMI that represents the statecharts, and generate a QHSM state machine in Java/C.

Confused? Sorry. I'll try to explain:
  • Statecharts are a graphical representation of complex systems. They are based on finite state automata, but extend (and complicate) them greatly.
  • UML is the Unified Modeling Language. It is a graphical language that allows software developers to describe their software designs in a visual way. Statecharts are a part of UML. There's a FAQ about UML here.
  • XSLT is a language for transforming XML into other text, including other XML. Here's a tutorial.
  • XMI (the XML Metadata Interchange) is a representation of UML data (and some other metadata) in XML format.
  • QHSM is "Quantum Hierarchical State Machine", which is Miro Samek's implementation of a state machine (a state machine is an executable statechart). It is described in his book.
If I'm not clear enough - please post a question as a comment below, and I'll elaborate on the topic of your choice.

For implementing both Java and C code generation, I use something like Martin Fowler's Two Step View pattern (I was actually told that there exists such a pattern right after I suggested my approach, which I though to be original) - first, I create an XML pseudo-code state machine. Then I take this XML and turn it to either a Java or a C state machine.

It was fun, and I learn a lot, especially on XSLT and XML. I have more things to do for this project. Among them:
  • Implement the C code generator - at the moment I only have a Java code generator, because that's the main priority of the company for which I develop the software.
  • Build some king of testing tool, that can take events from a script file and fire them at a running machine.

Sunday, February 06, 2005

This Blog is Still Alive!

I have not abandoned this blog. I'm still here. It's just that I'm very busy - work, exams, and the project are killing me. I'll be back.

Friday, January 21, 2005

Re: Site Statistics

In a previous post, I said I'm about to compare three site statistics tools. I installed all of them on my blog, to see which service offers the best deal (for free, that is). Well, I think we have a winner.

3rd place goes to RE_INVIGORATE. I'm sorry guys, I really wanted this service to get the first place. The interface is just horrible. Simple thing are made obscure. Sorry, but no.

2nd place: Site Meter. They are the first service I tried (just because they were listed first on this page). They have a very nice service, but they don't give enough of it for free. For example, if you want to see which search queries people used to get to your site, you have to pay for that (or analyse the referring URL yourself).
Site Meter also makes you put their logo on your site, which is sometimes annoying (because you have to find a spot for it in the site template).

The 1st place goes to StatCounter. Why? I like their business model: they offer all services for free, but a free account has two basic limitations: (1) Up to 7,000 (or was that 9,000? I can't remember) hits per day (which is more than enough for my humble blog) and (2) They only store the details (IP, referrer, etc.) of the last 100 visitors.

When you get bigger, and start making money from your site, you just upgrade your account to get rid of those limitations. I like that approach.

I will soon remove the images of 2nd and 3rd places from my template. Feel free to suggest other such free services. Only services that don't require banners/popups are welcome.

Thursday, January 13, 2005

Quantum Computers

Lately I'm into Quantum Computers/Computing/Computation. I've heard about this issue a few times in the past (once when it was mentioned in slashdot, once more when I read the book "Practical Statecharts in C/C++: Quantum Programming for Embedded Systems" which is related to my final project (the book is not about Quantum Computing).

I know almost nothing about Quantum Mechanics, but being a 4th-year Software Engineeting student, I know a lot about Computer Science. So I was looking for an introductory article that will explain QC to computer science people, without assuming we know anything about QM.

I found a few, but somehow they are not enough for me. The first one I read was Quantum computation: a tutorial by Samuel L. Braunstein. I undertood most - but not all of it, because it doesn't get enough into details IMHO.

Saturday, January 08, 2005

Statistics: SiteMeter vs. StatCounter vs. RE_INVIGORATE

When I first set up this blog, I registered with Site Meter to monitor the traffic. Their service is nice, robust and free, but somewhat limited. So I started looking for alternatives.
I found two "good enough" free alternatives:
  1. StatCounter - this service is free for sites that get up to 9,000 hits per day. Good enough for me. The service provides you all the details you need, including referrals tracking and search engine keywords. The only drawback I found so far - they only keep a log of the last 100 users.
  2. RE_INVIGORATE Data Archiving Services - this site looks somewhat hackish, because of its design. They offer a totally free service, but it seems limited in comparison with StatCounter.
I now have all three in my template. After a while, I'll decide which is the best. Since I operate this blog for fun, all I really care about is how many people read each post and what made them come to my blog.

XML tools - my choices

In a previous post, I wrote I was looking for XML tools. Well, here's what I use:
  1. Eclipse with the XMLBuddy plugin. XMLBuddy has a free version, and this is what I use most of the time. I can't afford the full Pro version for this project. What I like about XMLBuddy (other than that it integrates smoothly with Eclipse, which I use for Java) - is the auto completion feature. I know, all decent XML editors have this - but this one is an Eclipse plugin.. ;-)
  2. XMLSpy Home Edition. It has much more features than XMLBuddy, but it's also much bigger in installation size. Besides, there's something wrong about the auto-completion feature: it lets you choose between ALL XML elements, not just the ones that match the context (according to the DTD/Schema). I use XMLSpy mainly for XSLT.
  3. JAXP... sort of. My project will use Java to turn XMI statechrts into C code. So I'll use J2SE's built-in XML support, because it's pretty flexible.
I'm still looking for other, Open Source, XML editors.

Saturday, January 01, 2005

Faster PDF Reading

Adobe just released Adobe Reader 7. I don't know about new features, but like Asa Dotzler wrote in his blog, the startup time is much, much faster than the previous version(s). If you're a Windows user, you must get it, even if you only view one PDF file a week.