Time For Water: The bot edition.

Back in 2013, I built a small site that took some data that the Water and Sewage Authority released (@wasatnt on Twitter) and remixed it, to make it easier to consume.

Recently, @wasatnt released a document detailing the current distribution schedule in this dry season, 2017.  It’s a PDF doc, listing the data for all regions in Trinidad and Tobago. Hundreds of rows, I discovered.

It seemed  like a good idea to build a simple bot to provide information about service at a particular area. So, I did. Listed below are some  of the steps it took from prepping the data to working prototype.

  • Get the data
    • It’s a PDF, so this means downloading and then converting.
    • I converted using https://smallpdf.com/pdf-to-excel
  • Clean the data
    • Small PDF gave me an excel workbook with 15 worksheets
    • All the worksheets contained merged cells, so I un-merged them.
    • Delete unnecessary columns
    • Then, I duplicated the row data so that every row could stand on it’s own. That’s important for the look-ups I’ll do later on.
  • Convert the data
  • Finally, I was able to build a bot, Time For Water, that would respond to messages with look-ups of the data in the original schedule.

Forum on the Internet of Things: Smarter Living in the Caribbean

On April 24, I had the opportunity to be a panelist, presenting a project I built for my MSc final submission.

This was at the ITU’s Forum on IoT, held at the Trinidad and Tobago Parliament building.

My solution that demonstrated the use of RFID for collecting traffic data and using cloud computing to process and communicate that data.

While preparing the presentation I was asked to explore what elements may need to exist to create an “An Enabling Ecosystem for IoT use and monetisation”.

It was such a good opportunity to explore this idea. In researching that very thing, I found, “Understanding business ecosystem using a 6C framework in Internet-of-Things-based sectors”. A great paper that helped me contextualize the work I did, along with the challenges and opportunities that came after.

The actual presentation can be found here.

Beyond​ just presenting, the forum proved a good place to meet up real practitioners. From Fasove and their boat monitoring device, to Ancel Bhagwandeen and the work he’s done with restoring automobile batteries, to the recently-graduated University students making waves with company after company.

Some good connections were made and I look forward to following up with them soon.

Presenting on Cloud Native

I presented on the imperative of designing specifically for the Cloud at the 13th edition of CaribNog.

My central treatise was that entities are moving away from simply Cloud-enabling existing solutions and having the Cloud as a backup. Analysts, architects and developers are strongly moving towards building solutions that are native to the Cloud.

Here’s the presentation.

 

Who is Nurse Carter?

I was on vacation over the 2016 Christmas period. At the office, we had recently concluded our Power Hour series for the year with an episode describing how we built a virtual assistant that made parliamentary recordings discoverable via Facebook messenger. 

We called that Hansard Speaks, and you can check out that episode here

So, I’m home thinking, ‘what next?’ when we had a new beginning of our own: my baby girl was born! Apart from the explosion of joy with her arrival, I was home for a month. 

Mind you: I understand that paternity leave is officially 3 days in Trinidad & Tobago. My company, Teleios Systems gives us a week. So, my wife and I agreed that I’d augment that with 3 weeks of vacation. In the end, we’re very glad we did. 

Anyway, being home with baby, witnessing the pains, frustrations & gladness of interacting with our public health systems, gave me the idea for my next virtual assistant: Nurse Carter

Nurse Carter is a virtual assistant that you can ask questions (kind of) and it will tell you when & where you can get access to various kinds of health services.
A few years ago, I used the data located on the Trinidad and Tobago Ministry of Health‘s web pages as the base for a mobile app. I called the app, TT Health Facilities and I used it to list all the health facilities and the services they provided based on their schedule. So, I knew there was a place to retrieve this data from.

As we did when we built Hansard Speaks, I used the Microsoft Bot Framework, this time using NodeJS rather than C#. This one took a while to put together because crying baby trumps messy JavaScript. But it’s finally done, and you can access it directly on  the web or Facebook.

This was another opportunity to get into the technology around Lucene and that type of search experience, everything else was mostly hacking around in Node. I guess I’m sort of working my way up towards more natural language interactions. So maybe next time I’ll use Microsoft’s Cognitive Services’ Language Understanding Intelligent Service.

Why I dig chatbots.

Chatbots are the new app.

Yes, it’s still a walled garden. Unless you own the messaging client, you’re at the mercy of the owners. Those owners being the bigger client providers whose messaging market you want to access. These days, that means Messenger (Facebook), Slack, Skype or WhatsApp.

Still, it’s a way in.

I’m working on another one. There’s largely no client, yet. I just have few ideas about how it could be profitable. But I really dig how easy it is, relatively speaking, to give an idea legs (or a mouth) so to speak.

I’ve been using Microsoft’s Bot Framework and together with their documentation, the process has been good. That they let you “write once, run anywhere” in a bot context is very savvy. The framework lets you deploy bots via their platform and have access to a laundry list of messaging channels, including:

  1. Text/sms
  2. Office 365 mail
  3. Skype (auto-configured)
  4. Slack
  5. GroupMe
  6. Telegram
  7. Facebook Messenger
  8. Kik
  9. Web (auto-configured, embeddable)
  10. Direct Line (API to host your bot in your app)

OK, let me head back to my next bot.

(the) Hansard Speaks!

We built a bot at Teleios.

Well, we’ve built bots before. In fact, one time, we built this amazing one that was over SMS – part of a game called MeggieWars. It was hilarious and fun. Personally, I’ve been a fan of using messenger platforms to do fancy stuff for a long time. Way back in 2005 my friend, Kevin Weekes and I attempted to use the MSN Messenger api to do automatic translation between IMs using the babelfish web service. We got as far as the semi-finals for the Imagine Cup that year.

378849_10150330509175060_580830935_n
Irwin and Kevin, Imagine Cup Participants, circa 2005.

Anyway, we built a bot in our last Teleios Power Hour episode for 2016 – Hansard Speaks. I had been thinking about doing something like Hansard Speaks for a least a year. It lets you search parliamentary proceedings (thus the name Hansard) via Facebook Messenger, thus the Speaks. Any text you type, it will search and then it gives you either a YouTube link of the moment it was spoken in the parliament or a link to the PDF containing the passage.

Right now, it works with a snapshot of the Trinidad and Tobago Parliament data from YouTube and their website.

In terms of the tech we used, we put together Azure Media Services – for the media ingestions – with a Lucene Search in ASP .Net  and did the bot stuff using Microsoft Bot Framework.

As the world goes crazy for bots, I hope to build a few more soon.

Teaching Cloud Technologies (2016/2017)

We just concluded another run of the Cloud Technologies course at the University of the West Indies. This course is part of the MSc Computer Science program.

As lecturer, I had to come up with the course outline as well as the content. In so doing, I get the opportunity to refresh what we talk about as well as how we approach assignments.

This course comprised of ten modules:

  1. Intro to Cloud Technologies
  2. Cloud computing infrastructure
  3. Virtualization
  4. Big data
  5. Cloud development patterns
  6. Cloud resource management
  7. IaaS Automation
  8. Microservices
  9. IoT
  10. Cloud for Research

Though our primary cloud platform is Microsoft Azure, students are free during assignments and project submission to use other cloud providers.

One of the assignments involves virtual machine scale sets and containers. The draught goes like this:

Z. Zanko Systems provide sales processing systems for large commercial banks.

They receive more than 5 million JSON requests per hour (revised to 300,000).
Each request must be stored in permanent storage. The format of the request is:
“{“TransactionID”:”1″,”UserId”:”A1″,”SellerID”:”S1″,”Product Name”:”Financial Trap”,”Sale Price”:1000000,”Transaction Date”:” “}”

You have been hired as a System Developer by Zanko. You have access to VMs whose capacity is equal to that of A1 VMs in Azure IaaS or Containers of similar capacity.

Develop a mechanism to generate the requests your system faces.

Design and implement a solution using a container-based approach or a
virtual machine-based one to process 5 million requests in an hour.
For your receivers introduce a failure rate.
Store the occurrence of failures.
Justify how you chose to store and monitor failures.

Though most students can build this out using azure, one enterprising student chose to use AWS and reading his submission was a nice view of getting this done using Amazon’s resources vs Azure.

This year, Microsoft put a halt to the Azure for Education Academic grant, but did have a number of other ways for students to get into cloud, including DreamSpark and other offers.

The project component this year changed a bit, too. In the two years prior, we asked students to build working cloud services themselves. This year, we asked them to propose a cloud service that featured understanding of:

  • Cloud service definition
  • Cloud service models
  • Cloud delivery models
  • Cloud for research
  • Cloud development with a regional focus

We saw some excellent solutions that we hope to hear more about in the future.