Sunday, 25 August 2019

Intrusion Detection

Okay, we have already looked at Authentication and access control, namely where you are proving to each other who you say you are, however here we will look at authorisation, and intrusion detection - namely once you have access what can you do, and how to detect whether somebody, or something, who shouldn't have access is attempting to gain access.

So, one of the best ways to deal with authorisation is to have a spreadsheet, namely a list of names, and a list of applications, and in the boxes that intersect, whether they can read, write, or execute the file. However, this spreadsheet can become particularly large when we are dealing with something the size of, say, McDonalds, or maybe even a bank like JP Morgan.

Actually, this matrix could form a part of a database, but the thing is that before we allow somebody to access something we need to check the matrix. Say Bob accesses the system, and wants to change the accounting data. Well, we go to the column for the data, and the row for Bob, and notice that he only has read authority. As such, we basically disable any function that will enable him to write, or change, the data.

Well, we could use what are termed access control lists:

You also have the functions working in the opposite direction, with regards to capabilities. This helps when the users manage their own data, and the protection is data orientated. Further, it is easy to change the rights to a resource. With capabilities, it is easier to delegate, and easier to add and remove users, but can be pretty complicated to implement.

Inference Control

Let us consider the following question: what was the average salary of a female minister on the Abbott Government's front bench? Well, the answer is, say, $150,000.

How many women sat on the Abbott Government's front bench? Well, there is a pretty easy answer to that one, namely Julie Bishop, and that is it.

Well, that is probably a bad example because I believe that all government ministers get paid the same amount, however you can see what is happening here. We are asking for an average, but the answer that we are getting isn't an average because, well, there is only one candidate that fulls the criteria. This could be the same when it comes to asking for the average household income of a town in which there is only one household - it gives away information, in a round-a-bout way, that should actually be private (not that the salary of government ministers are private).

So, how do we solve this quandary, particularly when it comes to research? Well, one method involves not releasing information if K% or more is contributed to by less than N respondents. This is referred to as the K dominance rule. The problem is that robust control might not be sufficient, or even work, so we reach the position where weak inference control and channel protect is probably better than none, namely because it at least prevents some leaking.

However, is weak cryptography better than no cryptography? Probably not, because if you are hiding something, and it is easy to crack the code, then honestly, you might as well place it up on a billboard for everybody to see, because that is probably where it is going to end up anyway. In fact, sometimes having no encryption is better because if something is not encrypted, then nobody will consider it important - such as an open front door probably signals to a potential burgler that somebody is home, so they will go somewhere else.

I call this hiding in plain sight.

Let us look at a typical security network:

When it comes to firewalls there is no actual strict terminology. However what it does is that it provides access control to the network, and decides what to let in, and what can go out. Three common types are the packet filter, which works at the network layer, the stateful packet filter which works at the transport layer, and the application proxy, which works at the application layer (take a look at the OSI model for references to them).

The packet filter can filter out packets based on a number of factors, including the source and destination IP address, the source and destination port, as well as flag bits, and also ingress and egress (that is whether it is going in, or out). Like the access control, the functions of the packet filter can also work on a matrix, as outlined below, which is designed to limit traffic to web browsing:

There is also this concept of the DMZ, which is a military term known as the demilitarized zone. In military parlance this is an area where no military activity is supposed to occur - the most famous one being the border of North and South Korea. One of the most common uses of a DMZ is for public wifi. Starbucks, for instance, has free wifi for people who order coffee there. Basically what it does is that it partitions off a part of the network to allow a larger access than what the network would normally allow. In fact, when you try to connect to the Starbuck's wifi, you will probably note that they have two channels, one for the public, and another, more secure one, for the staff.

Preventing Intrusion

This is the more traditional form of computer security. Passwords, access control, and firewalls are all a form of intrusion prevention, as well as virus scanners. Viruses are an interesting thing because many of them are designed to circumvent such protocols, such as giving an attacker direct access to one's system. For instance, they might actually open a port that the intruder can use to completely bypass any form of password protection.

However, despite all of our attempts to keep intruders out, sometimes they do get in, so we also need systems that will detect specific activity, or attacks in process. While the traditional hacker is usually gaining access from the outside, sometimes you might have somebody inside the company accessing something that they aren't supposed to access. For instance, in one of my former jobs, if you accessed a file that you were not supposed to access, our compliance department would actually be notified.

Accessing confidential information may not be the only thing because they might also launch attacks, whether they be well known, little known, or even new. Actually, it is probably the amateurs that launch well known attacks, because this whole concept of computer security is like an arms race - every time we find a way to kill a virus, new virus are being developed to counteract that. Actually, it is sort of like biological viruses, that develop immunities to well known drugs.

Signature Detection

Intrustion detection comes down to signatures, which are generally attacks, and anomolies, which is suspicious behaviour. They can also be monitored on a host, or on a network as a whole. For instance, failed log in attempts may be a signature of an attempt to crack a password. As such, an algorithm of so many failed attempts in a certain amount of time will trigger an alert that there is an attack. My bank has something along the lines of five failed attempts, and after the fifth attempt the account is locked. My phone has a similar detection system, except instead on locking me out of my phone, it will institute a delay between attempts, that gradually gets larger and larger the more failed attempts that occur.

Obviously we want to avoid false alarms, such as me forgetting my password, so they generally incorporate a certain number of tries before implementing the intrusion prevention mechanism. Mind you, an attacker might know about this, and if the mechanism is triggered after five attempts, then an attacker might only do four, and then wait. While it isn't perfect, it will actually slow the attacker down, and make brute force attacks even more useless.

The advantages of this approach is that it is simple, it can detect known attacks, it can know which type of attack is occurring at the time of the attack, and it is efficient, though only if there is a reasonable number of signatures. The catch is that it only works on known attacks, the signature files need to be kept up to date, and the number of signatures can become inordinately large.

Anomoly Based

So, say we have Moss, who regularly uses the work system. Now, we have a pattern for how he accesses and uses files - he opens, reads, closes, opens, opens, reads, close. Now, we have a number of pairings that we can work with, such as (open, read), (read, close), (close, open). So, what we can do is we can monitors these three commands, and since we know the common pairs, we can keep an eye on abnormalities. For instance, if there is a spate of (open,open), which rarely happens, then this will trigger an anomaly warning, meaning that maybe there is an intruder using Moss' account.
This is actually a pretty basic one, and we could increase the chance of picking up an anomaly by including more commands, increase the number of commands to beyond two, and even consider the frequency of each of the pairs. Another way of detecting anomalies is the frequency, and length of time, that a file is accessed. Consider below:

On the left we have the average recording of the files being accessed, and on the right we have the current recording of the access over, say, the day. So, is there an anomaly? Well, time for some more maths.

S = (H0 - A0)2 + (H1 - A1)2 + (H2 - A2)2 + (H3 - A3)2

S =(0.1 - 0.1)2 + (0.4 - 0.4)2 + (0.4 - 0.3)2 + (0.1 - 0.2)2
S= (0)2 + (0)2 + (0.1)2 + (-0.1)2
S = 0.01 + 0.01 = 0.02.

We basically consider that an anomaly that is less than 0.1 to be normal, and since we have come out with 0.02 then we consider this to be a normal variation.

Since there are going to be variations, and changes in the usage, we do need to regularly update them, and we do so with this formula: Hi = 0.2*Ai + 0.8*Hi

In this case, it will be 0.2*0.3 + 0.8*0.4 = 0.06 + 0.32 = 0.38, which then becomes the new H2. We also do the same for H3 to generate the new H3.

So, with this method the averages regularly update to reflect changes in behaviour, and to also reduce the number of false alarms.

As for attacks, well, we will have one where the intruder attacks all of the hosts in an attempt to locate the weakest link, and then access the network through the weakest link:

And finally, we have the attack where a victim is attacked from many sectors at once.

And so, this was computer security. I no doubt will be coming back to this topic again in the future, but I shall be leaving it here now. Sure, this may have seemed like a hodge podge of stuff, but that is basically our lecture notes.

Creative Commons License

Intrusion Detection by David Alfred Sarkies is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. This license only applies to the text and any image that is within the public domain. Any images or videos that are the subject of copyright are not covered by this license. Use of these images are for illustrative purposes only are are not intended to assert ownership. If you wish to use this work commercially please feel free to contact me

Saturday, 17 August 2019

The MoMA comes to Melbourne

New York is probably one of the very few places that I really really want to go to in the United States (and I'd say that Vegas is the other, but come to think of it, Vegas would probably be one of those places that I'd drive down the strip once, have a beer at the casino, and then head off to go and see the Hoover Dam). However, due to complications having a slice of New York, in the form the the Museum of Modern Art (otherwise known as the MoMA) coming to Melbourne does temper that urge somewhat, even if it is the case that most of the works here are basically what one would consider Modern Art.

Yet, when it comes to art, it really feels as if New York is pretty much the centre of the American scene. Sure, Hollywood is where all of the movies are made, and some have even suggested that Los Angeles is probably America's cultural capital, but considering that the likes of the Broadway Musical, Andy Warhol, and many others, have come out of New York, I am almost inclined to feel that this city is not only America's cultural heart, but gives the nation more of a character beyond hamburgers, Chevy's and stock market crashes.

Arcadia and Metroplis

And so, our first encounter when we walked in through the entrance was a gallery in which we find, not American artists, but French, namely those of Gaugin, Van Gogh, and Seurat. What we encounter are the post-impressionists, as we start our trek at the beginning of the 20th Century. The world has changed, yet there is a struggle with the artists, between in idyllic landscapes of the past, and the massive metropolises of the future. At this time, though, the British Empire still rules the world as the sole superpower, yet little does anybody know, that by the end of the century, that position will move to the other side of the Atlantic.

Mind you, and this is something that I have mentioned previously, and that there was one particular technological invention that changed everything: the camera. In fact, the camera was one of those majorly disruptive developments of the time, literally putting portrait painters out of business. Mind you, the cameras of the time were pretty shocking, but what they did was that they forced artists to experiment and to look for different means challenging their audience. Notice, though, how with the impressionists, the focus was very much on colour, which ironically was something that the camera couldn't produce at the time.

This painting, called Evening at Honfluer, is by the artist Georges Seurat. He was the guy that invented the style known as pointilism, which is basically creating an image by using thousands upon thousands of little dots. It is quite interesting to look at, and is actually supposed to capture a scientific idea at the time, which believed that images were generated by thousands upon thousands of beams of life penetrating the eye. The other reason behind this painting is that Seurat had been cooped up in his apartment for quite a while, and was really looking for an opportunity to get outside.

It turns out that Van Gogh painted more than just one painting of the postie while he was in Arles unsuccessfully attempting to establish an artists' commune (of which only one artist, Paul Gaugin, even bothered to come and check out). Actually, the name of the postie is Joseph Roulin, and this particular painting was once owned by Norman Rockefeller, among many, many others, but was gifted to the MoMA in 1989. However, I have already written quite a few things on Van Gogh, so I guess I'll leave it at that and move on to somebody else.

These two posters are probably best done together, and not just because they were produced by the same artist (Jules Cheret, though that is probably quite obvious). These posters were produced using lithographic techniques, which basically means stone prints, as opposed to woodcuts, where the stamps are made of wood. The style was a new technique, particularly for posters, which has certainly been borrowed from the Impressionist movement, and here we are seeing them being used in the form of advertisements. The first, Fuller, is of the American cabaret dancer Loie Fuller, and the second being an advertisement for the Theatrophone, a form of telephone that would pipe music down to the listener - an early form of radio.

In a way, this is a theme that we begin to see through this exhibition, and that is that art does not necessarily exist on the walls of galleries and homes, but it exists everywhere, in the streets, on the bill posters, and even as the designs of your lounge suite, or the album cover. However, we are getting ahead of ourselves here, and instead we will slowly move ahead.

We now move from the Impressionists to the Expressionists, this one being painted by Ernst Ludwig Kirchner, who formed the collective known as Die Brücke (or the bridge). This painting is of the fashionable Königstrasse in Dresden. Notice the difference between the paintings of the impressionists and the expressionists - the painting is much harder, the colours much more solid, and also with a darker tone. This in a way emphasises the violence of the city scenes, as people push past each other for reasons only known to them. Yet also consider the faces, which are more like masks, also suggesting that this world is a nameless, faceless, and characterless work.

We can certainly see that the art of the modern era is starting to take on different tones. In this painting by Andre Derain, called Bathers, there has been some borrowing from non-European cultures, particularly with the mask like facial features. In one sense this painting is rather abstract, but not so abstract that we start to loose all features of the subjects, three women bathing in a river. Yet, the surroundings aren't distinct, instead focusing on the style, and the nature of the event.

This is another painting by Dauvin, this one called fishing boats. The style is known as Fauvism, which is nowhere near as well known as styles such as impressionism, or even cubism (thanks no doubt to Picasso). Notice how this painting seems to emphasise the bright colours, something that fishing boats in parts of Europe are well known for. Yet even with the colours, the shapes don't stand out as much - in fact they are quite vague and indistinct. This is a characteristic of such works at the time, which focus ever more on the colour, as the artists begin to move away from the realistic nature of the subjects of their works.

Machinery & the Modern World

The twentieth century could been seen as the century of the machine. Sure, machines have been with us for centuries, even if they were as simply as something like a wheel. However, in the twentieth century machines had not only taken a life of their own, but as begun the process of displacing us. The camera had displaced the painter, and film had displaced the theatre - it was a time where one had to adapt, or perish.

Thus, artists began to take up the challenge of competing with the machine, with artists such as Picasso, whose cubist paintings would take the three dimensional and compress it into the two. We also have artists who would take elements of the machine and create art around it, or even go as far as the legendary Marcel Duchamp, who would dare, and succeed, at taking an ordinary object and make the claim that this object was art. Of course. We even have architecture, even architecture of the modern home, which had transformed itself from a dirty hovel to a machine for living.

Guess what, this is Picasso, but if you are familiar with his work then you probably already know this. Yeah, this certainly doesn't look like what you would expect from him, but the thing is Picasso was an incredibly prolific artist, and while his most famous paintings are his cubist paintings, he did an awful lot more. In fact, even his doodles could garner quite a lot of money. Sticking with the theme though, this painting, which is cubist, exemplifies the disconnect that the new technological world was bringing about. The problem is that to be able to properly appreciate the painting, you need to look at it from the angle of the wall, because looking at it on a computer screen, well, it just looks like a muddy table.

This painting, by George Grosz, is called explosion, and it certainly looks like an explosion, and also goes to demonstrate the way art has changed at this time to capture raw emotion as opposed to just, well, capturing an image of a pretty landscape, or a person. Grosz fought for the Germans in World War I, but was discharged as being unfit to fight (which sort of says something because it wasn't easy to get out of the army back then). This painting brings about the destruction that was caused by the war, both physically and psychologically. In many ways the perspective of the painting changes based on how you look at it, but in all aspects it is about destruction, and a new type of destruction brought about by modern warfare.

This is an example of a style of painting known as futurism, and is painted by Giacomo Bella, and is called Paths of Movement. In this painting Bella is attempting to capture motion, and in particular the motion created by a bird known as a swift. Here it is hard to actually see the bird, as it flies across the canvas before our eyes. However, this painting was also inspired by photography of the movement of birds, which considering the time at which it was painted, was still in its infancy. Once again, we are seeing art move away from its traditional form, and in this instance, delving into the scientific world.

This piece, called Sun and Moon, is by the abstract artist Robert Delaney. In fact Delaney was an early adopter of the concept of abstract art, and the above is an example of this. The circle represents the universe, and the merging of the various colours represents the interplay not only between the sun and the moon, but also between the night and the day. Then again, the only reason I know this is because I read the plaque that happened to be placed under the painting. Basically, if it wasn't for that plaque I probably would have no idea what this actually meant, but then again that is probably because I'm a heathen

Okay, this may not be anywhere near as famous, or as gutsy, as Fountain, but this is another example of Duchamp's readymade, that is work of art that has been created out of prefabricated materials. Actually, this is slightly more because it is what he termed as an 'assisted readymade' namely because it is made out of a bicycle wheel and a kitchen stool. Basically it is a useless machine, which not only is it challenging the concept of art, something that he basically loved to do, but it is also challenging the concept of innovation, considering a lot of innovation is, well, useless. Then again, the thing with invention is that you do have to go through a lot of useless ideas before you stumble upon something that is truly transformative.

This painting, by Ferdinand Leger, is called Propellers. In a way it is basically Picasso meets the machine world were Leger takes Picasso's cubist techniques and applies it to a world of machines. Looking at this painting we can sort of make out the propellers, and the blades, and other items such as tubing and pistons. Leger appears to be trying to capture the dynamics of this new work, but he also senses a strange, outerworld beauty to it. Mind you, most people would probably just look at it, and not even read the little plaque down the side, but it is there that one can get the most information about a painting such as this one.

A New Unity

By now art is starting to become particularly strange with the development of, well, lots of different styles. Yet in these different styles one sort of sees a unity, and that unity in a way is a break with the past. Gone are pretty decorations to be replaced by geometric form and function that arose from the avant-garde movement. He we also meet constructivism for the first time, something that arose from the ruins of the Russian Revolution. It is here that we can certainly see a break with the past as the old world of Tsarist Russia has been left behind to be replaced with the dictatorship of the proletariat. In a way what we have is a nation that is now trying to find a new identity.

In a way this seems to the be the case across Western Europe as many people seek to try to understand a world that had gone, and a new one made in the trenches of the Great War. Gone was this ideal that humanity was on the cusp of something new, and instead we have a world seeking purpose and meaning. This, of course, were to come to a head ten years later with the onset of the Great Depression, however we are still in a world where people are attempting to drink the memories of the Great War away as we head into the roaring twenties, a time still dominated by outdated ideas of class and sex.

Well, now we are starting to get strange. This is by the Russian artist Lyubov Popova and is called Purely Architectonic. Well, I probably shouldn't call it strange since it is attempting to channel to works of the cubist, but what is it a painting of? Well, I guess that is the question, isn't it? Honestly, it simply looks like a collection of shapes, and really lacks any formal meaning as it is. Still, Popova did suggest that painting is like, well, engineering, and some engineers have described engineering as being an artform. Here, we are merging the two to a point where the artist isn't creating something, but rather building something out of basic blocks.

Here is another couple of works by another Russian artist, this one Kazimir Malevich, and the work is called Supremist Elements. Actually, they are titled square and circle as well, but the collection is Supremist Elements. So, what do we make of them because all they seem to be are a couple of shapes drawn on paper with a pencil, placed in a frame, at which point they ended up an in art gallery. Apparently he consider this form of art to be supreme, at least compared to the natural world. Well, in my mind it is just a couple of pencil sketches, and there is nothing all that supreme about it. Yet, it is what you could consider constructivist, that is that the artist has constructed it with their mind, as opposed to letting nature dictate the result. Still, I have my own opinion regarding the piece, but it does show us how humanity is ever attempting to claim supremacy over the natural world.

This is a movie poster by Validmir and Georgii Stenberg and is advertising a 1926 movie called The Three Million Case. Mind you, I use the word advertising in as loose a way as possible considering that, as you can tell, this is in Russian, and in 1926 Russia was actually called The Soviet Union. Well, no doubt this is a Russian film, and no doubt the rich people are the bad guys. However, the main reason that I have posted it here is because I thought it looked cool. However, as we continue on our trek through the MoMA you will discover that a lot of the art actually involves movie posters and album covers.

Thus here we have another example, this one from a 1921 film called Pounded Cutlet. Actually, the original title is 'At the Ringside'. If this one looks strikingly similar to the one above, that is because it is also by the Stenberg brothers. You can probably figure out that I do actually appreciate their work, with the rather modernist styles. Honestly, it is a shame that they don't make posters like this anymore.

These nine drawings are by the Russian constructivist Alexandra Exter, and are from her portfolio of works called Stage Sets (or Decors de Theatre). These weren't commissioned works, but rather works that she designed that could be used for operatic, ballet, or other theatrical performances. These designs, along with numerous others, were included in her portfolio. I'm not entirely sure whether they ended up being built, however they have certainly landed up on the walls of the MoMA.

This final piece that we will look at for the time being is called Colour Structure by Joaquin Torres Garcia. He came to Paris and not really satisfied with the direction of the surrealists decided to establish his own group known as Cercle et Carre (otherwise translated to Circle and Square). As you can probably deduce from the name, this group was more interested in geometric abstraction. An example is above, where the entire painting has been divided into rectangular shapes of various sizes, each of them having a vibrant colour. While it was was suggested that they were 'primary' colours, one can tell that this is not actually the case. Mind you, it does sort of feel as if the curator really had no idea if the painting carried any meaning, and just talked about its composition (which, in some cases, is all that really can be said).

Creative Commons License

The MoMA comes to Melbourne by David Sarkies is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. This license only applies to the text and any image that is within the public domain. Any images or videos that are the subject of copyright are not covered by this license. Use of these images are for illustrative purposes only are are not intended to assert ownership. If you wish to use this work commercially please feel free to contact me

Saturday, 10 August 2019

More On Error Detection

Well, we have already looked at some basic forms of error detection in a previous post (though annoyingly much of this subject covered areas that we have already covered), so instead of going over old ground I will instead refer you back to the post that covered Hamming Code and SECDED error detection techniques. However, just to be painful, these aren't actually the only forms of error detection out there, particularly since there is more to errors than just single bit errors.

Sure, computers these days may be efficient enough that double bit errors are an extreme rarity, and errors of more than two bits pretty much never happen, however we are talking about what goes on inside the computer. Things are very different when we are talking about transferring data between computers, particularly over wireless frequencies. You see, while we might get single and double bit errors, there is also another type of error that might occur - the burst error. This is where multiple bits are effected, and could occur in multiple ways, such as, say, a sun spot causing interference with our wireless transmission. In fact, interference is a very big problem when it comes to such transmissions, so we need a way to be able to detect them.

That is just a simple diagram to show how or why a burst error can occur. Here is a diagram showing what a burst error could look like:

As mentioned previously, error detection works on the process of redundancy, that is by adding extra bits to make sure that the data that is received is the correct data. These bits are known as parity bits. However, the problem with the error detection systems that we explored in the previous post is that while it is all well and good for single, and even double, bit errors, they are completely useless when it comes to burst errors, and this is the type of error detection that we want to be able to detect.

So, there are a couple of methods available to us.

Two Dimensional Parity Check 

In this method we basically place the bits into a series of rows. Once again, like the other parity bits we chose whether we want it to be even or odd. Say we want it to be even, so at the end of the row we will have a parity bit that will make all the ones in the row even, so if there is an odd number of 1s then the parity bit will be 1 otherwise it will be zero.

However, there is a second dimension to this method. Note how we mentioned that we would place the streams into rows. Well, you then go down the columns, and have a parity column. Once again, if the number of 1s in the column is odd then the bit in the parity row is 1, and vice verse.

You might have realise that we will then have a cell, the one that is at the intersection of the parity column and parity row. So, what goes in there. Well, once again a parity bit for the row and the column.

Let us do this with the following bit streams: 1100111, 1011101, 0111001, 0101001.


That might look a little confusing, but eventually it will make sense. So, if one, or more, of the bits come through in error, they can be detected. In fact, with the parity-parity bit in the corner, can detect them, as well as the ones in the column.


So, you can see how were have changed two of the bits on the first row. Sure, the parity bit on row 1 won't register an error, but the parity bits on column 3 and 4 will register an error. Yet there is still a problem. Consider this.


These four bits have come across in error, and rows 1 and 2 won't register the error, neither will columns 3 and 4. Unfortunately there are flaws. As such, we need something just that little bit more complicated.

Cyclic Redundancy Check (CRC)

Are you familiar with polynomial long division. In fact, are you familiar with polynomials. Well, this video might not explain polynomials (you will need to go elsewhere for that, maybe Kahn Academy).

CRC is actually one of the more powerful, and most common forms of error detection, probably because it is accurate, and it works. Okay, it might not be able to correct errors, but it certainly can detect them.

So, we have a block of k bits, and the transmitter generates a series of n bits known a the Frame Check Sequence (FCS). The FCS is then added to the block, and the block that happens to be k+n is exactly divisible by a predetermined number. So, if when the frame is received, the remainder is 0, then there is no error. Otherwise the frame is discarded and a resend request is then made.

So, to do this we need some definitions:
  • M(x) is the message that has a k-bit sequence;
  • P(x) is the generator polynomial represented in an n-bit sequence;
    • P(x) is fixed for a given scheme;
    • P(x) is known by both the sender and the receiver;
  •  Create a block polynomial F(x) based on M(x) and P(x);
    • F(x) is divisible by P(x);
Let us see how we can turn a binary number into a polynomial. We will start with the binary number 110010101.

It is then turned into a polynomial as follows:

1* x8 + 1* x7+0*x6 + 0* x5+1*x4 + 0* x3+1*x2 + 0* x1+1*x0

Well, x0 is 1 so we can get rid of that. Also, anything multiplied by 0 is going to be 0, so we can get rid of them. We will also drop the 1s, because they are redundant. So, we are left with the following:

x8 + x7+1*x4 +1*x2 +1

Now that we have worked that out, let us get onto some polynomial division.

At one end we have the following:

M(x) = 100100
P(x) = 1101
n = 3.

We get n by looking at P(x) and noting that the highest bit is three, so that will be n.

Once we have that, we multiply M(x) by n. So, in this instance we have x3(x5 + x2)

To multiply we basically multiply each one inside the brackets by the one outside. Also, to multiply polynomials, you actually add the indices, as such (x5+3 + x2+3). So, we end up with: x8 + x5.

Clear as mud? I thought so.

Now comes the fun part - we divide xnM(x) by P(x). I'll go through it step by step below:

So, that first x under the divisor sign, well you deduct 3 from the 8 (the 3 coming from the first x) and then write the result above the line.

Next, we multiply x5 with each of the x's that we are dividing by, and write them beneath, as such:

Next, we 'divide' the x that is above, by the x that is below, or you could say that you deduct the indice of the x below from the x above, and if it is, well you don't write it down.

Well, is x7 greater than x3 so we repeat the process all over again:

So, do you see what has happened here? Well, once again x6 is greater than x3 so we continue. In fact, here is the rest:

So, the only thing we are interested in here is the 1 right at the bottom, which is the remainder. In fact the remainder is in reality 001, namely because we take into account all the values lower than x6. We then append the 001 to the end of M(x) and send it, so the message being sent will actually be: 100100001. Once the message is received at the other end, we go through the entire process again, and if the remainder is 0, then there are no errors, but if the remainder is 1, well, there is an error and the frame is discarded.

Creative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. This license only applies to the text and any image that is within the public domain. Any images or videos that are the subject of copyright are not covered by this license. Use of these images are for illustrative purposes only are are not intended to assert ownership. If you wish to use this work commercially please feel free to contact me

Sunday, 4 August 2019

Prototypes - Beginning the Design

Well, we have already explored the context scenario in the previous post on personas, though in part they probably form more the part of the prototypes. In a way what we were doing there was sketching out the functionalities of our application with how each of the personas would use it. In a way it allows our apps to start taking shape. It also helps us keep focused on what we really need to do as opposed to what we would think would be really cool to do. It sort of comes down to that 100 in 1 type of idea in that what one person may really, really want, pretty much everybody else is either not interested in it, or rabidly hates it.

Here we can begin to sketch out the design, or the functionality, of the app. Now, we aren't going for anything too fancy here - that comes later, what we are doing now is just getting an idea of how the app is going to fit together, and how people are going navigate around it. Sort of like a flow diagram.

As we could see from the personas, everybody is going to be using the app in their own special ways, which is why the context scenarios are important. Once we have our ideas on the utilisation of the app, we can then start bringing everything together to see how our app is going to work, and how each to the functionalities are going to relate to the various parts of the app.

Now this is how the process begins to flow. By looking at the context scenarios, we can determine what the user's needs happen to be, whether it be data or functional. In the scenario we had with our stock market app, the data needs might not just be the share price, but also any news that is related to that share, and the various metrics, such as PE/Ratio and Buy/Sell spread that are also attached to it. As for functional needs, well, we might need a way to keep track of our portfolio, and to buy and sell shares when necessary. However, these data and functional needs are going to differ across our persona.

However, before we continue, consider this flow chart below, and it gives a good idea of the development phase.

Scenario-based approach to design Two 
However, one of the important factors here is the user experience, so while we are determining functional and data needs, we should also be focusing on the user experience. Remember, this is one of the key points here - a user that doesn't have a great experience is going to be a user that will end up looking for something else. Sure, if you hold a monopoly on functionality then, well, your users are going to be struggling to find a competitor, but get that idea out of your head - it is unlikely you are going to be in that situation, unless you score a job with Facebook or Youtube.

Now, once we have the context scenario, we can then create a table that gives us an idea of what functionalities are required. Now, I have previously created a key path scenario, which is also quite similar, but the key path scenario tends to flow on from this table.

I'll be honest, and was basically using the Commsec app as a basis for this, since I'm not really all that interested in creating my own app (unless it involves computers using machine learning to understand stock price movements, and buying and selling on my behalf, but unfortunately you can really only buy and sell through a brokerage). 

Now there is what is called the posture. This is basically the feel of the app, and we need to consider the users in this regard. Is it a professional app, a transient app, or a fun app. It's not all that good having a stock trading app that looks as if it belongs in a cartoon, people simply wouldn't take it all that seriously. We also need to consider input methods, particularly when we are dealing with mobile devices. Traditional computers handle inputs through keyboards and mice, however mobile devices have resulted in so many other means of input that we really need to take it into consideration. For instance, facial gestures may actually be a valid form of input.

Functional elements

Now, let us go back to our stock market app and consider what functional elements are required:

Functional Element: View Stock
Include: Name of Stock, Stock Price, News, and Charts

Functional Element: Buy Stock
Include: Purchase price, number of stocks, value to purchase, timed purchase, purchase based on price or volume.

Now, we also need to take into account things like real-estate - that is how much of the screen we have available. You will have a lot more real estate on a desktop than you will have on a handheld device. However, being able to buy and sell stocks on a hand held device may be a lot more convenient that having to wait until you are in front of a computer. We also need to take into account proximity - you know, like buttons next to each other, and also other factors such as what displays are available.

Then there are also the various views, or you could say the screens on which various functions play out. For instance you will have the front page from which you can access other parts of the app. Then you have the stock view, and a part of that might be the chart view. Finally there is the view which enables you to buy, or sell, a stock.

Pen to Paper

Well, now we get to work and start designing our app. Ironically, even some of the most advanced companies still use pen and paper. Honestly, I don't blame them, particularly since it is much quicker to sketch a basic design than it is to muck around on a drawing program in these early stages. Okay, there are some other disadvantages, but it is a start. An example for my app is below:

But I think this one is a much better example:

Source: Martha Eierdanz
These are basically known as 'paper prototypes' and it is here we begin to work out the user experience. As you can see, the example above is much more detailed than my example, but it is here that the creators have gone into more detail. However, my mockup was a basic start that was scribbled in thirty seconds, unlike the example above, which probably took a lot more time.

The thing with paper prototypes is that you can start to see how the app will take place, and if you start to see problems with the usability, you can then start to remodel it here before getting into the really time consuming and tedious parts - the ones you draft on the computer. What it also allows us to do is to experiment with alternate scenarios before we settle on the final design.

Mockups and Fidelity

There are two types of prototypes here - the high fidelity and the low fidelity. The low fidelity is still the basic design where we are looking to filling in some of the gaps in the original paper designs. The high fidelity prototype is much closer to the finished product, however ideally, when you get there you pretty much want to be in the position where you only need to make minor changes as opposed to scrapping the whole project and starting from scratch. High fidelity prototypes are incredibly time consuming to produce, and you really want to move from there to the beta release.

So, there are some pros and cons for both models. The low fidelity tends to be cheaper to develop, enables you to explore multiple avenues, is a useful tool through which to communicate, good for identifying market requirements, and a great way to explore the proof of concept. However, on the flip side, it is difficult for the back end coders to be able to develop the code (this is usually happening concurrently), there is a limited scope for checking errors, the process tends to be driven by the facilitator, there is a limited scope for usability testing, and finally there are navigational and flow limitations (the flow of the app is a very important aspect of the user experience).

With high fidelity prototypes, there is the problem of cost - it is very expensive to develop. However, you have complete functionality, it is predominantly driven by the user, there is a fully implemented navigational system, there is a look and feel of the final production, and can help quite a lot with marketing and sales. Other then cost, there is also the problem of time, and it also doesn't work all that well when you are still at the proof of concept stage.

Now we have the horizontal and vertical prototypes - the horizontal one is where you have a look at the breadth of the functionalities, but don't go too deeply, which the vertical prototype is where you select a single function and explore it in detail. Now, at this stage the aesthetics are of little concern, but we should still have an idea of the look and feel of the app - the look being how it is perceived, and the feel being how it is experienced.

We have already discussed paper prototyping, but as mentioned it is a handy tool. In fact one method is to have a hole cut in a sheet of paper that simulates the screen. One person plays the computer and another plays the user. By pressing parts of the screen, which simulates clicking, the computer moves the screen as necessary. You can also simulate text entry simply by writing something down. However, instead of my explaining it, consider this video exploring how pintrest used paper prototyping:

Doing it on paper isn't the only option, as you now have a number of applications, such as Balsamiq and Azure, which allows you to prototype digitally. Honestly, I still prefer using paper, probably because that no matter how bad my drawing skills are, drawing on a computer is even worse.

And Finally

Look, I did want to mention wire frames, but that is basically what is covered above with the paper prototypes - wire frames are basically very rough sketches of the app. However, there is another process called Storyboarding. Now, this is used in film production, where the film is created on paper using rough sketches based on how it is going to look. It also appears in UX design, namely to visualise the keypath scenarios.

Anyway, I'll leave it at that, and next time we will be usability testing.
Creative Commons License

Prototypes - Beginning the Design by David Alfred Sarkies is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. This license only applies to the text and any image that is within the public domain. Any images or videos that are the subject of copyright are not covered by this license. Use of these images are for illustrative purposes only are are not intended to assert ownership. If you wish to use this work commercially please feel free to contact me