Technology Musings
In: Internet
23 Mar 2009Usenet is a distributed message service that allows users to post and read items by other users. Typically, an end-user subscribes to a single Usenet server – either provided by their ISP, or subscribed through a premium service such as NewsDemon. That server provides a single point of entry for the user, but receives and distributes messages with other Usenet servers in a mesh network. A mesh network is similar to the infamous P2P networking, with the added ability of data being able to flow through multiple hops to reach a destination. Thinking about air travel, P2P is like taking only a direct flight whereas mesh is similar to using layovers to reach your destination.
Usenet has evolved since its introduction in 1980, now serving a purpose far more vast than it’s original intended purpose of ASCII communication. With the popularization of binary-to-ASCII conversion (such as uuencoding), it became practical to post files on the text-only messaging system. However, there are size limits on Usenet messages, so large files may be split among thousands of messages or more.
Read the rest of this entry »
In: iPhone
11 Mar 2009By now, most people are aware of many limitations for developing on the iPhone, the most prominent being lack of ability for third-party applications to run in the background. To assuage this situation, Apple proposed a system of “push” messages that could be sent through the cellular network to the phone to notify them of an event.
A common example of this would be IM services: A user logs into the application, whose state is stored on the provider’s server. If the user closes the application, they can remain logged in through the server. If a message is received, the provider server notifies Apple, which notifies the mobile service company, and a notification is sent to the user indicating that a message from the instant messaging application is waiting.
It sounds simple enough, but Apple has yet to deliver on this promise and is far beyond their self-imposed deadline. Something I would like to see as a compliment to this service, actually works in exact reverse order and relies on the fact that first-party applications already run in the background (such as Mail, Phone, SMS, and iPod). Read the rest of this entry »
In: Internet
26 Feb 2009Dropbox (review, bonus 250MB, or Try Dropbox Professional
) and ZumoDrive both offer an amazing cloud-based file synchronization service, yet their features do not completely overlap. Until the services have closer feature parity, there are different reasons to use each. For me, one the the biggest features of Dropbox is the availability on Linux, which ZumoDrive does not offer. On the other hand, ZumoDrive has a client for iPhone, which Dropbox does not yet have. If I want truly want to access my files on any platform, I have to use both services.
Aside from these feature differences, using two services allows me to escape the lock-in of a single provider. If either company experiences a service interruption, I can rely on the other in the meantime, giving me a mirroring-like setup.
Read the rest of this entry »
In: SQL Server
25 Feb 2009Despite being completely proprietary, one of the nice connectivity features offered in SQL Server is the ability to query other servers through a Linked Server. Essentially, a linked server is a method of directly querying another RDBMS; this often happens through the use of an ODBC driver installed on the server. Fortunately, many popular databases provide this ODBC driver, giving SQL Server the ability to connect to a wide range of other systems. I’ve already written about how to connect Oracle and SQL Server. In this post, I’m going to go through the steps necessary to connect SQL Server and MySQL.
Read the rest of this entry »
In: SQL Server
17 Feb 2009The DATETIME data type is often misunderstood and used inefficiently. This article focuses on the date component of DATETIME, how it is handled internally and how it can be used effectively for querying. The DATETIME type is internally stored as two separate 4-byte integers: one of those integers stores the date portion, and the other the time. When the date portion has a value of 0, the date is 1900-01-01. Because the date is internally stored as an INT, casting and converting directly between the types is natural:
Read the rest of this entry »