Brian Mapes
Random thoughts from my insignificant mind

Gmail and the ‘Plus’ Sign

gmail

Did you know that you can append a plus sign and any combination of alphanumerics after your gmail address and still get the email? I did and I love the feature.

I use this feature for most of my non-personal email corespondents. For example, if I were to provide an email address to the fictional phone company No Cell Service, I’d give them bmapes+nocellservice@gmail.com. This provides two key features. First, I can easily create filters to handle mail sent to bmapes+nocellservice@gmail.com. I can move it to any folder, forward it, mark it as important, or delete it. Second, if I start getting spam emails to this address, I know No Cell Service leaked my phone number, which is easily blockable.

Apparently, many websites don’t know about this cool feature. Discover Card does not accept plus signs in email addresses and they throw up a nice big red message telling me so. Instead I give them a crap email address and forward any email from Discover to my main address. It’s a pain in the ass but I’m too OCD not to do it.

There are too many companies behind on the times that need to get their act together and start accepting the plus sign. Paint Scratch doesn’t accept the plus sign in email addresses, but they are not nearly as graceful as Discover. While making a purchase at Paint Scratch, they gladly accepted my email address with a plus sign. They sent me a confirmation email to bmapes+paintscratch@gmail.com. About an hour later they sent me an email saying there was a problem with my order. The problem was that their credit card program couldn’t handle the plus sign so it ignored it and tried sending the receipt to bmapespaintscratch@gmail.com. The email bounced because it didn’t exist. Doh! Even if it didn’t bounce, it still wasn’t the correct email address. Double doh!

In conclusion, companies should be allowing plus signs in email addresses as the character is legal. If you aren’t willing to do that, then you need to at least throw an error during input or not automatically remove the plus sign and assume the address will still work.


Flyers Get a New Coach; Philadelphia Sports Are Doomed

Peter Laviolette has been fired as coach of the Flyers and is being replaced by Craig Berube.

1381153811000-peter-laviolette-003

If Laviolette was on such thin ice then they should have fired him in the off-season and done a proper coaching search.  I’m not going to bash Berube because I don’t know him well enough to say if he is going to be good or not.  Maybe they would have hired him in the off-season anyway, I don’t know, but at least the team would not be dealing with an in-season system change.

The Sixers are trying to lose but at least they have a plan.  The Eagles are trying to build a young team around a young, high-energy coach.  I don’t have a clue what the Flyers’ (or Phillies) plan or philosophy is.  The Flyers organization is clearly dysfunctional and needs more than a coaching change.  Every move the GM makes turns to crap and the owner has transformed into Al Davis.

One championship in 30 years.  Go Philadelphia.


Thanks for the Memories, Uncle Charile

Charlie Manuel was fired today. Yes, you heard correctly, the winningest manager in Phillies history, who gave us a World Series Championship, was fired.

CharlieManuel

Manuel wasn’t a tactician. The double switch threw him for a loop. Knowing when to hit-and-run was difficult. Determining when to bring in a reliever and which one was troubling. He was loyal to a fault. That said, he was great at managing the personalities of extremely high paid ballplayers and getting the most out of them.

I think Uncle Charlie did the best he could this year. He was given a bad team that had almost no chance of competing regardless of who the manager was. The team has too many aging players. The worst part is they are overpaid and locked up in longterm contracts. Rubén Amaro, Jr is at fault here, not Chuck. By firing Manuel, RAJ confirmed he is an awful GM and doesn’t know what he is doing. He should be fired immediately but the Phillies owners are too tentative to pull the trigger.

Manuel is being replaced by Ryne Sandberg, the so called “heir apparent”. I like Sandberg but let’s remember that he is here because Chicago and Boston didn’t want him. It makes me wonder why and what flaws or baggage he carries around.

I guess it doesn’t matter who the coach is next year, the team will continue to stink until they can get younger and more patient. They need their swagger back. Unfortunately, Amaro doesn’t have the skill set to make any of this happen and we are doomed to have another awful year.


Nicoletta Hope

The last few years have been hell. They’ve left my heart broken and my soul shattered. I’ve shed more tears than I’d like to admit.  Today I still cry but these tears taste so much sweeter. These tears are of joy as I found the thing that will mend my heart and repair my soul.

May I please introduce my daughter, Nicoletta Hope.  2:36 am. 6 pound, 12 ounces. 19.75 inches.

9146517443_3600c6c1bd_c


Things I Want to Teach My Daughter

We are merely one week away from the due date and my daughter can literally be born any day now. When expecting your first child there is much to do and prepare for. Childhood is all about learning and I was thinking about all the things I need to teach my daughter. Here is my list so far. What have I forgotten?

  1. How to make homemade pancakes
  2. How to skip a stone
  3. All the words to Billy Joel’s “Piano Man”
  4. How to make homemade pasta sauce
  5. We need each other
  6. How to order a cheesesteak
  7. How to boo like a true Philly fan
  8. How to make a mess
  9. How to clean up
  10. Don’t belive everything you hear
  11. You are priceless
  12. How to use a drill
  13. Righty tighty, lefty loosey.
  14. How to program an if-else block and a for loop
  15. Just because you can embarrass someone doesn’t mean you should
  16. I’m not perfect
  17. Your mother isn’t perfect either but she is close
  18. When you are young you’ll think I know everything
  19. As you get older you’ll think I know nothing
  20. At some point you’ll find out the answer is somewhere in between
  21. I’ll never put anything, including myself, before you
  22. Please and thank you are very powerful
  23. How to swim
  24. How to build a snowman
  25. How to fly a kite
  26. Promises should never be broken
  27. Sometimes promises get broken
  28. How to throw a ball
  29. How to swing a bat
  30. It is not OK to be weak
  31. Asking for help takes strength
  32. Never stop learning
  33. The world is not black and white
  34. Nothing can make me love you more
  35. Nothing can make me love you less
  36. People will respect you more if you speak up
  37. No one will respect you if you talk back
  38. How to build a sandcastle
  39. Don’t confuse love and like
  40. How to change a flat tire
  41. You may not be a princess but you should value yourself as one
  42. Take pride in your appearance
  43. Appearance isn’t everything
  44. If you’re not 10 minutes early, you’re late
  45. Forgive but never forget
  46. Be able to be self-sufficient
  47. Don’t be afraid to lean on others
  48. If love is not unconditional, it’s not really love
  49. Women can be strong, just look at your mother
  50. Trying is more important than winning
  51. Losing happens to everyone
  52. When you allow losing to become a habit, you become a loser
  53. Work hard
  54. Hard work doesn’t always pay off
  55. Don’t be afraid to get your hands dirty
  56. Be kind to everybody
  57. Some people will try to manipulate your kindness
  58. Some people think I’m too emotionally involved with sports
  59. You can never bee too emotionally involved with sports
  60. Don’t ever wear the logo of a non-Philly professional sports team
  61. You can always come home
  62. How to play bass
  63. I like making up nicknames
  64. Most nicknames I create don’t stick around very long
  65. Family is more than just blood
  66. How to dance in the kitchen
  67. You will always be my baby girl
  68. I will always love you

I Need a Better Estimate

I’m not sure how many times I’ve been tasked with estimating the time it will take to complete a software development project. I’ve already accepted the fact that most of the time I’m asked to do it with unclear requirements, poorly described features, no definition of done, and minimal time to create it. The foundation for this estimate is already shaky but I document my assumptions, quickly describe some scope, and put together my best faith estimate. Far too often, someone, usually a non-technical person such as a project manager, sends the estimate back to me and says, “I need a better estimate.” What?

After seven years in the software industry, I’ve learned to translate “I need a better estimate” to “I need it done faster as your estimate will take too long and I’ve already promised the customer a delivery date even though I didn’t have enough knowledge to do so and now I’m stuck delivering it sooner than your estimate because I’m not going to be the bad guy and tell the customer it’s going to take longer than I said because I screwed up so you need to figure out how to get it done faster.” Whoa. Deep breath.

For the sake of this post, let’s ignore the unclear requirements, poorly described features, and no definition of done, and assume everything is crystal clear. Here is a simple, non-software related example: Bob tasks me with creating an estimate for Rob to drive from Philadelphia to a bank in Pittsburgh.

Tasked with creating an estimate, I take my personal knowledge of having previously driven from Philly to Pittsburgh, I check Google Maps, and I ask if anyone else had any expense with this trip. I then come up with a five hour estimate and add half an hour for contingency. In no time, Bob would be emailing me. “Five hours! I need a better estimate! I promised the customer Rob could get there in three!” So how is it my problem? Oh yeah, I’m the developer. So now I’m tasked not with creating a better estimate, but figuring out how to get it done faster. I always handle it the same way; I put the work back on the Bob.

There are only a few ways to affect a project schedule: time, scope, resources, and quality. Let’s take them one by one.

scope, resources, time triangle

Time

Time is very simple. Bob can always go back to the customer and ask for more time.

Scope

Many times the requirements are relayed without really understanding the problem. By figuring out why Rob needs to get to the bank in Pittsburgh maybe we can find a solution that will take less time. Maybe there is a bank in Harrisburg that will meet the same needs as the one in Pittsburgh? Heck, maybe there is one right in Philadelphia? Maybe Rob doesn’t need to go to Pittsburgh at all and this can be handled over the phone or on the Internet? Maybe someone already in Pittsburgh can go in his place? Again, I put it back on the Bob to go find out the actual problem.

Resources

If Rob is using a broken-down car that only goes 40 miles an hours and dies every 30 minutes then maybe a faster car would make a difference. My estimate assumed he is driving a car that can consistently do the speed limit and has average reliability, so giving him Ferrari isn’t going to make much difference. The Ferrari would allow him to go faster but we’ll assume Rob is going to drive at a reasonable speed. Two cars aren’t going to help much either. Maybe we have access to helicopter or airplane? Can we get a police escort? Again, Bob needs to go find out what additional resources we have access to and then I’ll revise the estimate.

Quality

Rob could run a few lights, drive down the shoulder, cut off other drives, take curves at dangerous speeds, and other crazy things to shave off time. Cutting corners is only going to make things worse. Rob might get pulled over, arrested, or injured. In any case, quality should never be compromised. I’ve been on development teams where quality was sacrificed to meet customer demands. It eats away at your soul. If you are ever part of a team where sacrificing quality is truly an option, quit immediately. You are not only sacrificing quality but you are also sacrificing your personal integrity.

In summary

In some cases you may need to actually improve on the estimate. Maybe your estimate for the drive from Philadelphia to Pittsburgh considered the scenic route though San Francisco. This isn’t the case most of the time. Improving the estimate is all about getting more information, agreeing on assumptions, better defining the requirements, and recognizing resource availably and constraints.


Child of the 90s

I was a child of the 90s and Microsoft did an excellent job of reminding me how awesome the 90s were.

Internet Explorer

While the video is fun it’s not enough to get me to switch back to Internet Explorer. IE 6 and 7 were awful. IE 8 was a step in the right direction but still crap. IE 9 is almost passable as a real browser. IE 10 is actually pretty good but at this point I’m too comfortable with Chrome to think about switching.


Ticketmaster Cutting the CAPTCHA

For years scalpers have been using bots to quickly purchase tickets before they are sold out. In turn, Ticketmaster and many other sites installed CAPTCHAs to determine if the ticket buyer is a human or a bot. CAPTCHAs can be difficult to decipher even for humans and have been annoying customers for years. Ticketmaster isn’t dropping puzzles altogether but rather moving to easier ones by Solve Media.

I’m assuming they are doing this because of customer feedback. I’m guessing they’ve got enough complaints over the years and they may even believe it’s affecting their bottom line. The customer in me appreciates this change as I no longer have to strain my eyes while translating obscure text.

The developer in me finds it even more interesting. This is a perfect example of UX and it also shows that you don’t always have to redesign an entire form to improve the user’s experience. Just replacing a difficult to solve CAPTCHA with a much simpler puzzle goes a long way.


Blog Redesign Once Again

I guess it’s a good thing to never be satisfied and always strive to make something better but I may be taking it too far. The more I looked at the last design, the more I felt it was too busy. This design is super simple. Still need to create the archive page and work out a few bugs though.


Blog Redesign, Again

I’ve redesigned by blog again. There are many small style issues that still need to be addressed but overall I’m pretty happy with the layout and design. This version took me about 20 hours over the course of two months. I took a big step towards the future and embraced HTML5 more than I ever had in the past.



My name is Brian Mapes. I'm a father, husband, Phillies fan, Eagles fan, software developer, technology lover, guitarist, bassist, and MacRumors mod. These are my random thoughts.