I hope this is not my legacy

blog thoughts software stuff
RSS
  • About
  • BeatButcherMPC
  • Design of an Audio Sampler
  • Find Me
  • food

New Project!

by admin on September 14, 2010 at 6:41 pm

I was rummaging around in my bits box today and I found a set of 10 8×8 three color LED matrix displays. I bought these for a couple of quid from china a couple of years ago, intending to make a touch pad on the premise that an LED can be used as a light sensor as well as a light source. This is detailed in the paper “Very Low-Cost Sensing and Communication Using Bidirectional LEDs” by Dietz, Yerazunis and Leigh. I never got around to this though, mainly because my experiments with reading light levels from the LED’s using a PIC didn’t go too well.

led matrix displaysSince I have so many displays, I thought I would make a 16 x 80 led matrix display. With a display of this size I could show a couple of short lines of text or some simple graphics, maybe make a mini-jumbotron scoreboard or something. Whilst it would certainly be possible to drive this display from a PIC, it would require a bunch of discrete logic devices in order to decode the sheer amount of outputs required. Instead of doing that I could use a larger microcontroller, such as an ARM M3 which are still quite cheap, or use a PLD (programmable logic device). I haven’t done any Verilog or VHDL since leaving uni, so I thought it would be a good exercise to try and do it using an FPGA (Field Programmable Gate Array).

So today I ordered the Digilent Nexys 2 development board, based on the Xilinx Spartan 3E FPGA in order to do some experiments. Based on how they go, I hope to design a PCB and get it manafactured (or maybe do it myself) for the mini-jumbotron and have an nice display module. I will also be writing up whatever I achieve, since I forget things easily and then the next time I start an FPGA project it won’t be so tricky. Also I hope that it will be easy enough for people who haven’t had a background in programmable logic design to follow and maybe inspire someone to try it.

  Comment

The Average American Male

by admin on September 9, 2010 at 8:44 pm

This book is high amongst my favourites of all time.

Apparently there was loads of hype on the internet at the time, but I must have missed all that, and it was recommended to me by a random forum post a year or so ago. I approached the book with no preconceptions at all, and was absolutely blown away. For a start, it is incredibly easy to read- once you start you will not be able to put it down. This isn’t because there is an amazing plot with a bunch of twists, because as the title suggests the book is purely character based. However I found myself wanting to get deeper and deeper into the narrators mind throughout. Of course it also doesn’t hurt that the book is written from an extremely exaggerated egotist male perspective which I personally found incredibly easy to relate to, and that it truly delivers comedy blows on a page by page basis.

The author has this to say about the book:
“Mom, thanks for always encouraging me to write and be creative. I’m sorry the end result of that encouragement is something you will not want to read”

So what is it about? I would say the main subject of the book is emphasising the difference in male and female outlook on relationships. That might sound like the domain of a women’s best-seller rather than an overpoweringly ‘laddy’ book, but the way in which the subject is approached- centred around various sexual encounters of the unnamed narrator- means that at no point will you have to worry about it straying into gossip column territory. I don’t want to spoil this book for anyone who may read it, but the most interesting thing about it is how accurate some of the observations about male thought process regarding women are. These are all totally over the top and more to the point, isolated from any other thoughts that the narrator may have, meaning that the narrator appears as a bit of a twat. But I think that most men will find themselves agreeing with him regularly, and most women will be questioning just how close to reality it is, and consequently how honest their respective ‘men’ may be.

I persuaded R to read the book recently. I wanted to know how she would interpret it, and if it matched her expectations of male inner psyche. I genuinely didn’t know how she would take it, and once you have read the book, you will understand that this experiment could have gone horribly wrong. After reading, she did have “some questions” for me which I managed to answer carefully. I would strongly recommend to all men reading this post that you should beg, borrow or steal a copy of this book and give it a shot.

It is only a few quid and I can guarantee that at a minimum it will make you laugh, as well as make you think. However, lend it to your significant other at your own risk.

1 Comment

You can never really be sure about anything.

by admin on September 8, 2010 at 9:29 pm

We make assumptions all the time. How often do we step back and examine those assumptions and how deep they go? If I press a button on a black box and it causes a light to flash, how many times in a row do I need that to happen before I conclude that pushing the button causes the light to flash. OK, the more times you repeat the experiment of pressing the button, and the more times the light comes on as a consequence (in time), the higher the statistical chance of a causal link.

But how many more times do I need to press it before I conclude that pressing the button will always cause the light to flash? What if on the 101st attempt it caused the light to stay on? How can I ever know that the next time I press the button that the same thing will happen? Repeating the experiment brings makes the hypothesis no more likely to be correct.

I find it interesting that we generally do not treat other people as deterministic entities. For example, if a given action generates a specific response, I think that the likely internalization would be to increase that actions “score” or probability of success for the future. I think that it would be unlikely for one to assume that because a person responded in a certain way once, they will always respond in that way (imagine simply saying “hello” to someone, over and over again). I suppose this is because we (correctly) view other people as complex systems which means a fuzzy approach is required. Something I think is interesting is the way in which a positive response adds to the “score“ not only for that action in whatever the given situation was, but the score propagates to both similar situations and similar actions. In this way it is possible to cope with and handle new situations without having prior experience of stimulus/response.

Now obviously within a fully defined system, you can reason based upon the axioms of the system, without having to make any assumptions. Fully defining a system is very hard though for anything other than trivial systems. Arithmetic for example is provably impossible to define. http://en.wikipedia.org/wiki/Gödel’s_incompleteness_theorems

So in conclusion to avoid making potentially damaging assumptions for a given system we need to do one of two things:
1) Fully understand and reduce systems to their axiomatic bases before reasoning about them
or
2) Take the view that it is impossible to reason in a binary manner about decisions within the system, and fuzzy logic is instead required to prevent logical error. Note that errors will still occur, but they are expected. Errors which are expected can be handled.

Now this poses a problem for me., because as a software engineer nearly everything I touch is an abstraction. Even when programming in assembly on an 8 bit microprocessor one is working with a system which is far too complex to fully define. Digital logic itself may be provable, but any physical implementation in silicon is only an approximation of that. Yes, hardware comes with working ranges in order to prevent analogue effects from influencing the digital system, but it is still possible for cosmic rays to flip bits at random or for a given logic path to be incorrect (testing complex integrated circuits comprehensively, unsurprisingly, is also a very hard problem). My point is that when you perform 1+1, you are incorrectly assuming that the answer will be 2.

Modern hardware is great however and has error checking and tolerance to these things so the chances of being affected by this is very low indeed. So we move up a layer into the operating system, or to the platform library, the compiler, any dependencies etc and it is obvious that the only way to handle all of this information is to deal with abstractions. But as I have shown, it is impossible to reason with these abstractions, since it is impossible to fully understand their internals. All we can really do is make a best guess as to what is going on.

So where does that leave us? With several options:

1) We never use anything we don’t fully understand (good luck with this one, unless you are a carpenter or something)

2) We hope to god that all of the assumptions we have made are correct. (Generally this involves testing the software and seeing if it works or not. The more scenarios you can test, the more confident you can be. Don’t try and work out a confidence percentage though since you can never actually leave 0%).

or my favourite option

3) We can use specifications to blame other people when it goes wrong.

By providing a specification for a black box, we are making a contract which says, “when you press this button, the light will flash for 1 second”. If, when someone presses the button the light ever doesn’t flash, or stays on, or does anything other than flash for 1 second, we lied and it is our fault not the pressers fault.

This is our get out clause. This is the way in which we can create a simple system which we can reason about without having to understand everything in the world. This is what allows us to actually achieve anything at all with a degree of confidence in our work. Obviously the more specific the wording of the specification, the less work you have to do to ensure that you don’t lie about it. So when you write a module and you don’t write a specification you are really just making more work for yourself and making it harder for yourself to be confident that it is doing what it is supposed to do.

I won’t go into specifics about how to write specifications, because everyone knows how to do it. I think some people in the world just need some gentle persuasion that it is in fact worth their time.

2 Comments

CNC night

by admin on September 6, 2010 at 11:20 pm

CNC output (pen plotted Northackton logo)

  Comment

Mind Over Matter

by admin on September 5, 2010 at 8:16 pm

Sometimes it seems that no matter how tired the body is, no matter how much lactic acid is pumping through your muscles and no matter how hard your heart is pumping, a burst of energy can come from nowhere to raise you up way beyond the level you were at when you were fresh and give you an amazing amount of power and concentration, albeit for a short period. I am trying to understand how this happens, and how it can be controlled and utilized.

Taking Jujitsu sparring as an example since it is a fairly pure form of competition- when faced with a new opponent I will often get a submission fairly quickly, but then will back off and lose the “edge” and be much more evenly matched with my opponent from that point onward. This is not a deliberate act, it just seems to be the natural flow of my motivation, that after demonstrating superiority, I lose the desire to win. However I would like to conquer this and gain the ability to “turn on” the initial burst of aggression (and this effect is certainly not caused by fatigue) at will.

I think that the ability to think clearly when physically fatigued is an important one and something that comes with training and experience, as is the ability to keep on pushing yourself through the boundaries of muscle fatigue, cardiovascular fatigue and breathing rate. The application of discipline specific techniques can reduce wasted energy and an intelligent approach can allow recovery at appropriate times, but I think that it is important to seperate the concepts of technical training and psychological training. For example, knowing that a rest can be taken in certain wrestling positions is all very well, but unless you can use that recovery to explode with rage into a takedown it is still inevitable that you will ultimately lose.

It seems like nearly all great sports stars share the ability to control their aggression and passion and channel it into the game when required. I feel like if I could control my mind and find the ability to control that second gear, I would be a fucking bad ass. So, anyone got any ideas?

3 Comments
  • Page 7 of 14
  • « First
  • «
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
  • Last »

Links

  • Chris Evans Dev
  • Darren Steadman
  • Derecho Falls
  • Eaton Media
  • MiniRant
  • More News From Nowhere
  • Paul S Usowicz
  • PPC Agency
  • Wilcox Dev

©2009-2012 I hope this is not my legacy | Powered by WordPress with ComicPress | Subscribe: RSS | Back to Top ↑