Posts

Showing posts from 2019

25 or 6 to 4

Sitting cross-legged on the floor Searching for something to say but the words won't come my way insomnia sucks...

Programming is hard

I was going to say that programming is not easy. While that's true, it's really an understatement. It's even difficult to describe how it is hard to a non-programmer. As an example, someone contacted me with an app idea that they wanted to "sell" me. They just wanted a couple of cents per download. I told I'm not interested in any more (unpaid) work I have enough to last me through 2022 or 2023. Basically, I said take a number. He persisted. I sent him a link to  https://bootcamps.vanderbilt.edu/data/  The implication being "go learn how to code and do it yourself". I haven't heard from him since. Where do people get the idea that "an idea for an app" is all they need to make money? Programming is hard and time-consuming. If you want to build an app you need to build it - not just think of it and wallah! Instant riches. No, that's not the way it works. If you can't write the code yourself you must hire someone to write it.

It's Monday...

We have been house shopping for the last 3 weeks. I think we found one we like. Make that 10.

Dieter the Teacher

A recruiter contacted me about a part-time position teaching coding at Vanderbilt. It's interesting, especially since I don't have any formal education in programming. I just do for a living. But what the heck, let me take a look and see... Update #1: It requires 13 hours a week M/W/Saturday or T/TH/Saturday plus prep time. Evenings and Saturdays. Update #2: I have a telephone interview on Friday 9-20-2019. #3: I am awful at telephone interviews. I will not agree to do any more of them. #4: I did not get hired. Thank goodness.

When I was Four

Last week I lost my pocket knife. I got a new one today. The first time I use it, I cut my thumb with it while slicing an apple. I remember when I was four... I picked up my grandfather's pocket knife, opened it, and closed it across my fingers. I learned the idea of sharp. I learned that door jambs are dangerous by smashing a finger. I learned bees have stingers and they hurt by stepping on one. I learned girls, at least my cousin, do not have a penis by walking in on her taking a bath and asked: "Where's your...?". She told me the doctor cut her's off. I knew about erections, but I had no idea how to get rid of them. They were annoying. So I made something up "You need to stick it with a thorn, that will get rid of it", I told my friend. I hope he never tried it though I still think that it might work. I learned how to carry a large bowl of water without spilling it. It was large to me. When my grandmother walked into the bedroom and fo

It's Friday!

Tandem Workflow's get images and store them on S3 cron job is stuck in the ( dev-test-QA-prod ) pipeline. The Geotab test case and db tables are ready to be tested on test3. 11:00 Now working on updateDriverClassPay to actually update the minimum pay fields in the drivers' profiles when there is a change in the minimum daily pay rate. 12:08 Finished driver class pay. Next is the new Appian integration. 1 PM Interruption: Poylak settlement issue. A load is missing 11.8% of its truck pay. Discovery: Two stops with the same sequence number breaks settlement. The milage between them is 11.8% of the total trip miles. I change one of the sequence numbers and wah-lah! The pay amount is suddenly correct.

GeoTab done... maybe

I finally finished The GeoTab HOS and breadcrumbs integration. Now I'm working on bugs in reopened tickets. First is a payroll export bug. Personal and vacation pay is being duplicated in both columns. It seems the customer actually had asked for this. Not realizing that they can't use the same accounting code for both vacation pay and personal days off unless they want a combined total. Waiting on a call back from them.

GeoTab

I've been wrestling with GeoTab's API. With Jason's help, I've finally figured out to get the HOS hours remaining feed working. Now it's just a matter of saving the data files in files and creating cronjobs to process those files. This evening I will revisit Music City's airport code. Hasan has reported that cars downtown are able to accept the corral. That sounds like a bug.

Rants

All times should be passed in ISO 8601 UTC format especially between APIs from different vendors. Any deviation from ISO 8601 is amateurish. I'm talking to you Microsoft, Samsara, and a whole bunch of others. Localization should only be done at the point it is needed such as displaying it to the user. Whenever I receive something on my phone from someone not in my contacts list, I think "scam" as my second thought after the "what the?" That's not cynical. It's just a sign of the times.

TWF UI and Hours Of Service

I finally got the UI to add drivers to TWF (Tandem Workflow) done. At least I got it to test. It was harder because I tried something new to me: verify unique usernames as you type. This required me to learn how to implement JS Promises because JS is Async. That means JS can return results (null, undefined or default) before the web request to the database returns our desired data. Promises wait for the web results and then continue execution from there. Next on the list, Hours Of Service (HOS). I need to implement HOS for TWF. This includes the standard BOLT HOS and GeoTab. Keep Trucking, a new data provider, will also be added even though I don't know who will write that integration. I got TWF HOS started but now I find myself waiting on Eleos to disable GeoTab in the sandbox so that I can see the HOS card. The HOS card is hidden while GeoTab is active.

A Menu and a Mess

Added a menu link for CFC's editable class-pay table. Pushed a file to the repository for Jerry. Used the wrong branch. Made a mess. had to delete my local copy and re-clone the repository. Everything is all better now. Working to get Transervice's GeoTab account added to Tandem Workflow. Waiting on Eleos to request the login creds.

Notifications and CFC

Today Yellow Cab is reporting a lot of issues receiving notifications. I am switching the affected drivers over to SMS as the reports come in. Oddly, all of the reports are Android users. I think I have finally finished CFC's driver settlement. Meanwhile, I figured out how to get the segment miles using the array of stop ids that are passed into the settlement method. It was so simple that I had to recheck it to make sure I wasn't hallucinating. Eleos sent a message that the configuration options have been copied over to production. El Paso can now start using/testing Tandem Workflow.  I need a list of their driver ids for that. I also need to create a UI or some way to automatically add drivers to TWF.

Drawing circles on maps

I translated GeoTab's JS calc circle example into ColdFusion. We start with the lat and lng of an address. Then we take 1 degree steps around the circle. We could take 15 degree steps by changing the i++ to i = i + 15. Whatever number we use should go into 360 evenly to make it a closed circle. Otherwise, we'd need to do some fancy-schmancy calculating to close the circle. function generateCircleZonePoints(lat, lng, radius) { var earthRadius = 6371000 ; var latitude = lat * ( pi()/ 180 ); // in radians var longitude = lng * ( pi()/ 180 ); var angularDistance = radius / earthRadius; // radius is the radius of the circle we are drawing in meters local .zonePoints = []; Math = createObject( "java" , "java.lang.Math" ); // usage: Math.atan2(javacast("double",firstArg),javacast("double",secondArg)); for ( var i = 0 ; i <= 360 ; i++) { var radians = i * ( pi()/ 180 ); var latitudeRadians = asin

CFC and iPhones

I think I have CFC's settlement completed. I did not have a way to complete the daily minimum for them because our settlement system is load based not date based. There is a way but the amount of work required to implement something they will rarely use is not justified. Still having weird issues with notifications... I need to build a message Id trap to help PushBots troubleshoot it. It mostly seems to be an iPhone issue. Now back to GeoTab. I need to create geofences and rules for those geofences. Here is a JS rule example: api.call("Add", { typeName : "Rule", entity : rule }, function (ruleId) { api.call("Get", { typeName : "Rule", search : {id: ruleId} }, function (r) { console.log("Added rule: ", r); }, function (error) { alert(error); }); }, function (error) { alert(error); });

Bummed out on notifications

I think the Pushbots issue is behind us. I don't know what caused the time-out but they only occurred for about one hour and then our server auto-rebooted. Just finished a conference with GeoTab. Seems we can set-up geo-fences on the fly and use their rules and exceptions system to get the arrive-depart data we need.

Open mouth, insert foot

Since 2:30 PM, PushBots seems to have become unstable. Sometimes timing out after 20 seconds, sometimes not sending messages but responding with 200OK plus a message-id. Looks like the priority of changing providers has just been increased to 01 mission-critical. Now, where is that source code?

Notifications are up and stable

I pushed the changes to the notifications up on Friday night. There have not been any complaints. I'm taking that as good news. Notifications were down for several days this past week because of a series of issues that combined to make a perfect storm. I glad that's behind us. Going forward, I want to change to a provider that's in a closer time zone. Being separated by 8 hours severely hampers getting support in a timely fashion. The people at PushBots are great. They build a custom solution for me in about a day's time. But because of the timezone issue, it took 3 days to implement. The change of providers won't happen overnight. I'm thinking months. I will need to rebuild the mobile app because PushBots is hardwired into the app. There is no way around hardwiring the provider. The device needs to be able to talk to their server directly from the app. Twilio may be the provider I go with because I have been using them for SMS messaging and they have be
This morning I worked on the iDispatcher notification issue. It seems the Google pulled the plug on an API we were using. We now need to update to their new API. I have part of it done. Still a ways to go. In the meantime, I've switched everybody to SMS messaging. 9:07 AM  Reading GeoTab documentation. The goal is auto arrive and depart. I can log in on a device read its data. According to their help forum, sending load information seems a bit archaic. You send a series of "text" messages to the device. One for each stop.  Stop data can contain a sequence as well as a scheduled arrival and a geofence or zone as they call it. Clearing a route, or load as we call it, can only be done from the GeoTab admin interface > Clear all stops.

8-8-2019

Funny, I remember where I was 8/8/88 thanks to Paul Harvey.  I had several go-arounds with PushBots over MusicCity et al, not receiving notifications. Seems they changed their API without telling me. I will need to update iDispatcher to the new API. I hope I can get that done this evening. I know this is making everybody crazy. TandemWF now saves images to S3 MetaData attached is: [redacted] 2 cron jobs will need to be started. - not core Updated fineUploader.cfc to work with those 2 cron jobs. - core Removed Walgreens Anderson bid sheets for Troy. He may need a tool built to do this himself. It seems to be a repeating request. Brandon F said that auto-arrive and depart need to be working on TandemWF before go-live. digging in...

Trans-Loco

Added a link to invoicing for Music City. Fixed US Trans Loco driver pay bug. BOLT Tandem WorkFlow: I have images uploading with boo coo (beaucoup) meta-data. The images come in a zip file with an XML file containing the meta-data. I have all of the pieces together and ready to upload the images to S3 Tomorrow I will complete the "to S3" stuff and removal of aged temp files.

Spireon, Tandem Workflow and GeoTab

12:00 After 8 hours of work, yesterday and today, I finally figured out the trailer naming issue in ULS' Spireon.  1. ULS has 2 Spireon accounts. 2. Some trailers are in both accounts. 3. Trailers have hidden names which only the imported can see as well as public names which the users can see.  What took so long? There was a problem with the access keys for the accounts. Both accounts were using the same access key. I had to delete both keys and request new keys. 1:15 PM I got imaging working in BOLT TandemWorkFlow. Woot! We can now attach meta-data to scanned documents. BTWF things to do: convert the image downloader to ColdFusion. Get GeoTab auto-arrival and departure working - this basically requires a new integration. 4:30 Image downloader complete Next, move images to S3 and register them with the correct company, load, and stop.
iDispatcher: Early this morning, 5- 6 AM, I got the Hill, Corral, and Firing Line polygons displaying on the new Mapbox airport maps. I still need to get the cars to auto-refresh their locations and status on the map. BOLT: 10:04 AM Back to the PDF settlement issue. Jason said he did some work in this realm that may be helpful. The code/methods may be found in settelment.cfc in the same directory. 10:10 Changed my mind. I'm adding POs to BTW stops.   12:00 Hmm, doesn't look good. Jason said scrap it and put pick list of POs and a capture image link in the arrive form instead. 12:09 break for lunch having ho-made veggie soup. 12:26 Investigating POs plus image capture... ...

Eleos and El Paso

Today started out normal enough, I started working on the settlement PDF issue. I was making some headway with it... Then Gayle had to pin me down on how long it will take me to have Tandem Workflow ready to go live for a customer. This makes me cringe because I am absolutely horrible at time estimates and Gayle does not except "I don't know" or anything greater than 2 weeks. So I said "One Week". She was happy with that but I know I have no idea of what I just got myself into. The customer is El Paso Freight. They have a GeoTab contract with T-Mobile which is incompatible with Tandem Workflow, besides, T-Mobile's coverage is spotty at best in the Texas area that El Paso operates. They also have a Rand McNally account which does Hours of Service but is not plug-in-play with Tandem Workflow. Jerry said something about getting Rand's HOS into Tandem Workflow. I'm sure that will take a week by itself. One of the things that needs to be com

7-31-2019

Amy needs help with ULS's Spireon integration. Trailers are not showing up. Investigating... Found ULS has 2 Spireon accounts. Only one was being updated. Fixed. Amy found a heading bug in the Spireon import... on it... heading not available from the import Found an email bug. Fixed. Followup Eleos turn by turn issue - Resolved. Brandon had a strange password issue. Settlement PDF 1:28 PM I'm getting stacks of interruptions. My interruptions are getting interrupted. This destroys my concentration... I'm screaming inside. 2:55 Back to settlement...
I forgot I did Us Trans Lo Co yesterday. I such a small ticked that I forgot. Siedhof settlement doesn't match the pdf Jason said it appears that they are using different queries. investigating... This is some really old code 2011ish. I have 2 files that do approximately the same thing but have diverged. My action plan is to use the one that is considered the authority as the scaffold for the other, the pdf.  I now have the correct data on the pdf but it needs to be formatted correctly. This evening I worked on the  iDispatcher Mapbox issue. Determined that moving to  Mapbox GL  will require me to remap some JSON. Not a big deal, just time consuming.
My coordination is a little off today. Need coffee. 9:05 got coffee, read some news. 9:25 now where was I? 9:45 - 10:00 daily meeting 10:30 - 11:15 got a haircut. 1:50 break 3:00 attempted to help support troubleshoot some wnl payroll issues. Look like some loads may have extra settlement headers

Mapbox went insane

Last month my Mapbox bill was $39. A couple of days ago Mapbox sent users an email stating that they were adopting a "fair" pricing model. (I'm paraphrasing). And that all customers will be forced into it in November 2019. They went further to explain that 75% of users will see a decrease in their bill and 25% would see a "small" increase. They said you can wait until November or you can opt-in now, but you won't be able to otp-out if you do. So, I'm thinking I'm a small user (1.8M tiles per month) and as such, I most likely will see a decrease. I opted-in. Two days later, that would be today, my billing cycle closed and they billed me retroactively at the new rate. $444.75! That is an increase of 1140%. I wonder what they would call a large increase? Needless to say, I have removed my credit card from my Mapbox account and I deactivated my usage tokens, lodged a complaint with their support team, and started looking for a new provider of map t
I had a doctor appointment this morning. He wants to see me back in 3 months probably to review the changes in my medicine he made today. Arrived at work at 10:00 AM Made coffee settled in. 10:25 Brandon verified that the changes in El Paso are working. 10:33 Brandon has asked for 2 mods to BTW     1. direct messaging to the driver - nixed by Jerry     2. need to implement drop and hook - drop a trailer and hook up a different one. 10:39 Brandon has expanded the request to implementing all stop types 10:45 Shop conference. New investors coming onboard - probably. Sept 1 is the signing. 10:52 Starting work on Drop and Hook 11:19 Setting up a load with a drop and hook 11:54 Drop is working 11:58 Lunch 12:12 goofing off 12:17 Naptime, I had a bout of insomnia last night. 12:36 next on the list is Spot Trailer... 1:32 writing a test to view the load data 2:04 PM Exhaustion is setting in. It's getting hard to concentrate. Insomnia sucks. 2:05 Went for a walk.

Blogging Begins

I work for a small software house. We produce a SaaS (Software as a Service ) TMS ( Transportation Management System ). My boss, Jerry. has asked all members of the dev team to write a paragraph about what we accomplished every day at the end of the day. I can't just do that. I'm forgetful, I don't like to brag. So I plan to track my activities throughout the day and then summarize them at the end of the day. Here goes. Day One: 2019-07-25 9:00 - 9:43 CFC settlement 9:45 - 10:00 Standup meeting. 10:05 AM Starting blogging my daily activities:  Working on CFC custom driver settlement. I'm having to relearn how to do this, which is part of why I don't have a completion estimate. I have only done one custom settlement, that was VFJ in October 2018.  I'm using VFJs as guide currently. 10:26 AM Amy found a zipcode bug in the Appian import. Looking at that now. 10:34 found a copy/paste typo - uploaded the fix to CFC on Buffalo 10:35 Back to settleme