Skip to main content

Posts

Showing posts from 2012

Innovation (You're doing it wrong)

The word Innovation , it drives me insane! I think I havent heard it used correctly this entire year. Apple uses it incorrectly a lot by calling improvement innovation, and people ridicule them for that.




Yet those same people say things like "Patents hold back innovation". Just wait a minute? what ? Patents (saying this is my new idea and you cant use it) holds you back from inventing something completely new or different to what has been patented ? Well.. I don't even ... where did you buy your logic? Take it back , get a refund.
Patents can hold back your ability to improve exsisting technology and being able to sell that as a product but im pretty sure the patent holder would pay you a nice sum for your improvement ideas(if you patent them of corse). Patents can work with improvement and if what you are doing is really innovation , there won't be an existing patent anyway. 

So please , understand a word before you create a "buzz-phrase" around it.

B…

Apple remote review

The Apple remote is a pretty simplistic device with limited features, it does what it does nothing more , nothing less.



First impressions are that it's thin , really thin , its not only the thinnest remote I've ever held in my hand , but im pretty sure its one of the thinnest things produced by Apple that I have held in my hand.

How does it work?

When it comes to getting it to work , all I had to do was pull it out, point it at my Mac Mini and click play , you could say that "It Just Works". If iTunes isn't open when you click play , then it will be opened to the relavent place for you. This feature however has a downside ,if you have more than one Mac in the room this thing will control both , so when I had my laptop open and used the device ,musical chaos ensued.

iTunes

For the home user who wants to use it for iTunes the relevance of the device is questionable ,though it is handy to quickly grab and turn down the volume or change a song, the iTunes Remote app o…

What programming language must you learn?

Every now and then(like every 2 nano-seconds) , a user will come onto a forum and ask: "What programming language should I learn?"

Not long afterwards ,somebody will whip out their snake(python) followed by everybody's own personal favorite language. The whole process is a mess and can leave a newcomer confused.

An important thing to note is that the language you start with is probably not the language you will end up using. I personally started programming by messing around in Visual Basic 6 , Got my diploma in C# and C++(half lang). I now mainly work in Objective-C , but also implement PHP services among other things.

Become a language agnostic programmer

Once you have learned the basics of programming in any language , learning another language is much quicker. The part that takes time when learning a new language is not really the syntax, but the libraries that are used to get specific tasks done.  Knowing a full language and most of its libraries means that you are s…

Half-Life 2 for OSX , how well does it run?

Earlier this week Valve advertised Half-Life 2 for the Mac with the best advert I have ever seen. They took the old 1984 Mac advert and re-created it using the source engine and characters from the game. As if the awesome(albeit 35 second) entertainment wasn't enough they offered the game at $3.40 for a limited period. It was not shortly afterwards that I made my first ever purchase on Steam(its kind of strange buying a game and not getting a box with it).




The game purchase actually allows you to download the OSX or Windows version of the game , depending on the platform you are logged in to .This is great , because I have a PC with some decent gaming power and my Mac Mini (which I naturally wanted to test on) and wow ,the OSX version runs pretty darn well,especially considering that my mac mini is running only an intel HD3000.



Performance
I was surprised how well the game performed on high settings , the gameplay was smooth with the default high settings , reaching frame-rates up …

Fix ssh -Y with other Macs OSX 10.8 Mountain Lion

You may have realised that when you try use ssh -Y on another Mac from Mountain Lion you get the following error :

Warning: No xauth data; using fake authentication data for X11 forwarding.X11 forwarding request failed on channel 0




Fixing this error only takes some simple configuration. All you have to do is add these lines to the following files on both machines:

/etc/sshd_config

X11Forwarding yes
XauthLocation /opt/X11/bin/xauth
XauthLocation /usr/X11R6/bin/xauth

/etc/ssh_config

XauthLocation /opt/X11/bin/xauth
XauthLocation /usr/X11R6/bin/xauth

That should be all you need to get rid of the authentication error. Hope this was helpful.

Mountain Lion's hidden feature , weeding out bad journalism.

Like normal , when something new comes out that I want , I read up about it (a lot) and the release of Mountain Lion was no different. However I was shocked to see how heavily opinionated and therefore unprofessional a lot of the reviews are , the particular one that shocked me was the review by Gizmodo .
It's not exactly a new thing for journalists to be completely biased,sensationalist scoundrels but to me , this kind of thing is crazy for a tech review. 
The general consensus is that you should give your opinion but not let it set the tone for your entire review and keep in mind that different users have different preferences. A key example of this idea being violated is the general opinion from journalists that the textured OSX apps like iCal(now Calender) , Notes,Reminders etc Look stupid and gimmicky. I on the other hand , like the look of the textured apps, so when I read a review that insults them ,I feel like the writer is insulting my preferences .
Through the array of r…

Bringing back apache(Web Sharing) after Mountain Lion install

If you were a user of Web Sharing in OSX then you may have realised that the option for web sharing in Preferences is now gone in Mountain Lion. However the apache2 background is still there ,but all of your configs have been reset(you may find the old backed up ones lying around somewhere) and you will need to bring them back before starting up apache from the terminal.

First things first though, I use php for my web stuff so I want to bring that back first. So I need to edit the file /etc/apache2/httpd.conf and uncomment the line that loads the php module:

LoadModule php5_module libexec/apache2/libphp5.so

Save the file and we should be done(remember we need root permission to save changes to this file).

Next I want to set up my php.ini. Go to /etc in the terminal and sudo cp php.ini.default php.ini

Now edit the php.ini (don't forget the root permissions) to your preferences , I wont provide details on this because it depends whether you are using this machine for the purposes of …

Save the Mountain Lion

So I have Mountain Lion running one Mac , and I have already learnt something the hard way. Once you download , BACK UP the installer somewhere , after installing ,the Mountain Lion installer disappears without a trace so if you own more than one mac you are going to have to do the download again. Thats a pain I am sitting through right now. However , thanks to the existence of the new OS on one Mac I can still give some first Impression Opinions.

I have only had the OS for a couple of hours and on first look you notice that the dock has changed , In my opinion for the better , the dock no longer has a glossy reflective finish that creates an annoying center line across the entire thing when a window ismaximized. The reduced reflections make it appear   a lot less cluttered and it just seems newer and fresher. The indicator light for open applications has become more subtle though and can be harder to detect when your brightness is turned up to the max(laptop). In fact turning the bri…

Removing NSLogs from release build

NSLogs are great when debugging to see exactly what is going on but the downside is that they impact heavily on performance (I speak from experience on that one).

Luckily there is a way to "disable" them on release builds of your application and still have them in your debug builds. we do this by simply adding the following macro to the prefix .pch file in your project or anywhere before the entry point to your application.

#ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...) {} #endif

If you want an explanation here it is.

When you build a Debug version of an application DEBUG is defined , if its a release build , DEBUG is not defined.This macro checks if DEBUG is defined , if it is it sets NSLog to what it should be , if DEBUG is not defined then NSLog is defined as an empty code block that as you should know will do nothing , thus saving on performance.

Color status bar on iPhone

This is just a quick tip with some basic logic on how to get a colored status bar on an iphone app ,here i will be assuming that the app does not rotate so i will be placing all the code in appdelegate in the
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
So the secret is really that there is no secret ,apples framework does not allow you to choose the color of the status bar so instead we set the status bar to the translucent  predefined style of UIStatusBarStyleBlackTranslucent and then we draw a colored view behind it to make it appear as though the color of the bar has changed. Here is a sample where i "tinted" the statusbar cyan in the app delegate :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {         [[UIApplicationsharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucentanimated:NO]; UIView *colorStatBar = [[UIViewalloc] initWithFram…

Using delegates in Objective-C



Why use delegation?

Well when writing Objective-C programs in Xcode we are encouraged to use the MVC(Model View Controller) structure.In MVC a model cannot send messages directly to a specific controller.This can become a problem if data in your model changes independantly and you need to update this information in your view via the controller(The model must never communicate directly with the view).This is where a delegate comes in,it allows messages to be sent from the model to a controller that is not specified in the model but is rather specified by the controller,in other words the controller specifies itself.

If you dont really understand what im talking about so far ,don't worry.I didn't understand delegates either until I needed one,but hopefully by the end of this tutorial you will understand not only how to use a delegate ,but the reason you would want to use one.

Program breakdown

For this tutorial we will write a program that has a model that will change an intege…

Lion's eat RAM's

I recently purchased a Mac-mini(Yes I own a Mac now) with relatively the same hardware specs as my(well the one I work with) MacBook pro, Intel Core i5,Graphics 3000(or whatever) etc. The only difference being that the ram in the Mini was only 2GB and the Laptop has 4GB,we will come back to this later.

The MacBook Pro experience: My experience with the laptop has been great,never lagging and I really got used to using a track-pad instead of a mouse and found gestures very helpful for quick desktop management with a small screen.It was also very responsive and I keep tons of windows open all the time without problems.



 When I got my Mac Mini,I popped it out of its box and plugged it in to my standard PC peripherals,switched it on and everything worked fine ,I got a few nice surprises too,I did not expect it to come with a wireless card or built in Bluetooth,just like it does on the MacBook.

Then I tried to run Safari,iTunes and Xcode all at once(I do this often while working on the Mac…

The World’s best operating system

This is a debate that has waged since the beginning of the three major operating systems, namely Microsoft Windows, The Mac Operating system and the many variations of Linux. For the purpose of this post I will be comparing using the latest versions, so that is Microsoft Windows 7, Mac OSX Lion and well, Linux is Linux.
Microsoft Windows is the operating system everybody should be familiar with, it’s pretty much what people grow up with and become used to, when you buy a pc, it more than likely comes with windows, you don’t get pc games, you get “games for windows”, plus the average person’s question when they see Linux on your pc is “What windows is that?”. Up until now though, I have never been happy with windows, there were always error messages and viruses and just general slowness and inefficiency. But from the moment I saw windows 7, I liked it, not only did it look good, but it performed well and I was able to use it for months without a single error, I nicknamed it Windows 1.

Skyrim

Out of all the games I was anticipating in 2011, The Elder Scrolls: Skyrim  (Kelle: Keizaal in the Dragon tounge) was strangely not one of them.This was because I hated Oblivion and expected Skyrim to be the same.



 I was very,very wrong. There were actually only two reasons I hated Oblivion, but they deterred me from actually attempting to finish the game.Reason one was that the inventory used illogical little icons and was as intuitive as Quantum mechanics(I to this day don't know how to drop an item in Oblivion) .Reason two was aesthetics,the people are the ugliest collection of creatures ive seen in a game,and thats just the humans... And then theres the water,lets just say it filled my head with strange thoughts of water coolers in the Bethesda office being filled with a strange matte blue liquid.

In Skyrim they fixed it all ,everything is beautiful ,and finally someone got it into thier head that words are alot more intuitive than silly little pictures (they even tell you how…