Android + UNITY + Ouya + Eclipse

My go-to IDE for everything for the past 5 years has been Netbeans, so to switch to Eclipse is something new for me. But, Eclipse is insanely popular, so there’s got to be a good reason for it.

Google seems to love it, too, and it’s always great to be in tune with them. I used to develop stuff for the Google App Engine and it was the same thing as it is with Android this go-around: if you didn’t use Eclipse, it was a bugger to get going. Relying on a third-party plugin from Kenai to access a closed system was just too much of a reach-around and I got out of there.

So, Eclipse. Excited.

Why Android? Well, this recent hullabaloo about Ouya has got me excited. I’ve been toying with game development now for years and after completing a few games in the past few Ludum Dare/7dfps/Guelph Game Jams, I can safely say that the idea of getting my games up on the TV screen with a controller turns my crank.

It was the same thing the first time I played BastardBlaster (my html5/javascript shmup) on the Wii, using the Wii browser and Wiimote. I loved it and wanted to have more.

Playing games on a PC/laptop is just not the same as on a console. Don’t get me wrong, I’ve got hundreds of PC games and love them dearly. But, there’s something special about a controller in your hands and a big TV screen in front.

I’m looking now through the Youtubes and Googles for Android development stories, tips, tricks, hints, tutorials, cautions, etc. If you’ve got experience in this area and would like to share your story, I’d love to read it.

Eee PC 701 as a Dedicated Gaming “Console” via Emulation

I took a few hours recently to set my Eee PC 701 2G Surf up as a dedicated emulator machine. I picked up a dirt-cheap 16GB Sandisk Cruzer USB stick for $9 and downloaded an ISO of Mandriva Linux 2011.0.

This thing is pretty sweet! It runs SNES, NES, Game Boy, Game Boy Color, Game Boy Advance, Nintendo DS, Genesis, MAME, and Sega Master System emulators. Pretty much anything 2D it can handle easily.

Even better, I had a bunch of space left over on the USB stick for mp3s and oggs, so I can listen to some decent music while I’m driving in my car thanks to the audio input jack on my car stereo.

Awesome Vegetarian Restaurants in Downtown Toronto

Staying at the Hotel Victoria in downtown Toronto for the last week with my girlfriend Amy has opened us to a ton of new, fantastic vegetarian and vegan restaurants. Google has helped us find them all, but I wanted to take a second to put together a small list in case you’re downtown Toronto for a while and are looking for great places to eat.

I’ll separate them by category.

Pizza

Pizzaiolo
http://www.pizzaiolo.ca/
There are probably 15 to 20 of these around Toronto, but the one we went to was just a few doors down from our hotel on Yonge St. It was amazing. In fact, it was so amazing, we ordered pizzas there two days in a row. They have a ton of vegetarian and vegan choices and each are made fresh right in front of you. It’s amazing.

Take-Away and Fast Food

Urban Herbivore
http://www.torontoeatoncentre.com/EN/Directory/Stores/Pages/UrbanHerbivore_F018.aspx
Like most food places in Toronto, there are a few locations. The one we went to was in the Eaton Centre, and it was fantastic. I ate the BBQ Tofu sandwich and loved it even though I’m not normally a huge fan of tofu. It was quick and cheap. Like all great vegetarian food, if you didn’t know it was vegetarian you wouldn’t be able to tell.

Sit Down

Fresh Toronto Vegetarian FoodFresh
http://www.freshrestaurants.ca/our_history.asp
Fresh was, without a doubt, our favourite. It’s got great style, it’s busy, it’s fast, and the food tastes fantastic. Amy loved it so much she bought one of the recipe books they offer on sale.

King’s Cafe (Kensington Market)
http://www.kingscafe.com/
This is the sister restaurant to our favourite vegetarian restaurant in Guelph, Zen Garden. Great food and amazing Lychee Black tea.

Send a Text Message From Your Browser

Are any of your friends using Bell, Rogers, or TELUS? Check this out! Each of these carriers let you send text messages to people on their network for free, in your browser. Does anyone know if WIND Mobile has something similar? Also, the Rogers one requires you to sign in before you can text. So, if you’re not a Rogers customer, you can’t use this one.

Another thing you could use this for is determining which carrier a number is using. Enter the number in these sites and if one works, you’ve got your answer.

Dropbox For Teams?

Anyone who knows me knows that I’m a huge fan of Dropbox and have been using it for years. I learned about a new service that they’re offering called Dropbox Teams. One would assume that this version of the software would offer tighter integration with teams or some other features to justify the $795 cost which includes 5 seats.

Looking over the FAQ offered a lot of technical questions and answers but not what I was looking for: Why would anyone choose this option over the free or $10/month 50GB option?

Is there anyone out there using Dropbox Teams that can shed some light on why they went that route versus the regular service?

Edit: I see now. It’s basically a huge jump in the amount of storage capacity with some support thrown in that one will likely never use.

Cool JS App: Treesaver.js

If you’re looking for a web-based flipbook that works great on iOS (and other Flash-less devices), take a look at treesaver.js. It’s an open source script that automatically builds properly formatted pages that swipe great on the iPad and look great, too. Since it’s stock HTML5 and JavaScript, it works great almost everywhere.

Lightweight and fast, the Treesaver.js app doesn’t add any crazy overhead to your content but putting your content into the system and making it look nice still requires quite a large bit of elbow grease. This is due, in large part, to the unfinished documentation on the Wiki.

But, the software is only at version 0.9.2 currently, so there’s plenty of time for the community to help out. I love open source software.

Audio Conversion Love

I’m under a tight deadline for BastardBlaster, the game I’m building right now for the Guelph Game Jam, so I’ll share my quick and dirty way to convert audio files in Linux and using some Windows software with Wine.

The source music is music modules in the .it (Impulse Tracker) format. So, I used Winamp (running via Wine) to export as .wav files. From there, I used the MP3 to OGG conversion script on this page (modified a bit) to do:

./wav2ogg filename.wav filename.ogg

wav2ogg’s contents look like this:

[rocky1138@atlas Music]$ cat wav2ogg.sh 
oggenc -o "$2" "$1"

Hope this helps someone in the future :) Note you have to have oggenc (vorbis-tools) installed in order for that to work :)

Now to do mp3s….

Get Google Analytics to E-Mail You Scheduled Reports

This may not be new to many folks, but I just discovered a neat feature in Google Analytics that lets you set up scheduled, regular reports in several common formats.

This came in handy with a Powerhouse Web Solutions client who wanted to know who was hitting their website, when, and where from, but is not technically savvy enough to navigate the myriad of options found on the full Google Analytics website.

E-Mail Reports Button in Google Analytics
Setting it up is simple.

To get started, simply log into your Google Analytics account and view the stats for the site you’d like to have reports for.

Then, click the E-Mail button as seen in the above screenshot and set your options. I like the idea of the Analytics Overview page being E-Mailed but if you want one of the drilled down reports E-Mailed, simply click the E-Mail button while browsing that particular page.

Image of Google Analytics schedule E-Mail form
Tons of options.

You can E-Mail yourself (and CC to other E-Mails) reports on a daily, weekly, monthly, or quarterly basis and they can be generated in the PDF, XML, TSV, and CSV formats.

Normally, I configure Google Analytics to have a separate client user for each website so that they can log in and see their full stats directly. But, this works really well in circumstances where the client may not have the time or technical know-how or where you’ve got to send a report to a higher-up.

What other neat tricks are hidden in Google Analytics? Share them in the comments!

 

Placeholder Images For Your Site

kitten

Sean Yo from last night’s Guelph Web Maker Meetup shared a few awesome web tools I’d never heard of and I thought they were so neat I resolved to share them (and a few extras) today with everyone here.

Every web designer and developer under the sun has used (or at least heard of) the default ‘lorem ispum‘ text that is used as a filler for unfinished text copy on websites that are a work in progress. Well, now us web developers and designers have an option to use something similar for our images as well.

The image on the right should give you some sort of indication where is going… check it:

 

Featured WordPress Plugin: W3 Total Cache

Let me be straight with you: Every WordPress blog on the web should have this plugin installed.

And, no, I’m also not being paid to say that. :)

W3 Total Cache is exactly what its name suggests: A total caching solution for WordPress blogs. WordPress is a good publishing platform and content management system (CMS) but runs into problems quickly when more than a few visitors hit your site. Even moderately busy websites can buckle under the strain of the database connection pools, stylesheets, Javascript, and HTML that WordPress uses.

Some of the neat features that W3 Total Cache includes:

  1. “Minifies” CSS, Javascript, and HTML by removing all whitespace. To see an example, view the source code of this page. This means there is less data to send to viewers of your website which also means your website loads faster.
  2. Final output is cached and then re-served to the next viewer without having to rebuild. This means that in many circumstances, your blog might only be recreating your site dynamically once an hour. Otherwise, the cached version will be served, greatly increasing the performance and stability of your site.
  3. Uses advanced disk caching techniques to cache output or can also take advantage of Memcache technology (if supported by your server) to increase speed even more.

Before W3 Total Cache I was a fan of WP Super Cache. And before that, I used WP Cache. Neither of the latter two can hold a candle to the capabilities and caching power of W3 Total Cache.

For more information on how this plugin can increase your website’s performance, take a look at W3 Total Cache on the WordPress Extend website.

How to Network in a Web 2.0 World – Part 2.0

Note: This is a continuation of part 1 of How to Network in a Web 2.0 World. Please read the first blog post on the subject before proceeding with this one.

What’s Next?

Now that you’ve got profiles at the 3 most popular social networking websites, it’s time to put them to good use. To do that, we’re going to leverage the equalizing power of the Internet to gain access to high-profile people in the markets you’re selling your services to or working in. You will be amazed how accessible CEOs and other top-tier people are on services like Twitter and Facebook.

Your Brand

Branding is an entire industry by itself and far out of the scope of this blog post. However, we can tackle a small part of it to get you on your way. The easiest way to help brand yourself is to have a consistent image that you’re delivering to people who see you. This way, they will remember you and associate you with that image. Think Coca-cola and you likely think of a red sign with white text. Or Nintendo brings up imagery of Mario.

Be sure that your profile picture is the same across all of the social networking sites you’re a part of. This way, when people see a thumbnail of your profile pic, they will remember who you are and associate you with it.

Another trick is to always use the same nickname or handle on every service. For example, my handle is Rocky1138. If you search for Rocky1138 on Google or Yahoo or Bing you will see a lot of the websites I write on or tweets from Twitter.

Facebook Vanity URLs

When adjusting your profile on Facebook you are presented with the option of creating a “vanity URL,” which is a word you associate in the Facebook website address with your Facebook profile. This is an easy way to make your Facebook profile memorable to people. For example, my Facebook profile is located at https://www.facebook.com/webprogrammer. Whenever anyone goes to that link, it will take them to my Facebook profile. Pick a good Vanity URL such as your name or something easy to remember that you wouldn’t mind putting on your business cards.

Twitter

Twitter will connect you with very important people around the world and give you access to those who can hire you or contract your services in the future. An easy way to get hold of the best people in your industry is to use a website like WeFollow.

WeFollow will show you the top Twitter accounts in the world for a search term you type in. If you type in “php” you will get 1,602 people you can follow, including the #1 twitterer which is coincidentally the person that invented PHP. After using Twitter for a few weeks to build up a tweet history, spend a day and a half to follow the entire list of people in your search. If even half of them follow you in return, that’s still potentially hundreds of like-minded people that will be listening and watching your tweets.

I have gotten plenty of work from people who’ve been following me on Twitter and got in touch with me because of something I tweeted about. This is a great way to get work.

I hope this has helped moves you forward in networking in a web 2.0 world. There’s still plenty more we can do, so keep an eye out for part 3 on the horizon.

Learning PHP Using Google Wave

Tonight at Guelph Coffee and Code I walked the group through the first steps of learning PHP. Because our projector was unavailable, I substituted its functionality with Google Wave. Even though I’ve had access to Google Wave since the summer, this was the first time I had truly used the service.

When I first heard about Google Wave, the idea seemed intriguing enough. I had a hard time figuring out exactly what it could be used for. I’m a huge fan of Gmail and other Google communication tools including Google Apps, so I had faith they’d pull something cool off. However, my first few attempts at trying it were met with less than stellar results.

Truth be told: I couldn’t quite see how it could help me communicate with my friends and colleagues any better than Gmail. So, a few days after receiving notification of my acceptance into the world of Wave, I abandoned it and went back to my life with E-Mail.

What We Did

Using Google Wave, the group followed along with my presentation of syntax and functions and contributed their own code snippets and links. I was able to quickly type example PHP code into the wave and have it appear on their screens as I was typing it instead of all at once when sending the message. The removal of the wait-message-wait-message barrier is critical to its success in groups. It’s just as easy as talking.

This sort of instant chat has been done before, however, most notably with ICQ chat back in the 1990s. But, back then we weren’t quite the society were are today. Have to give credit where credit is due, though.

I knew it was going to go well when after pasting my first code block into the wave, the others in the group started to modify the code without me prompting them. After returning from the fridge, there were already 3 or 4 new lines of code directly beneath mine were with perfect syntax. It was fun!

Is It E-Mail 2.0?

To be perfectly honest, I am not sure. I love Gmail and it will take a lot to move me away from it. Perhaps its a case of uncertainty with respect to how it will interact, if at all, with Gmail in the future.

Even after tonight’s experience, I still have a hard time defining Google Wave or identifying its place in my communication paths. But there are two things I know for sure: It’s great in groups and makes an excellent discussion platform when your projector is down.

Wireless in Welland, Ontario, Canada

Over the holidays this year I’m in Niagara staying at my parents’ place. Used to working at the Red Brick Cafe in Guelph, I was worried heading back to an area without a focus on tech would mean staying in the basement to do work. I searched for a few hours online and talked to some folks to figure out where the wireless hotspots in Welland are.

I couldn’t find much.

So, I figured I would list wireless hotspots I had found in the area to let those who come after me to know where they can get some work done in a comfortable environment.

The List So Far

Cafe on Main

Where: 91 East Main Street.

Hours: Mon-Fri – 8am to 5pm, Sat – 9am to 3pm, Sun – Closed.

The best cafe experience in Welland, bar none. Take the #9 or #10 bus to the downtown terminal and walk a block toward the historic bridge. Located directly across from the courthouse, it offers a quiet and comfortable atmosphere and includes a fireplace. If you’re in the area and are looking for a place to get a good latte, this is it!

Seaway Mall Food Court

Where: 800 Niagara St., Welland, Ontario, Canada (view map)

Hours: Mon-Fri – 10am to 9pm, Sat – 9:30am to 5:30pm, Sun – 12pm to 5pm

Seaway Mall’s food court has several wireless hotspots and some work better than others. I had great experience with SSID SeawayMallA but almost none with SSID SeawayMallE.

Cafe Mochaccino in Seaway Mall

Where: 800 Niagara St., Welland, Ontario, Canada (view map)

Hours: Mon-Fri – 10am to 9pm, Sat – 9:30am to 5:30pm, Sun – 12pm to 5pm

Great (and inexpensive!) cappuccino but no in-house wireless. Using Seaway Mall’s wireless required me to sit at one of their tables just outside of the cafe.

That’s it, for now. Expect this post to grow as time goes on and more wireless hotspots are discovered. And, by all means, if you find your own wireless hotspots in Welland please list them in the comments!

Cloud Folders Increase Productivity

Being a web developer, I usually use several different computers on different operating systems across the lifetime of any project. Personally, I have 5 computers plus one server: Access to a Vista PC, a Windows 7 virtualized installation, my main Mandriva Linux desktop, a Eee 701 PC with Eeebuntu, a Mandriva Linux laptop, and a FreeBSD development server.

Moving files from one computer to the next used to be a time-consuming and ultimately prohibitive process. If I wanted to, say, take a break from working on my PC and work at the Red Brick Cafe for a few hours, I’d have to download my work files to a USB memory card then export the MySQL database and do the same transfer again to the USB memory card.

Or, I could burn a CD. Of course, how does one get the updated files back off the laptop and onto the PC when arriving back at home? This arduous process basically meant that freedom of choice in the work environment was severely hampered and was often more trouble than it was worth. But not any more.

Enter Dropbox.

Dropbox is a free service that is basically a shared folder in the cloud. It makes sharing files amongst any computer, whether it be Mac, Linux, or Windows, easy as drag and drop. And I really mean that. I love things that speed up my work processes because the less time I spend in administration mode the more time I can accomplish tasks in programming mode. Dropbox exemplifies this manifesto.

Any file you put in the Dropbox folder on a computer will instantly be available on any computer that install Dropbox on. Even better, revisions are kept so if you make a mistake with a file and don’t have backups, you can pull the file in question from the archives to restore it. What makes Dropbox different from any other revision or archiving setup is that this is all done without any administration by the user. Literally if you drag a file into the folder, all this stuff is done for you. No committing changes, no crazy hoops to jump through.

Oh, and the 2GB storage starter account is completely free. It’s the one I use daily. I don’t even think I’ve hit 25% capacity yet.

Nerd Overload: The Gecko Surfboard

There’s one thing I know for sure that I will be buying in 2010: The Gecko Surfboard.

It’s a $99 PC built inside a keyboard. How awesome is that?

It runs the Linux operating system and has beefy enough specifications to be able to run web and office apps with ease. I envision a great opportunity for these in the education sector. The devices are so inexpensive and capable, schools could literally hand them out each year to incoming students who would then take them home and bring them back and forth to classes. Data for their apps and school work could be saved in the cloud so teachers and assistants could mark work without ever printing a sheet of paper.

Seriously, it’s this sort of opportunity for a better world through technology that energizes me. It makes me happy to be a developer and happy to be a part of this awesome industry. I’d love to hear stories of cool instances of this hardware at work once it’s released. If you have something to share, please do.

For more information on the Gecko Surfboard keyboard PC, check out http://eeepc.net/the-gecko-surfboard.

Windows Azure SDK + Visual Studio 2008 Error

Error creating Windows Azure project in VS2008. Help!

This is not a typical blog post for this blog and I apologize for this one in advance. I’ve been working with some friends from Coffee and Code on gearing up Azure development and I need the community’s help. Your help.

I’ve freshly installed a copy of Windows 7 in VirtualBox. I’ve installed Visual Studio 2008 Professional and its SP1. I’ve also selected .NET framework 3.5 from the Windows features menu. I’ve reinstalled DX11 and Uninstalled then reinstalled the Azure SDK and the Azure VS2008 tools.

Every time I go to create a new project I get this error:

'Grid' object cannot be added to 'Grid'.
Exception from HRESULT: 0x88980406.
Error at object 'System.Windows.Controls.Grid' in markup file.
'Microsoft.VisualStudio.CloudService.Wizard;component/newprojectdialogcontent.xaml'.

After I click OK (the only option available), Visual Studio shows the message in the status bar:

Creating project AppTest ... project creation failed.

I’ve searched on the web and asked around to find a fix for this error as I’d really like to get going on Azure development. Can anyone in the community help me?

Update! I’ve since learned that this is due to a bug between the 3D acceleration in VirtualBox, Windows 7, and Windows Azure SDK.