Recent Blog Posts
Blogs » Archive for May 4th, 2004
How to Ask for Referrals, Part 2
Monday’s blog talked about including a discussion of referrals in your contracts/proposals.
This blog talks about when and how to ask for referrals from clients. (The next blog will talk about strategies to get referrals from non-clients).
First, the biggest mistake that IT professionals make when asking for referrals is confusing “word of mouth” with referrals. Word of mouth is relying on the good will of your clients to talk about you when you are not in the room. It is relying on happenstance, and on the off-chance that your clients — with all that they have going on — will remember to rave about you to others.
If you benefit from word of mouth, congratulations! But you still have a major opportunity to ask clients for referrals. While word of mouth is passive, asking for referrals is active. It puts things in your control.
The right time to ask clients for a referral is whenever you have demonstrated value or otherwise improved the business relationship. These times include: when you sell the engagement, when the client thanks you, when you produce a deliverable and the client tells you they like your work, when the client gives you a referral, when you fix a …
CSS Sprites
One of the most exciting techniques to emerge from the CSS community in recent months involves using a single large background images as a container for several smaller images, then using the CSS background position properties to show different parts of the larger image in different places (and different hover states) around a page.
To my knowledge, the first example of this trick in use was Petr Stanicek’s Fast rollovers, no preload needed demo. It has since been expanded upon by other members of the community: Dave Shea’s A List Apart article CSS Sprites: Image Slicing’s Kiss of Death showed how the technique could be used to replace image maps, while Didier Hilhorst’s Navigation Matrix is an experment along similar lines.
Techniques like this are easier to discuss if they have a single acknowledged name – a principle that is well demonstrated by the design patterns movement in object oriented programming. My vote is for “CSS Sprites” (coined by Dave Shea) as it nicely expresses the idea of multiple smaller images encapsulated within a larger whole, and gives a nod towards retro video games as well.
Messing with PECL::cvsclient
Just for the sake of interest, been having a hack with Sara Golemon’s cvsclient extension. Being able to access CVS over HTTP (perhaps for a HTML forms interface for updates or exposing with XML-RPC / SOAP) is a very worthwhile aim IMO.
Note that cvsclient is beta (0.2) with only limited functionality so far, for reading a repository and examining the logs for a given file. There’s also next to zero documentation apart from the source.
If you’re running Linux and have the PEAR package manager set up, installing cvsclient as a shared library only requires type “pear install cvsclient-beta” then adding the .so file to your php.ini as an extension. If you’re on Windows… you probably need to beg the owner of this site.
Was able to connect to the WACT CVS repository at Sourceforge like;
$cvs_server = ‘cvs.sf.net’;
$cvs_root = ‘/cvsroot/wact’;
if ( !$cvs = cvsclient_connect($cvs_server,$cvs_root) ) {
die(’Could not connect’);
}
echo “Connected to server\n”;
$cvs_user = ‘anonymous’;
$cvs_pass = ”;
if ( !cvsclient_login($cvs,$cvs_user,$cvs_pass) ) {
die (’Could not login’);
}
echo “Logged in\n”;
Two further functions are exposed to PHP, cvsclient_retrieve() and cvsclient_log(), the former seeming to iterate of the contents of directory in CVS while the latter can be used to fetch the log for a single …
Whats coming in Windows Forms v2
The Windows Forms team have published some screenshots of some of the new controls coming to the next edition of Windows Forms.
At a glance:
1. WebBrowser: We finally get a managed wrapper for the IE ActiveX control!
2. Active Document Host: Allows the hosting of OLE documents. This means you can drop in any in-place editing application, like Word, Excel or Photoshop. Neat!
3. SoundPlayer. I got initially excited about this, thinking it was a drop in Windows Media control. But, no, it simply plays a WAV file. Humpft :(
4. DataGridView. A much refined DataGrid, the DataGridView has far better design-time previewing, better styling, and richer cell types. Looks good.
5. SplitContainer. A neater version of the traditional Splitter control. Think of it as a panel split into two panels with a splitter inbetween. Or just look at the pretty picture ;)
6. MaskedTextBox. About time .NET got a native masked text box. Very similar to MaskEd in VB6, or MaskedEdit in Delphi.
7. ToolStrip. At last, decent UI components with Office 2003 styling. Status bars, menus, toolbars, context menus, all customisable and drag and drop. Excellent.
Desktop Opportunities
When security issues arise like Sasser and those now infamous over the last few years, it is once again an opportunity to talk to your customers, peers and prospects about desktop security. It is also an opportunity where the situtation is appropriate to present the Linux and OS X desktops as alternatives to Windows.
I will add a caveat here before I continue as this is another contentious issue. My goal is not to show Windows as a lousy system and open source as the only path to follow. Anytime a platform grows more popular, so will the security issues. Many of us know Linux is one of the most attacked systems in the world (that is attacked, not compromised). The same will be sure for Linux and OS X desktops – the viruses or at least attempts will surely come.
However, Unix-based systems have an advantage over Windows in their base architecture and vast array of open source and commercial tools for granular control over the server and desktop for security.
Furthermore, in much of my interaction with clients and other organizations, there were numerous users at every stop that could easily use a Linux or OS …
Slides from XML in PHP5 Workshop
Christian has published the slides for his XML workshop http://php5.bitflux.org/phpconf2004/ at the International PHP Conference. Lots of useful examples of pretty much everything PHP5 can do with XML.
Evaluating CSS Hacks
Vincent Garcia reports on a CSS hack for Safari (discovered by Anne Van Kesteren) which provides support for the min-height property by taking advantage of the CSS 2.1 table model. IE/Windows doesn’t support the table model, but treats heights as min-heights anyway. Vincent explains the hack further in his entry.
With any CSS hack, it’s important to evaluate it before use to ensure it makes sense. CSS hacks are a controversial issue in the web development community, with some people arguing that they cause more harm than good while others see them as critical to ensure CSS is viable in the real world. PPK’s column Keep CSS Simple gives good arguments against the use of hacks.
I favour avoiding hacks if at all possible (for example, the box model hack can be avoided by never declaring padding and width on the same element), but when they can’t be avoided it’s important to understand their implications. GoodCSSHack on the css-discuss Wiki gives a good overview of the qualities of a maintainable hack.
In the case of the Safari min-height hack, I’m currently undecided. If I understand it correctly, it isn’t really a hack at all as it takes advantage of …
Sponsored Links
SitePoint Marketplace
Buy and sell Websites, templates, domain names, hosting, graphics and more.