Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×
User Journal

Journal Journal: Thoughts on leaving the computer industry. 3

I got my first job writing code right out of high school, working on games for a cable TV company at a startup called Pegasus Systems in Falls Church, Virginia. That was in 1982.

Since that time, every couple of years I've carefully considered what specialty I thought would be most interesting to work in for the near future. In 1982, it was computer graphics. In 1984, it was the Mac. In 1989, it was NeXTSTEP.

I'm a far better coder now than I ever expected to be, and that's due to what I've been able to learn from the incredibly smart people I've worked with in this industry. Seriously, some of those guys are scary smart.

I've worked in businesses ranging from three-man startups to the most valuable company in the world, I've had some great bosses (and smattering of idiots), and learned a lot about management from them.

In my first stint at Apple, I was an engineer in a marketing department, and from what I can see, Apple's marketing is the best in the world, and I'm grateful for what I learned there, too.

So now, I have an opportunity to get into an entirely different line of work, developing technologies that will make a major difference in the amount of energy we all use for heating and cooling. I'm a complete beginner in this field, but once again I've got some brilliant colleagues to show me the ropes. 2017 is going to be an exciting year for me, and I can't wait to see how it turns out.


User Journal

Journal Journal: FizzBuzz in Swift

The following is my prepared answer for anyone who asks me this stupid fucking question in any interview in the future.

extension Int
  func modBool(modulus: Int) -> Bool
  return (self % modulus).boolValue
for x in 1...100
  print((x.modBool(3) ? "" : "Fuck ") +
    (x.modBool(5) ? "" : "You") +
    ((x.modBool(3) && x.modBool(5)) ? "\(x)" : ""))


User Journal

Journal Journal: Three years after Steve died... 1

I don't think I've written this down anywhere before, so here's my story about the first time I had a face-to-face conversation with Steve Jobs.

I was working for Richard Kerris in Apple Worldwide Developer Relations, on a group called the SWAT team. I was the Cocoa expert on that team, and I had colleagues who had expertise in UNIX internals, Windows development, and the Metrowerks tools.

Our role was to help third-party developers bring their products to Mac OS X, whether they were coming from Windows, Solaris, Mac OS 9, etc. We would look over their code, and consult with them on how to go about porting and/or rewriting their products for the new platform.

I went to Fred Anderson's retirement party which was held at Cafe Macs in Building four of the Infinite Loop campus. I saw Steve there, and I went over to introduce myself. I said "Hi Steve, I'm John Randolph. You may or may not recognize my name, but I used to flame you from time to time before I worked here." He asked me "Why did you stop?" I told him "Well, I work here now, and I respect the chain of command."

At the time we had this conversation, there was a big fight going on between the foot-dragging laggards who wanted to keep using the old Mac Toolbox API (which had been cleaned up considerably and put into a framework we called "Carbon"), and those of us who wanted to get everyone using the NeXTStep-derived "Cocoa" frameworks,

At the previous WWDC, Steve had started the keynote with a bit of theater: a coffin had risen up through a trap door on the stage, in the midst of a cloud of dry ice fog. Steve had opened the coffin to show a big Mac OS 9 box, and he praised OS 9 in a eulogy, to make the point that Apple developers should consider it dead and gone.

So getting back to our conversation.. I told Steve what I was doing on Richard's team, and I said "I know that you can't do this politically, but I wish you could have another coffin on the stage at the next WWDC...." and he said: "With Carbon in it?"

He was grinning. At that point, I realized that I could quit worrying about where Apple's development environment was heading. Steve knew what we needed to do, and in the years that followed, Apple has kept the best of NeXT's technology, and let go of what we didn't need.

We miss you Steve, but we're doing fine. Thanks for the things you made happen.


User Journal

Journal Journal: The tragedy of brain-dead apparatchiki entrusted with the care of children. 6

Earlier today, I read an account of a little girl getting a severe sunburn while on a school field trip, because of an unconscionable policy prohibiting children from possessing sunscreen while at school or on school activities. I looked up the name of the spokesman who had the nerve to try to defend this policy to the press, and wrote her the following e-mail:

Miss Chancellor, you and the pinheads you serve in the Northeast Indecent School District are a tragic example of the kind of abject incompetence that pervades American public schools in the past several decades.

I would urge you to resign and pursue employment in the janitorial services industry, but youâ(TM)re obviously too goddamned stupid to be trusted with cleaning supplies.


Well, it would appear that Miss Chancellor was offended by my criticism, and she replied thusly:

Your comments do not warrant an intelligent response. Clearly - you do not have all the facts.

Now, it's rather unusual for an apparatchik in a shitstorm to bother to respond to any of the angry e-mails they get, so naturally I have replied:

On Jun 6, 2014, at 10:26 AM, Chancellor, Aubrey wrote:

>Your comments do not warrant an intelligent response.

Since youâ(TM)re entirely incapable of an intelligent response, that just works out fine and dandy now, doesnâ(TM)t it?

>Clearly - you do not have all the facts.

The fact is that when you screw up like this, the thing to do is apologize and promise the parents, the child, and the rest of the community that it will never happen again. You donâ(TM)t double down on your idiotic policy of depriving children of sunscreen.

When children are entrusted to you by their parents, your paramount duty is to ensure their safety and well being. it is NOT to sacrifice their welfare to your psychotic need for obedience.


More on this as it develops. Start the popcorn.

User Journal

Journal Journal: Throwing in the towel on Facebook. 7

Last post to FB:

In the time since I created this Facebook account in 2006, I found a bunch of old friends, met many new ones, wasted a whole lot of time, had some arguments that never would have happened in real life, and been frequently annoyed by the business decisions FB has made.

This post will be my last. I will delete this account 48 hours from now. Those of you who want to keep in touch can reach me as always at, which I've had for at least a decade.

All's well that ends. I wish you all peace, love and happiness.

It feels like leaving high school. There are people there that I will always care about, some that I love, some that I barely know, some that I have no idea how I met in the first place or why they're in my FB friends list.

A very smart friend of mine is working on changing social media from a site and a vendor that sells the users' info to advertisers, into a protocol that would operate on a peer-to-peer basis, with strong security to ensure that what we write goes to those we wish, and no one else. I hope he succeeds, and I look forward to making a fair bit of cash shorting FB when the writing appears on the wall.

  I will thank my friends who worked on FB, and every user there who ever shared a heartwarming, interesting, inspiring, or even outrageous bit of information that I wouldn't have found otherwise. Congrats to all the FB millionaires and worker bees, I wish them all the best.

I'll still be NSResponder here on /., on StackOverflow and Twitter. The internet is still a lot bigger than Facebook, and I'll see you all around.

User Journal

Journal Journal: Well, that about wraps it up for e-trade. 2

E-mail to Neal Martin, E-trade's vice president of customer service:

Well Neal,

I doubt that this message will actually get to you personally, but what the hell.

After the fracas over the last few weeks in which e-trade failed to issue me a second ATM card, I finally got around to transferring the bulk of my shares to a competent broker.

The automatic mail from e-trade notifying me of the transfer included this paragraph:

E*TRADE strives to achieve best in class service and is focused on meeting all of your financial needs. We would like to understand your reason for your transfer out and see if there are any improvements we can make to serve you better in the future. If you have the time to discuss, please call us at 1-800-ETRADE -1 (1-800-387-2331).

The fact is, after going around with your underlings a few times on my requirement for a second card, and having told each of them several times that this was a deal breaker, I know that the claim that youâ(TM)re âoestriving to achieve best in class serviceâ is nothing but marketing drivel. Indeed, my direct, personal experience has shown me that my business isnâ(TM)t important enough to get on the radar of anyone who would actually solve the problem.

I had already planned to find another broker, but the thing that made me hurry up and do so was receiving your oh-so-thoughtful gift of an e-trade gym bag. So, after refusing my very simple request, you apparently assumed that Iâ(TM)d be satisfied if I just got a bag to advertise an incompetent financial institution to my friends.

Looking at the transaction log, I see that e-trade has charged me $25 for the privilege of taking my property elsewhere. Now, Iâ(TM)m sure you have something in your fine print that allows you to do that, but itâ(TM)s still kind of shitty on your part. Given that youâ(TM)re not even capable of issuing two cards on one account (as you had done for the previous decade or so), waiving that fee is probably entirely beyond the capabilities of the fifth-rate keyboard monkeys in your so-called âoeIT departmentâ, so you can go ahead and keep it. Iâ(TM)m getting a nice welcome gift from your competition, which I didnâ(TM)t even ask for.

Would you like the gym bag back?


User Journal

Journal Journal: Even less impressed with E-Trade. 3

Got this from some minion at E-trade, since the VP I wrote to was apparently too busy to answer a customer personally:

Good Morning Mr. Randolph,

We received your email inquiry to our VP of Customer Service, Neal Martin on 8/5/13. We regret that we are unable to accommodate your request for two ATM cards for your account. We appreciate your feedback and it has been shared with management and our product teams for review. If you have any additional questions or concerns feel free to contact me at [phone number deleted]

Thank You,

[Name redacted]
Corporate Support Manager
Alpharetta GA
E*TRADE Securities LLC
[phone number redacted]

Manager? Yeah, right. In a functioning company, a manager is someone who takes the initiative to solve a problem.

I left the VP's name because he fully deserves to have this come up when someone googles him in the future.

My response:


You might mention to Neal Martin that when a customer responds to an email message that has his name on it, itâ(TM)s rather poor form to pass the buck to someone else unless that other person is capable of solving the problem.

I was a more-or-less satisfied customer of E-trade for over a decade. I will be transferring my assets to another broker in the near future, as soon as I determine which of your competitors can demonstrate the competence that E-trade has abandoned.


User Journal

Journal Journal: Rather unimpressed with E-Trade today.

I've been a customer of theirs for over a decade, and I've had two ATM cards for the same account for many years. Recently, I needed to cancel one of the cards and instead of just replacing that card, they cancelled both of my cards. I just sent the following message to Neal Martin, VP of customer service at E-trade.


I got a call from one of your employees this morning, Meagan something, who told me that after looking into it she wasnâ(TM)t able to find a way to issue a second card for my account. Her suggested workaround was that I should open another account, and get an ATM card for that account.

So, because of your IT departmentâ(TM)s refusal to fulfill a very simple request, E-tradeâ(TM)s âoesolutionâ is that I should give you MORE of my business, and incur whatever additional costs are associated with having a second account. Not to mention that using a second account means that if I lose a card while traveling, Iâ(TM)ll either be dead in the water for a day while funds get transferred to that second account, or Iâ(TM)d have to have money parked in that second account already.

Now, Iâ(TM)m a software engineer myself with a fair bit of experience in financial systems. In my Wall Street days, I worked at JP Morgan, Salomon Brothers, and UBS/Warburg. I know that there is indeed a way to solve the problem at hand, even if it requires manually editing a database to make it happen. If my business is important enough to you, youâ(TM)ll direct your IT department to do so.

In the meantime, I suggest your inform all of your employees in customer-facing roles that âoesecurity policy" is not an excuse for incompetence.


The message above was a follow-up to this one:

Hello Neal,

I have been an E-Trade customer since 2002 or thereabouts, and I currently have about [redacted] in assets on deposit with e-trade.

Iâ(TM)ve got to say, Iâ(TM)m on the verge of taking my business elsewhere and itâ(TM)s because of something that should be trivial for you to solve.

Iâ(TM)ve had two debit cards for my account for a decade or more, and Iâ(TM)ve just been told that I can only have one now. This doesnâ(TM)t work for me, because I travel quite a bit, and I like to keep one card in the safe in my hotel room, and have the other one on me. If I lose a card while traveling, I do not want to be stranded without a way to access my funds.

Yesterday, I spoke with a representative who told me that he had figured it out and was sending me an additional card, but this morning he called me back and told me that he couldnâ(TM)t do it after all. Just now, I spoke with another representative from your âoeCorporate Relationship Managementâ team, and heâ(TM)s looking into it.

Iâ(TM)ve generally been happy with E-trade up to this point, but if you canâ(TM)t issue me two cards as before, itâ(TM)s a deal breaker. I hope you get this figured out.

Also, donâ(TM)t put your name on an e-mail address that doesnâ(TM)t go to you directly. Itâ(TM)s insulting.


The upshot is I did some shopping around and found that Scottrade's fees are lower than E-trade's. The first brokerage company I find that can issue two cards on one account will get my business.

User Journal

Journal Journal: Another interesting stint at Apple. 5

For the last two years (almost), I was back at Apple working on the UI frameworks that the ProApps and the iApps use to give them their distinctive look. Interesting work, nice people to work with, and now I can say that there's some of my code in most of Apple's Pro and consumer apps on the Mac.

To everyone in PhotoApps, ProApps, Frameworks, and Dev Tools, thanks much! I enjoyed working with you.


User Journal

Journal Journal: Back to Apple... 8

I'm on my way back to Infinite Loop, and I'm starting on Tim Cook's first day as CEO. Wish us luck.



Journal Journal: Is your company new to the Mac or the iPhone? 1

1) Mac users are highly sensitive to the quality of your products' user experience. What this means is, go native or don't bother. Even though Google Earth and Photoshop are rife with UI atrocities, don't imagine that you can get away with ignoring the rules like they can. They're 500-pound Gorillas, and you're not. If you are Google or Adobe, get with the program and write a Cocoa UI, already. It's about time.

2) The native language for the Mac and the iPhone is Objective-C. Get used to it; it's not hard to learn. Any developer familiar with C should be able to learn Objective-C in a day, and be an Objective-C language lawyer within a week if he cares to. Yes, there are Ruby, Python, and other bridges you can use, and they work just fine, but limit this to integrating existing libraries with your apps. DO NOT try to use the bridges as a way to avoid learning the environment you're working with.

3) A cross-platform GUI is neither feasible nor desirable. You can't #ifdef the difference between Cocoa, xlib, and Win32. Don't believe me? Look at OpenOffice. (If OpenOffice looks OK to you, then please, forget about offering your products on the Mac. You'll only cause us pain.)

4) Don't bother with third-party cross-platform GUI libraries like Qt. Yeah, you can make it sort of work, but you'll get a lot of complaints from your Mac customers, and it will be more expensive than properly factoring your code and writing a native GUI for each platform. For every Mac customer who complains about a bad UI, there are many more who took one look at it and decided never to do business with the vendor in question. I just learned from a friend that Qt is far worse than I'd realized: if you use Qt, you wont' get any hardware acceleration , and you won't be able to deliver ADA compliance.

5) If you're shopping for people with years of experience in Cocoa and Objective-C, you should know that they're pretty scarce due to the flood of iPhone projects going on these days. I'm hearing about people getting $200 to 250/hr for iPhone projects. Keep in mind that you're also competing with Apple for those developers, and chances are your project isn't as interesting as Apple's. If you're a start-up and you can offer equity, then it's not too hard to find people who are willing to gamble with you if they believe in your business plan. Mac and iPhone developer tend to be somewhat less risk-averse than the average engineer, in my experience.

6) If you can't afford experienced Mac developers, you'll have to make your own. Save yourself a lot of time and money by sending your people to a class. I recommend Big Nerd Ranch, that's where Apple sent their own people when they quit doing Cocoa training in-house. Keep in mind though, that once your newly-minted Cocoa developers have a year or so of experience under their belts, you'd better be prepared to offer them market rates, or you'll lose them. Back in the NeXTSTEP days, Fannie Mae insisted on low salaries, and they lost people steadily to other NeXTSTEP shops. Attrition is expensive; it will cost you more than you think when your institutional knowledge of your product scatters to the winds.

7) Send your people to the Apple developer conference every year. I can't emphasize this enough. Time is money, and the connections you can make there with the Apple engineers you need to know can save you weeks or months of trial and error.

That should do for starters.

Addition 8/24/09:

8) When interviewing an Objective-C expert, DO NOT try the "Microsoft style interview". (See #5 above.) We are not entry-level, fresh-out-of-DeVry kids who have the time for solving the little brain teasers that someone looked up on the web last night. Talk about the actual work at hand, how the candidate's previous experience is relevant to what you need to do, and ask for some examples of creative solutions they've come up with before.

9) Probably the best place to advertise for iPhone or Mac developers is the cocoa-dev mailing list at You have to be a subscriber to the list, and you have to send your ad to the moderator for approval first. In any ad on Cocoa-dev, be very specific about what kind of developer you're looking for, and what the job entails. This is not the place to just list buzzwords or try to lowball anyone.

10) When advertising for candidates, don't hide behind a webform or an e-mail address. Put a phone number in your ad that reaches a human being. People with skills that are in high demand aren't going to mail their resume to recruiter@companyNobodyEverHeardOf, because that kind of thing gets you spammed.


User Journal

Journal Journal: A Rant

This goes out to every left- or right-wing power seeker, who believes that everything will be just dandy if only they get the right bunch of little tyrants in office.

Ok, time for a bucket of cold water in the face, kids.

First, income is not "distributed", it's earned, and it belongs to those who earn it.
Second, you have no moral right to take someone else's earnings, even if they have more than you do. It doesn't become moral if you hire a thug to do it for you, and it doesn't become moral if you have a group of hundreds of thousands of thugs and bureaucrats to do the dirty work.

The legitimate power of the state can ONLY derive from a delegation of the rights of the people. Free people institute governments to secure our rights, not to interfere with them.

We have a written constitution in this country, and despite its having been routinely ignored whenever government found it inconvenient, it is nevertheless the entirety of the legal basis for the government's existence. If the government doesn't want to follow the constitution, then the government has no legitimate authority, at all.

Maybe you can make a compelling utilitarian argument for some of the currently unconstitutional activities that the federal government engages in, and if so, then propose an amendment, let's have that national debate, and maybe you can get your amendment ratified. Until and unless that happens, the federal government has no legitimate basis to harass sick people for using marijuana, to take our hard-earned wealth and give it to failed banks, to "redistribute" our earnings, to interfere with the choices we make for our health care, to prevent us from traveling to any country we care to visit, or to draft us into "national service."

We are not the property of the state. Get that through your power-hungry little minds.


User Journal

Journal Journal: CentOS: a portal OS

This is rapidly becoming my favorite Linux distro.

For BSD, I like FreeBSD 6-series, and with Windows, I'm either recommending Windows 2000 for older machines, or Windows Vista for the new ones, but you have to set Vista up correctly. It's tempermental.

The same thing is true of CentOS, but for different reasons.

CentOS is not the flashiest desktop, and it has the kind of slightly stodgy install that comes of designing for the least specialized use, knowing that people will be plugging your system in under radically different conditions. Ubuntu doesn't do that. Windows does, mostly with hardware support. BSD is pretty good about it too.

You could describe CentOS as a conservative Linux distro, because it doesn't go far beyond being able to consistently replicate known demands. It's not sexy, but it is reliable, and fairly fast even on old hardware.

I've got a couple archaic Dells with this on it heading out to people who would be perfect Asus Eee customers if they were in a buying mood. They're aiming for the 90% of common tasks that can be done with a browser, email client, and simple word processor. An 800 mhz Dell with CentOS, AbiWord and Firefox does what they need.

I'm taking a different approach in that I'm not presenting these systems as software platforms, like Windows machines are. I'm presenting them as portals to the rest of the net and common tasks. They're not primary machines, but handy appliances like blenders or TVs.

We'll see where it goes. Either way, CentOS has earned a place in my repertoire, alongside other distros (and commercial OSs).

User Journal

Journal Journal: Parsing our National Anthem.

I happened to hear a recording of a fine performance of our national anthem a short while ago, and the question posed at the end of the song suddenly caught my attention.

"O, say does that star-spangled banner yet wave, over the land of the free, and the home of the brave?"

That's really the most profound thing that Francis Scott Key ever wrote. The question isn't whether the symbol of freedom still exists, we can see that it does. The question is: are we still free? Are we still brave enough to demand and defend our liberty?

A year ago, I would probably have said no. Today though, with Ron Paul's book at #1 on the New York Times' bestseller list, I'm rather more hopeful than I have been in a very long time.


User Journal

Journal Journal: Actually, Vista works 1

I'm a Windows XP and FreeBSD user. The only thing I won't use is a Mac, because the Macintosh user community, as a group, behaves like a pretentious snot and I don't want to be associated with it. I think I like Windows XP okay for desktop software, but anything server-ish and most development tasks I prefer to do on the BSD box. Desktop and server really are two completely different worlds.

Today's conventional wisdom, based on more than a year's worth of relentless negative publicity, says Vista is hopelessly broken. In fact, my experience says the exact opposite is true. I proved the point in the first installment of this series, where I restored a sluggish $2500 Sony Vaio notebook to peak performance in a few hours. And I think anyone with a modicum of PC smarts can do the same.

I think he's right. I've now used several Vista machines, and to his assessment, I'd add this: Vista is designed to drive adoption of new hardware and abandoning of the old. This will benefit us all as industry finally adapts to the newer paradigms, including how we're going to really take advantage of multicore chips. But, get yourself a fast machine with 2-4 gb of RAM for Vista.

Slashdot Top Deals

I judge a religion as being good or bad based on whether its adherents become better people as a result of practicing it. - Joe Mullally, computer salesman