From macOS to Windows 10 - Part 2

November 18th, 2016

I spent this past week only using my loaner Surface Book instead of my trusty MacBook Air for doing my work at the day job. If there is a better of test for figuring out if I can do my regular work in it, I can't think of one.

It Has Linux Under The Hood

In the previous post I talked about how you could get a Bash shell using Ubuntu 14 (I think) running natively on Windows. Well, it absolutely 100% works except for one problem that I had. I was trying to debug a problem with an API using curl and it just wouldn't return anything at all. A quick pop back to macOS and everything was just fine. Still no idea what the issue is, but I think I need to try and reproduce it. I do know that the lead developer for curl works at Mozilla so maybe I can get some help that way.

Otherwise, everything I normally do in the macOS terminal (well, iTerm2) I was able to do just fine in the Bash shell in Windows 10. I was pleasantly surprised.

All the other tools I used for work were just fine:

  • The Atom editor behaved just fine
  • Firefox is cross-platform, everything was just fine
  • I didn't like how our video chat client looked (fonts way too small) but it worked

In other words, I could easily see myself using a Surface Book every day for work. To be honest, if I didn't have access to the Bash shell I wouldn't even have bothered trying to do this.

So what are the last few things I have to try out?

  • need a HTTP client similar to Paw
  • connected to external monitor and keyboard
  • better hosts file management -- Gas Mask is just so good
  • haven't fired up Skype in it yet
  • haven't looked at screencasting software

Next week I should have another update on putting the last touches onto the experience.

From macOS to Windows 10 - Part 1

November 10th, 2016

Those who follow me on Twitter noticed a tweetstorm about my unhappiness regarding the news of Apple updating their line of laptops. I've been using Mac laptops for almost 13 years now (I'm on my third one personally and used ones provided by employers), I own an old iPad 3 and are on my 3rd iPhone (4S, to 6, to 6S+).

I was not impressed at all by Apple's offerings. I am currently using a mid-2012 MacBook Air. I have been happy with it but it no longer fits the needs of the type of work I do. I need to use Vagrant and Docker and they like having lots of memory. 8GB just isn't enough to run virtual machines and containers and modern web browsers and whatever other applications I need open to do my job.

But the price of the latest Apple offering has jumped immensely. To buy a new MacBook Pro with 13" screen, the OLED touch bar, 16GB of RAM,a 512GB SSD drive, and AppleCare will cost me about CDN$3200 including taxes. Holy crap that is a lot of money. When I bought my MacBook Air I payed just a little under CDN$2000 and felt I got a good price.

Now, some of my friends have quite correctly pointed out that this is a device that I will use every day to make myself a lot of money. I cannot argue with that but I can state that I feel like that is an awful lot of money. But that's not what really bothered me.

What bothered me was a feeling that Apple no longer cares about the group of customers that I belong to -- the web developers who adopted their hardware in droves and recommended it to all their non-technical friends. Heck, even my mother bought a Mac after me telling her she'd have a lot less headaches.

So that got me to thinking -- could I do my job on a Windows laptop? To get this out of the way, I won't switch to Linux. I need to record my half of podcasts and want to create screen casts for my side gig. Doing that on Linux just isn't feasible.

Now, I also want a laptop with some of the same aesthetics as a Mac one -- the hardware needs to look nice and feel like the company that made it actually cares how everything goes together. I could easily go with a more utilitarian PC laptop. I don't want to.

So I took a look at the new Surface Book from Microsoft. In the wake of some recent hardware announcements it looks like they have been paying attention to how Apple's line of laptops and desktops has been are changing and are making a play to get more developers back to using their hardware.

The Surface Studio looks amazing. The Surface Pro looks like a weird hybrid tablet and computer. But the Surface Book looks...very enticing.

I have considered it even with costing about $200 more than a similarly-equipped MacBook Pro. It has a touch screen and the screen itself detaches for use like a tablet. My old iPad is showing it's age and I would love a tablet that is responsive and bigger than my iPhone 6S+.

So at TrueNorthPHP 2016 I managed to play around with one of the older generation Surface Books that Elizabeth Smith uses. It reminded a lot of a MacBook. The detachable screen is incredibly light. I was starting to think "this could work".

Luckily for me, my friend Mickey MacDonald from Microsoft has hooked me up with a 30 day loaner of a Surface Book with 16GB of RAM and a 512GB hard drive. I'm going to take one of these for a spin and see if I like it enough to plunk down some money for one of my own.

I got a few days ago and have just started trying to configure it the way that I need it to be. I want to share some of these early thoughts.

Operating System Choices

Yes, I remember how much better OS-X was than previous versions of Windows. Now, I'm just not sure it matters to me. I'm not a power user of any of my systems any more. I prefer a stable experience. Yes, I've used Windows 10 recently -- my wife and oldest daughter have laptops with it on it. To me, it's not a problem.

I also ran Windows 10 for a while via Bootcamp on my MacBook Air. Again, I didn't have any problems. It worked fine. So the OS won't be the issue.

Linux/BSD underneath

Now, this could be a problem. Luckily it seems I can get a nice Bash shell and a flavour of Ubuntu that works. Windows Subsystem for Linux provides me Bash along with all the Ubuntu tools I expect (like apt-get). After doing the Windows update dance I was able to get it up-and-running with no problems. I haz Bash now.

Hybrid Approaches

After seeking some advice from my fellow PHP developers who use Windows full-time it was suggested I use a hybrid approach. First, I should use Bash for everything I normally use the terminal for on OS-X. This means 99% of the time I'm doing stuff in Python with pytest. I did check out some of my work-related code and got it working. Again, that won't be an obstacle.

I was then told to store my Linux-related stuff not in /home/chartjes but in on the C drive. This is so that the Windows apps I would use (like Atom) would be able to read the files there. This makes total sense to me, and it worked like a charm.

To be clear, it's still very early days. But I feel like I've passed the first hurdle. I have installed a VPN client so I can connect to things at work, and next up will be to install some other tools I need (like our video conferencing software).

This weekend I plan on spending some time using the screen in tablet mode. The Surface Book came with a pen, so it should be interesting to see how that works in conjunction with the touch screen.

Next week I'll have another update about actually using it for work!

True North PHP Is Done

November 7th, 2016

"Why are you stopping the conference?!?"

This is the most common question I've been asked since earlier in the year when my conference partner Pete and I decided that we would run our small PHP-centric conference TrueNorthPHP one more time and then shut it down.

While there are some short answers, there are also some very long ones. I did 30 minute closing talk at the end of the conference to talk about my feelings about all this. Since not everyone was able to be there, I thought I'd rehash some of my thoughts on this so others can learn from my experiences and draw their own conclusions.

I absolutely picked the right partner for all this in Pete. I was able to be the hype man for the event while Pete...did pretty much everything else. This, of course, was right in my ego-driven, self-promoting wheel house. Talk all the time about something cool I am doing and what others to participate in? EASY. Make sure speakers are treated the way I wanted to be treated? DONE. Keep everything on track during the event and keep the talk flow going? SIMPLE.

Because of this great partnership, doing the conference never felt stressful. Seriously. We knew what we needed to do, and made sure we got the right help for the things we couldn't do ourselves. The staff at Microsoft Canada did everything we needed...and then some. An extreme pleasure to deal with once we got things rolling, they often anticipated our needs and always delivered.

I know you might not believe me, but it's true -- we set things up so this event would run smoothly with some oversight from us instead of becoming an all-consuming monster like some conferences seem to be for other folks.

So 5 times I asked for people to submit talks, encouraged my old friends and hopeful strangers to submit talks, picked people up at the airport, tried to talk to all of them during the event itself, shook a lot of hands, thanked many people for compliments, and just tried to do what I thought was right.

Clearly it worked because I did notice all the people talking about the event over the years. I'm happy it all worked out so well and I'm happy so many other people looked at what Pete and I did as inspiration for running their own events.

But why did I go along with shutting down such an awesome event. Sure, I could keep doing this another 5 times. But I'm just not wired this way.

When Pete and I hatched a scheme to actually do this, the goal was clear -- run the first PHP-centric event in the Greater Toronto Area since 2006. I also saw that we could bring in some awesome speakers because I had made so many friends while speaking at events myself. The event was smaller than I wanted it to be, but I quickly realized that we couldn't possibly run something bigger than this with just 2 main organizers (Vic Metcalfe helped out so much over the years).

So 5 times we has from 130-150 folks spend the first Friday and Saturday of November learning about programming in a very chill environment.

But it's over. Done. Finished. No more TrueNorthPHP. I did everything I wanted to do with this thing, so to me there was no point in doing it any more. Better to go out while on top instead of let this thing linger and end up a pale shadow of itself. If other people want to run a PHP-centric event in the Toronto area, I'm happy to offer advice. But it won't be TrueNorthPHP.

I'm sure many of you are disappointed. That's okay. Many of you might find it egotistical that I have identified so strongly with TrueNorthPHP being an extension of myself. That's okay too. I didn't do this all just for you, I did it to prove something to myself too. I can now add "was an integral part of a successful developer conference" to my list of "things I did that are awesome".

But I always get restless. Things that were a challenge become normal, and I start doing them without reflecting on their awesomeness. "Running a conference" is now part of that. But don't worry, I'm not going to stop doing them. I'm just taking what I feel is a well-deserved break from doing this soft of stuff. I've spent almost 20 years as a programmer -- I think I've earned a year of relaxing with my wife and concentrating on really small packing up and moving after 13 years to try and find a Compound of Grumpiness in a slightly-rural-but-has-high-speed-internet location.

At some point the restlessness will kick in and I will want to run an event. I have some ideas -- the early feedback seems interesting but it needs to percolate and roll around in my head until I fully figure out what it's going to be. The likelihood of there being a GrumpyCon in 2018 is very strong.

Like I said at the end of my talk, I cannot possibly thank everyone that helped me and Pete put on such a great event over the past few years. Instead, I will say "see you soon".