Founder of Kernl.us. Working and living in Raleigh, NC. I manage a team of software engineers and work in Python, Django, TypeScript, Node.js, React+Redux, Angular, and PHP. I enjoy hanging out with my wife and son, lifting weights, and advancing Kernl.us in my free time.
As any good free-lance web developer does, I was browsing my competition’s portfolio earlier this evening. I was curious as to how the layout was done on one of their client’s web pages, so I opened the source. Near the bottom, there were probably 100 links injected into the page. It turns out that they were the victim of a cross-site scripting attack.
I immediately notified the owner, but I’m still pretty excited that I made a discovery like this. You hear about cross-site scripting attacks all the time, but I’ve never actually discovered one.
Last Christmas I graduated from college. One of my graduation gifts was a 2nd generation iPod Touch! At the time, the iPod Touch was one of the coolest things I had ever got. I immediately started to play with it, and was impressed with it’s ability to know the orientation of the device. It’s multi-touch support was also impressive. Probably the coolest part of owning an iPod Touch was that “there’s an app for that” attitude. The sheer volume of available apps was mind blowing.
After graduation I started grad school, so I didn’t have much time to play on the technical side of iPod Touch and iPhone development. However, I now have the time, and what follows is my journey on the road to iPod Touch and iPhone development enlightenment.
Getting Started
Before I even got started with iPhone development, I already ran into a problem: I don’t own a Mac, nor do I want to own one. It’s not that I don’t like them. They’re beautiful machines with top of the line hardware and software, it’s just they’re a little outside my
price range. So, how does one go about developing for the iPod Touch and iPhone on a Windows machine? Well, there are a few different options. Some revolve around Cygwin, while others around VMWare. There is a good thread going on over at Stack Overflow (here) about it. Depending on your situation, you may want to just pony up the cash for a Mac Mini, but to each their own. In my case, I went with one of the methods listed above.
About the Book
The book I’ll be using for this adventure is “Beginning iPhone 3 Development: Exploring the iPhone SDK” by Dave Mark and Jeff LaMarche. It was reasonably priced, well reviewed, and had a grapefruit on the cover. How could I possibly go wrong with this? While I’ve only read the back cover at this point, the only problem I have with it is that it fails to mention the need for a Mac. Some people might say “Duh! Of course you need a Mac for iPhone and iPod Touch development!”, but it’s not always obvious to everyone.
Requirements
As with most development projects, there are a few things you need before you get started. In the case of iPhone & iPod Touch development, you need the iPhone SDK (also, from this point forward I’m going to start referring to “iPhone & iPod Touch development” as “iPhone development”). To get at the iPhone SDK, you need to visit http://developer.apple.com/iphone/ and sign up to be an iPhone developer. It’s free (or has free options), so that’s a relief.
The sign up process seemed fairly painless. While I’m not a huge fan of having to register and give out personal information, they control the SDK, so I suppose I must do as they say. Nothing too suprising once you’re through the registration though, except the download is 2.5 GB!!! The worst part is that I have no idea why. I always thought Netbeans with the JDK/JRE was huge, but this thing blows it out of the water.
Hello World
It’s a programming tradition to learn any new programming language with a simple “Hello World” program. Even when not programming, some programmers still use “Hello World” to break the ice. Hardly one to break with tradition, I’m going to be starting with a “Hello World” too, except this time for an entire platform, instead of just a programming language.
After much fumbling around, here are the steps to getting a “Hello World” program started.
Open XCode and select New Project… from the File menu.
Select View-based Application.
Name your project Hello World.
In the Groups and Files window, open the Resources group.
Double Click the file Hello_WorldViewController.xib
With the view now open, browse down the library until you find Label.
Drag the label to the view.
Double Click the label, and type “Hello world!”.
Now go to File, then Save.
Go back to Xcode and select Build, then Build and Run.
Honestly, I expected it to be a bit harder than this. Next time I’m hoping to make it though chapter 3, where I get to learn how to handle basic user interaction! As always, any feedback is welcome.
I’m not a Flex developer, but I’m quickly becoming one. Recently I was tasked with creating a Flex form, sending it to the server, waiting for a response, and handling things accordingly. My problem was that I couldn’t figure out how to use my result set that I received from the server. Turns out, I needed to import a EventResult library, which was the turning point.
The Actionscript
import mx.rpc.events.ResultEvent;
private function thanks(evt:ResultEvent):void{
var dataFromServer:XML = XML(evt.result);
mx.controls.Alert.show(dataFromServer.toXMLString());
}
What happens here is that the HTTPService sends my data to the server, then some new data is returned in XML format. Important things to remember are the ResultEvent that is passed to the event handler. Just passing a normal event didn’t do much for me.
After dragging my feet on open source contribution for some time, I’ve decided to get actively involved with Ubuntu. I’m going to start by learning how to package different things, and then go from there. I would eventually like to get a new package into the next version of Ubuntu, but I think starting small would be great too 🙂
As the job prospects in my neck of the woods are few and far between, I will most likely be returning to grad school this spring. While it isn’t best situation, it is currently the best choice I have to make ends meet and further my career. I won’t be taking my grad assistant-ship back either. It was far too time consuming and did little to further me as a person or as a software developer. I have instead opted for contracting through various people with hopes that it may eventually become a full time thing.
I’ve been waiting for over 3 weeks to hear back from IBM. I eventually heard from them, when they apologized for taking so long. All this is understandable as they interviewed a TON of people. The good news is that they want to offer me a job! They bad news, is that they can’t give me my offer yet because of corporate red-tape. It has to finalized, stamped, copied in triplicate, etc, etc. Either way, I’m very excited to see what they have to offer.
I also got an interesting call today from MSU. I applied for a position as a web developer there almost a month ago, and got a call to interview today. I was caught off guard, so I hope I didn’t sound not-interested. I have an interview with them on 12/15. I look forward to hearing about the position, hopefully answering some interesting questions, and seeing what they have to offer. While I doubt they can match IBM’s pay scale, they have other incentives like tuition reimbursement and then like, which make a job there very enticing.
Also, along a different line, I created a URL shortener the other day. It’s called fwds.me. It works like any other URL shortener, except faster :)*
That’s all I have for now. I’ll leave an update when I’ve made some job decisions.
*It’s probably not faster, but it’s at least as fast as most other shorteners. I use Apache mod_rewrite to handle the url, and then a quick sql query to find out the original URL.
For the past 5.5 years I’ve been in college. Yes, that long. After 4.5 years, I graduated with a B.S. in Computer Science from Central Michigan University. From that point I thought that it would be prudent to go to grad school. This was a big mistake. As it turns out, I never really had much interest in continuing my education formally after my undergrad. So, 3 weeks ago I resolved to get a big person job (scary!).
As it would happen, a Fortune 500 company (actually, it’s in the top 15) was looking for 50 or so candidates for it’s new center in the Lansing area. They had recruiters on campus, and as soon as I told them I was looking for work, was a grad student, and had loads of external experience, they seemed interested.
I was invited down to Lansing for a “meet and greet” event at their new center. Things went well, and one of the recruiters made a point to introduce me the head of center to me. I consider this a good thing. After that, I was invited down a week later for a round of interviews with the company. The interviews went extremely well, and I feel like I’ll get a call back (keeping the fingers crossed!).
They were looking to fill 50 positions, and they were interviewing 70 people. Assuming that they realistically can fill 20 positions, those are still very good odds for getting a job. They said it could take up to 2 weeks to get a call back (for good or bad). Now I’m waiting. Impatiently at that.
Waiting to find out what the rest of your life will bring is nerve-wracking. I have no more fingernails left and I have to admit I’m kind of boring to be around. I can’t get it out of my mind. Working for this company would be great: interesting projects, smart co-workers, new technologies. Oh yeah, and money + benefits. I haven’t had health insurance in 5 years. Going to the doctor when I get sick would be swell. A new car might be nice too if I have to commute (VW Golf TDI!).