home · blog · groups · about us · contact us
DevelopmentNow Blog
 Thursday, March 06, 2008
 
 

Well, you can't really "roll back" commits per se, since Subversion remembers everything you've committed. But, if you realize that your current version of a file or directory is bad, and you need to restore that to a previous version number, you can do a svn copy like this

svn copy --revision 7  http://svn.yourdomain.com/svn/trunk/somefolder/myfile.php ./myfile.php

The above command will pull down myfile.php from version 7 of your repository and place it into your working copy. You can then check it in with

svn commit ./myfile.php -m 'rolled back to version 7'
You can also roll back directories instead of just specific files.
March 6, 2008    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, February 18, 2008
 
 

Another helpful page, using the Unfuddle API. Now users can submit a ticket into an Unfuddle project without having to log in.

submitticket.zip (4.23 KB)
Other | Tools
February 18, 2008    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 21, 2007
 
 
I thought about calling this entry "Don't Spend Two Hours to Save $20", but it lost out on the internal blog title poll. Both phrases are about how it's easy to end up spending hours & hours to avoid paying a nominal amount.

People who know me know that I like to talk about productivity a lot. Granted, I see the irony of me talking about productivity while I sit around writing blog posts, but anyhow.

Have you ever...

One of the things I've learned over the years is to not be afraid to spend a little money to save a lot of time. Assuming your time has value, it makes a lot of sense. So have you ever:
  • Spent hours creating a program to do something, instead of buying a $25 piece of software that does all that you need and more?
  • Used poorly-written, cumbersome free software to do your daily work, instead of paying $30 for a program that works really well?
  • Saved $20 on a new tech gadget by trolling FatWallet and TechBargains for a week, sending in multiple rebates, asking store managers to price match, and/or driving back to the store to do a return/rebuy or price guarantee?
  • Avoiding paying a $25 shipping fee on furniture or other large items by driving down to the store yourself, strapping the items to the top of your car, heading back home, unloading it, and carrying it into the room?
  • Bought a cheap piece of crap to do something (a rake, a wrench, a garden hose reel, a heatsink) that required extra time or money to get it working correctly, and/or broke after a short while and required replacement?
...and so on. It's easy to get sucked into saving a little money, but unless you enjoy the time spent saving that cash, you should make sure to be aware of how you spend your time and ensure that it's really getting you somewhere. As programmers, we love writing software, and it's really easy to say "hey I can quickly write or build my own X for free!" I've done that a lot (and heard similar sentiments from other developers), and while it's fun writing little utilities and tools, they have a habit of taking longer than expected.

A Full Price Lesson

I had a friend back in Chicago who asked me to come with him to buy some stuff for his computer. I mentioned that he could save a lot by checking out various deals, and that different stores had different prices, so that he could buy his keyboard at one vendor, his antivirus software somewhere else, a mouse on Amazon, and then send in some rebates to save even more. I mentioned that he should keep an eye on bargain-shopper sites and only buy when items go on sale, do some online research to compare price-for-performance between different items, and other price-shaving tips.

After a long spiel on techie thriftiness, he promptly ignored me and dragged us into Office Depot, where he asked my advice on what a good keyboard, mouse, and antivirus vendor were. I told him, and he grabbed the items, paid at the counter, and strolled out.

Initially I was shocked at his cavalier attitude at paying full price, but then I realized that he was done in 15 minutes. Done! I'd still be driving around, cutting out UPC symbols, etc. a week later.

I still remember that experience whenever I start thinking about how I can save $10 on a hard drive by comparing 4 different drives at 5 different sites over the course of 2 weeks.

If you're not working, you aren't getting paid

I'm not saying you shouldn't try to save money, nor should you throw money away. Nor should you buy things you don't need if something free will work just fine. Nor should you avoiding writing your own tools.

I'm just saying that if your time is valuable, think about how your time is spent, and just be conscious of where your hours are going vs where they'd go if you spent an extra $20-$100. Over the past two years at DevelopmentNow, that really hit home. We do 100% project work here, so if we're not working on a client's site, we don't get paid. With that in mind, I felt more comfortable paying a little to gain a lot (of time). Especially in IT, there are opportunities to spend an extra $20 to save hours.

Examples from the field

For example, I set up an Unfuddle account for the company. Unfuddle is sort of like BaseCamp+Subversion+Ticket system, but it was ready to go instead of me spending hours (days?) setting up SVN, Trac, and other stuff for free. I'm also probably going to buy phpEd or some other commerical PHP editor. Why? Because I get a lot for that $100 or so, and I buy it & I'm done. I take a lot of screenshots, too, and need more features than Cropper + Ifranview currently provide, so I'll probably buy SnagIt for $40. Plus I order most things (including furniture) online & have it delivered right to my door -- not only does it save me time, but it's better for the environment than driving my car around.

Wrapping up

So...that's how not to spend two hours to save $20. If you get paid hourly, saving $20 via two hours of unpaid work carries a real opportunity cost, which is how you go about losing 20 (or more) dollars an hour.

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



 Wednesday, August 08, 2007
 
 
10 good blog articles. Kudos to Colin C.
August 8, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Friday, July 27, 2007
 
 

You can now scroll more easily through data in Excel 2007, as told in IM chat form (inspired by 37 signals' Fireside Chat posts). BWS = me, DSM = Scott.

[08:46] BWS: heh Excel 2007 has a cool new feature
[08:46] BWS: when you're dragging a cell down
[08:46] BWS: you know how the further you move your mouse, the faster it drags & scrolls?
[08:46] DSM: yah
[08:47] DSM: and then you whizz past where you want to go
[08:47] BWS: yes
[08:47] BWS:
well in older Excel I would always end up scrolling too fast & going way beyond the last row of data
[08:47] BWS: well
[08:47] BWS: it now automatically slows down the scrolling
[08:47] BWS: when you get to the end
[08:47] DSM: nice
[08:47] BWS: kinda like how at a gas pump, if you prepay for an amount it automatically slows down
[08:47] DSM: yeah
[08:47] BWS: I think I will blog about this new scrolling thing

 

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



 Tuesday, July 17, 2007
 
 
I've been loving Marc Andreessen's new blog lately. Lots of stuff in there about startups, productivity, etc.
July 17, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Saturday, June 02, 2007
 
 

The A-lister for dedicated servers is Rackspace, a managed hosting provider I'm always happy to recommend. Great support & service. The one "downside" is that their price reflects their quality.

For cheaper dedicated boxes, you have to sift through hundreds of hosting companies and try to find ones who meet your needs, aren't going to screw up, and support you to the level needed. Sometimes you don't need a lot of support or uptime, and so you can get away with a cheaper box. I read some good things about ServerBeach and LayeredTech -- they seem to be a popular choice for inexpensive dedicated machines.

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



 Thursday, May 31, 2007
 
 

A few interesting links on time and working:

I like the 1 hour solution bit ... I already time all my tasks with a project timer I wrote, but sometimes I get a tired during the day and find myself tempted to check up on forums that I like, check email accounts I don't use very often, check RSS feeds, etc. So treating those as a reward might help me avoid doing them.

Granted, I wouldn't have found the above posts if I didn't check RSS feeds, but hey ... I can appreciate irony.

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



 Wednesday, May 30, 2007
 
 

VPS Hunt

I've been looking into VPS hosting a bit more and found a few well-recommended providers:

ServInt especially seems to get a lot of kudos, but I know MediaTemple is very popular with the designer crowd. And by looking at my site you know I'm a developer not a designer. ;) A designer friend of mine uses and likes RimuHosting a lot.

GoDaddy Virtual Dedicated Server

Personally, I have months of hands-on experience with GoDaddy's VPS offering, which is pretty inexpensive, and clients have heard of them (or at least seen their SuperBowl commercials). Price is good, performance is ok (not great), but it's a very no-frills offering, and you have to be prepared to administer the server and manage backups yourself. Most of their VPSes are Linux, so you'll be using the shell a lot, but they also offer a Windows 2003 VPS with 10GB of space starting around $40/mo, so you can Remote Desktop into that.

You can pay for better control panels, managed backup, etc., but then the price starts to get into the $60-$100+/mo range, at which point you may want to look at one of the above VPS providers instead.

I also don't know whether they offer any kind of quick upgrade path, in case your site suddenly gets popular and you need to move your VPS to a big dedicated box pronto. I kinda doubt it.

Rolling Stones Gather No ... Mosso?

Other than VPSes, I was also intrigued by Mosso's offering -- hybrid hosting allowing you to run PHP and ASP/ASP.NET sites in the same set of files. However, I don't really care so much about running PHP & ASP side-by-side, since if I really have that kind of blend I might just get two VPSes (one LAMP, one Windows). I was more interested in their focus on making it easier for development companies to provide turnkey hosting and 24x7 tech support services for their clients.

However, they don't support ASP.NET 2.0, which for me is a dealbreaker -- I'd be doing my clients a disservice if I didn't give them the opportunity to upgrade ASP.NET 1.1 sites to 2.0 -- development is faster & easier, features are better, and performance is greater. Plus I have several .NET 2.0 sites already.

 

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



 Sunday, May 20, 2007
 
 

I was writing on a Startupping thread about scalability and figured I could reproduce some of what I wrote here. The topic was about planning and dealing with having to scale web sites as traffic increases. I pasted on some of my responses & added some headings that give a frame of reference to what I'm babbling about. Again, the below is personal experience and opinion, and there's a lot of information on the web to supplement (and I'm sure in some cases contradict) what I refer to, below.

Planning to Scale

In my previous life at a big dot-com, we actually started thinking about multiple servers right away, in order to provide uptime/redundancy & zero-downtime code deployment. We learned along the way, did a lot of research, and/or hired good people with experience. It's always good to have good people. We also hired a few specialty consultants for a few hours of suggestions, and worked with hosting providers who had other big clients, so that we could benefit from their experience.

We started out using software load balancing, moved to hardware load balancers, & eventually to round robin DNS between two large server farms (which had their own hardware load balancers, redundant everything, etc).

We had issues with scaling whenever we hit a specific wall, e.g. when we hit bandwidth & server limits for routers, firewalls, & data centers. We had issues when we hit certain technology limits. We also had issues if we got slashdotted, but that happens. One year we were unexpectedly linked to by a very large, prominent ad on the home page of a top 5 site, so our traffic levels went through the roof, we all got called at 4am, and we stayed pretty busy ensuring things kept running.

A few things we did

  • We used a managed hosting provider who could prep & deliver new servers quickly, to help us with scaling quickly. Managed hosting also meant the provider could help out with monitoring, troubleshooting, setup, and solving problems. So e.g. if you lose a PSU at 2am, you don't have to drive down to a colo and swap it out.
  • We did regular load & performance testing so we knew how many servers we'd need for certain traffic levels. We also did profiling to pinpoint bottlenecks, optimize certain parts of the site, etc.
  • We worked closely with our marketing team, so that we knew about upcoming media blitzes. We kept alerts on blogs & news sites to watch for links, & we kept an eye on our traffic.
  • We had monitors on our servers, so that if traffic/bandwidth/cpu started climbing unexpectedly high, we were alerted & could react before it was too late.
  • We looked at our traffic history so that we knew what times, days, & seasons were popular for our site.
  • We designed our software for easy deployment & replication, & streamlined our server setup process so that once a new server was ready, we could add it into the farm quickly.
  • We consciously built out our site to handle a certain load level, e.g. 3x last year's peak or whatever (3x is a made up example). You obviously need to handle spikes, but being ready & able to handle an "infinite" level of traffic isn't cost-effective, especially when you're young & trying to spend wisely.
  • We planned for & expected scalability & multiple boxes right away.
  • We had remote access to servers, reports, & monitoring tools, so that if a crisis occurred in the off hours, we could contact staff & not wait for them to get into the office.
  • We had names, functions, & phone numbers of key staff printed up on a laminated card (business card size) & given out to a number of staff, so that people could quickly contact others in case of an emergency.
  • We bought staff donuts or pizza or food. It was a cheap way to say thank you & made them feel appreciated & more willing to not complain (too much) when getting calls in the wee hours.

In hindsight, maybe we could have gotten away with spending less time thinking about scalability (or maybe not), but that would have increased our risk of disaster/embarrassment/etc, and potentially made for more painful & frequent firefighting. So there's the tradeoff. Just like other things in business, you can spent extra time and money up front to be more prepared for business growth, or you can wait until later and possibly pay more and feel more pain.

How do you know what load your site should handle? Should it be 3x last year's peak?

There's no magic number. We typically used 2x previous peak as a starting point only, and worked from there based on various factors. We put a good amount of thought into measuring our server performance and determining the traffic we expected and/or wanted to be able to handle, because it translated directly into how many servers we rented and thus how much money we spent on hardware. The load/server number really depends on your budget, your expected growth (including what your marketing team has up their sleeve), your risk/downtime tolerance (including SLAs or clients you have to maintain), and how fast you can scale. I mean, if you started out very small last year, and your marketing department is going to buy a superbowl ad this year, your traffic is going to be 100x last year's mark, not 3x.

So since capacity costs money (and unused capacity gets noticed), you have to plan it out a bit. If you just follow the rule of thumb and buy/rent enough equipment for twice last year's peak (or whatever), then that means most of the time your web servers are running at 1-15% capacity. And unless you have a lot of money, that means you might have management or investors asking you "hey, how come we spend so much money on servers when they're only running at 10%?" We mitigated that issue somewhat by having some servers keep busy performing "non-essential" functions (internal reports, data crunching, load testing, QA, etc) that could be curtailed during a crisis where we need every drop of CPU.

The whole "running at 10% cpu 90% of the time" issue one reason why expandable services like CDNs (content delivery networks), S3, & EC2 are intriguing, b/c in theory they allow you to scale some aspects of your service on demand without having a lot of extra horsepower & bandwidth sitting around unused. Or why VPSes are kinda interesting since you can potentially do some really quick deployments.

Another thing we planned from early on -- we planned to have our images & static files (css, js, etc) running on a separate domain, which allowed us to serve up static files using CDNs or other sources of cheap, fast bandwidth. That also helped us not max out router/datacenter bandwidth (at least not for a while), since images/css/etc are often a large portion of your outbound bandwidth.

Any must-have tools for performance analysis and dealing with traffic?

We were on a Windows platform, so it was tools like Web Application Stress Tool, LoadRunner, and Visual Studio Enterprise Architect's stress/load tool, among others. And of course you'll also want some sort of web analytics package (AWStats, google analystics, webtrends, etc) to tell you what typical user behavior is, what your most popular pages are, etc. Because your tests should mirror typical user behavior if possible. You'll also need performance monitoring tools like PerfMon, etc, so you can see how your servers perform under various loads. So you figure out the page activity levels for a given number of users, max requests per second, max/avg response time, cpu load, how high cpu/ram/disk can go before your performance & user experience starts to drop. There may be better/other tools today, and I don't know what platform you're targeting, but those can get you started. I think it's ok to start with simple tools. We used Excel a good amount, too, to map, graph, and view performance test data.

For monitoring, we used the tools that our hosting provider had (we had managed hosting), but we also had a simple script that ran every X minutes, tried downloading a page, tried executing a database query, checked cpu/ram/etc, & blasted out an email if things seemed wrong. We also wrote our web site to log errors & send out emails if for example, database queries were timing out, or if code started getting bad errors like "out of memory". There are also a number of third party apps & sites that can monitor your site or servers every X minutes & send you alerts -- some will check your serevrs remotely (e.g. Gomez, Webmetrics), while others can install on your servers. I can't think of any installed apps offhand to recommend, but I'm sure you can find something workable w/ some research.

When you start having scaling issues, does your staff spend all their time on scaling instead of development?

If you don't hire any additional staff & don't outsource any work, then yes, as your site gets bigger and your company grows, there's going to be more work to do, and your initial team will probably be spending more time on support/scalability/firefighting/misc tasks.

For us, as the site got more popular, more time needed to be spent on performance/scalability/uptime issues. But we still had features to develop. So we hired more people to keep up with increasing workload.

A supplementary route would be to go with a higher-level hosting provider (e.g. Rackspace) & pay them to help you scale out, and/or hire short term scalability consultants who can give you suggestions, etc. If your app can already scale horizontally, that helps, b/c then you have the luxury of having a choice: either spend time making your app faster, or money buying new servers. Or both.

Another suggestion: if you're starting out very small & cheap, you could start with a VPS on a single server, since you can quickly move that VPS to a bigger/faster machine before you need to scale to multiple machines. Once you go multi-server, you may even want to stick w/ VPSes, since the additional ease of backups/migrations/deployment might make up for the performance hit. Since virtualization technology is getting better all the time, the performance impact of running VPSes is smaller than you'd think (e.g. Xen is supposedly only a 5% hit). 

How quickly you can scale make a big difference in terms of the time you spend on capacity planning and actually scaling your site. Akamai also has some neat stuff (although it can be expensive) that allows them to serve up dynamic pages on their CDN, which in turn reduces the load on your main servers & prevents you from having to set up extra servers as quickly. Think of it like a front-end cache/reverse proxy type thing. Other CDNs might have similar offerings. There are also accelerators (both hardware, or software like Squid) that do similar stuff, although setting up your own front-end cache w/ stuff like Squid means you're losing one of the big benefits of CDNs, namely that they do the scaling instead of you.

 

Hosting | Other | Web
May 20, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, April 11, 2007
 
 

I've been trying to do more meeting and networking here in Portland, OR, and I also enjoy a good cup of joe. And I need to get more anyhow since I work from home. So when I read some posts about Open Coffee Club, I thought that sounded like a great way to interact, socialize, & meet some of the other web-centric folks in PDX.

"The OpenCoffee Club was started to encourage entrepreneurs, developers and investors to organise real-world informal meetups to chat, network and grow."

Since there wasn't one listed for Portland, I decided to register an Open Coffee Club for Portland. If you're in the area, feel free to swing on by. I'm not yet sure when the best time/place to hold the meetings is, but I figure that can be ironed out.

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



 Monday, March 05, 2007
 
 

FYI I started a GoDaddy VDS (Virtual Dedicated Server) wiki at

http://godaddyvds.wikispaces.com/

My $0.02 on wikispaces: you can create a free, basic wiki there. It's not bad, although slow. I'd like to be able to set my preferences so that when I edit a page it starts with the text mode editor instead of the WYSIWYG editor, b/c
it takes considerably longer to edit a page using the WYSIWYG editor than the text editor. Also, the lack of any AJAX on the site is noticeable...everything you do involves a page load or page refresh (this is why the WYSIWYG editor is so slow, since it uses a number of popup windows).

So, if your audience is non-technical and/or you want a hosted solution, Wikispaces is fine. Or try StikiPad which is pretty similar (thx Scott).

Otherwise, if you have your own Linux host and/or you're more of a techie? Pick a different wiki. :) Moin Moin is easy to install, Giki is really easy to install (no search feature though), TWiki is easy enough...there are a lot of wikis you can compare. A number of hosting providers (e.g. DreamHost) offer various wikis as one-click installs, which is even easier. :)  And of course there are a few ASP.NET Wikis you can install, too.

Other | Tools
March 5, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Sunday, January 21, 2007
 
 

A question came up recently on a mailing list I'm on about virtual machines for production applications. I've used virtual servers for web & database apps before, but only for dev/qa purposes. It made it much easier to go through deployment scenarios, try out new builds & roll back if the install failed, & generally avoid the time & money sink of dealing with setting up & maintaining actual physical machines. Plus virtual machines are easier to throw onto more powerful hosts as your needs grow.

However, if your organization is considering virtual machines for their production apps, they're in growing company. Most of my experience with production apps has been to start with traditional shared hosting plans, then move up to dedicated machines. That approach works especially well if you only have a few web apps that can all run on the same machines, or if your CPU needs are high.

However, using virtual machines (aka virtual servers or virtual private servers) can be a good way to save money if you have a number of heterogenous and/or legacy applications that need their own "server" (for security, configuration, manageability, specific OS requirements, or other reasons) but don't have very high horsepower needs. In that scenario, having a separate physical machine for each app can be costly overkill, and require you to answer repeated questions from your boss like "why did we need to buy and maintain 5 new servers when they're all under 10% utilization?" 

Instead, you can have each app on its own virtual server, and put them all on one or more physical machines -- however many are needed to run the apps effectively. Costs are reduced since you have fewer machines to power, watch, store, and maintain. Scaling applications can be simplified since you can allocate more or fewer resources to specific vitual servers, and you can always move them onto other, more powerful physical machines as your needs grow. Plus, disaster recovery can be easier, since if you have a hardware failure, you can just load the virtual server onto a different machine and keep on truckin'.

VMWare has some good info on their site: http://www.vmware.com/solutions/home.html

So does XenSource (Xen is open source virtualization software) http://www.xensource.com/solutions/ 

And I might as well link to MS Virtual Server, which apparently is free(?) :) http://www.microsoft.com/windowsserversystem/virtualserver/evaluation/vsoverview.mspx

Plus there are some other links around the web if you search on "virtual server" or "virtual private server."

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



 Sunday, January 14, 2007
 
 

When you embark on a web redesign project, it's important to ask your client open-ended questions to get some ideas on what they want to accomplish with their new site. You want to learn about their users, their goals, and what's important to them. From there, you can start thinking about the information architecture of the new site and potential designs.

Here's a partial list of questions you can ask (mostly courtesy of Scott McMillin):

  • Why are you re-designing your Web site?
  • What goals do you have for this re-design?
  • What are your company's core values? What sets you apart in your industry?
  • What do users need from your Web site?
  • Is there any information your users are having trouble finding?
  • Describe your typical user. Do you have different types of users who need different things?
  • Can you provide any aggregate data on your users, both demographic and technical?
  • If you could only put three pieces of information on your home page, what would they be?
  • List some Web sites and/or specific pages that you feel are effective in communicating the feeling or message that you want your site to evoke. How and why are they effective for you?
  • Do you have a logo or logotype that you want to use? Do you have identity or branding standards that must be adhered to?
  • Have you gotten user feedback on your current site? If so, what have you learned from that feedback?

 

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



 
 

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]



 Thursday, December 28, 2006
 
 

It's been a bit since I last wrote, but I wanted to write a quick piece about New Year's Resolutions.

At the end of every year, many of us look back at the past year and try to come up with things we'd like to do differently in the coming annum. Dieting and exercise are probably near the top of most people's personal lists, of course, but I think setting some resolutions can also be good for your career.

Like any good goal, a resolution should be something realistic and achievable. Ideally it should be specific (e.g. "exercise at least once a week" instead of "exercise more") to allow you to measure your progress. And of course you should have a timeframe in mind. Often it's just "before the end of the year" but sometimes it's something different. But you should also allow yourself to adjust your resolutions, and give yourself a chance to redeem yourself if you mess up. Get someone else involved (friend/partner/coworker/accountant) so they can cheer/nag you on. And yes, the emphasized words above fit into that handy goal acronym -- S.M.A.R.T. -- that I discussed a while back on setting goals.

Resolutions should be something that are important to you. Think back about the missed opportunities over the past years. Think about what you wish you accomplished but didn't. Think about how good it'll feel to cross those things off your list, and look back, a year from now, feeling better about yourself and your career. Force yourself to consider the above reasons every day, and you'll be further towards making things happen.

Anyhow, in the spirit of resolutions, here are my techie resolutions for 2007:

  1. Get a multi-exam technical certification
    I've been studying on & off for the MCAD but have always been "too busy" to get it and wasn't sure if it was even necessary. Well, I want to get it done. Maybe the MCAD, maybe MCPD, maybe something else. But some sort of Microsoft certification that involves more than one exam. It's possible that during the year I may do a non-Microsoft cert instead, but we'll see.
  2. Publish something technical
    It can be as simple as publishing an article on a site like 4GuysFromRolla, or maybe authoring a column for a printed magazine. Or even being involved in a book. But I think it'll be good for my career and my personal development to push myself and publish something. Sure, blogging takes some effort, but writing a focused, clear, and useful article is a new level of contribution.
  3. Speak somewhere
    I had a chance to speak at Portland's Code Camp 2006 this year. It was fun, a lot more work than I expected, and a great learning opportunity. I want to repeat that experience again in 2007.
  4. Learn about and/or get involved in something new technology-wise
    I want to branch out and get some experience and involvement in something substantial in the technology world. Maybe it's working more closely with GData, or deeper experience with mobile development, or using Ruby on Rails for a few projects. But I'd like to spend enough time with something that you might call a niche so that I can talk intelligently about it, help others with it, and/or specialize in it if I wanted to.
  5. Get a new computer
    I love my overclocked Athlon XP 2100+ dearly, but it's time to upgrade. Visual Studio is slow enough, and I'll be doing more and running more in the year ahead. I suppose I could scrap it all and go the Notepad + Mono route, but I really like strong IDEs. Plus who knows what new games are coming out in 2007. :)

That's all for now. There are other things I'd like to do next year, but they're smaller, less important (to me), and I don't want a huge list. You'll notice my resolutions are a bit on the generic side, partly because technology moves so quickly and I haven't 100% decided how I'd like to fulfill them yet.

Hopefully I've encouraged a few people to make some 2007 techie resolutions for themselves, and provided some ideas on some fun and useful things to resolve to. In case my list isn't for everyone's taste, here are some other good (IMO) techie resolutions that people might choose:

  • Update your resume
  • Start a blog and/or personal web site
  • If you're not ready to write articles, post some code samples up on CodeProject.
  • Attend a conference or trade show. See some presentations, talk to a few people, and hand out your business cards. Code Camps are good because they're informal and free, but anything that exposes you to people, ideas, and sunlight is good.
  • Join (or start!) a local users' group and attend some meetings. It's a great way to network with others, get ideas and feedback, and snarf some pizza.
  • Share your technical knowledge with others in need. Volunteer your services for a school, church, or non-profit. Tutor kids on computer skills. Teach or help out with a YMCA class.
  • Clean out your basement and donate all those older computers, monitors, cables, and whatnot to groups that can refurbish them and put them to use. Check out Microsoft's Computer Donation Tips page for ideas and places to donate. You'll be helping others and getting a tax writeoff at the same time.
  • Get involved with something technical outside of work, e.g. make your own mashup, contribute regularly to technical newsgroups, or help out with open source projects on SourceForge or CodePlex.
  • Implement a backup scheme so your pictures, documents, and code don't get lost in case something happens to your computer or home.
  • Be proactive about your career by learning a new system, using a new tool, or maybe even transitioning to a new position and/or company.
  • Replace your ugly, power-hungry, eye-hurting CRT monitor with a nice LCD. You can find a 19 incher on NewEgg for $200 or less, and believe me, you and the environment will be glad you did it.
December 28, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, December 04, 2006
 
 
I just posted an article up on CodeProject about ASP.NET's machineKey. Feel free to check it out & comment.
December 4, 2006    Bookmark to Digg or other social bookmarking