I have learned in life in general and in software development in particular that it is far easier to be critical of a proposed idea than it is to be creative in coming up with a new or different idea. We see this in politics all the time when one ideological side seems to be better at attacking the other side than at coming up with real and creative solutions of their own.
There are numerous times when the ability to be critical and question others' judgment is necessary. For example, in the business management classic On the Folly of Rewarding A, While Hoping for B, Steven Kerr outlines how well-intentioned decisions often end in unanticipated and often conflicting consequences. In many of these cases, significant unintended harm could be avoided by more considering more critically the actions being taken and their unintended consequences and side effects.
There are times when brainstorming can be the best approach for coming up with new ideas. However, sometimes it seems to stall or people seem reluctant to participate fully. Other times, brainstorming may not be as useful because of the relatively narrow scope of possibilities involved. I have found repeatedly, through my own experience and the observation of others around me, that in such cases it is often best to simply "throw an idea out there" and allow the group of affected stakeholders to criticize it and build upon it. In other words, when individuals are having a difficult time being creative, it might be best to take advantage of their ability to be critical and criticize.
In many cases, putting any idea or potential solution "on the table" is just what is needed to get critical thinking flowing. There are reasons why I believe this to be true and there are reasons we don't take advantage of this approach more often. In the remainder of this post, I look at why this is often a useful approach, why we don't use it more often, and how we can apply it more frequently to solve our difficult design and other problems.
The Virtues of Being Critical
There are several advantages that can be gained from encouraging critical discussion regarding an idea. First, it is almost always the case that the different backgrounds and experiences of multiple people will lead to more identification of "deal breaking" problems and challenges for a proposed approach than a single person could come up with.
A second advantage of putting out an idea to be criticized is that the very proposal of a solution often more clearly conveys the nature of the problem being solved. When the others involved see what the proposed solution is trying to accomplish, they may being to better understand the problem at hand.
Throwing out an idea for critical consideration has a third advantage of giving folks a starting point. It really is often easier to find faults with the proposed scheme than to come up with one's own. Similarly, others may find it easier to propose an alteration to the proposed idea than to propose a completely new idea.
Partly related to the just mentioned three advantages, the initial idea is often useful because it helps to overcome the equivalent of writer's block. Even when writing this blog, I sometimes find the most difficult part being putting something down. In refactoring of difficult code, I have often found even starting refactoring simple things helps a lot. In so many things, doing something, even anything, helps us get going on what needs to be accomplished.
Why Don't We Do This More Often?
It is not difficult to understand why we don't "throw an idea out there" more often. It takes a thick skin to be the first one to throw an idea out. If this approach is going to be at all useful, one must be prepared to have one's idea roundly criticized. It is never fun to see one's ideas publicly torn apart. But it can lead to great results.
Besides the fact that one's idea is going to be criticized, it can also be difficult to be the one to put out the initial idea if the problem is not well understood. This is because the initially proposed solution will almost certainly expose lack of knowledge of the problem or the problem domain. Of course, that is often the reason coming up with a solution is so difficult; perhaps no one in the group truly understands the entire complexity of the issue. This is where putting out something to start with and allowing different people work out its details can be so helpful.
Overcoming the Obstacles
The most important step to overcoming obstacles that prevent us from putting out the initial idea that we hope to refine via critical thinking is overcoming one's own self doubts and worry about one's image. Often, the one who is able to do this ends up looking better for his or her work rather than worse because he or she is able to steer the critical discussion of the initial idea to a well-developed solution.
Ironically, just as brainstorming requires the ability to allow people to contribute without fear of ridicule, the process of fostering criticism of a proposed initial idea requires allowing people to feel free to criticize without fear of retribution. If this is not allowed and even encouraged, the process will not be as productive.
I have generally found that most software developers can be professional and the criticism is often easier to take than we might have feared. In many ways, this approach is the same we should welcome for design and code reviews. Also, it is often the case that the things we don't understand when building the initial solution are not understood by other members of the group. In other words, even if the person comes up with a solution that demonstrates he or she did not know something that he or she probably should have known, it is likely that others did not know it either.
Conclusion
It is definitely true that is often easier to be critical than to be creative. Although this is sometimes a frustrating negative characteristic of human behavior, we can turn it to our advantage when faced with particularly difficult problems that require the collective experience and insight of a group of people to solve appropriately. By being willing to put out an initial solution with known flaws and shortcomings, we can often encourage the development of a superior solution based on the combined knowledge and experience of those we work with.
Thứ Hai, 19 tháng 10, 2009
Thứ Bảy, 17 tháng 10, 2009
Comments on the Future of IntelliJ IDEA
In the blog post Why I Think IDEA Going Open Source is Not a Good Sign, Cedric Otaku articulates why he believes that the open sourcing of IntelliJ IDEA Community Edition is not a good sign for that IDE's future. He makes several points that are very difficult to argue with and many of which I thought myself.
There are three stated reasons in the IntelliJ IDEA Community Edition FAQ for providing an open source Community Edition of the IDE and the platform upon which it is built. The first stated reason is to "significantly grow the number of users of IntelliJ IDEA." I have no doubt that this will be the case, especially in the short-term. The second stated reason is to encourage the "growth of ecosystem around IntelliJ IDEA." The final stated reason is to improve both the open source Community Edition and the premium Ultimate Edition via expected increase in user feedback.
Ceki Gülcü has written a response to Otaku's blog post called IDEA open sourced and points out that this may be a "strategic decision" that turns out okay for JetBeans in the end. However, Gülcü also concedes that Otaku is probably correct that "Jetbrains is unlikely to be flooded with patches and additions from the community."
In Hybridizing Java, Bruce Eckel pointed out that "Cost was one of the main things that originally held me back from using Flex, primarily because of readers who were unwilling or unable to pay it." When Adobe made large chunks of Flex 2 SDK and compiler freely available and later open sourced Flex 3, they opened the doors for Eckel and numerous others to adopt Flex. The Flex user base has grown tremendously since then. There have been more users contributing bug reports, more third-party frameworks and libraries for Flex development, more books on Flex, and so forth.
One indicator of popularity of a particular product is the number of books covering the topic. A simple search on Amazon.com for "Eclipse IDE" (IDE portion is important to avoid the Twilight book getting in the way) returns numerous books on Eclipse including, but not limited to, Eclipse, Eclipse Cookbook, Eclipse for Dummies, Professional Eclipse 3 for Java Developers, and Eclipse: Step-by-Step. Additional Eclipse books are listed in Eclipse Resources.
Amazon shows many books on NetBeans as well: NetBeans: The Definitive Guide, The Definitive Guide to NetBeans Platform, Pro NetBeans IDE 6 Rich Client Platform Edition, 100 NetBeans IDE Tips and Tricks, and many more. Additional NetBeans books can be found on the Netbeans Books page.
If you want to see a ton of books on the same IDE, try placing "JDeveloper" in the Amazon.com search. A listing of a small sample of these books is available at JDeveloper Books and Courses.
There are numerous books on Eclipse, NetBeans, and JDeveloper. For IntelliJ IDEA, however, an Amazon.com search only lists one book devoted to the topic: IntelliJ IDEA in Action. The Community Edition FAQ states that this book covers IntelliJ IDEA 4 and IntelliJ IDEA 5 (IDEA 9 will have the Community Edition), but adds that there are negotiations underway for a new book. Technical books are not known for being financially lucrative in general, but it does help encourage a publisher to publish a book on a certain technical subject when it is anticipated that there will be high demand. Perhaps open sourcing the Community Edition of IntelliJ IDEA will help stimulate this demand.
Intellij IDEA has an almost cult-like following of die hard enthusiasts and that speaks well of it as a product. This recent announcement of a Community Edition of the product may be just what is needed to increase the number of loyal users. In some cases, developers new to the IDE may even decide they want to pay the license fee to move to the Ultimate Edition for use with the Enterprise Java needs, Flex development needs, or other needs above and beyond what the Community Edition provides.
Of course, IntelliJ IDEA's future is not in a vacuum. As I wrote in a recent blog post, the Java IDE market has other forces at work. Another major external force is what Oracle decides to do with NetBeans once its (Oracle's) deal with Sun concludes.
I can only speak for myself, but I can say that it is likely (at least it's in my current plans) that I will start using IntelliJ IDEA Community Edition in much of my Groovy development. I will be likely to blog on things I learn as I do this and possibly use screen snapshots of IntelliJ IDEA with Groovy code and support. This is just one small example of how exposure for IntelliJ IDEA might be increased as a result of the move to an open source Community Edition. The question of if additional users and more coverage will translate to more revenues can only be answered in the future.
There are three stated reasons in the IntelliJ IDEA Community Edition FAQ for providing an open source Community Edition of the IDE and the platform upon which it is built. The first stated reason is to "significantly grow the number of users of IntelliJ IDEA." I have no doubt that this will be the case, especially in the short-term. The second stated reason is to encourage the "growth of ecosystem around IntelliJ IDEA." The final stated reason is to improve both the open source Community Edition and the premium Ultimate Edition via expected increase in user feedback.
Ceki Gülcü has written a response to Otaku's blog post called IDEA open sourced and points out that this may be a "strategic decision" that turns out okay for JetBeans in the end. However, Gülcü also concedes that Otaku is probably correct that "Jetbrains is unlikely to be flooded with patches and additions from the community."
In Hybridizing Java, Bruce Eckel pointed out that "Cost was one of the main things that originally held me back from using Flex, primarily because of readers who were unwilling or unable to pay it." When Adobe made large chunks of Flex 2 SDK and compiler freely available and later open sourced Flex 3, they opened the doors for Eckel and numerous others to adopt Flex. The Flex user base has grown tremendously since then. There have been more users contributing bug reports, more third-party frameworks and libraries for Flex development, more books on Flex, and so forth.
One indicator of popularity of a particular product is the number of books covering the topic. A simple search on Amazon.com for "Eclipse IDE" (IDE portion is important to avoid the Twilight book getting in the way) returns numerous books on Eclipse including, but not limited to, Eclipse, Eclipse Cookbook, Eclipse for Dummies, Professional Eclipse 3 for Java Developers, and Eclipse: Step-by-Step. Additional Eclipse books are listed in Eclipse Resources.
Amazon shows many books on NetBeans as well: NetBeans: The Definitive Guide, The Definitive Guide to NetBeans Platform, Pro NetBeans IDE 6 Rich Client Platform Edition, 100 NetBeans IDE Tips and Tricks, and many more. Additional NetBeans books can be found on the Netbeans Books page.
If you want to see a ton of books on the same IDE, try placing "JDeveloper" in the Amazon.com search. A listing of a small sample of these books is available at JDeveloper Books and Courses.
There are numerous books on Eclipse, NetBeans, and JDeveloper. For IntelliJ IDEA, however, an Amazon.com search only lists one book devoted to the topic: IntelliJ IDEA in Action. The Community Edition FAQ states that this book covers IntelliJ IDEA 4 and IntelliJ IDEA 5 (IDEA 9 will have the Community Edition), but adds that there are negotiations underway for a new book. Technical books are not known for being financially lucrative in general, but it does help encourage a publisher to publish a book on a certain technical subject when it is anticipated that there will be high demand. Perhaps open sourcing the Community Edition of IntelliJ IDEA will help stimulate this demand.
Intellij IDEA has an almost cult-like following of die hard enthusiasts and that speaks well of it as a product. This recent announcement of a Community Edition of the product may be just what is needed to increase the number of loyal users. In some cases, developers new to the IDE may even decide they want to pay the license fee to move to the Ultimate Edition for use with the Enterprise Java needs, Flex development needs, or other needs above and beyond what the Community Edition provides.
Of course, IntelliJ IDEA's future is not in a vacuum. As I wrote in a recent blog post, the Java IDE market has other forces at work. Another major external force is what Oracle decides to do with NetBeans once its (Oracle's) deal with Sun concludes.
I can only speak for myself, but I can say that it is likely (at least it's in my current plans) that I will start using IntelliJ IDEA Community Edition in much of my Groovy development. I will be likely to blog on things I learn as I do this and possibly use screen snapshots of IntelliJ IDEA with Groovy code and support. This is just one small example of how exposure for IntelliJ IDEA might be increased as a result of the move to an open source Community Edition. The question of if additional users and more coverage will translate to more revenues can only be answered in the future.
Thứ Sáu, 16 tháng 10, 2009
A Big Week for the Java Development Community
This past week featured some significant news for the general Java development community. Many of us looked to this week's OpenWorld 2009 as an opportunity to learn more about the potential future of Java and the Java "ecosystem" under Oracle's stewardship. There was also exciting news of the forthcoming Version 9 of IntelliJ IDEA being made available in two editions, including a Community Edition that would be open source and freely available.
Oracle OpenWorld 2009
Although many of us in the Java development community have worked with Oracle products for years, others are just starting to become familiar with Oracle products since the announcement of Oracle's acquisition of Sun. In particular, this past week's Oracle OpenWorld has received more attention from the general Java development community than ever before. In his blog post A Big Fat Thanks/Things I Learned At Oracle OpenWorld (#oow09), Oracle Technology Network Editor-in-Chief/Community Evangelist Justin Kestelyn summarizes where things are at in terms of OpenWorld and the future of JavaOne:
JavaOne's future is not the only future we're thinking about in the Java development community. We still have to wonder about the future of Sun-supported products such as GlassFish, NetBeansm, MySQL, and JavaFX.
For more information on Oracle OpenWorld, see sites such as OpenWorld Wrap-Up: The Best and Worst from San Francisco, Reporter's Notebook: Oracle OpenWorld 2009, The Guide to Oracle OpenWorld 2009, and Blogs about Oracle OpenWorld.
Community Edition of IntelliJ Idea
The announcement this week regarding the release of IntelliJ IDEA Version 9 in two editions (including a freely available open source Community Edition) has caused quite a stir in the Java development community (three of the top four links currently on DZone discuss this announcement [here and here and here]).
The IntelliJ Platform will be completely open sourced while the IDEA IDE will only have certain select portions open sourced. Both the platform and the IDE will be open sourced under the Apache 2 license.
The IntelliJ IDEA 9 Editions Comparison Matrix indicates the differences between the freely available, open source Community Edition and the Ultimate Edition. The Community Edition lacks some nice features of the Ultimate Edition, but the Community Edition still contains many powerful features, especially for those developing applications with Java SE, Groovy, and Scala. For those developing Java EE and web applications, the upgrade to the Ultimate Edition or use of an alternative IDE would probably be a better bet.
The landscape of the Java IDEs is going to get even more interesting in coming months. In Intellij Idea IDE OpenSourced - The current state of the Java IDE's, Anshu Mishra compares and contrasts Eclipse, NetBeans, and IntelliJ IDEA Community Edition. However, another freely available (albeit not open source) Java IDE is not mentioned: JDeveloper. With Oracle obviously behind JDeveloper and likely soon-to-be the primary steward of Java, that IDE cannot be discounted.
Conclusion
It is going to be interesting to watch the progress that occurs within the Java development community over the next several months. Both Oracle's handling of Java and the effect of the release of IntelliJ IDEA Community Edition will likely impact to some degree Java development for many in our community.
Oracle OpenWorld 2009
Although many of us in the Java development community have worked with Oracle products for years, others are just starting to become familiar with Oracle products since the announcement of Oracle's acquisition of Sun. In particular, this past week's Oracle OpenWorld has received more attention from the general Java development community than ever before. In his blog post A Big Fat Thanks/Things I Learned At Oracle OpenWorld (#oow09), Oracle Technology Network Editor-in-Chief/Community Evangelist Justin Kestelyn summarizes where things are at in terms of OpenWorld and the future of JavaOne:
The Java technologist community is very nervous about OpenWorld serving as a substitute for JavaOne; the cultural and content differences are stark. The sooner we can communicate our plans there, the better. (Unfortunately, nothing can be said until deal close. And contrary to some of the rumors out there, no announcements have been made on this subject at all.)
JavaOne's future is not the only future we're thinking about in the Java development community. We still have to wonder about the future of Sun-supported products such as GlassFish, NetBeansm, MySQL, and JavaFX.
For more information on Oracle OpenWorld, see sites such as OpenWorld Wrap-Up: The Best and Worst from San Francisco, Reporter's Notebook: Oracle OpenWorld 2009, The Guide to Oracle OpenWorld 2009, and Blogs about Oracle OpenWorld.
Community Edition of IntelliJ Idea
The announcement this week regarding the release of IntelliJ IDEA Version 9 in two editions (including a freely available open source Community Edition) has caused quite a stir in the Java development community (three of the top four links currently on DZone discuss this announcement [here and here and here]).
The IntelliJ Platform will be completely open sourced while the IDEA IDE will only have certain select portions open sourced. Both the platform and the IDE will be open sourced under the Apache 2 license.
The IntelliJ IDEA 9 Editions Comparison Matrix indicates the differences between the freely available, open source Community Edition and the Ultimate Edition. The Community Edition lacks some nice features of the Ultimate Edition, but the Community Edition still contains many powerful features, especially for those developing applications with Java SE, Groovy, and Scala. For those developing Java EE and web applications, the upgrade to the Ultimate Edition or use of an alternative IDE would probably be a better bet.
The landscape of the Java IDEs is going to get even more interesting in coming months. In Intellij Idea IDE OpenSourced - The current state of the Java IDE's, Anshu Mishra compares and contrasts Eclipse, NetBeans, and IntelliJ IDEA Community Edition. However, another freely available (albeit not open source) Java IDE is not mentioned: JDeveloper. With Oracle obviously behind JDeveloper and likely soon-to-be the primary steward of Java, that IDE cannot be discounted.
Conclusion
It is going to be interesting to watch the progress that occurs within the Java development community over the next several months. Both Oracle's handling of Java and the effect of the release of IntelliJ IDEA Community Edition will likely impact to some degree Java development for many in our community.
Thứ Hai, 12 tháng 10, 2009
Java in First Days of Oracle OpenWorld 2009
In Oracle OpenWorld for the Java Developer, I looked at the relationship between Sun and Oracle and considered how Java might be covered at Oracle OpenWorld. In this blog post, I point to and summarize some of the blog posts starting to come out along these same themes based in Sunday and Monday at OpenWorld.
In Sun Shines at Oracle OpenWorld (on the Oracle OpenWorld Blog), Stephen Fox summarizes the closing keynote of Day 1 (Sunday). It sounds as if the anticipated mutual compliments between Sun and Oracle leadership did occur. Fox briefly describes James Gosling's gushing over Oracle's involvement in the Java community.
Cay Horstmann, in Oracle OpenWorld Day Zero, writes that "Oracle OpenWorld seems bigger" than JavaOne. Like Fox, he writes about Gosling's coverage of Oracle and Java. Horstmann also writes about a "culture difference" he senses between Java and Oracle user groups and wonders if a single conference can really appeal to both the usual JavaOne attendees and the usual OpenWorld attendees.
Arun Gupta has a very thorough blog post titled Oracle Open World 2009 - Day 1 Report. Gupta provides Scott McNealy's "ten reasons engineers have gone wild" and "top ten innovations from Sun" (Java is #6). Gupta also provides links to a list of Sun bloggers at OpenWorld.
In the post OOW 2009: Too many sub titles - the Scott and Larry show (keynote on SUNday), Lucas Jellema presents a lengthy list of sub-titles gleaned from the "SUNday" keynote. Jellema's post is thorough, but one of the things I like about it best is that it challenges the assertion that the active Oracle user community might be significantly smaller than the active Java user community. Jellema cites numbers related to Oracle Technology Network membership in addressing this. I have found my local Oracle users group, Rocky Mountain Oracle Users Group, to be very active. This AMIS Technology Blog already features several very specific reviews of Oracle OpenWorld 2009.
In Oracle OpenWorld: Getting down to business, Sam Diaz comments that OpenWorld appears to remain a "vibrant show" despite other technical conferences suffering lower attendance in recent months than they normally enjoy.
For the most part, there have not been many surprises so far related to Java and Oracle. This is not unexpected because there are certain legal limitations imposed on both parties in the acquisition. Overall, most principal players still seem to be saying the right things to soothe the Java development community regarding Oracle's acquisition of Sun.
In Sun Shines at Oracle OpenWorld (on the Oracle OpenWorld Blog), Stephen Fox summarizes the closing keynote of Day 1 (Sunday). It sounds as if the anticipated mutual compliments between Sun and Oracle leadership did occur. Fox briefly describes James Gosling's gushing over Oracle's involvement in the Java community.
Cay Horstmann, in Oracle OpenWorld Day Zero, writes that "Oracle OpenWorld seems bigger" than JavaOne. Like Fox, he writes about Gosling's coverage of Oracle and Java. Horstmann also writes about a "culture difference" he senses between Java and Oracle user groups and wonders if a single conference can really appeal to both the usual JavaOne attendees and the usual OpenWorld attendees.
Arun Gupta has a very thorough blog post titled Oracle Open World 2009 - Day 1 Report. Gupta provides Scott McNealy's "ten reasons engineers have gone wild" and "top ten innovations from Sun" (Java is #6). Gupta also provides links to a list of Sun bloggers at OpenWorld.
In the post OOW 2009: Too many sub titles - the Scott and Larry show (keynote on SUNday), Lucas Jellema presents a lengthy list of sub-titles gleaned from the "SUNday" keynote. Jellema's post is thorough, but one of the things I like about it best is that it challenges the assertion that the active Oracle user community might be significantly smaller than the active Java user community. Jellema cites numbers related to Oracle Technology Network membership in addressing this. I have found my local Oracle users group, Rocky Mountain Oracle Users Group, to be very active. This AMIS Technology Blog already features several very specific reviews of Oracle OpenWorld 2009.
In Oracle OpenWorld: Getting down to business, Sam Diaz comments that OpenWorld appears to remain a "vibrant show" despite other technical conferences suffering lower attendance in recent months than they normally enjoy.
For the most part, there have not been many surprises so far related to Java and Oracle. This is not unexpected because there are certain legal limitations imposed on both parties in the acquisition. Overall, most principal players still seem to be saying the right things to soothe the Java development community regarding Oracle's acquisition of Sun.
Impact of Demise of GeoCities on Online Software Development References
On 9 July 2009, I received an e-mail message from Yahoo! GeoCities stating, "GeoCities is closing." I received these because I have had, for many years, a simple static homepage on Geocities (http://geocities.com/Colosseum/Field/7217/SW/index.html or http://geocities.com/dustinmarx/). I did not provide a link to it because, two weeks from today on 26 October 2009, that page will no longer be accessible. As I have been archiving content on that page in preparation for its demise, I have noted that much of its content has been overcome by events. In this blog posting, I'll look briefly at why the GeoCities era is coming to an end and will ponder the fate of some potentially valuable resources that have been available on GeoCities-hosed sites.
In Now closing: GeoCities, a relic of Web's Early Days, Stephen Shankland does a nice job of covering the likely reasons why Yahoo! is closing GeoCities and how GeoCities has lost interest and favor over the years. Perhaps most importantly, Shankland also brings up a very good point: "it seems likely that a lot of amateur Web sites soon will vanish without a trace, a casualty of business priorities and the Internet's rapid changes."
As I archived files I might possibly want in the future and removed some files that I doubt I'll ever miss, I realized that my own use of a service like GeoCities had changed dramatically. When I first started using GeoCities over ten years ago, a large proportion of the web was static, there were still significant portions of people who did not have consistent web access or e-mail addresses, and the search engines were nowhere near as powerful as they are today.
Although there are still many largely static pages on the web today, the ability to have others respond interactively to what one has posted has been largely facilitated by blog software (such as Blogger.com) and by social sites (such as Facebook.com).
Today, a much larger percentage of people has decent web and e-mail access, often high-speed. Nearly everyone in the United States has access, even if it means they must visit the local library.
Several of the pages I had hosted on GeoCities were really glorified bookmarks. I had pages on topics such as Unix, Java, and C++ with links to resources that were more difficult to find in those days. Today, I still use my browser's bookmark feature and even use my blog for bookmarks, but the truth is that I can usually find what I am looking for again and again, quickly and as needed, with today's powerful serach engines.
Although it is not surprising that Yahoo! is closing down GeoCities given current conditions and the changing landscape of the individual's preferred online presence, it is still concerning to think about the vast amount of potentially valuable information that may be more difficult to locate in the future when GeoCities-hosted pages go away. Although GeoCities users can either move to a premium (non-free) plan or can manually archive their files one at a time to move to another host, I am sure there will be some percentage of GeoCities-hosted sites that will simply disappear. Many of the most useful pages out there have been copied multiple times over and there are features like Google Cache, but even these don't guarantee some information will not be lost. Because GeoCities sites will be completely unavailable after 26 October 2009, it will not even be possible to have forwarding information to the new location.
In the remainder of this blog post, I look at some examples of useful pages hosted on GeoCities that may be considered "at risk" of being lost in two weeks. Thanks to the power of the search engine, I also am able to point out secondary sources (copies of the same information). These are not intended to be the most valuable sites on GeoCities, but rather are intended to provide a sampling of the types of sites that may be lost forever.
Common Struts Errors
http://geocities.com/dustinmarx/SW/struts/errors.html
http://www.geocities.com/Colosseum/Field/7217/SW/struts/errors.html
I started with one of my own. This page on "Common Struts Errors" might be useful to those using Struts and running into an unfamiliar error. I think it is especially useful for those new to Struts. This version will be gone in two weeks. I do plan to rehost it on Google Sites at http://sites.google.com/site/dustinmarx/home/struts_errors-html. Other copies of this page are available on docstoc, Scribd, ZetaBoards, and Aext.net.
TechnoFundo Site
http://us.geocities.com/technofundo/home.html
This site contains links to articles on equals and hashCode and Java certification. By the way, there are numerous sites hosted on GeoCities that provide hints, mock exams, and other resources related to Java certification.
The GUI Toolkit, Framework
http://www.geocities.com/SiliconValley/Vista/7184/guitool.html
Fortunately, a mirror for this appears to exist at http://www.atai.org/guitool/.
Pascal to Java
Easy Transformation, Part 1 - http://www.geocities.com/siliconvalley/park/3230/pas/pas2java.html
Easy Transformation, Part 2 - http://www.geocities.com/siliconvalley/park/3230/pas/pas2java2.html
We probably don't have a lot of developers moving from Pascal to Java anymore, but it does seem like a waste to lose information like this for the relatively few who might fall into the category as well as for historical intellectual curiosity.
Java Fractals
http://www.geocities.com/CapeCanaveral/Hangar/7959/fractalapplet.html
To be sure, there are many other pages out there (such as this one and that one) that demonstrate fractals with Java applets. However, it is always helpful to have different perspectives on the same general issue.
Bumper Sticker Computer Science
http://www.geocities.com/krishna_kunchith/misc/bscs.html
There are many references and reviews of More Programming Pearls: Confessions of a Coder, but losing any one of them means less information available.
Windows/DOS Commands Cheat Sheet
http://www.geocities.com/tlawlessrr/dos.htm
This convenient page prints the DOS commands on a single page.
A Brief Introduction to Java Native Interface
http://www.geocities.com/kongwenyu/jni.html
There are many resources on the web about JNI, but this is a nice introduction.
OpenLaszlo - Basics
http://www.geocities.com/rs.ramaswamy/laszlo.htm
Again, there are multiple resources on the web regarding OpenLaszlo, but this is another introductory level one that could be gone soon.
On the Folly of Rewarding A, While Hoping for B
http://www.geocities.com/athens/forum/1650/rewardinga.html
This article is a classic on human behavior and how ill-conceived incentive programs often motivate different consequences than intended. Often these unintended consequences are opposed to some degree to the intended consequence. This GeoCities version of the article is the first returned article for many Google searches on related topics, but fortunately the article appears to also exist at sites such as Oakland University, Sacramento State University, and NYU Stern. Although this article is not strictly a technical article, it is most assuredly highly relevant.
So How Many GeoCities Sites are There?
I don't know of an exact count of the number of GeoCities sites out there, but the searching in Google on the expression "site:geocities.com" reports that there are "about 7.53 million" matches. Running the same query on Google for "site:geocities.com java" returns nearly 86 thousand matches. A query on C++ links ("site:geocities.com c++") returns over 16 thousand matches. Querying on "object orientation" with "site:geocities.com object orientation" returns over 6500 matches. Nearly 6300 matches are found for the query "site:geocities.com c#" (C#) and over 10 thousand matches are found for Perl ("site:geocities.com perl").
With the technically-focused GeoCities articles counted in the thousands, the is almost certainly going to be some useful technical information lost when all the free GeoCities sites go down in two weeks.
What Types of Sites Will Be Lost?
From the sample of sites I displayed above, there are certain characteristics of the GeoCities pages that may be gone before the end of the month. Many of them tend to be older, some are even obsolete. Some of the older ones are still applicable and useful. Some of the GeoCities sites are for projects that are no longer progressing (or have been migrated to a site like SourceForge), but even in their current state may be of interest to some people. Many of the GeoCities sites have not seen any updates in recent years because their authors have moved onto blogs, but the authors have not moved the old information to the blog. Even for subjects that are widely covered, we will lose some perspectives on these subjects and will lose things such as book and product reviews.
In my own case, I found that about half of my content on my GeoCities site was not worth archiving and about half was worth it (to me at least) to archive. Only a few pages were worth migrating to a publicly accessible site.
This would be much more damaging, to me in terms of personal loss, and to the community in general if BlogSpot was the one going away. Of course, several years ago, GeoCities was that popular hosting site.
Alternative Free Web Hosting
For those who do maintain GeoCities sites and do not plan to transition to GeoCities's premium plans, the article GeoCities Shuts It Doors and Thousands of Sites Could be Lost,But There Are Other Options lists several other free web hosting options: Webs, Weebly, and UCOZ. Google Sites and AngelFire/Tripod are alternatives as well.
Conclusion
There is little question that GeoCities no longer is as trendy or current as it once was. That stated, many hours of person time has been invested into pages and sites hosted on GeoCities. With many of these pages and sites likely to be inaccessible two weeks from now, it seems that the interconnected world community will be the loser.
Addendum (25 October 2009)
GeoCities is scheduled to go away tomorrow. See GeoCities Going Away, And My Thoughts On It for an interesting discussion (including feedback comments) on why the disappearance of GeoCities is a valuable loss of information and of web/internet historical perspective.
In Now closing: GeoCities, a relic of Web's Early Days, Stephen Shankland does a nice job of covering the likely reasons why Yahoo! is closing GeoCities and how GeoCities has lost interest and favor over the years. Perhaps most importantly, Shankland also brings up a very good point: "it seems likely that a lot of amateur Web sites soon will vanish without a trace, a casualty of business priorities and the Internet's rapid changes."
As I archived files I might possibly want in the future and removed some files that I doubt I'll ever miss, I realized that my own use of a service like GeoCities had changed dramatically. When I first started using GeoCities over ten years ago, a large proportion of the web was static, there were still significant portions of people who did not have consistent web access or e-mail addresses, and the search engines were nowhere near as powerful as they are today.
Although there are still many largely static pages on the web today, the ability to have others respond interactively to what one has posted has been largely facilitated by blog software (such as Blogger.com) and by social sites (such as Facebook.com).
Today, a much larger percentage of people has decent web and e-mail access, often high-speed. Nearly everyone in the United States has access, even if it means they must visit the local library.
Several of the pages I had hosted on GeoCities were really glorified bookmarks. I had pages on topics such as Unix, Java, and C++ with links to resources that were more difficult to find in those days. Today, I still use my browser's bookmark feature and even use my blog for bookmarks, but the truth is that I can usually find what I am looking for again and again, quickly and as needed, with today's powerful serach engines.
Although it is not surprising that Yahoo! is closing down GeoCities given current conditions and the changing landscape of the individual's preferred online presence, it is still concerning to think about the vast amount of potentially valuable information that may be more difficult to locate in the future when GeoCities-hosted pages go away. Although GeoCities users can either move to a premium (non-free) plan or can manually archive their files one at a time to move to another host, I am sure there will be some percentage of GeoCities-hosted sites that will simply disappear. Many of the most useful pages out there have been copied multiple times over and there are features like Google Cache, but even these don't guarantee some information will not be lost. Because GeoCities sites will be completely unavailable after 26 October 2009, it will not even be possible to have forwarding information to the new location.
In the remainder of this blog post, I look at some examples of useful pages hosted on GeoCities that may be considered "at risk" of being lost in two weeks. Thanks to the power of the search engine, I also am able to point out secondary sources (copies of the same information). These are not intended to be the most valuable sites on GeoCities, but rather are intended to provide a sampling of the types of sites that may be lost forever.
Common Struts Errors
http://geocities.com/dustinmarx/SW/struts/errors.html
http://www.geocities.com/Colosseum/Field/7217/SW/struts/errors.html
I started with one of my own. This page on "Common Struts Errors" might be useful to those using Struts and running into an unfamiliar error. I think it is especially useful for those new to Struts. This version will be gone in two weeks. I do plan to rehost it on Google Sites at http://sites.google.com/site/dustinmarx/home/struts_errors-html. Other copies of this page are available on docstoc, Scribd, ZetaBoards, and Aext.net.
TechnoFundo Site
http://us.geocities.com/technofundo/home.html
This site contains links to articles on equals and hashCode and Java certification. By the way, there are numerous sites hosted on GeoCities that provide hints, mock exams, and other resources related to Java certification.
The GUI Toolkit, Framework
http://www.geocities.com/SiliconValley/Vista/7184/guitool.html
Fortunately, a mirror for this appears to exist at http://www.atai.org/guitool/.
Pascal to Java
Easy Transformation, Part 1 - http://www.geocities.com/siliconvalley/park/3230/pas/pas2java.html
Easy Transformation, Part 2 - http://www.geocities.com/siliconvalley/park/3230/pas/pas2java2.html
We probably don't have a lot of developers moving from Pascal to Java anymore, but it does seem like a waste to lose information like this for the relatively few who might fall into the category as well as for historical intellectual curiosity.
Java Fractals
http://www.geocities.com/CapeCanaveral/Hangar/7959/fractalapplet.html
To be sure, there are many other pages out there (such as this one and that one) that demonstrate fractals with Java applets. However, it is always helpful to have different perspectives on the same general issue.
Bumper Sticker Computer Science
http://www.geocities.com/krishna_kunchith/misc/bscs.html
There are many references and reviews of More Programming Pearls: Confessions of a Coder, but losing any one of them means less information available.
Windows/DOS Commands Cheat Sheet
http://www.geocities.com/tlawlessrr/dos.htm
This convenient page prints the DOS commands on a single page.
A Brief Introduction to Java Native Interface
http://www.geocities.com/kongwenyu/jni.html
There are many resources on the web about JNI, but this is a nice introduction.
OpenLaszlo - Basics
http://www.geocities.com/rs.ramaswamy/laszlo.htm
Again, there are multiple resources on the web regarding OpenLaszlo, but this is another introductory level one that could be gone soon.
On the Folly of Rewarding A, While Hoping for B
http://www.geocities.com/athens/forum/1650/rewardinga.html
This article is a classic on human behavior and how ill-conceived incentive programs often motivate different consequences than intended. Often these unintended consequences are opposed to some degree to the intended consequence. This GeoCities version of the article is the first returned article for many Google searches on related topics, but fortunately the article appears to also exist at sites such as Oakland University, Sacramento State University, and NYU Stern. Although this article is not strictly a technical article, it is most assuredly highly relevant.
So How Many GeoCities Sites are There?
I don't know of an exact count of the number of GeoCities sites out there, but the searching in Google on the expression "site:geocities.com" reports that there are "about 7.53 million" matches. Running the same query on Google for "site:geocities.com java" returns nearly 86 thousand matches. A query on C++ links ("site:geocities.com c++") returns over 16 thousand matches. Querying on "object orientation" with "site:geocities.com object orientation" returns over 6500 matches. Nearly 6300 matches are found for the query "site:geocities.com c#" (C#) and over 10 thousand matches are found for Perl ("site:geocities.com perl").
With the technically-focused GeoCities articles counted in the thousands, the is almost certainly going to be some useful technical information lost when all the free GeoCities sites go down in two weeks.
What Types of Sites Will Be Lost?
From the sample of sites I displayed above, there are certain characteristics of the GeoCities pages that may be gone before the end of the month. Many of them tend to be older, some are even obsolete. Some of the older ones are still applicable and useful. Some of the GeoCities sites are for projects that are no longer progressing (or have been migrated to a site like SourceForge), but even in their current state may be of interest to some people. Many of the GeoCities sites have not seen any updates in recent years because their authors have moved onto blogs, but the authors have not moved the old information to the blog. Even for subjects that are widely covered, we will lose some perspectives on these subjects and will lose things such as book and product reviews.
In my own case, I found that about half of my content on my GeoCities site was not worth archiving and about half was worth it (to me at least) to archive. Only a few pages were worth migrating to a publicly accessible site.
This would be much more damaging, to me in terms of personal loss, and to the community in general if BlogSpot was the one going away. Of course, several years ago, GeoCities was that popular hosting site.
Alternative Free Web Hosting
For those who do maintain GeoCities sites and do not plan to transition to GeoCities's premium plans, the article GeoCities Shuts It Doors and Thousands of Sites Could be Lost,But There Are Other Options lists several other free web hosting options: Webs, Weebly, and UCOZ. Google Sites and AngelFire/Tripod are alternatives as well.
Conclusion
There is little question that GeoCities no longer is as trendy or current as it once was. That stated, many hours of person time has been invested into pages and sites hosted on GeoCities. With many of these pages and sites likely to be inaccessible two weeks from now, it seems that the interconnected world community will be the loser.
Addendum (25 October 2009)
GeoCities is scheduled to go away tomorrow. See GeoCities Going Away, And My Thoughts On It for an interesting discussion (including feedback comments) on why the disappearance of GeoCities is a valuable loss of information and of web/internet historical perspective.
Thứ Bảy, 10 tháng 10, 2009
Oracle OpenWorld for the Java Developer
Many in the Java development community are hoping to glean clues about Oracle's vision of the future of Java (assuming successful acquisition of Sun by Oracle) at next week's Oracle OpenWorld (11-15 October 2009 at Moscone Center in San Francisco). In this blog post, I briefly look at some Java-related information we might expect to come out of OpenWorld.
Both Oracle and Sun Microsystems are emphasizing each other's partnerships with one another in advance of this event. Sun has a web page called Java at Oracle OpenWorld that includes a listing of "Oracle OpenWorld Java Sessions", "Oracle Develop Java Sessions", and mention of James Gosling's Oracle Develop keynote presentation Top Ten Things You May Not Know about Sun Software. Sun also has a Feature Story that includes celebration of their "quarter century partnership with Oracle". According to this page, Sun employees will lead thirty general sessions and ten developer sessions. This page also references the Larry Ellison/Scott McNealy keynote on Sunday (tomorrow).
Oracle has been an user and supporter of Java for some time and has its own page on its partnership with Sun. Oracle also features a site on Sun-sponsored Oracle Develop.
There are many resources for additional information regarding Oracle OpenWorld. These include The OTN Guide to Oracle OpenWorld 2009, which features a section of "community streams" that I think may have the most potential interest to me during the week. These "community streams" include Oracle OpenWorld Live (also covered in this blog post) and Blogs about Oracle OracleWorld 2009 (see also Oracle blogs on OpenWorld).
Third-party coverage of Oracle and Sun at Oracle OpenWorld includes The Register's Sun and Oracle to Pimp Synergies at OpenWorld, Oracle Takeover of Sun to be Center Stage at OpenWorld, and OpenWorld to Shed Light on Oracle's Java Plans.
I look forward to the blogs and other accounts that come out of OpenWorld 2009 this coming week. At the very least, there should be plenty of fodder for continued theorizing and controversy about the future of Java. Some believe that Oracle's purchase of Sun is good for Java while others are not so sure. I don't expect many definitive statements regarding Java beyond what was stated by Oracle representatives at 2009 JavaOne, but I do expect there to be interesting observations and read-between-the-lines conclusions made perhaps even when not warranted.
Both Oracle and Sun Microsystems are emphasizing each other's partnerships with one another in advance of this event. Sun has a web page called Java at Oracle OpenWorld that includes a listing of "Oracle OpenWorld Java Sessions", "Oracle Develop Java Sessions", and mention of James Gosling's Oracle Develop keynote presentation Top Ten Things You May Not Know about Sun Software. Sun also has a Feature Story that includes celebration of their "quarter century partnership with Oracle". According to this page, Sun employees will lead thirty general sessions and ten developer sessions. This page also references the Larry Ellison/Scott McNealy keynote on Sunday (tomorrow).
Oracle has been an user and supporter of Java for some time and has its own page on its partnership with Sun. Oracle also features a site on Sun-sponsored Oracle Develop.
There are many resources for additional information regarding Oracle OpenWorld. These include The OTN Guide to Oracle OpenWorld 2009, which features a section of "community streams" that I think may have the most potential interest to me during the week. These "community streams" include Oracle OpenWorld Live (also covered in this blog post) and Blogs about Oracle OracleWorld 2009 (see also Oracle blogs on OpenWorld).
Third-party coverage of Oracle and Sun at Oracle OpenWorld includes The Register's Sun and Oracle to Pimp Synergies at OpenWorld, Oracle Takeover of Sun to be Center Stage at OpenWorld, and OpenWorld to Shed Light on Oracle's Java Plans.
I look forward to the blogs and other accounts that come out of OpenWorld 2009 this coming week. At the very least, there should be plenty of fodder for continued theorizing and controversy about the future of Java. Some believe that Oracle's purchase of Sun is good for Java while others are not so sure. I don't expect many definitive statements regarding Java beyond what was stated by Oracle representatives at 2009 JavaOne, but I do expect there to be interesting observations and read-between-the-lines conclusions made perhaps even when not warranted.
Lists of Popular Software Development Blogs
There seem to be all kinds of lists of top software development and technical blogs. On the one hand, this does not matter that much to me because of the existence of powerful search engines such as Google and powerful development-specific aggregation sites such DZone. Search engines allow me to find an answer to a particular problem I am facing and don't limit me to blogs. If I do want to focus on blogs, blog-specific search engines such as Google Blog Search are useful and allow the query to be limited to specified recent timeframes (such as blogs posted in the past week). When I am looking for exposure to new things that I don't even know enough about to generate a useful search query, a site like DZone fills that need nicely.
Because search engines provide answers to current problems and technology-focused social aggregation sites expose me to new ideas and concepts, I often don't find the need to limit myself to reading a particular blog regularly. That being said, there are cases where a single blog ends up helping me enough times via search or via aggregation site that I realize it's worth reading proactively. I usually determine these blogs from my own experience, but it is still worth seeing which blogs others think are among the best in software development. In the remainder of this blog post, I reference some of these collected lists of "best," "top," or "most popular" software development blogs. I also make excuses for why my blog did not make any of these lists. :)
NOOP.NL: Top 200 Blogs for Developers
Jurgen Appelo's Top 200 Blogs for Developers is perhaps the most comprehensive (200 blogs!), most frequently updated (quarterly), and most systematic of the lists of software development blogs. This list is based on Google Page Rank, Google links, and several other ranking sources. Greater detail on how this list was created is available in How to Make a Top Blog List. Jurgen says that he does not include blogs in this list that are narrowly focused on a single language, but I like to think that the reason my blog did not make the list is that he is not aware of it to even consider it for the Top 200.
64 High-Ranked Blogs for Developers
The blogs cited on 64 High-Ranked Blogs for Developers seem to be those with highest Page Rank (each has a Page Rank of six or higher, which is impressive for a development-focused blog). I like the appearance of this list with screen snapshots, the page rank, and a link to the blog's main page. It is a simple and elegant web page design. I am fairly certain that my blog's Page Rank (5) is the reason for exclusion from this list. At least that's what I tell myself because I don't like the idea that my blog did not make the list due to its lack of impressive design.
SD Times Best Blogs of 2007
SD Times on the Web features an article Best Blogs of 2007 includes "most interesting technology blogs" that range from "the authoritative to the wacky." I like to think that my blog did not make this list because I did not start writing in until late 2007 (October).
Several Tech Blogs Worth Exploring. Oh Yeah, All by Women.
This recent (October 2009) blog post looks at a wide spectrum of technical blogs written by women. I like to think my blog did not make this list because of my gender.
Top 10 Recent Blogs
Not so recent anymore (December 2005), many of the blogs listed at MEME: Top 10 Recent Blogs are still popular nearly four years later. When this list came out, my first blog entry would not be written for nearly another two years.
Five Great Software Development Blogs
The March 2007 post 5 Great Software Development Blogs provides a paragraph explanation of five preferred software development blogs and lists two more without explanation as blogs worth a time investment. Again, I am able to rationalize to myself that my blog is not on this list because it wasn't even around at that time.
My Personal Favorite Software Development Blogs
If I cared more about having my blog make a list of "top software development blogs," I would make up my own list and ignore any idea of objectivity and put my own blog on the list (probably as #1). However, the truth is that I really don't have a list of favorite blogs. Rather, I do recognize some blogs that consistently provide the answers I seek via search engine or learn about a new post via a social aggregation site. Instead of listing particular blogs here, what I will state is the types of software development blogs that I prefer. In general, I have found that I prefer blog posts that meet one or more of the following criteria (in some cases, these are conflicting criteria and it is nearly impossible to satisfy both):
1. Very Specific and Detailed - These tend to be preferred when I seek an answer to a specific and often somewhat tricky question or problem. An example of this was was Mike Morearty's Common E4X Pitfalls post that specifically addressed problems I ran into when first using E4X with Flex.
2. Experienced-based - I appreciate blogs written with the voice of experience. I often don't need a post repeating what all the books and articles say; instead I need to know the intricacies and nuances of a particular approach, language, framework, methodology, or other software development concept.
3. Lessons Learned from Others' Mistakes - I make enough of my own mistakes that I appreciate when others make potential mistakes first and then warn me and the rest of us about these. These refreshingly honest blog posts can be difficult to write, but can be of significant value to the rest of us.
4. Contrarian - It is easy to be a lemming in the software development. I appreciate blogs that challenge this mentality and challenge the direction of the software development herd. I don't always agree with the contrarians (the herd is correct sometimes), but I think the consideration of multiple viewpoints is extremely valuable. Note that I don't want more simple-minded posts that say, "Such-and-such sucks," but rather want more contrarian posts that actually back up their contrarian opinion. Examples of blogs that often have these types of articles include Software Reality and The Programmer Has No Clothes.
5. Fresh Perspective - One of the reasons I prefer to choose the blog posts I read via search engine and via browsing of social aggregation sites is that these approaches work best for discovering fresh new perspectives. The best of the blogs contained in the lists described in this post are amazing in the sense that they almost all are long-running blogs (a requirement for being popular) that are consistently useful (another requirement for being popular). However, some of the freshest perspectives can sometimes come from those newest to software development and/or newest to blogging.
6. Link and Reference Heavy - My favorite blog posts are typically link-heavy and/or provide many references. If I really like the subject of the blog post, chances are I'm going to want to read similar material. It is also likely I'd like to see other posts that inspired the post I am enjoying. Furthermore, I sometimes need further explanation of more complex terms covered in a great post and can find that more easily if it is linked to. It is my opinion that one of the best features of the software development corner of the blogosphere is the community nature of it. The more interconnected the blogs are, the more we can gain these advantages. It seems that I have found "just the right blog post" a countless number of times not directly from my favorite search engine or from my favorite social aggregation site, but have instead found it via a link from the page found from the search engine or aggregation site.
Conclusion
There are many excellent blogs related to software development out there. With no hope of ever reading them all, the lists outlined above can be useful in determining which to focus on if one wants to read a particular blog regularly. In many respects, the plethora of great software development blogs convinces me more than ever of the value of effective use of a good search engine and of a good social aggregation site to allow me to see either the most applicable blogs to a particular problem or to see the blog posts that are generally deemed by the community to be the most significant.
Because search engines provide answers to current problems and technology-focused social aggregation sites expose me to new ideas and concepts, I often don't find the need to limit myself to reading a particular blog regularly. That being said, there are cases where a single blog ends up helping me enough times via search or via aggregation site that I realize it's worth reading proactively. I usually determine these blogs from my own experience, but it is still worth seeing which blogs others think are among the best in software development. In the remainder of this blog post, I reference some of these collected lists of "best," "top," or "most popular" software development blogs. I also make excuses for why my blog did not make any of these lists. :)
NOOP.NL: Top 200 Blogs for Developers
Jurgen Appelo's Top 200 Blogs for Developers is perhaps the most comprehensive (200 blogs!), most frequently updated (quarterly), and most systematic of the lists of software development blogs. This list is based on Google Page Rank, Google links, and several other ranking sources. Greater detail on how this list was created is available in How to Make a Top Blog List. Jurgen says that he does not include blogs in this list that are narrowly focused on a single language, but I like to think that the reason my blog did not make the list is that he is not aware of it to even consider it for the Top 200.
64 High-Ranked Blogs for Developers
The blogs cited on 64 High-Ranked Blogs for Developers seem to be those with highest Page Rank (each has a Page Rank of six or higher, which is impressive for a development-focused blog). I like the appearance of this list with screen snapshots, the page rank, and a link to the blog's main page. It is a simple and elegant web page design. I am fairly certain that my blog's Page Rank (5) is the reason for exclusion from this list. At least that's what I tell myself because I don't like the idea that my blog did not make the list due to its lack of impressive design.
SD Times Best Blogs of 2007
SD Times on the Web features an article Best Blogs of 2007 includes "most interesting technology blogs" that range from "the authoritative to the wacky." I like to think that my blog did not make this list because I did not start writing in until late 2007 (October).
Several Tech Blogs Worth Exploring. Oh Yeah, All by Women.
This recent (October 2009) blog post looks at a wide spectrum of technical blogs written by women. I like to think my blog did not make this list because of my gender.
Top 10 Recent Blogs
Not so recent anymore (December 2005), many of the blogs listed at MEME: Top 10 Recent Blogs are still popular nearly four years later. When this list came out, my first blog entry would not be written for nearly another two years.
Five Great Software Development Blogs
The March 2007 post 5 Great Software Development Blogs provides a paragraph explanation of five preferred software development blogs and lists two more without explanation as blogs worth a time investment. Again, I am able to rationalize to myself that my blog is not on this list because it wasn't even around at that time.
My Personal Favorite Software Development Blogs
If I cared more about having my blog make a list of "top software development blogs," I would make up my own list and ignore any idea of objectivity and put my own blog on the list (probably as #1). However, the truth is that I really don't have a list of favorite blogs. Rather, I do recognize some blogs that consistently provide the answers I seek via search engine or learn about a new post via a social aggregation site. Instead of listing particular blogs here, what I will state is the types of software development blogs that I prefer. In general, I have found that I prefer blog posts that meet one or more of the following criteria (in some cases, these are conflicting criteria and it is nearly impossible to satisfy both):
1. Very Specific and Detailed - These tend to be preferred when I seek an answer to a specific and often somewhat tricky question or problem. An example of this was was Mike Morearty's Common E4X Pitfalls post that specifically addressed problems I ran into when first using E4X with Flex.
2. Experienced-based - I appreciate blogs written with the voice of experience. I often don't need a post repeating what all the books and articles say; instead I need to know the intricacies and nuances of a particular approach, language, framework, methodology, or other software development concept.
3. Lessons Learned from Others' Mistakes - I make enough of my own mistakes that I appreciate when others make potential mistakes first and then warn me and the rest of us about these. These refreshingly honest blog posts can be difficult to write, but can be of significant value to the rest of us.
4. Contrarian - It is easy to be a lemming in the software development. I appreciate blogs that challenge this mentality and challenge the direction of the software development herd. I don't always agree with the contrarians (the herd is correct sometimes), but I think the consideration of multiple viewpoints is extremely valuable. Note that I don't want more simple-minded posts that say, "Such-and-such sucks," but rather want more contrarian posts that actually back up their contrarian opinion. Examples of blogs that often have these types of articles include Software Reality and The Programmer Has No Clothes.
5. Fresh Perspective - One of the reasons I prefer to choose the blog posts I read via search engine and via browsing of social aggregation sites is that these approaches work best for discovering fresh new perspectives. The best of the blogs contained in the lists described in this post are amazing in the sense that they almost all are long-running blogs (a requirement for being popular) that are consistently useful (another requirement for being popular). However, some of the freshest perspectives can sometimes come from those newest to software development and/or newest to blogging.
6. Link and Reference Heavy - My favorite blog posts are typically link-heavy and/or provide many references. If I really like the subject of the blog post, chances are I'm going to want to read similar material. It is also likely I'd like to see other posts that inspired the post I am enjoying. Furthermore, I sometimes need further explanation of more complex terms covered in a great post and can find that more easily if it is linked to. It is my opinion that one of the best features of the software development corner of the blogosphere is the community nature of it. The more interconnected the blogs are, the more we can gain these advantages. It seems that I have found "just the right blog post" a countless number of times not directly from my favorite search engine or from my favorite social aggregation site, but have instead found it via a link from the page found from the search engine or aggregation site.
Conclusion
There are many excellent blogs related to software development out there. With no hope of ever reading them all, the lists outlined above can be useful in determining which to focus on if one wants to read a particular blog regularly. In many respects, the plethora of great software development blogs convinces me more than ever of the value of effective use of a good search engine and of a good social aggregation site to allow me to see either the most applicable blogs to a particular problem or to see the blog posts that are generally deemed by the community to be the most significant.
Đăng ký:
Bài đăng (Atom)