Oct 11th, 2006 | Web
For those of you interested in Salesforce.com and their URL structure, useful for making bookmarklets, I documented Saleforce.com’s URL structure over at another blog I maintain entitled Thoughts on Salesforce.com. I also copied that documentation over to my WellDesignedUrls.org wiki with plans to maintain in on an ongoing basis.
Oct 7th, 2006 | Web
I was listening to one of Scott Hansleman’s podcasts the other day,and in it he mentioned the open source TiddlyWiki so I decided to check it out. For those of you not familiar with wikis yet, have you been living under a rock? (Sorry, just kidding, you can read up on Wikis over at Wikipedia.)
That said, let me talk about the history of my own personal home page and how it relates to TiddlyWiki. For a long time I’d looked for a new personal home page for my browser that would let me easily add/edit/delete/reorganize the common links I use, and TiddlyWiki is now my new favorite in their aspect.
Back in the late 1990’s, after using the web a few years, I moved to a hand edited HTML page on my C: drive for my browser’s "home page" where I stored my favorite links. I would periodically edit that page when I wanted to add or remove links, but I didn’t edit it nearly as often as I would have liked because it always seemed like a bit too much a of PITA. Later I changed my HOSTS file running on my machine to point www.myhomepage.com to a webserver running at localhost which made for a cleaner URL, but it didn’t change the difficulty of editing. This of course masked the real www.myhomepage.com site on the web, but as I didn’t use it I didn’t care! I stuck with that setup for years.
Then came along Google’s Personalized Home Page, and I was overjoyed. I used it for several months, configuring and reconfiguring. I even wished for enhancements to my Google Personalized Home Page, but over time it’s slowness to load just got to be too much for me. I returned back to my custom HTML page at my locally customed domain "www.myhomepage.com."
I even added a "text" field with the full file name of the local file so I could quickly cut and paste the filename into a file open dialog and edit the file. This improved things. But it’s nothng like TiddlyWiki!
I "installed" TiddlyWiki (i.e. copied the "empty" TiddlyWiki .HTML file) into a directory that is FolderShare‘d with my laptop (FolderShare is another of my favorite utilities) so that I can access the most updated verson do matter if I’m on my home computer or my laptop; this was a suggestion Scott Hanselman made, but I’m sure I would have figured it out too! :)
In a similar vein, one thing that makes a TiddlyWiki so cool is it can be stored on a USB key and then accessed from any computer!
How TiddlyWiki works is it uses a collection of "Tiddlers" which are page sections that TiddlyWiki dynamically displays on your page using some useful animations. A Tiddler is analogous to a "Topic Page" on a server-based wiki, but unlike topic page on a server based wiki you can and usually do have many Tiddlers open at the same time.
There are a few things I don’t like about it; nits really such as you can’t rename Tiddlers (or at least I haven’t been able to figure out how.)
I even started thinking about using TiddlyWiki for the home page of a websites I wanted to set up as it allows the disabling of editing over all but localhost. However, after looking into this concept, I realized that it wouldn’t be useful unless editable on another machine besides localhost. And I believe, by it’s very nature, TiddlyWiki could not lockout someone from editing it because all of code for the TiddlyWiki is stored in the HTML file itself! I guess a hybrid could work, and I would like to see that, but then it wouldn’t be a portable single-file solution.
Check it out. I bet you’ll love it too.
Nov 16th, 2005 | Marketing
Yesterday when I blogged about simplicity I forgot to mention Clayton Christensen’s take on simple technology. Clayton’s ground-breaking book was entitled "The Innovator’s Dilemma" and is a must-read for any developer who wants to understand the business dynamics between market incumbency and innovative uses of technology.
From his extensive research Christensen states in The Innovator’s Dilemma that disruptive innovations are almost never the result of technological breakthroughs but are instead recombinations of existing and often inexpensive technology in forms the former market leaders don’t pursue. He states the driving reason for the market leaders ignoring disruptive innovations the people in their sales organizations fight against pursuing them because they don’t see big enough market opportunities and/or they can’t make large enough margins compared to their incumbent business. That is, until it’s too late.
Christensen defines disruptive innovations as those "innovations1 that allow small companies to topple once strong, market leading companies and establish themselves as market leaders. His first example was 8" disk drives manufacturers who put out of business all 14" disk drive manufacturers. The latter sold to mainframe vendors at 60% margins, and their customers were interested in larger capacity and faster drives, not in more expensive slower smaller drives with less capacity (which had to be sold at only 40% margins!) But mini-computer manufacturers purchased the 8" disk drives and over time the 8" disk drive manufacturers improved their products to the point of being good enough (key phrase) that mainframe vendors decided to buy from them rather the pay for the increasingly feature rich and increasingly expensive 14" disk drives. At that point, with cost structures requiring 60% margins, the 14" disk drive manufacturers couldn’t maneuver and they all failed.
Examples of recent disruptive innovations with which you might be familiar are:
- Open-source ASP.NET apps and .NET developer tools such as DotNetNuke in the content management space, and NUnit and related for testing tools. Both of these started out much more simple than commercial alternatives, but are evolving.
- Simpler .NET components. Five years ago most components vendors were US-based. Today, the Internet has empowered many vendors outside the US to compete on price alone for the simpler components. One only need look at the number of the vast number of Internet Email Components for .NET to see this trend for what it is.
- Small-project Outsourcing. Another trend near and not-so-dear to many developer’s hearts - outsourcing - is all about being able to offer development services for less. Look at places like RentACoder where you can have small projects developed for literally a tiny fraction of what it would cost to hire a developer in the US to do the same work (smart and entrepreneurial developers should see this as an opportunity rather than a problem…) Today RentACoder’s projects are simple and inexpensive; tomorrow, who knows?
- RSS vs. incredibly fragmented and expensive alternatives to content syndication; RSS is simply XML, after all.
- Wikis, "The simplest thing that could possibly work" according to the Wiki’s inventor Ward Cummingham have edged out many commerical collaboration solutions, and most people say they do it better than what came before.
- MySQL started out as a simple and basic alternative to Oracle, SQL Server, and DB2. When you look at all the people who deployed early versions of MySQL because of its price (optionally free) instead of going with one of the big three, you realized that good enough really was an important concept at play. Now MySQL v5.0 is out and has stored procedures, triggers, views, and more. And if MySQL ever becomes good enough for everybody, Oracle, Microsoft, and IBM can’t compete at their margins.
I could go on, but those should be enough to help you understand the concept if my abstract description wasn’t enough.
Actually, if you think of another example, it would be cool if you would make a comment here and let me and my readers know about it!
1 - Also note that Christensen defined the term "innovation" to encompass a broader scope than just what we think of as technologies. He included business models as innovations too.
Jul 19th, 2004 | Miscellaneous, Programming
Though my blog has been quiet for several days, it doesn’t mean I haven’t been working on online projects. Since I launched it over a week ago, http://www.dotnetinfluencers.org/ has taken a lot of my time, but it is coming along better than I had hoped for! If you not familiar with what I’m doing over at dotnetinfluencers.org, basically it is a Wiki, but with a twist. Instead of a normal wiki where everyone is encouraged just to write stuff, I’m encouraging people to help me define an XML schema about people, activities, events, and so forth related to .NET programming.
The idea is instead of a lot of writing define a list of properties for each item and then programatically we can generate lists based on those properties. I’m using FlexWiki and it has a language called WikiTalk which we’ll use to process the properties and provide the lists. Just to give you an idea of what I’m talking about, here is most of the actual text at this moment for a Wiki page about MSDN Magazine (the properties are the list of the colons, the values on the right; to understand the rest you’ll need to learn about WikiFormatting):
:Summary: About MSDN Magazine
PeriodicalName: MSDN Magazine
PeriodicalFormerNames: MicrosoftSystemsJournal, MicrosoftInteractiveDeveloper
From the above and numerous other wiki "topics", we can generate an automatic list of periodicals on dotNetInfluencers.org:, and/or many other lists. Now don’t those page properties look suspiciously like attributes or subelements of an XML element? I thought you’d think so… If you haven’t seen dotNetInfluencers.org, check it out. Browse around to get a feel for the site, and then add yourself and/or anything related to .NET. Better yet, if you’d like to help me build this site to the point we can define and public the XML Schema which is the purpose and goal of the site, send an email to mikes (at) xtras.net.
UPDATE: This project is no more and my email address has changed.
Jul 11th, 2004 | Miscellaneous
On Monday July 5th, 2004 I blogged about a project on which I was working. That project was a Wiki based on FlexWiki located at www.dotNetInfluencers.org, and it is now live and public on the Internet.
Click Purpose and Goals to read what I’m attempting to accomplish with dotNetInfluencers.org. If you are cynical and believe I might have a hidden agenda (as some of my friends told me people might question why I launched the site), please read this.
As it is wiki, it is designed to be a community project. I am the catalyst for launching it, and I wrote some ground rules for participation, but if it is to succeed it will be because the community drives it, and it is succeeds, it will be the community that benefits.
If you think this is a worthwhile project please blog about it and/or suggest to three .NET Influencers you know they add to their resume on the site (and it doesn’t have to be complete; they can just start listing their activities and recognitions with a note that it will be completed later.) For example, here is the list of people I’ve added already but for which most I don’t have an influencer resume.
Anyone with a blog about .NET, please list it.
Also, I encourage not just the .NET Influencers themselves but also Magazine publishers, Book publishers, Conference promoters, Training companies, and other organizations whose business involves .NET Influencers to post their list of books and authors, magazine articles and authors, conferences and sessions, training courses and trainers, and more. This is a site whose purpose is to collect and collate information about the community, and it won’t succeed unless the community contributes.
Thanks in advance for your help to make dotNetInfluencers.org a success.