ImaginationOverflow

The knowings and experiences of a group of developers.

Introducing Thomson Wifi Passwords

This past two weeks I’ve taken a little vacation from my pet project (Metro Scrobbler) and started an update for the most successful app that ImaginationOverflow has (until this day), Thomon Router Passwords  now renamed to Thomson Wifi Passwords.

The app now looks like a Windows Phone app, with a clean, simple and intuitive metro design.
Thomson Wifi Passwords allows you to generate the thomson routers default passwords, very useful when you are in nearby one of this routers, they are spread across the globe and have a bunch of different ssids templates out there.

The usage is quite simple, just insert the last 6 characters from the ssid, pick a mode and wait a little, while the app makes its magic. This last version added the online mode that enables users that have cellular data plans to use a little of it to get the password much quicker.

The app has two versions:

The paid version only exists to support the running costs of the app.

For news about the app, like Facebook page or follow the app twitter.

Go and get it ;)

                              

MonoGame for 2D

After a long break of developing on personal projects, due to laziness and a busy schedule (mostly laziness), I decided to take on a new project, I will recreate a game from my childhood! I don’t know the name of the game, I played it at coffee shops (on touch enabled arcades), but I do know how it is supposed to be played:

  • There is a single-player and a multi-player mode;
  • One wall of blocks will come from each player side and advance until it reaches the end, or the wall of the other player, at which point you lose;
  • You can remove blocks, by touching them, if they are adjacent to two or more blocks of the same color/type;
  • The game has no ending, the goal is to score as much points as you can.

With this basic premise for the game in mind I started developing the game. It wasn’t to long until I ran into the first bump in the road, but that was to be expected, the only games I managed to finish was a cheap version of the “The Hangman” and “Pacman” (in 3D!). So with no experience in developing games I started working on a little engine for my game, on top of MonoGame.

Read more of this post

Logo, domain and new app

Its been a while since the ImagineCup post, but (and again) we hope that the blog posts start to rise again xD.

Since April nothing important real happen, PaletaS now has a degree, Sorcha switch from ISEL to IST, I quit my job to start doing research and develop apps.

Enter Metro Scrobbler.

Remember Wp7 Last.fm scrobbler? My first app? I’ve redone it with all the knowledge that I acquired while making InSkin. The result?

Our real first Metro App (or Modern or Windows App Design , whatever Microsoft calls it now, to us it always be Metro Style).

Download it now

Free Version
Paid Version

Don’t forget to follow @MetroScrobbler and like our page on Facebook

After 1 year of public existence we decided to buy the imaginationoverflow.com domain to our (to come) official website.

We are currently porting Metro Scrobbler to Windows 8 and Windows Phone 8 and developing two games xDD.

Meanwhile stay tuned app design posts are coming.

The ImagineCup national finals experience

Me and the team were participating on this years ImagineCup contest with a cool app named InSkin.
Feeding the app with a mole photo it will tell you if the mole can be skin cancer or not. But I’m not here to talk about the app (yet) we will have more news about it soon, namely when it will be available to the public.

The team were me, Sorcha, Diogo Silva and Joana Leite, this last two maybe seem new to you but we’ve been working together for some time now.

The Portuguese national finals were at the new microsoft Portugal building, the Lisbon experience, we’ve been training for a few weeks and really thought that we could make it.

The day started early by arriving at the ms building at exactly 8.30 and of course we dressed to the occasion:

Read more of this post

WP7 App nº3 and nº4 published!!

                           

(Click on the images to download)

Two more apps by the IO team.

The first is a mobfox client, mobfox is an ads provider that we have been using on our apps, and since I visit the site some times every day, I though that when eventually I get a WP7 this will be useful, at least for me xDD. The app shows all your overall and app reports, just like on the website.

The other app name is What’s Close, it uses the google services to fetch places around your current location and shows details of those locations, the rating other people gave them and lets you get directions to that location, this one was made by @Paletas.

Enjoy

My Vandalized View of Mvvm – Lets code

In the last post I gave an overall view into the MVVM pattern, in this I will put my hands to work and give some examples on what I meant.

In the last post I refereed that the MVVM pattern have three main layers, the view, view model and model. When you are coding to Windows Phone 7 (or WPF in general) the view layer is divided in two parts:

  • The Xaml, the actual user interface.
  • The code behind, code that is associated to behaviors or events of the user interface.

The xaml is just xml, used to define the UI, here is an example:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  <Button Content="GetBytes"  Name="GetBytesButton"  />
  <TextBlock Name="textBlock1" Text="TextBlock"  />
</Grid>

Read more of this post

MPLAB X theme – Pseudo WekeRoad Ink

I decided to share with the world my theme on MPLAB X, since my plays on the AVR32 I’ve started working on a embedded company that uses PICs as is main architecture (yup I’m sick too). This problem aside the IDE that we use to program such devices is the MPLAB X (aka NetBeans), and since I’ve WekeRoad on eclipse and visual studio, I tried to make a clone to this IDE.

Here is the preview:

And the download link

To install just unrar to the folder : C:\Users\{your user}\AppData\Roaming\.mplab_ide\dev\v1.00\config

My Vandalized View of Mvvm

As I said before, me and guys are developing stuff to windows phone and what is the architectural pattern for wp7 applications? Model View ViewModel.

So MVVM came after MVC other very popular architectural pattern and I should try to explain one on the concepts of the other. The MVC uses three distinct layers to separate logic:

  • Model – The business layer.
  • View – The presentation layer.
  • Controller – The one responsible to talk and control the other two layers.

Probably the worst error that I’ve made when studying MVVM is to try to connect or treat MVVM as a sub-pattern or a specification of MVC. So try to avoid compare the both until you totally understand MVVM.

MVVM also uses three layers:

  • Model – Same as MVC, your business logic.
  • View – The presentation Layer
  • View Model – The bridge between Model and View, can also be described as the binder.

So what are the differences? The interaction between view and view model is similar to MVC the views notifies the view model that something happened, like a button click, some text inserted etc,etc. The difference is how the view model talks to the view, the view model never (should) call anything related to the view. As an example in MVC is common to you call the view, controller code like view.showData(data) is normal and acceptable since is the way MVC works. In MVVM the view model updates the view changing its own public properties.

 

With the above image, you probably figure out what is happening. The view binds its the graphic elements to properties of the view model, by doing so, it will receive notifications when those properties changed, updating the view. Consider the follow example:

class ViewModel
{
 public string SomeText{get;set;}
 public ICommand SomeOperationThatChangesSomeText {get;set;}

}
class View
{
 Label label;

 public View(ViewModel viewModel)
 {
   label.Text = Bind(viewModel.SomeText);
   viewModel.SomeOperationThaChangesSomeText.Execute();
 }
}

The value of the property Text in the View is binded to the value of the property SomeText in the view model, now imagine that the command SomeOperationThatChangesSomeText changes the value of SomeText, when that happens the labels property Text will “automatically” change to the new value setted by the command.

As you saw there is no direct interaction between view model and the view, that is nice because it completely separates the user interface logic from the business logic.

Note that this post talks only about the practical terms of mvvm there is much more to it, for more details check out the roots of mvvm in the Presentation Model pattern by Martin Fowler

In the next post I’ll show this concepts using the windows phone platform.

WP7 2º app published

So has I said the second Imagination Overflow App is online!!!

This app was born on my interest to know how the thomson routers default password were generated, so I implemented the algorithm described in here, tried to optimized it so it runs as fast as possible in a windows phone and make an app around that XD. Enjoy

http://www.windowsphone.com/en-US/apps/5073c9da-9b3a-4d36-9ce7-5140c0f7a28f

On the next post I will try to explain MVVM, the architectural pattern that is embedded in the windows phone programming interface.

EDIT: I open-source the implementation of the default passwords algorithm check it out:
https://gist.github.com/1922997

The windows phone playground

So since the last post many things happened, we drop the kinect to a corner waiting for that big idea to come up and became windows phone 7 developers !!!

We all attended the Portugal code camp where we found out what the big fuzz was all about.

Today we have just submitted the second app to the marketplace, more on that later, but first check out our first app, http://www.windowsphone.com/en-US/apps/c7778f6a-de31-4e46-a996-cd5323269ce2
So this long time without posts probably is over since there is much knowledge to shar.

Follow

Get every new post delivered to your Inbox.

Join 310 other followers

%d bloggers like this: