Archive | Books RSS for this section

On Knowledge-Based Representations for Actionable Data …

I bumped into a professional acquaintance last week. After describing briefly a presentation I was about to give, he offered to broker introductions to others who might have an interest in the work I’ve been doing. To initiate the introductions, I crafted a brief description of what I’ve been up to for the past 5 years in this area. I’ve also decided to share it here as follows: 

As always, [name deleted], I enjoyed our conversation at the recent AGU meeting in Toronto. Below, I’ve tried to provide some context for the work I’ve been doing in the area of knowledge representations over the past few years. I’m deeply interested in any introductions you might be able to broker with others at York who might have an interest in applications of the same.

Since 2004, I’ve been interested in expressive representations of data. My investigations started with a representation of geophysical data in the eXtensible Markup Language (XML). Although this was successful, use of the approach underlined the importance of metadata (data about data) as an oversight. To address this oversight, a subsequent effort introduced a relationship-centric representation via the Resource Description Format (RDF). RDF, by the way, forms the underpinnings of the next-generation Web – variously known as the Semantic Web, Web 3.0, etc. In addition to taking care of issues around metadata, use of RDF paved the way for increasingly expressive representations of the same geophysical data. For example, to represent features in and of the geophysical data, an RDF-based scheme for annotation was introduced using XML Pointer Language (XPointer). Somewhere around this point in my research, I placed all of this into a framework.

A data-centric framework for knowledge representation.

A data-centric framework for knowledge representation.

 In addition to applying my Semantic Framework to use cases in Internet Protocol (IP) networking, I’ve continued to tease out increasingly expressive representations of data. Most recently, these representations have been articulated in RDFS – i.e., RDF Schema. And although I have not reached the final objective of an ontological representation in the Web Ontology Language (OWL), I am indeed progressing in this direction. (Whereas schemas capture the vocabulary of an application domain in geophysics or IT, for example, ontologies allow for knowledge-centric conceptualizations of the same.)  

From niche areas of geophysics to IP networking, the Semantic Framework is broadly applicable. As a workflow for systematically enhancing the expressivity of data, the Framework is based on open standards emerging largely from the World Wide Web Consortium (W3C). Because there is significant interest in this next-generation Web from numerous parties and angles, implementation platforms allow for increasingly expressive representations of data today. In making data actionable, the ultimate value of the Semantic Framework is in providing a means for integrating data from seemingly incongruous disciplines. For example, such representations are actually responsible for providing new results – derived by querying the representation through a ‘semantified’ version of the Structured Query Language (SQL) known as SPARQL. 

I’ve spoken formally and informally about this research to audiences in the sciences, IT, and elsewhere. With York co-authors spanning academic and non-academic staff, I’ve also published four refereed journal papers on aspects of the Framework, and have an invited book chapter currently under review – interestingly, this chapter has been contributed to a book focusing on data management in the Semantic Web. Of course, I’d be pleased to share any of my publications and discuss aspects of this work with those finding it of interest.

With thanks in advance for any connections you’re able to facilitate, Ian. 

If anything comes of this, I’m sure I’ll write about it here – eventually!

In the meantime, feedback is welcome.

Book Review: Building Telephony Systems with Asterisk

Asterisk is a Open Source framework for building feature/functionality-rich telephony solutions. And although it’s able to compete solidly with offerings from commercial providers, the establishment of an Asterisk deployment is involved. Thus D. Gomillion and B. Dempster’s book Building Telephony Systems with Asterisk will be useful to anyone intending to delve into Asterisk. The book is comprised of nine chapters whose content can be summarized as follows:
  • In providing an introduction, Chapter 1 enumerates what Asterisk is and isn’t. Asterisk is a PBX plus IVR, voicemail and VoIP system. Asterisk is not an off-the-shelf phone system, SIP proxy or multi-platform solution. This enumeration leads to a welcome discussion on Asterisk’s fit for your needs. The authors quantify this fit in terms of flexibility vs. ease-of use, configuration-management UI, TCO and ROI. Although the latter to topics are covered briefly, the authors’ coverage will certainly serve to stimulate the right kinds of discussions.
  • Chapter 2 begins by enumerating the ways in which the Asterisk solution might connect to the PSTN. Next, in discussing the four types of terminal equipment (hard phones, soft phone, communications devices and PBXs), the major protocols supported by Asterisk are revealed – namely H.323, SIP and IAX. Whereas H.323 is well known to many of those who’ve delved in videoconferencing, and SIP to anyone who’s done any reading on VoIP, IAX is an interesting addition specific to Asterisk. The Inter-Asterisk eXchange (IAX) protocol attempts to address limitations inherent in H.323 and SIP relating to, e.g., NAT support, configurability, call trunking, sharing information amongst Asterisk servers plus codec support. IAX is not a standard and device support is somewhat limited but on the rise. As of this book’s writing, September 2005, IAX2 had deprecated IAX – and that still appears to be the case. Guidelines for device choice, compatibility with Asterisk, sound quality analysis and usability all receive attention in this chapter. The chapter closes with a useful discussion on the choice of extension length. Highly noteworthy, and already provided as a link above, is the wiki.
  • The installation of Asterisk is the focus of Chapter 3. After reviewing the required prerequisites, none of which are especially obscure, attention shifts to the Asterisk-specific components. In turn Zaptel (device drivers), libpri (PRI libraries) and Asterisk are installed from source. (I expect packaged versions of these components are now available for various Linux distributions.) Asterisk includes a plethora of configuration files, and these are given an overview in this chapter. And although it’s not mentioned, disciplined use of a revision control system like RCS is strongly advised. The chapter concludes with sections on running Asterisk interacting with its CLI to ensure correct operation, start/stop the service and so on.
  • With Asterisk installed, attention shifts to interface configuration in Chapter 4. In working through line and terminal configurations for Zaptel interfaces, one is humbled by the edifice that is the pre-IP world of voice. Our introduction to the intersection between the pre-IP and VoIP universes is completed by consideration of SIP and IAX configuration. Again humbling, the authors’ treatment affords us an appreciation of the application of acknowledged standards like SIP (which is itself based on RTP) through implementation. The final few sections of the chapter further emphasize the convergence capabilities of VoIP platforms by exposing us to voicemail, music-on-hold, message queues and conference rooms.
  • Through the creation of a dialplan, Asterisk’s functionalities and features can be customized for use. Dialplans are illustrated in Chapter 5 by establishing contexts, incoming/outgoing-call extensions, call queues, call parking, direct inward dialing, voicemail, automated phone directory and conference rooms. Customization is involved, and it is in chapters such as this one that the authors deliver significant value in their ability to move us swiftly towards a dialplan solution. Also evident from this chapter, and to paraphrase the authors, is Asterisk’s power and flexibility as a feature/functionality-rich telephony solution.
  • Under Asterisk, calls are tracked with Call Detail Records (CDRs). Data pertaining to each call can be logged locally to a flat file or to a database running on (preferably) a remote server. The database-oriented approach for managing CDR data is more flexible and powerful, even though it takes more effort to set up, as this solution is based on databases such as PostgreSQL or MySQL. CDR comprises the least-invasive approach for quality assurance. The remainder of the content in Chapter 6 focuses on more-invasive approaches such as monitoring and recording calls.
  • Based only on the context provided by this review, it is likely apparent that an Asterisk deployment requires considerable effort. Thus in Chapter 7, the authors introduce us to the turnkey solution known as Asterisk@Home. Asterisk@Home favors convenience at the expense of flexibility – e.g., the flavor of Linux (CentOS) as well as support components such as the database (MySQL) are predetermined. The Asterisk Management Portal (AMP), a key addition in Asterisk@Home, Webifies access to a number of user and administrator features/functionalities – voicemail, CRM, Flash Operator Panel (FOP, a real-time activity monitor), MeetMe control plus AMP (portal and server Asterisk@Home management) itself. Before completing the chapter with an introduction to the powerful SugarCRM component bundled with Asterisk@Home, the authors detail required steps to complete the deployment of Asterisk@Home for a simple use case. It’s chapters like this, that allow us to all-at-once appreciate the potential for the Asterisk platform. (Packt has recently released a book on AsteriskNOW. AsteriskNOW is the new name for Asterisk@Home.)
  • The SOHO, small business and hosted PBX are the three case studies that collectively comprise Chapter 8. Sequentially, the authors present the case-study scenario, some discussion, Asterisk configuration specifics, and conclusions. In taking this approach, the authors make clear the application of Asterisk to real-world scenarios of increasing complexity. In the SOHO case, the SIP shared object ( is not loaded as this functionality is not required. This is but one example of how the authors attempt to convey best practices in the deployment of a production solution based on Asterisk.
  • Maintenance and security are considered in the final chapter of the book (Chapter 9). The chapter begins with a useful discussion on automating backups and system maintenance plus time synchronization. Those familiar with systems administration can focus on the Asterisk-specific pieces that will require their attention. This focus naturally leads to a discussion of recovering the Asterisk deployment in the event of a disaster. Security gets well-deserved consideration in this chapter from both the server and network perspective. For example, there is very useful and interesting content on securing the protocols used by Asterisk with a firewall. Before closing the chapter by identifying both the Open Source and commercial support offerings for Asterisk, the scalability of Asterisk is given attention.

This book was first published in September 2005 and is based on version 1.2.1 of Asterisk. As of this writing, Asterisk’s production version is 1.4.x, and the version 1.6 beta release is also available (see for more). Even though the book is somewhat dated, it remains useful in acquainting readers with Asterisk, and I have no reservations in strongly recommending it.
Disclaimer: The author was kindly provided with a copy of this book for review by the publisher.

The MFA is the New MBA: Illustrations by Steve Jobs and Apple

In March 2005, Dan Pink asserted “… the MFA is the new MBA”.

… businesses are realizing that the only way to differentiate their goods and services in today’s overstocked marketplace is to make their offerings physically beautiful and emotionally compelling. Thus the high-concept abilities of an artist are often more valuable than the easily replicated L-Directed skills of an entry-level business graduate.

I can’t think of a better illustration than Steve Jobs’ story of how the Mac became the first computer with beautiful typography.
And of course, true to form, Jobs illustrated Pink’s assertion more than two decades ago.
And since 1984, Jobs and Apple have made the illustration even more compelling with the current generation of Macs, the iPod, and most recently the iPhone.
Note-to-self: Look into MFA programs!

Aside: I’ve blogged previously about Pink’s book and its implications for displacing knowledge workers.

Arthur C. Clarke 1917-2008: A 2001 Reverie for Me

I suppose my story isn’t unlike many of my generation.

I would’ve been about six years old. My Dad took me to see 2001: A Space Odyssey.
Back in those days (1968), growing up in Merton Park, UK, seeing a movie at a theatre was a big deal.
And of course, 2001: A Space Odyssey wasn’t just any movie. It changed the game – for the industry and for me personally. 
First off, I clearly owe a debt of gratitude to my Dad for taking me. For by this simple act, by today’s standards anyway, I experienced a compelling tour-de-force of a movie that would have a lifelong impact.
Back then, it was all about the sights and sounds – the sun rising and space stations spinning to music.
Such was my introduction to classical music and the big-screen genius of Stanley Kubrick.
In time, of course, I would appreciate much more. And although I never did realize my childhood fantasy of becoming an astronaut ;-), I suppose that the AI typified by sentient machines such as 2001‘s Hal has ultimately influenced my ongoing interests in knowledge representation.
What triggered this reverie?
Yesterday’s passing of Arthur C. Clarke.
Given the importance of such early impressions, and in addition to the gratitude I owe my Dad, I must also thank Clarke and Kubrick.
No doubt it’s time to dust off the book and DVD versions of 2001 and enjoy a little more nostalgia.

Book Review: Google Web Toolkit

Automagically convert Java to JavaScript. 

Thus begins the seemingly curious proposition of the Google Web Toolkit (GWT). 
Of course, it’s about a lot more than that. 
For one thing, GWT addresses a key gap in the rapid delivery of the Asynchronous JavaScript and XML (AJAX) based applications that are driving eyeballs and mindshare to Google’s Web site.
By the time you’ve read Prabhakar Chaganti’s book on the GWT, you’ll be significantly wiser on at least two fronts. You’ll know that:
  1. There’s a broad-and-deep software engineering ecosystem around the GWT that is fueling progress and delivering highly significant results. 
  2. Chaganti is an excellent guide with the ability to negotiate this ecosystem and drive you towards tangible outcomes.

Using a task-oriented approach, the book proceeds as follows:

  • Chapter 1 rapidly places the GWT in context, and gets you started by downloading, installing and working with the samples provided. Available for Apple Mac OS X, Linux and Microsoft Windows, the GWT only requires the Java SDK as an installation prerequisite. The GWT is made available via the Apache Open Source license; this allows for the development of commercial and Open Source applications. 
  • With the Java SDK, the GWT and the Eclipse IDE, the developer has a well-integrated and powerful platform on which to develop applications. After illustrating the development of the obligatory “Hello World!” application at the outset of Chapter 2, attention shifts rapidly to use of Eclipse. Google’s Web-wired DNA is evident in everything they do, and the GWT is no exception. The GWT leverages the Java SDK and Eclipse to the fullest, while closing the gaps in developing AJAX-based applications in a very organized way. By the end of this Chapter, the reader knows how to develop a simple application with both client and server-side components and execute the same in both hosted (i.e., non-deployed) and Web hosted (i.e., executing within a Web-hosted Tomcat servlet container). Made explicit in this latter deployment is GWT’s ability to support a variety of Web browsers – i.e., Apple Safari, Microsoft Internet Explorer, Mozilla Firefox and Opera.
  • The creation of services is the focus of Chapter 3. To quote from this Chapter, and in the GWT context, service “… refers to the code that the client invokes on the server side in order to access the functionality provided by the server.” The author is quick to point out that this is a separate and distinct notion from that used in the context of Web services. True to its billing, this Chapter works the reader through the creation of a service definition interface (a client/server contract that defines the service’s functionality and establishes rules of usage) and service implementation. Particularly important in this Chapter is the creation of an asynchronous service definition interface, as this facilitates remote calls in the background to the server, and capitalizes on the AJAX support in the GWT. With definition and implementation taken care of, the remainder of the chapter focuses on use (i.e., consumption of the service by a client). Conceptual illustrations compliment screenshots to effectively convey this content. 
  • Whereas the previous chapter delivered a prime number service, Chapter 4 introduces no less than six services that really showcase the capabilities of this application paradigm. With ample explanation and illustration live searches, password strength checks, auto form fills, sorting tables, dynamically generated lists and Flickr-style editable labels are each considered. Not only does one recognize these as design patterns that are already in everyday use (e.g., Flickr, Google Docs, Maps and Search, etc.), one also realizes their potential for re-use in one’s own projects. 
  • Chapter 5 introduces five interfaces that are more complex than those presented in the previous chapter. These interfaces are pageable tables, editable tree nodes, log spy (the GWT spin on the UNIX tail utility), sticky notes and jigsaw puzzle. To reiterate, one recognizes these as design patterns already in everyday use, and the potential for re-usability.
  • Browser effects are the subject of Chapter 6. Here the author introduces the JavaScript Native Interface (JSNI) as a vehicle that allows JavaScript libraries (e.g., Moo.Fx and Rico) to be accessed directly from Java classes. A wrapper-based approach, independent of JSNI, is also introduced to leverage the effects. Although compelling effects can be achieved, cautionary words are included in this Chapter, as the impact may be diminished by browser-level incompatibilities.
  • By the end of Chapter 7, impressive calendar and weather widgets have been created, and readied for re-use. 
  • In Chapter 8, JUnit is introduced in the context of unit testing. Standalone tests plus test suites are given consideration; this includes tests involving asynchronous services.  
  • Although this is only the second book I’ve ever seen from Packt Publishing (the first I’ve reviewed elsewhere), I’ve become accustomed to expecting bonus content towards the end of the book. Chapter 9, which addresses internationalization and XML support, falls into this bonus category. Of course, it’s no surprise that Google expertise on internationalizations ranks high, and this is evident in GWT support for the same. The author provides an hors d’oeuvre of the possibilities. XML support is of particular personal interest, so I was delighted by the degree of support for creating and parsing XML documents. I share the author’s sentiments with respect to XML support wholeheartedly: I too hope that future releases of the GWT will provide broader and deeper support for XML.  
  • In the final chapter (Chapter 10), attention is given to increasingly automated methods for deploying GWT-based applications. Starting with a manual deployment in Tomcat, then an automated deployment with Ant, and finally an Ant-based deployment from within Eclipse. 
  • A single appendix details how to access and execute the examples provided throughout the book.
With the possible exception of a concluding chapter, page, paragraph or even sentence(!), to provide some sense of closure to the book, I am at a loss to report any omissions, oversights or errors of any consequence. And although it will have to wait for a follow-on contribution of some kind, additional discussion might be given to topics such as Google Gears or even Google Android.
Even though the book I reviewed was a complimentary copy provided by the publisher, I would happily pay for my own copy, and heartily recommend this book to others having interests in the GWT. 
By the way, Packt has an articulated scheme when it comes to Open Source projects:

Packt Open Source Project Royalty Scheme Packt believes in Open Source. When we sell a book written on an Open Source project, we pay a royalty directly to that project. As a result of purchasing one of our Open Source books, Packt will have given some of the money received to the Open Source project.In the long term, we see ourselves and yourselves, as customers and readers of our books, as part of the Open Source ecosystem, providing sustainable revenue for the projects we publish on. Our aim at Packt is to establish publishing royalties as an essential part of the service and support business model that sustains Open Source. 

I cannot suggest that Packt is unique in this approach. Regardless, their approach is certainly welcome.

Injury Time: Remembrance of Things Just Passed …

What happened?

I strained my lower back. Badly. It was the result of two careless acts: 
  1. Lifting a heavy prop awkwardly at our annual Mardi Gras event. I felt a twinge of pain, and suspect that this predisposed my back towards injury.
  2. Attempting to leave a leg-press machine before completely releasing the 220 lbs of weight that I, back included, was still supporting. 
The pivotal incident (involving the leg-press machine) happened last Wednesday at the University’s athletic complex. Of course, I finished my hamstring curls and rowed for 20 minutes before calling it a day. Doh! 
And yes, I knew then that I was in deep trouble. 
Contrary to my spouse’s advice, I hauled my sorry self off to the University the next day, because I had things that must be done. Doh! With a notable, curvaceous list (upwards to the left), and walking speed 10-20% my normal, I can honestly state that I got a deeper appreciation of what it means to be differently abled. People rushing past me, icy walkways, plus doors stiff to open, were all-of-a-sudden on my radar. 
I barely made it through that Thursday.
I started my formal convalescence (aka. sensible acknowledgement of my predicament) on Friday morning. 

What did I do?
I convalesced. At this point, I had no choice! I took muscle relaxant and installed myself upon a heating pad. Save for attending to primal bodily functions, and attempting to do a few exercises I learned in physio that last time I strained my lower back, I remained in a sub-horizontal state through the entire weekend. I had to pass on a friend’s birthday party and a ski day 😦  
But, I:

I fretted. About work – not being there, work piling up, etc. And about my exercise routine – that picked me up, and then knocked me down! I communed with my family – when they weren’t making up for my shortfalls – and with our pets (three cats and an obnoxiously vocal husky).

What did I learn?
How good people are to me. From walking the dog to driving Miss Daisy (our teenage princess to/from dance/work/friends/etc.) to countless other things I normally do, my family filled the gaps and still had some energy left over for me in my supine state. When I did hobble into the office, I received all kinds of moral and physical support from my co-workers.
In addition to valuing my health, which I’ve been consistently better at for about the past seven months, I need to be careful – especially during acts of weekend heroism (aka. attempts at being handy) and/or exercise (technique and form do matter – ouch!).
I need to allocate more time for reading. All kinds of reading. Because I really don’t watch TV, except for NFL football, there’s nothing I can do there. Reducing the amount of time I spend handling email is about the only place I believe I can claw back from. In the 4-Hour Work Week, Timothy Ferriss presents some provocative suggestions on this front; I’d better re-read that! 
The BlackBerry is a wonderfully powerful platform that suits me when I am highly mobile, but also when I’m highly immobile – like flat on my back, literally! It’s also the only device my back can actually handle me moving around with at the moment – my laptop in an over-the-shoulder case is a non-starter for me in my current condition.

Why did I share this?
So that I have something to refer back to (sorry), when I’m getting careless!  

Book Review: BlackBerry Enterprise Server for Microsoft Exchange

Packt Publishing claims its

… unique business model allows [them] to bring [us] more focused information, giving [us] more of what [we] need to know, and less of what [we] don’t.  

If Desai & Renfroe’s BlackBerry Enterprise Server for Microsoft Exchange: Installation and Administration is any indication, Packt actually lives up to its claim. In just 172 pages, Desai & Renfroe achieve an enviable balance between being concise and being comprehensive. This statement applies as much to what the authors have written, as to their choice of what to illustrate. Specifically:

  • Chapter 1 places the BlackBerry Enterprise Server (BES) in the broader context of Research In Motion’s (RIM) BlackBerry universe. In addition to itemizing relevant components, an introduction to the BlackBerry’s push model, security and Internet connectivity is provided. 
  • Though brief, Chapter 2 runs deep in addressing BES architecture and implementation planning. For example, we learn that the BES employs a modular architecture comprising over a dozen components. After succinctly enumerating the components and their function, BES requirements and prerequisites are identified. In addition to hardware and software requirements, recommendations are made with respect to networking your BES (e.g., firewall and/or proxy considerations) and providing it with a database. Easy to gloss over on first read are thoughtful recommendations on sizing the BES (including pointers to resources from RIM) and the database for the anticipated user load. 
  • Before BES components can be installed and enabled, the messaging environment and database server need to be configured. This is the subject of Chapter 3. Both local and remote database instances receive attention. Because each step is well illustrated, the book delivers on its intended purpose of serving as a solution guide.
  • The installation of the BES is a multistep process enabled via a wizard. As in the previous chapter, in Chapter 4 the authors guide the reader through this process making appropriate use of illustrations. They interject appropriate commentary, and are clear on out-of-scope topics. The early emphasis on delineating BES architecture (Chapter 1) is realized as the authors transition the reader through the BES installation. 
  • Of course, installing the BES is just the beginning, and therefore the next few chapters focus on the additional tasks required to operationally deliver this service to its users. After introducing the six permissible levels of administrative role on the BES, attention shifts in Chapter 5 to the matter of provisioning users, groups and devices. And with respect to devices, wireline and wireless options for provisioning are given consideration. 
  • The BES ships with over 200 policies that can be applied variously to users, groups and devices. Also covered in Chapter 6 is the topic of provisioning software from RIM and third parties. Of particular value is the authors’ example of a software bundle targeted to a particular BlackBerry model. The ability to administer users, groups and devices with respect to policies (including software), from a single point of control (i.e., the BES server), speaks volumes to the appeal and value that this offering can deliver to corporate enterprise environments. This Chapter’s treatment of policies and software provisioning serves as an excellent introduction to topics BES administrators will return to repeatedly, and likely with increasing degrees of sophistication. 
  • Unlike many of the other chapters, Chapter 7 provides only an overview of multitiered administration – i.e., properties and tasks relating to users, groups, (BlackBerry) domains and servers. This enumeration of possibilities, presented in context, works effectively. 
  • A deeper discussion on security is the focus of the first part of the final chapter (Chapter 8). Encryption and authorization, both of which receive detailed consideration, amplify the value of the BES and its context in the overall BlackBerry universe for corporate enterprises. An unanticipated treatment of disaster recovery closes Chapter 8. In sufficient detail to enable a solution, the authors discuss in turn the measures needed to ensure that both the server (the BES) and its data (housed by the BES’s local or remote database) are readied for a disaster situation. 


Although Desai and Renfroe’s BES book unapologetically targets the Microsoft Exchange environment, its value is not limited here. Those working in other environments, and those interested in learning more about BES’s place in the BlackBerry universe, will almost certainly derive value from this book. Because the book is clear and concise, yet surprisingly complete and well-organized, it is likely to be well-thumbed by BES administrators of varying expertise.  

With the possible exception of a concluding chapter, page, paragraph or even sentence(!), to provide some sense of closure to the book, I am at a loss to report any omissions, oversights or errors. And although they might be better suited for a follow-on contribution of some kind, additional discussion might be given to topics such as performance and scalability (e.g., of local versus remote databases), the mapping of BlackBerry domains to organizational units, and/or improved degrees of DR.

Even though the book I reviewed was a complimentary copy provided by the publisher, I would happily pay for my own copy, and heartily recommend this book to others having interest in BES installation and administration.