Monday, September 17, 2018

Create chatbots from Google Calendar using ProBotDev Event Chatbot

I've been working on Sarah Shopper, the Lazada price tracker, for a while. Sarah Shopper is a shopping assistant chatbot that periodically checks for price changes in popular online marketplaces such as Lazada, 11street and even IKEA. It's especially useful when you're willing to wait for a better price.

Sarah Shopper, the Lazada price tracker
Sarah Shopper, the Lazada price tracker

Sarah Shopper was modestly successful—9,000+ users in 9 months, mostly from the Google Assistant directory. However, learning from running another free-to-use consumer product (Homework Hero, the student tutoring platform in Indonesia), I know it's going to be a long and expensive journey.

Just a few weeks before graduating from Selangor Accelerator Programme 2018 (SAP2018), I came to the realization that it actually makes more sense to help other businesses to make chatbots, and that's how our SaaS came to existence.

ProBotDev Event Chatbot
ProBotDev Event Chatbot

ProBotDev Event Chatbot allows event organizers to create chatbots from Google Calendar. It is higher level than ManyChat or Chatfuel, as you don't even need to design the conversation flow.

It makes more sense for event organizers to use a template because event attendees generally ask similar questions. It also makes sense for us to make it a SaaS, as the improvements we put will make everyone's chatbot smarter.

I've written a getting started tutorial to create a chatbot and will keep posting for more in the coming weeks.

In case you're wondering, Sarah Shopper is still available, as it's personally useful for me :)

Tuesday, January 23, 2018

Lazada price tracker? Try stupidity tracker

I have been using hackintosh (dual-boot with Windows 10) for more than two years without any problems, and recently upgraded to High Sierra. The upgrade process was smooth, and my filesystem is now APFS.

Last Saturday, I switched the power off a bit too early, before the system completely shut down. I knew it was wrong but it's done and I got sidetracked with stuff. The next day, I couldn't log in—it gave me beach ball right after I entered my login.

Tried fsck, safe mode, recovery mode, no luck.

Feels like banging my head.

Good thing I have a MacBook Pro. I took out the SSD from the PC, and put it inside my laptop as secondary disk. Darn, Disk Utility couldn't help.

I had to start fresh. To my disappointment, many files, especially recently (1-2 weeks) accessed files, were corrupted. Unfortunately, those were the source code for Sarah Shopper, the Lazada price tracker I've been working on.

I did use Git, but I have a habit of not pushing to server until the commit is tidy. Since I tend to work on multiple projects at the same time, I can leave them "unpushed" for a while. For Sarah Shopper, it's two months. Ouch.

I also ran a backup software, but it was not configured properly (I procrastinated). Ouch. Good thing Dropbox was working, but I didn't put my code inside it (since I use Git). Ouch again.

Anyway, I managed to "restore" my hackintosh. Here's what I did:
  1. Salvaged anything I could. Apparently, if you copy a folder with any corrupted file inside, the whole copy process stops, leaving the destination in limbo. Strangely, if I select all the files in the folder and copy them, it works and it will ignore corrupted files. So, I did that, recursively.
  2. After everything was copied, I reformatted the SSD and put it back inside my PC.
  3. Reinstalled the hackintosh. I usually use tonymacx86, but I couldn't find the exact page inside the 1st page of search result, so I tried a different method. After a few failures, I gave up and used tonymacx86's method. Worked flawlessly.
  4. After the OS was installed, I had to download, install and configure apps. Office, dev tools, etc.
  5. Setup backup. This time I include my code.

About backup

I use Arq backup software. Now, I backup my home folder with these subfolders excluded:
  • Dropbox, OneDrive, etc, because they can just resync
  • Downloads, because this is just for "transit" items
  • Some folders inside Library
  • Cache folders, e.g. .m2/repository folder for Maven cache
Essentially, I excluded synced folders, caches and temporary items. If you use Arq, the best way to decide whether something should be excluded is to first backup everything, and then check the log. The log lists all files backed up and the size.

About source code

Now I use myrepos, a small command line utility so I don't need to "cd" and "git status" to dozens of my projects one by one.

It took me three days to do everything. Configuration-wise, it's done, but now I need to rewrite the missing code for Sarah Shopper, the Lazada price tracker.

Looking for my geek side?