Quantcast

Joel Nagy .com

web technology is a way of life

Archive for March, 2009

For a few years now I’ve relied on zoom: 100% as my saving grace for finding lost elements in Internet Explorer.  You see sometimes when you try to position an element on the screen, place a transparent <div> over a Flash object, or do something slighly out of the ordinary, IE will freak out and not display the object, hide it, or drop it to the bottom of z-index order.

Fortunately there’s a solution in the form of a hack called Zoom.  Zoom is a CSS style that allows IE to zoom in on an element.  Typically you don’t need to do this, and oddly enough when you do apply zoom even at the non-zoomed level of 100% it forces Internet Explorer to re-evaluate it’s CSS styling.  So now you can make sure that these lost elements come back to where they are supposed to be.

So when in doubt, use zoom.

<!--[if IE]>
<style type="text/css">
	#element{
		zoom: 100%;
	}
</style>
<![endif]-->
Reblog this post [with Zemanta]
  • 1 Comment
  • Filed under: Code
  • Everyone these days is discussing the fall of the newspaper industry.  I haven’t read a newspaper since I delivered them as a kid.  But I do read the New York Times online and still get more of my news from Google News, blogs and even twitter.  The abundance of self picked sources and varying levels of depth will mean that there will not be a loss of content.  But I do see that the level of well thought out stories with researched facts is not what one would expect from a blog. Blogs are very much opinionated and heavily slanted. There is no line of non-biased journalism online.  Is that a good thing? I have to think no, considering that average people believe what they read without considering the source.

    We will probably have to wait and see what happens when they all close down, but hopefully enough true resourceful online sources pick up the mantle successfully.

  • 0 Comments
  • Filed under: Thoughts
  • We officially launched a new version of our website for kb.com which is focused on the true core of any company, the people. Sure we have the typical statements about what we do and a portfolio of the work we’ve done, but the bulk of the site is a profile for every employee, here’s mine.  Our team here worked very, very hard to get this up and running.  The whole site is built on MODx as a CMS for the primary reason that it easily allows for pages to be content managed by anyone and rendered as XML, and that it has an extremely easy interface to hand code PHP (with what they call snippets) tp allow for all sorts of dynamic functionality from the server side.  The front end is built with Adobe Flex in combination with jQuery which handles deep-linking, proper autosizing of the page, loading the SWF and all of the tracking.

    The site required a lot of digging into MODx to filter and deliver all of the data to Flex.  I made a number of snippets and modified quite a few, especially ListIndexer, to provide XML output that drove the front-end.  In order to populate the site, I also made a number of custom SQL scripts (converted via Regular Expressions from an Excel document) that pushed content into many of the tables.  The hardest part here was populating all of the template variables; which required figuring out the variable mappings.  In the end the site has 6 sitemap files totalling in 400+ URLs all of which are deep-linkable.

    I don’t think this site could have been put together without MODx, no other decent (and free opensource) CMS has the capabilites to handle XML output and simple server side scripting access.

    The team that helped bring this site together is Ro Pulliam (an amazing Flex freelancer), Anthony Cafaro, Tara Milone, Megan O’Connor, Heather Martin, and Jason McKim.

    Reblog this post [with Zemanta]
  • 0 Comments
  • Filed under: General
  • Last Monday I placed an order with Zappos.com and received the shoes the next day without even upgrading to their expedited shipping.  One of the pairs didn’t fit right so I ordered two more sizes the next day and again received next day shipping.

    This is what I call phenominal service.  Zappos’s free shipping, along with free upgrades to faster shipping and 365 days to return items makes Zappos the next best thing to Amazon.com and possibly the next Amazon if they continue to add more product lines to their inventory.

    The Zappos.com Shoe OutletImage by Oliver Ortega Chua via Flickr
  • 0 Comments
  • Filed under: Thoughts
  • Google posted about Google Voice yesterday with a little video.  It took them awhile to get GrandCentral (a company they bought in 2007) to be up to what some of the Unified Communications companies already out there had going for them.  Google does have the power now to do more, to tie it to Android phones nicely to enhance their Goog-411 service, but do they really have a better system in the end?

    My experience in Unified Messaging isn’t limited, I’ve been using uReach.com for about 9 years now.  I even worked for uReach Technologies (their parent company) for about 5 years and Lucent Technologies for almost 2 years so I know first hand what goes on behind the dial tone.  I already requested an invite to Google Voice;  I suggest you request one too and see where they take the UC.

    Reblog this post [with Zemanta]
  • 1 Comment
  • Filed under: Thoughts
  • jQuery object creation in IE

    Here’s a jQuery object creation tip for a problem that I just ran into while coding:

    This code works fine in Firefox 3, but not in IE 7:

    jQuery(document.body).prepend('<div id="A"></div>');
    var $A = jQuery('A');
    
    alert($A.attr('id')); // undefined
    

    So instead use the .prependTo function to instantly get the newly created object:

    var $B = jQuery('<div id="B"></div>')
    .prependTo(jQuery(document.body));
    
    alert($B.attr('id')); // B
    

    It is also cleaner looking.

    Reblog this post [with Zemanta]
  • 0 Comments
  • Filed under: Code
  • Previously I spoke about the importance of proper site navigation and touched on the usefulness of search with respect to your own site. A very key piece to search is website content. If you don’t have proper copy on your pages, useful alt and title attributes on images and links you won’t be receiving much traffic. Along with all the copy you have, you really need to be concerned about what you say and how it is said. What keywords are you using? Are you using the words and terminology of your audience?

    I often see sites that use keywords that they use themselves, and are not of the language used by their consumers. But one clear important rule is to find out what vocabulary your visitors use find your product or site. Whatever product you are selling there are a plethora of words that surround any niche any many that are different between the novice and experienced customers. Learning how someone might first try to find information about your product or what they might mistake it for or even different ways that they use it that are not exactly the ways it was sold for can be searched when they are not specifically searching for your exact product. A prime example of this is dryer sheets, I found by accident when trying to figure out how to clean up animal fur (I have a cat and two rabbits) that dryer sheets can be used to remedy the problem. Then along the way I found that Bounce had jumped on this concept and has this type of content in their site now (but it’s in flash so it’s very hard to find unfortunately.) These additional uses play into how your audience sees your product, how they search for it specifically or stumble upon it on accident.

    Proper keywords need to be flowed with care into your copy so that it feels natural and without force so the user will get the picture naturally. They can exist in titles, paragraph descriptions, tag attributes, headers (your H1 and H2 tags). if you don’t know enough about these, learn a bit or find someone to help you out.

    Please don’t just start jamming synonyms willy-nilly into your pages, think about your language, how it sounds aloud, how it appears next to other imagery and copy. Don’t forget you’re trying to get someone interested in what you have to say and sell.

    In this post I used different words for keywords: vocabulary, copy, words, terminology, content, language
    As well as different words for visitors: audience, users, customers, consumers
    Along with other keywords that will drive users to this post: synonyms, traffic, website, site, links, search
    These were all thought about to provide enough searchable copy that will drive consumers to this post.

    Reblog this post [with Zemanta]
  • 0 Comments
  • Filed under: Thoughts
  • I just started using Dropbox for online storage, complete with 2GB, thanx to my new twitter friend ShaneSponagle.  It’s a nice online web storage site with both public and private storage.  You can create shared folders, and files in the public folder have a simple URL for direct linking.  The only thing it should have as a feature is the ability to have a link to a private or shared file ask for a login so you can easily just email or post links to files.  And at 2GB it’s not the biggest out there, but I do like the basics of the shared folder.  Still I wouldn’t use any of these as a primary tool, until you check them all out.  With such a large range of features and competition I don’t see a clear winner to meet everyone’s needs.

    If you join from the link above you’ll get an additional 250MB bonus and then when you refer friends you’ll get 250MB for each friend up to 3GB.

    Reblog this post [with Zemanta]
  • 0 Comments
  • Filed under: GeekWare
  • Building off my previous entry Posting to WordPress via BlackBerry I’ve updated my wp-mail.php script to work with twitter_updater. It’s not the best solution but it works for now.

    require_once(ABSPATH.'/wp-content/plugins/twitter_updater/twitter_updater.php');
    
    do_action('publish_phone', $post_ID); // current update to WP
    
    if (function_exists(vc_doTwitterAPIPost)) { // if twitter_updated exists: update
    	$twitterURI = "/statuses/update.xml";
    	$twit = $post_title . ' ( ' . get_permalink($post_ID) . ' )';
    	$sendToTwitter = vc_doTwitterAPIPost('status='. $twit, $twitterURI);
    	echo "\n<p>" . sprintf(__('<strong>Twitter:</strong> %s : %s'), $sendToTwitter, wp_specialchars($post_title)) . '</p>';
    }

    I also made some other updates to compensate for some changes to my email system which now base64 encodes part of the message. Here I added this code to split at the “base64″ marker instead or “quoted-printable” marker:

    if (strpos($content, "Content-Transfer-Encoding: base64") !== false) {
    	$content = explode('Content-Transfer-Encoding: base64', $content);
    	$base64 = true;
    }
    $content = $content[1];
    if ($base64) $content = base64_decode($content);
    
    Reblog this post [with Zemanta]
  • 0 Comments
  • Filed under: Code
  • Auto-Updating Bus Stop Time Schedule

    It’s very cold in New York and waiting for a in Brooklyn late at night is awful.  Sometimes the buses skip stops and with little traffic at night they can be 10 minutes early or in heavy traffic they can be quite late.

    Buses travel above ground, so they can be easily tracked via GPS.  Thus I suggest that bus stops has digital signs indicating the approximate time of the next bus. By tracking all the buses they can track the traffic in all areas of the city and will have more data for accurate time estimates.

  • 1 Comment
  • Filed under: Thoughts
  • In Other News...