About Jacob Mather

Posts by Jacob Mather:

What to learn to be a better developer

Back in 2013, I gave a brief talk at php[tek] which was about all of the things you need to learn along the way to be a developer. I promised I would put up the list from my notes — and as you can see from the date, I pretty much failed on that promise. However! I found the notes! So without further adu…

PHP Coder

  • Broaden your general PHP knowledge
    • PDO
    • Namespaces
    • OOP
    • PSR-0 (and other PHP-FIG initiatives)
  • Code versioning (Git, SVN, anything…)
  • Dependency Managers (Composer!)

PHP Developer

  • Design Patterns
  • SPL
  • Unit testing
  • Basics of encryption
    • Public and private key encryption specifically
  • Code smells

Web Developer

  • Javascript
  • HTML & CSS
  • UI integration tests
  • Protocols
    • HTTP
    • HTTPS
    • SMTP
    • TCP
    • UDP
  • Learn about build automation tools (phing, make, ant, jenkins, travis)
  • Learn about deployment automation (capistrano, dploy.io, etc…)
  • Pick up some solid Linux administration skills
  • Code smells (MOAR!)

Software Developer

  • Pick up more languages
  • More design patterns
  • More code smells
  • Better your testing approach
  • Programming styles
    • Procedural
    • Imperative
    • Functional
    • Object Oriented
    • Event Driven
  • Build on a new type of platform (notice the “web” in “Web Developer” went away up there?)
    • Build a desktop, or mobile app.
    • Build a server daemon.
    • Build command line tools.
  • Learn to do Security Model assessment

Software Evangelist

  1. Pick a new thing to learn, and learn it!
  2. Teach others what you just learned
  3. GOTO 1

A website for San Francisco PHP

So it’s time we made a real push to connecting more with the members of the San Francisco PHP User Group. To that end, step one for any web-savvy group is always a website!

Why?

I want to get a website built for SF PHP to allow us to better support and engage the PHP community: both the developers and engineers (however you wish to label yourselves) working in it, and the companies relying on it. I want to connect those two groups in meaningful ways to help promote the adoption, growth, and sustainability of PHP in the Bay Area, and beyond.

The purpose of the project I am looking at, at the moment, is to get the ground work in place. We need a basic site with a simple CMS system at first, but I want to add a lot of functionality to it eventually — incorporating logging in via the Meetup.com API, talk archive, videos on the site, articles by local developers, technology articles by local php companies, eventually hooking into a custom sf php mobile app for the meetups themselves – so I think starting from a custom stack is the way to go.

Secondarily, I would like the core group that builds the initial prototype do a dual-purpose meetup (perhaps in series, however it works out) which will both cover “introduction to Zend Framework 2” and “Here’s how you hack on our site to add new features.” There’s a bit more I’m trying to work out with this, but I don’t want to say anything publicly until I know for sure.

The Mockup

mockup

 
I’m not super married to anything design wise, just trying to get some of the structure in place.

That center bit will either show:
– Next meetup
– Live meetup stream if a meetup is currently happening and has a live stream available
– The last meetup’s video
– Recent articles if there’s a given amount of time between the last meetup and the next one. Perhaps at that point we would put the last meetup’s video where the speaker bio is and have the recent articles in the zone on the left.

Basing it off of bootstrap or foundation would let us iterate faster in the group, I suspect, but I don’t necessarily have a preference.

Introduction to building a programming language

I gave a talk at San Francisco PHP last week all about what it takes to start building a programming language. For the example, I have built out a small implementation of PHP in JavaScript I called PHP.js. We talked about the process of what it takes to build a programming language, as well as why programming languages are made, and some of the decisions that get baked into them while doing so. It was a fantastic group of people and I had a lot of fun giving the talk.

Additional resources:

Social media in the physical world

So one of the things I have been seeing more and more are meat-space kiosks that are enabling (and encouraging) you to interact with them by sharing the activities you participated in via your social media identities.

How are they doing this? By having you type your credentials directly into the kiosk. Not only is this a Really Bad Idea(tm) but even the act of encouraging the generally non-security-savvy population that this is a “thing” is horrifically scary. No longer do you need to click on a phishing email to lose your password, all you have to do is buy something from a kiosk which has this configuration in it, from a kiosk which has been hacked. Oh wait, it’s not like that ever happens, right? Certainly Target would never get hacked, and if Target is safe, well, maybe the little guys will be fine too.

This is a patently Really Bad Idea but I don’t think it’s going away, so what I propose is this: sites and services that consider themselves identity providers (a.k.a. you offer OAuth login credential verification for third party sites/apps/projects/whatever), with their mobile app, should provide an easy way to generate a limited-time-use OAuth token, and then provide a way to display it via QR code, or similar.

Granted, this would require adding a webcam to the kiosks, but webcams are dirt cheap, and the net positive for everyone involved. Heck, I bet it turns out to be so much more user friendly that the rates of those social participation options becomes more frequent. Imagine Retailers could even, with this new, nearly painless, option, even offer users a chance to tweet, or post a status, about their in-progress transaction to receive some sort of discount, or special offer.

Bottom line: let’s get real and not encourage the general population to foster insecure password management choices. Entering your password (which is statistically likely your password to everything) into a public kiosk which exists in an unknown state of security is a bad idea, every time. Making it normal is an even worse idea. Let’s wrangle this under control before it becomes even more wide spread.

The history of today

Would you believe that a year and a half ago, today, I don’t believe I had even considered actually attending a conference?

Then through a twist in fate, I ended up at Symfony Live 2012 in San Francisco, and something clicked.

In the 6 months that followed, I became co-organizer of the Ann Arbor PHP user group, went job hunting, and accepted a position at Mashery. Exactly 1 year ago yesterday, my wife and I said goodbye to the house we bought to build our family, and my daughter said goodbye to the only home she had ever known. Exactly one year ago today, we arrived in California, in the Bay Area, our lives changing, irrevocably. We knew it would be an adventure, but we didn’t know quite what we had in store for us.

Nothing symbolizes that change more, actually, than how we ended tonight. For those of you who don’t know, I am traditionally a very, very, very picky eater. Vegetables were the enemy, and trying new things was extremely rare. Through very careful introduction and an enormous amount of patience, my wonderful wife has gotten me to (relatively) vastly expand the range of foods I am willing to eat and try. So how did we celebrate tonight? We walked down the street to the local indian restaurant, where I enjoyed some Chicken Tikka Masala. Ok, actually I enjoyed a lot of it.

My family and I eating at Sargam Indian Cuisine

My family and I eating at Sargam Indian Cuisine

I also ended up going to a lot more conferences, speaking at them, even – which unfortunately puts extra stress on my wife, who has consistently been above and beyond far nicer about how that deal works for her than I would be in her shoes. Raising a child with someone is hard enough all on it’s own. When one of them is out of it completely, not only does your only backup go away, but the child may get upset as well. I’ve watched my daughter alone for at most, I believe 4 days straight. My dear wife has had several multi-week stretches, one of which lasted for 6 weeks. I just landed Thursday from 5 days away and I’m headed out for nearly a week and a half on Thursday. I say near enough because I get to see them over-night next Wednesday. Woohoo!

The one constant in all of this is my wonderful wife, backing me up, and constantly performing amazing feats of ex parte parenting. I’ve heard stories that leave me surprised I even have a daughter still.

One year ago today we leaped, together, into the future. It’s amazing how fast the time has gone.

twitter