While building my “Follow Me” application, I got to learn a new programming language in quite a while. Swift 4 is new to me. I’m a super huge fan of Python. I’ve done Java for about 20 years professionally. This was the first time it took me a ‘while’ to understand some things. It also could be since it’s a non-web based UI application. I mean, I’m used to a ‘main’ function that kicks off everything. Even building a python UI, I started with a __main__ function. This one, I don’t. I get some sort of storyboard with a first responder. Alright, I’m rambling.
One of the challenges I had was finding examples for Mac OS based (OSX) applications. EVERYTHING seemed to be build for iOS. I get it. iOS is super duper more popular than Mac OS/OSX, but, I worked through it.
Thankfully, switching classes that start with UI to NS made a lot of the examples work!
Check out the first project:
Follow Me – PTZ Autotracking
I’m working on a metrobus based project, and was curious how to define a flexible callback method that had a required parameter, and other keyword arguments. I have used *args and **kwargs before, but wanted to really experiment on what I could do with them. For metrobus, I’m only going to ‘require’ a ‘message’ parameter (single parameter callback function), but, I’ll have to use **kwargs on my declaration just so I can be a little more picky about what I receive each time. Check out some experimentation:
I’ve been wanting to write this code for a while. If I were as efficient at writing in Java, I would have done so, but, I’m slower and therefore wrote it in python. It’s not very pythonic, but, whatever.
Metrobus is a framework that allows you to focus on your microservices application logic, not logic around pulling and pushing to Kafka. Kafka for now. Others to come soon. All the details you could ever want on the github page. I’ll be adding tickets in order to track some todo items.
Proof of concept and example for smart routing on a dumb bus.
This is a small project focused on my blog posts around routing on a message bus that’s dumb. Like Kafka.
Stateless and dumb: https://medium.com/capital-one-developers/stateless-and-dumb-microservices-on-a-message-bus-be78bca93ccb
Fast Cache: https://medium.com/capital-one-developers/blazing-fast-data-lookup-in-a-microservices-world-dd3ae548ca45
I use some of the caching ideas in here for a few of my data lookups.
The concept for the ‘test’ example application is fairly simple. The ‘pusher’ generates records, as if from a client or application. These records are simple JSON structures. For our example, we get cool things like an account number (FAKE!). The ‘pusher’ sends the message to the ‘Source’ topic on Kafka. Consider this your public entry point for upstream clients.
KNOWN TO DO ITEMS (Cause you know, SHIP IT!)
- Simplify the logic or break up the code for the main handling function in metrobus.py
- Determine best how to handle different situations like
- Send to Error log
- Send to dead letter queue
- Dropped on purpose
- Is it too simple? what am I missing?
Thanks for putting up with my silence! I have a few new projects in the works, and it’s hampered my blogging. I think that will be OK in the end.
Throughout my software engineering career, I’ve seen a lot of bad and some good. Some of the groups I work with now do amazing work and have inspired me to keep writing a book I started a long time ago. I’ve updated it significantly and will continue to do so. I judge I’ve knocked out about 50% of the first draft and wanted to see judge interest to see where I need to prioritize writing of it.
Leanpub allows me to write it and sell it at the same time. I’m putting out a big discount code here, in an effort to get some feedback. Check it out!
I hope the coupon limit gets hit quickly. If you miss it, shoot me a note and I’ll make another one!
Second plug.. we’ve started a really fun podcast:
Direct link for itunes/IOS podcast app!
Thanks! Would love to hear some feedback.
I’ve spent the last few days at Capital One’s Software Engineering conference. How cool is that? Hundreds of techs folks gathering for a few days to discuss areas of technology. These are modern stacks of technology, processes and new paradigms.
For me, I’ve been able to watch about a half dozen talks on Machine Learning, the programming language Go and encryption. The speakers were excellent, and, if I play my cards right, I’m going to work to get a few of them on here as guest bloggers!
What topics would you want to hear about?