Archive for the ‘Technical’ Category
Let’s sidetrack abit here for some free opensource ware goodness. These tools greatly enhance our efficiency at absolutely no cost! As we wrap up the year 2007, it’s the perfect time to put together an authoritative guide to our favorite pieces of free software and web services for common computing tasks on every platform. After the jump, check out our favorite freebies to date in over 20 categories and counting, as we add your suggestions to the list.
- Launchy (Windows, open source)
Previous coverage: Download of the Day: Launchy, Take Launchy Beyond Application Launching (Feature), Tweaking Launchy (Screenshot Tour)
- Quicksilver (Mac OS X, open source)
Previous coverage: A Beginner’s Guide to Quicksilver, Advanced Quicksilver Guide, The Quicksilver Video Extravaganza, Nine Time-saving Quicksilver Triggers, Top 10 Quicksilver Plugins, Quicksilver Creator on the Future of QS (Exclusive Lifehacker Interview).
- SyncBackSE (Windows, local backup, freeware)
Previous coverage: Automatically Back Up Your Hard Drive with SyncBack (Feature)
- Time Machine (Mac OS X, local backup, built into Leopard)
Previous coverage: The Simplicity of Time Machine Compels You, Schedule Your Time Machine Backups with TimeMachineScheduler
- Mozy (Windows/Mac, online backup, up to 2GB free)
Previous coverage: Back Up Files with Mozy
- uTorrent (Windows, Free)
Previous coverage: Organize Your BitTorrent Downloads with uTorrent
- Transmission (Mac OS X, open source)
Previous coverage: Download of the Day: Transmission
- ted (Windows/Mac/Linux, free)
Previous coverage: Automatically Download Your Favorite TV Shows with ted
- See also: A Beginner’s Guide to BitTorrent, Intermediate Guide to BitTorrent
- Foxmarks (All platforms with Firefox, free)
Previous coverage: Synchronize Firefox bookmarks with Foxmarks, Yes, Foxmarks beats Google Sync when it comes to bookmarks, Back up and Sync your Firefox Bookmarks to Your Own FTP Server with Foxmarks
- del.icio.us (Web, free)
Previous coverage: LIfehacker posts tagged del.icio.us
- Google Calendar (Web)
Previous coverage: Black Belt Scheduling with Google Calendar, Better GCal Firefox Extension (Exclusive Lifehacker Download)
- Google Desktop (Windows/Mac OS X/Linux, free)
Previous coverage: Master Google Desktop search, Get More from Google Desktop
Disk Space Visualizers
- WinDirStat (Windows, open source)
Previous coverage: Visualize Your Hard Drive Usage
- JDiskReport (Windows/Mac OS X/Linux, freeware)
Previous coverage: Visualize Your Hard Drive Usage
- DVD Shrink (Windows, freeware)
Previous coverage: One Click DVD Rips with DVD Shrink and AutoHotKey (Feature), Copy DVDs to Your iPod (Feature)
- Handbrake (Mac OS X/Windows/Linux, open source)
Previous coverage: Back up DVDs on a Mac
- FolderShare (Windows/Mac OS X, free)
Previous coverage: Download of the Day: FolderShare, Sync Your Firefox Extensions and Profiles Across Computers with FolderShare
- SyncToy (Windows, free)
Previous coverage: Synchronize Folders with SyncToy 2.0
- Paint.NET (Windows, free)
Previous coverage: Download of the Day: Paint.NET 3, Power replacements for built-in Windows utilities
- Picnik (Web)
Previous coverage: Edit your images online with Picnik, Edit Your Photos Directly in Flickr with Picnik
- IrfanView (Windows, free)
Previous coverage: Download of the Day: IrfanView (Windows)
- Picasa (Windows/Linux, free)
Previous coverage: Organize Your Digital Photos with Picasa (Feature), Publish and Map Your Photos with Picasa (Feature)
- Pidgin (Windows/Linux, open source)
Previous coverage: Download of the Day: Pidgin Instant-Messaging Client, Encrypt Your Instant Messages with Pidgin (then Gaim)
- Adium (Mac OS X, free)
Previous Coverage: Download of the Day: Adium X
- Meebo (Web)
Previous coverage: Connect to popular IM services with Meebo, Meebo Adds Video and Voice Chat to Web-Based IM, Transfer Files over IM with Meebo
- VLC (Windows/Mac OS X/Linux, open source)
Previous coverage: Download of the Day: VLC Free Media Player, Rip DVDs with VLC
- MediaMonkey (Windows, freeware with paid upgrade)
Previous coverage: Download of the Day: MediaMonkey (Windows), Whip Your MP3 Library into Shape, Part I – Level the volume, Whip Your MP3 Library into Shape, Part II – Album art, Alpha Geek: Whip your MP3 library into shape, Part III: Metadata
- foobar2000 (Windows, freeware)
Previous coverage: Download of the Day: foobar2000, Roll Your Own Killer Audio Player with foobar2000, The Beautiful and Varied World of foobar2000 (Screenshot Tour)
- KeePass/KeePassX (Windows/Mac OS X/Linux, open source)
Previous coverage: Securely Track Your Passwords, How to import saved Firefox passwords into KeePass, Download of the Day: KeePassX, Make KeePassX Leopard Compatible
- Firefox’s built-in password manager (Windows/Mac OS X/Linux, open source)
Previous coverage: Secure your saved passwords in Firefox (Feature)
- BugMeNot (Web)
Previous coverage: Bypass Web Site Registration with BugMeNot
- Foxit Reader (Windows, free)
Previous coverage: Download of the Day: Foxit Reader 2.0
- Preview (built into Mac OS X Leopard)
Previous coverage: Do More with Preview in Leopard
- CutePDF PDF writer (Windows, free)
Previous coverage: Create a PDF from any document
- See also: Top 10 PDF Tricks
Personal Finance/Money Managers
- Wesabe (Web)
Previous coverage: Organize Your Money in 2008 with Wesabe
- Mint (Web)
Previous coverage: Is Mint Ready for Your Money?
- NetVibes (Web)
Previous coverage: Trick out your Netvibes
- iGoogle (Web)
Previous coverage: Show Us Your iGoogle (Screenshot Tour)
- See also: The Start Page Showdown
- Skype (Windows/Mac OS X, free)
Previous coverage: Lifehacker posts tagged Skype
- GrandCentral Virtual PBX (Web)
Previous coverage: One Phone Number to Rule Them All, Consolidate Your Phones with GrandCentral (Screenshot Tour)
- Notepad++ (Windows, open source)
Previous coverage: Top 10 Windows Downloads, 6. Notepad++ (text editor)
- TextWrangler (Mac OS X, freeware)
Previous coverage: TextWrangler Free, Full-featured Text Editor for Mac
To-do List Managers
- Remember the Milk (Web)
Previous coverage: Get Organized with Remember the Milk
- Rainlendar (Windows, free with paid upgrade)
Previous coverage: Rainlendar desktop calendar and todo list
- Anxiety (Mac OS X Leopard, free)
Previous coverage: Anxiety Task Manager Integrates with iCal and Mail
Virus Killers and Malware Cleaners
- AVG Free Edition (Windows, free with paid upgrade)
Previous coverage: AVG Free Anti-Virus
- ClamWin (Windows, open source)
Previous coverage: Free Windows virus protection with ClamWin
- Ad-Aware (Windows, free with paid upgrade)
Previous coverage: Cleanse thy PC with Ad-Aware
- See also: How to fix Mom and Dad’s computer
- Google Notebook (Web/Firefox, free)
Previous coverage: Clip and collect the web with Google Notebook, Getting Things Done with Google Notebook
- Scrapbook (All platforms with Firefox, free)
Previous coverage: Save and annotate the Web with Scrapbook
- PBwiki (Web, free)
Previous coverage: PBwiki
- MediaWiki (All platforms, open source)
Previous coverage: Set Up Your Personal Wikipedia
Zip File Extractors
Coming up with 101 lists has been a trend these days! I’ve been saving these lists in my delicious account and elsewhere but thought I’d share them with you all in case you haven’t seen them yet!
So, here is a Master List of the best ‘101′ lists out there! This is an ongoing list and I plan to add to it as I find more! If you know of some good 101 list and would like me to add to it, please let me know in the comments! or via the Contact Form
- 101 Self Improvement Resources @ Pick the Brain
- 101 posting ideas that will make your blog sizzle @ I Help You Blog
- 101 Commonsense Management Tips @ business Intelligence Lowdown
- 101 Link Building Tips to Market Your Website @ SEOBook
- 101 Amazing Earth Facts @ Space
- 101 Real Estate Blog Topics @ Real Estate Tomato
- 101 Uses For PLR Articles @ memwg
- 101 Blog Posting Ideas @ SEO 2.0 Onreact
- 101 Best Web Freebies You Probably Don’t Know @ JennyHow
- 101 Essential Freelancing Resources @ FreeLanceSwitch
- 101 Free Ways to Increase Your Blog Traffic @ CanIMakeBigMoneyOnline
- 101 Essential Blogging Resources @ Blogtrepreneur
- 101 Suggestions for Squeezing More Fun Out of Life @ Pauls tips
- 101 Ways to Monetize Your Website or Blog @ Vandelay Design
- 101 Reasons to FreeLance @ hrworld
- 101 Ways to make Your Blog More Popular and Successful @ SEO 2.0 Onreact
- 101 Tools to Convert Video, Music, Images, PDF and More @ Cogniview
- 101 Ways to Make Money off Open Source @ Manageability
- 101 Simple Vegan Meals @ The Urban Vegan
- 101 Resources for Self Published Writers @Self Publishing Blog
- 101 Blog Tips I Learned in 2006 @ DailyBlogTips
- 101 Ways to Save Money @ CreditCave
- 101 Dumbest Moments ( biggest boors, boffoons and blunders of 2007) @CNN-Money
- 101 Cities for Drinking @ Citytoplist – they have various lists of US cities with some fun things to check out!
- 101 CSS Tips and Tutorials and Examples @ lxpages
- 101 CSS Resources to add to your toolbelt of awesomeness @ jasonbartholme
- 101 things that the Mozilla browser can do that IE cannot @ xulplanet
- 101 Tips to Improve Your Web Presence @ SearchEngineOptimization
- 101 Blogging Building Tips @ DeWittsMedia
- 100 Blog Topics I Hope You Write @ ChrisBrogan
- 101 Ubuntu Tips Tricks and Tutorials @ lxpages
- 101 Ways to Run Out of Things To Blog About @ ProBlogger
- 101 FeedFlares for a Better Tomorrow @ FeedBurner
- 101 Zen Stories @101ZenStories
- 101 Easy Ways to Use Google Website Optimizer @ ConversionRateExperts
- 101 Ways to Put 101 dollars in your pocket this month @ Blogging Away Debt
- 101 Steps to becoming a better blogger @ Lifehack
- 101 Tips For Improving Children’s Behavior @ ParentingIdeas
- 101 Ways to Organize Your Life @ Project Management Source
- 101 resources to help you build a better web form @ Jasonbartholme
- 101 Web Marketing Ideas and TIps @ SEO Pedia
- 101 New Uses for Everyday Things @ Real Simple
- 101 Essential Blogging Skills @ Skelliewag
- 101 Tips I learned from Blogging @ Etienneteo
As if these weren’t enough lists to read!
45. here is a very comprehensive list of 1001 Lists to Read Before Your Die @Terabell
46. Check out List of Bests for other people’s best lists where I think you can add your own list to the huge resource!
47. Finally, If YOU would like to create your own 101 list, there is a meme going around the blogoshpere about doing 101 things in 1001 days! It is hosted at triplux; The site has other people’s 101 things-to-do-lists where you can get plenty of inspiration!
UPDATE: two more lists added today!
Sometimes people say to me, “Hey, Wil, you’ve been programming since dinosaurs roamed the earth… do you have any advice for young whippersnappers like us?”
And I always respond, “Hey, you kids, GET THE HECK OUT OF MY YARD!”
No, no, I usually demur with, “Oh, gosh, I don’t know,” as I look down shyly and shuffle my feet.
But, I’ve thought about it a lot recently, after writing so much solo code for Delicious Library (for the first time in many years), and then taking on a new programmer and trying to impart my style on him. And what I’ve come up with is a style I call:
* The Way of the Code Samurai *
Now, I don’t actually know much about real samurai, but the basic thing I’ve heard is they stand and stare at each other for hours, and then suddenly BAM strike once and the other guy is down.
That’s how you should code.
– Think first. Think some more. Think about the whole problem. Think about a little part of the problem you’re going to start with. Think about the whole thing again, in relation to your idea on the starting point.
Don’t write code until you know what you’re doing. Now, you may not be able to “know what you are doing” just from thinking, in which case you should start a TEST project and write a bunch of ugly code to make sure your ideas are correct.
Then, start again, in a new directory. We had seven or so different test project directories during the making of Delicious Library — one for the video barcode reader, one for the store, one for amazon XML parsing, one for talking to Bluetooth scanners, etc. We learned how to do what we were going to do BEFORE we uglied up the main project with a bunch of code.
Then we copied the good parts out of the test project, and left the cruft. This let us observe rule #2…
– Write all your code “clean,” the first time you write it. Make classes for everything. Use enumerated types. Don’t take shortcuts. Don’t have any part of the code where you say, “Oh, yah, I just glossed over that for now.” You are NOT going to go back and fix it. Seriously, how often do you say to yourself, “I think I’ll dive into this messy code today and try to make it nice and pretty without adding any functionality?” Nobody is going to pay you for that. In fact, I got called on the carpet for cleaning code during a major update to a piece of software at a previous job — “What are you doing spending time modifying code that already works? Just add your new features and be done.” Never mind that I couldn’t understand the code, or that clean code is stable, maintainable, extensible code.
Don’t gloss over anything. Write every line to be bulletproof. Write every method as if every other method was out to get your code and try to make it crash, and your job was to make sure it wasn’t going to happen in YOUR code. Assume the user is going to hit keys randomly. Assume the network is going to get disconnected. Assume the hardware will fail.
Explain your routines aloud. Do you find yourself saying, “Well, this isn’t totally correct, but it works because I know that at this point…” STOP. Redo it. Write it the correct way.
And, if you’re in code anyways to extend it or fix a bug, CLEAN IT. Clean as you go, always. Don’t consider code to be static. Turn those constants into an enumerated type like you always meant. Take those hard-coded strings and make class variables for them. Replace english phrases with NSLocalized versions. Clean, clean, clean as you go.
– Less source code is better. This is almost always true. The exceptions to this are so rare that every time you think you’ve found one you should REALLY doubt yourself. Less lines of source code almost always means less code that new programmers have to understand when they come on the project. It means less stuff for you to remember next year when you are in the middle of another version. It means fewer places for you to have mistyped something. It means fewer instructions to execute. It means fewer things to change when you re-architect.
There are some interesting corollaries here. For instance, if you’re writing a class to display some text in red (for some reason), don’t add a bunch of methods “for the future” that allow you to draw the text in blue or green or purple. Because that’s more code than you need right now, and “less code is better.”
But, if you suddenly realize you want to draw purple text, you could write the red code again, except put in the color purple. But, “less code is better,” so you really need to abstract out the text-drawing code and make it take a color parameter, so you can re-use the same code.
The lesson I’m getting at is, don’t try to make code general until you actually need it in more than one place. The worst libraries in the world are the ones people write without actually writing any code that uses them to do actual work for actual users.
And don’t write longer, more obtuse code because you think it’s faster. Remember, hardware gets faster. MUCH faster, every year. But code has to be maintained by programmers, and there’s a shortage of good programmers out there. So, if I write a program that’s incredibly maintainable and extensible and it’s a bit too slow, next year I’m going have a huge hit on my hands. And the year after that, and the year after that.
If you write code with more code that’s fast now, you’re going to have a hit on your hands. And next year, you’re going to have a giant mess to maintain, and it’s going to slow you down adding features and fixing bugs, and someone’s going to come along and eat your lunch.
I’m not saying slow code is good. There’s a time and a place for optimizations…
– The time and place are AFTER YOU ARE DONE. Optimize methods ONLY after they work and are bulletproof AND you’ve done testing in Shark and discovered the method is critical.
Don’t optimize as you write. Why not? Because, in all probability, you’re wasting your time. The VAST majority of the code programmers optimize is executed so rarely that its total speedup to the program can be measured only in nanoseconds. Also, you’re probably not very good at it. No insult, but machines and libraries are complex systems, and your guesses as to what’s slow are probably pretty bad. You need to run testing tools to find out what is ACTUALLY slow. The results are often surprising. (For instance, in the Mac OS 10.3, having lots of tooltips in a view that you remove and add back to a window a lot is EXTREMELY slow. This is not something you can possibly know to optimize without doing testing in Shark.)
The next time you go to make something a little harder to read but a little faster, ask yourself, “How often will this REALLY get called?” Is the answer less than a hundred times a second? Because processors can now process several BILLION operations a second.
Now, Delicious Library isn’t the zippiest program in the world on all hardware, but, actually, it’s a LOT faster than it was initially. Those huge, beautiful covers really suck down memory. When we first wrote Library, if you loaded more than about 400 items, the cover images would suck up all your main memory and the program would just crawl. (It was like iPhoto 1.)
I re-architected the entire cover caching and compositing system, and got it so that we could comfortably handle several thousand items, and, if you use the table mode, possibly tens of thousands (I’ve never had that many items). This took several weeks to do. Now, I’m not as zippy as iPhoto 4, but I’m actually pretty close to the performance of iPhoto 2, and considering I’m just one guy and this was Delicious Library 1, I’m pretty proud of that.
What’s the point? The point is, if I’d spent a bunch of time optimizing other parts of the program as I wrote it, I would not have had those weeks at the end to fix the imaging path, which was the slowest part. I would have had to have shipped with a program that could only handle a couple hundred items, and then I would have immediately had to patch it when people started scanning in thousands.
So you’re sitting there on Saturday morning, sipping on a nice warm cup of coffee or tea, smell the freshness of the morning, and whipping up some html, CSS and trying out some new AJAX programming. You’re stuck on something, you wish you had a quick cheat sheet to get you back on track. Look no further if you’re a web developer! This is the Ultimate Web Development Cheat Sheet Guide!
Scriptaculous Cheat Sheet – Thanks Joseph
MooTools Cheat Sheet – Thanks Joseph