Hello again,
I recently finished a brief report on five cloud computing technologies. The technologies I discussed were Prezi, Dropbox, Onedrive, Github and Mindmeister.
Here is a link to the report: Cloud Computing Technologies - Mark Grimes
Enjoy!
The Mark of Technology
Welcome to my technology blog discussing software news, middleware and things I've learned while programming.
Sunday, 22 November 2015
Wednesday, 18 November 2015
C# Video Tutorial Screencast: Pivots
Hello again,
I've created a video screen cast tutorial on pivots in C#. Once again, I welcome any feedback for future entries.
Pivot apps let you make a smooth and intuitive interface without much effort. Please enjoy!
I've created a video screen cast tutorial on pivots in C#. Once again, I welcome any feedback for future entries.
Tuesday, 17 November 2015
Video Game Visuals & Diminishing Returns
I wish to talk about diminishing returns in video game technology. As years progress, video games look better and better, but have will or will we ever reach a point where the changes made to technology have such an indistinguishable impact that they are simply not worth the effort.
First let us talk about the law of diminishing returns.
Now let us jump to 2001, when Metal Gear Solid 2 was released.
You can see a huge increase in graphical fidelity, this comes with the advent of the playstation 2 and better technology. Snake now has a mouth that moves, a fully featured mullet and a bandana that isn't stuck firmly to his head. The detail increase is easy to see.
Now to 2004's Metal Gear Solid 3.
The fidelity hasn't improved dramatically. The hair is better, the eyes look better, but this is a small incremental improvement on MGS2's technology. It is of course worth noting that this sequel did not see a console jump, with the game being made for the same platform as MGS2.
Let us jump to 2008's MGS4.
I have opted to go for a picture of young Snake, as its easier to draw a comparison.
Now there is an obvious jump in quality here, with the jump to the Playstation 4.
However, we don't get that same increase in fidelity that we saw from MGS1 to MGS2. The nose, the lips, the mouth, its all better looking, but its not the drastic improvement we saw in 2001.
The cloth and texture detail has improved, the lighting is more realistic but we had already established something that looked something like a face instead of a pixelated block back in 2001.
There are changes, but there are clear diminishing returns.
Now let us go to 2015's Metal Gear Solid V.
Metal Gear Solid V is a cross platform game, appearing on both Playstation 3 and 4 (and the xbox platforms). We see a clear jump in fidelity, but once again we are simply adding more detail to something we already had a vivid image of.
This is just one example. It is clear that diminishing returns are a concern in technology. This leads me to question how video games will be sold in the future. Not in terms of distribution, but in terms of marketing.
Think about it; The easiest way to sell a new game or a new console is by showing a flashy trailer that shows how much prettier it is than the last hot things that came out. As the changes get harder and harder to tell, one would think the focus must shift to other points. Perhaps the focus changes from making something that looks good, to something that has genuinely interesting features? Perhaps not.
I am of course only discussing the visual angle of diminishing returns in technology.
One could argue that visuals are becoming less relevant these days anyway.
There are a lot of successful mobile games that certainly do not hang their hat on graphics.
Popular pc games such as Dota 2, CSGO or World of Warcraft retain a high user base despite nothing having the highest graphical fidelity. In fact, its almost as if graphics matter less than they ever did with the advent of multiplayer gaming, free to play gaming and multiplayer gaming.
So are diminishing returns a reality? Of course. Do they matter? The short answer is:
It depends...
For further reading on the concepts go here:
http://www.britannica.com/topic/diminishing-returns
http://www.extremetech.com/gaming/167673-ps4-and-xbox-one-the-diminishing-returns-of-next-gen-console-graphics
http://www.giantbomb.com/diminishing-returns/3015-6560/
First let us talk about the law of diminishing returns.
"The law of diminishing returns, states that in a production process, as one input variable is increased, there will be a point at which the marginal per unit output will start to decrease, holding all other factors constant"This is most commonly associated with economics and production, however it is also applies to video games. You might be familiar with the picture below.
This shows the exponential changes in visual quality when polygon count is increased. Each time it is increased tenfold. The jump from 60 to 600 is drastic. To 6000 is also quite impressive.
However, the jump to 60000 is simply not as impressive. From 60 to 600 we see a nose added. From 600 to 6000 we see a mouth, more detailed clothes and something that resembles what we might actually expect to find on a human face No longer are necessary features we expect to find on a model being added. Instead we see a tidier, more detailed version of 6000.
So do the laws of diminishing returns affect video games? Yes.
Lets take a look at the Metal Gear Solid franchise. I'll start with Metal Gear Solid, released in 1998
As you can see, the graphical fidelity is rather primitive. Snake has a block head, his clothes textures look painted on and his hair is perfectly angular. The characters have permanently closed mouths and must move their head so the player knows who is talking.Now let us jump to 2001, when Metal Gear Solid 2 was released.
You can see a huge increase in graphical fidelity, this comes with the advent of the playstation 2 and better technology. Snake now has a mouth that moves, a fully featured mullet and a bandana that isn't stuck firmly to his head. The detail increase is easy to see.
Now to 2004's Metal Gear Solid 3.
The fidelity hasn't improved dramatically. The hair is better, the eyes look better, but this is a small incremental improvement on MGS2's technology. It is of course worth noting that this sequel did not see a console jump, with the game being made for the same platform as MGS2.
Let us jump to 2008's MGS4.
I have opted to go for a picture of young Snake, as its easier to draw a comparison.
Now there is an obvious jump in quality here, with the jump to the Playstation 4.
However, we don't get that same increase in fidelity that we saw from MGS1 to MGS2. The nose, the lips, the mouth, its all better looking, but its not the drastic improvement we saw in 2001.
The cloth and texture detail has improved, the lighting is more realistic but we had already established something that looked something like a face instead of a pixelated block back in 2001.
There are changes, but there are clear diminishing returns.
Now let us go to 2015's Metal Gear Solid V.
This is just one example. It is clear that diminishing returns are a concern in technology. This leads me to question how video games will be sold in the future. Not in terms of distribution, but in terms of marketing.
Think about it; The easiest way to sell a new game or a new console is by showing a flashy trailer that shows how much prettier it is than the last hot things that came out. As the changes get harder and harder to tell, one would think the focus must shift to other points. Perhaps the focus changes from making something that looks good, to something that has genuinely interesting features? Perhaps not.
I am of course only discussing the visual angle of diminishing returns in technology.
One could argue that visuals are becoming less relevant these days anyway.
There are a lot of successful mobile games that certainly do not hang their hat on graphics.
Popular pc games such as Dota 2, CSGO or World of Warcraft retain a high user base despite nothing having the highest graphical fidelity. In fact, its almost as if graphics matter less than they ever did with the advent of multiplayer gaming, free to play gaming and multiplayer gaming.
So are diminishing returns a reality? Of course. Do they matter? The short answer is:
It depends...
For further reading on the concepts go here:
http://www.britannica.com/topic/diminishing-returns
http://www.extremetech.com/gaming/167673-ps4-and-xbox-one-the-diminishing-returns-of-next-gen-console-graphics
http://www.giantbomb.com/diminishing-returns/3015-6560/
Java Video Tutorial Screencast
Greetings,
I have created a video screencast tutorial on ArrayLists in java. Hopefully you can use this in tandum with my previous posts and learn a little more about their use in the language.
I welcome any feedback, as I think I will continue to make video blog posts of this ilk.
It allows me to display features without having to go through the arduous process of capturing multiple static images.
I have created a video screencast tutorial on ArrayLists in java. Hopefully you can use this in tandum with my previous posts and learn a little more about their use in the language.
It allows me to display features without having to go through the arduous process of capturing multiple static images.
Thursday, 12 November 2015
Java: Hash Table
Hashtables are interesting things.
Tutorials Point puts it best
A hashtable can be a solution if you have two pieces of data that are linked. Perhaps you need a zip code for a street, or you want to keep a count on multiple peoples balances.
A brief example
This results in the following output:
Hurray! We now know that John owes us 350.99 of something. Hash tables can even be linked to each other. So you could have a hash table that stores names, numbers and addresses by linking to three different hash tables. Perhaps I will return to this in future posts, showing it more in depth.
If you want to know more about hashtables. Please consult some of these links:
http://www.tutorialspoint.com/java/java_hashtable_class.htm
https://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html
Thank you.
Tutorials Point puts it best
"Like Hashtable stores key/value pairs in a hash table. When using a Hashtable, you specify an object that is used as a key, and the value that you want linked to that key. The key is then hashed, and the resulting hash code is used as the index at which the value is stored within the table."
A hashtable can be a solution if you have two pieces of data that are linked. Perhaps you need a zip code for a street, or you want to keep a count on multiple peoples balances.
A brief example
Alright lets break this down.
Hashtable <String,Double> myTable = new Hashtable();
myTable.put("John Doe", 350.99);
myTable.put("Ralph Wiggum", 55.88);
myTable.put("Jim Jimson", 30.99);
System.out.println(myTable.get("John Doe"));
First we have the declaration. We have declared that this hash table accepts strings and Doubles, not primitive doubles, but the wrapper class.Hashtable <String,Double> myTable = new Hashtable();
Using the .put() method, we can fill up the hash table with various names and numbers. This is all very well and good, but what can we do with it? Well, if you only have somebodies name, and want to know how much money they owe you, assuming that is what we are storing.
myTable.put("John Doe", 350.99);
myTable.put("Ralph Wiggum", 55.88);
myTable.put("Jim Jimson", 30.99);
System.out.println(myTable.get("John Doe"));
This results in the following output:
Hurray! We now know that John owes us 350.99 of something. Hash tables can even be linked to each other. So you could have a hash table that stores names, numbers and addresses by linking to three different hash tables. Perhaps I will return to this in future posts, showing it more in depth.
If you want to know more about hashtables. Please consult some of these links:
http://www.tutorialspoint.com/java/java_hashtable_class.htm
https://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html
Thank you.
C# Strings in a Resource File
Today, I'm going to show you how to fill up string properties through a resource file or ".resw", as opposed to filling the string's content in the XAML or .cs.
Why would you do this? Well the most obvious use case is for translation purposes. Using multiple resource files, you can have one file for English, one for Spanish and point to the correct string in the correct file. This ensures your app can achieve that much longed for complete global saturation.
To add a resource file. Right click on your solution, click add new item. Then choose a .resw file.
Now we have given an identifier that our Resource file recognises.
Try running the code. You should now see that it fills the text block with the content in our resource file. This is because we called it "tbOne.Text".
That is just a brief introduction. If you wish to know more, please feel to read more here.
https://msdn.microsoft.com/en-us/library/bb613571%28v=vs.110%29.aspx
Why would you do this? Well the most obvious use case is for translation purposes. Using multiple resource files, you can have one file for English, one for Spanish and point to the correct string in the correct file. This ensures your app can achieve that much longed for complete global saturation.
To add a resource file. Right click on your solution, click add new item. Then choose a .resw file.
Now we go into our resource file and set up our strings. It will be in the solution explorer. So open it up. On the left, you'll see a name, in the center you see a value. We'll fill these up with relevant details.
Now lets call this first one "tbOne.Text". This will fill up a text block we'll create afterwards.
Now lets create a text block in the XAML and link it back.This probably looks familiar. However, we'll need to add what is known as a uid or a unique identifier. Then we'll be able to link the resource file to the Text Block in our XAML code.<TextBlock x:Name="textBlock"/>
<TextBlock x:Name="textBlock" x:Uid="tbOne"/>
Now we have given an identifier that our Resource file recognises.
Try running the code. You should now see that it fills the text block with the content in our resource file. This is because we called it "tbOne.Text".
That is just a brief introduction. If you wish to know more, please feel to read more here.
https://msdn.microsoft.com/en-us/library/bb613571%28v=vs.110%29.aspx
Tuesday, 3 November 2015
Tutorial: Visual C#, Universal Windows 10 app - Pivot
First Question: What is pivot?
Pivot allows you to easily move between pages in your app. This is very intuitive when it comes to touch screen and mobile apps.
Windows 10 Universal Apps have made implementing pivot a little less painful than it was in Windows 8.1.
No longer must you create a pivot app, a Universal App can implement one too.
So how do you do it?
Step 1:
Create a blank Windows 10 App in Visual C#.
You will now see a template that sets up the basic pivot table.
Step 3: Fill it up
The header represents the name that will display along the top of your app. It defaults to "PivotItem 0".
If you wish to add more pages, simply add more pivot items using the code:
Here is an example of some code in a pivot item.
Pivot allows you to easily move between pages in your app. This is very intuitive when it comes to touch screen and mobile apps.
Windows 10 Universal Apps have made implementing pivot a little less painful than it was in Windows 8.1.
No longer must you create a pivot app, a Universal App can implement one too.
So how do you do it?
Step 1:
Create a blank Windows 10 App in Visual C#.
Step 2: Open your MainPage.xaml.
From here go to the tool box (it should be on the left side of Visual Studio). You might have to look under "common XAML controls". Scroll through until you find "pivot". You can drag across onto your app.
Step 3: Fill it up
The header represents the name that will display along the top of your app. It defaults to "PivotItem 0".
If you wish to add more pages, simply add more pivot items using the code:
<pivotItem> </pivotItem>Each one of these will act as its own individual page.
Here is an example of some code in a pivot item.
I've set up two rows, added in an image of a cat, and added in a text block. The picture goes on the top row, the text goes below. Not very fancy, but it will get the job done. I've gone and coded something similar for the other pages, with a dog and a monkey. Here is the visual result of all this fun.
That is the core of it. Surprisingly easy to implement. Perhaps useful if you wanted to allow a user to move between a main page and say, settings or have an information app with different entries. Perhaps, various entries on different types of dogs, or spoon varieties. Whatever interests you the most.
I'll leave it at that for now, hopefully this has given you an idea on how to implement pivot in C#.
Subscribe to:
Posts (Atom)