Friday, June 16, 2017

Future-proofing Naïveté

How naive we were, ten years ago, to think that URL shorteners needed to withstand the apocalypse. Even back then, we called it future-proofing. Today, clicking on a ten year old link typically yields a four-oh-four unless you're visiting the website of an Internet power-player with a keen interest in archival like the NYT or Wikipedia 

While shortened links may last a decade or longer, web pages have a much shorter shelf life. As technology quickly changes, so do server-side URL naming schemes that break links. Today's working links will eventually become tomorrow's orphaned links.


404 Solution

I saw a fix to this problem when working at a corporate conglomerate. Every morning, someone analyzed a list of all the 404s from the past day and then did their best to fix the "referrer." Usually that was easiest done by fixing the source, if it was an internal brand webpage. If the broken link was on an important, external website then we set up a web page, where the 404 was landing, to redirect the user to the correct destination. Fix the problem at the source, and when you can't then fix the symptoms rather than shifting the blame.


In The Future

Soon, it'll be common for digital anthropologists to piece together the Internet puzzle, from days long gone, to document the digital history of a culture. No different than a traditional anthropologist, except dealing with electrons instead of atoms.

The web is what it is, it is us who need to adapt our thinking to be inline with online. 

Monday, June 12, 2017

My Luck With Banking

Last month, I withdrew $200 from a San Diego ATM. Unlike New York, where ATMs dispense $20, $50, and $100 bills, San Diego's ATMs have always spit out $20 bills, in my experience. But, last month I got a pleasant surprise when, instead of receiving ten $20 bills, I received nine $20 bills and one $100 bill. Suspected jackpot! 

My first thought was that I had either received $280 in cash or, perhaps, I received $180, plus a counterfeit $100 bill. I immediately spent the "Benjamin" without any problem. On Friday, I looked at my bank statement and saw that I was debited $200, as expected. I spoke to a local corner market owner who refills his store's ATM and he told me that there would be no record of the extra $100 bill since the ATMs can't distinguish between bills – everything's a $20 bill to the ATM. Reaffirmed jackpot!

I figured that I would be free-and-clear of the extra $80, but it wouldn't surprise me if, at some point in the future, that money might be debited from my bank account without notice. So, I sent a message to my bank, describing what happened and this was their response:


Dear Mr. Moreno,
Thank you for your message.  I appreciate your honesty!
As it turns out, [we] can file a dispute when you are not paid enough, but we do not have a resolution process when you are overpaid [...] it sounds as though you may have had a lucky draw!  

Confirmed jackpot!


Bad Luck With Banking

In the mid-1980s, I withdrew some money from a Marine Corps West Federal Credit Union on Camp Pendleton. I heard some paper crunching inside the machine as the money was dispensed, jamming up the cash dispenser. When I walked into the bank to report the issue, the banker looked at me with suspicion and skepticism as I told her what happened.

"We'll look into it," she said, dismissively.

About a week later, I followed up with her and she made me whole. She seemed a little defensive when I asked what happened and how they confirmed it. She simply said the extra money was discovered jammed in the ATM cash dispenser feeder. A minor hassle for me before the age of e-mail, but it all worked out. 

One day, I'll write about how, in the mid-1990s, my landlord deposited my rent checks, but he wasn't credited for them. My bank, which was a different institution than his, was adamant that he was "almost positively" lying. He wasn't, but it took a couple months to reconcile. 

PS – Did you know that you can make actual size, hard copy reproductions of US bills in black and white? You can also make color reproductions of money as long as the one-sided reproduction is more than 25% smaller or 50% larger than genuine bills.

Friday, May 26, 2017

Advice to USNA Class of 2017

Today's USNA '17 Graduation: Those covers (hats) fly high.

Advice to USNA Class of 2015
Advice to USNA Class of 2016

Today, the US Naval Academy Class of 2017 graduated. What would I tell these eager second lieutenants and ensigns? So many things. I learned some key leadership tricks while at the Academy. Some were hard to do in real-life, like Damn XO. Others were simple like the advice that General Krulak told us: when checking into a new unit, get the record books of all of those in your charge and read through them. They'll be impressed when you talk to them, for the first time, about their past, civilian or military. This would simply be a gimmick, though, if you don't stay on top of what's going on in the lives of your Marines. Take the time to know your Marines, even if you need to take notes to remind yourself of their details.

Management vs Leadership

As a new 2nd Lt or ENS, you will be face new and unfamiliar leadership challenges as you move from being an individual contributor to a leader. As an officer, you're more than a manager. In some cases, there are similarities between managers and leaders and in other cases these roles are completely different. An example of where a manager, in a civilian corporation, isn't a leader is an account manager which might be the job title for a sales person with no direct reports.

So, what about the similarities? What's the difference between a leader and a manager of people? The key thing to remember is that leadership transcends levels of an organization. When I worked at Apple, my manager's name was Tony. Since Steve Jobs was four levels above me, he was not my manager, but he was most certainly my leader.

As a new leader, you'll have to learn to take recommendations from your Marines and then decide what to do. Sometimes your subordinates will give you great advice and sometimes they'll give you some not-so-great advice. You'll learn; many times, you'll learn from your mistakes. Just don't repeat them.

My last piece of advice is don't take yourself too seriously. One way to do this is by subordinating your ego which is harder than you think. Here's one way to do it: when telling others about your personnel, refer to the Marines under you by saying "us" or "we" instead of "my Marines." In other words, don't say, "My Marines inventoried the warehouse," rather, say, "We inventoried the warehouse." It's a minor issue, but unless you're the CO then you're part of a the team, not the commander, and your Marines will follow your example.

Monday, May 22, 2017

Amazon Flex, Prime Now (One way to spend money. One way to make money.)

Signed, sealed, and delivered.
A friend told me that she recently started driving for Amazon Flex which is like Uber for Amazon package delivery. As a contract driver, she simply drives to her local Amazon warehouse and loads up her car. She scans each package, using the Amazon Flex app, as she places it in her car and the app determines the optimal driving route. Drivers have three hours to finish their delivers and return with any undelivered items.

As I looked into Amazon Flex, I noticed that Amazon Prime Now delivers groceries, similar to Amazon Fresh. I gave it a try since Prime Now offered free delivery for orders over $20 (plus an additional $5 tip).

I started putting items into my shopping cart, yesterday afternoon. When I went to resume shopping, this afternoon, I noticed that a couple items were no longer available which was clearly displayed. After adding a few more items to my cart, I checked out at 1:30 PM with a 2 PM – 4 PM free delivery window. I had the option, for $7.99, for delivery within the hour.

Ding Dong

Cooler bag for dairy.
About 75 minutes after I placed my order, which was 15 minutes before arriving, I received a text message that Ryan was on his way, with a link to track him that updated in near real-time. I went out to meet him when I saw that he had arrived. As he walked toward me I said, "You're Ryan, from Amazon, right?"

"Yes... this was an easy delivery," said Ryan.

"Do you drive for Amazon Flex?" I asked, catching him off guard.

"Um, uh, yeah... do you know me, personally?"

He was a bit baffled as I explained that I did not know him but I understood how Amazon Flex worked. Best part is that my delivery was exactly what I ordered, plus the dairy was in a cooler bag with ice.

Friday, May 19, 2017

Programming My Honda's Keyless Entry Remote

My self-programmed Honda remote.

The last time I took my Honda Accord in for servicing, my keyless entry remote stopped working. But, I didn't realize the problem until about an hour later when I tried to use the remote to unlock my car. Since I was still near Carlsbad, I took my car back to the dealership. I've always had great service at Hoehn Honda in Carlsbad, and this was no exception.

My service rep immediately recognized the issue – he jumped into the driver's seat, fiddled with the key while it was in the ignition and, voilà, my keyless remote fob was working. The reprograming process went so quickly that I didn't catch what the service rep did, but it was clearly a series of steps that took about 15 seconds to complete. When I asked him for the details he said that it wasn't easy to explain. I didn't pursue it since I was happy that the problem was solved quickly.


Last month, my Accord's remote stopped working, again. I figured that I'd wait until I brought my car back to Carlsbad for its next servicing since I could simply use the physical key to unlock the doors. But, that changed when I got a hankering after watching this Arby's ad around lunchtime, so I headed to Mission Valley for some roast beef. As I left Arby's, I noticed a Honda dealership next to the freeway. I drove up to the service department and spoke with a rep who did not understand my issue. Finally, I asked if, perhaps, there was someone else around who might have an idea of how to fix the remote? He went into the office where I could see him speaking to a Honda technician for a few minutes. They both came out and asked me if I'd ever had service done at that dealership. No, I told them. But I didn't tell them the obvious, which is that I always go to Carlsbad since dealerships do not share any customer records. The technician told me that I'd need to bring in both keys so they could be reprogrammed, together. After asking them, three times, what the reprogramming process entailed I caught the clue that they weren't going to elaborate beyond the fact that it would take about an hour and cost $95. No, thank you, and I headed home.


Programming My Remote

Once I got home and parked, I pulled up this Honda document on my phone: "Keyless Entry System Owner’s Manual." After a few unsuccessful tries, I was able to reprogram my car's keyless entry fob. The process is as simple and quick as what I saw the service rep do in Carlsbad, a few months ago. Basically, I repeated the same three steps of turning the ignition on without starting the car (referred to, in the Honda vernacular, as  the  "'ON' (ΙΙ) position"), pressing a button on the remote, and then turning off the ignition. Once I repeated this three times, with no more than five seconds between each step, my power door locks cycled and my remote was paired (programmed) to my Accord. All's well and now working as expected.

Friday, May 12, 2017

Kickstarting The Undercover

Moderating a panel of 3rdSpace crowdfunding entrepreneurs.
About five years ago, I joined the 3rdSpace coworking community in University Heights. Around that time, we noticed that some of our fellow members were attempting and failing to raise funds for their Kickstarter projects. So, a couple of us started the monthly San Diego Kickstarter Meetup which spawned a weekly Inventors Club for entrepreneurs actively engaged in Kickstarter projects. At our peak, we had six simultaneous crowdfunding campaigns live on Kickstarter and Indiegogo.


The Undress – The Undercover

The most notable Kickstarter campaign, that taught our group some valuable lessons, was The Undress which is a dress that allows women to change clothes in public, without getting naked. They raised $615,663 in 2014 for their first campaign and then they came back the following year, with an even better version, and raised an additional $248,704.

As a guy, I felt like I was missing out. I wanted a men's version of The Undress – something better than wearing a towel around my waist. Lo and behold, the makers of The Undress launched a Kickstarter campaign, last fall, for The Undercover which is more than a glorified towel for men. The secret to their products is the pockets which allows the wearer to reach inside the garment so they're not scooping under the bottom of a traditional towel and inadvertently exposing themselves to the world. Also, both The Undress and The Undercover are both secured to the wearer so they won't fall off (a common problem that surfers know all too well). The added bonus of The Undercover is that it also doubles (triples?) as a backpack and shorts; and, in a pinch, women can use it to change clothes, too.

What gets me most excited about The Undercover is that mine arrived yesterday and it works exactly as expected. Only an entrepreneur can appreciate how much complex thought goes into producing such a simple product.

Here is The Undercover in action...


The Undercover from Joe Moreno on Vimeo.


Disclaimer: I paid full price for my two Undercovers and I was neither solicited for this post, nor received any compensation.

Thursday, April 13, 2017

When to Bring Software Development In-house

A friend taking an HR course contacted me, this evening, to ask me for my input into her homework assignment. The scenario was that you, the student, work in the HR department at a 75 person company that delivers meals to people. The first version of the mobile app, used for scheduling deliveries, has been outsourced and the CEO believes it's taking too much time and money to be developed. The CEO is considering hiring software and QA engineers to bring development in-house and wants your input.

This a good scenario for the real world and I was happy to share my thoughts. My first question was asking if the company considers itself a technology company. Corporations like Apple and Amazon are clearly high tech companies, so it's a no brainer for them to develop their own software. On the other end of the spectrum would be companies who use custom IT systems, but are not tech companies. For example, Wyndham, where I worked about five years ago, outsourced development of their e-commerce websites and backend reservation systems. Asking a company to determine how they self-identify is a good first step.

Another thing to consider is how often will the software be updated. Modern, high tech companies release new versions of their software weekly or monthly. Facebook is a perfect example of a 21st century company that treats development as an ongoing process, instead of an event, by releasing new software three times each day.

These considerations are simply a starting point for the discussion. If the decision is made to bring development in-house then there are questions about conducting interviews, how to dress, and hearing about candidates real-world experiences.

Tuesday, April 4, 2017

DNS Hijacking?

I have a DNS hijacking theory.

Route 53 is Amazon's elegant DNS web service. DNS is the part of the Internet that converts domain names, like apple.com, into IP addresses such as 17.172.224.47. This is how humans contact computers on the Internet. While DNS is robust, resilient, and redundant, it is the Internet's single point of failure.

So, here's my theory. Websites, like adweek.com, use Route 53:

dig adweek.com ns

returns:

adweek.com. 172800 IN NS ns-304.awsdns-38.com.
adweek.com. 172800 IN NS ns-532.awsdns-02.net.
adweek.com. 172800 IN NS ns-1322.awsdns-37.org.
adweek.com. 172800 IN NS ns-1571.awsdns-04.co.uk.

This means the first time you visit adweek.com, your web browser/ISP will ask one of the Internet's root servers for adweek.com's registrar (i.e., where is the domain name, adweek.com, registered). The root servers will tell your web browsers that adweek.com is hosted at moniker.com (Moniker is a domain name registrar, similar the well-known GoDaddy). The next step is that your web browser will ask Moniker where adweek.com's DNS servers are located. These are referred to as the DNS name servers, or NS for short. As seen above, the response will point your browser to Route 53 which answers with four different servers for redundancy. The final step is that your web browser will query any one of these four servers for the physical IP address of adweek.com. All of these steps happen in the blink of an eye.

Now here's the hijacking part. What if I go to my own Route 53 account, create an entry for adweek.com, and start adding records? When I did this, Route 53 assigned the following four NS servers to me:

ns-715.awsdns-25.net.
ns-1787.awsdns-31.co.uk.
ns-396.awsdns-49.com.
ns-1263.awsdns-29.org.

There should be no hijacking problem since Route 53 assigned four NS servers to me that are different than adweek.com's NS servers. In other words, I cannot hijack adweek.com's Internet traffic in this case. But what if Route 53 had assigned to me an NS server that was the same as adweek.com's NS server? Then, I'm speculating, I could redirect at least a small portion of adweek.com's traffic to wherever I wanted to.

Perhaps this isn't an issue because Route 53 ensures that it never duplicates NS servers names. That would be an expensive proposition, but certainly doable. From there, if my theory holds true, then what about simpler DNS hosts, such as GoDaddy whose DNS servers seem to be limited to nsXX.domaincontrol.com, where XX appears to be a double digit number? This means that many different domain names are using the same DNS server names. Would that make it possible to hijack some traffic from websites sharing the same DNS server? I'm sure that DNS implementations are robust enough that this isn't an issue, otherwise it would have occurred by now. But, with my understanding of the DNS RFC, I don't know how this hijacking issue has been avoided.

So, how has this DNS hijacking scenario been prevented? I'd love to know.



Sunday, March 26, 2017

A Busy Day at the Office

What does a busy day look like?
Ten years ago it was reading and writing e-mails. Today, it's bouncing between Slack, Trello, Basecamp, and Facebook.

More tools seems more complicated, but it actually allows for better filtering of information while establishing well defined boundaries. 

I recently started working as the CTO at It's Borrowed, which is like Airbnb for your stuff. Why not earn money renting out that camping equipment, golf clubs, power tools, or wheel chair that's sitting around in your garage? Looking to borrow a ladder or ice chest? Check the It's Borrowed app.

Since It's Borrowed is a small team of five, I'm also the product manager for our API servers and mobile apps. When I last worked in this capacity at Wyndham we only used e-mail and SharePoint, which was marginal. What made it worse, at Wyndham, was that I had to manually sort and archive e-mails in Outlook, my key communications tool. Otherwise, when my e-mail storage grew to more than about 4 GB, Outlook would stop working reliably. Allow me to digress by pointing out that Outlook's horribly engineered to stuff every single e-mail and attachment into a single file which grows and grows until it eventually collapses in an unpredictable way. Compare that to macOS which organizes your e-mail boxes into an elegant hierarchy of folders; each e-mail (body and attachment), is then stored as a separate file. File systems are much better at managing (CRUD) ten-million 1K sized files than two 5GB sized files.

Workflow Filters

Today's workflow, with Basecamp, Slack, Trello, etc., simplifies my life by managing filters. A ding of an incoming e-mail is an interruption; and a message could be from my manager or my mother, each having a unique sense of urgency and importance.

Here's my workflow when using Slack, Trello, and Basecamp...

Basecamp
When I meet with the business (marketing), we put high level tasks into Basecamp such as "Create an e-commerce shopping cart so people can buy our stuff." Think of the tasks in Basecamp as the business's vision – a high level goal.

Trello
Since I'm the two-way bridge between the business and engineering, I take the vision of the business and break it down into a single engineering task that can fit into a Sprint since we're closely following Agile/Scrum. In Trello, our tech lead has organized boards for each Sprint and the backlog. Each column has a card which is akin to an electronic Post-it note. Inside each Sprint board, we have columns such as Blocked, To Do, In Progress, Review, Done, etc. The blocked column are impediments that I take for action, while the tech lead focuses on the other columns.

Each Sprint begins with the engineers reviewing the backlog along with the CEO and me. The engineers get to pick, from our prioritized list, each task (card) they'll do in the upcoming Sprint. Only the engineer picking the task can assign a weight to a task – a weight, meaning how long it'll take a task to be completed. That part is sometimes a hard pill for management to swallow. But, over time, as engineering delivers on all they promise, management will gain confidence even though they can't interrupt a Sprint with new requirements.

Slack
I think of Slack as Twitter on steroids, across different teams and channels. The key Slack teams are the ones that I have with the engineering department and each individual engineer. Since the engineers fall under the tech lead, I rarely communicate directly with an engineer so as to not interrupt them. This is harder than is sounds when the CEO asks me a pressing question which I could simply have answered by interrupting an engineer. A couple of our channels are automated and tied in to third party services so, at any time, I can see code check-ins or deployments to production in real-time.

The beauty of slack is I can see the history of a channel conversation without having to search through e-mail looking for specific threads.

Discipline is key. As long as the team has the motivation to follow this format then the information will quickly and effectively flow, increasing productivity. It really does work well.



Tuesday, February 28, 2017

The Right Way to Address Bad Service

Customer service is a pet peeve of mine. There's no way for a business to never have a problem. But, what a company does to address the problem is their moment to shine.

I've written many times about stellar customer service here, here, and here. I've also addressed how to get the customer service you deserve. The blog post is one of the latter.

I don't believe in receiving bad customer service and then posting to Yelp about it unless I've addressed it with the business, first, and given them a chance to fix the problem. Today, that happened to me and the business failed.

Blindsided

I've never given anything but 5 star reviews on Yelp. I believe in sprinkling the world with good karma. If I have a problem with a business, then I'll address it, on the spot, to give the business a chance to fix it. Otherwise, I'll let it go. Speak now, or forever hold your tongue. In other words, don't blindside a business with a bad review. Instead, address the issue on the spot with tact and understanding. Tact is the lubricant of human relationships, so use it liberally.

Today, I rented a truck from a local mom-and-pop U-Haul franchise. This is my third time renting from these owners, and, up until now, I was surprised that their seven Yelp reviews averaged out to 1.5 stars. It turns out there's a reason.

The husband and wife team do a good job when everything goes well. But, when something goes wrong, they come across as lazy. My lazy characterization is a combination of my observation, today, and the Yelp reviews.

Today, when I rented my U-Haul truck, I specifically asked for a few extras such as a hand truck, blankets, and a pad lock. The first two items cost extra... no problem, I've rented U-Haul trucks before and I knew that. The last item... the pad lock... is chained to the truck and the key to lock it is on the ignition keychain. When I tried to use the key to unlock the padlock, it wouldn't budge so the owner tried it and she didn't have any luck either. This pad lock is the only thing that secures the back of the truck. I didn't want to leave it parked on the street, overnight, without securing it. Too many homeless in my neighborhood looking for blankets, etc.

When I saw that the owner couldn't open the pad lock, I asked if she could replace it with a working on. She said no. She said that they didn't have any and she recommended that I buy a lock. I asked if there would be a discount and she said no, the pad lock is free. Then I asked if we could get a different truck and she, again, said no because "I have no other trucks," even though there were clearly other trucks, of the same exact model, on the lot. Even if those were reserved, she could swap out the trucks. I have no doubt that she lied to me simply to avoid refilling out new paperwork. She said that she was sorry and she was on her way.

After getting home and trying a bicycle lock, which didn't work, I saw no other option but to buy a new padlock, which I did. Not a big deal, but still an inconvenience, costing me extra time and money. So, it looks like they'll be getting a 4.0 from me on Yelp (my first). Not a big deal for them, since it'll help their 1.5 star average, but perhaps I'm being insensitive. Maybe this husband and wife are on the verge of bankruptcy. Who knows, but they certainly could have done better; or, perhaps I'm too easy going and I was taken advantage of.