Wednesday, August 29, 2012

Compression

my screen shot of  my table 
Image compression
Compression is a process used in most digital information storage. It takes the original file and it finds any consistencies, then it replaces these consistencies with a singular representation, if its smaller than the data its compressing as well as the space it requires for a key, the compression only is proceeded if this particular piece of data is repeated more than once. After compression ( to a particular level) there will be no large consistencies within the data and the data will not be usable in most ways. For the data to be used once again maybe in a different place, it will need to be decompressed; this replaces all of the singular  representation assigned with the keys, back to the original key it is representing.

Comparing Image consistencies
As in the table, I took results from two black and white phtots; The consistent one was a grid of squares that were duplicated from each other, the inconsistent image, was the same as the first one but it has black scribling on it so the photo from a viewing prospective was far less consistent. I did this to see if visable consistencies, has a connection to the images code representaions, therefore the affectiveness of compression. Looking at my table we see that there is a massive difference between the original file sizes of ((61-6)/61)*100= 90%. The only explanation within my knowledge for why this would be, is because the original image format PNG already compresses the image, if so, this means that the visual consistency does affect the effectiveness of compression. But the original of these images once compressed gave an unexpected result; the compressing enlarged both of the files with all quality settings. From this I can conclude that compressing a png made in paint, (with a resonable amount of use of the copy tool) isn't any better compressed as a jpeg; as the image quality doesn't seem to change much between all of the compression settings. This suggests that the png format accounts for the use of the copying automatically compressing in it's own way, but this would have to have no need for decompressing, or, popular programs would need integrated support for png image use. I still have the feeling that the consistency has an affect on compressing into jpeg s; as the bits per pixel goes from a difference of (7.36-3.17)=4.19 at the lowest amount of compression to (2.94-2.45)=0.42 at the highest compression. This tells us that the consistency doesn't matter at the lowest quality but it does at the highest, this could be because a distinct mile stone in compressing, where an amount of detail is lost, so the larger consistencies don't matter anymore. I suspect this is also the case with the colourfull image as it was created in paint, the detail about the colours may use a system that becomes irrelevent at the lowest jpeg compression setting.

Photo (slightly distorted)  This image is a more suited to comparing the affects of compression, without the unexpected complications of a Microsoft paint, constructed image. The original photo this time is reduced by 90% with the lowest quality setting and 41% with the highest, this is satisfactory; with multiple similar images this would save a lot of speed and space. But with the difference in the pixel per bits of 5.46 there comes a sacrifice, quality. Below are the two examples of the variation of the compression and there is a noticeable difference looking closer. The first image is the high quality so it is about the same as the original but using 41% less space.The second photo is compressed to a higher level; this shows through in the sharpness of the image rather that the detail in the colour. 

Photo I took with the tablet
HQ
Photo I took with the tablet
LQ






















    


Thursday, August 16, 2012

Error control-Parity



Parity
The following is a demonstration example of error detection 




The first photo shows the random 25 cards in a grid
The second photo shows the grid with redundant bits added
The final photo shows the grid with an error added

With a partner, unfamiliar with the trick, get them to set up the cards in a grid 5 by 5 using the double sided cards (black and white, representing bits of zero and one ). Make sure they have a random order of cards, ie not all one colour. Then complete the parity grid by adding  redundant bits for error detection (sixth row to the top and side of the grid); but in doing so complete each sixth row and column so there is an even number of black and white. Then ask your partner to tamper with the grid, you will then be able to detect any errors with the check equation (in each row bits are even). This is because if any of the cards change then the number of each colour in that row, will no-longer be even. This will then show if there is a  need for error correction. This technique is used in all kinds of computer applications we use everyday, for example if you try to open an Excel file in word, the program will have a reconisation system incorporated into the saved data to distinguish between Microsoft's other data types. This system will also most likely test to see if the file is damaged too. This could be achieved in a similar way to the demonstration with the parity cards, the program could add bits too the end of the text using a formula, like in the demonstration but more complex; this will communicate the necessary information to the program to give the user useful feed back rather than confusing them with an unrecognizable data representation.    

Sunday, August 12, 2012

Usability heuristics

Usability heuristics 
Four Basic Task (in estimated order of happening)

  1. Unlock device
  2. Turn on wi-fi
  3. Change brightness
  4. End running
 Nelsons heuristics

  • Feedback response time; between pushing the power button and the screen showing feedback there is a small delay, this delay being about 20-40 milliseconds. The variation of this delay is altered depending on the amount of applications running and if its on start-up. Viability of user status; I believe  the tablet is correct not showing a loading sequence during the delay, because this would in most probability increase the delay itself, and the delay is at the size where, the delay is only noticeable when its at the highest of its delay times variation. Aesthetic and minimalistic of design; once the lock screen has appeared, the lock screen is simple, as to start with there is only a circle with a padlock in the centre. Consistency and standards; By using the symbol of a padlock, the user will subconsciously recognize the meaning of locked, as the padlock in the picture is complete. When the user pressed the circle with their finger, a larger circle appears with a symbol of an open padlock, at this time a gentile wave dissipates towards the open padlock. The larger circle appearing around the smaller one, and the open padlock is complying with consistency. The wave gesturing towards the open padlock, and the logic that touching gives a response, is a very minimalistic way of providing instructions, this is also applied by; when the user experiments with touching the screen to unlock the tablet, if their finger moves by the open padlock, the circle has an attraction to the open padlock, to prevent the error of the user continuing to move their finger away from the open padlock incorrectly. From this experimenting, the user will discover that releasing their finger off the circle, as it is on the open padlock, will unlock the tablet. As the tablet is successfully unlocked the tablet makes a satisfying click to notify their task was successful. User freedom of control; the user may later discover that there are multiple options for unlocking the device,  this makes for good user flexibility.                 

  • The test for the following evaluation was completed after test one. Note: on the first boot the user is showed how to find and use simple tasks, including the location of the menu to turn the wi-fi on or off. When the user clicks the button to bring up the summirsed settings menu, sometimes the user will miss the button.( if they are in a rush ). The fact that windows also brings up more information when the clock is clicked, takes advantage of consistency standards; as the users are more likely to try something that has worked before with other electronic technology. Then after pressing the clock as shown in the first picture, the tablet responds with the menu shown in the second picture; but at this point if the user forgets the tablets self tutorial, there is no indication that this menu leads to change the wi-fi settings, as it doesn't relate to anything else the user may know already, apart from the use of the tablet of the device itself. But this half way menu complies with the minimalistic of design, to not over complicate use; as the user won't want to see the menu (as shown in the third picture) if they only want to see the date, battery percentage, or internet status. But because this task is to turn the wi-fi on, the user will proceed by pressing the status box to reveal the summarised setting control menu. Then to turn the wi-fi on the user slides the switch in the line with the word wi-fi and a symbol. The mix of the contrast of the slant trigger,and the resemblance of a traditional physical switch, increases users level of understanding and familiarity to turn the wi-on. As does the symbol that is internationally recognized as wireless transmission. But, the problem with the setup is that, if you touch within the line for wi-fi but not the switch, a more complex and detailed menu for wi-fi that takes over the whole screen, rather then the summarised menu that only covers the bottem corner of the screen.                                                                                                    
8/14/2012

My suggestions;                                                                                                                                            I think there is room for improvement within the use of turnning on the tablets wi-fi, with the summarised menu. First of all, there is little suggestion of the summarised menu at the satus menu. There is a small icon that Android uses to represent settings, but to a user new to the tablet, they will not recognise it as; click this box again for settings. I think the icon should be something that is more universal, the current icon looks like the icon for a sound editing app. Instead, it could be in the theme of mechanical cogs or tools, as this is more likely to be recognised, also this could relate with the mechanical switch symbolization. I would also suggest that the status box includes a very gentle pulsating glow, to gesture to the user to click the box while also adding to the consistency of gestures, like the wave in the unlocking of the screen, this won't cause user irritation, as the pulsing would only last the short amount of time that it takes to read a date, or click to change settings.To increase the change of the user pressing the clock button; if they increased the size of the clock it would look out of place so they would have to increase the size of the tool bar, and that wouldn't be an efficient use of the screen. But, the developers could use a gesture like swiping upwards from the tool bar at any point, but this would be bad for new users, as they would forget the gesture more easierly compared with the thought, "its like with my computer at home". To avoid the annoyance of bringing up an unwanted menu when trying to slide the wi-fi switch, I would suggest increasing the size of the switch itself, this won't affect the heuristics as there is room for the switches to increase in size.


  • To change the brightness of the tablets display the setting is in the same place as the wi-fi switch, so I don't need to re analyse the process of getting to the summarised settings again. The brightness slider is in the third photo. The fact that the method of adjusting the brightness is similar to a physical potentiominter slider applies consistency with the real world tools and symbols for interface control. The symbol of a sun is internationally used for brightness for most electronics, and as the sun is a light source, this makes for a good chance of the user recognizing the slider as a brightness controller.

  • The first problem to ending tasks is finding the correct menu which is a matter of trial and error, if the user doesn't remember the system tutorial. But, if the user knows they can get to the menu from the home screen, they will be likely to discover the menu by association of the symbol. From knowing the areo stack function in windows, the user will get the idea the application icon is in relation to choosing and managing running applications, this is shown in the image below. Once the user clicks this button the running applications will pop up on one side of the screen. I find the representaion of the running applications to be highly effective; as this isn't only an icon but a screen shoot of the last time it was in use, and the text name too. The screen applies the heuristic recognition rather than recall, as the user will recognize the program as they last saw it, over the icon or name in most cases. But the multiple forms of representation in one, doesn't seem to have an affect on the over all minimalism of design. But a big problem for new users is that when your in the menu, its easy to assume you click on the picture to go to the app, but it isn't easy to fiuger out  to end applications, you must slide them to the side.                                        My Suggestions                                                                                                                                                                             I think that once your in the task menu there should be some sign or gesture to indecate how to end a chosen application. One way this could be achieved is to add something like the slant on the switches for the summarised settings control, this would add to the consistency of the tablets interface and improve the ease of use. But this slant would have to be carefully designed so that it doesn't affect; the user recognising the screenshot, over complicate the menu or be to unsimilar to the settings switches. 




Showing the running tasks menu button to the right
  http://files.tested.com/uploads/0/1507/32719-menu.png 
The running applications menu
The ending of an application 

Friday, August 10, 2012

Text Representation

Text Representation
As previously discussed the value calculated for the available storage value for the SD card is most likely  displayed from a string (and an integer) as it is accompanied by text; specifically "Available" and "MB" for the purposes of this discussion we will use the value of 4.79MB as the available storage. The following is the Assci representation for the string showing the available storage value for the SD card;
A=01000001
v=01110110
a=01100001
i=01101001
l=01101100
a=01100001
b=01100010
l=01101100
e=01100101
↵                    =00001010
4=00110100
.=00101110
7=00110111
9=00111001
M= 01001101
B  =           01000010

The tablet uses Unicode as its base text representation system; as it is comparable will most languages, this of corce means its backwards compatable with ASCI code; as the first 256 characters of Uni code are all of the ASCII code characters with the same representation in binary.

ASCII
This is a representation system for all characters in the English language with 128 individual character possibilities; containing all the letters including the capital versions ECT. Each character is stored using 7 bits(one byte),but this is can rounded to one byte this is why all of the binary representation above have an unused zero. ASCII isn't compatible with any other languages. For example an device only capable with reading ASCII can't read other languages, but a device using the more universal data type Unicode can read ASCII. For example in the code to display simplified text on light emitting diode segments with something similar to the Atmega or tiny microprocessor series, would have to use ASCII singularly due to low storage capabilities. 

Uni code
This is a representation system for all characters in all languages. This uses 16 bit for each character and uses two bytes. This system can represent up to 65536 characters. Unicode is backwards compatible with the ASCII system, the first 256 of the characters are the same. But the downside to this is that the Unicode system requires double the store comparability to ASCII code. Uni code is used all the large majority of all electronic information devices; simply as these days we have the capabilities to do so.  

For an example of the multi-language base of Unicode here is the multiple representations for Banana; 

English           Chinese             uni                                                  Binary 
Bannana        香蕉             香蕉 (for -> 香蕉 )      1001100110011001 1000010101001001 (for -> 香蕉 )  


Number Representation

Data Representation 
The tablet has a whole internal storage value of 32GB, however only 25.31GB's are available to the user.This is because of a mix of two factors; The actual storage value is rounded up to the nearest multiple of two, the usual real storage value of a flash storage disk is about 93 % of the advertisement. This means that the tablet real only has the capability of storing 32*.93 = 29.76 gigabytes. The other contributing factor is the system data of the operating system,which may conspire of around 4.45GB's. Leaving the available storage of 25.31GB's or 2531 megabytes because 1000 megabytes go into one gigabyte, or this can be represented as 1073741824*25.31= 2717640000 bytes this contains2717640000*8 bits per byte = 21741124450 bits.

For the sake of simplicity, when discussing the use of storage, I will only use storage of applications using the average storage the require on the tablet; The tablet is using 213MB's of storage for all it's applications and it has 44 applications on it, so on average each app uses 213/44 4.84MB's of storage. Using this I can calculate a estimation of how many apps the tablet can store; 2531/4.84=522 applications in total. But in saying this I realize that this number can vary by a lot; as tablet applications can consist from 4KB(0.000976563*4 = 0.00390625MB's) up to 20MB's. Note the number of applications I have now is smaller than usual, as I'm rebuilding my app base from a system wide with an update. But at this point I'm using 44/522= 8.43% of my application storage possibilities.

The applications are stored in a flash memory disk using the binary representation system; physically this stores the bits as the logic o or 1 as a high or a low witch is 10 volts for 1 and 0 for 0 ( its also possible the tablets internal circuitry is using logic level converter or another level entirely for storage). The flash memory stores the bits with two transistors (a transistor is a semiconductor that only lets current flow if there is a secondary current applied) separated by an oxide layer, this oxide layer traps electrons to maintain a logic level without external flow(power). The state of each transistor set (each bit) is changed by the state of the gates of the transistor by varying the number of trapped electrons, the logic values are distinguished by a electron-counter if there are less than half of the set amount its a 0, if there's more its 1.

Number storage example 

The tablet displays a available storage value for the SD card that may be inserted, with the possible value size of 0-6400(MB). This is under the assumption my device has the capability of displaying the available storage even if there is no storage left, also that the SDHC storage technology is limited to 64(specifically) for my device. This number is displayed when navigating through the system settings. It is likely that this number is stored in the binary format within my device because of its vast range of possible values(6401); this would need 13 bits to store the identification of the four digits, this would use up to 2bytes of storage in the devices random access memory; because that is the max amount of bytes that the number would ever need. It is likely that my device only temporarily stores the value, because it would have to be recalculated every time its viewed. An example of the binary representation could be 1100100000000 for 6400. Alternative storage; it could be stored using Assci or Unicode instead of and integer; but in saying this within the code its probable that its stored as an integer and a string; as it will need to calculate the value in an integer data type but also converted it to display it, but more on this later. 

information source on actual available storage on flash memory;
 http://forums.ilounge.com/ipod-touch/222361-how-many-actual-gigs-there-32gb.html









Device specifications

My device is the Android Tablet; Lenovo IdeaPad K1
I have used this tablet daily for over half a year.

Operating system; Android 4.0.3 (rooted with GAPS)
Rom source; http://forums.lenovo.com/t5/IdeaPad-IdeaTab-Slate-Tablets/ROM-ICS-Ideapad-K1-Official-Release/td-p/810399
Dimentions; 264 x 188 x 13 mm
Weight; 771grams
Screen; 10.10inch, capasitive 10 touch multitouch, 1280x800 resolution
Battery;7400mah
Processor; Nividia tegra T20, dual core 1Ghz
system memory; 1000MB's of ram
Built in storage; 32GB
Storage expantion; microSDHC (64GB max)
Cameras; rear 5megapixels, front 2 megapixels
Positioning; GPS
Bluetooth; 2.1
Wi-Fi; 802.11 b,g,n
USB; 2.0
Video out; micro HDMI(type D)

Specs source; http://www.gsmarena.com/lenovo_ideapad_k1-4443.php


Tuesday, August 7, 2012

Real world example of error detection

ISBN
This is a international system used to identify books by a 10 or 13 digit number (including redundant bit). This system adds a  redundant bit  to the end of each of the code that is calculated using an specifically designed formula. This error checking is very similar to the parity cards both adding bits and using a formula. But with some errors there program used will have to check things apart from the check number, like there would have to be a catch for an invalid input of letters or to many/little letters

Error detection is used with the ISBN system because when someone is identifying details about a book in the ISBN data base, if they enter the number wrong and there is no error detection, they may think the data is missing. But because there is error detection, the program used will tell the user the number they entered may be wrong, so they could check and fix the number, or confirm the data is missing, or the book is fake. The program will determine if the check digit is correct, by calculating what the thirteenth digit should be,(using the formula) and what it actually is.


In the picture above, is me entering a random ISBN number into a simple program I made, to calculate what the check digit should be. In the case shown I entered 1436746842568, and for this code the check number should be 8, as its the 13th digit but it turned out to be 4, so in this example the error detection system was effective. I then did this another 29 times and 5 of the randomly chosen numbers matched their check number, this means, they prove that, the error checking system ISBN uses isn't perfect. So it is possible that a real books number could be entered slightly incorrect, and the programme would get a false result. The probability from the sample size of 30 is 1/6, so one in six is predicted to be incorrectly accepted by the error check system. But to comment on the probability of 1/6, I would have to say it is higher than I expected, and that is likely that, in a retest the number would have a considerable variation.

Common errors when typing out ISBN numbers, a lot of the time the user will make mistakes; this could be simple things like double tapping a letter by accident, pressing the number one above or below the one you are meaning to press, pressing a letter or other syntax. But these errors will be effectively detected with the check digit. In my opinion there aren't any ISBN number errors, that can't consistently be undetected.