cmurray.org

Observations on technology, business, and other weirdness.

December 18, 2006

Avoiding The Malls

Filed under: Personal — Christopher Murray @ 10:14 pm
nativity scene

This past weekend we avoided the malls and took the kids to something really special: The National Shrine for Our Lady of La Salette. Rather than push and shove our way through noisy, stressed, and germ-ridden people in closed places, we went outdoors to this beautiful campus in Attleboro. The lights and displays were truly amazing and set among little wooded alcoves and a lovely lake.

Here are some pictures I took using the new camera mentioned in my previous post. (The blurry ones are cool in their effects, aside from being totally unavoidable with twenty-month old daughter riding in a bundle on my back.)

Nativity From Around The World

Our Lady of La Salette I

Our Lady of La Salette II

Xmas Comes Early

Filed under: Gadgets,Personal — Christopher Murray @ 10:13 pm
rebel xt

I didn’t want to spend the money, but alas, I needed a new camera. My trusty Sony DSC-V1 took a few bads bumps it seems and started rendering images with colored lines through them. They appear sporadically, but more and more often, making the camera basically useless. It’s a shame, too; the Sony was compact, built of sturdy metal (so I thought), and had a sharp, Carl Zeiss lens. She was a good camera that served me well for years.

My dilemma while shopping was whether to go with another small, pocket-sized camera or to step up to a digital SLR, which is bulkier but obviously a much more professional and competent camera. I spent a lot of time reading on dpreview.com, which I highly recommend to anyone looking to buy any kind of camera gear. They appear unbiased and do remarkable research on pretty much any camera out there.

I have to say that I really liked the Nikon D70. It feels great in your hands, it’s solid and metal, I know it takes great pictures (dpreview also show lots of sample shots taken with each camera reviewed). But the price for admission was just a little too steep for me; over a grand with a decent lens.

So, I went with the Canon Digital Rebel XT shown above. This thing is the real deal. It feels remarkably similar my old Nikon SLR, which I always loved for its design. The body is heavy plastic, and while I’d much prefer something metal it seems able to get bumped around a bit. And of course one of the real draws for buying Canon cameras is that all their lenses work on all their cameras (alas, none of the lens filters for my film SLRs fits on this camera). At 8 megapixels, this thing is shooting some really gorgeous pictures.

I also went with Canon because my favorite camera was the Powershot 100 I bought years ago. At only 3 megapixels that little beauty snapped some really beautiful pictures and could fit in a shirt pocket. Reading and shopping, I soon realized I’d be going back to Canon.

I’ve been spending time getting familiar with all the features of this camera and soon will be posting some samples on Flickr and tabblo.

December 12, 2006

Accessing SQL Servers With PHP

Filed under: Technology — Christopher Murray @ 2:12 pm

Because of the systems I am using at work now, I need to become adept with Windows servers and databases as well as languages like C#. But I also still support LAMP servers using PHP. I’d like to do most of my development in the new environment, but when I need to get something done quickly, it would be nice to have a PHP environment where I could crank something out in a day. I also may want to port over some existing tools from the LAMP servers to the IIS servers. So, my mission is to get PHP onto the Windows server and make it play nice with the SQL Server.

I have IIS 6 running on a Windows 2003 Server. The database is a SQL 2003 Server. I searched online for a long time to figure out how to make this work, culling through lots of conflicting viewpoints.

MSSQL

A bunch of people mentioned that the ntwdblib.dll that ships with PHP5 is no good; you need to download and replace it with a newer version. I went here http://webzila.com/dll/1/ntwdblib.zip, unzipped it, and placed the file in my c:\php5 directory, overwriting the older version.

You also want to set the system environment variable PHPRC to a value of C:\php5, if that is where you installed PHP.
In addition, you need to make sure that your SQL Server is set to allow mixed mode (both TCP and Named Pipes).

Create yourself a new user in your SQL Server and limit its permissions to readdata and writedata (for now).

In IIS settings, go into the Application Configuration and add a .php extension pointing to your executable path (c:\php\php-cgi.exe or php5isapi.dll). Then, go to the Web Service Extensions and add the same path and give it Allowed permissions.

Restart your server, and then check to see PHP is functioning with phpinfo();.

Paste and edit the following code. If all has gone well, you’ll get some output from your SQL Server.

Note: For SQL Express 2005, change the $server variable to this: $server=”(local)\SQLEXPRESS”;.

<?php

$server=”localhost”;
$username = “yourUsername”;
$password = “yourPassword”;
$sqlconnect=mssql_connect($server, $username, $password);
$sqldb=mssql_select_db(“yourDatabase”,$sqlconnect);
$sqlquery=”SELECT * FROM table_name”;
$results= mssql_query($sqlquery);
while ($row=mssql_fetch_array($results)){
echo $row['row_name'].”<br>\n”;}
mssql_close($sqlconnect);

?>

ODBC

ODBC connections seem faster, though I have no benchmarks, and they are portable. They also appear easier to set up. I simply opened up Data Sources (ODBC) from inside my Control Panel -> Adminstrative Tools and in there opened the System DNS tab. From here I gave my connection a name (php2sql), chose (local) for my Server (although for SQL Express 2005, you’ll want to put ‘machineName\SQLEXPRESS’), input my newly created SQL Server username and password (as above for MSSQL), changed the default from master to my database, and that was it. Again, pasting the code below into a PHP page should display results from your database.

<?php

error_reporting(E_ALL);
$conn=odbc_connect(‘php2sql’,'yourUsername’,'yourPassword’);
if (!$conn)

{exit(“Connection Failed: ” . $conn);}
$sql=”select * from your_table”;
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit(“Error in SQL”);}
echo “<table><tr>”;
echo “<th>Meta</th>”;
echo “<th>ID</th></tr>”;
while (odbc_fetch_row($rs))
{
$meta=odbc_result($rs,”meta_name”);
$id=odbc_result($rs,”meta_type_id”);
echo “<tr><td>$meta</td>”;
echo “<td>$id</td></tr>”;
}
odbc_close($conn);
echo “</table>”;

?>

I hope that someone finds this helpful and useful. I really had a hard time finding something concise and extensible to make this work. I have these scripts running both in a development environment at work and on both my work and personal laptops.

December 10, 2006

Welcome Rodger Coleman

Filed under: Uncategorized — Christopher Murray @ 2:47 pm

I want to introduce a new blog to the internets tubes. My oldest and best friend, Rodger Coleman, is finally writing and I urge everyone to check him out here: http://nuvoid.blogspot.com/.

Rodger and I have been friends since childhood. We went to the Conservatory together, played in bands together, and have shared most of life’s ups and downs together. Rodger is out here writing about what he knows best: music. Apart from being a truly gifted musician (piano and guitar), Rodger knows more about technology and the music industry than anyone I know. He also has one of the greatest record collections around (including countless hours of Dead tapes).

I have been telling Rodger for years that he should write. I am thrilled he finally is doing so and I check his feed often for updates.

December 8, 2006

Thoughts on Ektron

Filed under: Strategy,Technology — Christopher Murray @ 5:01 pm

Ektron

One of the things that makes the Ektron CMS400 .NET so attractive as a CMS is that it is both a publishing platform and a document management system. Content contributors (writers, editors, or departments leads for intranets) use web-based forms (either builtin or custom) to add information and literally build their sites and portals. (Those fields also can be set as flagged for indexing.) Metadata is stored and managed within the system and is remarkably comprehensive and flexible. Included in the environment is the eWebEditPro editing module (the original Ektron product) which provides a very rich editing environment for content authors.

The system also provides for uploading and tagging documents in almost any format (.doc, .pdf, .swf, you name it). And because it is built on the .NET 2.0 framework, developers can quickly design and build sites using templates and master pages. Right out of the box, you can use Ektron controls to include on your site modules for blogging, forums, content collections, DHTML menus, a variety of search metaphors, RSS feeds, all in combination with the other Microsoft controls available in tools like Visual Web Developer 2005.

The power of Ektron, however, lies in its obvious attention to its customers. Everything about this system speaks to ease of use, functionality, and performance, without a lot of unnecessary gadgets and noise on the interface. The newer version, due out as a release candidate in the next few weeks and to be released in January, boasts some very sweet Google API integration and support for managing taxonomies (this was the eyebrow raiser at training last week).

I am truly geeking out over this system. I have it loaded on both my home and work laptops and I fire it up every opportunity I get. My initial reaction on first using the Ektron system was that for the money it is a great alternative to both open source offerings and enterprise Goliaths like Documentum and Interwoven; now I simply say it is a great system.

December 7, 2006

James Kim

Filed under: Personal — Christopher Murray @ 7:53 am

james kimThis is just too sad for words. It’s one of those things that just sticks with you throughout the days. It’s hard to shake the sadness and the feelings of how truly unfair this is (who among us has not been praying for his return for days). The bravery and cleverness of Kati and the children, their survival instincts, are inspiring; I only hope I could keep my head in such circumstances. And the father’s courage in trying to find help for his wife and young daughters moves me to tears. To imagine his thoughts as he wandered further and further away from his family and into the unknown, struggling on and on, eventually passing away alone and no doubt wanting only to be with them once again is crushing beyond words.

For what little it matters here, I offer my sincerest condolences to the whole family. For them I feel a profound sense awe and admiration for their strength and hope that it helps to carry them through this.

December 5, 2006

The Nine Circles of Sprint

Filed under: Personal,Strategy — Christopher Murray @ 4:35 pm

treoI’m not prone to blog rants … But I have been reading for months how Churbuck and Cahill and Borsch analyze and even define reaching out to customers, proactive support, customer engagement and participation. All great stuff and long overdue. Which makes my recent experiences with Sprint so glaringly awful.

I wanted to become a late ‘early adopter’ by getting aboard the Treo train. But I found that my current provider, Nextel, only supported the Blackberry. After several conversations with reps from both companies (they still are somewhat separate even though they have merged), I decided it was worth switching to Sprint.

So, I went to the web site and began ordering my phones and services for my wife and I. While doing so, a chat window popped up with a sales rep helping me through the process. It was a real rep, too; I asked several pointed questions to see if it was just a bot. She was very helpful, and in fact, even gave me a $50 promotion code. Well, that was very easy and a very good experience. I was told I should have my phones in two business days.

Four business days later I became concerned at the absence of my phones. I got a call from Sprint’s fraud department the same day questioning my order, because several orders had been mistakenly sent to the wrong addresses. I was given a number to call to check my order.

When I called the customer service number I waited on hold for almost an hour before the lady there confirmed that my phones had shipped and that they would be here tomorrow. I asked for her name and waited another day.

The next day I called the support number again (which is even more difficult when you don’t have a Sprint phone number yet; they seem troubled by helping you when you’re not a real customer yet). After another hour on hold, the guy I spoke to confirmed that my order shipped and should be here today, which was now Friday.

No phones on Friday. (I wondered if the reps were just making things up, typing on their computers to make it sound like they were accessing actual information on my order.) Late Friday night I get call from a guy at UPS. I can barely hear him for all the factory noise in the background. He seems to be saying he has a package he thinks is mine. It was shipped to Kansas City, MA. Since there is no such place, he opened the package and checked the bill. He confirms my true address, though I can barely make out what he is asking me. Very strange and disconcerting.

Sprint on Monday (after another hour on hold) tells me of the error with the shipping when I call them again. But this time they tell me that there is nothing they can do; they say I have to wait up to 10 days for UPS to consider the package lost before they can put a trace on it. I say that is fine, they can just send me some new phones while they wait for their lost phones to be returned. They cannot do that; they have to get the phones back first. I ask to speak to a manager, who is surprisingly surly and unhelpful. After another call, another hour on hold, and another rejection for satisfaction I am fit to be tied and wished I had never switched services.

I get home that night to find that the UPS guy on the phone that night indeed did have my package and had forwarded it on to me. I was thrilled, but also amazed to find that it took another hour on hold to get the thing activated at Sprint. (They still considered my my phones lost, incidentally, though that is not why it took so long to activate).

About 10 days later I got a second box from Sprint with two new phones in it. And yes, it took me an hour on hold before I could find out how to return the phones to them.

There’s more. My wife recently wanted to make sure that when she unblocks her call blocking, that her name appears to the receiver and not mine. You guessed it, another hour on the phone … and it still does not work properly.

If it were not for the hefty cancellation fees and the cost of new hardware, I would switch to anyone … anyone … else right now. Each time I call Sprint for support each rep offers a different answer to the same question. It’s appalling really. You walk away feeling lied to every time.

This experience is second only to the misery suffered at the hands of the Big O, Overstock.com. After a botched shipment similar to the one mentioned above (and the requisite multiple calls and hours on the phone), I waited weeks for a 19-inch Dell monitor. When the thing finally arrived, the case not only was covered in dents and scratches, but the left third of the viewable portion was brown and distorted. Completely useless. I did get a $50 gift certificate as recompense, but refuse to use it.

I’ve been meaning to blog about these experiences for some time now. Ah, feels good to get that off my chest.

 

Copyright © 2009 Christopher Murray