home · blog · groups · about us · contact us
DevelopmentNow Blog
 Wednesday, February 21, 2007
 
 

From the WURFL list, some good suggestions on ways to simulate mobile browsers & test mobile-aware web apps using Firefox plugins:

Tom Thurston suggests

...the firefox "user agent switcher" extension. Just add it, and create profiles for all the devices you wish to "emulate", i.e. use MOT-V3 and your platform will think that you are a motorola v3 hitting your site, and render xhtml-mp, and deliver the appropriate assets, even though you are on a web browser.

Alejandro Guerrieri says :

The "user agent switcher" for Firefox is a great tool. I usually combine it with 3 more plugins that can make your life happier and easier:

- "Modify Headers" ->
https://addons. mozilla.org/ firefox/967/

Allows you to modify _any_ header being sent by Firefox. It can replace "user agent switcher" since you can set the header "user-agent" also, but UAS it's quite more convenient for that (select the UA from a drop down menu). Anyway, if you want to set any other header (like some "accept" or maybe "x-msisdn") this is the tool to do it.

- "wmlbrowser" ->
https://addons. mozilla.org/ firefox/62/

Allows your Firefox to render WML pages, though some features doesn't work like a real device (most notably "on enter forward"). Anyway, really great
to test WML-Only pages or try WURFL with "retro" devices ;)

- "XHTML Mobile Profile" ->
https://addons. mozilla.org/ firefox/1345/

Adds support to mime-type "application/ vnd.wap.xhtml+ xml", not natively supportd by firefox, which only supports "application/ xhtml+xml" .

I usually develop with those four plugins. Sometimes I also use some SDK's from device manufacturers, but most of the time I use Firefox with that plugins enabled.

Thanks Tom and Alejandro!

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



 Saturday, February 17, 2007
 
 
Saw this list of GTD tools on Digg. Or maybe somewhere else. Anyhow, they look kinda cool, but I'm still going to install Outlook 2007 and see if that works as well.
February 17, 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 30, 2007
 
 

I was looking at wikis recently and thought I'd list out the ASP.NET wiki's I've noticed. Obviously there could be more, but here are the one's I've seen:

  • FlexWiki -- been around for a while, easy to install & use.
  • ScrewTurn -- has gotten some good buzz recently, seems the most active recently w/ a number of interesting features.
  • Perspective -- I recently noticed this. Has a WYSIWYG editor (which I think is good for corporate adoption). You can also attach & embed files (e.g. Microsoft Office Docs) & images, & search across them. Seems like it might be complicated to set up & install.

I believe they all can do authentication/authorization through NTFS and/or LDAP, so you can administer the permissions like you would any other IIS web site.

Here is a WikiMatrix comparison page of the above three wikis, although I don't believe their information is completely current.

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



 Wednesday, January 24, 2007
 
 

photobucket has a photo-sharing widget that you can plug into your site, allowing your web site visitors to upload, access, and share images from their Photobucket account.

Granted, users need a Photobucket account to use it ... I wonder if the widget makes it easy & transparent to sign up?

I posted this because MyPunchBowl lets you share photos from flickr, but if you don't have a flickr account, you're out of luck.

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