Seven Years later: What I Learned from Building an AI Chatbot – Part 1

A detailed illustration of a human head in profile, filled with gears and circuits, representing a blend of mechanical and electronic elements.

Seven years ago, I embarked on an ambitious attempt to build a rudimentary rule-based AI chatbot. Frustrated by the limitations of Apple’s Siri and motivated by exciting updates to Apple’s Natural Language Processing APIs, I dreamed of building something that could understand complex queries, construct mental models of objects, and seamlessly interact with users using just their voice. Siri was merely a fancy voice control toy; I wanted to perform calculations, manipulate data and leverage the dynamic power of language to build a tiny virtual world inside my iPhone, just like an intelligent computer system from Star Trek.
Continue reading

Framed in an interview!

Recently I have been interviewing and it is eye opening to be the other side of the interview table/Zoom chat! Having been an iOS developer for 14+ years, I think there are things you learn very early on in your career that you never question or need to revisit it again and it can catch you a little off-guard. One of those areas that I got asked about recently was about the relationship between the frame, bounds and transforms in a `UIView`.

Continue reading

Machine Learning and AI with Prof. Brian Cox

Last month I attended an interesting discussion panel on machine learning and artificial intelligence held by The Royal Society. This was presented by the ever warm and friendly Professor Brian Cox, everyone’s favourite TV astronomer. The video is online now and very gentle on technical details so worth a watch even if you know nothing about the gooey parts of a robot’s brain!

How to declare a block

Are you really sure on how to declare a block? How about all 4 variations? On iOS and macOS, it can be easy to forget Objective-C block syntax as it isn’t the most intuitive, especially now Swift is becoming the main language of new projects. Remembering the syntax is actually just a short click away but here are easy-to-read example uses with nullability tips and things to watch out for when declaring a block.
Continue reading