Onlive, My Thoughts
I bought an onlive box,and 2 games for £2 plus delivery. For that price, I thought I had to give it a go. Onlive is moving computer gaming in to the cloud. The idea is that you will never have to upgrade your computer again as all the game processing is done on big computers on the internet and the graphics are sent to your device.
Onlive supports, its own console, PC, and promises to have Ipad and Android support soon. This interests me as it would be good to play my games where ever I have my Ipad and an internet connection. Also any saved games should follow me on my devices. Other people can watch you play and give you a thumbs up or thumbs down, which is a nice touch adding more social to game playing.
After seeing the quality at a gaming show and comparing it to my own, it seems my internet connection isn’t quite up to the job. I rarely get any problems with playing games, the graphics look blocky in comparison to what I saw at the show suggesting they downgrade the graphics for differnet internet connections.
What worries me about Onlive is their business model. They charge the same price for a game as you can buy in a shop although in some cases it can be more expensive. Which would be fine aside from when you purchase a game they say that you are buying this game but it will only be available to play for x period of time. This is understandable as they have to have these games loaded on a hdd somewhere and guaranteeing lifetime access to the game is a bit of a far fetch. However, when you think about this some more, you realise that if you went to the shop and bought that game or purchased it off of Steam, then you would own that game. You can play that for as long as you have a computer that can play it. I hear some people saying, but realistically I only play games for a few years and then they get dusty. Is that necessarily correct though? If that was true, would ebay have so many sales and purchases of old games? I mean you can even buy NES games.
My point is that when you buy a game via Onlive, you are effectively renting it compared to if you bought the game in the shop (remember the price is the same). So why would I do this. Another concern arises when you read the ts and cs where they state that at the moment, membership to their system is free but they reserve the right to charge a monthly fee and you can only play the game if you are a member. So worse still in the future I may only be able to play my game if I pay a monthly fee.
In conclusion I like the idea of online and think it is a very good innovation to the market. I do however beleive that they shouldn’t sell you games at full price but let you rent them, like you can from blockbuster. To me this seems how Onlive will evolve to and when it does, I would be more interested in spending more cash with them but at the moment, buying a game through them isn’t a better deal than buying from a shop.
First Open Source Project – Knockout Creator
Well it looks like this blog is all about firsts at the moment. Today I created my first open source project, Knockout Creator. This is a library that supports Knockout.Js.
What is Knockout.js?
Knockout.js can be found at http://knockoutjs.com/ . Knockout is a Javascript library that brings a MVC approach to Javascript. The idea is that you create a view model in javascript. You can then change the UI dependent on the view model. Its probably easier to understand if you look at a live demo http://knockoutjs.com/examples/twitter.html.
So whats your project do?
The problem I found with knockout is, you end up creating the view model in Javascript and then recreate the same model in c# when you want top pass the view model back to c# for saving or lookup. I hate duplicate code!! So Knockout Creator will generate the Javascript view model for you so the view model exists in just one place.
Usage
Your View Model
namespace knockoutExample
{
public class Restaurant : Knockout.ViewModel
{
public int RestaurantId { get; set; }
public string Name { get; set; }
}
}
Setting up your controller
public string KnockOutJs() {
restViewModel = new Restaurant();
koCreator = new Knockout.KoCreator()
//Set your controller name
koCreator.PageName = "Home";
//Add your viewmodel Restaurant is the name of the model we want in javascript
koCreator.AddViewModel("Restaurant", restViewModel.GetType());
//Add a javascript function subscription. This will call the javascript function test() everytime the name is changed
koCreator.AddJsSubscription("Name","test");
//This will return the javascript, we pass in the controller so that Knockout Creator can bind subscriptions
return koCreator.GenerateJs(this);
}
Creating a method to be called using AJAX
//Add a custom attribute specifying the variable that when changed will trigger this via AJAX
[KoMethod("RestaurantId")]
//The method accepts one attribute, our viewmodel. This will be passed back using AJAX
public JsonResult GetRestaurantById(knockoutExample.Restaurant viewModel) {
//get the restaurantId that has been posted
int restaurantId = viewModel.RestaurantId;
//Load the record from the db
Restaurant restaurant = _restaurantRepository.Load(restaurantId);
// set the viewmodel name
viewModel.Name = restaurant.Name
//return the viewmodel back to the browser
return Json(viewModel);
}
Setting up your view
What gets put in your browser?
So what now?
Every time the RestaurantId is updated a call will be made to the server and will run GetRestaurantById. GetRestaurantId will load the Restaurant from the database and will return the view model back.
How can I get the source?
Get over to github https://github.com/afinzel/KnockoutCreator
Arduino Project 1 – LED Binary Counter
I’ve always had an interest in electronics although haven’t been good at it. A couple of my work mates bought http://www.arduino.cc/ and I had to buy one too. This is my first very simple project, a LED binary counter.
The circuit is boring, each LED is plugged up to a different digital out.
The code is a little clever but still simple. Below is a function that converts a number to turn on one of 4 LEDS on. It works by dividing the number by 8,4,2, and 1 in that order. If it is divisible by that number then we turn that light on and deduct it from the original number.
void convertIntToBinary(int number) {
int divisible;
divisible = 8;</code>
if (number / 8) {
number = number - 8;
digitalWrite(LEDVAL8, HIGH);
} else {
digitalWrite(LEDVAL8, LOW);
}
if (number / 4) {
number = number - 4 ;
digitalWrite(LEDVAL4, HIGH);
} else {
digitalWrite(LEDVAL4, LOW);
}
if (number / 2) {
number = number - 2 ;
digitalWrite(LEDVAL2, HIGH);
} else {
digitalWrite(LEDVAL2, LOW);
}
if (number / 1) {
number = number - 1 ;
digitalWrite(LEDVAL1, HIGH);
} else {
digitalWrite(LEDVAL1, LOW);
}
//digitalWrite(number, HIGH);
}
The main part of the code links up the LEDs and increments our number between 0 and 16(the max we can do with 4 LEDs)
#define LEDVAL1 4
#define LEDVAL2 5
#define LEDVAL4 6
#define LEDVAL8 7</code>
int counter;
void setup() {
pinMode(LEDVAL1, OUTPUT);
pinMode(LEDVAL2, OUTPUT);
pinMode(LEDVAL4, OUTPUT);
pinMode(LEDVAL8, OUTPUT);
}
void loop() {
counter = counter + 1;
convertIntToBinary(counter);
if (counter == 16) {
counter = -1;
}
delay(1000);
}
The full code:
#define LEDVAL1 4
#define LEDVAL2 5
#define LEDVAL4 6
#define LEDVAL8 7</code>
int counter;
void setup() {
pinMode(LEDVAL1, OUTPUT);
pinMode(LEDVAL2, OUTPUT);
pinMode(LEDVAL4, OUTPUT);
pinMode(LEDVAL8, OUTPUT);
}
void loop() {
counter = counter + 1;
convertIntToBinary(counter);
if (counter == 16) {
counter = -1;
}
delay(1000);
}
void convertIntToBinary(int number) {
int divisible;
divisible = 8;
if (number / 8) {
number = number - 8;
digitalWrite(LEDVAL8, HIGH);
} else {
digitalWrite(LEDVAL8, LOW);
}
if (number / 4) {
number = number - 4 ;
digitalWrite(LEDVAL4, HIGH);
} else {
digitalWrite(LEDVAL4, LOW);
}
if (number / 2) {
number = number - 2 ;
digitalWrite(LEDVAL2, HIGH);
} else {
digitalWrite(LEDVAL2, LOW);
}
if (number / 1) {
number = number - 1 ;
digitalWrite(LEDVAL1, HIGH);
} else {
digitalWrite(LEDVAL1, LOW);
}
//digitalWrite(number, HIGH);
}
New Blog
After registering finzel.co.uk, I guess its time to start a blog. In all likeliness, this will end up like everyone elses blog, not updated, and full of comment SPAM. So enjoy what you get and don’t get upset when life gets to busy to update it.
Search
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Nov | ||||||
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||