Some Android Development and More

Lots have happened in the past few months - I have gone home for a month to sort out a visa, moved to London, moved in with Stephen, started working at Global, met some lovely people at work and started singing with St Martin-in-the-Field Chorus (still finding a Bath Abbey replacement, any help appreciated).

Whilst I am still trying to come to terms with all the Microsoft shenanigans I have to deal with at work, I am settling well into "the real world". So, I thought I would update you on some side projects I have been working on.

Andrew Ng's Deep Learning Course

I have completed 2 of Andrew Ng's 5-part Deep Learning course so far. Despite having a general understanding of how deep learning works (well, I have spent a whole year doing my master's year dissertation using Convolutional Neural Networks), it is great to have all these concepts clearly explained. I recommend this course to anyone who wants to learn more about deep learning from the ground up, or as a refresher. You get to hear from the expert himself (and many interviews with leaders in this field)!

Course 1 of 5 Course 2 of 5

I am paying Coursera to get these certificates in the hope that they will motivate me to keep going. A bit behind with course 3, but I will get there!

Android Development

Also, I have started doing some Android development. Creating an app has always been something I want to do, but all the distractions at uni means that I didn't have the willpower to carry it on.

Why now then, you may ask. I think it is a combination of two things

  • my time at Jagex and that little API task really showed to myself that I am capable of programming (after all, I rewrote an entire production data pipeline system from Bash to Python, and it is still running) and I really want to get good at programming
  • I think I have an idea that is more achievable than any others I had before.

The idea is to create an RSS reader that uses consumes from the RSS subsription management service, Feedbin. It came along as the reader I am using has essentially been abandoned by the developer. Without a good enough substitute, it's time for me to create my own.

I believe this is a good side project idea because it requires equal attention to both front and back-end designs. On the front-end, I need to design a "good UI" that is user-friendly and modern. This requires a bit of UX consideration, and understanding how interfaces are organised and architected on Android. On the back-end, I need to handle API calls, and manipulating and storing JSON objects appropriately. The official Android development guide from Google provides a good introduction to get started with Android development.

It might be obvious, but I am primarily using these external libraries:

  • retrofit2 for API calls and Square's own okhttp3 logging interceptor to capture details of the REST responses for debugging purposes
  • gson to convert JSON objects into Java objects

For database, I am currently sticking with Android's SQLite. There is just not a need for anything more sophisticated than that for the purpose of this project, at least for now.

I have done the following so far:

  • invoke other activities (screens that people can see) by clicking on buttons
  • authenticate my own account using basic authentication, then calling the API to return subscriptions, storing this into a SQLite database table as rows given a schema, and display the raw JSON in a TextView (1๏ธโƒฃ)
  • a scrollable ListView displaying some dummy data (2๏ธโƒฃ)
  • customised tool bar (e.g. with a "refresh" and "other options" button in the tool bar)

Some initial screenshots of app development (There's more going on behind the scene, I promise. ๐Ÿ˜)

Some tasks I hope to get done soon:

  • figure out why the status bar is not respecting the style.xml definitions
  • rather than displaying dummy data in the ListView, display what is stored in the database/ real data
  • find out the best way to store user credentials (it uses basic authentication, so I want to make sure I am storing it securely)
  • display post summary inline (similar to any other RSS reader or Pocket you might have used)

Python 3

Yes, I have been using it at work (any opportunity really!) And yes, I am finally a convert. A tech savvy me is surprisingly conservative when it comes to Python, for no reason more than being lazy and not willing to reconfigure my lovely Python environment.

So it is not until recently that I have started writing new Python code in Python 3. So far so good - liking the syntax changes so far, and how some commands now returns generators rather than lists.

As Pelican becomes more stable on Python 3, I am sure you will see this blog to be generated on Python 3. Stay tuned for more Python goodness... ๐Ÿ

And...

It is fair to say that I am settling into the real world quite nicely - the fact that I am doing all these side projects and living in a lovely flat with Steve. There are still a lot that needs sorting out. But, it has been good. I cannot wait to show some progress when I next write here. Expect some progress, and an update on what I am up to with my actual work.

Until next time. ๐Ÿ˜ƒ