Thursday, September 28, 2006

Rake - internal Domain Specific Language using Ruby

I read a Martin Fowler's article about Rake (Using the Rake Build Language).

Rake provides solutions to the problems I encountered in the past.

The more I learn about Ruby related features, the more I get fascinated by Ruby.

Sunday, September 24, 2006

No Fluff Just Stuff Conference - session about Java Annotation

Several months ago, the speaker at the local Java Users Group criticized Java Annotation severely. And he said that for language design, it was better to have one person making the decision.

Today, one of the member JSR 175 committee did a presentation about Java Annotation. He explained the reason why certain syntax has its syntax. Some of them are because of the committee lead's decision not to introduce new keyword, some of them are because of implementation. For some decisions, the lead just said no.
So for me, the problem was more toward that one person making the decision.

The speaker at Java Users Group I mentioned at the first paragraph above was there and asked why not @annotation instead of @interface. The presentator agreed and by the time he came up with it, the specification was already published and it was too late. I thought that if they had made the greater community to vote on the naming, the community must have picked up that naming.

I am not an expert of language design. But I thought that it seemed to be better not to make one person make the decision.

That speaker I mentioned at the first paragraph above said in his talk at the Java Users Group, it's better to open source Java. Maybe he was in the same page with me in a sense to utilize the wisdom of crowd.

Anyway, it was interesting to see that his view toward Java Annotation seemed to have changed gradually by listening to the reasons of each decisions.

No Fluff Just Stuff Conference

I've finally got a chance to attend No Fluff Just Stuff Conference.
The last two days have been a blast.
This is one of the best conferences I have ever attended.

Still one more day left and I have to wake up early. So I can't write much.
But I just wanted to write something when it's still going on instead of after it's over.

BOF about Dynamic Language was good.
Those three panelists - their knowledge is amazing.
I want to have their level of understanding of the languages.
It must be a fun.

Tuesday, September 19, 2006

Disappointment in employment process

I was expecting to start working for a company practicing Agile Methodologies.
But despite the fact that I have been inquiring about employment conditions for over a month, all of them are ignored and they expected me to work without a written employment contract.
I was very disappointed.

At the first interview around the beginning of August, the person who interviewed me said that there were two options to work for the company - as a full-time employee or as a contractor with his/her own corporation. I expressed that I would like to be a full-time employee. He was open about it while he repeatedly expressed his preference of me working as a contractor with my own corporation. I suggested that in the second interview (the technical interview) he said that I would have in the beginning of September, I would go through more rigorous interviews for a full-time employee and if the interviewers thought that I was not good enough for a full-time employee yet, I would accept to work as a contractor.

I appreciated his time when he was extremely busy especially just before he was going for a long vacation.

There were several concerns about working as a contractor with my own corporation. One was non-compete agreement. So I sent him e-mail asking about it. But it was not replied probably because he was busy.

In September, on the day he had told me to remind him if I hadn't heard from him, I sent him an e-mail. There was no reply because he was extremely busy and I understood it. So I waited one week and sent him another e-mail. This time, I asked if it's possible for me to work as a contractor without establishing my new corporation. The reason why I did was that thinking of how busy he was, it wouldn't be a good time to ask for a possibility of becoming a full-time employee because that would involve more paper works. And also while he had said that he would help me to establish a new corporation, it was not realistic to ask for his help while he was extremely busy. So by working as a contractor without establishing my new corporation - basically working as an hourly paid fixed-term worker (determinant worker, as my acquaintance said), I would reduce his workload and his having me wouldn't become a burden when he was extremely busy.

But this e-mail was not replied, either.

Two days later, last Friday, he called me and asked me if I could come for the second interview. One of their clients needed a developer as soon as possible because one of the developers had a health problem and would be out for half a year. And he wanted me to work as a contractor. He didn't mention anything about my last question. Whenever the talk got close to it, he said, "Don't worry about it. We will talk about it later." But I assumed that he read my e-mail and that he was considerting my option. I went for the interview on the same day as soon as the interview was arranged. The developers who interviewed me were also busy and we had only a limited amount of time until their next meeting.

The next Monday, yesterday, he called me in the afternoon and told me that I would be working for the client. It would be three-month. He asked me to start working at 1pm the next day. He talked as if I would be working as a contractor with my own corporation, completely ignoring my suggesion. So I asked him if I can work as a deteminant worker (an hourly paid worker), explaining various points. And I said to him that that would be the only option that we could finish the necessary paper works before I start working the next day. He said that he would ask thier accountant if it was possible.

This morning, he called me and told me that my working as a contractor with my corporation (subcontracting) is the only way. I was reluntant. So he offered to discuss about it before I start working 1pm today.

We met at 12:30 and discussed the issues. I asked about the non-compete agreement. I asked why it was not possible to work as an hourly paid worker without establishing a corporation. He gave me two points - first tax issue, second they don't want to hire an employee without trying him/her out as a contractor. (I don't know why he had mentioned an option of becoming a full-time employee in the first interview.) He wanted me to start working without any employment contract.
My decision was that I don't work until we sign an employment contract. He said that he hadn't got a reply from the accountant yet even though over the phone he said that the only way is working as a subcontractor based on the discussion with the accountant. So I said that I couldn't start working until we got a reply from the accountant.
Basically, he needed a developer immediately for the client.

I have been expressing all my concerns in my e-mails. And I did everything I needed to do. And working without no written contract is not unthinkable and problematic for all the parties involved. I am upset that I ended up appearing that I was not showing up for the client site, because of his avoidance in answering my concerns. I have trusted this company for many months and I don't deserve to be treated in such a way.

I am very disappointed.

Thursday, September 14, 2006

JavaScript

At the local Java Users Group meeting today, I learned about JavaScript.

I found many similarities with Ruby. Having learned Ruby helped me to understand the features of JavaScript. As the speaker said, most of the people who have used JavaScript only knows the on-click feature, so do I. It's good to know more because those features are the ones used heavily these days, for example, in AJAX or Firefox Extensions.

I don't think I will allocate time to learn JavaScript and I would rather spend time to learn Ruby and Ruby on Rails more. But I would like to learn scripting language support of Java SE 6 (Mustang).

Tuesday, September 12, 2006

Travelling and programming

I'm in a National Park.
I am reminded how productive I become when I'm travelling, especially in scenic place (I mean I'm not including business travel. Business travel is still same as going to the office.).

Before I started this my Blog site in July, 2006, I travelled in the mountain areas and experimented how it is to work on software development while travelling. Because whenever I'm on road, I tend to focus more on programming work, become more productive and become more innovative and creative. I have been using EV-DO with Blackberry and even when there is no EV-DO signal in the area, I could access Internet through 1X connection. So basically I could access Internet anywhere.

I was definately more productive and achieved a lot.

In fact, I came up with the idea and worked on the jMock's support for JUnit 4, outside a mountain cottage looking at high Rocky mountains across the valley.

Now I live in an urban area and I have recently lost the sense I had when travelling. Then I came to this National Park and the sense and the feeling have come back.

Saturday, September 09, 2006

OSGi meets Spring

One of my acquaintances, the best software developer I have ever worked with as far as I know, recently sent me an e-mail with the link to InfoQ article about Spring 2's support of OSGi.

I remembered OSGi somehow from somewhere but I didn't remember what it was.

Then I started reading about OSGi and was reminded that it was Eclipse. When I was trying to write Eclipse plugin, sometimes I had a hard time tracing the code and understanding it because Javadoc for OSGi was missing. (The version before that didn't have OSGi dependency and I could trace the Eclipse code easily.) Around that time, somebody working on Eclipse at IBM said at OOPSLA that the reason Eclipse had been changed to be based on OSGi was because one of the department in IBM that was dealing with embedded system demanded it. He said that it was an unfortunate compromise. So I considered it as such.

As the result of today's reading, I learned that OSGi has been extended beyond embedded system and that now it's one of the promising dynamic module system. And it's concept is very exciting.

In the matter of within a few years or less, the perception has changed dramatically. And there are people who have been working on OSGi and innovating it.

There are so many things to learn and there are so many changes including perception. Again even more than before, I am convinced that it's impossible to do up-front estimate on software development.

Thursday, September 07, 2006

Becoming Lean - Mary Poppendieck's talk

I have just attended a local Agile users group's meeting. Today, Mary Poppendieck made a presentation about Lean Software Development.

I still need a time to organize my thought. But I am very excited and I just wanted to write this blog soon.

It was excellent. Every point she made totally made sense.

One thing she mentioned about Scrum was interesting, answering a question from an audience. It was about limiting the task to the capacity. I wondered about Project Backlog in Scrum myself. She answered that we shouldn't keep tasks in the backlog and ignore them. An interesting thing she mentioned was that Ken said that Scrum is for disfunctioning team. For properly functioning team, you don't need a backlog, she said.

And most memorable thing she mentioned today was Project vs Product. We should consider software development in the sense of Product. If it's Project, then fixed scope with up-front estimation is norm. But if it's Product, it usually works incrementally. It is a wonderful concept.

Can't wait to read her new book. When I went to Amazon website, the time to deliver was more than a month. So I think I will get one at OOPSLA. It's usually discounted and I can get author's autograph at the signing session.

Monday, September 04, 2006

Learning Computer Science using the knowledge from other disciplines

We all know the lack of sleep is bad for learning. We all know we human can focus on one thing no more than an hour. We all know working long hours can increase the possibility of human error. And we all know that working overnight is not good for our health and affect other part of our lives.

Those knowledge comes from learning psychology, biology, sociology, etc.

People in Computer Science field are quite educated people.

I am surprised that recently I learned that at a very famous top university, working on programming project until 4 in the morning is considered to be normal.

Most of the students are in early 20s and it's important for them to have healthy life style so that they can establish the foundation for the rest of their lives. Working overnight and long hours is not good for them. It is not educational because you cannot learn much in that condition. Also it deprives the time to learn other subjects from them.

Also equally importantly, from Agile Methodologies, we know that we cannot write a program expecting that it would finish at a predetermined deadline.

Forcing the students to work on the project to be finished on the certain deadline by making them work overnight is wrong both for their health and in the reality of software development.

We should incorporate what we know from other disciplines and create a new grading system to measure the students performance based on what the teachers expect in incremental way - just like in Agile Methodologies, where the value of the software is measured based on what the customers expect from it. At the end of each iteration with the fixed number of hours, the teacher evaluates the project based on the value not on the fact if the project has completed a predetermined content.

These days, athletes are getting benefits from disciplines such as sports psychology and nutrition science. It is an irony the people in Computer Science field who are considered to have more intelligence than professional athletes are working under the condition similar to that of early 20th century.

Saturday, September 02, 2006

Bruce Tate's article "From Java to Ruby: Risk"

On InfoQ, there is an article by Bruce Tate titled, "From Java to Ruby: Risk".

It's interesting. And the threads of comments are even more so.
I've been in environments recently where somebody makes too simple strong statement.
I miss the environment where much sophisticated discussion is made like in this article and its commnets.