Category: Software Engineering
“Copperr” – My API-Wrapper R Package for Copper™ CRM
copperr is an R package that connects to the Copper™ CRM Platform APIs using tidy principles. The package implements most key actions from their REST API described on Copper’s developer portal here. The package includes what you’d expect to see in an API wrapper:
- Basic (Username/API-key) Authentication methods, and caching for API details
- CRUD (Create, Retrieve, Update, Delete) methods for records
- Query a set of records
- Retrieve metadata Resources (Custom Fields, Sources, Pipeline Stages, etc.)
- Retrieve User profiles
- Helper functions to simplify some common record lookups and manipulations
You can download the package and read the “Getting Started” guide on Github here
I’ll probably provide some examples of the kind of sales data analysis and data cleansing I am using this package for in subsequent posts. Leave a comment if you’re interested in this?
A Comparison of Programming Languages I’ve Used
Comparing programming languages has been a popular sport for many years.
I love the quote from Antoine de Saint-Exupery who once said “If you want to build a ship, don’t tell people to collect wood, or assign them tasks, but rather teach them to long for the endless immensity of the sea“.
So let’s see how each of the dozen-or-so programming languages I’ve used over the last few decades support that epic vision of empowerment: Continue reading
In the days when processing power was expensive, writing assembler code was the benchmark, and high level languages were seen as an extravagance, C was a revelation. Near-assembler fast, bit-level operations, but still an expressive 3GL.
Wait, that’s only the beginning of the story.
Event-driven programming, Finite State Machines and NodeJS
I started out in my software engineering life writing software for embedded real-time systems and communication stacks, so I often think of myself as an async native. I’ve written a lot of code in various languages, mostly not using event-driven programming models and design patterns, but hardware interrupts, callback functions, event loops and finite state machines – I still see these as reassuringly familiar features of my original habitat. Call it the baby duck syndrome.
Who is this post for?