Showing posts with label assembly. Show all posts
Showing posts with label assembly. Show all posts

Wednesday, 15 August 2012

Introduction to Computer Memory

 Got an interesting link set to me from a friend concerning Computer Memory, apparently this text is THE text for understanding computer memory physically and theoretically. Obviously with memory being one of the most integral parts to programming I feel this has to be jumped to the top of my reading list.






 As I am currently following the lecture series at the moment I will start updating what I am picking up from this text, from the first few pages I read already, just 'flicking through' I know it is definitely worth my while and will give me a great advantage in the future when I begin to practice assembly language and any other low-levels tinkering I may have planned.

:)

Wednesday, 8 August 2012

The Art of Assembly Language

As I mentioned previously I am going to start at well the start, which in this instance happens to be Assembly Language. After having a snoop around the net for some direction it seem thats the holy grail of Assembly Language knowledge is a massive book called the 'Art of Assembly Language'. (Link Below)

 I had a quick flick through and have determined that it is in fact exactly what I was looking for, massively out of my depth but introduced well and progresses relatively fast. It seems well written and understandable enough to really push myself and break those barriers of mental stagnation. Currently I am still finishing Ron Whites book as I detailed in a previous post but once that is done I am going to start some practical Html Learning and spending at least 3 hours every day making my way through the art of assembly language.



 Wish Me Luck.





Link To the Art of Assembly Language website:
 http://www.plantation-productions.com/Webster/www.artofasm.com/index.html


Tuesday, 7 August 2012

Day 1: Setting up a PoA (Plan of Action)

 Had a few very informative responses to the posts on 420chan about reccomendations for someone wanting to pursue a life mastering computing. Much appreciation for those responses.

 I found a timeless advice piece from a computing blogger who used to be a student of Computing at Yale. He offers a top 7 list of personal recommendations for anyone wanting to study computer science at a top-level.

http://www.joelonsoftware.com/articles/CollegeAdvice.html

His site is also very interesting to have a look around I will probably have another more serious look at his site when I have a bit more time.

 I'm still making my way through the 'How Computers Work' by Ron White book but have begun mapping out my PoA. Based on advice given in the posts (thanks again for that guys, especially big thanks to 'Basil Chuttingneg') I have decided to start my focused learning on assembly language.

 The reasoning behind this is :

  • Gets to grips with the 'real' computer part of computing
  • I will eventually be hindered by not knowing enough about assembly language and how compliers interact with the low level computer processes, so I am going to hit this hard now to make it a smoother ride later
  • Allows me eventually to have a massive advantage when developing my skills in 'C' and the similar languages due to a proper understanding of their functions interaction with the I/O devices of the computer


Obviously nobody learns an assembly language over night so instead of focusing soley on assembly language I've decided to make out of every day a 5hour 'practice' time. Within these 5 hours I intend to spend 3 of those hours learning assembly language from the ground up and 2 of those hour gaining practical experience in something instantly usuable such as xHtml and CSS. 

 I will be starting out by re-doing the Bucky Tutorials on xhtml and CSS, so expect a few posts about that coming soon.



Again guys thankyou very much for the pointers so far, if you have anymore advice or any personal experience you'd like to share i'll post the links to the 420 posts below.
http://boards.420chan.org/prog/res/24050.php   /PROG/
http://boards.420chan.org/tech/res/89403.php    /TECH/
http://boards.420chan.org/howto/res/30980.php /HOWTO/

Friday, 6 January 2012

Human reasoning errors

 Having been quite an introspective person naturally I began reading into how to improve cognition, basically make my mind more efficient. The main method through both experience and 'fact' is meditation (I use the term fact loosely as its in part borderline 'pseudo-scientific' claims and theories). I could rant and rave all day about the therapeutic benefits of mediation but this is a blog about computing so I'd recommend you to have a look up yourself, I think it helps sort your head out in all kinds of good ways.

 Back to the topic at hand, human reasoning errors, what I mean by this is how we make those super fast judgements and find alot of them to be massively wrong and some of them to be completely correct, with no seeming order to this process. So I went on an internet adventure exploring what is really going on when these weird processes happen with no seeming conscious control. It turns out conveniently enough that the mind is very similar to a computer in that it stores data based on past experience and relays them automatically to fit similar situations in the present. Sometimes this saves time sometimes it doesn't. This process is labelled under a subject known as Heuristics.

Incredibly interesting article explaining the reasoning behind heuristics and cognitive biases;



 A quick summary from this article; essentially the human brain has so much sensory input to handle that it has its own coping mechanisms which aid it in its daily function. The mechanisms are based, so we believe, on a kind of complex association system in which a certain action (e.g opening a door) is stored in the long term memory and when a similar scenario is encountered again for example reaching another door, the mind automatically assumes that this door must be like the 'door' object of previous encounters so the same principles are assumed to apply and the same action is therefore executed. Whilst this system is very economical and efficient it obviously has numerous limitations.


 An example demonstrated in the text is 'a group of people asked to work out a sum by way of a 5second guesstimate .The example shows just how we will engage our brains to apply previous rules and assumptions to the problem.

 The Question:
    Consider the product of the series:

9 x 8 x7 x 6 x 5 x 4 x3 x 2 x 1 = ?
vs.
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 = ?

 The typical answers: 

9*8*7*6*5*4*3*2*1 'usually comes out at an average of 4000'
however,
1*2*3*4*5*6*7*8*9 'usually comes out at around 500'

The actual answer is 362,880.

This very basic example shows just how the association function is sometimes limiting and how easy it is to engage it.
The article also explains the different categories of heuristic failure and when and how they are limiting. Examples such as logic assumptions and ignorance to statistics due to emotive association (terrorism vs cancer).

 Worth a re-read every now and then to avoid problem solving genercism as it will occasionally be defeatist.
Shown below is the cognitive process by which people are encouraged to avoid bias.



 If this doesnt make immediate sense, consult your mind in an introspective manner, or read the article