Ram Telematics™ is a web-based fleet management solution designed to help you monitor your entire business with real-time data and insights. RAM already offers what they call “RAM Telematics™”: Now, the thing is: I mostly drive a 20 Truck. Telematics just means “creepily tracking your every move while you operate your vehicle (and maybe plug into your OBD port). I wrote about the topic before (twice, actually). And we’ll talk about implementation details, also Python. Next, we’ll design the client by reasoning about types in Python.Building a custom Linux image: A deep dive on how to do it and why you should bother.Feel free to skip sections, I think most things can stand on their own. Since this article is pretty long, here’s whats going to happen. Part 2 can be found here.Īll code can be found on GitHub. You generally like somewhat low-tech things talking to somewhat high-tech things, in this case going from serial devices that care about baud rates all the way through real-time, persistent streaming systems that can write Iceberg data into cool, distributed data lakes, or anything in between.You think building a system that’s designed to cache offline and then turn into a streaming client sounds interesting (you can call that “IoT” if you think it’s cool).You think streaming systems are neat and Flink and Kafka are interesting.You think cars are cool and/or have a knack for GPS data everything geospatial (can I interest you in map projections and call out flaws in EPSG:4326?).It’s a lot of fun and even semi-productive!) You like playing around with Python and Scala and want to weirdly reason about types in a language that thinks 3*3 is '333' and where that makes perfect sense, coming from a language where a frameworks’ log.info() type signature reads def info(message: => String): F (because, of course, they are effectful and log messages are functions.This article makes heavy use of it, down to the serial ports. You might be interested in this article if… In other words, it’s a bit of a wild ride and, as I’ll be the first to admit, not always the most straightforward. This article talks about building our own Raspbian image, reading gpsd data, dealing with issues withing GPS and NMEA, caching everything with redis, trying strongly typed domain modeling in Python (of all places) and using concepts borrowed from scala and Haskell to first scaffold function signatures, then building them (specifically around types and how we can use effects to annotate our scaffolding, even though we don’t have an effect framework) on how we can use scala with Flink and Kafka to consume a stream with (more or less) exactly-once semantics in a handful of lines, and how we can visualize and analyze GPS data via Superset. Unit Testing gpsd & more type trouble: Python class vs.Scaffolding allows you to write your main logic without thinking about it.Scaffolding by means of reasoning about types.The Client: Collecting Data & Caching it.A note on the usefulness of building an image.A (simple) cached, offline architecture.Tiny Telematics: Tracking my truck's location offline with a Raspberry Pi, redis, Kafka, and Flink (Part 1) Contents
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |