Poltical party caucuses are one of the quirkier aspects of American political life: local party members gather in small rooms across the state, discuss their preferences, and send a report of how many delegates for each candidate will attend later county and statewide caucuses to ultimately choose delegates to the national convention. It’s also a system with a lot of room for error in reporting, as local precinct leaders have traditionally sent in reports of votes via telephone touch-tone menus and paper mail. In 2016, Microsoft will help both Democrats and Republicans streamline the process.
From their press release, the following Chevy models will have Android Auto and Apple CarPlay support:
For those unfamiliar with Android Auto or Apple CarPlay, it lets you replace or supplement the infotainment system that comes with your car. For example, you could use a music or navigation app running on your phone, rather than using the software that came with the car. This will be especially interesting 10 years from now (2025!), when you might really wish you had a more up-to-date infotainment system in your 2016 model-year car. These Android and Apple systems make it much easier to update how your car works, especially compared to physically removing part of your dashboard and replacing it. Personally, I’ve been thinking it would be interesting just to leave an old smartphone in the car, charging over USB and loaded with music and maps that were downloaded over WiFi.
I’m especially intrigued by this because I’ve been considering a replacement for our 2003 model-year car, and it’s important to think 10 years ahead for such a big purchase. (After all, we’re using a 2003 model-year car in 2015.) While Android Auto or Apple CarPlay support isn’t likely to make or break our decision, it definitely has its benefits.
The way Microsoft presented the Android and iOS support on stage last week wasn’t particularly encouraging. The way that Projects Astoria and Islandwood—the codenames for Android and iOS app support, respectively—were promoted in the keynote presentation, one might think that the Android and iOS support were pretty solid substitutes for the Universal Windows Apps that are native to Windows 10 on all the hardware form factors it will support. It seemed like porting apps from those platforms would be an effective alternative to any plans to develop native Windows applications.
This is pretty crazy: Windows will support Android and iOS applications through compatibility layers. I don’t really see the iOS layer getting a lot of traction just because it takes a lot of work, but the strong Android support is going to further entrench Android as a platform you can deploy to almost anything (second only to HTML5).
Can’t push commits to GitHub, but need to move them to another clone? Adding another remote is a good option to get you out of a bind.
Why did this come up?
We do a lot of pair programming at Continuity. One of the great things about it is that if someone is out sick, you can usually depend on the other person to know the details of what was happening. But what if both people are out sick and they forgot to push their branch to GitHub and the deadline is today?
(That happened last week!)
The solution described in this post is a little specific to how we pair program remotely. Our team is almost 50% remote developers, and we all share access to the same EC2 instance. We use wemux and vim to pair (among other tools), and the provisioning is automated by puppet.
Back to the tale of the missing pair, one idea that came up was installing another SSH key to the missing person’s ~/.ssh/authorized_keys, but that has a number of problems:
That makes their account a shared account. Because you can’t tell who was using it, if someone did something bad using the account, you can’t easily tell who did it.
If the key is added by puppet (as it should be), that adds a lot of labor just to add a temporary key.
You still can’t push any commits to GitHub without also installing the key there.
Finally, installing keys on another user’s account just feels like a practice to avoid, if no other reason.
Instead, what we decided to do was to become their user via sudo (which is logged) and then push to a local clone of the git repository. That might sound complicated if you’ve only ever used git in combination with GitHub, but it’s actually a lot simpler than you’d think.
What we’re going to do is push the absent user’s code to a shared directory, then pull it to your clone of the repository.
We’ll refer to the absent user as them and the user that needs access to the code as you.
Just to set the stage, let’s look at the normal remotes for a clone from GitHub:
That’s a lot like a private GitHub repo, but without any of the pretty web user interface or authorization management.
I hope this example helps illustrate that git is very flexible and can bend to your needs. If you’ve only ever used GitHub as a remote when using git, you’re missing out on some useful functionality! However, it’s it’s still best to have all your code in a central location, even though you could add a thousand remotes. Like any tool, know when to use it!
Remember that report that claimed Google was preparing to make the Android Wear platform compatible with iOS? Yeah, that might not go down as smoothly as you had hoped. There’s still no official word on Wear for iOS, but the latest news out of the Apple camp has disturbing implications. According to one developer over on the official Pebble Watch forum, Apple is rejecting apps from its App Store simply for mentioning Pebble wearable support.
Yikes. That’s a scary precedent and very clearly anticompetitive.
COUNCIL BLUFFS, Iowa (AP) — Google Inc. wants to expand its Council Bluffs data center spending an additional $1 billion and doubling the size of its staff to 70. […] Google’s total investment in Iowa will come to around $2 billion. […] Microsoft is spending about $2 billion to build two data centers in West Des Moines and Facebook has invested about $1 billion in two Altoona data centers.
It’s exciting that there’s lots of large datacenter growth in Iowa. I’d be interested in seeing a tour of these sometime.
“We were always aware that we were making the first film done on computers, but I don’t think any of us really realized that it was a first, like starting a new way of doing animation in any kind of real sense,” Susman said. “Even to this day, just thinking about doing this talk, it was like, ‘Whoa, we were part of the first of something.’ And that’s pretty special.”
Pioneering in a very real way. These people made something out of just pure creativity.
Google Talk is an instant messaging service that provides both text and voice communication. […] As of March 2015, it is not discontinued — despite reports to the contrary — and officially remains available over XMPP in third party applications.
Google Talk was also the name of the client applications previously offered by Google to use the service. […] As of February 2015, the Windows client ceased to work, with email notifications sent to users who attempt to login, recommending that they try Google Hangouts instead.
In May 2013, Google announced that it would be dropping support for XMPP federation, and it did so one year later. However, XMPP federation is separate from general XMPP support. As of March 2015, Google Talk continues to support clients using the open XMPP protocol. Such clients are available for a number of operating systems not supported by the Google Talk client.
Google retaining XMPP support is great news for chat standards; it makes me think that they’re hopefully going to keep XMPP support for chat for at least longer than I originally expected (but then again, I had low expectations). I especially welcome this news because at home and work, I could have text messages right now in SMS (cell texting), IRC, Twitter mentions, Twitter messages, Facebook, Facebook Messenger, my personal Google Hangouts/Talk, my work Google Hangouts/Talk, Sqwiggle, my personal Skype, my work Skype, Slack, and probably a few others I’m forgetting. I’d really love more services to use standards (XMPP or otherwise) just so I could have one way of checking for messages (let alone respond to them). This is notable because more chat services are becoming walled gardens than ever before; interoperability is something we’ve lost. But maybe things are looking up.
(Speaking of Slack — which I haven’t used much beyond testing — I was very happy to find out that they offer both XMPP and IRC gateways. That’s amazing for a chat service launching in 2013… which is sad statement in many ways.)
Of course, email is a different story — it’s been standardized for a long time, for better or worse — so longer messages tend to go there, whether it’s from an email client, or a service that emails me, like LinkedIn. (I don’t really think it counts if you can’t respond via email, though. GitHub does that really well, but Facebook doesn’t.) Sure, email is the lowest common denominator, but that’s because everyone has an email address. To understand the state of chat in 2015, imagine if you could only email other Gmail users if you had a Gmail account, or Yahoo Mail users if you had a Yahoo account. If that sounds crazy, replace “mail” with “chat” and realize that’s what we’re doing.
Anyway, the above is just a long, drawn out way of saying: it’s not that I don’t like shiny new things like Kik, SnapChat, Viber, WhatsApp, or whatever comes next… it’s just that I have enough ways for people to send me a short message and they all seem pretty much the same, besides who I happen to need to talk to. Honestly, I’m more likely to close accounts than open new ones.
There has never been a good way to compile Classic Mac OS apps on modern OS X – for the most part, you were stuck using ancient tools, either Apple’s MPW or CodeWarrior, running in a VM of some sort. CodeWarrior, of course, is not free, and MPW only runs on Classic Mac OS, which is unstable at the best of times and downright nightmarish when trying to use it for development in an emulator like SheepShaver.
Enter ‘mpw’ (which I will refer to in lowercase throughout as something distinct from Apple’s MPW toolset).
With the same source file, and only a handful of #ifdefs, I could build the same app for 1984’s System 1.0 all the way up to the current release of OS X, Yosemite.
I really can’t think of a good reason to use this… except “because you can.” That said, it’s amazing that this works.