Warning: disturbance in the source
Matt Raible: Upgrading Roller and Happiness. I've been meaning to upgrade this site to use the latest Roller CVS source for quite some time (about a month), but haven't got around to it. However, Dave and Lance have been checking in enhancements like mad lately, so I don't know if it's such a good idea.
Yep, now is not the time to grab Roller from CVS and upgrade your Roller-based weblog. I'm in slash-and-burn, rip-and-replace, and code-away-the-night mode, and upgrading Roller right now is not the path to happiness. Wait a couple of days until things settle down a bit.
Matt also has some cool ideas about the Rollers comments feature, which still needs some work. He also wonders what defines Roller 1.0. That is a good question.
I like the philosophy of under promise and over deliver, and in this case I think that means that we should announce plans only for the next release, which in our case is Roller 0.9.7. I also like the philosophy of release early and release often, and in this case I think that means we need to try to polish up a 0.9.7 release in the next month or so.
I'm not sure exactly what features we need in Roller to call it Roller 1.0, but I do think that we will know when we are there. What features do you think are must-haves for Roller 1.0?
Re: and Happiness
Matt Raible writes about how he plans to fulfill his New Years resolution to be happy and he lists a number of goals that will lead him to that. I could have written that list myself: I need to do almost the very same things.
It is interesting to see the conflict that Chris Winters mentioned between work-related goals (e.g. open source development) and personal goals (e.g. wife and kids), laid out point-by-point. Work related goals like "learn more Java" and "getting a new laptop" standing side-by-side with personal goals such as "spend more time with my family" and "get off the computer."
I've always felt very lucky that I can get paid to do what is essentially my hobby: software development. Sometimes, I wonder how I would get by if it was not my hobby. Keeping up with the constant changes, new technologies, and new techniques in software development takes a lot of time. As Rafe Colburn pointed out some time ago, you have to carefully chose how you invest your learning time. Of course, you really need to carefully choose how you invest all of your time.
I wish I had some great insight to share on this topic. I guess all I can come up with is this. Spend your free time doing things that are fulfilling and things that are fun, don't worry so much about trying to sharpen your work skills or build-up your resume. Sometimes the things that are fulfilling and fun will also be things that are work and career related, that is fine. However, if you spend too much time on the work and career side of things even as a hobby, you may regret it later. If you spend too much time with the people that you love, you'll have nothing to regret.
Re: False Delima
Bill de hOra: False Delima. Coding is important. Design is important. They're so important, we should be doing them all the time. And that's very much what programming is, designing while coding. It's a mistake to separate the two.
Bill is commenting on Tom Klaasen's comments on my comments in my post Loving what you do. I guess my post was a bit of a <a href= "http://www.rorschach.com">Rorschach test because Tom thought I was talking about programming when in fact I never mentioned the word programming or coding at all. I was talking about software development, which is, as Bill correctly points out, a combination of analysis, design, programming/coding, and other activities.
I have to admit that the idea of a guy who sucks at programming doing analysis and design is a little frightening. I hope Tom is just being self-deprecatingly modest.Someday...
James Strachan: Using Wikis for documentation in open source projects. One day it'd be nice if open source projects used a combination of wiki and blog for project news, design documents and documentation.
It sure would make the Roller site easier to maintain and easy to add stuff on-the-fly.Re: Raising the bar
Now <a href= "http://www.zanthan.com/wordsintobytes/archives/000899.html#000899">there is a real dad.
Now I'm feeling inadequate. Shown below is my dad activity for the afternoon:
<a href= "http://shop.lego.com/product.asp?id=%7B96D1A1F5%2DC427%2D11D6%2D8024%2D00065BA09B53%7D&OrderBy=0&CatID=%7BA319A2F3%2D2540%2D4F7E%2DA702%2D4FF709118FB7%7D">
Rolling right along.
Lance and I have been doing some Roller work this week. Lance has been working on improving theme editing/switching and pluggable persistence. I have been working on improving Roller's referer tracking capabilities. Also, I ripped out Roller's lame little logging interface org.roller.Logging and replaced it with Jakarta Commons Logging.
Eclipse 2.1 M4 out of memory!
I moved over to Eclipse 2.1 M4 recently and, for the most part, it has been working great. However, I have to restart it every hour or two because it keeps on running out of memory.
Loving what you do.
If you don't love what you do, then <a href= "http://rc3.org/cgi-bin/less.pl?arg=4796">Rafe is probably not going to hire you. He wants passion. He wants you to love what you do. I have to agree. When I'm involved in interviewing prospective developers, I look for the geeks: people with a passion for software development, learning, and exploring new ideas. I once heard of a developer who was asked the interview question "what do you like about software development?" and responded "that is like asking me what I like a about breathing." That is what I want to hear. Passion and enthusiasm are usually attibutes of people who are <a href= "http://www.joelonsoftware.com/articles/fog0000000073.html">smart, and get things done.
Try weird stuff, see what works.
"If you don't love it, fuck it, it's not worth doing.
"The money part is not the important part, the important part is the opportunity to get your hands wet, to go out there to jump around, fuck around, make mistakes. Try weird stuff, see what works.
[Jerry Garcia inteviewed by Ed Cone]
A not so brief history of Roller.
Roller started out in Spring 2000 as a project named "Homeport". I started Homeport to teach myself about EJB programming. At the time, I knew nothing about weblogging, RSS, and all of that jazz. Below is the opening paragraph from my May 2000 Homeport design document.
A HomePort is a cross-between a homepage and a portal, sort of a personal portal for you and for those you wish to share news and favorite links. Your HomePort page can be configured to serve as your homepage -- your web browser's start-up page, with all of your favorite bookmarked links and a Java applet that allows you to search all of the major search engines and directories. It can also serve as your personal portal -- the place where you share news stories, interesting URLs and other easily-updated items.
Sounds a lot like weblogging software, doesn't it?
So, working in a vacuum without knowledge of weblogging, I invented weblogging. You know what I mean: I invented weblogging like Columbus discovered America. If you ignore the fact that indians, native americans, aztecs, etc. had been living in the Americans for thousands of years and had in fact built entire civilizations there, the statement 'Columbus discovered America' is a true one. So, I invented weblogging and now I'm in the process of pushing the aboriginal webloggers west and eventually into little reservations where they will no longer bother me with talk of <cite> tags, RSS 2.0, trackback, and other stuff that I will soon invent. This is totally fair of course, because I discovered weblogging. At this point I would like to point out that, if you don't know that I am kidding then you are an idiot.
Anyhow, back to Roller, er, I mean Homeport. I wrote a design document for homeport, I drew diagrams of the data model, and I even mocked up an interface using the HAHTsite IDE. Below is one of those artifacts. Normally, I hate the word 'artifact' in regard to software development, sooo pretentious, but this really is an artifact: an old and dusty relic dug up from days gone by.
By April of 2001, I had a working prototype of Homeport that used EJB for persistence. I was using the Borland EJB container and XDoclet, but I had not yet learned of Value Objects, Session Facades, Business Delegates, and other patterns necessary to make EJB performance acceptible. Homeport was as slow as molasses and I was pretty discouraged. Eventually, I learned how to use the Business Delegate and Value Object patterns to solve my performance problems and to hide the EJB APIs from my application. Once I did that, I found that I could ditch EJB entirely and EJB was becoming tiresome so that is what I did. I implemented the whole Business Delegate and Value Object dealio with Castor.
The project that I started to learn the wonderful and resume-enhancing EJB technologies eventually taught me that EJB is a tiresome pain in the ass. I believe that is called irony. Maybe there is some class of applications for which EJB is well suited, but maybe not. I'm pretty sure that the intersection of the fun-hobby-projects and the EJB-class-applications sets is an empty set, at least for me.
During the Summer of 2001, I happened upon the aboriginal bloggers. I discovered Dave Winer's weblog and Radio UserLand. I started a weblog, but I did not know what to write about and so it withered and died. I greatly enjoyed Winer's blog and I was pretty intrigued by the Radio software, but I thought that the desktop app's UI was horrible and I had absolutely no interest in learning some weird proprietary and single-purpose scripting language. I decided that, if I added templates to Homeport, I could replace Radio and so I started working on Homeport with renewed vigor. Homeport would be something to write about.
As I worked on Homeport, I started to realize that there are a tremendous number of excellent open source Java development tools. I was amazed by strengths of Ant, Struts, Velocity, and Castor. These tools were awesome and when tied together with XDoclet, they formed a complete development environment better than anything that I'd seen during my time working in the dev tools groups at Rogue Wave or my current employer. I decided that I should write a magazine article about these tools and use Homeport as the example.
By February 2002 when I submitted the article to Java World and OnJava for consideration, I had renamed Homeport to Roller and had finished the majority of the development work. I can't remember why I renamed Homeport or why I chose the name Roller. On April 5, 2002 I made the first release of Roller, version 0.9.0, available on SourceForge. On April 11, 2002 I started a Radio-based weblog to help publicize Roller. The rest is history and is well documented on my weblog, so I don't need to write anymore. Here are some of the significant dates in that history:
- April 5, 2002: Roller 0.9.0 released
- <a href= "http://www.rollerweblogger.org/page/roller/20020410#p_startfragment_first_post_p">April 10, 2002: Blogging Roller started as a Radio blog
- <a href= "http://www.rollerweblogger.org/page/roller/20020419#p_i_was_out_of">April 17, 2002: <a href= "http://www.onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html">Building an Open Source J2EE Weblogger published
- <a href= "http://www.rollerweblogger.org/page/roller/20020429#p_i_ve_gotten_a">April 29, 2002: Roller 0.9.1 released
- <a href= "http://www.rollerweblogger.org/page/roller/20020608#font_size_2_b_roller">June 19, 2002: Blogging Roller goes live on CQHost
- <a href= "http://www.rollerweblogger.org/page/roller/20020621#leo_michael_johnson">June 21, 2002: Leo is born
- <a href= "http://www.rollerweblogger.org/page/roller/20020630#i_m_back1">June 29, 2002: I move Blogging Roller from CQHost to <a href= "http://www.kattare.com/index.kvws?referer=roller">Kattare
- <a href= "http://www.rollerweblogger.org/page/roller/20020701#strong_font_size_2_roller">July 1, 2002: Roller 0.9.3 released
- <a href= "http://blogs.application-servers.com/blogs/page/dgirard/20020731">July 31, 2002: <a href= "http://blogs.application-servers.com/blogs/index.jsp">blogs.application-servers.com announces beta
- <a href= "http://www.raibledesigns.com/page/rd/20020801#roller_installed_successfully">August 1, 2002: Matt goes live!
- <a href= "http://www.rollerweblogger.org/page/roller/20020807#welcome_to_lance_lavandowska_and">August 7, 2002: Matt and Lance join the Roller project
- <a href= "http://roller.anthonyeden.com/page/aeden/20020807">August 7, 2002: Anthony Eden starts offering Roller accounts for free
- <a href= "http://brainopolis.dnsalias.com/roller/page/lance/20020822">August 22, 2002: Lance goes live!
- <a href= "http://www.rollerweblogger.org/page/roller/20020831#roller_0_9_5_released">August 30, 2002: Roller 0.9.5 released
- <a href= "http://www.rollerweblogger.org/page/roller/20020920#weblogger_com_update">September 20, 2002: Weblogger.com threatens to sue, then backs down
- <a href= "http://www.rollerweblogger.org/page/roller/20021022#roller_0_9_6">October 22, 2002: Roller 0.9.6 released
Christmas loot.
My wife and I decided not to exchange gifts this year. I had been
warned by other males that this type of arrangement would not work, but
I have the (apparently) rare and wonderful sort of wife that does not like to shop,
does not like jewelry, and really truly did not want me to buy her
anything for Christmas this year. So I didn't. Instead I
bought myself a couple of "work" books: Learning the bash Shell (so I can ween myself from csh) and Essential XML (so I can fill in the giant gaps in my XML knowledge base).
For Christmas, I recieved a Borders gift certificate. I used it to order Java Development with Ant and Struts in Action.
I also recieved a nice little stack of CDs from my brother
including: The Clash/This is Live Clash, Big Star/What's Goin' Ahn,
Elvis Costello/Cruel Smile, The Cure/Greatest Hits, and Bill
Hicks/Dangerous. I've ripped and listened to them all. All are excellent, although 'This is Live Clash' is a bit rough (to be expected, of course).
MozBlog success!
I was able to get MozBlog to work with my local copy of Roller 0.9.7-dev. The problem was in the Blogger API getUsersBlogs() method. Roller was returning an empty string for each user's blog URL. One blogger client (w:bloggar) had no problem with that, but MozBlog choked on it. Next, I'm going to try to get blog titles titles to work via MozBlog and w:bloggar. I think this can be done without going to Blogger API 2.0, but I'm not absolutely sure about that yet.
Unsightly Tomcat port number issue.
I've been trying to figure out why Mozblog will not work with Roller's Blogger API implementation. I haven't had much luck, but I have again come across an irritating little issue with the Servlet API request.getRequestURL() method. I'm calling on the blog support line for advice.
Tomcat/Servlet experts, what do you make of this comment from Roller's RollerContext.getContextUrl() method?
// If you are running Roller behind a foreground server, // then your Servlet engine may be operating on a different // port than your forground server. For example, I run Roller // on a Tomcat background server that operates behind an // Apache foreground server. My Apache server is on port 80, // but my Tomcat server is on port 1003. // // If this is the case, then request.getRequestURL() may // return a URL that is valid but that includes an unsightly // and unnecessary port number that you would rather not // include in weblog permalink. In other cases (e.g. you are // running a standalone Tomcat instance on port 8080) the port // number is essential. // // To deal with this the Roller getContextUrl() method uses // a configuration parameter to determine if it should include // a port number. It calls request.getRequestURL(), parses apart // the result, and builds a context URL suitable for use in a // permalink with or without a port number.Is that clear? Is there an easier way to deal with this issue?
"blog entry" vs. "blog"
I've noticed that some bloggers refer to each blog entry as a blog. I think this is a UK thing (and therefore it is wrong ;-) but I'm not sure.
Reading blogs in context.
Chris Winters: <a href= "http://www.cwinters.com/News/show/?news_id=764">Reading Blogs. "I like having context for blog entries: seeing the layout, surrounding entries, photos and so forth. I like knowing who is writing a particular blog, which is why I get ticked off when someone doesn't readily identify themselves on a blog."
I keep on going back and forth between reading blogs via an aggregator, via a bookmarked group of tabs, and via <a href= "http://www.javablogs.com">java.blogs. I keep on returning to the group of tabs approach because it is the best way to hit all of the blogs on my reading list and to read each in context.
I don't like the way that some blogs show you a permalinked blog entry by only showing you that one entry, alone on a page, and sometimes with comments. Blog entries do not always stand alone.Let's get physical.
Boy, Jeremy Zawodny sure is easy to irritate. I think the word physical refers to the physical layer of a network. If your database is remote, then a new database connection may require a new network connection. Don't forgo connection pooling just because you are using MySQL, you will still gain significant benefit from using a connection pool.
Dollar store christmas presents.
We had a very nice Christmas eve dinner in Chapel Hill with my parents,
known as G'ma and P'pa by the kids, and my brother Dan. We had
dinner and dessert and opened presents. This year the kids
received lots of Lego sets and lots of Rescue Hero toys. They
were unbelievably excited! It was interesting how they reacted to
the toys. Alex had a pretty good idea of what he would get, he
knew what he wanted, and he was really happy to finally get what he had
asked for. Linus, on the other hand, did not remember what he had
asked for, enjoyed the act of opening presents, and was very
disappointed when the flow of presents stopped. He seemed
disappointed with his presents and said, this was a "horrible
Christmas, all I got were Rescue Heroes." He was just whining of
course, because ten minutes later he was saying that Resue Heroes were
the best presents in the world. I think that Alex reacted the
same way last year, so I guess it is just a "phase."
We tried something new this year. We asked the boys to select and
purchase with their own money presents for all of the family members
who would be at Christmas. Being only 4 and 6 years old, they do
not have a lot of money and so, they did their shopping at the
one-dollar store where each and every item costs only one dollar.
This was Andi's idea and it was a great idea.
I took Alex to the dollar store. Everything was going fine until
it was time to buy Linus' present. Alex did not want to buy Linus
something nice. I guess he was trying to preempt jealousy.
I would say "Alex, how about this cool motorcycle" and he would
answer "no Dad, he would like these little gray balls." Even the
lady who was stocking the shelves noticed that he did not want to get
his brother anything nice. Finally, I had to pick something for Linus.
Money was the next problem. I asked Alex for his money, his
lifetime savings of eighteen dollars. He was so shocked and
disappointed that he would have to use his own money to pay for the
presents that he wanted to drop the shopping basket and return home.
I convinced him not to do that by telling him that he could also
use his money to buy something for himself. He picked up a bag of
300 tiny toy soldiers and went to the register to pay.
Andi took Linus to the dollar store and he was more than happy to buy
Alex a present, in fact he wanted to buy Alex lots of presents.
Alex and Linus are so different! Alex is independent, a bit
of a loner, and a little selfish. Linus is more dependent,
outgoing, very sharing, and generous. I don't think this is just
a phase.
At Chrismas, the boys were very excited to see everybody open up the
presents that they had chosen. They did a great job of chosing
presents to suit the different people in their live. The one
dollar presents turned out to be the most meaningful presents of the
day.
I'm back.
I'm back and getting geared up to do some Roller work again. I'll probably start out by upgrading to Eclipse 2.1 M4 tonight, then who knows? I still need to address the FreeRoller main-page performance problems. I'll also be catching up a bit on blogging, which I have been neglecting.
« Previous page | Main | Next page »