iPhone Notes Theme

No Comments

Chipmunk near Lake Louise
Chipmunk near Lake Louise

Since having only text makes my site boring, I’ve resolved to start every post with an image.

Yesterday, my sister started working on her Foods blog, and she was searching for an appropriate theme. My own site was long overdue for a theme update. Heck, my tagline still stated I was a student at USC! (I graduated about 8 months ago.)

I found this iPhone Notes Theme on the WordPress Free Themes Directory. Be warned, though: the version for download there is NOT the latest version. It says 1.3, but it’s actually older than the one that says 1.2, which you can get directly from the theme author’s website. Go for that one instead.

What do you think of the new design?

I didn’t take before-and-after screenshots. The old theme was nice, but not so noteworthy that I really need to record it.

The only thing that concerns me about this theme is the yellow background. Is text easier to read on white?

Brief sidenote on the U.S. economy

“We are ready, and we will act if the economy does not continue to improve.” — Ben Bernanke, Federal Reserve Chairman, speaking to the House Financial Services Committee, July 2010

It would be funny if it weren’t so sad. The Federal Reserve caused the recession with artificially low interest rates. Every action they’ve taken since only serves to make things worse.

Now that I’m certain that things will get worse:

What’s the best way to take advantage of a worsening economy?

If we really wanted the economy to improve, we should listen to Ron Paul. He’s been advocating the abolishment of the Federal Reserve since joining Congress in the 1970′s.

Here’s a video I put together more than 2 years ago, all about Ron Paul:

(Edit: Looks like this isn’t working right now– apparently the video host, Revver, is returning an error. I’m leaving it here because it might start working again in the future.)

Vancouver: First Impressions, Getting a Canadian SIM

No Comments

I apologize for the scattered, unorganized nature of this post. It’s been a while since I last blogged. I didn’t have time to write a short blog post, so I wrote a long, rambling one instead.

I spent all day learning about the cell carriers here in Vancouver, Canada. There are many options, all with different ways of doing things. For example, Telus offers three options with some of their plans: double anytime minutes, unlimited minutes to any 5 numbers of your choice, or unlimited texting – choose any one.

The carrier I settled on is Fido because they can sell me a micro-SIM card and offer data for $2/day (up to 20mb) or $7/day (up to 125mb).

Is there a good abbreviation for Vancouver? For example, Los Angeles is LA. Say “LA,” and everyone knows you mean Los Angeles.

I actually find it easier and faster to type on the iPhone keyboard in portrait than landscape. This blog post was written on my iPhone.

Everything in VR (my abbr for Vancouver) is in English, though some words have French translations, like “Jus” on my orange juice.

The airport’s Currency Exchange booth is decent. Their rate is about 3% worse than the one reported by the Currency iPhone app. But there’s an additional $3.50 service charge, regardless of the amount you convert.

While traveling today, I stopped and asked a lot of people for directions. Most people are helpful and friendly, even to me, a complete stranger.

Last night was interesting: I arrived in Vancouver at night – about 9pm – with nowhere to stay. I took Tynan’s advice in Life Nomadic: I looked on Craigslist for a place to stay. It took quite a bit of effort, but I think most of that was because this was my first time doing it. I discovered that I should look for 1br listings under sublet/temporary, and to make sure I limit the area to that surrounding the airport. Ultimately, I found a nice room to myself for $40 CAD. It had a nice office chair and desk, and included Wi-Fi.

Living in Vietnam was, unsurprisingly, much cheaper. There are hotels in Saigon for $10/night USD. Most meals are $5 or less, versus $10+ here in Vancouver. The serving sizes are generally smaller in VN, though, so sometimes it’s a good idea to order two servings. In Canada, the environment feels big and spaced out. Taking the train is a necessity; it feels like stores are just too far apart to travel on foot. Font sizes are huge on signs and screens, so this might be a good place for those with bad eyesight. Coins are used more frequently here than in Vietnam, or even the US. Buses, for example, only take coins. In VN, the largest coin I remember having was 5,000 dong – worth only about 25 cents.

Need: Better Tab Switching

1 Comment

I’ve been thinking about this for a long while, and today I found that Cédric Beust has put my thoughts into words:

What I really need is an extension that lets me switch to a tab by typing a few letters from either its title or its content. Just now, as I was starting to write this entry, I found myself having to find the article I linked above. I have currently about ten Firefox windows open and each of them has anywhere between one and ten tabs. Finding the correct window required a few Alt-Tab and quite a few Alt-~. And even then, the correct window popped up on my screen several times but I missed it because the tab I was looking for was the fourth in in a group of ten.
What would have been ideal: a text box where I can type “candy” and a drop down containing all the tabs that match the string I just type.
I’m aware of a few Chrome extensions that do this but all of them open a new window when you select the tab, instead of just taking you to the existing one, which defeats the purpose of the idea since it loads the page again and loses the position you were last reading.
Please let me know if you know of any extension that accomplishes what I’m looking for

Source: Firefox’s “Tab Candy”: pretty, but…

Anyone out there with experience building browser extensions? How feasible is this?

Don’t fix the iPhone 4 antenna issue

2 Comments

I don’t think the iPhone 4 antenna issue should be fixed for two reasons.

1: It does not occur if you use a case. If you don’t use a case, you can hold the phone a different way.

2: It’s caused by the laws of physics. It’s like saying that your MacBook Air is easier to break in half, and therefore it’s flawed and should be made thicker.

No. That’s simply a side-effect of its design.

When you have external antennas, you can attenuate the signal with your hands. That’s the way this world is.

I, for one, like the iPhone 4′s thinnest-smartphone-ever design. And I use it with a black bumper case.

I don’t understand why everyone thinks a “bumper” is an acceptable fix. You can’t dictate how to use the iPhone, specially to all the users who don’t like bumpers, cases, etc.

You can’t use the iPhone underwater; it is not waterproof. You can’t put the iPhone inside a barbecue and expect it to survive. You can’t drive your car over the iPhone and expect your phone call to remain connected.

Whoops! I just dictated how to use the iPhone.

Sure, holding the iPhone in a particular way without a case is not a particularly hazardous way to use it. But my point is that there is plenty of precedent for “dictating” how to use the iPhone (or any other product, for that matter). It’s not a question of whether they can dictate; it is merely a question of in what way, and to what degree.

iPhone 200 MB plan conflicts with voice mail?

No Comments

Has anyone successfully downgraded from the Unlimited data plan to the 200 MB one?

It would lower my bill by $15/mo, as the unlimited plan is $30/mo and the 200 MB one is $15/mo. That’s a $180/year difference.

But the AT&T website says the feature conflicts with “Basic Voice Mail”:

The following feature(s) are in conflict with an existing feature:
DataPlus 200 MB for iPhone
To add the new feature(s) you selected, the following feature(s) will need to be removed:
Basic Voice Mail

I’m afraid to continue because it sounds like voicemail will be removed. Is this true, or is the website wrong?

How to uninstall Openfire

No Comments

You might, like me, see tons of launch failures in your OS X Console (an app in /Applications/Utilities).

To uninstall Openfire, just delete these files and reboot:

/Library/LaunchDaemons/org.jivesoftware.openfire.plist

/usr/local/openfire

/Library/PreferencePanes/Openfire.prefpane

Computers Suck

2 Comments

They are ridiculously hard to use. It’s 2010. Computers should not still be this hard to use. Yes, computers are complicated. But end users should never have to see that complexity.

Dear Microsoft: please make your crap usable. In order to upgrade Silverlight, they force me to uninstall the old version first. That’s bad enough; but what’s worse is that they don’t provide an uninstaller. They can’t have the updater remove the old version automatically.

And they can’t show you how to do it in pictures and text. You must download a 3 MB video file in order to see how to actually do the uninstall. Furthermore,  you must close all web browsers before uninstalling. (This is nontrivial for newbies to do on a Mac, where clicking the red X doesn’t actually quit the app.)

This is beyond ridiculous.

It’s a good thing I’ve been using computers since the day I was born, because if I were new to the concept, this would take me hours to figure out. And I wouldn’t be surprised if a typical user just gave up 15 minutes in.

Skitch is close behind. Their software is called “beta,” even though it’s quite stable and lots of people use it. Heck, they even promote and market it like commercial software. Yet it has a beta timeout, so when the timeout expires, you can’t use the app anymore until you update. And the only change in the update is that they extended the beta time-out. And the update is 12 MB, a significant download for anyone on a dial-up connection (only 22% of the people in the U.S. subscribe to a broadband service).

Steve Jobs today said that computers are like trucks. They’ll still be around, and there are some tasks you really need a truck in order to accomplish. But the everyday consumer is quickly moving to cars. These cars will be ubiquitous, and the roads will be swarming with them. That means devices like the iPhone and iPad — where I’d definitely place my bets today. And I’ve been putting my time and effort where my mouth is: I’ve been developing mobile apps since 2002 (when I started using the Cybiko SDK).

Should companies have phones?

No Comments

I’m reading an interview with Paul English, Co-Founder of Kayak.

He has some innovative ideas for running a company. Here are a couple:

The Red Phone: Paul found the most obnoxious, loud-ringing red phone he could find and plugged it in right in the engineering office.  About 30% of the time, when a Kayak web visitor saw a support phone number on the website, it was the number of that phone. The idea was to build a culture that was centered around the customer.

If you visit Kayak.com and hit the feedback button, you will get a response via email.  Kayak responds, individually, to every email.  That’s impressive.  What is crazy-impressive is that the email response comes from either Paul or someone on the engineering team.  He gets flack for using a $150k/engineer to answer support emails when the rest of the world is outsourcing it for $8/hour or something.  Why does he do this?  Because, when engineers respond to support issues, when the same issues arise time and time again, they are more likely to stop what they are doing and go fix the problem so that they don’t have to answer that same question again.  And, because it sends a message to the entire team that they take these issues very seriously.

How to learn programming

2 Comments

“I hated high school. It was the worst time of my life. [Then] college … was just awful. When you’re in high school, everyone tells you, ‘There’s a lot of repetitive bullshit and standardized tests; it’ll all be better once you’re in college.’ And then you get to your first year of college and they’re like, ‘Oh, no– it gets better when you’re in grad school.’ … I couldn’t take it. So I dropped out. And I’m glad I did.” – Jamie Zawinski (jwz), one of the world’s best programmers.

I’m often asked, “How can I learn programming?” It’s a very difficult question to answer. Usually, when people think of learning, they think of classes. I have never known this kind of learning to be very effective.

I didn’t like high school. Virtually all of the things that made high school bearable were actually outside of school. Computer Club, FBLA, the Walnut High School Solar Car Team– all well outside of classes. High school would’ve been better without classes. But that’s only for a person like me. I definitely do not think this would work in the general case, because I was far from a typical student. I never fit in anywhere in high school. The only place I fit in was outside, in the solar car team.

So I quit, and went to college early, skipping my senior year. For some students, senior year is a time of celebration and relaxation, but for me, it would’ve been torture. I’m very glad I left.

College, as jwz stated above, wasn’t actually tremendously better, when it comes to the classes. Sure, they were more advanced. Finally, people who actually cared about getting stuff done. But they were still mediocre when it came to actual learning. I was happy in college, partly because of my expectation that I should be happy there. If college didn’t work for me, there must be something wrong with me, I thought. College is everyone’s dream. I have no alternative. So in my mind, I made it work. My attitude made all the difference. I was always optimistic, cheerful, and looking for the best in all situations.

Now that college is done, I can look back on it more objectively. The people were great. It’s often said that college is worthwhile just for the people. That’s probably true. But when it comes to the classes, they were objectively pretty bad. It’s not a matter of being ‘easy’ or ‘hard’. It’s a matter of what they focus on, the way they’re structured, and what they actually do.

80% of the programming knowledge I picked up while in college, I learned on my own.

It doesn’t surprise me one bit that students are dropping out of computer science, or not going into it at all. College seems to make it hard to do. I don’t think it has to be that way. There are a few key things that have helped me learn how to program:

1) Motivation

People say they want to learn how to program, but they flake. They don’t stick with it. They lack an all-encompassing passion. My programming is extremely highly motivated, though for good reasons: it’s earning money, my code has been used by well over 5 million people, and it’s a creative outlet for me.

2) Focus

You cannot overstate the importance of focus. Sometimes people think that if they work on something for an hour, trying to figure out how something works, or why something is broken, or how to fix some bug — one hour — then they give up. They throw their hands up and say they’re done.

That’s ridiculous.

You need to concentrate, and put nearly unlimited amounts of focus behind your work. One hour doesn’t even scratch the surface. Two hours? Four? Eight? Sixteen? Now you’re talking. Why not spend 100 hours? (Literally. Wouldn’t phase me.) Of course, the time isn’t what you should be looking at. Time doesn’t actually matter. What’s important is what you’re getting done, what you’ve tried, where you’ve failed, and where you’re going. It’s not uncommon to hack away at the same problem all night. Programming requires real thought. It’s not like digging a ditch or farming some land, where you just put grunt work into it. You have to actually use creative mental energies, and that requires real focus.

3) Other people

When you’re stuck and not making progress, point #2 (Focus) does not mean wasting your time doing the same thing over and over again. You try something new. And you try it quickly. One of the places to turn (and fairly soon, actually) is other people. College is good for this, but thanks to the Internet, it’s not necessary. The other people I’ve turned to, who have helped me the most, are all online. And I haven’t met most of them in person yet.

Greg Smith of DevCybiko was an amazing help back when I was learning how to program the Cybiko handheld computer.

People in the iPhone development channels on IRC were invaluable when it came to developing Brain Tuner.

It is truly amazing how much of my progress can be credited to people I’ve chatted with online. Keep in mind we rarely talked about superficial things. We got right into the guts of the problem, tossing back and forth actual code. That’s what you need: concrete code-level collaboration.

4) Learning by doing

Lastly, there’s no substitute for actually doing. Too many people think they can learn programming by watching videos, or listening to lectures, or reading books, or talking to others. Compared to writing actual code and seeing what happens, nothing else matters.

Because you’re trying to program after all, aren’t you? Don’t be afraid of the computer. Don’t be afraid of errors or warnings. Confront them directly and immediately. Learn what every little detail means. Don’t miss a single pixel. Your compiler is throwing you 138,275 errors? You are not doing anything wrong. My code contains errors like that every day. That’s the computer helping you. Rely on it and get comfortable with it. Read the documentation, search on Google, and, sometimes, just sit back and think. Thinking is part of doing, too.

If you can really nail these 4, I think you’ll be well on your way.

Dropping out of college would put you in good company, with Bill Gates, Steve Jobs, Mark Zuckerberg, Jamie Zawinski, and so many other top techies. But ultimately, I’m glad I went. Not for the classes, but for the people I met there, and the connections it provided. If you already know the right people and have the right connections, college might not be necessary. But for me, college was actually incredibly good, if you don’t count the classes. Sure, I succeeded in classes, with a >3.8 GPA and all. But what I appreciated most are my internships at JPL and Google, the opportunity to be TA for the iPhone app development class for both semesters it was taught, and gaining friends who span the globe– which is why I’m in Viet Nam right now.

The iPhone could not be restored. An unknown error occurred (1600)

1 Comment

Here in Vietnam, an iPhone brought from the U.S. isn’t allowed to use the Vietnamese carriers out-of-the-box because it’s locked to the American network. That means we need to unlock it.

One of the several methods of unlocking the phone is to use Recovery Mode to restore using a modified ipsw file. Note that this is different from DFU mode, even though iTunes calls it same thing (iTunes will call it “recovery mode”).

You can tell the difference, though, by looking at the iPhone’s screen. If it shows a cartoon Steve Jobs saying something in Russian, or it shows a sync cable pointing at an iTunes icon, then it’s Recovery mode. If the screen is blank, it’s DFU mode.

To put the phone into DFU mode, hold down the sleep/wake and home buttons for 10 seconds; then release the sleep/wake button, but KEEP holding the Home button until iTunes recognizes the iPhone. Then you can depress the Home button.

To put the phone into Restore mode, disconnect it from your computer; hold down the Home button, then connect it to your computer. Keep holding the button down until an image appears on the iPhone’s screen.

If you get Error 1600:

Then you might be using DFU mode, when you should actually be using Recovery mode. Switch modes and try again.

Older Entries