Reviews – Page 7 – Stay N Alive

Am I the Only Facebook Developer in Utah?

Okay, I’m really only doing this so I can beat Phil801 in Google ranks for “facebook developer utah”, but after talking to Paul Allen today it came up that I am the only result for “Facebook Developer” in Utah on LinkedIn. It is a new technology, only a month or so old, but I’m sure there are more than just me. If you are interested in consulting for your Facebook app, please contact me – I am definitely considering moving in that direction.

Speaking of Paul Allen, I have noticed he and I seem to be on the same page. I just recently looked at his blog, and while I was aware of his Facebook API Excitement, it seems we’re blogging in parallel, as he shares my excitement for Google Gears (notice I wrote mine first 😉 ).

The Repaired Xbox 360

Recently, I don’t know if it was because I didn’t have air conditioning or a swamp cooler for a week or so in 100 degree+ weather, or if it just broke, but my Xbox 360 started crashing in the middle of video games with 2 red blinking lights. I’ve heard about the 3 red blinking light thing, which evidently is some “unknown error” that Microsoft doesn’t want to explain. 2 red lights supposedly means it’s overheating. So I took advantage of my warranty, and decided since Microsoft had admitted their consoles were broken anyway I would send it in.

When I called to get it fixed they promised me a 4-5 business day turn around time – I thought this was excellent service and had no problem with that. Well, after 2 weeks I decided to call and they said they had changed it to a 3 week turn around time. Then, after not receiving it one week later, I called and they said they had turned it to a 4-5 week turn around time. I wasn’t happy about it (my Xbox is my Media Center, my Tivo, and my all around client for entertainment – expect a future article on this), so I spoke to a supervisor. The supervisor was able to send notice to the repair center to just send out the next fixed console they had available, and within 4-5 days later I had received my fixed console. I guess the new warranty/pseudo recall has them busier than normal, considering they’re losing billions on it.

I have to admit, I’m impressed with the new unit. The decibel level is way lower than before, and actually bearable this time. It doesn’t seem to work as hard to keep cool. I don’t dare open it up and void my warranty (unless someone wants to buy me a new Xbox (wink, wink)), but I hear they add at least 2 new heat sinks to lower heat emissions with their latest fixes. Who knows, but overall I’m satisfied (minus the wait time and false estimate) and very excited to finally finish Halo 2 before Halo 3 comes out.

Apple: I Told You So!

I said it before, the iPhone is going to be a mistake for Apple if they don’t do it right, and it looks like I was right! Evidently, (and Phil801 beat me to this – I was going to post it last night) AT&T was only able to activate 146,000 phones in the first 2 days it was for sale. Some are blaming it on AT&T’s poor service, others on just the lack of popularity and price factor of the iPhone. I personally think the market is just too saturated! Either way, I was right. Selling through just one carrier was a mistake, they have too much competition, and with a lack of business customers it will only de-value the great piece of the market the iPod had. The one thing the iPhone has done is brought to attention the fact that your cell phone can actually do the same things an iPod can do, and this will hurt both the iPhone and the iPod bottom line, as we’re starting to see. Time will only tell, and Apple is good at doing things right, or making things right that were wrong, but I have to say Apple’s just done this all wrong! I’ve used an iPhone already, but I will be waiting for v.2 or another phone before replacing my current options. I really like my MDA, to tell you the truth!

Facebook Gives Access to the Wall to Developers

I saw a pleasant announcement (facebook login required) from Facebook yesterday:

“Applications will very soon have the ability to attach arbitrary FBML content to a user’s wall, which will work in much the same way as attachments currently do for messages. The message action and callback URL for retrieving attachment content (specified on the application settings page) will now also be used to fetch content for a wall post. Refer to the documentation for details on how attachments work. Please note that the fb:message-preview tag will be renamed fb:attachment-preview and the old tag name will soon be deprecated.”

This opens up many possibility for Facebook application developers. Now, no longer does the user have to actually “install” the application to have it added to their profile. Now, you can have other users who have your application installed “post” your application to their friends’ wall for others to play with and use. To me, this is huge, as it allows an even more personal way for people to share their favorite apps with their friends.

One other use I can see for this is in a similar manner to that of the IRC bot. IRC bots sit on an IRC server and listen for particular words or phrases, or commands, and the bot responds appropriately with witty phrases and calculations. One could install this app and have it monitor their wall and post when particular things are said. Great – now I just gave out another business idea – just send me 10% of all your earnings. 🙂 (I really should just put a donation box on here for those that use my ideas)

GrandCentral Invites

GrandCentral just gave me 5 more invites. I think I figured out a good way to make this work. If you want an invite, comment below, and say “I want one”. Then, once you have received one, edit your comment and say “Got it!”. Your only responsibility for participating this and saying “I want one” is to give invites to at least 5 people above you (you get 10 invites). I will give out my remaining 4 to the first 4 that say “I want one” – don’t say it though unless you’re willing to give 5 of yours to the top 5 saying “I want one” in the list. Also, don’t forget to edit and say “Got it!” when you get your invites (or your bound to get spammed to death). Oh, and if you post this on Digg, Reddit, etc. give me fair warning so I can prepare for the traffic. 🙂

UPDATE: Since only I can see your e-mail addresses, it might help if you include some way for others to send you the invite. I’m not quite sure the safest way to do this – maybe just say “I want one”, followed by your e-mail address in “dot com” spelled format – or you could put your e-mail address in backwards, just choose a way spammers won’t be able to easily detect it, if you’re worried about that.

Google Analytics for Facebook Apps

Today, Facebook announced they were releasing a new FBML tag for developers that would allow developers of Facebook Apps to track their applications via Google Analytics. Before this, because the code you put on your page is javascript, there was no way to track your apps. I tried to install this, but ran into issues, in that Google tries to look at your main facebook app page for the javascript (which isn’t parsed by Facebook), while Facebook gives an error if you put the raw Javascript on the page. I came up with the below solution, which works like a beauty – you put your javascript between your tags, like this:

...

Since Google reads the plain callback url it won’t interpret the fb:google-analytics, and Facebook ignores everything between the tags. Works like a charm on mine.

GrandCentral Facebook App

Well, I took advantage of a low-hanging fruit, and wrote my first public Facebook app yesterday. My Picasaweb app is still in the works, but this appeared to be a bit more simple, as I would only have to deal with the Facebook API on this one, rather than the Google API as well. The concept is simple – you copy the code generated from your “Call Me” button generated from GrandCentral into a text box after you add the App to Facebook. The app then converts that embeded swf into FBML and sends it to your Facebook Profile for others to see.

The app itself wasn’t that hard once I got over the learning curve. The basics of the Facebook API are to generate a session key with canvas->validate_sig(), and then pull the session key parameter from the returned parameter hash to be passed through forms, used in a cookie, etc. Then on every page you need to access Facebook data (such as sending fbml to the user’s profile) you just run session_key(), passing in your session key you retrieved with validate_sig() on the entry page.

I also used this app as an opportunity to learn Perl’s Catalyst Framework, the Ruby on Rails of Perl. I will definitely be using this more in my web apps in the future – maybe even in some of my non-web apps (one advantage it has over RoR – it’s very flexible). The basics were I just run a simple command to create the basic Catalyst framework files and libs, then create my Database Model files and run a command to generate the libraries for that, including DBIx::Class ties. Then I just create my Controller libraries with a simple command, and then my TTSite (Template Toolkit libraries and files) libraries with another command. I’m then free to edit and write as I please, and it forces the code into a modularized structure. I used Perl’s WWW::Facebook::API libraries to access the Facebook API – once I figured out the session stuff everything else was very easy.

The one quirk I’m still trying to get around is Facebook forces you to click on an swf before it gets activated when it’s on a user’s Profile page. You’re supposed to be able to display an image in it’s place, but I’ve only been able to get that to work on the Canvas pages. The tag for that is , btw. I think I’m going to sniff httpd to see what that swf is doing behind the scenes to see if I can find a non-swf way of doing the call me button.

If anyone has issues in particular with either the GrandCentral App or WWW::Facebook::API, feel free to list your questions below. Also, please add my app and give comments! The url is:

http://www.facebook.com/apps/application.php?api_key=a5438e29c1b4df4ec650d374b4175741

Grand Central – Google’s Path to the Cell Phone Market?

Today I received an invitation to Grand Central, Google’s latest buyout that they announced recently. I had heard of it before, but Google’s buyout piqued my interest. I started the sign up process, where they let you pick an area code (any US area code is allowed), then they provided a list of phone numbers to choose from. After some additional information about myself, and a list of all my phone numbers, I was up and running!

This service is amazing! Phone and voice communications have finally been brought to the web with Grand Central. With Grand Central, I’m given 1 phone number. I can then use that phone number to, depending on who calls me, designate which of my home, work, or cell numbers those people get forwarded to, whether they get to talk to me personally, talk to my voice mail, or just get denied service. I can tell it to screen all blocked calls, or certain groups to force them to provide a voice name, which it will tell me when I answer the phone. It will use bayesian-type filtering to detect “spam calls” which you can tell it what to do with those.

I can also choose a custom tone that all or only specific users get. I chose a New York guy who talks to you as you’re waiting to talk to me – he patiently says to hold on, that I’m going to pick up soon. They also provide some other pretty funny ones. I can tell it to forward all my voice mail to my e-mail address, or cell phone (via text message), or both. They also provide me with an e-mail address (my phone number@grandcentral.com) that I can give to others that forwards to my personal e-mail.

The most powerful thing to this is the contact list. I imagine this will be tied to GMail’s contact list in the future, but you can set up contacts, and groups those contacts are assigned to. Integration with gmail is definitely going to happen. I can select any contact, click “call”, and it will dial my phone, then connect me with their phone. No longer do I ever have to tell others to change my phone number – one number, all the time, and it seemlesly points to all my other numbers.

I’ve said it before, but I really think this is just one more step towards Google entering the cell phone market. Google I am betting will some day sell cell phones with all this software on it. It will seamlessly integrate photos with picasaweb, send e-mail and text messages via gmail, and integrate incoming and outgoing calls with Grand Central. Voice mail will integrate with Grand Central. Such a phone will have GPS capabilities, will automatically give directions via Google Maps to the locations you want to go to, and will use AdWords to target users based on the location they are at. Hey, with Google entering Health Care why not let it sync with your Doctors Office or Pharmacy and provide your Medical Health History all for the Doctor to see? All the pieces are slowly coming into place – how long will it be before Google owns the Cell Phone market? Grand Central is just one more piece to this puzzle.

Hey – if you want an invite, let me know and I’ll send one your way.

Larry Wall YAPC::NA Keynote

Here’s my summary of the Larry Wall YAPC::NA Keynote. I came late, so I missed some of the beginning. I’ll update as I go…

  • Scripting Languages – Larry Wall started with BASIC, which he considers to be the first scripting language
  • Tcl is a purer scripting language than Tcl. Perl got its extension mechanism because Tcl doesn’t have it
  • Python – not qualified to talk about Python
  • Ruby – Perl programmers take their programming much more serious than Ruby programmers
  • Corn shell – shows just how crusty a language can get if you just keep adding to it
  • PHP – seems to be making the same progression of mistakes as earlier Perl did, only slower
  • Javascript – might be a decent platform for running Perl 6 on
  • Monad/PowerShell – object types similar to Perl 6 – hope they don’t patent it
  • Lua and AppleScript
  • The Present – Larry views a string as a “T”ext (capital T): an active communication which requires interaction on both sides??? “All Languages are incomplete”; Human languages differ not in what you can say, but what you have to say; If your language forces you to say something you can’t be concise.
  • early binding, late binding: these days most scripting languages are trending towards late binding. Perl 6 and Perl 5, all methods are virtual by default;
  • Single Dispatch, Multiple Dispatch: single dispatch – send message to an object, and object determines what to do with that message; multiple dispatch – objects are passive, who determines what to bind? All routines get together and hold a “political conference”. All potential candidates put their names in a hate. Eventually the teams decide amongst themselves what to call it. Worst way to permit binding (democracy).
  • eager evaluation, lazy evaluation: Perl 6 working with a mixture of eagure and lazy; scalar context will be eager by default, while list context will be lazy by default.
  • Perl 6 will have a different set of FAQ’s – hopefully not, “huh?” (laughs from audience)
  • symbolic, wordy: likes it when most of the words are chosen by the programmer to represent the problem at hand. In Perl 6, trying to raise standard for when to use punctuation and when to not. Each symbol added must justify its existence. Introducing new punctuation for Perl 6.
  • compile time, run time: Perl runs a lot of code at compile time, which can get messy – don’t want too much File IO in BEGIN blocks.
  • declarational vs. operational: Perl 5 has always been a little bit more declarational than Python or Ruby. Perl 6 has more kinds of scopes – a few more declarators that work like my and our. When declaring a variable you’re really just doing a kind of tie. Difference is you’re doing it at compile time instead of run time.
  • mutable classes, immutable classes: Perl 6 will have an interesting mix…
  • crap – switched networks and forgot to save – missing a little here…
  • The future: Perl 6 is taking a gamble. Hoping to come ahead before the tried and true “worse is better” thing
  • Talk 2!: Wearing a black hat, saying he’s a “black hat programmer”. Puts on an LA Dodgers hat, and starts talking about his life growing up in LA, trips to volcanoes, making snow cones out of snow, fascination with natural disasters
  • In CA a lot of Californians had this thing about being cool…
  • Cool – Larry has the same screen saver as I use (3D fireworks)
  • At age 6, moved to Pasadena. Second grade, they built a post office… Mom cut postage stamps with sewing machine – he thought it was cool, using a tool for something it wasn’t intended for (Sometimes perl get used for things it wasn’t intended for (laughs))
  • Mention of Autistic/Asperger tendencies when younger
  • New hat, white Fedora: Did a lot of fishing when younger, takes patience. Many people are impatient to get Perl 6 out the door. People writing it are probably more impatient. We came pretty close to not having perl, because Larry came pretty close to drowning when younger. Couldn’t swim very well, went out with styrofoam surfboard, and it blew away after slipping away from him. Later on decided to learn to swim.
  • 4th grade, all he had to read was World Book Encyclopedia or old Readers Digests; year Kennedy was assasinated; learned to be a teachers pet
  • 5th grade, don’t remember anything – as autistic spectrum kid, tuned everything out. Does remember saying “For Your Information” to teacher and teacher getting offended. Didn’t realize “For Your Information” has a pragmatic meaning as well as semantic
  • Junior High: another lesson in pragmatics – “don’t smirk like that (am I smirking? I thought I was just smiling)”
  • High School – hired to do summer camp thing. Did a summer camp called “Green Barays”. Subsisted for about a day and a half on nothing but peanut butter and raisins because food couldn’t get up to them. Lesson is “don’t trust your leaders” (laughs from audience).
  • New hat: detective hat (sherlock holmes style hat): lived life a lot like Sherlock holmes, violin, etc. Liked LOTR… Took a year off to go to bible school…
  • new hat: pigskin golf-type cap – likes the dutch look of it; bible school didn’t go well, liked to think for himself, bible school told him what to think… started working for computer center learning to hack at college… only flunked one class at the time – preparation for marriage (laughs from audience)… remembers Bill Gates wandering in and out periodically… moment of glory there was discovering a solution to major bug in colleague’s code…
  • new hat – austrialian indiana jones-type hat: got married, decided to become missionaries, started going to Bible translators’ school… displays his trills, triple trill, language in New Guinea… Don’t take culture over there – idea is to take minimal universal truths to another culture and adapt their culture to it
  • how do you communicate across cultures?
  • Missionaries are pretty ordinary folks, main difference is they typically drink less beer… When you’re married and a missionary you get to make a lot of jokes about “Missionary Position” (laughs from audience)… some mention about “Bum Wrap”, and more laughs from audience, correcting himself trying to figure out a non-sexual missionary joke…
  • New hat (well back to old): LA Dodgers Hat – moved back to LA… got a “temporary job” there… Moment of glory was taking a class from a professor at UCLA on tonal languages (I like Larry 🙂 )… Developed food allergies… took it as a “tuberfour” upside the head to re-evaluate life… biggest decision was to drop out and continue working for industry…
  • New hat – Linux Cap: Started learning Unix (well, BSD)…
  • New hat – mickey mouse hat: best thing about working there is every so often they would rent out disneyland for the evening
  • Back to Linux Hat – went back to Systems Administration for a Secure Networking company… That’s how Perl was born – theoretically they could put him in prison because it was written there and taken back on a tape (I think he’s being sarcastic)
  • Back to Pig Skin Golf cap (missed the reason – something about his father)
  • Back to Linux cap (something about a speech)
  • Purple Cap: moved to bay area, where Perl 5 was born. Decided to make Perl 5 more object-oriented…
  • New hat – black hat again
  • white fishing hat – talking about Stanford
  • Black hat again
  • Orange hat, talking about Europe
  • White Cap, talking about Geek cruises (he’s just telling quick stories of various places he’s been)
  • French Purple baray – never been to France
  • Santa hat – christmas, which is when Perl 6 comes out…