Showing posts with label Blogging. Show all posts
Showing posts with label Blogging. Show all posts

Monday, June 4, 2012

Recent Software Development Posts of Interest - Early June 2012

There has recently been a large number of posts on some of my favorite topics and I summarize and reference a few of them here.

Why Developers Should Blog

I devoted a post to why I believe more software developers should write blogs. Ron Gross's post Why you should write a blog post today provides five reasons to write technical blog posts and contrasts blogs to other social media to demonstrate technical memento advantages of blogs.

NetBeans 7.2 Search Capability

There has been significant coverage of NetBeans 7.2 beta in recent weeks. Much of the focus has been on its improved performance, its greater helpfulness and its TestNG support. Geertjan Wielenga focuses on improved searching capability in NetBeans 7.2 beta in his post Beefed Up Code Navigation Tools in NetBeans IDE 7.2.

Running Common Java Development Tools with Ant

Modern Java IDEs often make it easy to integrate Java tools. An example is the NetBeans SQE plugin. However, not all Java development and execution necessarily occurs in the IDE. In addition, some projects may use more than one IDE. In such cases, command-line approaches have their advantages. These can be even easier to use when run as Ant targets. The post How to run Findbugs, Pmd, Checkstyle, JUnit and Cobertrua with an Ant Build-Script? covers using Ant to run popular Java development tools FindBugs, PMD, Checkstyle, JUnit, and Cobertura.

Upgrading Gradle

I think that Gradle has a lot of potential for being a very popular build tool if it can gain enough early traction. The post Upgrading Gradle demonstrates how easy it is to upgrade one's Gradle installation ("It’s basically the same as upgrading ant.").

SVG, FXML, and NetBeans

The post SVG to FXML using NetBeans comprehensively covers issues related to transforming SVG to FXML and ends with a link to another post showing how to use NetBeans to demonstrate the transformation.

Conclusion

There have been numerous posts in recent weeks on some of my favorite topics: NetBeans, blogging, Gradle, and JavaFX. This post has referenced a sample of these posts.

Saturday, December 31, 2011

My Most Popular 2011 Blog Posts

In this post, I briefly summarize my "eight" most popular "2011" posts (six actually posted in 2011 and two posted in late 2010). The two common themes of these posts seem to be broad applicability and future focus. I expected a few of these posts to do well and was surprised that some of these did as well as they did (and surprised that some others did not make the list).

8. All I Want for Java 8 Is... (27 April 2011)

The popularity of the post All I Want for Java 8 Is... is probably best explained by its focus on what may come in a future version of Java. Having DZone (a "Big Link"), reddit, and JavaWorld references also certainly helps.

[7.] Ten Tips for Using Java Stack Traces (22 October 2010)

I personally like the post Ten Tips for Using Java Stack Traces because I believe it is one of those posts that can be useful to people who are relatively new to Java and provides fairly comprehensive coverage and tips for these new Java developers in a very specific but common area. When I wrote that more developers should write blog posts, I had blogs like this one in mind.

6. Java State of the Union: One Year Under Oracle (12 February 2011)

This may be the most surprising post (to me) to have fared so well in 2011.

The post Java State of the Union: One Year Under Oracle turned out to be especially interesting to me now from a historical perspective. At the time of that writing, the future of Java was near a low point (perhaps back a little higher than its lowest point thanks to the already announced participation of IBM and Apple in OpenJDK). It's difficult to believe how much things have changed in the same year! At the time of the writing of my sixth most popular post of 2011, the focus was on issues with the Java Community Process (JCP) and talk of forking Java. Oracle, to their credit, seems to have had a handle on what was happening at this time and, by JavaOne 2011, had made some significant changes that changed the overall Java community outlook for the better. 2011 was a great year for Java, but we didn't necessarily have any reason to believe that would be the case in mid-February of this year.

5. JavaOne 2011: The Definitive Set of HotSpot Performance Command-line Options (3 October 2011)

When I registered for the JavaOne 2011 presentation The Definitive Set of HotSpot Performance Command-line Options, I had no idea how popular that session or my coverage of that session would be. I liked the presentation so much that I purchased the book for which he is the lead author: Java Performance (I hope to write a review of it in coming months). I thought everyone only attended presentations on trendy topics at JavaOne, but I learned that many developers share my same interest in getting better at working with Java in core areas such as performance.

4. JDK 7: New Interfaces, Classes, Enums, and Methods (31 March 2011)

The popularity of JDK 7: New Interfaces, Classes, Enums, and Methods is not surprising given the popularity of Java 7 topics in 2011.

3. HTML5 Date Picker (17 January 2011)

The HTML5 Date Picker post enjoyed advantages of being on a trendy topic (HTML5) and being posted early in the year.

[2.] Seven Indispensable NetBeans Java Hints (9 October 2010)

Although written in late 2009, this post on seven indispensable NetBeans Java Hints remained very popular throughout 2011.

1. JDK 7: The New Objects Class (26 March 2011)

My most popular post by far (more than twice as many hits as the #2 post) has been JDK 7: The New Objects Class. I believe that the popularity of this post is best explained by the fact that the Java 7 java.util.Objects class is generally appealing to Java developers, but is a new "feature" of Java 7 that has perhaps not been as covered as much elsewhere as other features of Java 7.

Conclusion

Common themes associated with my most popular posts of 2011 included trendy topics such as Java 7/8 and HTML5, but also included more core coverage of NetBeans, Java performance, and Java stack traces.

Friday, May 13, 2011

Personal Lessons Learned from The Blogger Outage

For nearly 24 hours, Blogger was in read-only mode. This period, combined with the advertised lock out for the maintenance that led to the corrupted data problem, has been frustrating for me as well as for numerous other Blogger users. In this post, I look at some lessons learned or observations made as a result of this experience.


It's Easy To Take Things for Granted

I've been blogging via Blogger since late 2007. Although this lock-out from Blogger for nearly a full day was frustrating, it reminded me of how well Blogger typically runs. I had become accustomed to few, very short outages before this and really took Blogger availability for granted. We all would like the products we deliver to customers to have zero downtime and 100% availability, but this was a reminder to me that many customers (including myself) can tolerate a one-time glitch if there is a proven track record of high availability. Of course, it's still best to avoid these outages as much as possible and to have them be as short as possible when they do occur. However, we have more opportunity to keep customers loyal during longer-than-anticipated outages if they have had longer periods of high availability most of the time.


It's Difficult to Complain about Free Service

I don't make a dime off of this blog and I don't have any advertisements. I enjoy writing the blog and gain non-monetary benefits from writing it. One of the luxuries of this is that it is easy to tell any unsatisfied reader that he or she at least got their money's worth. The Blogger staff has done nothing like this to my knowledge, but the hard truth is that many of us get typical high availability from Blogger without paying a dime for that service. Given Blogger's Service Issue today - Would you Pay for Service? is a Blogger forum thread that includes discussion about whether users would be willing to pay for Blogger use in an effort to get better support (including telephone or direct support beyond the general forum support).

I liked whoffkne's forum comment: "Yeah, I mean, seriously, what kind of service do we pay for...oh...yeah, right. =)" That summarizes it pretty well.


It's My Readers I'm Worried About!

In the Blogger "Something is Broken" forum thread Blogger Service Issues, ronniesaunders states, "I have a lot readers who depend on my blog as their primary source of news and information" and implied that this came at a particularly frustrating time: "A military compound in Pakistan was just bombed and 80 people have been injured and my blogger service is down."

My thoughts were along a similar line as ronniesaunders's, but to a lesser degree and about less important news. I wasn't so much worried about letting down my two readers, but I did want to publish mention of the just-announced JavaOne 2011 session submission tips while the news was still hot. At least with the read-only mode, I slept well knowing that my loyal readers could still read about interesting posts as of May 10. I had not realized how much I enjoyed being able to write a quick post about a new event as I learned about it and how frustrating having to wait another day to do so could be.


Maybe It's Time to Start Being Superstitious?

On the previously mentioned Blogger forum post Blogger Service Issues, themusesguild brings up something I had not previously considered: "Hey Guys,Three Simple Words...Friday The 13th."


Any News is Good News

One of the most difficult things about this issue was not being aware of when service might be restored, how complex the underlying problem was, and not knowing the fate of posts and comments published in the vulnerable period between the problems and the application of the read-only setting. This uncomfortable feeling of not knowing when service would be restored or what, if anything, bloggers should start doing is expressed in the Blogger forum thread Recent Blogger service issues. JMan360's comment likely articulates what others were thinking: "They really need to tell us more. I don't know whether to start redoing everything or not. I'll be irritated either way. Why don't they tell us more details?"

In another Blogger: Something is Broken thread, poingly asked, "Why do you refuse to give an ETA for restoration of Blogger service?" The discussion that followed included covering the challenges associated with coming up with such estimates and the distractions that coming up with such estimates can cause. On the one hand, users want an estimate. On the other hand, users don't necessarily want the ultimate solution put off even longer in order to provide the estimate and users especially don't want to be given repeatedly changing estimates. The lesson that might be learned here is that a best guess estimate might be provided with a whole bunch of associated caveats.


It Could Happen to Me!

Many of the bloggers who use Blogger are not developers and will never be in a situation where they are responsible for creating, delivering, or maintaining a software product used by numerous users. They don't have to be concerned with issues like availability, redundancy, and scalability. For we developers, however, this is a reminder that we do need to care about such issues. With heavyweights such as Amazon and Google experiencing these down times recently, it's a reminder that it can happen to any of us. We have to do our best to avoid it and need to be prepared to deal with the unexpected when even our best preventative efforts fail.


Backup!

No matter who is storing your data "on the other end," it is important to store one's own data in a backup as well. This event was a reminder to me that I had not exported my blog via Blogger's export mechanism for some time. I'll be doing that this coming weekend.


Conclusion

Personally, I'm not ready to abandon Blogger over this single issue. It was frustrating at times, but I also was reminded of how good the service has normally been and appreciate it more now. I definitely hope not to see something similar for some time and believe that nothing has been lost.

Monday, April 25, 2011

On the Value of Reading Blog Comments

A link to Andy Lester's Perlbuzz post Slipping away from the Perl community is currently featured on reddit Programming. Although I generally try to minimize my exposure to Perl, I find this post and its reddit reference interesting for several reasons. One of the reasons the referenced post interests me is that the post itself talks about a legitimate problem in the blogosphere in general and in our industry in particular. I'll only briefly look at this issue in this post. The reddit reference interests me because of the value of the comments. It is what I learned from these comments that interests me enough to write this post. As a side note, it's nice to see new reddit posts again after Amazon EC2 going down last week and taking reddit with it.

In "Slipping away from the Perl community," Andy Lester's articulates what many of us who have used online resources since the early 1990s have observed: online civility seemingly continues to move to a new low. One of the things I learned from a comment on the reddit reference to this post is that there is a term for this particular phenomenon: Eternal September. Wikipedia describes "Eternal September" as "a slang expression, coined by Dave Fischer, for the period beginning September 1993" that "encapsulates the belief that an endless influx of new users (newbies) since that date has continuously degraded standards of discourse and behavior on Usenet and the wider Internet."

Although there are no comments on the "Slipping away from the Perl community" post itself as of this writing, the number of comments on the reddit reference to the post is approaching 400. Skimming through some of these comments, I have learned a few new things besides the term "Eternal September." One of the interesting things I picked up from a comment is the availability of Modern Perl in various forms at no cost. Although I only use Perl in rare circumstances these days, the three or four books I have on it are somewhat dated. Of course, they still apply for the most part, but it is nice to have another resource available with a more modern perspective on Perl.

Another comment on the reddit reference pointed me to a blog post that I don't recall reading before: Steve Yegge's Ancient Languages: Perl. Yegge is one of the flew bloggers I've read who is more verbose than I am and this post is no exception. In this post, Yegge explains why "if I ever start my own company, Perl won't be allowed there" despite Yegge's opening statement, "I like Perl."

There are numerous other comments on this post that I found interesting either because they reiterated my beliefs, challenged my beliefs with credibility, or presented something I had not thought about before. There are, of course, some of the very types of comments the original post was about (mean spirited). At a very high level, the comments remind one that there are still many developers using Perl, there are many developers who formerly used Perl, there are many developers who feel something else (often Ruby or Python) is now better than Perl, and there are many developers who feel Perl is still the best thing going.

One final observation that is clearly made from the fact that the post itself has zero comments and the reddit reference to it has nearly 400 comments is evidence of the own downside of aggregation sites and syndication. In Trouble in the House of Google, Jeff Atwood describes the unfortunately side effect of syndication that sometimes leads to the syndicated version of StackOverflow ranking higher in a Google search than does the original content. For comments, it is even worse because the comments are not likely to be reproduced in both places (syndicated and original versions). This example is the best (worst?) I've seen of this with essentially an infinite ratio (400 to 0) of comments on the aggregate reference as compared to the original post.

My blog is syndicated on JavaWorld and I appreciate that because it brings significant attention and traffic. Similarly, references from reddit and DZone also drive traffic. The unfortunate side effect, however, is that sometimes some really useful comments are added to the JavaWorld syndicated version or to the DZone or reddit references that are therefore not easily associated with one another or with my original post. I try to identify a comment on one of these forums that is interesting enough to reply to in my blog to ensure it is called out at the source. However, I know that I miss many of these comments altogether. Because comments can often be as useful (and in some cases even more useful) as the original post itself, it'd be nice to have them all in once place. Comments can also correct or address the misunderstandings, misstatements, falsities, typos, logic holes, speculations, and questions that might occur in the original blog post.

I have had several situations on my own blog where feedback comments have provided me with new information. Some recent examples include numerous comments on my post JDK 7: New Interfaces, Classes, Enums, and Methods.

Conclusion

More than once, I've found comments to be as useful as the post itself. The lesson learned is that comments can be well worth the read (or at least skim when there's nearly 400 of them!). I have found comments that refer me to related resources or similar posts often lead me to what I'm looking for or teach me something new. We're often told to "read the fine print." I suggest that when reading blogs, "read the comments."

Monday, January 17, 2011

Inspired by Actual Events: My Blog's New Name

I began writing this blog in October 2007 and it has been called "Dustin's Software Development Cogitations and Speculations" from the beginning. The name has definitely reflected a primary purpose for this blog: to cogitate and speculate on various software development topics. However, I've been thinking about changing this blog's name for a while and have finally decided to do it.

Many of the most popular software development blogs have short names that are easily remembered and uniquely identify the blog. Examples include Coding Horror, Pure Danger Tech, Lambda the Ultimate, Signal vs Noise, The Daily WTF, and even The BileBlog. Although there are some blogs with names of the author and/or "software" (such as Joel on Software, The Berkun Blog, Raible Designs, and Martin Fowler's Bliki), I didn't feel like "Dustin on Software" was as catchy or carried as much cachet.

I have always enjoyed watching movies as evidenced by my previous posts Classic Movie Quotes Applied to Software Development and More Movie Quotes Applied to Software Development. This might explain why I have decided to rename the blog from "Dustin's Software Cogitations and Speculations" to "Inspired by Actual Events" (with the former title becoming a "subtitle" of sorts that is included in the blog's description).

In the movies, a claim to be "inspired by actual events" can mean anything from significantly fact-based to barely traceable to any actual occurrence. For example, Horror News Net states that The Texas Chainsaw Massacre was mainly based on Tobe Hooper's observation of chainsaws being sold at a local Montgomery Ward store and had elements of the story extracted from accounts of real-life killer Ed Gein. Despite this history, one of this movie's taglines was "What happened is true. Now the motion picture that's just as real."

Some of my favorite movies are inspired by actual events, though I hope they are closer to the original events than The Texas Chainsaw Massacre. These movies include Apollo 13, The Dish, October Sky, The Right Stuff, Hoosiers, Miracle, Rudy, Cool Runnings, The Blind Side, Amadeus, Secretariat, Unstoppable, and Stand and Deliver.

The movies that are "based on a true story" or "inspired by actual events" often take certain liberties in applying dramatic license to make the story more interesting. In my blog, I try not to make things up, but I do try to add commentary and speculation regarding software development topics. Many of my blogs are based on my observations of actual events.

Some movies are not themselves based on any particular actual event, but are based on observations of many events. For example, A Christmas Story and The Bridge on the River Kwai are both excellent movies that are themselves based on fiction, but whose fiction has roots in actual events or experiences. Some of my posts are like this: they don't trace to any one event but instead represent a collage of many and diverse experiences.

Big news items often lead to movies, even if just to made-for-television movies. For example, the recent story of the trapped and rescued Chilean miners is expected to be made into a movie. The television series Law and Order: Special Victims Unit starts with the statement that episodes are "ripped from the headlines." My blog sometimes follows this pattern when I provide my own opinions and speculations and interpretation of current news events in the world of software development. An example of this was my recent post and follow-up comments on Google Chrome's announcement to not support H.264 in its <video> tag.

In short, I feel that titling my blog "Inspired by Actual Events" with the old title ("Dustin's Software Development Cogitations and Speculations") in the description is appropriate. It reflects the way I approach writing this blog and reflects my love of the movies. The most significant drawback is that "software development" is no longer included in the title, but having that referenced in the description will hopefully be sufficient.

For a short period of time, I intend to leave the main title as "Inspired by Actual Events: Dustin's Software Cogitations and Speculations," but I do plan to rename its main title to simply "Inspired by Actual Events" in the near future.

Friday, December 31, 2010

My Ten Most Popular 2010 Blog Posts

One of my annual traditions with this blog is to post a summary of my top ten blog posts of the year in terms of "hits" on the blog post. A post with more hits isn't necessarily better than a post with fewer hits, but the former certainly gets more attention. Some of the top posts in 2010 were not actually written in 2010). For example, the tenth most popular post of 2010 listed here was actually the 16th most accessed post on my blog in 2010. Seven posts from other years had more hits than it! I don't count these in the 2010 Top Ten and don't count them against that 2010 list either. In other words, some of the Top Ten listed here actually weren't among the ten most-accessed blog posts on my blog for the year, but all are the ten most accessed blogged posts on my blog that were written this year.


11. O JavaFX, What Art Thou? (25 May 2010, Overall #16 in 2010)

The post O JavaFX, What Art Thou? enjoys a provocative title and covers a somewhat controversial subject. A DZone link to the syndicated JavaWorld version, a Java.net reference, and multiple tweets helped this post be one of the top ten most popular posts on my blog written in 2010. In this post, I enumerated issues surrounding JavaFX that I believe led to hesitation for Java developers to adopt it. I believe that Oracle has addressed some of these with its JavaOne 2010 announcements related to JavaFX.


10. Interesting Software Development Tidbits - Early May 2010 (3 May 2010, Overall #15 in 2010)

Although I thought I summarized a few interesting points in this blog post, I was still surprised that a "grab bag" type of post like Interesting Software Development Tidbits - Early May 2010 would end up in my top ten. Being featured on Java.net was probably a big part of this.


9. Groovy: Switch on Steroids (21 January 2010, Overall #14 in 2010)

Posts written early in the year obviously have an advantage in terms of garnering the most hits for the year. I also think that Groovy is a pretty popular subject in at least the Java corner of the blogosphere. Other explanations for Groovy: Switch on Steroids's success include a DZone reference to it and its Grails Tutorials reference.


8. The High Cost of Not Asking Questions (17 December 2009, Overall #13 in 2010)

I must admit that the post The High Cost of Not Asking Questions was one of my personal favorite posts in recent months. It turns out it was actually written in 2009, but I counted it as a Top Ten in 2010 because it was posted so late in 2009. The counting of this as a 2010 post is what led me to actually include eleven posts here in this Top Ten of 2010.


7. Effective Exception Handling is Covered Effectively in Effective Java (21 April 2010, Overall #11 in 2010)

There is no question that the Java.net reference to the post Effective Exception Handling is Covered Effectively in Effective Java contributed to the success of this post. In this case, the DZone reference to it doesn't seem to have contributed much in terms of traffic.


6. Dynamic Java Log Levels with JMX/LoggingMXBean, JConsole, VisualVM, and Groovy (1 April 2010, Overall #8 in 2010)

This post is the first listed here to actually be in the Top Ten of 2010 on its own right without filtering out non-2010 posts. It's title is a mouthful filled with buzzwords, which likely contributed to the attention it received. Its DZone reference definitely helped.


5. Reproducing "code too large" Problem in Java (18 January 2010, Overall #7 in 2010)

Although its publication early in 2010 was a benefit, I believe this post's popularity was more likely due to its Java.net reference. Java.net editor Kevin Farnham provided a nice summary of this post and encouraged readers to check it (and my blog in general) out.


4. Ten Best Chapters of Software Development Books (3 April 2010, Overall #6 in 2010)

I thought the idea behind this post (to focus on the best chapters of books rather than best overall books) was at least slightly original and creative. I was happy to see this post well-received in terms of number of hits. As is a theme on this list, the Java.net reference certainly played a part as did posts from other bloggers such as Mihai Fonoage.


3. JAX-RS With Jersey: An Introduction (9 February 2010, Overall #4)

Even its early publication date in 2010 does not solely explain the success of the post JAX-RS With Jersey: An Introduction. I believe that REST and JAX-RS have been particularly popular topics for blog searches in recent years and having "Introduction" in the title probably helped quite a bit. This post was also referenced on Java.net and the JavaWorld syndicated version of it saw minor success as a DZone link.


2. SqlPhobia: The Irrational Fear of SQL (29 March 2010, Overall #2 in 2010)

In retrospect, it is not all that surprising that this post had enough hits to be the second most popular of my posts in 2010 absolutely (no need to differentiate the year of its origin in this case). This post was written relatively early in the year, it included a title that evokes emotion and attention, and it was on a slightly controversial topic with slightly controversial language. Add in to this a strong Java.net reference, a reddit posting, a DZone reference, blogs written as responses, and numerous tweets, and you have a recipe for a blog post that garners significant attention. I like to think this post also was popular because it hit a nerve. Many of the developers who commented on this post had valid reasons that I agree with for using non-SQL solutions, but I still maintain that far too high of a percentage of ORM users are such because of a fear of SQL. That, at least, has been my anecdotal experience from conversations with ORM enthusiasts.


1. I Use Dead Programming Languages

The most popular post on my blog in 2010, I Use Dead Programming Languages, shares many of the traits that made the just-discussed post on Sqlphobia so popular: it had a DZone link (though it was significantly more successful on DZone than the Sqlphobia post), it was referenced on reddit, it had an attention-grabbing title, and it covered a controversial topic.


What Were the Other Five?

The #11 post listed here was actually the sixteenth most accessed post on my blog in 2010. That, of course, means that five posts not written in 2010 were accessed more often than that "#11" post. Here are those posts which have apparently stood the "test of time" fairly well:

Effective Java NullPointerException Handling (25 April 2009, Overall #12 in 2010)

Bare Bones BlazeDS HTTPService Example (9 May 2008, Overall #10 in 2010)

Easy Java-Based REST Testing Tools (3 January 2009, Overall #9 in 2010)

Using RESTClient with Java's HTTPServlet (21 January 2009, Overall #5 in 2010)

Simple Remote JMX with GlassFish (19 May 2008, Overall #3 in 2010)


Conclusions

I was generally pleased with the posts that made the Top Ten. As always, there were posts that I personally felt were better (meaning more work and/or more value in my opinion) than some of these, but all of these were posts that I still stand behind and think are generally worth the read.

It was obvious in this year's Top Ten that social sites such as Java.net, DZone, and reddit programming make a huge difference in which posts get attention. In general, Java-themed posts were most successful for me this year, but I was pleased to see that some posts that are more general than Java did well in 2010.

Saturday, January 30, 2010

My Personal Blog Policies

The recent posting of the The Oracle Social Media Participation Policy on Justin Kestelyn's (Oracle Technology Network Editor in Chief) blog has caused me to reevaluate my own personal and previously unwritten policies that affect how and what I write in this blog. In this post, I briefly look at the informal and unwritten policies that I have attempted to follow in writing posts for this blog and why these internally-motivated policies are important. Other developers who blog (and I think more should) may wish to similarly take an inventory of their own blogging practices.


Mixing of Personal and Technical

One of the main differences Justin calls out between Oracle's policy and Sun's policy is the mixing of personal with work-related content. In an update to the post, Justin points out that not all personal is discouraged. In many ways, my own post (though hosted on Google's Blogger rather than on any employer's infrastructure) follows the same advice. I do weave small personal details into my posts, but the focus of each post is always technically related.

The reason for this is that I have found that I prefer that approach as a reader of other peoples' blogs. I present in a way I most enjoy as an attendee at a presentation (fast-talking, content-rich presentations) and I write my blog in the way I prefer others' blogs (strongly focused on the technical subjects with just enough personal details to make the topic less dry, somewhat personable, and to provide informed opinion).

I tend to prefer it when other bloggers separate purely personal non-technical content from their technical content. The reason for this is that I often don't know these people personally and while their technical expertise and insight is valuable to me, I really don't care about their purely personal interests (especially in terms of politics). I don't want to wade through meaningless and uninteresting non-technical details to find the technical gems. I do "maintain" a personal blog with non-technical subjects, but it doesn't get the same attention from me as my technical blog.


Long-Term Blog Availability

One of the respondents to Justin's post asked about the future of his Sun blog. This is a reminder that one's blog can get removed at anytime. Hosting one's own blog obviously reduces the chances of anyone else removing it, but insufficient backups can mean problems even then. Hackers, hardware problems, and even user error could wipe out a blog whether it is hosted externally or on one's own. Very few things in life are guaranteed and online resource availability is certainly not (see the demise of GeoCities as an example). It is important to back up one's blogs. It helps if a blog has been reproduced on other hosts (which is sometimes the case), but even this can be difficult to piece back together.

I was very happy when Blogger announced the ability to export a blog and import a blog. That certainly contributes to the ability to move one's blog to another host if necessary or desired. The ability to do that is one of the reasons that I've stayed with Blogger.

In addition, I have my blog posts forwarded to multiple e-mail accounts as additional backup. The export/import is certainly easier if I ever need to actually do this in bulk, but the e-mail messages are automatic and are easily stored. In other words, the export/import can be more difficult to remember to do in a timely manner, but are easier to do if the time comes to export/import the blog in bulk.

In the worst case, there are other options for resurrecting a "lost blog" such as using Google Cache or the Internet Archive WayBack Machine. Reconstructing a blog from these two sources would be tedious and depends on the blog being archived/cached in these resources.

In summary on the topic of long-term blog availability, I continue to use Blogger and back it up occasionally using the export feature. I also have my posts forwarded to multiple e-mail accounts as soon as they are submitted. If Google ever stops supporting Blogger, I will hopefully have the ability to easily move my blog posts to another provider or, in the less optimal case, reconstruct them from my e-mail messages.


Watching What I Say

In my blog, I do endeavor to keep my criticisms as constructive as possible and I try not to allow emotion to override technical merit. Although I feel I do pretty well at this generally, I do better at it sometimes more than others. One of the blog posts that seemed to lead to Justin's post, Assimilation Begins...Oracle Censors Blogs.Sun.com, the blog author does seem to drop into an emotionally-charged state with significant use of hyperbole (though I love the use of the image of one of my favorite fictional villains [The Borg]).

The author uses words like "muck-mucks", "subjugate Sun culture" (cultural change seems to inevitably happen in mergers and acquisitions between very large companies), "Snoracle," "draconian rules," and "cultural imperialism." Normally, use of exaggeration and hyperbole undermines the credibility of a blog topic in my mind, but in this case, I attribute it more to the blog author's referenced personal connection to the creation of the blogs.sun.com site. It is easier to understand this emotion in that light, even if it seems a little overly dramatic from an outsider's perspective.

I acknowledge that I have said things and written things that are emotionally-driven and often overly critical, especially in e-mail and newsgroups. I try a little harder with blogs to not go that far and be more controlled in what I write.

I prefer blogs with opinions and facts as long as the opinions are informed opinions and are presented as opinion rather than fact. I also understand the importance of not revealing trade secrets regarding employers, clients, etc. and in not committing libel, slander, and the like. When one writes a blog post, the onus is on that person to think carefully about what he or she writes.

In general, I sometimes feel the "online frontier" is far too wild in terms of lack of civility and respect. I do try to keep my blog more positively focused and to talk about things I like or appreciate more often than my occasional posts about things I don't like or wish would be better. There is a place for constructive criticism and constant improvement, but it doesn't need to be rude and condescending.

Conclusion

I think it is important to have personal guidelines that shape what we say, do, and write. Having internal guidelines that I attempt to adhere to in writing this blog is an extension of that. It is my opinion that these guidelines benefit me and those who read one or more of my posts. It's time to back up my blog while I'm thinking about it.

Saturday, September 12, 2009

More Software Developers Should Write Blogs

With the pervasiveness of blogs focused on software development, it is sometimes easy to wonder if there are more bloggers than readers. There are so many software-related blogs that Jurgen Appelo recently started listing his Top 200 Blogs for Developers instead of the 100 he formerly listed.

The presence of so many blogs has helped me tremendously. There are three types of assistance these software development blogs have provided me.

1. Exposed to New Ideas, Concepts, Techniques, and Methodologies

Some blogs have provided me with information on a topic that I did not know much about. These are usually the blogs I run into when perusing DZone or similar sites.

2. Direct Answers

Some blog postings have helped me solve a particularly tricky problem by matching a search with Google or other search engine.

3. Links and References to Answers

A third category of assistance from software development blogs includes the blog posts that have not had the answer I sought directly, but have linked to or referenced material that did provide the answer. These can be especially helpful when I am searching on something and not quite using the appropriate term to have the search engines return the most popular related links.


Why Don't More Developers Write Blogs?

Even with all of these blog postings, I believe that we could all benefit from even more software developers writing blogs. The software development community would especially benefit in the second and third of the three categories of helpful blogs I mentioned above because more blogs would mean more potential sources of information for direct and indirect answers.

Some Many Most of the highest skilled and most experienced software developers that I know and work with personally do not write blogs. There are some obvious reasons for this such as lack of interest and lack of time (too busy with other projects, work, or other activities). However, I also know that at least part of the reason that some of these highly talented developers do not write blogs is that they underestimate the value of what they could contribute to the software development community. In the remainder of this blog post, I will look at why I think many of these developers who think they do not have anything to add are mistaken.


Software Development Blogs Present Lopsided View of Software Development

I have noticed a glaring difference between my perception of the software development world based on the blogs I see and the software development world that I experience firsthand through work, through discussions with attendees at software development conferences, and so forth. I think we as a software development community could benefit from more blogs from some of the "everyday developers" working in the trenches with many different languages, different operating systems, different project sizes, different problem domains, etc. We have all of these covered to some degree, but it feels like the blog coverage is tilted more to some areas than others.


Different Opinions and Perspectives Do Matter

Statements like "all opinions matter" can seem like politically correct lip service, but there is some truth to this, especially in terms of seeing both sides of the story when considering a new or different technology or language. In software development, we have a tendency to act like lemmings and follow trends and fads, sometimes without sufficient consideration of the negatives and costs associated with that fad. I have found that my best decisions are made when I combine my own experience and instincts with reading of well considered and articulated thoughts from proponents of all sides of an issue. I often see outstanding and thought-provoking feedback comments to a blog post and wonder why that commenter does not write his or her own blog post with that kind of insight.


It's All About the Little Things

I occassionally run into a particular problem with a particular language, library, or technology for which I am unable to find a solution via search engine. I have gotten so used to today's powerful search engines pointing me to a blog, forum thread, or article with the answer I am looking for that it is almost scary when there are no useful responses. This often happens when using very old technologies, very new technologies, or technologies without a large customer base. When a colleague knows how to resolve one of these problems, the first question I have to ask (to at least myself) is, "Why don't you blog about this?"


Nothing to Add

As I mentioned earlier, some of the blog posts that I have been very grateful for are those that did not directly answer my question, but which pointed me to the blog, article, or forum thread with the answer. In some cases, no particular source had what I was looking for, but the blog helped me arrive at the answer by triggering something in my mind or making me think about the problem in a different way. I think if more developers wrote blogs about the problems they have faced and how they have resolved them, our chances of finding these indirectly beneficial blogs would be greater.

Several years ago, I approached a respected colleague regarding assisting me with writing an article on software design. I respected his thinking process and was particularly impressed with his ability to think deeply regarding software design concepts and techniques. He had never written a technical article or blog post, but I felt that he would be a great asset in writing a highly useful article on software design. He was very interested in the proposed project, but felt inadequate from the very beginning. He wondered what he could add on top of what was already out there in terms of software development. As we had our initial discussions about the outline of the article and what we'd write, I became increasingly excited about the article's potential. Unfortunately, we ended up not writing that article as we got distracted by other things and I have always felt that at least part of the reason we never wrote that article is the overwhelming feeling of having nothing to add. To me, that's the community's loss because I really thought that some of the ideas he and I came up with together were just enough different in perspective from what was already available to add real value for readers.


Strong on Concept; Weak on Experience

My feeling is that the software development community has greater coverage in terms of software development theory and concepts in our blogs than we do in terms of practical, hard-earned experience and details. Some of my favorite blog postings have been those which have relayed a real-life, practical experience and the lesson learned from that experience. It is one thing to say, "You should always do it this way," but it is entirely more useful and convincing to explain in practical terms why you should do it that way. These posts can be difficult to write because they acknowledge mistakes and weaknesses, but they can be highly beneficial for others. After all, one can learn much from one's own mistakes, but it is even better (and less costly) to learn from the mistakes of others. Some examples of blog posts that fit into this category include Rotten Statics (related to Inconstant Constants in Java), Don't Ignore serialVersionUID, and The * Stupidest Things I Have Done in My Programming Job.

It is important to note here that some of the most popular blogs that are strong in theory and concept are so strong because the writer does have deep and broad practical experience behind the theory and concept. Still, in terms of convincing one of the value of the theory or concept and in terms of understanding the significance of theory or concept, it is difficult to be more effective than by telling a sad story based on real events. If more bloggers were willing to share their failures and disappointments, there would be more evidence to back up the conceptual blog postings.


Nobody Would Read It Anyway

Some highly skilled developers do not blog because they believe no one will read their words anyway. Admittedly, they are correct in this assumption, at least early on. It usually takes time to gain regular readers and there is no guarantee that one will ever gain any significant number of regular readers. If that is the only reason one wishes to blog, then it might not be worth the effort. However, even if a blog is only read by people searching for something and running into a blog post via search engine, the community will benefit from the existence of the blog post. For the early months of my own blog's existence, the vast majority of viewers of my blog came to it through search engines. That has gradually shifted to the vast majority coming to it from links, due at least in part to the syndication of my blog on JavaWorld.

I started my blog with the thought that even if no one else ever read it, it would at least serve as a glorified bookmark of principles, concepts, techniques, and ideas worth remembering. I have actually used it several times this way to quickly find something that I knew I had written about but could not quite recall the exact details about.


Selfish Motivations

Besides serving as a "glorified bookmark," a blog can be beneficial for other selfish reasons as well. It can serve as evidence to potential and current clients and employers of one's experience and familiarity with particular techniques. It can be a soapbox for one's opinions. If the folks you work with are tired of hearing your rants, consider a blog as another outlet. In fact, a blog can provide a way to let off a little steam about things that are bothering you. The act of writing a blog can even help one organize and articulate one's own thoughts better. The fact is that even these selfish motivations can lead to blogs that might challenge readers and improve the software development community discussion.


Online Tools Are Equalizers

I think the software development community would benefit tremendously from more blogs by a wider demographic of software developers. It's not that I have time to read any more blogs: I cannot even read all that I'd like to read as it is. However, there are many tools at our disposal that would help us benefit from more blogs from a wider set of personalities and experiences. First, sites like DZone help choose some of the most interesting articles. Even a first-time blog writer could post his or her blog posting to DZone and, if it was particularly good, could get some immediate attention. Second, the powerful search engines make nearly any blog post a potential hit. If we had more blog posts from a wider group, we'd be more likely to see their posts show up in niche searches. Because the search engines and social tools like DZone favor blogs with characteristics that typically imply a certain level of interest, new blogs that truly have nothing to add are largely ignored. This is important because it does reduce the noise.


Conclusion

There are many times when the herd of software developers start moving toward the siren's song and it would benefit all of us if we had a few more people trying to snap us out of their trance or at least slow us down enough to reconsider the real benefits and costs. Besides adding to the discussions regarding software development, more sharing of practical, real-life experience could help each other reduce loss, minimize bad decisions, and improve productivity.