One year after my first MAC

So it’s been a little over a year now since I switched to using my first MAC on an every day basis. I have used MAC’s before at school and the odd time at work, but this was my first everyday MAC. It was a hand me down from our CEO at the time, so it’s a few years old. It’s a 2.33 Intel Core 2 with 3GB of RAM MBP. Over the last 6 years I have been in the industry I kept hearing the “MAC is so much better at……” argument that I was really interested to see what all the fuss was about. So here is a list of things I like and dislike and ultimately try to really answer if MAC is so much better then all the fanboys make it out to be.

IPhone SDK
I am going to get this one out of the way first because this was the reason I moved to a MAC. We where one of the few companies who where approved vendors before the App Store went live. We had a game in the store at launch and have since released 6 or 7 games with a few more set to launch shortly. I have to say that working with the SDK and learning a new language and environment has been lots of fun. It’s really great to have something tangible to show people when they ask what you have been up to. Objective-C took a little bit to get used to but don’t mind it as much as I first did when I started. XCode however I think is one of the worst development environments that I have ever worked with. I think Eclipse and Visual Studio are far better with more features and better workflow.

Startup time
I have heard numerous times that OSX will startup faster then Windows. Well I can say that my 6 year old Toshiba laptop running XP starts up about 2 mins faster then Leopard does. Maybe a completely vanilla install will start up faster, but not after you have installed all of the plugins and helper apps that you need to install to be productive.

Finder
Ok this has to be my biggest pet peeve of all. Finder SUCKS so hard it’s not even funny. Windows Explorer is by far a better file system browser, and it continues to improve with every version of Windows. It’s ridiculous to think that the file system browser, which is by far the most important application to any OS, can be so terrible. Here are some of my issues with Finder.
1. There is no address bar. So I can’t copy and paste paths to files. The only way I can copy the path to file or folder is to open a Terminal window and drag it in there.
2. Copying or moving files sometimes doesn’t seem to go where I want them to. This is more of a focus thing than anything. Sometimes I feel like the file should get moved to a certain directory, but ends up in it’s parent. This really all depends on the view that you are in, which can be frustrating at times.
3. There is no up button. By that I mean a button that will send you to the parent folder of the currently selected folder. There is a back button, but that brings you to the last visited folder and not the parent.
4. I am not a real big fan of the Column view either. A simple tree view would be satisfactory if you ask me.

I have been using Path Finder for the last 2 weeks and I must say it is a definite improvement. However, when you are within an application and you are trying to save and open files you still have to deal with the brutality that is Finder.

Everything just always works
Again this is false. My Cannon digital camera will not mount as a disk so I can drag pictures off. So I had to go and buy a Flash Card Reader. My Garmin GPS unit also didn’t connect nicely. I was able to get it to work after a little while but it was a pain. Granted this isn’t Apple’s fault that the companies drivers aren’t supported, but either was it Microsoft’s fault that companies didn’t make drivers for Vista.

Trash
This is a little trivial, but cost me 2 hours at 2am trying to solve this issue. OSX will always use the file that is in the Trash before it uses the one on the system. For instance, if you are building an application and you are trying to fix a bug. You delete your old app, which sends it to the Trash, you compile a new version with the same name and run it but don’t see any changes. You copy it to a new machine and it works properly. Well OSX is using the old one from the Trash instead of your newly compiled bug free version, even though you launched that file. So lesson learned, always empty the Trash during development.

Fonts and Flash
This may affect more applications then just Flash but it’s the one that affects me the most. Most of our office here are on PC’s and when I get files from a designer with non True Type Fonts every text field is f’d. The position and size of the font is all off. It sometimes makes it really hard to work between the 2 platforms. Maybe this is a Adobe issue and not an Apple one, but Apple isn’t the only one on trial here.

Audio Glitch
I listen to music every day through my headphones at work using ITunes. Sometimes if I unplug my headphones or plug them in during playback I lose all audio. The only way to get it back is to restart ITunes.

Calendar
Whenever I need to look at a calendar on Windows all I would do is click on the time in the system tray. So naturally when I need a calendar on OSX I click on the time in the menu bar. But it doesn’t give me a calendar. You can select Date & Time from the menu but if you have it so that it sets the time automatically the calendar is disabled and you can only see the current month. The other way to get a calendar is to open iCal, which to me seems over kill.

Unistalling applications
When you want to uninstall an application it can be as easy as just dragging the .app into the trash. But what if I wanted to uninstall Flash? It installs more then just the Adobe Flash CS3/CS4 folders in your applications directory. There are installers in /Applications/Utilities/Adobe Utilities/ that you can use but is that really that intuitive? OSX is supposed to be the OS with superior user experience. A global add/remove applications would definitely be a good thing to have.

Going to the Desktop
In Windows I often would use the Windows-D shortcut to minimize all windows and show the destkop. This was really handy for getting access to files quickly. The only way to do this on OSX is to click on Finder and then hit CMD-ALT-H to hide all other windows. It’s not that bad but it’s an extra step. You can also hit F11 to minimize all the windows to reveal the Desktop, but as soon as you click on a file they all come back which is super annoying.

Exposes and Spaces
While we are on the subject, I find these features useless. I tried using this for a couple of months but quickly found that they got in the way more then they actually providing a better user experience.

Subversion
There are not a lot of great options for Subversion integration. The integration into the context menu isn’t full featured like TortoiseSVN is on Windows. I have tried Versions and it’s not bad, but have had issues with it locking files on me unexpectedly. The best that I have been able to find is using Subclipse the Eclipse plugin. It has a great Repository Browser and fits into my development workflow for 99% of my projects. The other 1% is when I am in Xcode, which has terrible SCM integration.

Terminal
OK Terminal is awesome. It is by far better then the Windows Command Prompt. You can drag and drop files into it, it has a vi editor built in, which I still suck at but getting better, and overall it feels like an application and not a tool. If that makes any sense.

Unix
I have to say that working on a Unix machine has been a great learning experience. You get to learn a lot of things that you would normally not learn unless you where on Linux. Having Apache pre-installed is nice as well. Learning Unix commands and shell scripting has been lots of fun. If you have ever worked with me before, or been to one of my talks, you will probably know that I am constantly looking at optimizing workflow and efficiency. So I have been a busy scripter to say the least.

Screen Sharing
Screen sharing between OSX machines has been really convenient. Our IPhone development team works remotely in Denver and it has come in handy a few times. Also, our IPhone and Flash build machine is a Mac Mini. Being able to restart or install applications has been easy just by using Screen Sharing. If I was working in Windows, we would just be able to remote desktop in to the machine, which is essentially the same thing, but for some reason screen sharing feels easier.

Charmap
One of the applications that I miss most from Windows is charmap – or Character Map. This application shows you all of the characters that are included in a particular font. This comes in handy when you are developing for multiple languages and you have to make sure that a font has all the necessary characters. I haven’t found a great way to figure this out yet on OSX. The best way that I have found is to open Extensis Suitecase, type in all of the characters that you need in the box on the top right and then select the font to preview it. If a character isn’t supported in that font it will be displayed as a rectangle. Not really ideal but it will have to do I suppose. If anyone has any tips on this I would love to hear them.

Spotlight
Spotlight is a great search tool for the desktop, but so is the new Vista search. That’s pretty much all I have to say about it.

UI Design
The UI Design is by far better then most Windows applications. I never really understood why until I built a Cocoa app and realized that all of the Cocoa components are designed really well. Apple makes it easy for developers to make their applications meet the Apple UI Guidelines, which gives apps a consistent look and feel. If you look back at the old Visual Basic and Windows Forms components you will see why OSX has always been considered to have better UI. The new Vista and Windows 7 components, WPF/XAML, are a massive improvement, but they still lack a certain polish and maturity to them compared to the Cocoa ones.

Entourage
Uggg. Where to even begin. When your office is primarily a Windows shop, and you use Windows Exchange Server you don’t have much choice then to use Entourage as your mail client. Outlook is by far the best email client that I have ever used and I am not sure why Microsoft couldn’t just make a OSX version of it, instead of the grossness that is Entourage. Luckily Snow Leopard is coming to the rescue this fall and Mail and ICal will have Exchange support. I do however find it a little weird that there is 3 separate apps for Mail, Calendar, and Contacts. To me it makes so much sense to have them all in one. But time will tell once I start using them on a daily basis.

USB ports
There are only 2 USB ports on my MBP and it drives me crazy. My old Windows laptop had 4, which didn’t increase the size at all. I am basically stuck with carrying around a USB hub as I travel if I want to use a mouse.

I know all of this sounds like I hate my Mac, but I don’t. I am looking forward to getting a new Laptop and a iMac for the house as well. I think people are convinced easily that Mac’s are superior machines, when they are really just more of the same. You do get more for your money with a Windows machine. I don’t think one machine is better then the other and it really comes down to personal preference. The hardware design is by far the best however, but it’s a little pricey. I am sure there will be Fanboys out there that will disagree with most of this post, but they are the same people that stood in line at the Grand Opening of the Apple store this weekend in Ottawa. I am not sure what the big fuss is about. Best Buy sells the exact same stuff for the exact same price, because Apple hardware never goes on sale. Anyways

Continue reading » · Rating: · Written on: 07-19-09 · 6 Comments »

Automatic Builds Presentation Reference Links

Here are some reference links for my presentation.

Installing Subversion on OSX

ANT

Flash ANT Tasks

Flex ANT Tasks docs

Hudson

sample Flash build.xml

<?xml version="1.0"?>
<project default="all" basedir=".">
 
	<condition property="flash" value="">
		<os family="mac" />
	</condition>
 
	<condition property="flash" value="C:\Program Files\Adobe\Adobe Flash CS3\Flash.exe">
		<os family="windows" />
	</condition>
 
	<property name="dev.dir" value="/Library/WebServer/Documents/sceneit" />
	<property name="fla.dir" value="${basedir}/src" />
	<property name="swf.output.dir" value="${basedir}/bin" />
 
	<taskdef resource="FlashAntTasks.properties" classpath="FlashAntTasks.jar"/>
 
	<target name="all" depends="version, compileflash, uploadtodev" />
 
	<property name="src" location="Classes/com/fuelindustries" description="Fuel library path" />
	<target name="version">
		<exec executable="svnversion" output="temp.txt">
			<arg line="-n" />
		</exec>
 
		<replaceregexp file="temp.txt" flags="gs" match="([0-9]+)(:)(.*)" replace="\1" />
		<loadfile srcFile="temp.txt" property="revision" />
 
		<replaceregexp file="${src}/BuildNumber.as" flags="gi" match='BUILD_NUMBER : String = "[0-9A-Za-z]*"' replace='BUILD_NUMBER : String = "${revision}"' />
		<delete file="temp.txt" />
	</target>
 
	<target name="compileflash">
		<flashcommand flashapp="${flash}">
			<movie export="true" source="${fla.dir}/prototype.fla" output="${swf.output.dir}/prototype.swf" />
		</flashcommand>
	</target>
 
	<target name="uploadtodev">
		 <copy todir="${dev.dir}" overwrite="true" >
   			 <fileset dir="${swf.output.dir}" />
  		 </copy>
	</target>
 
</project>
 
<!--
 
Helpful tasks
 
Copying a whole directory	
<copy todir="pathtonewdir" overwrite="true" >
	<fileset dir="dirtocopy"/>
</copy>
 
Getting the current date stamp
<property name="now" value="${DSTAMP}-${TSTAMP}" />
 
Creating ASDocs
<exec executable="asdoc" failonerror="true">
    <arg line="-source-path Classes -doc-sources Classes/" />
</exec>
 
Updating SVN
<exec executable="svn">
	<arg line="update trunk -r HEAD" />
</exec>
 
 
<movie> Task properties
closeDocAfterComplete = false;
closeFlashAfterComplete = false;
publish = false;
testMovie = false;
saveAndCompact = false;
-->

Sample BuildNumber.as

package com.fuelindustries 
{
	public class BuildNumber 
	{
		public static const BUILD_NUMBER : String = "7M";
	}
}
Continue reading » · Rating: · Written on: 06-09-09 · 1 Comment »

My Experience Installing Vista

Over the Easter weekend I upgraded from XP Pro to Vista Business edition and I am really liking it so far. At first I wasn’t sure what to think, but the more I use it the more I like it. I find it’s somewhere in between XP and OSX. There are a few quirks but once you get used to them you really don’t notice them. And the only reason you notice them in the first place is because it’s acts differently then you are used to in XP.

But  below are some things I ran into while installing it and the solutions.

FlexBuilder
When I first  ran  Flex Builder it gave me an error and wouldn’t start up.  I thought something might be up so I re-installed it and the same thing happened. After some searching I found that you have to right click on the .exe and select “Run As Administrator”. You only have to do that the first time you run it though. And then when I got it working it decided to use the French Canadian Keyboard layout instead of the English one. I didn’t even have that layout selected but it was still using it. So I actually went in a deleted the entry from the Keyboard utility app in the Control Panel. It was really weird because every other app used the right layout.

Annoying Permission Popups
When you are installing a lot of apps at once you get these stupid permission popups asking you to allow the install. Think of that Mac and PC commercial by Apple where the security guard is standing behind PC. It’s pretty much like that. So to turn it off check out this link to turn it off.

Firefox
While I was customizing Firefox I deleted all of the bookmarks in the bookmark tab. If it’s empty the page while keep jumping on you. So just make sure you always have 1 bookmark in the tab.

Acrobat Reader
If you have turned off the annoying permissions popups you will get a “Temp Drive Full” when trying to install Acrobat Reader. The only way to fix this as far as I know is to temporarily turn on the permissions.

Now the only thing I still haven’t figured out is how to uninstall the Vista apps like Windows Calendar, MovieMaker, Mail etc… Really it’s not that big of a deal but it would be nice to get ride of them.

I hope this helps make installing Vista a little easier. And if you aren’t sure on whether you should upgrade I would recommend it.

Continue reading » · Rating: · Written on: 04-08-07 · No Comments »

2 really refreshing posts

Over the last couple of weeks the flash community has been hit with numerous blog posts on the new Apollo Alpha and CS3 launch, and I have to say I am just excited as everyone else. But there have been 2 posts that I really enjoyed that have hit home about why I love my job so much.

The first was from Guy Watson, who has been very quite over the last little while.  In his post “Where Have I Been?, he explains his lack of visibility in the community. It was great to hear that one of the best Flash Developers over the last couple of years came to the realization that being the best isn’t all that there is to life, and that it is important to have balance. I have always felt this way, especially going through school. Could I have got straight A’s all the way through school? For sure I could, but I would have had to study WAY harder then I did and would have missed out on a lot of great  experiences. I made the decision to have my education suffer a little so I could hang out with friends, go on road trips and play guitar, and I have no doubt in my mind that I would be a much different person today if I didn’t. And it’ s only been the last year or so that I have started to do this with work. When I first started my career as a Flash Developer 4 years ago I was really driven to be one of the best. I wanted to be on every beta program, speak at every conference, and hang out with all the other rockstars in the community -  and I got do do some of that. But to be honest it’s not all that it’s cracked up to be. Don’t get me wrong I love speaking and going to conferences but it’s for an entirely different reason then it used to be. It used to be about “look what I can do!”, but now it’s about going and meeting new people, teaching and just having fun. When I meet new people at conferences the first few questions are the typical where do you work, etc… and it’s more just so I can remember them or track them down later, but after that I would much rather talk about what they do when they aren’t working. “Where do you live? What’s it like there? Do you have any kids?” There is so much more to people then the latest open-source project that they have been working on. In fact when I interview people for positions at Fuel Industries there is 3 things I look for, and in this order. 1. Do you fit into our culture. 2. Are you passionate about what you do? 3. Talent and knowledge. You can have the most talented developer on your team but if they aren’t going to fit in then chances are it’s not going to work out. So with FiTC just a few weeks away, please hold me to this. If you see me let’s hang out, have a beer, and talk about how the Ottawa Senators are going to win the Cup and the Leafs are going to miss the playoffs for the second year in a row.

The second was from Aral Balkan. He has been going back and forth with Patrick Mineault about whether or not his new open-source project SWX is worth the trouble. But Aral’s post “SWX: Still a good idea“  made some great points on flash development that little to do with SWX.  So forget the actual debate for a minute, because really how many people have actually used SWX yet? not me so I can’t comment one way or the other. The part of Aral’s post that I like the best was that developing in Flash is more often then not a hack, which I think is the best part of being a Flash Developer. I took a Multimedia Production Program at a community College where we didn’t learn a whole lot of programming. I have never taken a Computer Science course, I don’t know Java, any form of C, and have a very limited knowledge of server side development. But I can program in flash and I think I do a pretty good job at it. I’ve read books about design patterns and object oriented programming and all of the best practices articles out there. And they have all helped me a great deal in becoming the Flash Developer I am today. I try to plan as much in advance and write code as clean as I can, but if I have to use this._parent to make something work I am not ashamed to do it. Maybe it’s just the nature of the jobs that I work on that allow me to get away with this. At Fuel we don’t work on really any big RIA’s or have to integrate with anyone else, so there is usually no need to worry about overwriting someone else’s _global variables or prototype functions. Most of our jobs are one shot deals with quick turn arounds, and really does the client care that your referenced _root? As long as it works, is bug free and looks great that’s all they care about at the end of the day. And when I am trying to achieve something that I haven’t done before, like maybe a cool scripted animation, I totally hack it together in AS1 first to get it working, tear it down, rebuild, clean it up and then port it over to AS2. If I had to worry about all the “rules” when I sat down to do something I would get nowhere fast. So my advice is to read what you can and try to understand why and how things get built the way they do, and then find a solution that works for you.

So all that being said try not to get to wrapped up in everything the community throws at you. There are lots of great developers out there that have a lot of great things to say, listen to them and learn but don’t hold on to their every word. Do what works for you and go outside and enjoy the nice spring day.

Continue reading » · Rating: · Written on: 03-31-07 · 3 Comments »