home · blog · groups · about us · contact us
DevelopmentNow Blog
 Wednesday, July 18, 2007
 
 

SubSonic is an open source project loosely modeled after Rails. It uses BuildProviders to automatically generate the DAL/ORM code at compile time, meaning you don't have to manually regenerate code every time your database schema changes.

The downside was that the code was only auto-generated for Web Site projects, not Web Application or Class Library projects. So Rob Conery has a recent post about using Pre-build Steps to autogenerate the SubSonic code for all types of projects.

So, read the "What will it do for me?" on the SubSonic home page, and check out the first 5-10 minutes of a recent screencast. If you like what you see, maybe try it out in your projects.

If you aren't already using DALs and code generation to accelerate your development work, you really owe it to yourself to check it out. :)

July 18, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Friday, May 04, 2007
 
 
Dan North has a nice intro to BDD over on his site. BDD = Behavior Driven Development, an evolution of TDD (Test Driven Development). He also has some other blog posts about BDD that help illustrate the difference between BDD and TDD and explain why BDD isn't just TDD with prettier names.
May 4, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, February 28, 2007
 
 

One of my projects involves a complex financial database (stored in Access). I wanted to add a feature to the client EXE that allowed testers to FTP their current copy of the database to me so that I could try to reproduce problems without having to reenter all the data. I didn't see an FTP control handy in VS2003, and I didn't feel like messing around with Windows built-in FTP command line program, which doesn't support passive mode & is annoying to pass parameters to.

So I found NcFTP, a free command line FTP program that fit the bill. Specifically, it offers a dedicated "uploader" program called NcFTPPut. Now, the codebehind for my "Upload Database" button looks like this

Private Sub UploadDatabase()
  If MessageBox.Show("Upload current database for testing? You must be connected to the internet.", _
      "Confirm Upload", MessageBoxButtons.YesNo) = DialogResult.Yes Then

    ' make temporary copy of database
    Dim currentDB As String = AppConfig.GetDBFileName
    Dim tmpDBName As String = currentDB.Replace(".mdb", "-" & _
      System.DateTime.Now.ToString("M-d-yyyy-h-m") & ".mdb")

    System.IO.File.Copy(currentDB, tmpDBName, True)

    ' upload using NcFTPPut
    Dim exe As String = System.IO.Path.GetDirectoryName(Application.ExecutablePath) & _
      "\ncftpput.exe"
    Dim params As String = "-u MyFTPUserName -p FTPPassword ftp.developmentnow.com . """ & tmpDBName & """"
    Try
      Dim myProcess As Process = System.Diagnostics.Process.Start(exe, params)

      myProcess.WaitForExit()

    Catch ex As Exception
      MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

    Finally
      ' delete temp copy
      System.IO.File.Delete(tmpDBName)
    End Try
  End If
End Sub

It's simple, but it works. Now whenever testers find problems with the program, they can just click the "Upload Database" button in my app to send me the data I need to reproduce the problem.

 

February 28, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Friday, February 16, 2007
 
 

New version of FireBug is out (v1.0.1), if you use javascript and FireFox, get it! Release notes for 1.0.1:

  1. Support escaping the % sign in console.log() calls using %%
  2. Support "Find Next" in the CSS tab
  3. Fixed problem causing inconsistent breakpoint triggering
  4. Deleting a disabled CSS property will work properly
  5. Fixed bug that prevented editing of DOM properties with numeric values
  6. Inserted warning about incompatibility with Sothink SWF Catcher extension
  7. Fixed incompatibility with HTML Validator extension

And no, I'm not going to post a blog every time a minor rev of something comes out. Only sometimes. :)

Code | Tools
February 16, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 
FYI, TinyMCE is a nice little editor that makes it super easy to turn a regular textbox into a WYSIWYG HTML editor.

You can play with a demo and see how to install it.

I haven't looked into how to extend it, but if you have a number of textboxes containing editable HTML, you owe it to yourself & your users to bolt something on like TinyMCE.

FWIW I've also worked extensively with FreeTextBox, and while it's nice, installation is a bit more involved, and progress on it seems to have slowed. Plus it's not totally free open source, and the HTML output isn't very XHTML (unless you buy the non-free version).

TinyMCE is cool because it's a literal bolt-on that you can include w/o touching your ASP/ASP.NET/PHP code if you don't want to.

To be fair, another really popular WYGIWYG editor is FCKeditor. I haven't used it, but I've heard it's the bees knees.

And lastly, there's a new potentially-hip WYSIWYM (What You See Is What You Mean) editor cll WYMEditor that I mentioned a while back. Their goal is to keep the outputted XHTML simple, since oftentimes users can paste or SHIFT-click their way to producing crappy HTML that "looks" good to the eye but is horrible (e.g. extra breaks, inline styles) for CMS systems.
Code | Tools | Web
February 16, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 
I've been playing more with jQuery lately and enjoying it. It's small, quick, cross-browser, CSS-compliant, and won't conflict with any other javascript libraries (including ASP.NET AJAX). There are also a number of easy-to-use plugins that offer some nice almost-turnkey functionality w/ a few lines of javascript (e.g. tabs!).

There are other powerful javascript libraries, like prototype, script.aculo.us (which uses prototype), dojo, mootools, and a bunch of others.

It's tough keeping on top of everything in web development, since there are new tools and widgets all the time. Spend too much time checking out what's new and you never learn anything in depth or get anything built. Spend too little time learning what's new, and you miss out on huge timesavers and risk getting outmanuevered by speedy web 2.x competitors. So I try to maintain a balance, and drink a lot of coffee. :)
Code | Web
February 16, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Tuesday, February 13, 2007
 
 

One day, a friend asks you if you could help them make a simple web site. Your friend said it would be great if it could include things like a blog, photo gallery, maybe an online calendar. Maybe your friend's in a band and wants to have a mailing list and an online calendar. Or they're a budding artist and want a photo gallery to show off their work. Pretty understandable requests, and pretty common features (nowadays).

However, you have a dilemma. Your friend doesn't have a ton of cash, and you don't have a ton of time. While you could build all those features from scratch, that could take a while. You want to make sure that you don't undertake a project that could spiral from hours into days of work. But you don't want to send your friend packing, and there's got to be a lot of free or almost-free stuff out there that you can stick together, right?

Yep, there sure is. Here are some things that I found or used before:

  • Use Google Apps for Domains. It provides everything a basic site could need -- email, calendar, a page editor, and some attractive (albeit a bit generic) page templates allowing someone to build a site in a WYSIWYG way. I didn't see a way to upload a custom page template, but you can edit the HTML of the page "sections" in order to embed stuff like YouTube videos or whatever. I like WYSIWYG editors because it means that you can make your friend work on & enhance the site, instead of you having to make every tweak. Note that you can use Google Apps just for email and calendar -- you don't have to use it for web pages if you don't want to.
  • Use a cheap web host. The cheapest I've found is E-rice, but it's very no-frills. GoDaddy has basic plans for $3+/mo that include PHP, MySQL, email, and a number of ready-to-install apps (blogs, forums, CMSes, photo galleries, etc.) for Linux or Windows hosting plans (Linux has way more freebies). Dreamhost is a bit more expensive and also offers one-click installs for blogs, CMSes, wikis, photo galleries, etc. The free add-on apps available for GoDaddy and Dreamhost accounts are nice, because if you want to include those features later on, you don't have to mess with installation. If you're trying to decide between Linux and Windows, I'd suggest going with Linux/PHP plans, since there's a lot of free/open source PHP code out there that you could include in the site later. And PHP is fun. :) 
  • Use a blogging service like Blogger or Wordpress or Typepad. They offer lots of templates (althoguh you can make your own), you can have them on your own domain, they often offer embeddable widgets, and they're cheap or free. Great for a basic personal or family site. Plus, a blog-driven site means that your friend is in control of the content, which is a good thing. :)
  • If you don't want to use a pre-existing blog template, you can use open source web templates from oswd or OpenWebDesign. Some require attribution, but all are free. Andreas Viklund also linked to some open source templates here and here.
  • You can include free stock art from stock.xchng or flickr. For stock.xchng, all the stock art is free, although some photos require you get the author's permission and/or provide attribution. Note that stock.xchng often includes non-free samples from Stockxpert.com in the search results, so be careful where you click. For "free" stock art on flickr: 1) do a search, 2) click "advanced search", 3) check "only search within creative commons-licensed photos", and 4) re-perform the search. You'll see photos on flickr available under the Creative Commons license, which means you must try to obtain permission and provide attribution (e.g. a link somewhere on your site saying "city photos courtesy of Mike Smith"). There's also a "stock" group in flickr where you can find photos.
  • For photo galleries, you can include widgets & links from flickr. Photobucket has a nice photo album widget that makes it easy to add a photo album to your site. Or you could pay $40-60/year for a clicker, more integrated photo gallery from SmugMug. Or use any number of open source photo galleries (DreamHost & GoDaddy offer one-click installs if you have Linux hosting).
  • You can use Google Calendar to track and share online events (good for band, bar, etc web sites), and embed it into your site. If you're using Google Apps, embedding it is as easy and clicking the "add widget" link. Otherwise you have to go through a few more steps, but it's still easy. 30 boxes is another very nice online calendar, and they have a nice "Share" button in the upper left that makes embedding your calendar in your web site a snap (click "Add to Blog"). Nitpick to 30 boxes: maybe rename that link from "Add to Blog" to "Add to Blog / Web Site" ?
  • You can run a simple mailing list/discussion group using Google Groups or Yahoo Groups. Google Groups has added some neat new features lately.
  • You can find other easy-to-embed widgets (e.g. local weather, latest news, games, a clock(?) )for your web site at WidgetBox or Google Gadgets. Like this weather thingy:

So there's the high level bullet point deal. Now you can help your friends and neighbors put together some basic sites while minimizing the risk of it becoming an ongoing project.

Code | Web
February 13, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Tuesday, February 06, 2007
 
 

Today, TechCrunch posted a review of AllTheCode, a new code search site. So now we have at least

  • AllTheCode  -- only java results right now, no filtering available
  • Krugle -- can specify language and project. Can filter results by where the search term appears (e.g. comments, method name, etc). Can also search "Tech Pages" (a selective web site search) and projects.
  • Koders -- can specify language and license
  • Google Code Search -- can specify language, license, package, & file. Can search using regular expressions.
  • Codase -- can specify language (Java, C, or C++ only), plus advanced things like search within method name, class name, etc.

Why Use Code Search Tools?

Code search tools are handy because as a developer, your productivity and quality can be greatly affected by how you come up with the code to put into your applications. Sure, you could write everything from scratch, but that's too slow. Reuse is a good thing. Ideally you should be able to find existing samples, snippets, libraries, and frameworks that you can adjust and glue together.

In the old days you'd have to store away your favorite code snippets on your PC, or thumb through archived issues of Doctor Dobb's Journal. Later, you'd buy CDROMs filled with sample code, and tap your fingers while your drive whirred away. Eventually those code libraries could be installed on your PC. Recently, you'd use Google and other search engines (well, mostly Google) to search for code. But searching on "VB MD5 Algorithm" might get you some relevant results, but also a lot of junk.

So now we have code-specific search engines, allowing us to (hopefully) enter in our search terms, our programming language, maybe our license preference, and get back a set of results sorted by popularity, maybe with a Digg-esque rating and comment system so we know which code snippets are good and which suck. Right now if I pulled up an MD5 algorithm, how would I know if it even worked correctly?

Testing the Sites

To test the code search engines out, I did a search for "luhn" in Java on all five sites. FYI the Luhn Algorithm is used to test for invalid credit card numbers -- it's nice because a lot of invalid numbers can be eliminated without having to connect to and pass the number to a credit card gateway. All five sites returned matches (Codase with some extra work), and all had an integrated source viewer so I could review the match.

So here's what I found:

AllTheCode

AllTheCode returned 29 matches, but I didn't see any search hit highlighting or anything. A lot of them were duplicates, too.
allthecode

The source code viewer was ug-ly, bad color choices. And interestingly, my term "luhn" wasn't in the document at all. I tried some other searches & it seems AllTheCode is having some sort of issue, because most or all of the matches were totally irrelevant to my search. Chalk it up to Alpha status code, maybe. Hmm...maybe code search engines should let us filter against alpha, beta, or release code? There was a link to download the code file, but no links for the project home page or project zip file. No links to view other files in the project, either.
allthecodeviewer

 

Google Code Search

Google Code Search found about 100 matches and highlighted the search term. It also showed the code license and a link to the zip file containing the code file. It seemed to do a good job at suppressing duplicate files (e.g. the same code file in multiple projects), something none of the other search engines did. Not a huge deal, but nice.
GoogleCodeSearch

The code viewer was spartan (as with many things Google), but it had links to other files in the project, and it automatically scrolled me to the spot in the code where "luhn" was found. A very nice touch, especially for huge files. There were handy links to download either just the code file, or the whole project in a zip file. No link to visit the project's home page (e.g. on SourceForge) though, which might make it annoying if you wanted to check for later versions or supporting documentation.
googleviewer

 

Koders

Koders found 23 matches & showed a bit more information than Google did, like LOC, copyright and/or license info, links to SourceForge project pages, etc. Interestingly, koders runs on ASP.NET, a rarity in the Web 2.0 world.
koders

The code viewer was a bit nicer than Google's, and the search term was highlighted. On the left side was links to other files in the project plus anchor links to the various methods in the code file, which was cool. I still had to scroll or browser search to find out exactly where in the file it said "luhn," but at least it was highlighted. I think they should have provided anchor links to exactly where in the file the term was found. I could download the code file, or browse to a "project home page" of sorts (which had links to SourceForge and some stats), but I didn't see an easy way to download the entire project right from koders. Koders also offers a plugin for IDEs like Vistual Studio and Eclipse.
kodersviewer

koders "project home page"
kodersproject

 

Krugle

Krugle found 21 matches. Like Koders, it had some links to the SourceForge project pages and showed the license. It also has a neat feature allowing you to filter results based on where the search term appears (e.g. only show results where "luhn" is part of the function definition), but this feature didn't work very reliably.
krugle

I must say that Krugle has the prettiest code viewer. I liked the highlighting (though using italics for comments is probably a bad idea for readability), it had a cool treeview of the code repository, and it opened the code files in separate tabs so you could browse through multiple results. Yes I know you can also middle-click a link to open a new browser window tab, but still. I could download the code file and link to the project home page, but I couldn't download the whole project from Krugle.

One bad thing is that Krugle heavily uses AJAX, and thus your browser only shows the www.krugle.com link, no matter where you are. Makes it hard to bookmark stuff. You can click the "Create Link" button to get a greybox popup with a unique tinyurl-ish link to your search results, but that's one extra step I'd rather not take. Another bad thing is it didn't highlight my search term in the code, and my browser's search feature didn't work on the AJAX-y page. So I had to manually scan the whole code file to find out where "luhn" was. Not good for huge code files. :)
krugleviewer

 

Codase

Edit: I liked the idea of offering different types of searches, but got inconsistent results on Codase. A smart query (the default type of query) for "luhn" in java returned no matches, while a free text query for "luhn" in java returned 1. A free text query for "luhn" in all languages returned 11 matches, but Codase said they were all java file. So why those 10 extra matches didn't show up before isn't quite clear to me. FYI, searching for "validate credit card" returned more matches, but it still trailed the other engines. The presentation is nice, with syntax coloring in the search results for better readability.

codaseresults.png

The code browser is also pretty nice looking, too. Nice highlighting, with links to download the code. No project links, there, though.

codaseviewer.png

Conclusion

Right now I'd put Google at the top in terms of number of searches, duplicate file suppression, and barebones ease of use. Koder is at a close second with a better code viewer, handier project links, and some neat tools like IDE plugins. I could see Koders and Google switching places depending on your preferences.

Krugle was in third place with an attractive UI but average features. Krugle offers some interesting stuff that the other engines don't (MyKrugle for attaching notes and saving documents, code position searches, tech page searches), but IMO they seemed like not a lot of people would use them.

Currently, AllTheCode is just too alpha/buggy to consider, plus the fact that it only searches java limits it greatly. Codase could be interesting with its deep filtering ability and syntax coloring, but I think mostly people would just use the "smart search," and the poor number of results and limited languages hurts Codase.

Other Thoughts

FYI, to simulate a developer who might need to validate credit cards but wouldn't know the name of the algorithm (i.e. "luhn"), I also did a general search for "validate credit card" in java code and got a lot of results (100+) in Krugle, Koders, and Google Code Search. The results returned seemed applicable, and interestingly, the top few matches were different for all three engines.

Also, I'd like to see some community-based value added in, with comments or diggs to help me decide which algorithm to pick or avoid.

 

 

Code | Tools
February 6, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [4]



 Wednesday, January 31, 2007
 
 

I came across Unfuddle today. It's an ASP model that offers hosting for project management tools, source code, and bug/issue tickets. Plans range from free to $100/month.

I've been looking for a simple bug tracking solution, and while Fuddle may not be the right way to go (for me), it seems like an interesting offering. They use Subversion for source code hosting, and a Rails-built platform for managing projects, tracking to-dos and milestones, handling bugs and feature requests, entering time spent, and keeping a project moving along. Might be a good option if you have a small team of developers and don't want to deal with setting up a source code repository, and you're tired of emailing Excel spreadsheets around.

Note that hosting companies like Dreamhost offer easy Subversion setup, but AFAIK don't offer the other stuff -- issue and project tracking.

CropperCapture[16].Png

January 31, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

Ok, I'm not a designer, I'm a developer. So tips that are new to me are often old hat to my designer friends.

Nonetheless, I put tips out in hopes that they'll be as helpful to me as they are to other non-designer developers who are still often called upon to put together a simple site that still looks decent.

So, I was looking into rounded corners today. You know, the cool hip rounded stuff you see on every Web 2.0 site. So I found Smiley Cat's CSS Rounded Corners Roundup, a big list of rounded corners techniques. What I liked is that many of them had online generators, so I could type in some parameters (color, size, roundedness) and be given the exact HTML, CSS, and images I need to pull off my cool rounded corners effect.

For example, I got this from roundedcornr.com:

 

So, I was looking into rounded corners today. You know, the cool hip rounded stuff you see on every Web 2.0 site. So I found Smiley Cat's CSS Rounded Corners Roundup, a big list of rounded corners techniques. What I liked is that many of them had online generators, so I could type in some parameters (color, size, roundedness) and be given the exact HTML, CSS, and images I need to pull off my cool rounded corners effect.

I also ran across a javascript/css-only version called Nifty Corners Cube. Since it only uses CSS and javascript to give rounded corners to DIVs, no images are needed, and the latest version of NiftyCorners lets you do other stuff like rounded menu tabs, or complex layouts.

Code | Web
January 31, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Tuesday, January 23, 2007
 
 

Smashing Magazine came up with a link-list post called 53 CSS Techniques You Couldn't Live Without. It links to cool CSS effects that are easy enough to add to your web applications. Developers (like me) are notorious for being, hmm, spartan when it comes to design, so ready-to-go script that lets me jazz up my pages is welcome. Plus, Smashing included little screenshots of the effects, so you don't have to click through to see what they're like (though a few of the screenshots don't really explain the effect well [I'm talking to you, Link Thumbnail]). Anyhow, here's images of a few:

CSS Teaser Box
CSS Teaser Box

CSS Ratings Selector

 

ASP.NET | Code | Web
January 23, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Sunday, January 21, 2007
 
 

I was reading TechCrunch today and noticed an article about booBox, a lightbox product that allows Amazon affiliates to incorporate cool web-2.0 "popups" with Amazon.com products into their site. I often read about startups on TechCrunch, and sometimes I think to myself "man, I wish I had thought of that" or "man, I could do something like that."

Well, today the barrier to entry was so low that I came up with a competing product in under an hour. And not only that, but I'm offering three times the options! And did I mention it was free? So I give you ... the DevelopmentNow Amazon GreyBox!

For demo and code, go here.

This is a real life example of what I was getting at in my Social Networking for Sale post -- with rapid development techniques, open source software, and the huge availability of turnkey widgets, code samples, and solutions, product development is becoming increasingly commoditized, allowing the easy output of "close enough clones." A previous employer had experience with a competitor whose product was "close enough" to be a real competitive threat, and so winning clients was less about the actual product than the strength of the team, marketing, PR, customer service, existing client list, and sales power.

So do I think that I'll be a serious competitor for booBox? Probably not, unless I put together a hip-looking web site, send out press releases, work the conferences, etc. And competing with them wasn't really the point. Rather, since Mike Arrington gave booBox "an early thumbs up" and said it "may be quick acquisition bait for Amazon or eBay," it seems there's potential gold even for quickly-developed apps.

Granted, I were serious (or smart?), I probably should have said my product took weeks/months to develop, not minutes/hours. And instead of using my product to prove a point on the commoditization of software in a little-read blog, I should have instead used it to go for either some web 2.0 notoriety and/or a quick-hit acquisition. But ah well. :)

booBox

booBox

DevelopmentNow's Amazon GreyBox

product link

mini link

related products

January 21, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, January 15, 2007
 
 

Well, I may have to start up a social networking category. I ran across Shuzak, a "social network for geeks." While the idea of niche-based social networks (or vertical social networks: VSNs) isn't a stunner, it doesn't seem very common yet. I'm sure we'll see many more in the upcoming year.

Shuzak seems interesting, but at first blush it feels less like a targeted MySpace and more like a BBS with extended user profiles. Like a custom Zoints Local app. I do like the fact that they're not just a generic social network, though ... they have a few features specific to their theme (e.g. syntactical code highlighting, mathematical equation formatting). I could maybe see this taking off in a university, allowing professors to set up private, invitation-only "classroom social networks" to allow their students to collaborate on projects, exchange notes, ask questions, etc. There ya go, Shuzak, I just gave you your in. :) Ofc, you probably already thought of that.

Anyhow, when one (like me) talks about a social network being a BBS with better profiles, is that a bad thing? How exactly does one define a social network? Is it features, e.g. profiles, groups, and buddy lists? Or is it purpose, e.g. exchange ideas, send messages, meet people? And if it's purpose, does that purpose have to be intentional (e.g. using eHarmony to find dates), or can it be incidental, as with the countless friendships forged in MMORPGs? Could you argue that other, existing sites that are centered around communication (forums, social bookmarking sites that allow comments) are social networks, too? Mashable sure did by mentioning Digg as a techie social network.

I will say, though, that looking enough "like MySpace or Facebook" will probably make it easier to get funded.

January 15, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Sunday, January 14, 2007
 
 

As I mentioned in Social Networking for Sale, I believe social networking software/sites (SNS) will become pretty commoditized in 2007. It's already pretty cheap & easy to get your own community site.

For example, there's Scuttle, open source social bookmarking software. If you need social networking software (a la MySpace), you can find it for free/open source with Alicia (aka PHPizabi) or AroundMe or osDate or Yogurt or Dolphin.

If you want a fancier MySpace clone you can spend $300 or so for phpFox or Handshakes or BuddyZone or webNetwork or Elgg Spaces or SocialEngine or a dozen others. 

There are also hosted, turnkey solutions like PeopleAggregator, Me.com, NingPringo, KickApps, and others, which offer plans ranging from free to paid.

There's also a social networking addon for vBulletin called Zoints Local -- plug it into your existing vBulletin site and bingo! instant "community."

And of course there are "community" addons for CMS+ platforms such as phpNuke, Joomla (Community Builder), Drupal, etc. allowing you to truly build your own SNS. One could also do it by hand using Rails or some other rapid dev platform.

No matter which option you choose, you have a number of customization options, not all of which require a programmer.

The point of all those links is to reinforce the fact that there's already a slew of cheap starting points for a social community site for would-be MySpace topplers. I figure there will eventually be a number of vertical social networks (VSNs) for gamers, hobbyists, flyfishermen, cheerleaders, etc. Maybe they'll be within MySpace, or maybe third party sites. Better yet would be if VSNs could integrate with people's existing social networks elsewhere on MySpace, Facebook, LinkedIn, etc, so that you don't have to abandon your friends, profile, and blog posts to tap into a more targeted community. People would be more likely to join a new social network if they didn't have to reupload all their photos, reanswer all their profile questions, etc.

PHPizabi Alicia

 

Boonex Dolphin
dolphin.png

OSDate
osdate.png

Zoints Local
Zoints Local

January 14, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [2]



 Thursday, January 04, 2007
 
 

I've been talking with different clients about building social networking sites. What I'm hearing more is the interest in specialized or vertical social networks (VSNs). Then what I hear is "so, how much would it cost to build a web 2.0 social network for <insert niche here>?" The answer is: it's getting cheaper all the time. The second, less-expected answer? That cheaper-to-build social networking sites isn't necessarily good news for would-be MySpace killers.

Interestingly, I noticed that mashable had a link indicating that ruduzu, the "anti-social networking site", is for sale. The winning bidder gets all the code, the existing community (all 273 of 'em), and one year of hosting. So far the bid is up to $3,800 with 15 days to go, so it's possible that potential MySpace killers can get their very own social site for well under $10,000!

I do think that plug & play social networking features (social widgets?) might be more popular in 2007. TechCrunch already talked about a comment system that could be quickly embedded in any site. I blogged about Plaxo's Address Book Widget making it easy to add all your buddies to a new social web site (and I wouldn't mind being able to import actual buddies from other social networks, too). So I'm sure we'll see other widgets (instant photo gallery! instant blog! instant buddy list!) this year, along with a huge crop of rapidly developed (and probably rapidly abandoned) "web 2.0" sites.

Thus comes my real point -- I think the base technology is becoming more of a commodity. I believe it's getting easier than ever to develop software and web sites, and developers are more reluctant to reinvent the wheel. Which IMO means two things

  • the barrier to entry for crappy "me too!" sites will continue to get lower
  • the differentiators will be (as in the past):
    • continual improvement & innovation
    • ability to raise and manage capital
    • ability to market and make deals
    • ability to serve up interesting content 
    • hard, continued work

So in 2007, if you wanted to knock out a quick & dirty MySpace clone in a few weeks, you probably could. You could make a Google Maps mashup in under a week. Maybe even build a deli.cio.us knockoff in a few days.

But if you want those sites to be something other than resume fodder, expect to put in some hard time. The days of "build it and they will come" are gone. If they ever existed at all.

January 4, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, December 18, 2006
 
 

I saw this nice Code Smell summary at Berkeley thanks to Diederik Krols' anti-pattern blog. The Code Smell Summary (or maybe it's a cheat sheet) gives nice overviews of bad code practices, (briefly) explains why they're bad, and provides links to refactoring.com's illustrations and examples to demonstrate the problems and the cures.

Reviewing the code smell summary will help you become more aware of problem code in your own projects. Then if you really want feedback on your code, you can start using code analysis tools like FxCop or NDepend. :)

You can also read through some of the common refactorings as well as this list of database refactorings, although there's some sifting required to get to the real "a ha, that's a good idea!" stuff. I will say that the refactoring sites don't provide much explanation on why the ideas should be followed, presumably so that we'll be forced to buy the books.