↓ Archives ↓

Skype vs. iChat AV

You can say I’m late to the game but for my recent consulting gig I’ve had to use Skype quite a bit.  I’ve had an account for several years now but I can’t say I’ve ever had an actual audio conference till recently. Instead of using my precious AT&T minutes to call into 2 hour conferences (ick!), I dial in using Skype- which is free! Actually, only calls to toll free numbers can be made using skype so as long as your virtual conference number is toll-free, you’re golden. Calls to land lines and cell phones can be made but you have to buy calling credits first.

Skype totally owns iChat when it comes to AV sessions. The whole experience is very smooth and not to mention, the quality is excellent. If you have a Skype to Skype chat using a Mac’s internal microphone your mind will be blown- I guarantee it. If you’ve ever done an iChat AV session you will notice how much better Skype is. I’m referring to both audio AND video. Also, connection problems hardly seem to happen with Skype. Initiating audio-only and video conference sessions is super smooth and jumping in and out of sessions is very responsive.

Anyways, you should check out Skype now.

Motivating your team.

Since starting up my business, I’ve realized that motivation will be one of the biggest obstacles I will face. Although we’re a team of 4 (plus 2 advisors), it’s sometimes really difficult to keep everyone motivated, especially when a good portion of your employees are ‘part time’ and everyone is still working their day job. Its even more difficult when your products haven’t taken flight yet. There is nothing tangible that we can be held accountable for. Being considered a founding member, there are certain things I’m responsible for. The most important for me is keeping everyone motivated.

This weekend I caught the History Channel’s “Star Wars: The Legacy Revealed” and I couldn’t take my eyes of it. While Star Wars is one of my favorite films, I was never a fan of George Lucas persay. However, after watching this documentary, I was completely and utterly stunned by his determination in what he set out to do. He was hands on with every aspect of the film and it definitely showed in the finished product. Years later it is still considered by many as one of the best movie(s) ever made. I think there is something we can all learn for George Lucas, the passion he had for his art, and the way he was able to keep his entire team highly motivated throughout production. Check out the first part of the documentary below:

Interview tips for Software QA jobs

Quality Assurance. Often considered a luxury at many large companies and a lifeline at smaller businesses can undoubtedly make or break a product. Being able to successfully convey all of your skills during an interview and convince a hiring manager (in a short amount of time) that you are the PERFECT person for a highly sought-out position can typically be very difficult. I’ve so far held two QA positions in my professional career and I’ve interviewed for several others. While I can assure you that I’m not an interviewing guru (since I’ve both been hired and rejected from QA positions), I have collected some tips that hopefully you may find useful.

No experience? No problem!

Actually, no. Software QA jobs are pretty difficult to land. Hiring managers really take their time and usually interview A LOT of people . There are several things that can set you apart:

• Besides knowing the ins and outs of the QA process, knowing some programming languages will definitely set you apart. For those of you doing Mac testing, knowing a bit of unix, applescript, and automator can take you pretty far. I would recommend taking it a step further and educating yourself on a few more sophisticated languages such as C, Objective-C, and perhaps Python.
• Know a web language. I’ve recently discovered that a lot of businesses do not have a proper test tracking mechanism in place. While you can go down the route of setting up a custom filemaker database, however, I would recommend learning a good web language/framework. This way you can set up a good test tracking system that you or anyone else on your team can access from anywhere.
• Knowing someone on the QA team or at the company that can recommend you to the hiring manager will definitely give you a leg up on people who are probably just as qualified as you. Email or call this person and let them know you’ve applied for a job at their company. They may know someone who can put you in front of the hiring manager.

Test this “Mug” questions:
You can count on being asked to test something random. Perhaps something like a mug, calculator, garbage can, or a mechanical pen. You get the idea. Just remember that these questions are asked to see how you think and what your process is in cooking up a solution.

A good tactic for this is to draw upon any experience you’ve had in the past that may be related to the problem you are being asked to solve. I usually combine my past experience with some ad-hoc testing procedures I typically may do. You don’t want to focus too-much on the ad-hoc testing since you will most likely sound like a babbling idiot. Instead, highlight scenarios in your professional career where you may have been tasked with a similar challenge. Find similarities between the two problems and express how your solution worked then and how it can work now.

Any questions?

Always, always, always ask questions at the end of an interview. If when you are asked: “Do you have you have any questions?”, you should quickly assess your performance during the interview. If you’re unsure about your performance during the interview, just ask: “Why wouldn’t I get this job?” I picked this up from a good friend of mine (@tebo), who gave me this tip on a position I was interviewing a while back. I think this is a really good response to the ‘Any Questions?’/this-is-the-end-of-this-interview prompt. If you ask this, you’ll have a better idea of what the hiring manager’s thoughts are. You’ll also probably catch him off guard which is always fun.

If you believe you did well during the interview, ask more questions about the company and specifically the person you are interviewing with. How did they get started at company x? Who will you be reporting to? Just think of stuff to ask. Do not ask about anything about money. That should be the very last thing you talk about.

Hope this helps my fellow QA testers out there.

Robot Man

It’s been a while since I’ve seen a really original idea involving robots. This one is REALLY good.

The Body, The Circuit, The Computer and The Voice: robot cowboy from STEIM Amsterdam on Vimeo.

Ask me anything and I’ll answer it.

I recently joined formspring.me and welcome you to come ask me anything. It basically works on the concept of having a public Q&A. You sign up for an account and others have the ability to ask you questions. Questioners also have the option of asking anonymously. It’s a pretty neat concept, check it out!

Weak pinky finger?

I don’t think I’ve ever had a music technique post on this site, but as you may know, I am a musician as well. Here’s a little tip! A lot of guitar players I’ve met have weak pinky fingers in their left hand. Here’s a good way to get that dexterity up:

G|—————5—————8–7–6–5——————
D|–5–6–7–8——8–7–6–5—————8–7–6——–
A|————————————————————-
E|————————————————————-

You can shift this pattern to any key you would like.  I also like playing this patten on a bass since it stretches your fingers a bit more. Most importantly, play it as slowly as possible ensuring your attack is even on each note. Build up your speed over time.

Good luck!

Goodbye Apple


The time has come to bid Apple farewell. It has been an amazing 4 years and so many things have happened while working at Apple. I met my future wife while working at Apple. I got the opportunity to work on the Mothership and live in California for two years. I was able to work alongside some of the greatest engineers, developers, and testers in the world. I worked on some super top secret high profile Apple products! Most importantly, however, I met some really great friends.

Apple will always have a special place in my heart.

How to take good news.

Quitting my day job has been a social experiment in itself. It’s quite interesting to see how different people take the news differently. I’ll break the different responses down into different groups:

The totally caught off guard:
These people usually don’t know that news is coming. They just go about their day to day and BAM!; you hit them with some news. Based on their relationship with you, they may fall into one of the other groups listed below.

The supportive:
These are my favorite people and for obvious reason. As soon as I announced my job departure, they either called me, stopped by my office, sent me an email, or communicated with me in some form. They each clearly stated a few things:

1) They enjoyed working alongside me
2) They were curious about what my next step would be
3) We shared a few life stories
4) We agreed to try to keep in touch

I always end up with a strong dose of encouragement after a chat with someone who is supportive. It keeps me going!
Supportive people are the best people on the planet. Hands down.

The cynical:
I’m not entirely sure how these people function in society. They are the kind of people that as soon as they hear your news, they resort to some sort of sarcastic remark. While it may be ‘funny’ at first, there is always some sort of truth behind seemingly innocent remarks. Some people know how to take jokes, and others don’t know how/when its appropriate.

The jealous:
Not to be confused with the cynical. These people do NOT make any sarcastic remarks or say anything to show disapproval. Instead they feign interest

The indifferent:
A job is a job to these people. They don’t form strong relationships or bonds with anyone and don’t really care about your life changes. Whateva!


Know any other way people take good news?

Help my friends get on MTV

Using restful_authentication on heroku cloud hosting

A few days ago I began setting up a rails app that was in need of some user authentication. A friend of mine recommended looking at @technoweenie’s restful_authentication plugin and I already had messed around with heroku’s hosting service. Now it was time to combine the two.

I initially installed the restful_auth plugin using the ‘git clone’ method and my app worked perfectly fine on my local machine. However, when I uploaded the app to heroku, I was hitting a few errors. The first error was that my app was failing to launch because it could not find a const named ‘User::Authenticated’ … how’s that possible? I installed the plugin , shouldn’t it just know where to look for it? Well it appears that if you use the ‘git clone’ method to install the plugin, it will not work on heroku. You must install the plugin by running ’script/plugin install git://github.com/technoweenie/restful-authentication.git’. This will put all the pieces in the correct place. ALSO, be sure to change the name of the folder downloaded to ‘restful_authentication’ .. that is … change the hypen to an underscore. Once I changed that, I re-launched my app on heroku using the command ‘heroku restart’, and I hit a (NameError). Seems the ’script/plugin install’ command didn’t create an file called user_observer.rb that should be placed in the models directory. I’m not sure if this is a bug at this point but this is the workaround I used:

drop a file named user_observer.rb in your /app/models/ directory and put this code in it:

class UserObserver < ActiveRecord::Observer

def after_create(user)

UserMailer.deliver_signup_notification(user) if user.not_using_openid?

end

def after_save(user)

UserMailer.deliver_activation(user) if user.recently_activated? && user.not_using_openid?

end

end

Once I had this file in place, my app launched successfully and now included full user authentication.

YAY!

EA really knows how to make ads in video games suck.

This past weekend I decided to play EA’s Fight Night Round 4. So I turn on my xbox, grab my controller, plop the the disc in the tray, and sit back. Must’ve been a few weeks since I had last played Fight Night and my xbox live service reminded me that I had some game updates. After downloading the updates, I noticed something slightly different about the game. Wait what … the update put in ads?

My first glimpse ….

photo 3
Hey wait a minute. That giant Gillete ad wasn’t there before!! Well whatever I can live with one ad …
The first round is done and I notice something new … What is THAT on the sides?!?!?!?!
photo 5
Close up!!!
photo 4
Oh no!!!! There are terrible ads in Fight Night now. This also shows up in between every round. After enduring the barrage of ads, I started up another fight and realized the ads change. This time it was for Microsoft’s Bing!
photo
EA , I don’t think there is a need to make us download an update if all you do is splatter the screen with a million ads. I rather you function on the mechanics of the game and the xbox live side of Fight Night. If there was a DLC to turn off Ads I would gladly pay for it. The new ads are an eye sore and break the flow of the game. It was perfect before!!
Take a note from Skate 2’s in-game ad system. It’s totally fluid. The ads are displayed on in-game billboards and posters. You guys are in the same company. Talk amongst yourselves!

San Francisco is lame.

I just read Alex Payne’s blog post about moving to San Francisco and it got my wheels moving again on a blog post I started writing about SF. First I urge you to read this blog post and then come back here:

http://al3x.net/2009/10/04/so-youre-moving-to-san-francisco.html

I totally agree with every single thing Alex pointed out. Although I lived in Silicon Valley the past two years, I can totally relate to the troubles Alex sees in the city. It’s natural beauty is completely drowned by a decaying city. I really wanted to like SF when I first moved to the valley … but the amount of homeless people (aggressive ones nonetheless), the safety concerns, the terrible public transportation system, the poorly designed roads, the ridiculous housing costs, and the nature of the people that live there are a complete turn off.

SF just can’t compete with cities like NYC.  That’s all I have to say about that.

What I’ve learned from living in Silicon Valley: What’s next?

Image borrowed from http://www.nsti.org/

Living in the heart of Silicon Valley has really changed me in many ways. I gained the experience of working at a very large company with thousands of employees, being able to work on high profile projects, and worked alongside the very best engineers in the world. Unfortuantely, there has always been something …. lacking.

Here are a few observations I made while living in SV:

If an engineer is so smart, why is he working on the most boring thing in the universe?

I really admire super smart people. They are easily able to think abstractly and come up with even more abstract solutions to complex problems. I’m blown away by the amount of man power and resources that goes into creating a physical consumer product. However, maybe I’m out of the loop since I didn’t go to school for engineering, but perhaps some sort of engineering ethics class should be a requirement. For example, an engineer with extraordinary capabilities should aim to solve world problems before creating more stuff to fill up land-fills. It’s almost as though (some) engineers go through engineering school and then are expected to work on really boring stuff. Calling all engineers, WAKE UP!!! I believe in you … go save the world!!! Build the new hybrid car that doesn’t look like a turd on the road. I understand an engineer may get some sort of satisfaction from working on some obscure low-level code, but what kind of selfish punk does that make? If an engineer is extraordinary he or she should NOT be spending all of their time on really mundane stuff. I urge engineers to get out there and make a REAL difference! Don’t lose sight of the fact that you are brilliant and you can use your knowledge to further mankind. For the record, I’ll be the first to admit that it’s a tricky catch-22 situation. Without the work the boring engineers do, the more interesting engineers can’t do their work because they depend on the technology. Something must be done!

Our small businesses of today are the future …
While living in SV, I met a lot of people working in really interesting startup environments. They are doing pretty amazing things with technology.  They are shaping the way we will communicate with each other, the way we will be entertained, and generally speaking, the way future technologies will function. While employees at these startups could easily be working at large companies (from which many of them have come) and live vanilla lives, they instead choose to take the chance. Living life on the edge and taking technology there with them. These are the people that will truly shape our future. I applaud you.

Ass-kissing and being self-righteous can lead to success …
Switching gears a bit. I unquestionably saw this happen first hand. It’s amazing how people will throw away their own dignity just for a pay bump. While I totally believe hard-work and good work ethics is the path to success, ass-kissing and putting yourself ahead of everyone else appears to work quite well in SV. It’s even worse when managers encourage this kind of behavior. Although I never had the opportunity (nor sought out) to be a manager, that stuff would NOT fly under me. Nothing is more disruptive to a team than someone who has ‘gone rogue’ and seeks a leadership position. Aside from knowing all the ins and outs of the business, a true leader is someone who can raise everyone around them to a new level of performance and can consistently provide encouragement and feedback. I’m also referring to the type of encouragement and feedback that doesn’t have to be scheduled in a calendar. It should be natural and an every day occurrence. Needless to say, SV has some serious ass-kissing going on.

Where to now?
SV has seen it’s hay day and I was way too late for the party. All throughout high school, college, and thereafter … I have always aspired to own my business. By living in SV for two years, I’ve gotten a really good sense at how both big businesses and small businesses work. In a few months I will be leaving my day job and will be starting my own Silicon Alley business. It’s super scary and I don’t have a wealthy family to fall back on. Actually my parents are broke. So it is essentially all up to me and the few incredibly smart people I know.

That said, I want to thank Silicon Valley ….
Thanks SV. Thanks for the 10 extra pounds I’ve gained from working a desk job. Thanks for teaching me a bit about business. Thanks for demonstrating what certified grade-A ass-kissing looks like. Thanks for letting learn from the best engineers in the world. Thanks for proving that Bay Area drivers are indeed the worst. Thanks for teaching me that you can achieve anything you set out to do. Thanks for teaching me to always ask the question: “What’s next?”

So long and thanks for all the fish!

Installing MySQL Ruby gem on SnowLeopard

In my efforts to teach myself Ruby on Rails I ran into a bit of a snag installing the ruby mysql gem. After doing a bit a research I finally found this helpful bit:

http://www.icoretech.org/2009/08/install-mysql-and-mysql-ruby-gem-on-snow-leopard-64-bit/

Following these steps fixed the issue. Weeeee!!!



			
		

Not seeing NSLog messages after using NSPipe?

Yesterday I was working on some code that made use of NSTask and  ran into a tiny, yet annoying, issue. Essentially the code block I was working on would search a directory on the machine and return an array of paths to items which matched the results of the call to the ‘find’ tool. The only problem I found is that when I called

[task setStandardOutput: pipe];

The results from the ‘find’ command were dumped in the console.app and not in the debugger. After a little investigation, I realized I simply was just missing this call:

[task setStandardInput:[NSPipe pipe]];

After making this adjustment, NSLog was now appearing back in Xcode’s debugger/console. Yay!
Here it is in action:


#import "FileFindAppDelegate.h"

@implementation FileFindAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

[self findFiles];

}

-(void)findFiles
{
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];

NSArray *arguments = [NSArray arrayWithObjects:@"-c", @"/usr/bin/find /Users/jeffsoto/Desktop/Files -name *title*", nil];
[task setArguments: arguments];

NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
[task setStandardInput:[NSPipe pipe]];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *string = [[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding];

NSArray *array = [[NSArray alloc] initWithArray:[string componentsSeparatedByString:@"\n"]];

NSLog(@"Found %i matching files", [array count]-1);

int i;

for(i=0; i < [array count]-1; i++)
{

NSLog(@"Found this path %@", [array objectAtIndex:i]);
}

}

[task release];
[string release];
[array release];

@end