AirPods make you healthier and smarter

Using my Airpods to make you healthier and smarter
Today’s walk while listening to Daniel H. Pink, “To Sell is Human”

I keep telling myself that I am not an Apple “fan boy”. If it were not for work, I would not choose to use a MacBook or MacOS. However, I do admit to being a longtime iPhone user, having some Apple TVs, iPads, and two Apple Watches. But I write this blog post from a Linux machine using an open-source browser. My most recent acquisition of the Apple mind-washing kind are my AirPod Pros. I swear to goodness, if used correctly, your Airpods make you healthier and smarter. If they could only make me better looking, taller, and add some hair. But I digress…

How AirPods make you smarter and healthier

How do the AirPods accomplish this amazing task of making one healthier and smarter at the same time? Well, it does require some cooperation on the wearer’s part. One of my blog posts on cahallracing.com was about how my Apple Watch helped me start running. I published a similar article on Medium.com to gain some experience on that platform as well. Those posts outline how my watch helped me track my walking and running workouts with many metrics. This was classic “gamification” that helped encourage me to keep moving faster and more often – even when I did not feel like it.

The AirPods add in another dimension – audio books. I have often wished I read more books: business books, the “Classics”, documentary books – but I hate taking the time to sit down and read. It is just not me. For my health and personal performance while racing cars, I have committed to walking an average of 10k steps per day each week, month and year. The downside, even with the watch’s gamification, is that it can be tearfully boring. Before my AirPods, I usually just thought and solved problems in my head while I walked. I could hear my dad’s voice encouraging me to, “Use your head and think while it is still free – before they figure out how to tax it”.

Do AirPods help you exercise or does exercise help use the AirPods?

Problem solving is great – but it does not require walking 10k steps to do it and I often am doing that in meetings and at my computer. However, as previously mentioned, I had always wanted to read more books, but was not willing to sit on a couch and do that for hours. I spend almost an hour each day (some days much more) walking.

Now I am walking and “reading” (listening) at the same time. Seriously great books. The most awesome attribute of this is that my two goals are mutually reinforcing. Some days I really want to get to the next chapter of the book and it helps me get my gear on to go for my walk or run. Other days, when I want to walk, I realize I have some interesting information to consume. It is a more powerful motivator to getting me moving and driving to reach my daily, weekly, and monthly goals than just my watch alone.

More is better (Health / Knowledge)

I have “read” more books in 2020 than I think I have read in all of the years previously combined (I don’t count college books that were required). This is true and 2020 is only half complete. My largest regret is not discovering Audible and getting on that subscription earlier. I am going to walk anyway, or is it that I want to finish that book anyway? It really does not matter which, as both are happening more easily and frequently now.

So here I go complimenting Apple for making me healthier and smarter. Android also supports Audible and there are a multitude of wireless earbud vendors. I like the amazing integration of wearing my watch, listening to Audible while my phone/watch track my steps and distance metrics. I know it is only a click on my watch face to take a work call if needed.

May you live in interesting times.

Ted Cahall

Graphs and Charts with JFreeChart

Have you ever wanted build free graphs or charts using open-source in Java? Well it turns out that you can build free Java graphs and charts with JFreeChart!

Graphs and Charts with JFreeChart: JFree.org website
JFreeChart at http://www.jfree.org/jfreechart/

As the author of marrspoints.com, I have often thought of bringing some of the statistics to life with some graphs and charts. The main issue I faced was they needed to work with Java, and they needed to be free and open-sourced. After considering a few other options, I landed on JFreeChart written by David Gilbert. David maintains a blog but it, like the JFreeChart documentation is somewhat out of date. More on that in a bit – as there must be a reason I still chose it for marrspoints!

I originally developed marrspoints.com in 2015 and have continued to update it with some SEO and then some statistics in April of 2016 and more recently the Bracket Racing program (a very different type of class) in April of 2018. Oddly I am writing this post in April of 2020 (which included the graphs of which I will discuss).

Advantages of Graphs and Charts with JFreeChart

The main advantages I found with JFreeChart were my key requirements:

  • Written for Java and works with Java 8
  • Free and Open-Source
  • It has some documentation (not free and not up to date)
  • It has a huge library of ready-made samples (not free)
  • Works with Java WebApps – specifically Tomcat 8

Since it comes as a Java Jar file, I decided to go ahead and buy the documentation for about $55 USD. The first thing I noticed was that the PDF file was for the 1.0.19 version and not the current 1.5 version. This was worrisome. However, David’s blog pointed out that the documentation also gave you a complete sample set of charts in a jar file, and instructions to run it.

Between the documentation and the sample set of 300 graphs, it was fairly easy to make quick progress. The documentation gave me enough clues to make a Java Servlet that created a PNG with a summary chart. There is a sample app that allows simple clicking through the 300 sample graphs and charts to allow selection of various features for chart type, legend manipulation, axes control, titles, subtitles, etc. Combining these two elements, I was able to pull together four graphs of three different chart types fairly quickly. My first chart follows.

Graphs and Charts with JFreeChart: Unique Drivers per Class per Season

Disadvantages of Graphs and Charts with JFreeChart

As previously mentioned JFreeChart is not totally free if you want the documentation and the sample charts. But to me, they are totally worth $55 USD. Also as mentioned, the documentation is not current for version 1.5 – but it was good enough in the sections I needed to help me create Java Servlets that produced a PNG image. The sample charts are well worth the money and helped me craft custom charts such as the bar chart below.

Graphs and Charts with JFreeChart: Top 3 Ironman past 5 years

It would have been nicer if the documentation was up to date. It also would make me feel a bit better if there were updates post 2017 to this project by David. But it works great and is mostly free. David also has other newer SVG graphs, JS graphs and a whole new charting library. But this one worked well enough for marrspoints.com.

Conclusion of Graphs and Charts with JFreeChart

Hopefully this short article has helped you see that you can build some free Java based graphs and charts with JFreeChart.

Ted Cahall

Gnome 3.36 and Fractional Scaling

Top view of the SimplyNUC Hades Canyon 8i7HVK

My latest Intel NUC unit from SimplyNUC is a Hades Canyon 8i7HVK. I have written about the power and quiet nature of these NUC units before, but this unit is a break from all my previous NUCs. It comes packed with 64GB of DDR4 RAM, two 1TB SSD drives in RAID-1, four VR ready 4K video ports, dual GB NICs, four 3.1 USB ports and five USB 3.1 ports. It is a monster in a very small NUC package. The unit is about twice as wide as a normal NUC and about an inch and a half deeper at: 8.7″ x 5.6″ x 1.54″. It is slightly taller than the normal NUCs, but shorter than the “full height” versions.

Front ports on the Hades Canyon NUC

I received this unit in December 2019 with Ubuntu 18.04 LTS installed. The 3.28 version of Gnome running on the system did not support display “Fractional Scaling” – which made some applications much too small (or in 200% mode much too big) to read and use well. Some research showed that a newer version of Gnome would support Fractional Scaling with 125%, 150%, and 175% options available. The 20.04 LTS version Ubuntu includes Gnome 3.36 which does support Fractional Scaling.

Back ports of the Hades Canyon NUC

Right now Ubuntu 20.04 does not provide direct upgrades from the 18.04 LTS release until the 20.04.1 release arrives. I did download the ISO and ran it under virtualization and can see the Fractional Scaling option exists!

I will soon be moving my development environments over and moving from the Ubuntu Unity desktop to Gnome in this high-powered mini-PC with 64GB of RAM, a quad core i7 processor, and amazing video power.

Ted Cahall

Digital Age Relocation

In July of this year, I had the amazing opportunity to join block.one, an innovative blockchain company and creator of the EOSIO blockchain software.

I have moved around the United States many times while pursuing my career in business and technology. My relocation plans have taken me to Chicago, three different homes in the the Bay Area of Northern California, Seattle, Northern Virginia, back to Seattle, over to Minneapolis and now splitting my time between Blacksburg and Arlington Virginia.

My trips used to include packing hundreds of pounds of books, audio CDs, computer CDs, etc.

My time at Digital River allowed me to see how they built an early part of their business which leveraged high bandwidth speeds to obviate the need for software CDs. We all just download our software now and would not think of lugging boxes of software CDs.

Back-up CDs are also a thing of the past. I have my two Synology NAS devices, which slowly back themselves up to the AWS cloud.

Mr. Steve Jobs made audio CDs a thing of the past with iTunes. Most kids have no idea what a record player or even a cassette tape are. It felt good throwing away all those boxes of audio CDs.

I was browsing my Audible library this morning. Yep, all of my books are in there. Even my books I read in print are in my Kindle app.

The software I write is stored in GitHub in the cloud. No CDs there. Even my PCs are super small and easy to move.

Why is it I still hate moving my stuff so much? 🙂

Happy Holidays 2019!

Ted

Amazing or Amazon Web Services (AWS)?

Working with Amazon Web Services (AWS) is actually quite amazing.  It is not just a hosting platform – which is all I initially needed when I launched marrspoints.com.  You know, the mundane, standard bit of Java, Tomcat and MySQL hosting.  After launching the FinTech start-up, TheSubtractor.com, with Scott Scazafavo last year, it has been a fantastic journey into the many application services that they offer as well.

It is so nice that the Route 53 DNS service integrates so seamlessly with their SSL certificates and elastic load balancers.  It makes certificates dead simple and painless.   It feels like the Geico caveman commercials compared to the work of making SSL sites of the past.

Email services are a snap with Simple Email Service (SES).  Standard email client code such as Apache Commons work right out of the box once your account and domain are cleared by Amazon to send.

Email integration is also done so elegantly.  With bounce, complaint, and delivery notifications done in their Simple Notification Service (SNS) via JSON messages.  The costs are crazy low if you do not mind making the glue to your applications and the services.  Even text messaging is super cheap when you move to add texting in addition to email.

Need a CDN?  No problem, start with some S3 buckets as the backing store, put AWS CloudFront in front of it, add in an SSL cert for the secure pages, and your are up and running in minutes!  Again, dead simple to implement.  Want to make the image management of your CDN native to your in-house developed tool set (versus using the AWS S3 console to upload files)?  Use the AWS SDK in the language of your choice to list the files and upload new ones.  It’s a little sad the sub-directories are not real in S3, but with some code you can fake those pretty well.  You might want to break out only the services you need in the SDK, as the Java version all up is over 100MB!

Need to do some AI or Machine Learning?  Amazon has some amazing services that allow you to spin up and only use the compute when you need it.  You do not need to build out a Hadoop cluster on a bunch of ec2 nodes – they take care of all of that for you.  You supply the PySpark or MapReduce code on top of their Elastic Map Reduce (EMR) services.  They are making so many inroads to Big Data as a service that it really lowers the bar of entry for companies to innovate, test and learn with their data strategies.

For a number of reasons, I learned to move to Ubuntu 16.04 for my main version of Linux on AWS.  Too many 3rd party packages were not available in AMI 2 from AWS.  Things like Zabbbix had to be hacked and AMI 2 was way behind on the version of Tomcat in the repo.   Issues with the MySQL client libraries also come to mind.  Just too much fiddling to get a new node to work with my standard development scheme when they work perfectly from the repos with Ubuntu 16.04 (minus the Oracle version of Java of course).

I am sure I am leaving off dozens of items I found along the way of working 100% in AWS for our production site at TheSubtractor.com.  It has been a really enjoyable journey.  So enjoyable I have not written a blog post since July!  We are no longer in Beta and open to all for registration.  I could not be more happy with AWS – it does what it says it does, and it is super easy to implement and integrate with all of its other services.

Ted Cahall

WolkeWerks Alpha Goes Live

Today marks another step along my journey as a co-founder (chief bottle washer?) of a FinTech start-up – we are ready to announce our WolkeWerks Alpha Launch!  It was been an interesting and rewarding experience to say the least.  My co-founder, Scott Scazafavo, and I have spent most week days with at least one video meeting as we hash through the details of our product and the problems it solves for our consumers.  Only two people in the company, and yet we still have multiple locations and a two hour timezone gap.  Flexibility is a key to success.

To me, we have too much polish and too many features for an Alpha.  For Scott, he no longer “cringes” when showing the product to his friends and family.   The joys of being co-founders.

We are really fast, er, not that fast

As usual, things always take longer than one would like or even optimistically estimate.  After Scott and I determined the initial high-level plan, we selected a data provider and I was able to produce a proof-of-concept / prototype in one week.  WE are REALLY fast we thought.  Within a day later, I had skinned the “consumer” version in Bootsrap 3.  OMG we are SUPER fast!  The prototype made it clear we had all of the building blocks we would need (aside from an army of software engineers, designers, research assistants, etc).

If I was able to write a fully functioning, Bootstrap-skinned prototype that was based upon a data service REST API in under two weeks, surely we could get our Alpha product live by April?  May at the very latest.

Where did it all go Blanche?

Hmmm.  Oddly, as we launch today, on July 5th, it is interesting to see where the time went.  Figuring out the features for Alpha took longer than expected as we scoped the ideas down to the bare essentials.  There was over a month spent on looking at technologies and products that we eventually realized would not be used until the MVP phase.  A huge help was the book “The Lean Startup” by Eric Ries.  It helped us focus on much less and testing our way into changes incrementally (and thus an Alpha, Beta, MVP and the major releases).

Of course there is also the fact that we only have one software engineer (me).  I like to think I can code fairly quickly, but in fact, I am also the AWS systems administrator, the Apache and Tomcat administrator, the MySQL DBA, as well as the front-end web developer (JavaScript, jQuery, Bootstrap 4, HTML5, CSS, JSP) and the core services developer (Java).  Oddly, as is the case during my whole career, product management was able to generate more ideas and features than engineering was able to produce at the same pace.  I was doing some product management along with Scott – but again only I was doing any coding or system administration.  Clearly I learned to stop making my own backlog bigger fairly quickly. 😉

In the beginning…

In the early phases we needed to agree on the basic functionality.  We knew the long term product would use distributed processing, AI and machine learning.  These are of great interest to me and so I poured myself into learning them more deeply (and getting them working in my lab) as fast as possible. This was going to be a super cool product and possibly even more fun to build!

A dollop of Hadoop and a sprinkle of Spark

What a dream job!  I was a full-time student again.  One of our product’s main goals is to help a consumer manage their online subscriptions.  My quest for building a Hadoop based AI engine allowed me to add at least five more online subscriptions to my credit cards!  I was a super-user and the product was not even built yet.  Courses from Udemy, Lynda.com, Coursera, Pluralsight were great!  I quickly outpaced the top courses in Treehouse but had fun looking at them. These paid services were in addition to my regular free sites of w3schools.com and others.  I was suddenly an online training expert.  Visions of blogging about the various online training sites and their relative merits sadly danced in my brain.

I took courses about Eclipse, Docker containers, AWS S3, Hadoop, MapReduce, Spark, and stuff I cannot even recall at this point.  All of this while building out and upgrading my Hadoop and Cassandra clusters and testing my various theories on how to make the product sing.  Then a dose of reality hit as I was working my way through “The Lean Startup” book.  Oops.  I had gone way too far down that path when we were not even sure of the core viability of our product.  There were MUCH simpler ways to achieve the product viability testing we would need without the AI engine working day one.  Well that was at least one month of “fun” research that was pointless to our Alpha.  Ouch.  That was a big chunk of time lost – regardless of how much fun it was.

Time for a road trip

Once I realized I had lost my way according to the “start-up bible”, I quickly re-focused my interactions with Scott.  We decided we needed to spend some time in the same city (with a real whiteboard) to flush out the phases of the product roadmap.  Scott and I chose Denver as it was in between Seattle and Minneapolis.  We used Trello (for free) and carved out what the Alpha, Beta, and MVP versions of the product needed to be (knowing even Alpha would shift as we continued to determine feasibility).

Real collaboration – at the code level

The next issues was linking Scott’s product features and design to my coding.  Sounds simple, but we needed to agree on simple things such as a front-end framework and possibly a tool that would allow Scott to design mock-ups that could be implemented with relative ease inside the chosen framework.  With much angst and encouragement, we agreed Scott would learn a little Bootstrap and select a Bootstrap tool to make the “unauthenticated” portion of the Alpha site, since my version was a white page with a login form (I thought it looked great!)

Since Bootstrap 4 was available, Scott picked a tool that generated Bootstrap 4 code.  No worries, Bootstrap 4 is backwards compatible to the Bootstrap 3 code used in the prototype – right?  Um, no. 🙁

I made the mistake of a 5 minutes hack of the consumer site (integrating the authenticated prototype and the new unauthenticated code from Scott).  It produced a hybrid Bootstrap 3/4-ish site that I showed to Scott.  I think I almost killed the company.  It looked OK-ish (to me).  Scott was so depressed at how bad it looked he was on LinkedIn looking at Junior Product Manager roles.

Staying positive and building momentum

I realized that incremental crap-ism might not be the way to encourage Scott along the Bootstrap 3 to 4 migration journey. I quickly researched all the issues with making the site fully Bootstrap 4 and re-coding the prototype so it looked proper in both the authenticated and non-authenticated states.  Slowly I coaxed Scott back off the ledge when he saw his designs working pixel-by-pixel as he had designed them.

Moving from Bootstrap 3 to 4, creating a working rhythm with Scott as he generated pages and updates to the prototype pages took some time, but the pages started looking better and better.  Eventually Scott learned how to use GitHub and started making some UI changes directly himself.  Now we had put down our rocks and sticks and began cooking with gas.

There were some data service issues that we needed to address.  Then some AWS issues we needed to investigate and correct, plus redirects, SSL certs, password standards, and a lot of other things that  were correctly deemed important into a FinTech Alpha.

Then the real fun began.  The product was getting close enough, but there were some key features that we felt would make the product more useful and pleasing to our consumers, and there was an issues with “the browser wars” that was likely to cause confusion with our Alpha users.  Should we add the features and try to fix the browser wars issue?  In the end we decided yes.  The additional features required about a day of coding.  Well worth it.

FireFox, FireFox, why, why, why?

We decided we needed to make a valiant effort to correct an issue where browsers were auto-populating our site’s credentials into a third-party access credentials form.  We allow our consumers to access their own data through our product, but they need to securely pass their credentials onto their banking service.  If the browser auto-populated these fields with our site’s login credentials , the user would likely pass the wrong credentials to the back-end banking service and the connection would fail.  It should be easy to stop a browser from auto-populating a form field you would think.  Unfortunately, again, no.

Here is where the “browser wars” come into play again.  The HTML5 specification says that there is a attribute that can be used on the <form> and <input> tags called “autocomplete”. By setting autocomplete=”off” the browser should know not to populate that password field with the current site credentials.  Perfect.  Except none of the browsers honor it!

Protecting the installed base – of course!

There is a significant hurdle browser companies implement so users are less likely to consider switching browsers.  Many users allow the browser to remember all of their passwords to the many banking, media, and merchant sites they use.  Smart users do not use the same password for their favorite recipe site as their investment or banking sites.  Who can remember all of those passwords?  Let Chrome, Firefox and Edge remember them for you!  But once a user has done that, it is way too much work to start over again with a new browser and migrate all of those passwords (that they really don’t remember) along with them.  Great product management by the Chrome, Firefox and Edge teams in protecting their installed bases.

This is all fine and dandy, until a site needs to be sure the consumer is not confused when a different set of credentials are being requested.  Auto-populating credentials (especially when they should be different than the site they are on) may cause less sophisticated users to submit the wrong credentials.  This further confounds the user experience and frustration levels.

A partial fix for now – and full fix in Beta

Interesting enough, on a blog from the Mozilla Developer Network, there is an article that explains a simple way to stop the browser from auto populating the forms fields.  And guess what?  It works for the latest versions of Chrome and Edge – but NOT FIREFOX!?   Mozilla explained how to correct the issue (autocomplete=”new-password”) – but then explains they ignore that as well.

Why would Mozilla do this?  Because they have been losing market share to Chrome for years – and they need to be more aggressive in their product design to capture and keep new users by storing their password at all costs.  Sad.

So we launch with Firefox users having some confusion when we (securely) need their credentials to their bank services.  There is a complex JavaScript fix that we will eventually implement that randomizes the field names on load, but changes them to “password” and “username” just prior to form submit.  Sad we need to resort to that.  But we will make that part of the Beta and just pre-warn our Firefox Alpha users.  After all, it is Alpha, and we decide who signs up and what issues we are asking them to avoid.

A curvy roadmap – and then a right turn

So after a month’s travel down a wrong road along the course of developing our roadmap, we have finally gotten to the day of our Alpha release.  We need to remind ourselves it is not an MVP or a Beta – it is just an Alpha.  But to me, an Alpha that is pretty slick and does a lot of what we will need it to do as we roll towards Beta and the MVP.

There are many features left for Beta and the MVP as well as dusting off the machine learning and AI code – but we are on our way!

Ted Cahall

 

Zoom – FREE P2P Video Conference

Scott Scazafavo and I have been working full time on our new start-up, WolkeWerks.com.  This often places me in my home office reaching out to colleagues for advice and collaboration.  My communication tool of choice has been free peer-to-peer (P2P) video conference tools.  Scott and I have used Skype and FaceTime, but experienced the common video lags and garbled voices.  These were frustrating experiences needless to say.

Zoom Logo

It only take a garage to fall on me

My dad used to say, “I don’t need an entire house to fall on me to learn something, it only takes a garage”.  I think he was telling me to learn from trends when they are still small – and even a garage hurts when it falls on you.

The second time someone (ok a nice recruiter) asked me connect with Zoom, I realized it was a high quality service in terms video choppiness and garbled voices.  I did not look into pricing as I figured it was another service used by larger corporations ala WebEx or BlueJeans.  When a colleague in Berlin sent an invite with it, I thought it was odd that he was willing to pay for a service just to chat with me.  This was on top of another colleague with a pending Zoom call scheduled.  Why does everyone want to see a bald guy on video when it is such a frustrating technology?

FREE Zoom P2P Video Conferencing

Because it really isn’t frustrating anymore.  At least from my sample set of 4 calls now. One to Boston, one for two hours to Berlin, and two to different people in Seattle now.  But the biggest surprise, it is FREE for 2 people for unlimited connectivity.  It is also free for 3 or more people for 40 or less minutes.  FREE is my favorite word as I am an unabashed open source bigot.  But FREE that really works well is amazing.

I love the idea of getting people to try something for free for personal use and then once they fall in love with it, they are happy to pay for it in other circumstances.  I have not tried a 3 or more participant call yet.  I suspect they have this technology so dialed in that once you do a 30 minute call with 3/4 people that runs long, you get hooked on how well it worked and add your credit card to the account.

Check out Zoom

The folks at Zoom also have connectivity modules and upgrades for H.323/SIP systems, LifeSize, Polycom, and Cisco gear in corporations. It is all on their website.  They seem like they really nailed the tech on this so far.

I have a call Monday to London with another colleague.  I would never have asked him to use video conferencing in the past.  Too clunky and messy.  But we are setup on Zoom and it will be good to see his face for the first time in a year – even though we catch up nearly every month.

Check out Zoom. All it takes is a laptop, iPad or a mobile phone.

Ted Cahall

MARRSPOINTS gets some SEO love

The marrspoints.com racing application recently got some SEO updates.  These we long overdue in terms of getting better ranking inside Google.  Now driver’s season results URLs include the drivers name (example for Mike Collins) and the race results include the race name and classes (example for 2017 MARRS 5 SM Feature race).  Most importantly the Points Leaderboards have the class name and season as part of the URL now.

On top of all of that, I automated the sitemap to build nightly and worked with the Google Search console to fix duplicate title tags and content descriptions.

Enter Tuckey – SEO URL Rescue!

This all should have been done long ago.  But features were my first priority.  I used the Tuckey urlrewrite filter for all of the friendly URL magic.  It really is awesome and I am glad I remembered it from all the way back to my CNET days when we used it on a project there.

I still have some clean up to do when the pages are selected by form drop-down menus.  My sitemap tool does not include these paths.  I know Google is a lot happier to not see parameters on the URLs any longer.  It is a LOT of JavaScript magic to rewrite the form action to use the rewrite destination.  So that may be left for another year or two until it works its way up the stack in terms of importance.

Ted Cahall

Surfing to the end of the Internet

Keeping (too) busy

Since I left Digital River at the end of February, I have been working closely with Scott Scazafavo on a stealth start-up idea we had been kicking around.   Most mornings I hit my office early and attempt to further the research or  code base.  I worked on some Java REST API code I wanted to improve from its early usage at marrspoints.com.  I remembered there was a simple test site that gave canned responses to HTTP GET, POST requests along with cookies and the likes.  After a tad of searching, I found it again: httpbin.org – what a nice tool.  Simple yet elegant – and great for testing out HTTP code samples where you just need a simple endpoint.  Tutorials on the Internet should just use this site in their examples – as it likely will not change much.

The dangers of the Internet

This is where the danger began…  As I was done using it for the simple testing I was doing, and was ready to move onto the next phase, I noticed that it had the authors name with a hyperlink.  Since I wished I had written such a useful “demo” or example.com website, I wanted to see a tad more about him.  Through Kenneth Reitz, I learned that I comparatively don’t have many cool hobbies or talents (I am not that great of an auto racer and I have not written books, published music, been a professional speaker or even amateur photographer).   That is all on top of his enormous contribution to the Open Source space.  This guy is REALLY talented. Through his link on his personal values, I saw another link stating that “Life is not a Race, but it has No Speed Limits”.  Of course that deserved a click!

Through Kenneth and that link, I met (online so to speak) Derek Sivers and read his axiom – that “Life Has No Speed Limits“.  And though that story, the life of Kimo Williams and why focus matters.  Focus?  On the Internet with so many lessons to learn?

Saying “Hell Yeah!”

It was great to “meet” three SUPER TALENTED people on the Internet this morning.  People I will likely never meet in person or even exchange emails.  Yet, people from whom I have already learned.  While perusing Derek’s site, I found another life lesson to which I truly try to adhere.   No “yes.” Either “HELL YEAH!” or “no.”

OK- back to that focus thing and getting some work done.

Ted Cahall

Using Postman for API consumption

Being a caveman

So what is wrong with curl?  Nothing.  But Postman (at getpostman.com) is simply one of the best tools I have used while developing code that consumes APIs.  This is another case where I was using caveman tech (curl) to do a job so elegantly managed by a service that makes a desktop app that runs on Linux, MacOS, and Windows (and syncs across them).

Sometimes you just need an API

My coding and racing adventures led me to develop and win an award for the marrspoints.com application.  The app consumes two different APIs: race-monitor.com and motorsportreg.com.  I used curl to do the testing dirty work for these as one of them did not publish their response formats that I needed for my JSON parser.

I have been playing with a stock/equities “demo app” for my Cassandra cluster.  The app required me to replace the old Yahoo quotes feed.  I had to do testing on the new feed I chose, and I was still doing it with curl.

Even a stealth API…

Currently, I am now working on a stealth start-up idea with an even more stealth cohort of mine in the financial space.  The data company we have tentatively selected (and their API documentation) pointed me to Postman.  It is awesome.  I have deeply tested the financial access, accounts, instruments, etc.  This was accomplished on my own accounts in only a couple hours of work and research.  Postman is script-able, has variable replacement, etc.  Oh, and the best part, a single developer license is FREE.  My favorite price.

To think Sam Morris at Digital River talked about Postman dozens of times. It never occurred to me to go look at it.  That cost me a lot of wasted time. Especially since I know Sam is “the man”.  Thank you Sam – the second time I heard of it, I knew to go get a copy and learn it quickly.

Ted Cahall