rc3.org

Strong opinions, weakly held

Author: Rafe (page 38 of 989)

Piracy is about user experience, revisited

Last month, I wrote a post arguing that people illegally download content because it’s convenient, not just because it’s free. Along comes The Oatmeal to make the point in cartoon form. We should all cast a dubious eye on businesses that want to generate scarcity where it doesn’t really exist.

The most interesting feature in OS X Mountain Lion

Panic Software has a long post explaining code signing and Apple’s new Gatekeeper feature in OS X Mountain Lion. Gatekeeper provides a way for developers to digitally sign their applications, verifying their origin, and for those signatures to be revoked so that the applications cannot run any longer if they are shown to be compromised by malware. Users can decide for themselves whether they want to let their Mac run any application or only applications which have been signed. (Or only applications from the App Store, although I think you’d have to be crazy to do that.) What I find particularly interesting about this is that Apple had decided last year to implement much more draconian rules that would essentially force developers into the App Store by making that the only way that developers could distribute signed applications. Wil Shipley beseeched Apple to take another course and allow developers to sign apps themselves. Here’s the recommendation he made last November:

My suggestion is for Apple to provide certificates directly to developers and allow the developers to sign their own code. And, by doing this, Apple can then reasonably say, “Ok, now we’re going to, by default, not allow the user to run any code whose certificate wasn’t issued by us and signed by a real third-party developer (except the stuff the user checks in the control panel).”

Apple then has the power, if any app is found to be malware, to shut it down remotely, immediately. This is a power Apple doesn’t have now over malware, and that won’t come from more sandboxing or more code audits. I have shown the only way to achieve it is to require developers to sign their code with a certificate from Apple.

At the time, I read the post, linked to it, and thought that it made too much sense for Apple to do it. I was pleasantly surprised to see Apple take that advice.

Update: Nelson Minar reminds us that features like Gatekeeper require users to put a lot of trust in the gatekeeper. I think one reason people are happy about Gatekeeper is that it’s such a retreat from Apple’s previous untenable position.

Daniel Jalkut’s post on Gatekeeper is also worth reading. Gatekeeper is important because it’s a step back from Apple’s previous decision to essentially force developers to distribute their apps via the App Store. That was problematic because App Store apps will be required to operate within a very limited Sandbox. Daniel Jalkut argues that the next step for Apple should take is to greatly increase the rights granted to apps in the Sandbox. Even though Apple has climbed back from its stance that would force developers into the App Store (and Sandbox), it is still making some new features of the OS available only to apps that are distributed through the App Store, so it’s important that the Sandbox be flexible enough to satisfy as many independent developers as possible.

How societies save for the future

Matthew Yglesias on how societies stock up for the future:

A lot of the stuff we make has a pretty short shelf-life. Computer software gets obsolete super fast. Clothing wears out. Food spoils (even Twinkies). Durable goods like cars last longer. Airplanes last even longer. But the real durability is in structures. Houses, office buildings, bridges, tunnels, factories, train tracks. As a society, we save for the future by channeling resources—steel, elecricity, human labor power—into the production of things that last a long time rather than things that are more perishable.

This is a point the federal government does not seem to really understand.

I would take issue with his point about software, though. Yes, most software does not last very long, but as we build software, we also build a corpus of knowledge about how to build software more efficiently, and to create more powerful computers to run that software. I would argue that the software industry has created massive social value over the course of its existence.

Should apps have access to your phone’s address book?

The big online privacy scandal of the past couple of weeks has been the discovery that the social networking app Path uploads your entire iPhone address book to its servers without asking for your permission. People were not only surprised that Path does this, but also that Apple lets them do it. Shortly after this was discovered, we learned that lots of other companies upload your address book as well. The Verge has a rundown of which applications access your address book and whether they ask for permission first.

The discussion I’m interested in is what access applications should have to your address book. One possibility would be for Apple to put the same warning on address book access that they put on use of location services, but as Chris Dixon points out, the more often you ask users for permission, the less attention they pay. I don’t like that solution.

Another option is to simply block access to the address book for apps entirely. I would not be opposed to this approach. Yes, social networking apps desperately want to hook you in by making sure you’re connected to your friends, and they want you to invite your friends to the service to grow their user base. What value do users get out of it, though? Automatically connecting to your friends is a small benefit, and in many cases there are other ways to determine who you’re friends with without pillaging your address book. Apple should strongly consider just blocking address book access entirely.

Short of that, the policy solution is to allow access only to applications once a user has acted to grant access for that application without being prompted directly. So, for example, applications that ask users to upload everything in their address book as soon as they sign up would not be allowed, but applications that have a “Search for contacts in my address book” button would be allowed. Whether Apple could enforce that policy is another matter. As a matter of policy, though, applications should not try to access your address book unless you try to use a feature that requires it.

Update: And I managed to get this post in right before Apple announced a policy change that will require explicit permission before an application can access the address book.

Our moral complicity in China’s working conditions

Lately, working conditions in Chinese factories that produce consumer electronics that we all use and love have gotten a lot of press. Mike Daisey has been touring and presenting a one man show, The Agony and Ecstasy of Steve Jobs, on this subject. Portions of it were recently aired on This American Life. Perhaps not coincidentally, the New York TImes published an exposé on Foxconn last month that looked into the poor pay, unlawfully long hours, and dangerous work conditions at the company’s factories.

I’ve been following the subsequent debate. Tech pundit and Apple fan David Pogue responds with what is largely a straw-man filled argument about the price of electronics doubling and the fact that all companies use these factories, not just Apple. Mike Daisey responds ably.

I want to talk about two aspects of it, though. One is the scope of the problem, and the other is the fairness of singling Apple out. As the article points out, Apple is not the only electronics company that manufactures its products in China. Almost everyone does. And of course, we’re only talking about electronics manufacturers. What are working conditions like at Chinese tire factories? Or toy factories? Or the factories where they make buttons for shirts? The story is the same across industry in China, if not worse.

Everybody is in some ways a beneficiary of the low prices that come with China’s low wages and poor working conditions — there’s no room for sanctimony.

On the other hand, I think it’s fair and useful to single out Apple, for several reasons. The first is that it’s easier to rally action against a single company than it is against every company that imports goods from China, or even everyone in the electronics industry. Apple happens to be the highest profile target available right now, for all of the same reasons that the iPhone and iPad are so popular.

The pressure is working. Apple CEO Tim Cook sent an internal email about working conditions to Apple employees the day after the New York Times article talking about steps the company was taking to make things better. It has worked int he past as well. A few years ago, Greenpeace succeeded in getting Apple to improve its environmental practices by singling the company out as well.

Secondly, Apple just reported the best quarter in the history of the technology industry. If any company has the breathing room to spend money to bring all of the links in its supply chain into compliance with the relevant labor law without raising its prices at all. As has been pointed out, the factories that manufacture Apple products manufacture products for other companies as well. If they are required to improve their practices for Apple, then they will most likely have to improve them across the board. So targeting the biggest fish makes sense from that perspective as well.

Is it fair to target Apple alone? If Apple is benefitting in terms of cost through the illegal practices of its suppliers (as Mike Daisey points out, the suppliers are not even complying with Chinese labor laws), then it is perfectly fair to call them out for it, regardless of what every other company is doing. Beyond that, it’s a question of strategy. Would it be fair to boycott Apple and encourage people to buy Samsung phones instead? No, nor would it be sensible. But it makes sense to target your activism where it will have the most impact.

Ultimately, as explained in the National Geographic article I linked to above, labor conditions in China are the result of systemic problems that we cannot address directly. China has a surplus of labor, a weak regulatory regime, and a highly corruptible government system in charge of maintaining that regime. China also lacks the institutions that could counterbalance the conditions that work against laborers. Workers are unable to organize and negotiate with their employers, and are unable to change the state of things via the ballot box.

The reason I keep returning to this subject is that it pricks my conscience. Disentangling oneself from abusive labor practices in China is impossible, but I do think it is the responsibility of consumers to be informed about the origin of the products that we consume. I wasn’t going to post this article because that sounded like such a weak prescription, but it turns out that it’s working. Apple is changing its behavior, and I’m sure that other companies will follow suit. “Pay more attention” doesn’t sound like much, but it has the potential to be quite effective.

Update: This post about McDonalds requiring pork suppliers to stop using gestation crates illustrates why it makes sense for consumer activists to focus on big game. An earlier policy change by McDonalds changed practices across the entire poultry industry.

Old school patent troll Eolas loses a jury trial

Eolas has been tormenting browser makers for over a decade with patents they claim cover browser plug-ins, but last week a jury in Tyler, Texas invalidated their patents after defendants presented compelling prior art. In other words, it took years of litigation and massive legal expenses to do something that patent examiners could easily have taken care of with a Google search. Wikipedia has a useful history of Eolas, including Microsoft’s embarrassing “click to activate” change to Internet Explorer to try to get around Eolas’ patent.

What the economy of the future looks like

Matthew Yglesias makes the argument that Chipotle is the Apple of fast food. America may not be manufacturing consumer electronics, but it is manufacturing more burritos. It’s an interesting and provocative piece.

For what it’s worth, I love Chipotle. Specifically, the carnitas burrito with rice, black beans, cheese, corn salsa, and hot salsa.

Mark Zuckerberg will always be in charge of Facebook

Matthew Yglesias explains how Facebook’s ownership structure insures that if he so chooses, Mark Zuckerberg will have complete control over Facebook for the rest of his life. I find that fascinating:

To purchase a share in Facebook is to bet that at some future point some future person will want to take it off your hands for more money. You’re not getting even a notional slice of control in the company. There are no limits on the CEO’s ability to channel Facebook’s profits directly into his own pocket rather than yours. There’s not even a cheap-talk promise that he’s going to try to maximize the value of your investment. He created the company, he controls the company, he will always control the company, and he’s graciously allowing you to turn some of your working capital over to him.

How to make it as the new developer on a team

I’ve recently had the opportunity to both be the new person on a team and to integrate new team members onto a team that I had been a part of for a long time. Having seen it from both sides, I have some thoughts on how to join a new team without driving everyone crazy. It doesn’t matter how you became a member of the new team, everybody starts in the same place, which is to say, not really knowing the code base or the culture of the team. Learning to mesh well with the culture of a new team is almost certainly more difficult than learning to work in a new code base.

The first thing you have to do when you join a new team is check your ego at the door. It doesn’t matter how experienced you are or how many great ideas you have. At the beginning, your job is to be a sponge and learn as much as you possibly can. Just shut up and listen. Read anything you can get ahold of. Eavesdrop when other people are talking about the project. At the beginning, think of yourself as a spy — gathering as much information as you can without drawing too much attention to yourself. I even try to make it a point to try to figure out the answers to questions myself before I ask someone. The digging involved can be very educational, and showing some level of self-sufficiency will garner respect, at least until you make a big mistake that could have been avoided by asking a few simple questions.

One question I try to avoid until I get to the point of saying “our code” rather than “your code” is “Why?” Figuring out why things are done a certain way is important, but “Why?” is a question that can very easily come across as critical, especially when it comes from someone who’s not really trusted. The truth is that the stuff that makes you want to ask why often really is worthy of criticism. Just let it go until fixing it is as much your responsibility as it is anyone else’s.

The second important thing is to immerse yourself in the code style and coding habits of the team you’ve joined. Everybody who’s been programming for more than a month has their own opinion on whether to put spaces inside parentheses (doing so is crazy) or whether braces go at the end of the line or on the beginning of the next line. The team almost certainly has a policy on whether to use tabs or spaces when indenting. Beyond that, the team probably already has its own answers to more substantive questions about how their code is organized and how they deal with separation of concerns. At the beginning, do it all their way. If you have some ideas for improvement, propose them to the entire team once you’ve shown that you’re a team player. Coming in the door and writing code in your style rather than the team’s style is likely to infuriate at least one other member of the team. Furthermore, immersing yourself in the native culture is the best way to learn. People often have very good reasons for doing things the way that they do, and if you’re busy trying to impose your brilliant ideas on the team, you’ll never learn what those reasons are.

The third thing is to focus on service. Look for opportunities to be helpful wherever possible. The biggest mistake I ever made at a job was listening when the director of the group led us to believe that stuff other groups wanted from us was not as important as the things we were building for him. In the end, we had an unpleasantly dysfunctional workplace, and I found myself looking for another job.

The stakes are high. There are two ways things can play out, depending on the team dynamics. A new person who stomps all over the existing culture of the team will tend to be marginalized by the current members and will face a much tougher climb to build credibility. If the team feels confident in complaining to management about the new guy, they’ll in all likelihood try to get them disciplined or fired. If there’s something about the new guy that makes them seem untouchable (the usual scenario is that they were hired due to a prior relationship with the manager), then the current members of the team will leave. In the end, it all comes down to respect and you gain the respect of the team by treating the team with respect.

Wait, people are getting paid for file sharing?

It turns out I had no idea how file sharing actually works these days. I mean, I know how BitTorrent works, but I didn’t know how sites like the recently terminated MegaUpload worked. TorrentFreak has a good post explaining how they work — specifically how people get paid for sharing copyrighted material — and the effect that the MegaUpload shutdown has had on other sites in the same business. In short, a lot of content has been taken down as a result because people don’t want to go to jail. Interesting stuff.

Older posts Newer posts

© 2024 rc3.org

Theme by Anders NorenUp ↑