Saturday, December 25, 2010

Happy Holidays

Happy holidays everyone out there, it has been a great year for me as I hope it has been for you. Enjoy the holidays with peace, respect and love !!

Cheers!
-ab

Monday, November 1, 2010

S.E.A.R.C.H. - Unity3D Diving Game Demo


I would like to share with the community one of our current Unity3D projects at MysteryD.

This game demo is still a work in progress but we would like to go ahead and share it with the community and gather feedback, comments, possible improvements and overall feelings about this demo since viewed as a demo, is pretty much completed. Please feel free to play it and leave comments if you like.

S.E.A.R.C.H. is a salvage and rescue diving game where the player needs to find its way in the ocean depths to fix a leaking oil pipe at the bottom of the ocean. The player will need to recover pipe's pieces scattered around, close the pressure valve to stop the oil flow and finally fix the broken pipe.

The swimming controls mimmic the real swimming movement mechanics, where the player needs to alternate between each leg to swim in straight direction. Remember to keep an eye on the aggressive sharks surrounding the leak and complete the mission before the oxygen runs out.

Among my roles for this project I was responsible to co-design the gameplay mechanics, lead the game direction and develop the whole game demo, including gameplay mechanics, movement controls, fauna waypoint system and movements, sharks artificial intelligence, visual effects, particle system effects, scene lighting, terrain shaping & painting and several other tasks. 

S.E.A.R.C.H. is being produced by MysteryD and is currently a work in progress. All music in he game was custom made by Andrés Cervilla, old friend of mine and one of of the top young musicians in Central America, who is currently working with us as Sound Engineer for our games.

You can play the online web version of the demo by following this link.

Cheers!

Friday, October 29, 2010

WP7 Development Tips Super Article

I have been away from .NET development for a few months since I started to develop games with the Unity3D engine. However I try to keep up to date by reading articles and implementing small prototypes once in a while.
PDC 2010 started today and surfing the web for comments, articles and online webcasts I found this article with great development tips for the Windows Phone 7. The tips are focused on performance for Silverlight apps running on the phone and this is one of the most complete and detailed articles I have come across.
Make sure to check it out and use it. I love the first part describing how being flexible regarding design patters is a must for performance optimization. We (software architects) tend to over engineer applications just to adder to design patterns and sometimes we sacrifice performance just to keep the pattern architecture, when in reality performance will be much more appreciated by your users.
Cheers!
-arbbot

Wednesday, October 27, 2010

Retrieving Facebook Profile Picture as an HTML Texture in Unity3D

HTMLTexture

Lately I have been reading a lot of posts and information about Facebook + Unity3D integration and I wanted to share my thoughts and a little sample to help the community bit.
I think that this topic gets more confusing because there are different types of Facebook integration depending on what you want to achieve. Here's my take on different Facebook integration approaches:
Web Basic Integration
This is basically just embedding your hosted Unity3D web player into a Facebook canvas. This type of integration is the most simple of all because is basically just embedding your Unity3D web player into a Facebook page so people can play it right there. For this you will need to have your Unity3D web player already hosted and running somewhere with public access. The steps are super simple:
1- Go to Facebook Developers
2- Setup a new application
3- Fill the Canvas Page text field with your desired app name
4- Fill the Canvas URL text field with the URL of your unity web player
Once you do that, you are done and you app will be already running in Facebook.

Desktop Basic Integration
With desktop applications it gets more tricky because Facebook OAuth 2.0 protocol forces you to redirect the user to Facebook to allow access to your application, and then you need to get the response and request the authentication content. This process is more advanced and the experience is kind of broken since the user has to leave the unity app to grant access using the Browser.
Alternatively you can do just a basic integration, which is retrieving public Facebook information based on the Facebook username. For this you don't need to implement the authentication since you just need to call the Facebook public API services and render the results. This is not actually a real integration, but it will enable you to retrieve and render some basic Facebook information in your unity app without a lot of work.
This is the actual integration sample I have created. It is a very simple application with only one script that requests the user for the Facebook username, and then uses it to retrieve the user's profile picture and render it as a Texture on a GameObject.
This is just the basic stuff to get you started, but is well documented and very simple so it should help you get started. You can get the sample here.
Facebook Advanced Integration - Web and Desktop
This is the real thing. For web players it will be easier and the experience will be better cause the user will be already using a browser, and you can use JavaScript functions in the web player HTML (check the Unity docs) page to get manage the authentication of the app easily and pass the required information back to unity without issues. There are several third party solutions and I can recommend DimeRocker which is the platform we have been using for Mystery Invaders.
If you are deploying your application using the Web Player, you need to basically use JavaScript and the Unity WWW class to authenticate and then connect to the Facebook Graph API to get and post the information you need.
For desktop application the difference will reside on the Authentication process, which you will need to bridge between a web page and the desktop application. I'll be working on samples about this topic and hopefully posting something back to the community to help others get on track.
Happy Facebook integration!
-arbbot

Tuesday, October 12, 2010

“Mystery Invaders” Unity3D Game

MysteryInvaders

I wanted to share some big news around my latest work.

“Mystery Invaders” is a space invaders like game, but with a camera angle/perspective twist that makes it much more interesting and fun to play. It has a solid game play, high polished 3D models, a wide arrange of power ups and weapons to fight your enemies and really cool movement and particle effects. The game was produced by MysteryD which is the company I work for at the moment. You can also check MysteryD´s Facebook page.

This is my first official and public game where I performed as Game Designer along with a very talented and very good friend Adrian Poveda, who did all the Art Direction and most of the design work. I was also responsible for the Game Direction and I did 100% of the coding in combination with the levels design, particle effects, lighting and pretty much everything that is not a 3D model or a design asset.
The game was implemented using the Unity3D engine and coded 100% in C# using best practices and naming conventions that I applies from my interactive application development experience.

We are currently using DimeRocker as the social platform, which makes Facebook deployment very transparent, relieving us from the web integration and crazy constant Facebook API changes maintenance.
This is not my first game at all, I have been working with Unity3D engine for the past six months and we have some other games and demos under development, and prior to that I was already prototyping simple games with XNA, Silverlight, XNA Touch and iPhone. Nevertheless, this is the first official and public release that shows my work in the game development industry.

I invite you all to play the game and leave your feedback. The great thing about having the game on Facebook is that social feedback is a lot faster and more helpful, so go ahead and “stop the invasion” !!!

Cheers!

Saturday, October 2, 2010

Unity 3 has been released

Unity3
 

A few days ago Unity 3 was finally released. The new version comes with powerful new features including audio enhancements, assets visual management, great new particle systems specially for water effects, the awesome Beast light mapping, lens effects and volumetric lighting and source level debugging tools.
I have been playing with pre-release versions of Unity 3, but I’m glad that is finally out with all the web player deployment features in place. Unity is one of the most powerful, robust and user friendly game engines and I can see the great future of the tool, the company and its team.
Congratulations to Unity3D for the new version !!!

Cheers!

Tuesday, September 21, 2010

Windows Phone 7 Training Kit

Very quickly, go ahead and take a look at the Windows Phone 7 training kit. A few days ago I shared the article announcing the final dev tools, but now I'm pleased to share the training kit info. It will help you cover the basics and even build a small game for your phone. I have to jump on that myself, but meanwhile, I hope you get the tools and the material so you can cover the basics. There are several links to Channel9 training videos and a very comprehensive list of useful information.

Cheers!
-arbbot

Wednesday, September 15, 2010

Unity3D Engine Safe on Apple’s new iOS 4.0

Great news….no wait, amazing news I just got form the Unity3D CEO David Helgason. Apple has lifted their restrictions surrounding development tools, which I believe is the right choice. As Helgason says, after all you could create and build really crappy apps with just xCode, and I truly believe that you can actually create incredible apps with Unity3D.
I have been working with Unity3D engine for about six months now, on a very fast and intense learning process to the point that I’m actually able to apply my interactive application development knowledge to Unity3D game development, which basically means reusable code, structured and easy to read and maintain scripts, loosely-couple game states and modules and most of all, the most fun I have had coding.
Apple, you made my day !!!!
Cheers!
-aB

One OS to rule them all

I’m enjoying my independence holyday here in Costa Rica, but I wanted to share this quick article about Parallels running now even on the iPad. I find it very amazing and many Windows users will be super excited about the possibility to run Windows on the iPad. In my case, this will give me tools for creating windows touch enabled applications  that can run on the iPad/iPhone. Obviously if you are a Mac user you won’t be interested, you will be probably even crying already, but for the rest, this is great news. Check it out
Cheers!
-aB

Sunday, September 12, 2010

Recommended Unity3D Learning Path

Here’s a quick guide on my recommended Unity3D learning path. The idea is to guide people willing to learn how to create, develop and deploy Unity3D games.

  1. First Things First: Learning the Unity3D Basics.
  2. Unity3D Engine: Show me some videos.
  3. Game Development: Step by step tutorials.
  4. Networking: What is Unity3D Networking about.

If you take your time and complete the tutorials linked about you will have all the basic knowledge you need to start creating games in Unity3D.

In my opinion, the Uni3D engine is one of the most easy to learn, intuitive and robust tool I have had the pleasure to work with in my 7+ years of experience in the software development industry.

If you are hungry for more, make sure to check the following resources:

  1. Unity3D User Manual
  2. Unity3D Reference Manual
  3. Unity3D Scripting Reference
  4. Unity3D Resources and Example Projects
  5. Unity3D Wiki
  6. M2H Examples and Tutorials

And make sure to get involved in the Unity3D Engine Community:

  1. Unity3D Answers
  2. Unity3D Forums

Hope this helps you to get started and have fun with game development.

Cheers!
-aB

Thursday, September 9, 2010

Rotating your Character in Unity3D

To keep up with my “starting simple Unity3D series”, I want to share a code snipped on how you can rotate your characters or objects by code in a Unity3D game or application.
This method is one of the most common things you will need to do, specially if you are programming your NPCs. The code is my own version of many approaches I have seen on the tutorials and forums, and I believe is quite standard. 
The reason I wanted to post it here is because I added a lot of comments and some official documentation. Hopefully if will help you to understand better the mechanics of movement in the 3D space, and as a plus is already in C#, which lacks some visibility in the tutorials and forum answers.

// Rotates the character (Y axis only) to face the given position 
void RotateTowards(Vector3 position)
{
    // Get the direction between the given 
    // position and the current character's position
    Vector3 direction = position - transform.position;
  
    // Get rid of the Y axis variations
    direction.y = 0.0f;
   
    // Check if the character's rotation is 
    // already facing the given position. Include a little damping.
    if (direction.magnitude < 0.1f)
    {
        return;
    }
  
    // If not, it means we have to rotate the character 
    // over its Y axis to face the given position
    // To rotate our character, we need to use a smooth transition
    // between the current rotation and the target rotation


    // Use Quaternion.Slerp() to smoothly rotate the character.
    // Transform.rotation: The rotation of the transform 
    // in world space stored as a Quaternion.
    // Quaternion: Quaternions are used to represent rotations.
    // Quaternion: They are compact, don't suffer from gimbal 
    // lock and can easily be interpolated. 
    // Quaternion: Unity internally uses Quaternions to 
    // represent all rotations.
    // Quaternion.Slerp: Interpolates rotation between 
    // the rotations of from and to.
    // Quaternion.Slerp: Choose from and to not to be the 
    // same as the object you attach this script to.
    // Quaternion.LookRotation: Creates a rotation that 
    // looks along forward with the the head upwards along upwards
    // Quaternion.LookRotation: Logs an error if the forward 
    // direction is zero
    
    // Also we will use the character's rotation speed 
    // to ratate the character smoothly over time
    // We multiply the rotation speed by the Time.deltaTime 
    // to make the rotation by seconds, and not by frames
    transform.rotation = Quaternion.Slerp(transform.rotation,
            Quaternion.LookRotation(direction), 
            rotateSpeed * Time.deltaTime);
  
    // Now we need to get rid of the rotations on the X
    // and Z axis, because the character should only be able
    // to rotate over its Y axis. To do this we need to modify 
    // the transform's Euler Angles


    // Transform.eulerAngles: The rotation as Euler angles in 
    // degrees.
    // Transform.eulerAngles: The x, y, and z angles 
    // represent a rotation z degrees around the z axis, 
    // Transform.eulerAngles: x degrees around the x axis, 
    // and y degrees around the y axis (in that order).
    // Transform.eulerAngles: Only use this variable to read 
    // and set the angles to absolute values. 
    // Transform.eulerAngles: Don't increment them, 
    // as it will fail when the angle exceeds 360 degrees. 
    // Transform.eulerAngles: Use Transform.Rotate instead
    
    transform.eulerAngles = new Vector3(0, 
                                    transform.eulerAngles.y, 0); 
}
Cheers!
-arbbot

Wednesday, September 8, 2010

Simple Prototype: HTML to/from Unity3D

unityLogo 

Today I made a quick prototype about how you can make Unity3D communicate back and forth with a web page. I based the prototype on the Unity3D documentation about the topic.
image

I’ll do another post with the details of the implementation and the modifications I did on the C# code to follow some best practices and naming conventions that hopefully will help you to avoid confusion and lack of maintainability in the long term.
For now, you can check the prototype here.

Cheers!
- arbbot

Sunday, September 5, 2010

Music in My Tech World

logo

Very quickly, I wanted to start combining all my activities which I share with my software professional career.

Along with software and game development, I have been always involved in art activities, from writing poetry and short tales, to miniature painting and music.

One of my current art projects is my music band, which is called “Tercer Mono” (Third Monkey in English). I’m the co-founder and bass player of this instrumental band. We play a mix of funky groovy bases with alternative rock riffs. Check out our band bio, videos, songs and events at:

YouTube Channel
Facebook Page
MySpace Page
Reverb Nation Profile
Twitter

Cheers!
-arbbot

Windows Phone 7 Jumpstart

Just wanted to share this very useful post from Mike Ormond’s with links to several Windows Phone 7 Jumpstart Training articles. Make sure to check them out !!!

Cheers!
-arbbot

What I have been doing?

It has been five months since I started to learn Game Development with the Unity3D engine at MysteryD. I had previously played a little with Microsoft’s XNA Framework to create Zune HD and XBox Live simple games and also experimented with translations to iPhone using the open source XNA Touch framework + Mono develop, but Unity3D is definitely a major step into the game development and interaction industry.
Now, creating a game is a huge deal. It does not only involve a lot of high end coding, including a lot of advanced math calculations and artificial intelligence behaviors, but also includes user experience, user interface, design, 3D modeling, music composition, sound effects, visual illusions, distribution, analytics and probably a hundred more things. All these factors make the experience a lot richer than just building an e-commerce site or a messaging desktop application.
However the amount of work and dedication has been keeping me a little away from my digital social life (facebook, twitter, blogger, etc) but I’m trying my best to keep the blog active and my social network sites a little alive. I’ll try to start posting Unity3D prototypes and demos here, or where I can, and also combine interactive application development (which has been the focus for this blog) and gaming development topics in the same source. I should maybe even start mixing my music and arts topics and news in this very same blog, at least I think it will make it more fun.
So, that being said, let me share a couple of interesting articles I found regarding web interactive development. Yes, you know what I’m talking about, Browsers + HTML5 + CSS3 and what are Silverlight and Flash saying about it.
First I found this interesting article from TechChurch talking about how the HTML5 standard can trigger a new browser war, where we could end up replicating the browser wars of the 90’s. Pretty much having one standard and several different implementations depending on the browser.
If you are a Silverlight developer or like to keep an eye on this technology, make sure to check out this article from Brad Becker, the Director of Product Management, Developer Platforms at Microsoft. The article is obviously a Microsoft’s point of view on their on product, but the article touches really good points and seems very objective in my opinion.
And last, just a tiny update from Engadget regarding the long waiting (at least for us, .NET developers) Windows Phone 7 mobile handset.
By the way, I’m more active now in the Unity3D communities (my username is “arbbot”), so if you want to get in touch there, or join the discussions check out these pages:  Unity3D Forums and Unity3D Answers
Cheers!
-arbbot

Friday, August 27, 2010

Periodic Table of HTML5 Elements

As usual super busy learning Unity3D for Multi-Platform game development specially in the field of Artificial Intelligence. However I always find some time to stay up to date in the latest tech industry trends. I have been reading about HTML5 and CSS3 and all the cool stuff you can make with them specially if you combine them with JQuery. Anyway, I just found this really great HTML5 interactive table that presents you all the elements of HTML5 and a short description of their usage. The coolest thing about it is that you can enter any URL you want and inspect the page to see what elements are being used.

I believe this is super helpful and I really like the interactivity it has. Special KUDOS to Josh Duck for his work and his nice and sleek web site.

Check the Periodic Table: Periodic Table of HTML5 Elements

Cheers
-arbbot

Wednesday, July 21, 2010

Regular Expressions Made Simple

I have always had a hard time with regular expressions. They are very powerful and handy, but each time I needed to use them I found myself struggling a bit to get the right expression for the problem I needed to solve.

Today I found a great article  from Mike Malone covering the basic stuff you should know about Regular Expressions. There's a lot more about them, but this article really cleared up the bare minimum you need to know to use them correctly.

So don't be lazy, go ahead and read it. It will be very helpful for any developer out there.

Cheers!
-arbbot

Hello Again

It has been some time since my last post and I'm making room on my spare time to get back to the blog. I really want to finish the Silverlight Drag&Drop series introducing some cool stuff for Windows Phone 7.

For the moment, I have been totally into Unity3D and Game Developing. For the past three months I have been learning and working with Unity3D technologies to create amazing and fun games for MysteryD, which is the company I'm working with right now. 

Leaving Schematic was a hard decision. I felt in love with the company when I started back in January 2007 and I must say it was an awesome experience and I had the chance to project myself at an international level, working with the most talent people in the industry and being part of incredible projects for clients like Microsoft, SanDisk, Target and internal projects like TwittZure and the Schematic Cannes Touch Wall. 

But at the end I wanted and needed to explore other paths, other technologies and other kind of solutions and Game Development has been a dream since I was twelve years old making role playing games for my friends. It seems now that it was the perfect timing. I started with MysteryD about three months ago and everything is working great. We are creating our portfolio and developing really nice interactive and game solutions that I hope I will be able to show soon.

In the mean time, stay tuned. I'll be starting to blog about Unity3D, game development and of course continue posting on Silverlight, WPF and the upcoming Windows Phone 7.

Cheers!
-arbbot

Sunday, March 21, 2010

Drag and Drop Custom Control for Windows Phone 7 Series Part 1


silverlight-logo
This month has been very exciting for every .NET developer out there. With technologies like Azure Cloud platform, Silverlight, Windows Presentation Foundation, ASP.NET MVC, XNA Framework and all the different digital platforms that you can target, such as the Web, PC, MAC, Xbox 360 and Windows Phone 7 Series and Zune there is a ton of new cool stuff to learn every day.
When you have to be learning constantly, along with your daily tasks at work, sometimes we loose the big picture around the technologies and platforms we work with. That’s why is good to zoom out from time to time and analyze the way you are using technologies to build digital experiences.  At the end of the day, is all about becoming faster and more efficient when creating digital experiences so you can have more time to be creative about it. Microsoft technologies rely on a very extensible, robust and mature framework and we have the tools to do much more (with less effort) as long as you figure out the best way to use and integrate technologies and platforms. One key part of this is reusability. I’m sure most of us have built the same functionality from scratch many times on different projects, repeating ourselves constantly with the ideal of doing it better each time, but if you can learn how to reuse you code and functionality it will not only improve your speed and productiveness, it will also improve the maintainability of your creations and their life cycle.
Silverlight, WPF and the development tools like Visual Studio and Blend were created with integration and reusability in mind, and is our duty to understand how to take advantage of this and get benefits from it.
I have been working on creating custom reusable controls that are easy to integrate, reuse and customize in a more efficient way, and I wanted to share my experience from it.
windows_phone_logo-300x300 In this post I will explain how to start with a basic drag and drop Silverlight application which is not reusable and walk you through the process of transform it into a custom control that improves reusability, customizability and maintainability. We will go from a drag and drop simple application in Silverlight, to a fully reusable drag and drop control that you can reuse on Windows Phone 7 Series, demonstrating one of the coolest features of Windows Phone 7 Series development: portability !!!!
Lets start by using some of the cool samples and code our there to avoid reinventing the wheel. For this example in particular, I’m taking Corey Schuman’s blog posts about Drag&Drop implementation and animations in Silverlight and WPF (you can find his posts here, here and here).
I took Corey’s sample code and improved a bit so the dragable square comes to the front of other objects when you drag it. You can take a look at Corey’s post to see the implementation he did, and also download the source code, so I won’t go into details with this.
You can achieve the Z-Index positioning by adding the following lines of code:
In the void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) private method, include the following line before setting the isRectangleMouseCapture to true:
Canvas.SetZIndex(this.Rectangle, 100);
And then, in the void Rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) private method, include the following line before setting the isRectangleMouseCapture to false:
Canvas.SetZIndex(this.Rectangle, 1);
By doing this, once you click on the rectangle to start the drag operation, its Z-Index property will be set to 100, so it will become the most on top element, and then when you release the mouse, it will go back to 1. You can add several other visual elements to test it, and see that the dragable rectangle will be always on top of other elements when dragging.
Corey’s approach is interesting because it achieves the drag operation by relying on a Translate Transformation, instead of the element’s Canvas.Left and Canvas.Top properties, so the sample works event if the rectangle is inside a Grid instead of a Canvas panel element.
In the next part we will see how to abstract the functionality into a Dragable custom control, that will rely on styles and templates to render the visual appearance of the control, but will maintain the code behind functionality so the XAML is independent from the actual drag and drop implementation.
Cheers!
-arbbot

Monday, March 15, 2010

WP7 Get Started Info

Check Tim Heuer's blog post on getting started with Windows Phone 7 series development, since you will find the right links for the development tools.

Don't miss the fun !!!
-arbbot

My First Windows Phone 7 App

I'm sure many of you already heard the latest news about Windows Phone 7 Series from Scott Guthrie’s Mix keynote this morning.

I'm really excited about this, since finally the development tools for WP7 were released after several weeks of waiting. I didn't want to wait too long to post about this, so I went right away to download the tools and created my first windows phone 7 app.

The great thing is that any .NET developer became automatically a Windows Phone 7 developer. You can create applications using our beloved Visual Studio 2010 and Blend 4, and the applications can be created using Silverlight or XNA.

WP7 supporting Silverlight means that up to 90% of your existing Silverlight application's code is reusable and you only need to tweak the interface to fit the phone's screen resolution, and with Silverlight Out of Browser capabilities (with big enhancements on SL4) you will be able to deploy on web, desktop and phone reusing most of your code.



The same goes for XNA. You will be able to deploy your XNA apps on Desktop, XBox and WP7 using pretty most of your application code.

Isn't it awesome? Just as a prove of concept, it took me about a couple of hours to create my first "Hello" greeting app in iPhone using Objective-C, and I had to code the layout to respond to orientation. I did the same with the Windows Phone 7 tools, and it took me 5 minutes to get the same application up and running in the WP7 simulator.
This is a screenshot of the WP7 simulator running while you can see my Visual Designer and XAML windows opened in the back.
In this screenshot you can see how easy is to debug our WP7 application. In the background you can see my code bihind window with the active breakpoint.

All the same skillset, all the same tools and an exciting new platform to develop and do amazing things.
I'll keep you posted with more on Windows Phone 7 !!!
By the way, check out this links giving you all the information you need to start developing for Windows Phone 7 series.
WP7 Dev tools: http://developer.windowsphone.com/
Christian Schorman on WP7. http://electricbeach.org/?p=438
Silverlight.net WP7 dev forum: http://forums.silverlight.net/forums/63.aspx

Cheers!
-arbbot

Friday, March 5, 2010

Cloud Computing Dimensions

thumb-2
Today I had the chance to attend to the live web cast of Steve Ballmer, Microsoft CIO at the University of Washington. During the speech he focused mostly on Microsoft’s Cloud offering: Windows Azure. Ballmer talked about several different features and concepts behind the company’s cloud computing solution, and was kind enough to recognize some of his competitors contributions to the cloud computing era we have in front of us.
Although the presentation was relatively a traditional Ballmer speech on  Microsoft’s product there were a couple of things he mentioned that caught my attention and I believe is important to comment about. Ballmer talked about Cloud Computing Dimensions. I believe this is an important concept to keep in mind, since the whole cloud computing topic is about going beyond traditional spaces and directions. In my opinion, cloud computing is really about exploring different spaces and new ways to integrate different services and solutions we are used to in our daily digital lives. If you start thinking about the cloud as a N-Space world where you can go in many more directions than before, that is covering, consuming and integrating services and solutions in all sort of directions and spaces, that’s when cloud computing starts to sound really interesting.
Going back to the cloud computing dimensions concept, Ballmer talked about five different dimensions, that can be summarized as follows:
  • Innovation
  • Learning
  • Social interaction and collaboration
  • Smart devices
  • Server advances
Let’s take a look at each of the different dimensions:
Innovation: if you agree with me that cloud computing offers you more spaces and directions than any other digital space or solution, is easy to think that there is a lot more room for innovation and great ideas. In an information era where connections and integration of digital services are part of our daily lives, we could comfortably say that there is a lot more room for creativity and innovation.
Learning: the cloud has to be able to learn from the data is has access to, from the cloud usage itself and from the users who utilize its benefits and capabilities. This is a key point in the upcoming era. We are pushing the Computer Sciences to become better at learning, not only from training routines or metrics, but actually from the very usage we give to computing every day. We want computers and digital solutions to learn from us, to become better at what they offer us. This applies to the cloud too, and its a great platform for knowledge generation and human behavior learning.
Social Interaction and Collaboration: we interact with our environment and the people who surrounds us all the time. We have come to a point where we have some degree of success at translating those interactions to the digital world. We are now able to connect, socialize and express our selves in connection to others in the digital word, however the lack of different spaces and directions has made difficult to collaborate and interact with the massive amount of people and information in our digital experiences. The cloud is an open door to explore new and improved ways for social interaction, but more important, collaboration. Is inspiring to see how many research groups are getting into the cloud computing for its collaboration possibilities, which I believe are one of the most valuable features.
Smart devices: this is all about devices that can be smart enough to really let us take advantages of cloud computing. Some people may think about smart phones or really cool gadgets, but I think it goes beyond that. After all, the human itself is the smartest “device” of all times, and if we can cultivate human understanding (like gestures and human expressions) into cloud computing solutions we could get much more from the cloud. While we get there, researchers are creating smarter devices that emulate human abilities to take us closer to that point were the device to interact with the cloud and the digital world will be the human body itself .
Server Advances: this is more straight forward to understand, but not trivial at all. There’s a huge amount of information in the digital word, and that information needs to be stored. Cloud computing is and will keep pushing the way servers work and the way they are build. With the ongoing growth of information and the push that it is getting from cloud computing offerings, server advances will be a must in the next era, so the information can be stored, retrieved, modified and stored back again in an efficient and dynamic manner. We need a server infrastructure and its related hardware and software to be much more efficient to empower the cloud and its users to achieve much more that we can at our current times.
There’s a lot involved in Cloud computing. Microsoft is just getting into a more business driven cloud computing offering, and is not the first. Google, Amazon, and others have also cloud computing solutions and business offerings. I don’t have much experience with them, but I honestly believe that Microsoft push to get into the market is positive since they are pushing the edges of what people use to think about the cloud.
Let me know what you think about these concepts and share your ideas. Sharing knowledge is all about promoting new ideas and increase the knowledge itself.
Cheers!
-arbbot

Wednesday, February 24, 2010

Mobile Traffic in Google Analytics

In the past few days I have been paying a lot of attention to the mobile platforms in general, including Windows Mobile, Apple Mobile devices (iPhone, iTouch, iPad) and also Google Android. I'm focused mostly on .NET technologies, but I always look at other platforms and cool stuff (I believe is always good for you to keep the perspective looking at other things you don't normally work with).

Anyway, with the recent unveiling of the Microsoft Phone 7 Series (which by the way have kept me quite busy) I have been trying to learn how to develop for other mobile platforms. Android is an interesting case and I have been talking with my colleagues that are actually developing for Android, but I haven't had the change to actually get my hands on the Android development platform. On the other side, I'm attracted to iPhone development and I wanted to give it a try (is going slow, but steady). At the same time, I have been talking with several colleagues from different platforms about the benefits of each of the platforms, the obstacles and the resources while looking at the market behavior and trends. During these conversations one of my colleagues asked me if I use Google Analytics and if it could detect and report mobile traffic. It was something I didn't think about before, so I went right away to my Analytics account to check my blog's traffic.
As you can see in the image above, for a "X" time of period I'm actually able to see the mobile traffic coming into my blog. I'm able to detect the mobile device OS visits and the mobile device browser used during those visits, which I think is really handy if you are getting into the mobile platform.
I know many people are already aware of this, but I wanted to take the opportunity to share it with the people who didn't know about yet. I can’t believe you can get all this information from your site's traffic for free, so go ahead and start taking a look at you mobile traffic metrics!!!
Cheers!
-arbbot

Monday, February 15, 2010

Windows Phone 7 Series Unveiled



Exciting news coming earlier from the Mobile World Congress where Microsoft has unveiled the new Windows Mobile Phone 7 Series (make sure to check out the Backstage section of the site, which provides you with a nice communication channel regarding the WP7). The Phone looks great with a new trend regarding the navigation UI presenting clean, bright and asymmetric-menu shortcuts to the different functionality "hubs".

The phone seems to achieve the same clean UI and responsiveness from the ZuneHD, and has some interesting integration points with Zune Music functionality and XBox live. Although there are many unknowns, like the developer SDK and integration tools, it seems very promising and is creating buzz all around.

Most of the Microsoft folks are still very quiet about many key features, especially regarding multi-tasking capabilities, development experience, application market and other key related topics, but it seems that they are saving most of the exciting news for MIX10 which is just a few weeks ahead.

Check out the press release about the WP7 and stay tuned for more information.
Cheers!
-arbbot

Friday, February 5, 2010

TwittZure Showcased at Silverlight.net

I’m thrilled to announce that TwittZure (silverlight Twitter client running on Windows Azure) has been posted in the Silverlight site application showcase. This are great and unexpected news and I’m very proud of it since it is being showcased in the Microsoft's Silverlight official site and it is currently on the very “First Showcase Position” !!!! WOOOOHOOOOO !!!!

Stay tuned for future enhancements, we are working on improving the application to make it more intuitive and easy to use and more compelling to users.
Cheers!
-arbbot

Tuesday, January 12, 2010

TwittZure Case Study in The Silverlight Team Blog


I'm back to the office from my vacations at the Costa Rica's Pacific North Coast. It was a wonderful long and easy going time at the beach. It is good to remember life without phone or Internet access, watching the sky and the horizon at all times, surrounded by real nature and tall beautiful trees. It was a great time with family and friends, perfect to charge batteries for this New Year.

I wanted to share some great news I received when I came back to the office: TwittZure, my Twitter Silverlight 3 client running on Windows Azure cloud platform got a case study published at The Silverlight Team Blog. This is great not only because my app is being showcased at the very Silverlight development team blog, but also because it all started as a small personal project that with Schematic support and my colleagues help developed live, public and fully working Azure cloud application.

It’s always great to see your work and effort live and get comments from people who are actually using it. This is just the first step (after all, it’s a beta release). TwittZure will continue to grow and explore more and more features of Silverlight, the Azure cloud platform and off course, Twitter’s public APIs. I’m proud to get some buzz around the application and have so many positive comments that make me want to keep working on it.

Please go ahead, check out the case study and try the application if you haven’t already. Take a few minutes and leave comments and suggestions. I know there are many improvements to make, and I’ll be very happy if you want to share your thoughts about it.

Cheers!
-arbbot