Narendra Dhami

My Site

Archive for November, 2009

Top 20+ MySQL Best Practices

Posted by Narendra Dhami on November 28, 2009


Database operations often tend to be the main bottleneck for most web applications today. It’s not only the DBA’s (database administrators) that have to worry about these performance issues. We as programmers need to do our part by structuring tables properly, writing optimized queries and better code. Here are some MySQL optimization techniques for programmers. More …

Posted in MySQL | Leave a Comment »

61 Free Apps We’re Most Thankful For

Posted by Narendra Dhami on November 27, 2009


61 Free Desktop Applications, Webapps, and Tools We’re Most Thankful For

  1. Firefox (see also: Power User’s Guide to Firefox 3, Top 10 Firefox 3.5 Features)
  2. VLC (see also: Master Your Digital Media with VLC, VLC Hits 1.0 with

    Better Playback and File Support)

  3. CCleaner (see also: Five Best Windows Maintenance Tools)
  4. Dropbox (see also: Use Dropbox for More Than Just File Syncing, Sync Files and Folders Outside Your My Dropbox Folder)
  5. 7-Zip (see also: Five Best

    File Compression Tools)

  6. OpenOffice.org (see also: OpenOffice.org 3.1’s Usability Tweaks, OpenOffice.org Screenshots Preview a Ribbon-Like Toolbar)
  7. Google Chrome (see also: The Power User’s Guide to Google Chrome, 2009 Edition)
  8. µTorrent (see also: Tweak uTorrent’s Settings for Faster Downloads, Five Best BitTorrent

    Applications)

  9. Notepad++ (see also: Five Best Text Editors, AutoSave Adds

    Reassurance to Notepad++ Editing)

  10. Gmail (see also: Our full Gmail coverage)
  11. GIMP (see also: Gimp 2.7 Beta Improves Text Editing, Streamlines Saving)
  12. Paint.NET (see also: Paint.NET Releases Big Update, Still a Killer Photoshop Alternative, Paint.NET Plugin Lets You Open Photoshop Files)
  13. Microsoft Security Essentials (see also: Microsoft Security Essentials Free Antivirus App Leaves

    Beta, Stop Paying for Windows

    Security; Microsoft’s Security Tools Are Good Enough)

  14. Revo Uninstaller (see also: Lifehacker Pack 2009: Our List of Essential Free Windows Downloads)
  15. Evernote (see also: Evernote 3.5 Beta Brings Tons of Tiny Fixes to Windows, Expand Your Brain with Evernote)
  16. Thunderbird (see also: Thunderbird 3 Release Candidate Available for Download)
  17. Audacity (see also: Geek to Live: Make a ringtone from any MP3)
  18. ImgBurn (see also: Turn Your PC into a DVD Ripping Monster, Five Best CD and DVD

    Burning Tools)

  19. Picasa (see also: Picasa 3.5 Organizes Your Photos with Facial Recognition)
  20. Skype (see also: Our full Skype coverage)
  21. Pidgin (see also: Ten Must-Have Plug-ins to Power Up Pidgin, Five Best Instant

    Messengers)

  22. Ubuntu (see also: First Look at Ubuntu 9.10 Karmic Koala, Dual-Boot Windows 7 and Ubuntu in Perfect Harmony)
  23. iTunes (see also: iTunes 9 Improves Syncing, Network Sharing, More)
  24. foobar2000 (see also: Screenshot Tour: The beautiful and varied world of foobar2000, Hack Attack: Roll your own killer audio player with foobar2000)
  25. Foxit Reader (see also: Five Best PDF Readers, Lifehacker

    Pack 2009: Our List of Essential Free Windows Downloads)

  26. FileZilla (see also: Five Best FTP

    Clients, Build a Home FTP Server with FileZilla)

  27. VirtualBox (see also: The Beginner’s Guide to Creating Virtual Machines with VirtualBox)
  28. TrueCrypt (see also: Geek to Live: Encrypt your data, Five Best Portable Applications)
  29. Avast! (see also: Five Best

    Antivirus Applications)

  30. Defraggler (see also: Five Best Disk Defragmenters)
  31. KeePass (see also: Eight Best KeePass Plug-Ins to Master Your Passwords, How to Use Dropbox as the Ultimate Password Syncer)
  32. Opera (see also: Opera 10.10 with Unite Media Server Released)
  33. AVG (see also: AVG 9 Free Now Available for Download)
  34. Digsby (see also: Five

    Best Instant Messengers, Digsby Sees the Light,

    Removes (Some) Bundled Crapware)

  35. Google Reader (see also: Our full

    Google Reader coverage)

  36. Winamp (see also: Win7shell Adds Windows 7 Jump List Support to Winamp)
  37. Google Earth (see also: Google Earth 5.1 Speeds Up Your World Browsing)
  38. TeraCopy (see also: Five Best Alternative File Copiers)
  39. Launchy (see also: Our full Launchy coverage)
  40. Transmission (see also: Lifehacker Pack 2009: Our List of Essential Free Mac Downloads)
  41. Eclipse IDE
  42. SpyBot Search & Destroy (see also: Five Best Malware Removal Tools)
  43. Adium (see also: Adium Updates with Security Fixes, Better Facebook Integration)
  44. PuTTY (see also: Add Tabs to PuTTY with PuTTY Connection Manager)
  45. Songbird (see also: Songbird 1.0 Release Official, Fixes Bugs, Plays iTunes Purchases, Killer Add-ons Make Songbird So Much Better)
  46. Sumatra PDF (see also: Sumatra 1.0 is a Blazing Fast Replacement for Adobe

    Reader)

  47. XBMC (see also: Build a Silent, Standalone XBMC Media Center On the Cheap, Customize XBMC with These Five Awesome Skins, Turbo Charge Your New XBMC Installation)
  48. Blender (see also: Learn

    Blender with free e-book)

  49. CDBurnerXP (see also: Five Best CD and DVD Burning Tools)
  50. Everything (see also: Everything Finds Windows Files As You Type, Top 10 Tiny &

    Awesome Windows Utilities)

  51. HandBrake (see also: HandBrake Updates to 0.9.4 with Over 1,000 Changes, 64-Bit Support)
  52. Rainmeter (see also: Rainmeter 1.0 Brings the Enigma Desktop to Everyone)
  53. AutoHotkey (see also: Turn Any Action into a Keyboard Shortcut, Hack Attack: Knock down repetitive email with AutoHotKey)
  54. Google Calendar (see also: Our full Google Calendar coverage)
  55. MediaMonkey (see also: MediaMonkey 3.2 Syncs with More Devices, Adds Auto Folder Watching)
  56. Quicksilver (see also: A beginner’s guide to Quicksilver)
  57. WinSCP
  58. Google Voice (see also: Make Unlimited Free Calls on Your Cellphone with Google Voice, How to Ease Your Transition to Google Voice)
  59. Boxee (see also: Build a Cheap But Powerful Boxee Media Center, Boxee to Launch Beta with Loads of New Features)
  60. AdBlock Plus (see also: Top 10 Must-Have Firefox Extensions, 2009 Edition)
  61. Media Player Classic (see also: Five Best Video Players)

Posted in Utilities | Leave a Comment »

What every developer should know about character encoding

Posted by Narendra Dhami on November 17, 2009


Good Article

Posted in Web | Leave a Comment »

Analyzing Queries for Speed with EXPLAIN

Posted by Narendra Dhami on November 12, 2009


When you are trying to optimize your queries to run quickly and efficiently, you may encounter queries that really should run faster. That’s where EXPLAIN comes in handy. This article shows you how to use EXPLAIN in query analysis. It is excerpted from chapter 13 of the MySQL Certification Guide, written by Paul Dubois et al. (Sams, 2005; ISBN: 0672328127). More …

Posted in MySQL | Leave a Comment »

Adapting The Joel Test To Web Development

Posted by Narendra Dhami on November 11, 2009


Nearly a decade ago, Joel Spolsky came up with a method by which to evaluate software development shops that has come to be known as the Joel Test. This crucial test evaluates a software development company on the basis of twelve criteria points; Spoksly said that “a score of 12 is perfect, 11 is tolerable, but 10 or lower and you’ve got serious problems. The truth is that most software organizations are running with a score of 2 or 3, and they need serious help, because companies like Microsoft run at 12 full-time.”

When Joel wrote the test, there wasn’t much development for the web; the little that was being done wasn’t being done in any of the modern languages that we write in today. In fact, Facebook, Myspace, Twitter, Gmail, and LinkedIn hadn’t even been invented yet.

Today’s world makes heavy use of web-based software (the term “software as as a service” keeps floating around). And so, it is necessary to update Joel’s test in order to properly apply it to web development. This has been done by some folks, but I will do it again, mostly because I disagree with them. More…

Posted in PHP | Leave a Comment »

Setting up continuous integration for PHP using Hudson and Phing

Posted by Narendra Dhami on November 11, 2009


he difficulty with Unit Testing is keeping it up. It is very easy to slip into poor habits and before you know it there’s a huge chunk of code with no tests. Possibly a huge, badly designed chunk of code, that didn’t benefit from having tests written before it was coded. Before you know what’s going on, you end up with a project that you really can’t write tests for, because retrofitting the tests is near impossible.

For me, there are two critical reasons for Unit Testing:

  • Enforcing good design
  • To be able to write tests, you need to be able to zero in on a “unit” of code, isolating it from all the rest of your 1,000,000 lines of web application. Writing Unit Tests forces you to design systems that have loose coupling because otherwise it is impossible to test.

  • Allowing changes to be made in confidence
  • Without Unit Tests, you get to the point where no one really wants to make any changes to the code. This is especially true in a commercial environment, where many people have worked on the code, including some key team member who has since left. Unit Tests allow you to make changes to one part of the code and be pretty convinced you haven’t messed up something else.

    More …

    Posted in PHP | Leave a Comment »

    New to Java programming

    Posted by Narendra Dhami on November 11, 2009


    New to Java programming? This page provides an overview of Java™ technology basics and explains how the technology fits into the context of contemporary software development. Links to relevant introductory developerWorks content, other educational resources, as well as IBM downloads and products give you a rich starting point for further investigation. More …

    Posted in Java | Leave a Comment »

    Software Resources

    Posted by Narendra Dhami on November 9, 2009


    http://freesoftwarefile.com/

    Posted in Utilities | Leave a Comment »