Online Chat

Use the window below to chat with me (if I'm online ...)

Use the edit nick field above to let me see your name.

cazh1: on Business, Information, and Technology

Thoughts and observations on the intersection of technology and business; searching for better understanding of what's relevant, where's the value, and (always) what's the goal ...

Sunday, March 21, 2010

Lost Weekend: Troubleshooting a MySQL Installation

Spurred on by Blogger's decision to stop supporting FTP for publishing blogs, I have finally started the long process to implement a WordPress blog - hosted by myself, not Wordpress.com. To be fair, I am making this longer than it necessarily needs to be, but I am continuing my efforts to maintain a comprehensive Admin guide for all of my development efforts - configuring servers, installing software, etc.

Needless to say, this adds overhead and time, but it's worth the effort. I have invested around 40 hours of effort over the past four years on the document (an indicator of how often I get back to my development projects). Still, it pays off every time, because I have a reasonably well-developed SDLC and publishing process implemented, and I need to make sure each new project follows established standards - and adds to the standards when necessary.

Enter MySQL and WordPress - since I will be hosting my own blog, I need a new and different flavor of Development, Test, and Production environments. No more dabbling - I need to tighten up security and document the installation and maintenance processes for the database.

Which is where I hit a wall, of sorts; I could not successfully change the root password on the MySQL database, kept on getting the UPDATE command denied to user ''@'localhost' for table 'user' message.

Hours of surfing, searching, starting and stopping, installing and reinstalling, to no avail. However, I had seen the AppArmor framework mentioned a few times, and had seen error and warning messages in the system logs that kept hinting at something in that direction. So I finally followed the advice noted in this thread, and disabled AppArmor during the MySQL installation process. A few notes:
  • Use the Synaptic Package Manager utility to enable / disable AppArmor; I didn't want to throw the whole thing out, just needed to disable (Mark for Removal) and then Install (Mark for Installation), did not want to completely smoke it (Mark for Complete Removal).
  • After disabling in Synaptic (Mark for Removal), ran the mysql_secure_installation script from the command line for the umpteenth time - but this time, the password change for root user worked.
  • Rebooted the machine, and reinstalled (Mark for Installation) AppArmor in Synaptic.
A quick validation that I could use the MySQL graphical admin tools and phpMyAdmin, and I was back to getting the Dev instance of WordPress going.

Ah, but now I have to get ready for the work week, and time is ticking away ...

Previously ...

Technorati Tags: , , , , ,

Invisible Technorati Tags: , , ,



Labels: , , , , ,

Saturday, October 17, 2009

Underwhelming experiences with Google Wave

Took some time today to work with the new communication meme - Google Wave. I wouldn't call it a fundamentally new way to communicate - well, not yet. I think Google is safe to continue with a "preview" label - clearly not even "beta" yet. No horrible bugs - at least on the Windows platform - but some obviously missing features. And, I am not all that impressed with the basic idea - it's just a mashup of Google Docs, instant messenger, and eMail.

Problems

All of my experimentation has been from a Windows machine - I am experiencing horrible performance issues with Firefox 3.5.3 on Ubuntu 9.04. I freely admit that this might not be a Wave issue - for the last two weeks, all of my Google sites (Mail, Docs, iGoogle, Reader ...) run brutally slow, timing out by graying the browser window. I know it's a weird issue because I can't Google for an answer (a disturbingly tight loop). Wave refused to even show me the stills from the introductory videos until I disabled Greasemonkey. Yes, I'm sure it has something to do with my setup, my installed plugins - I'm just surprised that the problems have been this stubborn.

So, to get anything done, it's back to Windows - still using Firefox, but no hint of platform troubles. Just an underwhelming experience with the fancy new toy.

I Am Legend

Interconnections on the internet are a wonderful thing; I put out a Tweet (sic) regarding my Wave invites, and a note in LinkedIn as well. Twitter generated the most responses, with folks I'd never met - great fun to connect like that. The following day, I got a note from someone looking to connect via Wave - I'm guessing from the information that I can see, this person saw one of my original notes via Friendfeed. Amazing how those copnnections were practically spontaneous ...

... while Wave feels like I'm in a walled garden. I still feel very cut off in the Wave world - a different domain from gmail.com means a new address to track, a new contact list to build. And it's difficult to find connections with folks you already know; I received another Wave invite from a friend, but since I didn't need it, I tried to figure out how to connect to him via Wave (I thought it a reasonable assumption that he, like me, has dived in). Unfortunately, I had to resort to an email message and some detective work to find out his Google ID - not something I could explain to most business users.

Yet Another Email Client

Yes, I am still at that opinion. Most of the opinions and articles I've scanned make it sound like we are working with a next-gen email client that does some of the basics right. I do note that the amplifiers tend to gush a bit, while the attenuators work hard to impress with wit.

Generally Pro
Generally Con
Maybe It's Just Me

One of my random invites went to this guy, who's review was a bit more positive than mind. Ok, maybe I'll jump into the with:public pool and wade around a while - it's probably the only way I'll really get it. However, I am very willing to be patient and continue the experiment - took me about 3 months to get Twitter.

Previously ...

Technorati Tags: , , , , , , , ,

Invisible Technorati Tags: , , ,



Labels: , , , , , , , ,

Tuesday, July 14, 2009

Real Business Users and SharePoint

Introducing buzzword-compliant technology like a wiki, or integrated collaboration spaces like SharePoint, will typically go well with a motivated audience like your internal IT department. But if you really want to understand how this stuff works, try it with "real people" - line employees in sales and marketing, operations, and finance.

Sure, you've heard complaints from these folks (they have better PCs at home, the SAP/Oracle UI is brutal compared to Amazon and AT&T U-Verse, and why can't they just connect their new iPhone to the corporate mail server?). Be warned; demanding users are not necessarily technically savvy when it comes to groupware.

Case in point; we are working a rather large project (many months in length, over 100 people throughout the business) using SharePoint as our collaboration space - and learning an awful lot about what we thought we understood about ease-of-use and intuitive user interfaces. Our collaboration space is a basic SharePoint project site, featuring the usual suspects - a Shared Document library, an Issues list, and an Announcements section. Simple right? Well, maybe not ...

Documents Check In, but they Don't Check Out

Just kidding, the actual check-in / check-out mechanism works fine. It's just very interesting that this basic concept of version control is lost on most end-users.

But let's start with the document library itself - it looks like a really nice version of File Explorer, but becomes very frustrating to folks when they try basic tasks like drag-and-drop. Yes, we found the simple solution - there is an option to open the folder in Windows Explorer, but since this menu option is buried right above the file list, it's hard to find - certainly not "intuitively obvious".

Version control was a difficult thing to explain - thank goodness for the tight integration with Office 2007. We found it easier to show folks how to edit documents with a simple double-click - that works just like their shared folders on the old file server! You can explain the concepts of version control quite easily, but the whole check-in / check-out, keep-a-copy-on-your-local-drive thing just gets too complicated. We did have to deal with the one-time task of checking in a new document after you upload it, but after that, they just open the files directly, and that's it.

There is one feature of Shared Document libraries that I really like - the ability to add custom attributes to documents that can appear as columns in the view. Makes it easier to sort / select / search on documents, and people "get it" relatively quickly. Just go easy on the version control.

... Here's a SharePoint Tissue

I think the most powerful and elegant feature of SharePoint is the flexibility you have with basic list management - even with WSS. Truly, this stuff should cover over half of the "fancy" automation tasks that folks are are asking for. However, I'm still surprised / dismayed by the fact that SharePoint doesn't include a standard graphical indicator - you know, the classic "stoplight" (green is good, yellow warning, red means um, er...). I've written about this one before - why can't I have a simple datatype (vs. putting together a sneaky little script to make it work).

I also have a significant warning / insight about trying to do too much with your Lists. Do you realize that most end-users in a typical SMB have older CRTs? I'll bet you still have a large number of 15" CRTs with slightly foggy tubes, on their last legs (but too expensive to change out for all but the executive staff) (ok, and IT too, sorry). In addition - well, let's just say that I'm not the only one whose eyesight is beginning to fail them; I can't tell you how often I've tried to talk folks into moving their screen resolution higher than 800x600 - but it just doesn't work.

What's my point? Before you put too many columns in your Lists, or too many gadgets on your Site, check with the average user to make sure that it looks okay on their Screen. Heck, before you even begin your design, use SMS or a simple script to poll the user community and find out what kind of screen resolutions have been set. Catering to the lowest common denominator is not a cop-out, especially when the point of a collaboration site is to get people to actually participate!

Push vs. Pull Messaging

(Another opinion:) I think most powerful aspect of collaboration sites is the aggregation of all knowledge about a project into a single, searchable repository. When people send project updates or resolve issues / hold discussions over e-mail, all that knowledge is buried and quickly lost inside people's inboxes. In SharePoint, a typical Announcements web part (yes, I know it's just another kind of List) is quite practical as a messaging medium, because folks can sign up for e-mail alerts.

Don't underestimate the attraction of the e-mail. People are used to getting information delivered to them in their inboxes - it's expected! All I'm saying with my Announcements list is that you have to subscribe to the information and pull it towards yourself (versus expecting me, the project manager, to remember to push it to you - and everybody else that might be interested).

Real-world learning: this concept didn't take long to grab hold in our project. It makes sense, people understand it relatively quickly.

On The Good Side

Don't get me wrong, there is lots of good that's going on. Now that the larger project is getting used to this new collaboration space ...
  • ... our issue tracking list gets better every time someone touches it - and now we have consistent consolidated issue lists for all aspects of the project
  • ... we are advancing our state-of-the-art for shared authorship; there is a lot more visibility to who is working on what, and we're getting more participation than a normal project
  • ... the combination of all these different pieces - shared documents, issues, announcements, and other things - are massively facilitating communication, and it is noticed by the folks on the team
Yes - these collaboration tools will definitely will bring huge value and streamline communications to your project. Just don't think it's easy or obvious.

Previously ...

Technorati Tags: , , , , , , , , ,

Invisible Technorati Tags: , , , ,



Labels: , , , , , , , , , , , , , ,

Saturday, May 16, 2009

Notes from SAPPHIRE 09

Yesterday at work was "catch-up day" from a week at SAPPHIRE 2009, the annual user conference for SAP. As with the JDA/Manugistics conference earlier this year, there were concerns that attendance was going to be low, because so many companies are limiting travel expense. At the conference, I did hear that attendance was only was 60% lower than last year.

Conferences like this are great opportunities for IT to do a ton of learning - about the specific technology, of course, but also about the state of mobile computing and collaboration, tools that we are apparently trying to get the rest of the business world to adopt. Experiential learning, real-world experience - always better to talk about something that you know works / doesn't work in a practical setting. (No, I don't suggest you replace Quicken with SAP at home, although that might be a growth area for BbD).

Twitter at a Conference

I wrote up my trip report / internal blog entry yesterday (Friday), but I was twittering a lot during some of the sessions, so it was an easy write up - I just cut-and-paste from my personal timeline. Using the Blackberry during the conference was a pretty good experience; I could take fairly detailed notes on what was being said - plus, I can throw out passing Tweets on the way. Near-real time knowledge sharing - very nice for folks in the Tweeterverse, watching the information go by.

Unfortunately, it's a bit difficult to engage in a Tweet-versation with these client devices; the screen is too small, and you only see what you are typing. I did, however, latch on to the #sapphire09 hash tag to come up with a workable monitoring process. I found that search.twitter.com presents a decent RSS feed, one that the Blackberry browser consumes quite nicely. I don't know if this is a "native" RSS reader in the blackberry, but it worked amazingly well - I made a passing mention of one of the sessions I attended, and someone asked for more detail - so I ended up tweeting almost every slide.

Apotheker

The Tuesday morning address by Leo Apotheker started with some doom and gloom about the economy, but that was just a lead-in to SAP's new branding message of promoting "clarity" for the enterprise; making pertinent business information easy to access, easy to see. Some of my tweets from the speech … I clearly (sic) have a different editorial style ...
  • Apoetheker starting with the doom and gloom #sapphire09 7:38 AM May 12th
  • My inner cynic is subsiding - I actually like the appeal for "clarity" #sapphire09 7:42 AM May 12th
  • Are "clear enterprises" like "glass houses"? (Sorry, cynic is back) #sapphire09 7:44 AM May 12th
  • Is he about to say sap could have prevented the economic collapse? #sapphire09 7:56 AM May 12th
  • Ah, just the story of how goldman sachs did ok because they actively manage risk #sapphire09 7:57 AM May 12th
  • We need a simple example of how a manufacturer manages risk #sapphire09 7:58 AM May 12th
  • SUGEN KPI Framework for enterprise support - nice focus on transparency #sapphire09 7:59 AM May 12th
  • Props - a pretty effective live demo of a blackberry enabled work process #sapphire09 8:03 AM May 12th
  • The carbon footprint app looks interesting - this is a recurring theme for recent presentations for me #sapphire09 8:17 AM May 12th
  • I think its a harsh. retroactive self criticism when this "speedy query" demo admits that a simple query would take 'weeks' #sapphire09 8:27 AM May 12th
  • SRO crowd at presentation for information "dashboards" - yet another recurring topic, still unmet need #sapphire09 1:11 PM May 12th
  • Sap guy was apparently unable to say "eat our own dogfood", too closely related to microsoft hhh #sapphire09 1:19 PM May 12th

The most interesting areas of Leo's conversation had to do with the metrics being created by SUGEN (not), a collection of all the national user groups (like ASUG). SAP continues to get lots of pushback from the customer base about their increased support fees, and these metrics are going to allow us all to see how SAP is performing.

Plattner

The Wednesday morning address by Hasso Plattner, one of the founders of SAP and a pretty interesting guy, started out like a technical lecture at engineering school about in-memory databases and columnar data. By the end, it had transitioned to a Business Objects demo and a tool "easy enough that a CEO can use it".  Here are some tweets from that speech …

  • Hasso on speed [sic] - spotlighting the reams of data and the need for decent access tools #sapphire09 7:44 AM May 13th
  • Hasso is very professorial - if it weren't for the subject matter, methinks more would pass on the talk #sapphire09 7:53 AM May 13th
  • Ok, reading other #sapphire09  tweets now - is a shoe dropping right now? Re sap and hardware ... #sapphire09 7:57 AM May 13th
  • Someone should register spaghettibeforecooking.com #sapphire09 7:59 AM May 13th
  • Maybe hasso's point is that clarity / speed yap from yesterday is not smoke and mirrors - solid tech supporting this sales stuff #sapphire09 8:16 AM May 13th
  • Insert only - like the old one-write accounting systems - ledgers in pen. Make a mistake, back it out. Complete auditability #sapphire09 8:19 AM May 13th
  • Is insert only / read only db stuff analogous to RISC chips? Who needs elegance when you think Real Fast. #sapphire09 8:20 AM May 13th
  • Head-snapping shift from professor to jester #sapphire09 8:23 AM May 13th
  • Hasso rips on EIE processing (everything in excel) #sapphire09 8:24 AM May 13th
  • Oh, I think he just said he is talking about t-rex #sapphire09 8:29 AM May 13th
  • Hasso is definitly tech at heart, rips into classic demo style of demo on mini data set #sapphire09 8:30 AM May 13th
  • hasso's enthusiasm is honest, like the literate engineer given a moment of exec management's attention #sapphire09 8:34 AM May 13th
  • Awesome animated pipeline #sapphire09 8:41 AM May 13th
  • Boy he started slow but has he hit stride in last 10 min #sapphire09 8:43 AM May 13th
  • Table scans not considered harmful #sapphire09 8:48 AM May 13th
This was pretty interesting technology - high-speed, insert only databases. Not sure what that means for the long term of our existing databases, data warehouses, and hardware. But hey, it's only capital - right?

Elsewhere On the Web
Previously ...

Technorati Tags: , , , , , , ,

Invisible Technorati Tags: , , ,

Labels: , , , , , ,

Sunday, April 05, 2009

Practical Applications of Twitter in Manufacturing?

Over the past few weeks I've had a couple of interesting discussions about the introduction of Twitter to Manufacturing. When someone poses a question like this to me, it throws me for a minor loop, because for very basic, practical reasons, it just doesn't seem to apply. More keyboards & data entry on the floor? Not likely.

However, a few months ago I wrote this rather breathless item, expounding on a brainstorm regarding the use of YouTube and Twitter in a manufacturing setting. Back then, my summary point was about the value of alternative mechanisms for capturing and distributing process documentation. I noted that Twitter was less intimidating than other documentation tools - it's all about capturing status or best practices. But after the past few months of heavier use (@jpmacl), I typically explain Twitter as a keyboard-enhanced conversation - a "false path" for Lean aficionados if you are trying to capture knowledge (the Archaeopteryx of Manufacturing KM?)

But Twitter as an alternative communication medium for folks on the floor? I really don't think it's a good fit - and this is based on practical experience as well as a little common sense.

The Tweeter as Information Source

Are you trying to understand how Twitter would work in your environment? Don't think you can get it right without some decent hands-on time. You'll find that it's very intrusive - not something that you want on 100% of the time. For me, it makes sense when I'm catching up on notes for the day, clearing e-mails, scheduling meetings, or other lighter work that doesn't suffer greatly from periodic chirps from my Tweetdeck. It's running on the second monitor; every once in while I will glance over to scan the latest potentially valuable conversations to jump into.

This scenario would never work on the manufacturing floor. There's no way the Environmental Health & Safety folks will allow anything to distract folks from completing the tasks at their workstation.

Besides, hitting the keyboard for status updates is exactly the kind of non-value-adding data entry that Lean mavens are working to eliminate.  Note that when I say "non-value-adding", I am referring to Finished Goods; standard work, training and knowledge retention are important in a Lean world, but not while you're actually getting work done.

The Tweeter as Information Consumer

On the other hand, if there is a Tweetdeck-style application available, running on a screen that is visible to an entire workcenter - well, maybe the folks on the floor can be _consumers_ of Tweets. Then again, it's just another RSS application, nothing Twitter-specific.

Web 2.0 Technology and Manufacturing

Are manufacturing firms using Twitter? I'd say that few are - and it's based on the "personality" of a typical manufacturing company.
  • IT is typically <3% of total revenue - not an environment that fosters experimentation / cutting edge IT work
  • Lean is a growing force in manufacturing, and Lean is decidedly anti-computer - so no one will have a keyboard at the ready to start Tweeting!
Now, to be fair, you could cherry pick high-tech manufacturers; certainly, there are many engineering departments that are sharing information and communicating real time. But when I hear "manufacturing" I'm thinking line managers, shift supervisors ... not typically the keyboard types. They like their push-to-talk phones, and that's really all the instant communication they need.

Aren't there any potential benefits of Twitter for manufacturing? Directly - not much, I'm afraid. However, as with any area of the business that traffics in knowledge capital, the Design Engineering and Manufacturing Engineering folks might find benefit in information-sharing collaborative networks and "real-time" connections.

Note, however, that I am greatly interested in hearing counter-examples of the above. Anyone aware of interesting Twitter-ing on the floor?

Previously ...

Technorati Tags: , , ,
, , , , , , , ,

Invisible Technorati Tags: , , , ,



Labels: , , , , , , , ,

Sunday, March 22, 2009

Field Notes: Video Conferencing for Business Conversations

This past week saw my first experience with video conference calling - something obvious to consider in these tight economic times. Some observations -

  • I got quick feedback that my original camera position was disconcerting for the others. I had put it off to the side, which made me look “off camera”, almost in profile, while in conversation. As I thought about it, I agreed - because if I was looking at me, it would be weird / annoying. I do not like it when the person I am talking with is not looking me in the eyes.
  • On that note - when we're in a conversation, I'm typically looking at a 6” circle around your  eyes. When on a business / working video conference, however, I’m looking at a 2 x 2 inch square picture of the speaker - because we all have other windows open, looking at documents / programs under review. It’s feels more like a “talking headsnewscast than a conversation ...
  • … but you have to take the good with the bad. The ability to bring up a spreadsheet or presentation or application on a shared screen is quite powerful - participants can “see what I see”. You just need to understand that this is a multimedia conversation, and not simply a replacement for a phone call.
    • On the other hand - my family uses Skype to stay connected with our daughter away at college. When we make the call, we’ll flip the video feed to full screen - and since the web cams on our respective laptops are perched right above the screen, our eyes are focused reasonably close to the other person's face. Simple conversational video calls, without the multitasking overhead, are reasonably effective.
  • Microphone configuration is also very important; some folks are using headsets, while I use the microphone incorporated in the video camera. I prefer this arrangement; I’m already comfortable with using a speakerphone on normal calls, and prolonged use of an earpiece gets a bit annoying. The key, however, is to get everyone to correctly configure microphone settings. Everyone's volume was a little different, and it impacted the smooth flow of conversation.
  • We are using inexpensive web cams, not highfalutin’ conference calling hardware. In this scenario, the system does a reasonably brilliant job of flipping camera control to whoever is speaking. This seems obvious, but I noticed that when I was speaking, your remote view doesn't bother flipping to your feed - it stays on the last speaker. This can be a tad disconcerting if that person reverts to typical conference call habits, and looks away / does a little multi-tasking.
  • I also noticed that people were much more cautious, or overly polite, about talking over one another. I assume that as we get used to holding conference calls in this format, we’ll get more comfortable with the interruptions.
Later in the week, I had a long conversation with a colleague in Germany. Here, the video call format is very effective. Typically, I prefer face-to-face conversations to phone calls - you can react when someone's facial expressions signal a lack of agreement or comprehension. Of course, this is not practical with meine freunde in Deutschland, where language differences exacerbate the situation. The video call solves that problem immediately and effectively - I found myself communicating in face-to-face mode now, with hand gestures (ex. air quotes) and facial expressions indicate agreement, keep the conversation moving along.

Like any bit of technology, reality is not as smooth as the sales pitch makes it out to be, but still a very effective tool, and something that can be experimented with quite inexpensively.

Experimentation leads to experience, leads to effectiveness.

Previously ...

Technorati Tags: , , ,

Invisible Technorati Tags: , , ,



Labels: , , , ,

Wednesday, February 18, 2009

Another Take on Enterprise Open Source

Today's best conversation was with Christopher Young, of B2BSX, a startup software exchange where corporate IT departments can buy and sell their development efforts, and make a little cash to offset stressed budgets. It's an interesting idea, and spawned some ideas in a couple of different directions.

Andy Hardy, IT Director

Every company I've worked for has toyed with the idea of selling some of their custom-developed stuff - well, every company except the first one, since it was a software development house (we weren't playing around). My "growing up" years as a developer have really jaded me on the idea of selling the deliverables from IT- or business-funded projects, typically for one simple reason - everyone underestimates technical support.

Operating systems change, DLL or JVM dependencies must be managed, and no one reads the manual - they all want support over the phone. Unfortunately, wide-eyed project sponsors or IT directors with dreams of P&L responsibility see COGS limited to the price of a CD, and revenues that match their ERP packages - it's not that simple.

Vertical Open Source

A solution, as presented by B2BSX, is to tweak the open source model a bit, offering source code for specific customizations, at low cost (well, much lower that building it yourself, I would assume). No long term warranties, no 1-800 support lines, you are on your own - but you are getting pre-built solutions that you can adapt into your own business, jump-starting your efforts with a basic shell, and adding your own refinements later.

I think of it as highly verticalized open source - sounds like they are limiting things to SAP right now, and I'd expect to see very specific solutions listed. By vertical, however, I'm thinking about reports / queries / wrappers that are very specific to a particular type of industry - the "long tail" of software niches, where most IT departments really do need to tweak that "collection of best practices" you were sold. I'm expecting to see stuff that is too specialized for a global software company to bother adding to their product.
    <aside> Maybe the "long tail" of ERP requirements is where the untapped value is for those guys ... </aside>
Custom Often Means Really Custom

Of course, there are still predictable hurdles for this model - not the least of which is the fact that this stuff is written by corporate IT. Hey, most of us have short deadlines and long backlogs, and little experience developing flexible software architected for iteration and flexibility. "Hard Coding" stuff is an academic Bad Thing that is often required to git 'er done (yes, I went there ...). Chris characterized this as software with tentacles, reaching all over your portfolio and gripping on tight - makes it tough to pull out and wrap into a nice package.

There may also be IP concerns - something to work carefully through with your legal department. Note: don't think that Legal has little to offer here, because every company should have some concern about IP and competitive advantage, even if you are not in the software industry. You should be maintaining control of your software IP when you customize COTS or contract work out - now might be the time to leverage it!

We're All from Missouri

I have no idea yet whether this exchange idea makes sense - but it could be just the time to look into this. We're all under budget pressures, and Mr. Young tells me that once you get the basic relationship set up, putting software out there takes very little effort.

Maybe this is where the real future of ERP is going. What if our maintenance fees kept increasing, but the acquisition costs plummeted - all the money is in the add-on services? The Xerox model, where you give away the copiers and sell toner and paper? Gives a whole new meaning to the term "copy protection" ...

Previously ...

Technorati Tags:
, , , , ,
, , ,

Invisible Technorati Tags: , , , ,



Labels: , , , , , , ,

Saturday, January 17, 2009

Hacking the Google Chart API from Excel

a bit of code on a Saturday night ...

I've written before about a simple way to measure and report IT value to the business - quantifying alignment with strategic initiatives  project spend in context. It all culminated with a single, simple slide - numbers, with some Tufte-esque Sparklines thrown in.

Click on the picture for a full-size image!


Well, technologies come and go, and without going into the boring details, I've had to come up with a new way to generate the mini-bar charts along the left side there. It ended up being a relatively straightforward task in Excel VBA - yes, of course the table of data is being driven from a spreadsheet.

Here's the macro that does the trick - I just create a little HTML file that generate the bar charts in series (please excuse the hard-coding) ...

Sub CreateSparklinesDisplayFile()
  
   Dim sOutFile As String
   Dim iStartRow, iStopRow As Integer
   Dim iStartCol, iStopCol As Integer
   Dim i, j As Integer
   Dim sDataString As String

   sOutFile = "C:\Temp\BizUpdates.html"
   iStartRow = 45   ' First row of data to be graphed     <<< Evil hard coding!
   iStopRow = 51    ' Last row of data to be graphed
   iStartCol = 12   ' First column of data to be graphed (includes column of series names
   iStopCol = 24    ' Last column of data to be graphed

   Open sOutFile For Output As #1

   Print #1, "<html><head><title>BizUpdate Sparklines</title></head>"
   Print #1, "<body>"
   Print #1, "<p>Sparklines for last 12-months spend, IT Projects, by Initiative</p>"

   ' Loop thru the lines in the table to generate the separate sparklines

   For i = iStartRow To iStopRow
      Print #1, "<P>" & Cells(i, iStartCol).Value & "</P>"
      Print #1, "<img src='http://chart.apis.google.com/chart?"
      Print #1, "chs=100x35"       ' Size (length x height) of final graphic
  
      sDataString = "&chd=t:"
      For j = (iStartCol + 1) To (iStopCol - 3)
         sDataString = sDataString & Cells(i, j).Value & ","
      Next j
      sDataString = sDataString & "0,0,0|0,0,0,0,0,0,0,0,0"
      For j = (iStopCol - 2) To (iStopCol)
         sDataString = sDataString & "," & Cells(i, j).Value
      Next j
      Print #1, sDataString
 
      Print #1, "&cht=bvs"
      Print #1, "&chbh=a,2"
      Print #1, "&chco=
CCCCCC,FF3300"
      Print #1, "&chds=0,100,0,100'"
      Print #1, "title='" & Cells(i, iStartCol).Value & "' />"
      Print #1, ""
   Next i

   Print #1, "</body>"
   Print #1, "</html>"

   Close #1

End Sub

The output file looks something like this (a simplified version ...)

<html><head><title>BizUpdate Sparklines</title></head>
<body>

<p>Sparklines for last 12-months spend, IT Projects, by Initiative</p>

<P>Cost Reduction</P>
<img src='http://chart.apis.google.com/chart?
chs=100x35
&chd=t:52.25,65.3,72.15,33.15,33.95,33.65,47.7,92.88,79.49,0,0,0|0,0,0,0,0,0,0,0,0,70.57,87.85,55.25
&cht=bvs
&chbh=a,2
&chco=
CCCCCC,FF3300
&chds=0,100,0,100'
title='Cost Reduction' />

<P>Growth</P>
<img src='http://chart.apis.google.com/chart?
chs=100x35
&chd=t:67.05,88.25,85.61,95.25,86.70,55.49,54.75,81.19,65.62,0,0,0|0,0,0,0,0,0,0,0,0,55.65,42.05,18.41
&cht=bvs
&chbh=a,2
&chco=CCCCCC,FF3300
&chds=0,100,0,100'
title='Growth' />

</body>
</html>


Some things I noted when constructing this stuff ...
  • The Google Chart API seems to be picky about the order of the various parameters. I had some troubles getting the charts to work unless I output things just so
  • I can control a lot about these graphs, but I couldn't get rid of the x-axis. Yes, there is a chart type for "sparklines" (cht=ls), but that's for line graphs only
  • I am calling out the last three months spend in the table, so I want to highlight them in the charts, hence the little hiccup in the j loop
I can publish a version of my spreadsheet that puts it all together, just let me know ...

Previously ...

Technorati Tags: , , , , , , , ,


Invisible Technorati Tags: , ,
, ,

Labels: , , , , , , , ,

Monday, January 05, 2009

Third Time's the Charm? Blackberry Bold

I recently had to part ways with my Blackberry Pearl - some heartache, I suppose, but time and product innnovation march on. There is a lot to like about the Blackberry Bold - I am definitely happy to have made the change ...
      <aside> ... although my inner conspiracy theorist sees a case of planned obsolescence. Apparently, others have experienced the same problem - a sticky trackball that refuses to scroll down. Try as I may, nothing would improve the situation - and so I was compelled to upgrade. </aside>
  • Acceptable Form Factor: Yes, the Pearl was "perfect" because of it's candy-bar size - unlike the classic 7200 series, which felt strange when held up to your ear as a cell phone. Bottom line - the Bold still fits comfortably in jacket, shirt, and pants pockets. Plus, when I'm using it as a phone, I've typically got the Bluetooth headset plugged in.
  • QWERTY is Back: You can get used to the predictive typing on the Pearl's compressed, two-letters-to-a-key keyboard, but the Bold's "standard" layout has help reduce my typos considerably (alas, I have to take ownership of misspelings again).
  • So That's What WiFi is For ... It didn't register until I connected to my local Tomato to get out to the intarweb - much faster than anything I'd ever seen before, very useful.
  • Improved Screen: More real estate really helps here, and the applications are much more useful. Not just the "native" Contacts, eMail, and Calendar clients, but the web browser as well; pages just render better on this thing. I mean, it was usable before, but now it's actually quite effective.
  • More Applications: A few more games, big deal - I don't play in meetings anymore. However, there is a wide range of free, Blackberry-aware apps that are really useful - the Google suite, of course, plus Facebook and the Wall Street Journal. I've even re-downloaded Twitterberry, which has made a few updates since I last played with it (trying microblogging again ...)
      <aside> I heard of a law firm, touting the effectiveness of their corporate-supported iPhones with enthusiastic praise for the Bloomberg application. "How wonderful", says the barrister, "that we can proactively contact our clients when a story comes across the wires involving their firm". What do they call that app - iAmbulanceChaser? </aside>

  • Subtleties that Really Deliver: No, I'm not an iPhone hater - but I have discovered a number of little features - not widely talked about, but spot-on useful - that apparently are not matched in the BBKWT. Face it - the Blackberry is spooky self-aware that it's a phone, first and foremost; open up an eMail, and if a phone number appears in the body, you can click on it to initiate a call. Or start a conversation with Messenger, and click the green phone button - a pop up asks if you want to call the person you are chatting with. Nice.
  • My Desktop: I also like the fact that I can add custom folders and rearrange icons, even moving them within these new folders. The home screen gives me space for six icons, so I've got a folder for messaging apps (email, gmail, IM, SMS, and tberry), Internet apps (browser, Google apps, WSJ, Facebook), plus direct licks to calendar, contacts, and Google Maps (my fave application for the handheld).
No, it's not perfect - I don't understand why I can't create shortcuts for my favorite web sites (Bloglines, Ping, Weather Underground, etc.) in the folders - but I can see myself growing more independent from the luggable [notebook]. If I could only get a decent VNC client ...

Previously ...

Technorati Tags: , , , , , ,


Invisible Technorati Tags: , , , ,

Labels: , , , , , ,

Sunday, October 05, 2008

Excel 2007 is a BOB system (Bag'O'Bugs)

I am getting seriously aggravated with the flighty behavior of Excel 2007. Yes, I acknowledge that the spreadheets in question is quite complicated ...
  • shared VBA modules in an XLA file
  • database read/write using ADO
  • array-manipulation for ranges of cells (see this post)
  • lots of macro (VBA) logic to control look/feel of the tabs
  • code to automatically insert formulae into cells    
... and so on. However, some of the observed flightiness is specific to the UberSheet, while other weirdness happens with even the simplest files.

Obtuse Errors that Don't Break in Excel 2003: One of the big, complicated macros does a lot of formatting, so tables of data look nice when printed out. And yes, I freely admit that some chunks of my code are derived from recorded macros, and not 100% hand-crafted goodness. So, when a certain set of circumstances are in place, I get the Run-Time Error 1004: Unable to Set the LineStyle Property of the Border Class error message. A Google search turned up this little item, calling out a known bug in Excel 2002. The macro recorder generates something like this:
    With Range(Cells(iRow, iDataStartCol), Cells(iRow, iDataStopCol))
       .Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
    End With
... but if I make this minor change ...
    With Range(Cells(iRow, iDataStartCol), Cells(iRow, iDataStopCol))
       .Borders.Item(xlEdgeBottom).LineStyle = xlLineStyleNone
    End With
... the errors cease. Again - the original error is from Excel 2002, it never breaks in Excel 2003, but fails intermittently in Excel 2007. Nice.

Taking Features Away: I can be a stickler for sharp-looking presentations, and I've written about one of my favorite PowerPoint best practices - creating complex pictures or tables using a separate application like Excel or Visio, and then pasting into the PPT as a metafile. Unfortunately, Excel 2007 has broken this handy feature - by inexplicably making it unbelievably difficult to copy to the clipboard, and then ruining the metafile that gets pasted. It's not PowerPoint 2007's fault - the metafiles I cut and paste using Visio still work perfectly!

The Pause that Refreshes ... Something: When loading a file from shared folder, extra stuff happens that I can't explain
  • Lower left on the status bar - message saying Contacting \\my.domain.server for information. Press ESC to Cancel appears, and we wait a bit ...
  • Then, a message appears lower right on status bar - Opening filename.xls - with a nice little progress bar.
  • When I save the file, a dialog pops up - Saving filename.xls - with a nice little progress bar. (Why the marked difference between Load and Save status indicators?)

The Pause that Annoys
: This last one is the most frustrating (and disturbing!) for me. Among heavy Excel users, I've seen 50/50 split - some hate the ribbon, some are ambivalent - but all long time users love their keyboard shortcuts - especially the oldsters among us that remember Lotus 123 and Quattro Pro (first with tabs - rah!). For ages, Microsoft has supported the "/ menu" - a throwback to 123, and a boon to those speed demons who would eschew the rodent. For years now, I've deleted rows using /edr[enter]. I can slow that down a bit for clarity ...
  1. Edit (menu)
  2. Delete (menu option)
  3. Entire row (radio button on a dialog)
  4. (Enter key makes the row disappear)
... but when I'm in the zone, I can type /edr[enter] /edr[enter] /edr[enter] /edr[enter] and nail a number of rows very quickly. Well, ok, I used to be able to do that; unfortunately, Excel 2007 (Bob) has introduced a weird little delay between steps 2 and 3. This means that the default option on the dialog (Shift cells up) does not change to Entire row. The r keystroke is lost to the bit bucket, I hit enter - and now my spreadsheet is ruined, because I've taken a cell out (and "broken" the rows below) instead of taking the whole row out. This can be a very tricky problem, because you may not notice it right away, and it can be difficult to see the cells you've deleted (instead of rows) until the sheet is a real mess.

No idea how to get to root cause on these issues, and I'm certainly not blaming Excel for the latest Wall Street problems. Still, folks need to be mindful of very subtle differences in this "new" tool.

Previously ...

Technorati Tags: , , , ,

Invisible Technorati Tags: , , ,

Labels: , , , , ,

Saturday, September 06, 2008

Linkfest: Data Visualization

I'm a long-time fan of effective visualizations, and I've often written about the effective use of visual information when making presentations or communicating complex information. I've subscribed to my share of blogs and feeds on the topic, and have amassed quite a backlog of interesting links ... presented here for your hyperlinking enjoyment ...

Best Blogs

information aesthetics - If you appreciate the good stuff when you see it, and like to see the best (to stimulate your own thinking), this is a great resource

kottke.org - a broad range of topics, but they have posted a lot on information visualizations - this tag link will take to to the latest and greatest

General Reading

Amazing insights into the relationship between information overload and visual thinking (Chuck Frey) - Slipping some mind-mapping in the discussion of the ability of effective visualizations to help comprehension in a saturated environment.

Stunning Examples

Track Hurricanes On Stormpulse (via TechCrunch) - A great example of both historical data visualization and effective analytics interface design

Baby Name Trends (via kottke.org) - A classic web / info applet - Martin Wattenberg's Name Voyager - mau have been surpassed by NameTrends. This one is significant because it's a nice example of sparklines in production.

Other Good Stuff

Info Design Patterns (via information aesthetics) - Sophisticated collection of design patterns

Track-n-Graph (via information aesthetics) - Interesting free web service

Google Visualization API (via information aesthetics) - They're everywhere ...

Facebook Social Network Graph (via information aesthetics) - I've finally put a bit of work into Facebook - I'm beginning to understand it to be a necessary complement to LinkedIn - so this application looks interesting. Of course, I need to get more than three "friends" ...

catalog tree (via information aesthetics) - This site is loaded with a wide variety of infographics - definitely will get the creative juices going

Previously ...

Technorati Tags: , ,

Invisible Technorati Tags: , , , ,

Labels: , , , , ,

Monday, August 25, 2008

Does Excel 2007 VBA have Sneaky Hidden Issues?

Does Excel 2007 VBA have Sneaky Hidden Issues?

I've done a lot of coding over the past few years, on a number of platforms - but since I'm not a full time developer, it's typically limited to VBA, PHP, SQL, some simple web stuff. Still, I've developed some tools that people use - and need to carry forward as the underlying technology moves along. And so, as I've finally made the leap to Office 2007, I had to come to terms with yet another VBA upgrade.

I remember the move from Office 2000 to 2003 - the large number changes in Excel's VBA object model was surprising. I didn't have to rewrite as much this time around, but I did make some interesting discoveries ...

Macro Security

They certainly don't make it easy to lighten up your macro security! By default, Excel 2007 comes with macro security set to High (or harsh, or Suspicious, or something like that). For most of my stuff to work, we need security set to Low - friendly, trusting, etc. The step-by-step process is comical - they are really trying to hide this stuff ...

  • From your Excel spreadsheet, click on the Office Button - the nice, round, logo'd guy in the upper left corner
  • Click on the Excel Options button (at the bottom of the dialog that pops up)
  • In the left-hand column, click on Trust Center
  • Click on the Trust Center Settings button
  • In the left-hand column, click on Macro Settings
  • In the Macro Settings sections, select the radio button for Enable all macros ...
  • Exit the workbook, then open it up again - the spreadsheet should process just fine

Workbook_Open()

This is a strange problem - the Workbook_Open() event just does not want to fire. This always worked perfectly for me in Excel 2003, but not in the newest version. I'm not too wrong here - this has previously been seen "in the wild" (here, here, here, and here ... Google your problems away ...)

The Fix: Copy the contents of the Workbook_Open() event into a new Public subroutine, called Auto_Open. All will work as you expect it.

Confusion: this one frustrates me to no end - I haven't found a reasonable explanation of why this happens - but this afternoon, I saw the Workbook_Open() event work as expected in one spreadsheet, yet fail in another. There are some tantalizing clues in this post (something to do with ambiguous names?), or maybe this post (objects copied from one project to another having mysterious interactions?)

VBA cell operations slow down

If you use a VBA procedure to write values to a range, most people would probably create a loop and write the values one cell at a time. This is not the fastest way to do things, and for Very Large Ranges, you will see some performance degradation. (Walkenbach, of course, has the best write up here). Well, I thought my code was reasonable, but my slow-ish code got much worse under Excel 2007. Looping through a range of cells actually slowed down as you progress through bigger and bigger ranges - I put some breakpoint messages in there, and it was sad to see, I was you will be forced to rewrite these sections as outlined in Walkenbach's method - note that his post is many years old, and this method works in Excel 2003 as well. After I did my rewrites, because the slowdown was brutal, and goodness! My routines are an Order of Magnitude faster! I felt the need to drop a quick note to the users, letting them know that the spreadsheets still worked - the instantaneous response time was not indicative of skipping code.

Hmmm: This behavior, combined with the previous problems with Workbook_Open(), plus a few 1004 bugs (mysterious code that never seems to indicate what the real problem is ...) makes me think there are subtle memory management problems in this version of Excel VBA. Nothing that makes me swear off VBA forever - you just need to be smart about your VBA projects. Excel is for light-duty programming. If you think your project is getting unwieldy, consider another platform - don't let Excel be the hammer for every nail that you see.

AutoFilter

Columns that allowed "selectivity" via the AutoFilter command act differently when brought up under Excel 2007. Not necessarily an issue - unless your macros try to manipulate these things programmatically. I do this a lot, but I found I've been overcomplicating things ...

Before

    ' Clear AutoFilter settings
    wst.Activate
    With ActiveSheet
       If .AutoFilterMode Then
          For i = 1 To .AutoFilter.Filters.Count
             Selection.AutoFilter Field:=i, Criteria1:="="
             Selection.AutoFilter Field:=i, Criteria2:="="
          Next i
       End If
    End With

After

    If ActiveSheet.AutoFilterMode Then Selection.AutoFilter ' take off autofilter
    Selection.AutoFilter ' put it back on again

Ribbon vs. Menu

The new Ribbon approach for commands across the top of your documents means the Menu meme is dead. After you get used to finding your way, it's not really a big problem - unless you have coded custom menus for your macros. They won't entirely disappear - they get shuffled off to the Add-Ins tab - just not as convenient.

All in all ...

Am I surprised by the glitches? Not really, but I am pleasantly surprised by the relatively small number of problems my past automation efforts experienced. When they moved from Office 2000 to Office 2003, I had many more problems - Microsoft made some basic changes to some of the Excel objects, and the fixes were not backward compatible. This time, however, folks can use either Excel 2003 or Excel 2007 to use most of the stuff I've created for them - but seriously, shouldn't you get around to converting already? You are running out of excuses.

Guaranteed To Work Under Excel 2007 (?!?!)

What, are you kidding me? I tested my spreadsheets a lot, but it won't surprise me when someone comes up with a use case / scenario that I didn't check for. Just tell your end users to continue with that terrific patience they have shown over the years, and to let you know if/when you see things that don't look right. Hint: encourage them to call you over to their desk when issues occur, so you can take a look at the screen. Screen prints cut and paste into emails, or lengthy explanations over the phone just don't cut it.

Previously ...

Technorati Tags: , , , ,

Invisible Technorati Tags: , , , ,

Labels: , , , , ,