September 1, 2009

iPhone from locked to unlocked back to locked

Filed under: Code,Misc,Programs

I have been an iPhone user since February when I got the 8GB 3G model. I love it. I call it my tricorder. It has everything a geek on the go needs. I have about nine screens of applications and games.

A lot of my friends also have iPhones and most of theirs are jail broken and run the Cydia app store. I thought maybe I was missing out so I decided to take the plunge and jail break my phone.

There is a lot of documentation out there and I was a little nervous about doing it. I wanted to be sure I had the latest and most up-to-date information.

A Google query here and there revealed two primary methods. Every time I searched for “iphone unlock” ads for automaticiphoneunlocker.com were shown. Its looked good. I pay $29.99 and download a piece of software that does all the work for me.

Well there is a sucker born every minute and it was my time to be the sucker.

I paid the $29.99 and instead of getting a piece of software that does it automatically I got instructions and multiple downloads that pretty much mimicked everything else out there. Now the instructions were so detailed even a noob could follow them but still it was not automatic.

I had to follow this complicated 20 plus step process that involved wiping my phone and deleting everything on it. (I had backups so I wasn’t worried).

The whole process took about 30 minutes quite a bit longer than the five minutes the ad promised.

Okay so my phone was now unlocked and I had this Cydia app store icon – now what? Well that was the end of the instructions. At this point I had to do more googling and reading up on Cydia to see what exactly I could do with it.

In a nutshell its Debian apt-get with a nice front end similar to Synaptic on Ubuntu.

Okay what to install? Well more googling revealed something called winterboard which is a theme manager. From there I installed some different themes and a category application.

All of a sudden it was 1997 again and I was playing with Enlightenment (an awesome window manager for X). For its time there was nothing cooler. Gnome and KDE were babies and if you wanted something “cool” you ran it.

I was back in that mindset. What looks cool. Oh a neat clock. New icons! Look at that awesome wallpaper.

After about an hour playing with the themes and Cydia I realized that one of the reasons I love Apple computers and the iPhone so much is it just works (and it looks good in its own right too).

I have long since given up making my desktop and windows look “cool”. I am firmly in the function over form camp now.

I don’t want to tweak my phone endlessly. I don’t want to worry about upgrades breaking everything. I didn’t want to be cool; I just wanted an iPhone.

So I un-unlocked my phone.

April 9, 2008

Computer programming unplugged

Filed under: Code

I just found this via reddit.com and I think it is brilliant! Computer Programming Unplugged

April 7, 2008

Ruby's not ready

Filed under: Code

I am not a Ruby fan. I really like Python. I have never really been able to accurately explain why I don’t like Ruby. Well I just found a lengthy post that breaks down the differences in Ruby and Python via reddit: http://glyphobet.net/blog/essay/228. The author does a great job of breaking down the Ruby-isms I don’t like and I learned about some I didn’t know about.

April 2, 2008

Stupid Title, Great Book

Filed under: Code

I just picked up Secrets of The Rock Star Programmers: Riding the IT Crest. Wow what a horrible title. Good thing the book is really good. Ed Burns interviews well known folks in the field of programming. He asks them a range of questions from “How do you setup a new machine to work on?” to “How do you keep the work/life balance?”. Someone once said that to be successful you need to study the habits of successful people, so this is my attempt at that I guess.

August 14, 2006

Posting from the command line

Filed under: Code

Posting from the command line is cool. I found a wordpress library for python:

http://code.google.com/p/wordpress-library/ and wrote a little script to do the rest.

May 8, 2006

The Nature of Lisp

Filed under: Code

I just read a great article on Lisp called the Nature of Lisp as someone who has been trying to figure out why Lisp is so cool to so many people this helped a lot. I suggest you read it.

April 30, 2006

Long time, no post…

Filed under: Code

I haven’t written anything in the last week because I have been slammed at work. I moved to a new team and I am doing more development work. This is good because eventually I want to be a full time programmer. Right now I am working in the high level languages like Perl and Python but I do have C training and I think I would like to do more lower level stuff.

I also am getting my first taste of what it means to be a programmer. Being a system administrator is fun because you can program when you want to – if I ever got bored of a script I was working on I could do something else. Its another story when your primary role is to write that script. Getting bored? Too bad finish it.

My first project is a Perl script about 2,000 lines long with lots of mySQL interactions. This also marks the first time I have worked with databases in any meaningful way. Took me about three or four days to get to the point where I was comfortable writing SQL queries. The Perl DBI layer makes a lot of this easy.

I am also now writing code that other people depend on which is a lot different from the system administrator scripts I usually write. Now my code needs to do the right thing under a variety of circumstances. I am making liberal use of Perl’s eval statement so I can have some sort of deterministic behavior.

Recently I read a Damien Katz blog entry called Error codes or Exceptions? Why is Reliable Software so Hard? which really spoke to me on my current plight. I am doing a combination of his three error handling styles – including the travel back in time one (I have rollback queue that gets poplulated with the actions to undo a step, in the case of an error I just run through the queue and have gone back in time:))

Writing a Perl script this big has really made me appreciate Perl more in its flexability but has also made me yearn for Python more for its cleaner syntax and excellent exception handling.

At this point I am on the fence whether I want to be a full time programmer but this experience is a great way for me to get my toe in the water without jumping in.

March 19, 2006

Python web programming

Filed under: Code

I starting playing with web.py today to see how easy it would be to make a simple web app.

I followed the tutorial and everything was going well until it all stopped working. Took me about 20 minutes to figure out was wrong. Can you see it?

urls = (
‘/’, ‘view’
‘/add’,'add’
)

No? Look again:

urls = (
‘/’, ‘view’,
‘/add’,'add’
)

That’s right I was missing a comma. Did the program complain? No. What was the output on the web browser: “not found”.

I wasn’t impressed. I hate when stuff like that happens. I will still play with web.py because it is so simple but I will be much more careful in the future.

I play a lot of computer games. Most of those games require a serial number. I am going to us web.py to make a small web app to store all of my serial numbers. Seems like a good test and more complicated than the tutorials “todo list”.

March 15, 2006

Perl labels

Filed under: Code

I learned about Perl labels and thought I would pass it on. Basically a label names a block of code descriptively. They are usually uppercase. You can use next, redo and last within a labeled block. On the surface this doesn’t seem that useful until you start talking about loops within loops.

Take the following bit of code with out labels:

while ( $somecondition ) {
    # do some work
    for my $iterator (1..10) {
        # do some more work
    }
}

Let’s say you want to use next in the for loop to control the while loop. There isn’t way to do that here. You would have to come up with some other logic to handle that. Using labels its very easy:

WHILE:
while ( $somecondition ) {
    # do some work
    FOR:
    for my $iterator (1..10) {
        # do some more work
        next WHILE;
    }
}

Of course the above is a meaningless example but you get the idea.

March 12, 2006

Python debugging and emacs

Filed under: Code

I am normally a vim user but am looking at emacs again. One of the features that emacs has that I love is how it does interactive debugging.

First thing to do is to have the python debugger in your path and called ‘pdb’. On my Ubuntu system that would be:

cd ~/bin
ln -s /usr/lib/python2.4/pdb.py pdb

Now edit your favorite python script with emacs and start the debugger:

M-x pdb
pdb

emacs screenshot

Powered by WordPress