|
Oct 23: Seoul:
WebAppsCon Oct 27: Boston:
SD Best Practices Feb 24: Miami:
Future of Web Apps |
|
Wanted: Technical Operations Specialist
at PointCarbon (Washington, DC 20002).
See this and other great job listings at
jobs.joelonsoftware.com.
From my latest Inc. column: Sins of Commissions My dad emailed to add: The same problem arises when you set measurable incentives (money for better test results) in educational policies like No Child Left Behind.
In the spirit of Steve's extremely long blog posts, we ran about 15 minutes long this week.
In the past, Jeff and I have had some audio problems using Skype to record the podcast--mainly, dropouts when we talk over each other. I set up a bunch of new gear which seems to have finally fixed this problem. Here's a description of the new podcasting setup.
At the time, the Copilot team had spent a couple of months stuck in a bizarre Moby Dick-style obsessive hunt to fix a very obscure bug in a very rare edge case in some code which nobody would ever see. There was a loooong period of time there where every once in a while I would ask Ben what was going on and he would say, "we should have AutoUpdate done today." I didn't know what AutoUpdate was, but the eleventh time I heard that it was going to be done "today" I started to detect a pattern. When Jason read Seth's motivational post, probably after drinking a little bit ttoooo mmuucchh ccooffffee, he got really excited by this idea, and quickly sold Ben and Tyler, the developers, that they should try something. In their weakened state from an exhausting chase after one very annoying bug, they probably could have been convinced that it was a good idea to try hang gliding from the roof of our office building to the Statue of Liberty, so they went along with it. To keep focused, Jason instituted daily scrum-like standup meetings. It took about three weeks to get to code complete and about three more weeks of testing and polishing, but lo and behold, it's here: Copilot OneClick! Copilot was originally optimized to be the easiest way to provide temporary, ad-hoc tech support over the internet. It's a remote desktop system that's focused on ease of use, with nothing to install, so it's perfect for tech support departments that just need to get onto a customer's system remotely to fix problems, without asking the customer to install software, change firewall settings, etc. etc. OneClick is a new feature that allows you to install Copilot on the computers you connect to most frequently, and makes re-connecting to those computers a breeze. It's a huge step forward in usability. So, thanks, Seth Godin, for the motivation. Now if I could just get the contractor working on our office to read Seth's blog... PS. Since the summer, we've added a lot of other small features, which I haven't reported here. There's a new monthly $19.95 flat rate plan. Weekends are now totally free (ideal for helping your family and friends). There's also a free 15 day trial. The best way to keep up with these things is to subscribe to the Copilot Blog.
Shanah Tovah u-Metuka!
This would make it easy to plug in laptops, USB peripherals, and all your rechargers at your desk without crawling around on the floor. (The photograph shows a product by Mockett which comes tantalizingly close, but which has knockouts for you to hardwire your own ports instead of built-in LAN and usb hubs.)
You know what drives me crazy? Programmer Q&A websites. You know what I’m talking about. You type a very specific programming question into Google and you get back:
Well, technology has gotten better since those discussion forums were set up. I thought that the programming community could do better by combining the idea of a Q&A site with voting and editing. Would it work? I had no idea. And it looked like there was no way to find out, because everyone at Fog Creek was really busy so nobody had any time to build this. Then, out of the blue, Jeff Atwood called me up. His own blog, Coding Horror, was starting to rack in the dough, and he was trying to figure out if that meant he could quit his day job and just blog. Pattern-matching rules fired in my brain. The hardest thing about making a new Q&A site is not the programming—it’s the community. You need a large audience of great developers so you have the critical mass it takes to get started. Without critical mass, questions go unanswered and the site becomes a ghost town. I thought the combination of my audience (#15 on Bloglines) and Jeff’s (#89) would bring enough great developers into the site to reach critical mass on day one. So Jeff and I decided to go in together on this. We’ve been working all summer to build the site. OK, that’s extremely unfair. Jeff Atwood, together with two of his friends, Geoff Dalgas and Jarrod Dixon, have been doing most of the building. I just chime in with advice once in a while, which Jeff justifiably ignores; you can hear the process in our weekly status phone call, publically available in the form of the Stack Overflow podcast. In the beginning of August, the beta opened to a small group of just a few hundred developers. After a very short, five-week private beta, we’re opening Stack Overflow to the public today. Here’s how it’s supposed to work. This is a community project, so I’m being careful to avoid saying this is how it will work… that’s up to the community. But this is roughly what I have in mind. Every question in Stack Overflow is like the Wikipedia article for some extremely narrow, specific programming question. How do I enlarge a fizzbar without overwriting the user’s snibbit? This question should only appear once in the site. Duplicates should be cleaned up quickly and redirected to the original question.
Already, it’s better than other Q&A sites, because you don’t have to read through a lot of discussion to find the right answer, if it’s in there somewhere. Indeed, you can’t even have a discussion. A lot of people come to Stack Overflow, not knowing what to expect, and try to conduct a discussion when they should be answering the question. The trouble here is that answers are always listed in order of votes, not chronologically, so the discussion instantly becomes scrambled when the votes start coming in. Instead, we have editing. Once you’ve earned a little bit of reputation in the system (and there are all kinds of ways to earn reputation), you can edit questions and answers. Fred asks: How do I keep from overwriting the user’s snibbit? Kathy answers: Normally the user’s snibbit will not be overwritten. Are you enlarging the fizzbar? Fred answers: Yes. And it’s getting overwritten. BZZT! WRONG! Fred just made a mistake… he provided an answer which isn’t an answer. VOTE IT DOWN! Chastised, Fred edits his original question, changing it to: How do I keep from overwriting the user’s snibbit while enlarging the fizzbar? Now Kathy can answer by editing her previous answer. And you’re left with a nice clean single-question, single-answer, instead of a lot of boring discussion that would be unnecessary flotsam to the next person to come along with snibbit overwriting problems. There are lots of good ways to edit things. You can improve spelling, grammar, and even copy edit any question or answer to make it better. After all, for the next 20 years, this question will be the canonical place on the web where programmers will come to find out about enlarging fizzbars without overwriting snibbits. Anything you can do to clarify, explain, or improve the question or the answer will be a public service. If there’s code in the answer, you can debug it, refactor it, or tweak it to make it better. You can also improve on the answers. If an answer is incomplete, expand on it. If an answer has a bug in it or is obsolete, you can edit it and fix it. Because Q&A in Stack Overflow are editable, you can safely link to a Stack Overflow permalink knowing it will always have a good answer. Stack Overflow won’t have the problem of other sites where obsolete or incorrect answers have high Google PageRank simply because they’ve been on the Internet for so long. If someone finds a security bug in an answer, it can be fixed… it won’t keep coming up in Google’s results for years and years poisoning future code.
In addition to voting on answers, you can vote on questions. Vote up a question if you think it’s interesting, if you’d like to know the answer, or if you think it’s important. The hot tab on the home page will show some of the highest-ranked recent questions using an algorithm similar to digg or Reddit. If you’re generally interested in programming and want to learn something new every day, visit the hot tab frequently. Want to test your knowledge? Visit the Unanswered tab. Right now, you just see a list of questions with no answers (and there are very few), but in the near future, we’ll actually tailor the list to show you questions that we think you have a chance of answering, based on questions you’ve successfully answered in the past. We have tags. Every question is tagged so, for example, if you’re a Ruby guru, you can ignore everything but Ruby and just treat Stack Overflow as a great Ruby Q&A site. A single question can have multiple tags, so you don’t have to figure out which single category it fits in best. Like everything else, the tags can be edited by good-natured individuals to help keep things sorted out neatly. And you can have a little fun: stick a homework tag on those questions where someone seems to be asking how to delete an item from a linked list. Don’t combine multiple answers. For example, suppose someone asks What are your favorite keyboard shortcuts in Emacs? Well, I could list them all in one answer, but how does anyone vote on that? Instead, I’ll provide a bunch of separate answers, and let people vote on the answers. And in fact, if you see a question which is really a poll, do me a favor, go in there and edit it: What is your single favorite keyboard shortcut in Emacs? (One shortcut per answer, please). What kind of questions are appropriate? Well, thanks to the tagging system, we can be rather broad with that. As long as questions are appropriately tagged, I think it’s okay to be off topic as long as what you’re asking about is of interest to people who make software. But it does have to be a question. Stack Overflow isn’t a good place for imponderables, or public service announcements, or vague complaints, or storytelling. I’m extremely excited about Stack Overflow. It’s fast and clean. It costs us practically nothing to operate, so we won’t need to plaster it with punch-the-monkey ads; we plan to keep it free and open to the public forever. And it might make it a little bit easier to be a programmer. Now that DropBox is shipping, there's finally a good way to manage all your passwords. This system works no matter how many computers you use regularly; it works with Mac, Windows, and Linux; it's secure; it doesn't expose your passwords to any internet site (whether or not you trust it); it generates highly secure, random passwords for each and every site, it's fairly easy to use once you have it all set up, it maintains an automatic backup of your password file online, and it's free.
That's really all there is to it. There is one optional step:
The site itself goes live Monday. This weekend, Fog Creek is finally moving into the big new office space we've been working on since last March. These things take FOREVER. The new office will be:
Also, thanks to Jeff Atwood, it will have Rock Band. Today, the company came down to tour the construction site and pick offices. Haworth didn't come through for me... their moveable walls take so long to manufacture that we're literally going to have to move in without walls and doors, which will arrive about 6 weeks late. The new kitchen: I'll have more detailed pictures for you once we get moved in.
We talked about the deadlock that was fixed, which was the last thing holding up the public beta... caused by a very small bug in third party libraries, which is exactly why I've always had a bias against using third party libraries. I tell an interesting story about why the Excel team had their own compiler. And I explain to a listener why Jeff never listens to me. Thanks to everyone who came to the Business of Software conference and made it a huge success. The speakers were all incredible, the attendees were fabulous, even the food was pretty good for a convention center. P.S. The Conversations Network, a not-for-profit organization which hosts our podcast, is looking for sponsors for their podcasts, including this one. It would be a very modest, NPR-style intro at the beginning... "The StackOverflow Podcast is brought to you by Gummy Bears, Inc., bringing fine chewy treats to grubby children everywhere." If your company might be interested in sponsoring the podcast and becoming a hero to developers worldwide, or at least the eight developers who listen to the podcast, please email me.
Jeff and I spent some time talking about the home page for StackOverflow. What goes there? What does it mean to vote on a question? We also talked about Aaron Swartz's article on How to Launch Software. Big-bang launches can be disasters (viz.: cuil); quiet, gentle launches without announcements where you slowly build can work a lot better (viz.: Gmail). Will StackOverflow's launch overwhelm our servers and underwhelm our audience?
From my latest Inc. column: How I Learned to Love Middle Managers When Apple’s iPhone 3G came out, I was pretty sure I’d get one. It had all the features I was waiting for. But the lines just weren’t going away. I searched Twitter. For a week, then two, every day brought fresh reports of five-hour waits. And then the reports of bugs started coming in. The Exchange synchronization features weren’t up to snuff, I heard. The phone crashed regularly, I heard. Basic operations were painfully slow. Battery life was abysmal. Adam Curry suggested getting a Nokia E71. I had never heard of this thing. Nokia? Really? For years I had always thought that Nokia made chunky Europhones that were always just one button short of a usable user interface. But, no, the more I investigated, the more it seemed that the E71 was a truly credible alternative to the iPhone 3G. The reviews coming in from Europe were stellar. There was one hitch: it didn’t seem to be on sale over here. There was one last hope. Around the corner from the Apple Store on Fifth Avenue, Nokia had opened a pricy boutique where they sold unlocked, unsubsidized cell phones, mostly to foreign tourists who invaded New York to take advantage of our banana-republic currency.
“I have a demo model you can look at,” the guy said. It seemed very sleek. Smaller than the iPhone, all metal, nothing chintzy… with the best keyboard I’ve ever used on a phone. “They’re not on sale until tomorrow… if we have any left after tonight’s super-exclusive launch party. Which is invite only,” he emphasized. I’m shameless. “How do I get invited?” “Well, um, put your name on this list.” He gave me a blank piece of paper. “And come back at 6 pm.” Which I did. There was a short line of a dozen Nokia fans—a somewhat ghetto version of the five hour iPhone lines. Within minutes, I had my E71, and they even helped me with the arduous task of popping in the SIM. Plink! It worked! I’ve been using it for a month now, and I’m completely sold. This is the best phone I’ve ever had. I love it. Now, don’t get me wrong: I think the iPhone is brilliant. The Apple iPhone is truly an inspired piece of design that pushed the state of the art and then went about ten steps further. If the iPhone competed in the Olympic swimming tournaments, Michael Phelps would have just retired on the spot and given up swimming for life. For many people, the iPhone 3G is perfect. I thought that it meant “game over” for all the other handset makers. But Nokia is a fantastic company and they weren’t going to give up that easy. Their new E71 is a fantastic phone, clearly inspired by the competition, and the game is not over. There were three reasons I was looking to upgrade.
The E71 met most of these requirements. It’s got a decent music player, a built-in podcasting client (so I can download podcasts directly instead of going through my desktop PC), and it’s even got an FM radio. There’s a third party software app called JaikuSpot which uses the 3G connection and the WiFi in the phone to turn your phone into a mobile hotspot so you can surf from your laptop. When I tried JaikuSpot, it kept dropping the connection, so I can’t say that was the perfect experience, but I’ll keep trying. Nokia’s built in Exchange synchronization is very 1.0. It doesn’t know about folders, which means there’s no way to get things out of my inbox into an archive folder after I deal with them. This was unacceptable. It meant I would have to go through all those emails again when I got back to my desk. But there’s a third party app, DataViz RoadSync, which handles Exchange synchronization and does support folders, and that works perfectly. There are some other great features I discovered when I really got into this phone. The GPS is great fun. It doesn’t work indoors. It doesn’t work in the city where the sky is a distant memory. But it works when you’re out in the country, and it’s really fun to get Google Maps satellite images showing exactly where you are. That is, if you’re not so far out in the country that there’s no cell reception. Combined with the 3 megapixel camera, if you’re really lucky, you can snap pictures and then upload them directly to your Flickr account, and the picture will be tagged with its exact location. You have to be pretty lucky for this to work: getting the GPS to find enough satellites is not always possible.
The fit and finish of this phone is amazing. It’s the slimmest Nokia I’ve ever seen: smaller in every dimension than an iPhone. It feels solid. The keys on the keyboard are really clicky and extremely easy to type with, especially combined with the predictive word autocomplete. (Why don’t desktop word processors have autocomplete yet?) The battery lasts a couple of days under heavy use, and is easy to replace, so I keep a spare around for those days when I forgot to charge the phone. The call quality is the best I’ve ever experienced. After years of using junky phones I literally did not know cell phone calls could be this good. The external speaker (for hands-free operation) is the loudest I’ve ever heard. The phone will announce your callers by name using a synthesized voice. There are probably dozens of other features buried in here which I haven’t found. I think there’s a second camera in front for video calls but I’m way too old to figure out how to make that work. The music player is adequate, but not great. It’s amazing how something as simple as playing MP3s is so fraught with minor problems… Apple makes it look easy to build an MP3 player, so when someone else tries, it’s always surprising to see just how hard it is to get right. On the E71:
The built-in browser was decent, but ignore that… just install Opera Mini, which is stellar. I still haven’t found a website which doesn’t display respectably on this phone with Opera Mini. There's a built in GPS map application, which always freezes. Ignore that, too. The free Google Maps is better. This phone is inevitably going to be compared to the Apple iPhone 3G, so I might as well list the big pros and cons of each.
In any case, it’s the best phone I’ve ever had and I’m loving it.
“I pass six Starbucks every morning on my walk to work. Just to clarify, that's counting only the Starbucks that are actually on the west side of Eighth Avenue in midtown Manhattan. I think there are some branches on the east side, but that side remains terra incognita for me; for most New Yorkers, micro-optimizing the walk to work is a matter of habit, and I have no reason to cross the street. For all I know, the other side of Eighth Avenue consists of nothing but pachinko parlors and flea circuses. Wouldn't surprise me one bit.” From my latest Inc. article: Good System, Bad System PS: I've got a new book out: More Joel on Software is the second collection of articles from the archives of this site. My new book is here! Apress has just published a new collection of 36 essays from Joel on Software, aptly named More Joel on Software. Get yours today! Available from Amazon.com or wherever fine cheese is sold. About the Author: I’m your host, Joel Spolsky, a software developer in New York City. Since 2000, I've been writing about software development, management, business, and the Internet on this site. For my day job, I run Fog Creek Software, makers of FogBugz—the smart bug tracking software with the stupid name, and Fog Creek Copilot—the easiest way to provide remote tech support over the Internet, with nothing to install or configure. Enter your email address to receive a (very occasional) email whenever I write a major new article. You can unsubscribe at any time, of course. |
I'm your host, Joel Spolsky, a software developer in New York City. Since 2000, I've been writing about software development, management, business, and the Internet on this site. More about me.
There's a complete archive of everything going back to 2000. The home page is reserved for minor, ephemeral thoughts, but occasionally I write a longer article. You can sign up to receive email whenever this happens at the bottom of this page. We also have one of those RSS thingamajiggies. If you don't know what that is, consider yourself lucky.
This site is actively translated by volunteers around the world into more than thirty languages.
Want to hire great developers? Looking for a job that doesn't suck? Over 200,000 great programmers read my job board at jobs.joelonsoftware.com.
Have feedback? There are several popular discussion boards on this site: Joel on Software
Business of Software Design of Software .NET Questions TechInterview.org CityDesk FogBugz Fog Creek Copilot You can also email me directly, although my mailbox is an official disaster area.
For my day job, I'm the CEO of Fog Creek Software, a bootstrapped software company in New York, NY.
We also make Fog Creek Copilot, which lets you control someone else's computer (with their permission, of course) over the Internet. It's the best way to fix someone's computer problems remotely. There's nothing to install, it's simple as heck, and it works through any kind of firewall, NAT, or proxy situation with zero configuration. More
If you're in college, Fog Creek Software has a very cool paid internship program (last year's interns developed Copilot in one summer). We also run a Software Management Training Program, an intensive two year program for college graduates to learn about managing high tech that combines a Masters in Technology Management with extensive hands-on experience in a variety of positions.
Wondering what it's like to develop software at Fog Creek? The documentary Aardvark'd covers the story of the development of Copilot. It's available on DVD.
Fog Creek co-founder Michael Pryor has his own site on Technical Interview Questions.
© 1999-2008 Joel Spolsky. All Rights Reserved. Linking, quoting and reprinting
|
|
| Home | Email | Bug Tracking Software | Remote Assistance | Complete Archive | ||