Apple <3

No one in my surrounding had any interest in what I discovered in the magazine I found at the press center in my home town back in 1977. The magazine had the name Byte and it where filled with interesting articles about computers and a new industry growing. Computes back in 1977 was only for big companies who created lots of invoices and did other boring administrative tasks with them. But in Byte there were stories about microprocessors and boxed systems affordable for hobbyists. The first one that catch my interest was an Altair computer with lots of switches on the front with which it could be programed. Each switch represented a bit inside the computers memory, one row for the address and one for the content in that address.

At that time I was a dropout that made my living driving a cab one or two nights a week and all the money I earned went to buy food and pay my little apartments rent. So buying a computer was just a dream. Most computers where also to technical to make any one excited, but I remember I spent lots of time planning what I would do with it if I had one. My experience with programming was, at that time, only making calculating programs that figured out my earnings after a night driving around in the cab. My mother had been kind enough to buy me a Texas Instruments TI58 and it had some programming functions that I used.

I read every article over and over again, especially about two guys in a garage selling a computer board that could be connected via a RF-converter to a TV. It still was way out of my budget but my dream started to materialize, some day I would buy one. My interest only grow stronger so I decided to pick up some studies again and go to a local high school to learn some more. Since I started study again my mother, who probably had lost her faith in me for some years, told me that she wanted to support my studies if I needed anything. She probably meant money for food ond cloths but I suddenly saw a fantastic chance getting the founding to buy me one of the boxes that tickled my fantasy.

I had to read not only the articles one more time but also the ads. And there was lots of ads in Byte. After some time I felt that the only one that fitted my desire was the two Steve's next product, the Apple ][. It was a flat, nicely looking beige box with a keyboard in the front. It had all the functions I at that time felt I needed and it fitted my mothers budget, well almost. Since I already had a 17 inch color TV, which I had bought five years before, and a cassette player the system was complete. The TV had gathered all my friends at my flat every evening since i bought it, but now it served a new purpose and it fitted perfectly to my computer dreams.

Why did this Apple ][ computer fit me so perfect I did not know, it was just a strong feeling. I just thought it was perfect. Years later I realized that it was many things that made my feelings for it so strong, but at that time I just knew it was put together for me with some kind of love. Love for the product and love for the one that should use it.



JonathanMaktribute-285x285

Comments

Nothing to do? Well, pop over!

I’m doing some iPad coding and I really like the UIPopoverController widget for displaying various things. It is versatile and you can put almost anything in it. It could be used like a menu or contain a tableview or a palette with shapes or... The possibilities are endless, almost. So when I needed to use a popover in another iPhone application that I wrote I was so disappointed it was a iPad only class. I wanted to implement a right navigationbar button so the user could set the sort order in a tableview and I thought the popover was the right way to do it. I have no explanation for why Apple has chosen to only use it on bigger screens. I can understand that you have to be a little careful with the use of it but to omit it on the iPhone is just not right. So I looked on the net for an open source implementation and found Werner Altewischer’s WEPopoverController. It did the thing nicely but it had some images in the resource group an since I collect reusable classes in a static lib I thought I fix this. After some coding I found myself rewriting the whole thing.
Read More...
Comments

Eagerly awaiting reading

Always when the end of a month is approaching I find myself eagerly awaiting the moment when Ole Begeman’s first blogpost of the month is out. With this post he summarize the month that has passed on Twitter and other peoples blogs regarding programming, iOS, Mac, components, design and even patent issues. He manages to find most of the interesting (for me anyway) topics that has been discussed since last month.
Comments

Show me if it works

In my current project I needed to use a SearchBar. The standard UISearchBar in UIKit is working fine but it lacks some user feedback. When a search is performed the user ought to have some kind of feedback. Especially when the search is performed over the internet and the mobile net. So including an UIActivityView in the search bar was a natural extension.

Fortunately someone on ‘StackOverflow’ had asked for this before. The answer on the question pointed out how to get hold of the UITextField inside the UISearchBar, because there isn’t any property for it.

The only problem I had with this was a UX one: Should the UIActivityIndicator sit on the left or the right side in the textfield? On the left there is an icon showing a magnifying glass and on the right is the clear button and if needed the bookmark button. So which of these icons is to be gone hidden during the actual search. Since the left one wasn’t a button I choose that side, but if the Magnifying glass is a search option popup maybe it would maybe be better having it on the other side. Please let me know what you think.

I have put the simple subclass of UISearchBar on GitHub here. It’s named OOSearchBar and has two methods startAnimating: and stopAnimating:, use them in the UISearchBarDelegate methods.
Comments

I dont know where to go (at compile time)

I have used Objective-C for a long time and I love it. After using Clascal, ObjectPascal and Smalltalk for some years I bought a NeXT Cube some 20+ years ago and found a language that almost gave me the dynamic of Smalltalk and the power of C. Winking
The Objective-C language has something that most other compiled language lacks, a runtime engine. This engine gives the program the ability to communicate with the ‘language’ at runtime, and make the language do many things the compiler does. So even if the compiler is not actually there when the program runs, the program can still ask about how it’s components and it’s even able to make changes and extensions to itself. This may at first seems unneeded but after working with Objective-C for a time you will see the benefits and even become addicted.

There are many new users of Objective-C now, because iOS have grown so popular and they using the blog media is writing tons of tips and tricks how to do wonders with the AppKit and the UI. Fortunately there are also some blogs written by wizards that has been digging deep into the language and is sharing their wisdom about this runtime engine. Here comes some of my favorite blogs I read in this subject:

At first - Martin Pilkinton - and his blog Pilky.me, has an article on the basics of the Runtime and how the object model of Objective-C is constructed. This is a good start.

Next, - Mike Ash’s NSBlog (@mikeash), here you will find your main source of C and Objective-C inner workings. The Objective-C runtime has an API of C functions but most of us thinks it is easier with messages. Mike has encapsulated the runtime in Objective-C classes and with those we don’t have to handle pointers and functions. His little kit is found on GitHub, clone it.

Switching and adding methods at runtime seems a little ‘Look what I have done!’ but in the comments section of this blog entry made by Scott Stevenson (@scottstevenson) about adding methods there is a discussion about its usefulness.

Also at the NSConference 2010 Jeff LaMarche (@jeff_lamarche) made a speech about how he uses the runtime’s abilities. Pat Zearfoss wrote about and linked it here, watch it.

Some years ago on WWDC Steve Naroff asked the crowd what we liked to see in a new version of Objective-C, some of us shouted instance variables added with categories. This was one of my most longed for feature in the old NeXT times Objective-C implementation even if I found a hack reusing some pointer in the class to add an NSDictionary.
So, last (but not least) one of my favorite blogger Ole Begemann (@elo) has now pointed out a trick to add instance variables, sort of, to categories. He uses a new feature in Objective-C 2.0 using the runtime (thank you Mr. Naroff) to do this. So, Ole’s has now found a nicer and cleaner solution than my old one and writes about it here.

There are many more links about this subject and I will try to link to and write about them in another entry.

Comments