Java 6 for Developers on MacOS X: SoyLatte Reaches 1.0

For those many of you (including myself) who have been waiting almost a year now for Java 6 to be properly supported on the Mac, the wait is over if you’re a developer– Landon Fuller has released SoyLatte 1.0, which is a port of FreeBSD Java 6 to MacOS X which will eventually end-up as part of the OpenJDK. This seemed to come together very quickly once Leopard came-out and was missing Java 6.

Though Java 6 didn’t provide quite as much new syntactic sugar as Java 5, the performance increases in Java 6 are pretty dramatic. I highly recommend giving Java 6 a look if you’re doing any development which runs on the JVM if you haven’t already switched.

Keep in mind that this is mostly a developers port as it’s not yet integrated into Cocoa, the MacOS X native GUI. Desktop applications will run under X11, but this is the next hurdle to tackle (though it seems to be a pretty big one).

Posted in Languages, Operating Systems, Tech News, Tips, Hacks, & Tricks | Tagged , , , , , , , , , , | 2 Comments

Advice For Managing Your Career: 50+ Resources For Programmers & Software Engineers

Having came across several interesting stories within the past week or two which were all career related, it reminded me of all of the good resources I’ve came across over the past few years related to the craft of Software Engineering. Maybe you’re just looking to get started in Software Development and aren’t sure if it’s for you, or maybe you’re a manager wondering why your employees are leaving– all of these items and more are covered here.

1. Getting Started

Not sure if you were cut-out to be writing code for the rest of your days? Career Cat - cat reads article about how to improve his career Are you feeling different than your peers? Justin James wrote an interesting list– 10 signs that you aren’t cut-out to be a developer.
Now that you’ve decided you are genuinely interested in becoming a programmer, there are many, many ways to go about this. If you don’t have any idea what direction to head to, a good starting point is Getting Started in Programming.

2. Get Your Resume In Shape

Resumes are yet another major thing to get right. A resume is what can get your foot into the door into the company of your dreams, or put you in an infinite job search loop with very little feedback. There are many opinions and guides to creating the perfect programming resume, and here a couple which I’ve found to be the most helpful are Writing a Resume That Will Land You a Programming Job and Resume Pitfalls Every Programmer Should Avoid. Most programmers are notoriously bad at presentation and should also think about giving their resume a face lift. It also might not hurt to take a look at the 100 most searched for resume keywords and add them to your resume if they match your skills and experience.

3. Starting your Job Search

One of the best ways to get jobs is to reach-out and network with people you know to see what jobs they know about. The most natural and unobtrusive way to do this is to sign-up for LinkedIn and import your address book.

A good way to see what sort of jobs are out there and what the market is like is to use a job aggregator and search engine like There are also some other sites to take a look at which it doesn’t have permission to index such as craigslist. You may also find out about jobs through local mailing lists or user groups. You could also check into companies that you like and are interested in by going to their website and seeing if they have any open positions which fit your skills and experience.

There are of course many large and popular job sites which you might want to hit individually if you aren’t finding what you’re looking for via– sites like Monster, HotJobs, and Dice are all good places to start.

4. Prepare For The Big Interview

If you’ve been in the industry for awhile you know that what you can expect during the interview process is it being completely unexpected. There are a wide variety of interview techniques used by companies, and none of them seem to be the same. I think one really good overview on what to do is Preparing for a Software Engineering Interview. While that is a good overview, you have to prepare for a very wide variety of questions. Here are a lot of resources to prepare you for an intense Software Engineering interview process including some general interview tips as well:

Although you should be prepared for a wide variety of potential interview questions, you should also be prepared to ask plenty of questions of your own. Bruce Eckel provides a good list of questions which you should ask during an interview, and you should also be prepared to take some ownership during the process as well.

You should also make sure to dress appropriately for an interview– it is not the time to break-out your DEFCON 1999 shirt, nor should you make an unnecessary trip to your local department store for a suit. Unlike most other white-collar professions, you are actually at a disadvantage if you wear a suit to an interview, but you should at least take the time to clean yourself-up and look like a well adjusted adult.

If you happen to be on a team trying to land a new developer and you experience great candidates turning you down over and over again. One thing to be conscious of is how poor interviewers drive away talent.

If you didn’t get the job, it wouldn’t hurt to read 25 Reasons You Didn’t get the Gig to brush-up on your interviewing and presentation skills before you give it a try again. Or maybe it’s just a sign that you’re ready to start your own company or do freelance work from home, there are plenty of reasons you don’t need a job.

5. Got The Job? Improve Your Situation

There are many things you should be doing to improve your career and general well being even while employed. For one, you should always continue learning– whether this be new languages, frameworks, or even learning more of the classic Computer Science topics in depth, don’t forget to prevent yourself from becoming stale. The one constant about technology is that it’s always changing, and you will need to keep-up on your own time to stay competitive.

At the same time, being the master of a particular domain is not all it’s cracked-up to be– make sure you spend plenty of time outside of programming as well for a balanced life. I try to learn as much about as many topics as I can, and from time to time find some interesting lessons in life you can later apply to what you do. Travel to new places, try things you normally wouldn’t do, try new cuisines, and in general find ways to grow your mind.

Programmers aren’t known to be the most extroverted, gregarious people in the world (myself included), but you should make an active effort to meet new people in your field. Whether that be at user group meetings, conferences, chat rooms, mailing lists, message boards, etc, you’ll find that having connections in the industry is a very good thing to have. I’ve mentioned it before, but LinkedIn (no affiliation other than a user of their service) is a really great place to keep in touch with your network.

A topic that many programmers overlook is budgeting and investing– we’ve all been guilty of it at one time or another! It’s easy to be wasteful when making a decent salary as many software developers do. Here are a few resources which will help you get a handle on your money and start making it work for you by doing more with less, and investing more:

6. All Things Must Come To An End

Once you’ve been in a job for awhile, it’s pretty much inevitable that you will leave for greener pastures for a variety of reasons, or be forced to move for various reasons. You might even find yourself alone after many of your co-workers leave via a mass exodus in which management has no control over. If you feel that you’re in a salvageable position, some links which might help you analyze what the problems are in hopes of fixing them include:

Perhaps you’re tired of your job for various reasons and are weighing whether or not you should stay? A couple of articles which might help you make the decision on what to do include What To Do When the Thrill is Gone and Do I Stay or Do I Go.

Although this is quite an exhaustive list which took me quite a long time to write about and assemble, I’m sure I’ve missed plenty of tips or resources to pass-on. If you have any to add, be sure to leave them in the comments!

Thanks to Flickr user McBeth for the perfect photo.

Posted in Culture, Tech News, Tips, Hacks, & Tricks | Tagged , , , , , , , , , , , , , , , , , , | 3 Comments

Farewell CFDJ: My Last Year on the Editorial Board in Review

Although this is a topic which has gotten much coverage, to the point of beating a dead horse, I felt obligated to comment on it as someone who served on the Editorial Board of the ColdFusion Developer’s Journal until is was recently shuttered.

When I was originally asked to join the board, I had some strong reservations about it for many reasons, but decided to give it a try for the purpose of helping out the community in a constructive way. For instance, I’d heard about a previous editorial board for LinuxWorld who all resigned at the same time, I think not compensating people who contribute to the magazine is completely unethical, and their website reminds me of a “warez” site where popups, videos, and all kinds of other annoying crap invade your computer. Despite all of that, I assumed that being part of an editorial board would help voice developers concerns like “Your site makes the baby Jesus cry, make it stop!”, “What kind of monkeys are editing the articles?”, and “Why do you keep stealing people’s content and publishing it as your own?”.

I thought perhaps as a board member, I’d have a chance to read articles which were still in draft and help with the code and articles, offer suggestions, and maybe even catch some of those typos which seem to plague the CFDJ. Having worked in ColdFusion for (at the time) 8 years, writing somewhat useful blog entries for quite some time, as well as doing tech editing for a ColdFusion book, and having a Computer Science background (kind of a rarity among CF Developers?) this seemed like a pretty good fit.

Instead, I think it just entailed having some community names added to the board to show that they were involved but in reality none of the people listed had any say in anything, nor even had any idea what things were being put in each issue. We never saw any articles, or even previews of what a printed issue would look like. I would have even appreciated a free subscription for writing and editing articles, but I never got that either– it certainly wasn’t worth paying for. I saw the final version of magazines the same way everyone else does, by going to the PDF download site. As others have noted, we had no idea it was being shut down until the entry was posted at the CFDJ itself.

I really never went out of my way to promote the CFDJ or even write new articles for them because it didn’t seem like anything had changed. It fact, it only got worse as time went on– it was hard to even get any sort of e-mail response from anyone on SysCon on the editors mailing list as time went on.

That said, the board really put a lot of time and effort into trying to breathe life back into the publication, but it was for little to no gain. It is with a little sorrow however– I can remember when I was first getting started with CF how valuable the publication was. I’d say most of us were all ready to resign out of frustration, though it wouldn’t have really mattered since communicating with SysCon has been like talking to a black hole for quite some time.

I think the only way I can sum this up is– I for one welcome the Fusion Authority overlords.

Posted in Culture, Languages, Tech News | Tagged , , , , | 3 Comments

Dilbert Groks Java

I can’t say I’m an avid reader of Dilbert by any means, but today’s comic features a mention of Java:

Don’t bother. I already coded a Java app to do everything you do.

Good stuff.

Posted in Culture, Languages, Tech News | Tagged , , , , , , | Leave a comment

How To Stop The Creation of .DS_Store Files

At the request of a reader, I went ahead and researched what .DS_Store Files are, and how prevent MacOS X from creating them. In a nutshell, .DS_Store files are created by Finder to store preferences:

.DS_Store (Desktop Services Store) is a hidden file created by Apple Inc’s Mac OS X operating system to store custom attributes of a folder such as the position of icons or the choice of a background image. By default, Mac OS X will create a .DS_Store file in every folder that it accesses, even folders on remote systems (for example, folders shared over a SMB or AFP connection) and even if the user has only customized the appearance of the folder by moving its Finder window. This is in contrast to the preexisting system for the same purpose used in previous versions of the Macintosh Finder, which would merely place a number of invisible files at the root of the volume being accessed (even on alien filesystems), always storing the settings and metadata for all of the folders in the entire volume within this single set of files.

Unfortunately it seems that you can only prevent Finder from creating these files on network shares and not on your local machine. Here’s how you do it:

  1. Open the Terminal application (though I highly recommend using iTerm instead)
  2. Type in the following command:
    defaults write DSDontWriteNetworkStores true

    and press enter

  3. Reboot your machine so that the changes will take effect

I haven’t found a good way to prevent OS X from creating them on local file systems, but perhaps someone out there has some suggestions? Other than creating a script to delete them and adding it to cron, I’m not sure of a way to at least clean them up in an automated fashion. I did run across an application called DS_Store Cleaner which helps clean-up said files, though.

Posted in Culture, Operating Systems, Tips, Hacks, & Tricks | Tagged , , , , , , , , | 6 Comments

Interesting Details About the Space Shuttle Operating System

One great thing about the blogowebs is that you never know what sorts of posts you might run across, and this post about self-modifying code and the Space Shuttle OS is a prime example of that:

And it reminded me of my days during the early 1990s working as a software engineer on the Space Shuttle operating system (FCOS). Many people don’t know that the Space Shuttle OS implements self-modifying code for the purpose of “fault-tolerance”. The Shuttle computer systems consist of four primary computers running the same software, and a fifth backup computer running different software that is equal in functionality. The goal is to be Fail Operational if one or more computers fail, and Fail Safe if all primary computers fail; this is called a Fail Operational/Fail Safe system.

An interesting read, especially if you’re a software developer who doesn’t work in embedded systems but likes to read about them.

Posted in Culture, Operating Systems, Tech News, Tips, Hacks, & Tricks | Tagged , , , , | 1 Comment

How To Show Hidden and Protected Files in OS X Finder

One of my few complaints about MacOS X is that at times I feel like it treats you with kids gloves– many options for power users either require some sort of hacking, or simply don’t exist. One such thing which is fixable is getting Finder to show hidden files. It’s a quick and easy process via the command line to fix this:

tobin:~ brandon$ defaults write AppleShowAllFiles TRUE
tobin:~ brandon$ killall Finder

Now you can actually see all of the directories which start with periods, etc. Enjoy!

Posted in Culture, Operating Systems, Tips, Hacks, & Tricks | Tagged , , , , , , , , | 32 Comments

Me.dium Now Open To The Public– Announces IE 7 Support & New Widget

My blog postings have been fairly sparse since starting a new position earlier this year, but it’s nice to finally be able to show some of the things happening at my not-so-new job. My employer, Me.dium, just announced today the availability of an IE 7 Version of the Me.dium Sidebar, as well as a new Widget.

I’ll try to update this post a few times later today with news and blog coverage, but here’s what I’ve seen so far:

In terms of my contributions to what you see, my primary focus had been working a couple of scalability items on the Java front, but I’m currently working on something new which you’ll be able to see sometime this Fall.

I just added the new Me.dium Widget to my site which you can see below my bio– check it out. In summary, it allows you to see the real-time activity of Me.dium users on my site and related sites.

Not a Me.dium user yet? What are you waiting for?

Posted in Culture, Site News, Tech News | Tagged , , , , | Leave a comment

Development in Mac OS X: How To Fix the Lame Default Font in Eclipse

The default Eclipse for Mac OS X font is kind of annoying since it’s way too big and reminds me of MS Comic Sans. If you try to replace it with one of the wonderful ProggyFonts without tweaking them first, you get stuck with anti-aliased fonts that look terrible. During my quest to get past this problem, I came across a way to setup a more programming friendly font in Mac OS X which uses one of the Proggy Fonts in aliased mode.

Although the above instructions aren’t terribly explicit, you can find the various Eclipse font settings under Eclipse > Preferences > General > Apperance > Colors and Fonts once you’ve installed the font and made the appropriate changes to your System Preferences.

Posted in Culture, Languages, Tips, Hacks, & Tricks, Tools | Tagged , , , , , , , | 3 Comments

How To Repair User Permissions In Mac OS X

I'm in the process of setting-up a new Apple MacBook Pro today, and during the process of trying to import and get some old SSH keys working correctly I accidently changed the permissions on my home directory. Even after scrolling back through the commands I used I'm still not even sure how it happened, but nonetheless I had to find a way to fix it.

Anyhow there are several symptoms you'll see if the permissions are wrong in your user folder such as:

  • If you're browsing to your home folder using Finder and get a message like 'The folder "username" could not be opened because you do not have sufficent access privileges'
  • When trying to access your home folder in a terminal, you keep getting redirected back to /

Basically if you can't access your home directory in Mac OS X, this blog entry is for you. There is a "repair permissions" utility in OS X but it does not repair permissions for user directories, so you have to take care of it manually.

To repair a specific users permissions in Apple OS X, type the following command in a terminal and replace "username" in the command below with the name of the users permissions you need to fix:

  1. $ sudo chmod -R ug+rwX /Users/username

You'll need to reboot so that Finder will pick-up the permission changes, but that should clear-up any user specific permission problems if you are locked out of your home directory.

Posted in Culture, Operating Systems, Tips, Hacks, & Tricks | Tagged , , , , , | 21 Comments