tag:blogger.com,1999:blog-57599456182842963922024-02-20T03:54:16.122+00:00blogismiainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-5759945618284296392.post-9600900861231618572012-12-27T13:05:00.001+00:002012-12-27T13:06:02.400+00:00Some quick thoughts on Christmas<br />
What I love about Christmas is the way that it has become a celebration of children and childhood, despite the rampaging commercialism and materialism that are slathered over it by the bucketload. This was first pointed out to me by an Israeli I met around 8 years ago, and every year I am reminded of it. In his words, "I love Christmas, it is like a celebration of childhood, I wish we had something like it at home".<br />
<br />
I often think about this and how true this is if you just look at things from a slightly different angle, and if anything the biggest parts of childhood that are celebrated are trust and innocence.<br />
<br />
What do I mean? Well even in these paranoid times it's OK for young children to go up to a total stranger and sit on their knee to talk to them at Christmas, and that it's OK for us to tell the children that said stranger will then come into their bedrooms late at night after breaking into the house to bring them sweets and gifts.<br />
<br />
Can you imagine doing and saying those things at any other time of the year? Children going off to talk to a stranger is the stuff of most parents' nightmares (let alone their child trying to sit on a stranger!), and similarly, sneaking into childrens' bedrooms at night tends to be an unpopular choice of activity for adults. But at Christmas it's all OK, because the stranger in question will be bearing gifts and sweets for the children (provided that the children have been 'good')! Compare that the 'stranger danger' message that we give throughout the rest of the year.<br />
<br />
Yes, this is the commercial side of Christmas, yes it's materialistic, but look at what underlies it.<br />
<br />
Spending a Christmas with my young niece and nephew (5 and 7 respectively) showed me this "celebration of childhood" again this year, after all the unwrapping was done and the dinner was eaten all my niece wanted to do was wear a "princess dress". My nephew? All he wanted to do was go outside and kick a ball around, because he'd been promised he could do that every day while he was off school.iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-79423960762832446192012-08-03T18:37:00.001+01:002012-08-03T18:37:12.085+01:00The project continues!So I'm now about a year into my MSc project and progress is, well, good :-)<br />
<br />
I'm pretty much finished and I'll probably be publishing some papers based off my work if my supervisor has his way.<br />
<br />
So what have I done? Well I've used the <a href="http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html" target="_blank">Fuzzy-Transform</a> (F-transform) in a way, which as far as I can see, has never been done before. I've also managed to predict the range of an electric vehicle successfully, which is nice!<br />
<br />
Hopefully once I've published any papers that will come out of my project I will be able to share what I've done a little more publicly, but for now I'm afraid things have to stay secret!iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-46837538981454381162012-05-22T11:07:00.000+01:002012-12-27T13:06:42.530+00:00Thoughts on requirements!<br />
Don't ask where this has come from, just accept that it has come ;-)<br />
<br />
The key to good software engineering is good requirements management, and this must come from both sides.<br />
<br />
Poor customer requirements (no matter how aggressively chased by the software provider) will always lead to "to-ing and fro-ing" and exasperation on both sides, no matter how good the provider is.<br />
<br />
I know of software providers who have been described as "useless", by one customer (who as an organisation never really knew what they wanted, or had any ability to express their desires in good, unambiguous requirements) and "excellent", by another customer (who had a very clearly documented set of requirements that had been fully agreed internally before issue)!<br />
<br />
The image at the top of this <a href="http://www.stellman-greene.com/2009/05/03/requirements-101-user-stories-vs-use-cases/" target="_blank">Building Better Software blog</a> summarizes the situation in some case quite well. It's easy to laugh at this image, but it's a real issue that people (who sometimes should know much better) sometimes really don't know what they need (they all know what they want!).<br />
<br />
For example, I know of a project that required data from vehicles captured at 5 second intervals. No problem, easy in fact with the proliferation of CAN bus. But the vehicles were electric and the customer wanted to analyse how much energy was being recovered through regenerative braking, and basic application of the Nyquist Shannon theorem says that with a 5 second sample time only events of 10 seconds or greater duration could be reliably captured. So guess what? Next to no regenerative braking events were captured and the customer started trying to tell the vehicle manufacturer that the vehicles were faulty as they weren't performing regenerative braking as advertised. All because the customer didn't tell the software provider what they wanted to do with the data, just that they wanted data collected at a certain interval (the customer then went back to the software provider and requested free changes since it was "obvious" what they wanted to do with the data... but that's another story!).<br />
<br />
Of course feature-creep is also a problem - adding kludges in an attempt to "make a tweak" to keep a customer happy will only lead to borked systems. Customers need to be quoted, and need to expect to have to pay if they want changes or increases to a system's capability so that the work can be correctly undertaken.<br />
<br />
Finally, competing documentation "standards" can make things worse. From diagrammatic through to natural language (sometimes including metaphor and simile) lots of people have differing ideas on what makes "good requirements", and the gamut runs from UML, SysML, SDL through to RFC2119-based prose and "user stories". <a href="http://xkcd.com/927/" target="_blank">In fact this XKCD applies quite nicely</a>.<br />
<div>
<br /></div>
iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-63619525505127023562012-04-13T01:10:00.001+01:002012-12-27T13:07:04.060+00:00Booting up<span style="font-size: x-small;"><b>Edited</b>: 20120413 to add images and fix some errors.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
OK, so today was fun, I received my Olimexino-STM32 <a href="http://iainism-blogism.blogspot.co.uk/2012/04/stay-on-target.html?spref=tw" target="_blank">that I talked about yesterday</a> and I was able to do a few things with it:<br />
<ol>
<li>Set it up so that I could use it with the <a href="http://leaflabs.com/docs/ide.html" target="_blank">Maple integrated development environment</a> ('IDE') - a simple IDE that allows a 'fast-start' and that comes with quite a few 'example' programmes to show the capability of the device, and also provide a basis for one's own projects.</li>
<li>Programmed it to make some LEDs flash on and off in different sequences</li>
<li>Set it up so that I could use it with the <a href="http://www.eclipse.org/cdt/" target="_blank">Eclipse IDE</a> - a much more powerful IDE that provides more flexibility (at the cost of more risk of doing something that can't be easily undone) </li>
<li>Programmed it again using Eclipse to make the LEDs flash on and off, using a <a href="http://en.wikipedia.org/wiki/Joint_Test_Action_Group" target="_blank">JTAG interface</a></li>
<li>Worked out how to return the board to being able to work with the Maple IDE (since using the Eclipse IDE to download code removed the <a href="http://en.wikipedia.org/wiki/Bootloader#Boot_loader" target="_blank">bootloader</a> that the Maple tool requires)</li>
</ol>
<br />
This last bit was quite tricky and not all that obvious! So a description follows for anyone out there trying to work out how to make this work... especially as most of the instructions I could find are Linux-based, so I made sure I could do this using the Eclipse IDE on my windows machines too!<br />
<br />
Note that all of this assumes that you've already set up Eclipse, the various drivers and other software required and have a JTAG interface to hand!<br />
<br />
Firstly you need to make sure that you have copied the OpenOCD files and the Olimex examples into a folder structure that mimics that found under your 'Program Files' folder, and make this your workspace (short paths with no spaces are better, mmm-kay?):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOtZXvtO2NHs3KAp0VfpBpqtKcdxy1WZfB7cMTpMWXkhrcRNeuW7EbP0D6R8MXAC-qwOv-aL9iqxp6LJlNvFupnFNUhqZnVb9cFU1EuLtKRSfeCMrfl1w4c7VI0TnKVapzFe48Hbq3aNEl/s1600/ScreenShot725.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOtZXvtO2NHs3KAp0VfpBpqtKcdxy1WZfB7cMTpMWXkhrcRNeuW7EbP0D6R8MXAC-qwOv-aL9iqxp6LJlNvFupnFNUhqZnVb9cFU1EuLtKRSfeCMrfl1w4c7VI0TnKVapzFe48Hbq3aNEl/s1600/ScreenShot725.png" /></a></div>
<br />
Next, go download the <a href="https://github.com/leaflabs/maple-bootloader/downloads" target="_blank">Maple bootloader source </a>and unzip it. Move the folder named something like 'leaflabs-maple-bootloader-d1234348' (yours will have a different name) into your workspace folder and rename it to something a little shorter, I called mine, 'stdBoot' (you can see this in the image above).<br />
<br />
In Eclipse right-click in the projects pane and select 'Import', click on 'C/C++' and then select 'Existing Code as Makefile Project' and click 'Next':<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4soJkK_DwDp4vsldEkpXQi9bJkIo8GcxI9i_TqlJUhtZT6aLPLgryLeBbQAyN-xNv6zk4uF6n40jkdo3KmIi3H1XIgWacRZckF6jVi8TBJfrRX22VO20WvHLFztXOtBmnH8tapvRDwx5g/s1600/ScreenShot726.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4soJkK_DwDp4vsldEkpXQi9bJkIo8GcxI9i_TqlJUhtZT6aLPLgryLeBbQAyN-xNv6zk4uF6n40jkdo3KmIi3H1XIgWacRZckF6jVi8TBJfrRX22VO20WvHLFztXOtBmnH8tapvRDwx5g/s1600/ScreenShot726.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_bEfZs41a2OzHetTyd_CXeDq5U3TgkjYuAbMrfWcdkLDWveeYBNZJrg0Lc_HhUhR3o8dh8odcVv0VBEMhQZbJAScShLw_4bE4ecBjsnwBpGo_c8J3nZgTZjsm5lmzRYyegH2UJbaNSng/s1600/ScreenShot727.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_bEfZs41a2OzHetTyd_CXeDq5U3TgkjYuAbMrfWcdkLDWveeYBNZJrg0Lc_HhUhR3o8dh8odcVv0VBEMhQZbJAScShLw_4bE4ecBjsnwBpGo_c8J3nZgTZjsm5lmzRYyegH2UJbaNSng/s1600/ScreenShot727.png" /></a></div>
<br />
For the 'existing code location' browse to the 'stdBoot' (or whatever you called it) folder, and select just this folder:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6xfuFxVF2BOXpTt3CISo2h1IjbLsutIWdMsZ3-MdcR0C-WWZPg_5Bzr-soaEPntb_QFoS8gBBEqeEw4NyAUAauTcemIxu9oIFF1J7TlgBKTkjUR2c7Vcv9aqhhkhgd5bxlOkZ_jpeUBLe/s1600/ScreenShot728.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6xfuFxVF2BOXpTt3CISo2h1IjbLsutIWdMsZ3-MdcR0C-WWZPg_5Bzr-soaEPntb_QFoS8gBBEqeEw4NyAUAauTcemIxu9oIFF1J7TlgBKTkjUR2c7Vcv9aqhhkhgd5bxlOkZ_jpeUBLe/s1600/ScreenShot728.png" /></a></div>
<span class="st"><br /></span>
<span class="st">Click on 'Finish'. The folder and contents should then appear in the projects pane. 'Borrow' (copy and paste) the stm32.cfg and <span class="st"><strike>openocd.cfg</strike> project.cfg files from one of the other STM32 projects for your 'stdBoot' folder:</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivV75QT3Zr3GZFTSVB4NSpFgsqz_TxoM3HMXo9E8brLlSXil4Kc0ua2oM-i-ZB2pA4OMyAaLfWs1QT9K4LPm7NLK57CFO3n1NtpduoB7b4AyB1L7Z8Fb12pkYTwPBKdn-GbrQiQ121G5Cw/s1600/ScreenShot729.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivV75QT3Zr3GZFTSVB4NSpFgsqz_TxoM3HMXo9E8brLlSXil4Kc0ua2oM-i-ZB2pA4OMyAaLfWs1QT9K4LPm7NLK57CFO3n1NtpduoB7b4AyB1L7Z8Fb12pkYTwPBKdn-GbrQiQ121G5Cw/s1600/ScreenShot729.png" /></a></div>
<span class="st"><span class="st"><br /></span></span>
<br />
<span class="st">OK, almost there! If you've not done so already then hook up your board to your computer via the JTAG. You also need to power the board - to do this I use a USB lead that is broken and supplies only power (otherwise the PC will try to load the USB drivers that the JTAG needs and reserve them!).</span><br />
<span class="st"><br /></span>
<span class="st">Try clicking the 'Run external tool' entry in Eclipse that matches your JTAG interface (for me this is the ARM-USB-TINY-H), </span>if you get an error like this:<br />
<br />
<span class="st"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span class="st"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1BiM0Qhq0_9OGtB7t_MRzDdGvcPN_ElJM4zeBqtXtPjmkF37C-k2fn7uDpITFQrjDCThu4T3qwrFn-CsVk9QdsZRTKcWkrJQOoFfxSg29CBoTrc9HG7e-tnhYB2lxpWPCzwsj8MprIwbc/s1600/ScreenShot730.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1BiM0Qhq0_9OGtB7t_MRzDdGvcPN_ElJM4zeBqtXtPjmkF37C-k2fn7uDpITFQrjDCThu4T3qwrFn-CsVk9QdsZRTKcWkrJQOoFfxSg29CBoTrc9HG7e-tnhYB2lxpWPCzwsj8MprIwbc/s1600/ScreenShot730.png" /></a></span></div>
<span class="st"><span class="st"><br /></span></span>
<span class="st"><span class="st">Then just click in the pane holding 'main.c' and try again, what you should see is this:</span></span><br />
<span class="st"><span class="st"><br /></span></span>
<div class="separator" style="clear: both; text-align: center;">
<span class="st"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgEE94uPb1qUY_1k_WlY9eLbuYygjmkNt0oh4I-Ldf5RhxTB3mIEKxoouS1S94ric48_8rtcYa68uKcdcL1faxzZ5I3Vf1AwWjHU6V6DVuDrtVbFoF6S3BkC5-TXKBaHeytnFuuX1jB_Gn/s1600/ScreenShot731.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgEE94uPb1qUY_1k_WlY9eLbuYygjmkNt0oh4I-Ldf5RhxTB3mIEKxoouS1S94ric48_8rtcYa68uKcdcL1faxzZ5I3Vf1AwWjHU6V6DVuDrtVbFoF6S3BkC5-TXKBaHeytnFuuX1jB_Gn/s1600/ScreenShot731.png" /></a></span></div>
<span class="st"><span class="st"><br /></span></span>
<span class="st"><span class="st"><span class="st">Which appears in the console panel end finishes something like: "stm32.cpu: hardware has 6 breakpoints, 4 watchpoints". This is good and means that everything is running</span>, </span></span><br />
<br />
<span class="st"><br /></span>
<span class="st">Ensuring that you're in the C/C++ perspective of Eclipse, expand your 'stdBoot' project and open the 'Makefile' - on my PC the make action failed to make some folders, so look through for 'mkdir' commands and create the folders that make will require. Unless you know <b>exactly</b> what you are doing, DO NOT EDIT THE MAKEFILE! In my Makefile, the mkdir commands are:</span><br />
<span class="st"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuQFX9Z4wuhYaeVypS6CW7mNfm4WMm-2RDs0V7SyCVdp97cbscHBwmj3qmsp2LeIS3aWtJRTgDDeg6CTEhAPwF0wqVuj2r-2l5J1ek3P4LPXTxA4sGn39udzBypbY6_PwgqbgrQTTGYN1i/s1600/ScreenShot732.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuQFX9Z4wuhYaeVypS6CW7mNfm4WMm-2RDs0V7SyCVdp97cbscHBwmj3qmsp2LeIS3aWtJRTgDDeg6CTEhAPwF0wqVuj2r-2l5J1ek3P4LPXTxA4sGn39udzBypbY6_PwgqbgrQTTGYN1i/s1600/ScreenShot732.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAYmfq0QUjyoQ3eJGdyqwraaLRtwK4ppXvAzQq4ylazTYgLex_be58e1vZesAgAWG_T8UEtRGYkR0W4oMp3J47ftI7DGOmRZh0ep02RD62WiV9zu8c2mNknFuqnW17QMtIxtTC7h_64GoB/s1600/ScreenShot733.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAYmfq0QUjyoQ3eJGdyqwraaLRtwK4ppXvAzQq4ylazTYgLex_be58e1vZesAgAWG_T8UEtRGYkR0W4oMp3J47ftI7DGOmRZh0ep02RD62WiV9zu8c2mNknFuqnW17QMtIxtTC7h_64GoB/s1600/ScreenShot733.png" /></a></div>
<br />
<span class="st">Now right click on the 'stdBoot' project and select <strike>'Build as...</strike>' 'Make Targets'/'Build', in the dialog that appears, click on 'Add', then in the top text entry box type 'all' (without the ''), then click 'OK':</span><br />
<span class="st"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUFj7BFySzpGjWiGaAAtHpLjktNJ0wJFOvDdoESoHuMDBRFTLRjhueRdJcHmZ7OWMVj03t6xpN7yxdwLLsGke-di2YqcmCqQr9N-CeghJdZWPAMlZQyFZb3NbHxbhRJdwxbjkHXMWzI7Jq/s1600/ScreenShot735.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUFj7BFySzpGjWiGaAAtHpLjktNJ0wJFOvDdoESoHuMDBRFTLRjhueRdJcHmZ7OWMVj03t6xpN7yxdwLLsGke-di2YqcmCqQr9N-CeghJdZWPAMlZQyFZb3NbHxbhRJdwxbjkHXMWzI7Jq/s1600/ScreenShot735.png" /></a></div>
<br />
Now select the 'all' entry in the 'Make Targets' window and click on 'Build'.<br />
<br />
<span class="st">If your setup is OK then you'll see a successful build occur. Warnings are undesirable, but survivable - 'Errors' though are a big problem! Check the console carefully - if you've had a successful build then you will receive a report of the file sizes created. If you see errors, then Google is your friend! A good outcome looks like this (just cancel any errors from 'mkdir.exe' as we've already circumvented these):</span><br />
<span class="st"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8diUExz588oGLUBmqOf_rGSrSp5NQbx0Bj0AooGN6hDHQJgEPW04armbvmu1_KZ_D8k0wa8Eo0abKeb5ozYY-ItMKqT8oWVTtm_ejkUvA1EGjpol5GXVxL-Ol-brdlnXRBJtprWbiQDI/s1600/ScreenShot737.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8diUExz588oGLUBmqOf_rGSrSp5NQbx0Bj0AooGN6hDHQJgEPW04armbvmu1_KZ_D8k0wa8Eo0abKeb5ozYY-ItMKqT8oWVTtm_ejkUvA1EGjpol5GXVxL-Ol-brdlnXRBJtprWbiQDI/s1600/ScreenShot737.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26mKsq9cQFFWtrwVW749uOpNx43xvSpfFiwRz5KMKLCjo2vtVVuotauPAVGRirLmknE4sO6exS0HsXbtfO8pKXtyd0nuL2cOMjD3AGMajXbhX58T7nDUdh361B6Yg0BvDJXpgFaI8WKOY/s1600/ScreenShot738.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26mKsq9cQFFWtrwVW749uOpNx43xvSpfFiwRz5KMKLCjo2vtVVuotauPAVGRirLmknE4sO6exS0HsXbtfO8pKXtyd0nuL2cOMjD3AGMajXbhX58T7nDUdh361B6Yg0BvDJXpgFaI8WKOY/s1600/ScreenShot738.png" /></a></div>
<span class="st"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
</div>
Now, right-click your project and under 'Debug as...' select the 'Debug configuration' option. In the new window select 'Zylin Embedded Debug (Native)' and click the 'New launch configuration icon' button:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSJx3kSc3KMT6tAT3HfmNi80osqCS96UlmqfsPrP4b-b2GzhuNX3g8U3KkIpG2j61ZtgI3mMLUN2ViokYlilRXszPd7FjeC9jqtMus0u_xOQ6_HdWDPQUnMtwnDdK2m-DUp5WI-On9VFX6/s1600/ScreenShot739.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSJx3kSc3KMT6tAT3HfmNi80osqCS96UlmqfsPrP4b-b2GzhuNX3g8U3KkIpG2j61ZtgI3mMLUN2ViokYlilRXszPd7FjeC9jqtMus0u_xOQ6_HdWDPQUnMtwnDdK2m-DUp5WI-On9VFX6/s320/ScreenShot739.png" height="301" width="320" /></a></div>
<br />
Fill out the Debug configuration name and there are now some tabs to fill out:<br />
<ul>
<li><span class="st">On the first tab, 'Main', in the C/C++ application box type: build/stdBoot.bin</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIHs0dnWqtcQWVyCG2XLkWEQw35t4esJ-1h6J3Zm8AU3jHrre1dNIB7X_Uk0z8gFKqOoVO_7cBMUkmiAxauIYiotv_cRuMxi-3qABj82Be18-E8cYeF8Y3Ldc0VOjPh2HcvwBRorfJPCaA/s1600/ScreenShot742.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIHs0dnWqtcQWVyCG2XLkWEQw35t4esJ-1h6J3Zm8AU3jHrre1dNIB7X_Uk0z8gFKqOoVO_7cBMUkmiAxauIYiotv_cRuMxi-3qABj82Be18-E8cYeF8Y3Ldc0VOjPh2HcvwBRorfJPCaA/s1600/ScreenShot742.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<ul>
<li><span class="st">On the second tab, 'Debugger', in the 'GDB debugger' box type: </span><strong style="font-weight: normal;">arm-none-eabi-gdb (if you've not added the yagarto/bin folder to your path then browse to that file)</strong></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfbn9ACWAv8hCJrUGTZVxPjFJXP-T31zfgzg0e7Cs1Tcrdie7CQKGnSLE3pYD6KjO_nPNjVnAQTuU53eotN43o4dPpby_Z-t3-u91FnxijcTzYGgKXV9rRKQn8q0IIBj0ISl5PKila28o/s1600/ScreenShot741.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfbn9ACWAv8hCJrUGTZVxPjFJXP-T31zfgzg0e7Cs1Tcrdie7CQKGnSLE3pYD6KjO_nPNjVnAQTuU53eotN43o4dPpby_Z-t3-u91FnxijcTzYGgKXV9rRKQn8q0IIBj0ISl5PKila28o/s320/ScreenShot741.png" height="243" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<ul>
<li><strong style="font-weight: normal;">On the third tab, in the 'Run' commands type:</strong></li>
</ul>
<strong style="font-weight: normal;"><strike>target remote localhost:3333</strike></strong><br />
<strong style="font-weight: normal;"><strike>monitor gdb_breakpoint_override hard</strike></strong><br />
<strong style="font-weight: normal;"><strike>monitor soft_reset_halt</strike></strong><br />
<strong style="font-weight: normal;"><strike>symbol-file build/stdBoot.bin</strike></strong><br />
<strong style="font-weight: normal;"><strike>break main </strike></strong><br />
<strong style="font-weight: normal;"><strike><br /></strike></strong>
<br />
target remote localhost:3333<br />
monitor reset halt<br />
monitor wait_halt<br />
monitor sleep 100<br />
monitor poll<br />
monitor flash probe 0<br />
monitor flash write_image erase main.bin 0x08000000<br />
<br />
<br />
<ul>
<li><span class="st">On the 4th and 5th tabs do nothing (you can 'add to favourites' on the 6th tab if you want to)</span></li>
</ul>
<span class="st">Next click 'Apply' and then 'Debug' - you should see the console window show a load of information (again check it for errors, of which there should be none) and you have just flashed your board back to the Maple bootloader. Save everything. You can now use this project to restore your Olimexino back to the standard bootloader if you ever have any problems, or if after using Eclipse you decide that you want to go back to the Maple IDE.</span><br />
<br />
<span class="st">I know this is quite long, so <strike>if I can I'll add some explanatory images</strike> I hope the images are useful!</span><br />
<span class="st"><br /></span>iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-87008319960453158762012-04-10T23:43:00.001+01:002012-04-10T23:43:55.102+01:00Stay on target!OK so I'm now into the implementation phase of my MSc project - see my previous post on the <a href="http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html" target="_blank">fuzzy transform</a> for what I was doing a while ago. Because my end-result is for a device to go into a vehicle I need to work in an <a href="http://en.wikipedia.org/wiki/Embedded_system" target="_blank">embedded environment</a> (my target environment) to accurately determine the capability of my system. If you're interested the target platform I'll be using it's called the <a href="http://www.olimex.com/dev/olimexino-stm32.html" target="_blank">Olimexino-STM32</a> and it's made by <a href="http://www.olimex.com/" target="_blank">Olimex</a>.<br />
<br />
Over the last few weeks I've found that there's an active community developing small systems using this and other devices, which is useful since it means there are other people doing things that I can learn from and also ensure that I don't inadvertently replicate anything that's already being worked on.<br />
<br />
As part of my project I need to do some prediction work, one way of doing this is the method of least squares, and I've described an approach to it in the linked PDF: <a href="http://iainism.co.uk/public/OLS_hardcode.pdf" target="_blank">Using least squares with a linear system</a><br />
<br />
Whether this is the approach I'll end up with is debatable, as the fuzzy transform may still have a few treats in store for me!<br />
<br />
<a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"><img alt="Creative Commons Licence" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" style="border-width: 0;" /></a><br />
<span href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type" xmlns:dct="http://purl.org/dc/terms/">'Using least squares with a linear system'</span> by <a href="http://iainism-blogism.blogspot.co.uk/" property="cc:attributionName" rel="cc:attributionURL" xmlns:cc="http://creativecommons.org/ns#">Iain Cunningham</a> is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-68954099704283494192012-01-10T01:06:00.002+00:002012-01-10T22:55:10.054+00:00I feel all fuzzy inside...Just kidding.<br />
<br />
I've not been around much recently as I've been working hard at my MSc project. For part of this I've had to implement something called a "Fuzzy Transform", this was initially presented by <a href="http://irafm.osu.cz/en/c29_irina-perfiljeva-phd-prof/" target="_blank">Irina Perfilieva</a> and has been developed by the <a href="http://irafm.osu.cz/" target="_blank">Institute for Research and Applications of Fuzzy Modeling (IRAFM)</a> at the <a href="http://www.osu.eu/" target="_blank">University of Ostrava</a> in <a href="http://en.wikipedia.org/wiki/Ostrava" target="_blank">Ostrava</a> in the Czech Republic.<br />
<br />
The way in which I'm presently using the Fuzzy Transform is one that provides a numerical analysis method that is a cross between <a href="http://en.wikipedia.org/wiki/Fuzzy_logic" target="_blank">fuzzy logic</a> and a <a href="http://en.wikipedia.org/wiki/Linear_filter" target="_blank">filtering function</a> (a filtering function is used to remove <a href="http://en.wikipedia.org/wiki/Noise" target="_blank">noise</a> [unwanted information] from a <a href="http://en.wikipedia.org/wiki/Signal_(electronics)" target="_blank">signal</a>; such functions are in use everywhere in our modern world, from cellphones to missile guidance systems). It's a numerical method, because it doesn't try to "guess" what gave rise to the original data (methods that try to work out what gave rise to the data in the first place are "<a href="http://en.wikipedia.org/wiki/Estimator" target="_blank">estimators</a>" and tend to use "<a href="http://en.wikipedia.org/wiki/Mathematical_model" target="_blank">mathematical models</a>" to represent whatever is generating the data from a given input); if you wanted to you could feed in a totally random stream of numbers and a numerical method would have a good go at approximating the numbers "with arbitrary accuracy" (this means "as well as you make it", see below).<br />
<br />
One of the things that the fuzzy transform provides as well as the filtering capability of the filtering function is an ability called "Universal Approximation", this means that provided any series of data a correctly set-up fuzzy transform can be used to approximate the data. Universal Approximators are useful since they allow you to do all kinds of fun stuff, such as pattern matching (for example, character recognition and face recognition), data compression and forecasting... but more on this later.<br />
<br />
So, let's take a varying series of data:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj1DF-SayvygCwN2ML_jHszly_BGnFlkbfWSo2t08hBQzh0R0r0NsFeGn6NwEjQxpfWakprTtR6VERo8BOJk8sLiTNyxrwr6EcUkd5OgEkm6psJutrqw2MS8BDB5i-pkWcSKV5XkJEefBs/s1600/ScreenShot214.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj1DF-SayvygCwN2ML_jHszly_BGnFlkbfWSo2t08hBQzh0R0r0NsFeGn6NwEjQxpfWakprTtR6VERo8BOJk8sLiTNyxrwr6EcUkd5OgEkm6psJutrqw2MS8BDB5i-pkWcSKV5XkJEefBs/s1600/ScreenShot214.png" /></a></div><br />
This isn't of anything very exciting other than something that provides a nice wiggly line (if you're really interested it's y=sin(x.π)+x with added zero mean, normally distributed noise with variance 0.01). So what happens if we use the fuzzy transform? We get a plot a little like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnv8g-cpkt9i0e_wcuh8tREdL2VCsOJQuYzPno6dlUVEi2pi6iy0rg9OLL7PPza8KMKbm8cLYnNnPMWJd4g3i5sy1hsjtDWGeldvt7-dX5m47HW0qlqef0zh16CirwrzZFpVbtb6IvX3v1/s1600/ScreenShot217.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnv8g-cpkt9i0e_wcuh8tREdL2VCsOJQuYzPno6dlUVEi2pi6iy0rg9OLL7PPza8KMKbm8cLYnNnPMWJd4g3i5sy1hsjtDWGeldvt7-dX5m47HW0qlqef0zh16CirwrzZFpVbtb6IvX3v1/s1600/ScreenShot217.png" /></a> </div><br />
The blue line in the above plot is the result of the Fuzzy Transform, this was obtained by dividing the original wiggly line into 10 horizontally measured sections, or partitions, taking the Fuzzy Transform of the data and then inverting (reversing) the transform; and you can see that it kind of matches the original wavy line, but as well as removing all the noise, the F-Transform has also removed a lot of the shape of the original line (we've lost information). Using 20 partitions gives this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXAdl8j6HXQighyphenhyphenlxX9ZauA0pd98sfhUhIy7zsTg9rp3C9v3QmafDTd7wWmYeQVyZFQ-r-p806aT1HWAOleOU8OaQoRN5c0reaIfShe8P9xc432cgB9zXtaRmYDRpf9cjZwjvT_CRSug8/s1600/ScreenShot216.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXAdl8j6HXQighyphenhyphenlxX9ZauA0pd98sfhUhIy7zsTg9rp3C9v3QmafDTd7wWmYeQVyZFQ-r-p806aT1HWAOleOU8OaQoRN5c0reaIfShe8P9xc432cgB9zXtaRmYDRpf9cjZwjvT_CRSug8/s1600/ScreenShot216.png" /></a></div><br />
Which uses the same colours for the noisy data and the approximation as previously and is a better fit, but still leaves a few gaps. While using 30 partitions gives this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVs5-Ft0OUNGbnPVBKbL2FH-Eoj5CTWUli0MNN5CKrlun3y2gN9mfmtUnaG_fFobJqqMPk5zAu118Qua5o4umIDIMtWTVBEDJ3aWkUpfpDSNof9Jd614WP8w-uRxuHZ-m8xBj8_cS5CLh7/s1600/ScreenShot218.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVs5-Ft0OUNGbnPVBKbL2FH-Eoj5CTWUli0MNN5CKrlun3y2gN9mfmtUnaG_fFobJqqMPk5zAu118Qua5o4umIDIMtWTVBEDJ3aWkUpfpDSNof9Jd614WP8w-uRxuHZ-m8xBj8_cS5CLh7/s1600/ScreenShot218.png" /></a></div><br />
Which again uses the same colours for the noisy data and the approximation as previously and almost exactly matches the original function, which I've plotted below (in green) along with the 30-partition approximation to allow an easy comparison:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgel5u5AUCGMhplaTnb65OHSyjC2EblrMNiUhTHMbYfs3zuWVIt_ohAb4m44fR9AA9em2gix0oerttkWnchbmQ9F7c9Avfl2u4mo3tvLSHVSo9apovGSgIReoUwVvrE8CNq3cVey5SL4Gba/s1600/ScreenShot219.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgel5u5AUCGMhplaTnb65OHSyjC2EblrMNiUhTHMbYfs3zuWVIt_ohAb4m44fR9AA9em2gix0oerttkWnchbmQ9F7c9Avfl2u4mo3tvLSHVSo9apovGSgIReoUwVvrE8CNq3cVey5SL4Gba/s1600/ScreenShot219.png" /></a></div><br />
So what does this mean? It means that the Fuzzy Transform can approximate the data "with arbitrary accuracy", which we can now see is a way of saying that it can match the data we feed into it (the red line) as closely as we want it to. Why might we not want to try to get an exact match? Well, firstly, the more accurate we make the approximation, the more calculations are required and so it takes longer to get the approximation, and, secondly, if we make the approximation too accurate then it will also start to approximate the noise (the Fuzzy Transform doesn't know where the data has come from, so it can't tell what is "noise" and what is "signal"). This means that we need to find a balance between ease of calculation, and being a good enough approximation, while still "filtering out" the noise.<br />
<br />
In the example above, doubling our "effort" by going from 10 to 20 partitions gives quite a large benefit, but putting in another half as much effort again to get from 20 to 30 partitions doesn't give a very big improvement (so if the end use could tolerate the inaccuracy of the 20 partition transform then we'd use that rather than "wasting effort").<br />
<br />
Finally, I suppose you want to know how can this be used? Well IRAFM and others have shown how the Fuzzy Transform can be used to detect patterns and relationships that underlie quite complex data. For example, <a href="http://www.sciencedirect.com/science/article/pii/S0888613X07000746" target="_blank">in one paper published in 2008</a> [subscription required] the Fuzzy Transform was used to provide a model of the GDP of the Czech Republic based on a set of other data, such as unemployment, the rate of inflation, etc. The Fuzzy Transform has also been used to <a href="http://irafm.osu.cz/research_report/108_rep108.pdf" target="_blank">automatically combine multiple images to provide an image that is of better quality overall than the constituent images</a> [PDF]. Pretty impressive, eh?<br />
<br />
If you want to learn more about the Fuzzy Transform, or the other things that IRAFM are involved in researching and developing then they have an <a href="http://irafm.osu.cz/en/c4_publications/" target="_blank">extensive list of publications</a> that are publicly available in PDF format.<br />
<br />
This may be a bit technical, so please ask questions, I'll do my best to explain, or point you to somewhere you can find more information!iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com1tag:blogger.com,1999:blog-5759945618284296392.post-28994532083490060812011-12-03T14:30:00.000+00:002011-12-03T14:31:01.248+00:00Breakfast time<table cellspacing="0" cellpadding="0" width="100%" style="padding-bottom:20px;padding-top:10px;"> <tr> <td style="line-height:1;text-align:left;padding-bottom:0px;"> <h3 style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;color:#262626;font-weight:bold;font-size:11px;"><a href="http://www.evernote.com/" style="color:#3697b3;font-weight:bold;text-decoration:none;">From Evernote:</a></h3> </td> </tr> <tr> <td style="line-height:1.3;text-align:left;padding-top:0px;padding-bottom:7px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#b5b5b5;font-size:11px;"> <h1 style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-bottom:0;padding-right:0;padding-left:0;color:#262626;font-weight:bold;padding-top:5px;font-size:18px;">Breakfast time</h1> </td> </tr> </table> <div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="ennote"><div>Using Evernote again to blog from my HTC, so please excuse any dodgy formatting or misplaced images! <div><br/></div> If you're ever in Leamington Spa before midday then you should seriously consider a visit to Alfonso's Place, on Station Approach. They do the best fried breakfasts in Leamington, and in fact one if the best I've had anywhere. I tend to go for the Breakfast Supreme: <div><br/></div><div><span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlJssbj-Ttb93voevUn_D5yDdccFheY-2X0tt4upTZk0WW4sbT_BjeqX-YUIMER4whZpQozOJGWZo5xTXcGukCr49Twp3PKo8euBuyEkXXhe-AP3SZT6VJ17yVDO9UpddeYQeQR9-leco_/s1600/624e87ca23db71fffde39573946442a2-761249.jpeg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlJssbj-Ttb93voevUn_D5yDdccFheY-2X0tt4upTZk0WW4sbT_BjeqX-YUIMER4whZpQozOJGWZo5xTXcGukCr49Twp3PKo8euBuyEkXXhe-AP3SZT6VJ17yVDO9UpddeYQeQR9-leco_/s320/624e87ca23db71fffde39573946442a2-761249.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5681909571989611186" /></a></span></div><div><br/></div> Which is awesome, and looks a bit like this: <div><br/></div><div><span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0kQlicT3oP6KGRICSduHJRI0rtUaBGjCzXHMPVw-4YRTDFngEnmnYHosPUzHRlDOpZOTblbfcL_-L1rcWAUT0TQu7bEnH0LJIu08QK22WoK-QDlzJg7vafb5FajV_3CTaHCSIahhL1-Nb/s1600/4fec69487681a956e3b3f0041d04c934-762541.jpeg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0kQlicT3oP6KGRICSduHJRI0rtUaBGjCzXHMPVw-4YRTDFngEnmnYHosPUzHRlDOpZOTblbfcL_-L1rcWAUT0TQu7bEnH0LJIu08QK22WoK-QDlzJg7vafb5FajV_3CTaHCSIahhL1-Nb/s320/4fec69487681a956e3b3f0041d04c934-762541.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5681909570229426178" /></a></span></div><div><br/></div> Obviously, it's not something that one should eat everyday, but it's a great occasional treat! If you're in the area you should definitely try it. After 11 at the weekends it can get very busy, so if you arrive later on in the breakfast shift then you may need to wait a while. <div><br/></div> Alfonso's also doubles as a Portuguese restaurant in the evenings, so if you fancy some salt cod or bitoque and it's later in the day then give it a go then too.<br/></div> </div> iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-9223958418683279632011-12-02T19:19:00.005+00:002011-12-03T10:41:36.917+00:00This is new...<table cellpadding="0" cellspacing="0" style="padding-bottom: 20px; padding-top: 10px;"><tbody>
<tr> <td style="line-height: 1; padding-bottom: 0px; text-align: left;"><h3 style="color: #262626; font-size: 11px; font-weight: bold; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0;"><a href="http://www.evernote.com/" style="color: #3697b3; font-weight: bold; text-decoration: none;">From Evernote:</a></h3></td> </tr>
<tr> <td style="border-bottom-color: #b5b5b5; border-bottom-style: solid; border-bottom-width: 1px; font-size: 11px; line-height: 1.3; padding-bottom: 7px; padding-top: 0px; text-align: left;"><h1 style="color: #262626; font-size: 18px; font-weight: bold; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 5px;">This is new...</h1></td> </tr>
</tbody></table><div class="ennote" style="-webkit-line-break: after-white-space; -webkit-nbsp-mode: space; word-wrap: break-word;"><div>Ok, I'm trying an experiment. I've just started seriously using <a href="http://www.evernote.com/" target="_blank">Evernote</a> to work on my MSc thesis. <br />
<div><br />
</div>It's great! Combined with <a href="http://www.swype.com/" target="_blank">Swype</a> on both my Android devices I can easily jot notes, take screenshots and link in references as I go along. I'm wondering why I never used it before. It's going to change my life. <br />
<div><br />
</div>Here is a photo of my desktop client showing how I've used Evernote to pick up relevant parts of my reading list. <br />
<div><span style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font-family: Tahoma; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqcUg_YoN-nqIkeoFgWzGTaUOXz0gZ-Ke5dUhEag0B3GpqOJRFs5en9wiDLEWWQMhhiTMhbpQhNPGcynZ5EriWkFbAvnqcv6F9zbMxAmQPHYvlBr3tMDYwRYpeYl33DBJUASaZ7Yi9RZrS/s1600/aba559e2a30eb0af7d79c3aea36e4f49-765689.jpeg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5681612804157092466" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqcUg_YoN-nqIkeoFgWzGTaUOXz0gZ-Ke5dUhEag0B3GpqOJRFs5en9wiDLEWWQMhhiTMhbpQhNPGcynZ5EriWkFbAvnqcv6F9zbMxAmQPHYvlBr3tMDYwRYpeYl33DBJUASaZ7Yi9RZrS/s320/aba559e2a30eb0af7d79c3aea36e4f49-765689.jpeg" /></a></span></div><div><br />
</div>From the photo you can see I've tagged the note with relevant keywords, and inserted images where I want to quote equations.</div><br />
What else? Oh yes, I wrote this entirely in Evernote as a note and then sent it to <a href="http://www.blogger.com/" target="_blank">Blogger</a> by email through the "share" feature :-)<br />
<br />
Oh and did I mention the search feature? Evernote has implemented <a href="http://en.wikipedia.org/wiki/Optical_character_recognition" target="_blank">OCR</a> (character recognition) so that your searches will also give results for words that are in images. How cool is that!?</div>iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-77823686636601327342011-11-30T11:38:00.000+00:002011-11-30T11:38:08.965+00:00DELIVERing the future<span class="Apple-style-span" style="background-color: black; color: white; font-family: inherit;">Crumbs - it's a while since I've been here, in my defence it's been a very busy time. Work has been off the scale, and studying as well has loaded me up to the point where pretty much all I do is eat, work, sleep and study since July! Only another 9 months of this to go though...</span><br />
<span class="Apple-style-span" style="background-color: black; color: white; font-family: inherit;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: black; color: white; font-family: inherit;">Anyway, what's been going on? Well at work we have secured a part in an EU seventh framework programme - with the acronym "DELIVER" (do you see what I did in the title now?). The EU webpage for this is here: <a href="http://www.green-cars-initiative.eu/public/projects/deliver">http://www.green-cars-initiative.eu/public/projects/deliver</a></span><br />
<span class="Apple-style-span" style="background-color: black; color: white; font-family: inherit;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: black; color: white; font-family: inherit;">In case the link moves or changes this says:</span><br />
<span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;"><br />
</span></span><br />
<blockquote class="tr_bq"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;"><span class="" id="parent-fieldname-description"><b>Design of Electric Light Vans for Environment-Impact Reduction</b></span></span></span></blockquote><br />
<blockquote class="tr_bq"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;">The DELIVER project concept aims to explore urban light duty vehicle concepts intended for larger scale production by executing a broad scope conceptual design study which will start by establishing initial design specifications and continue right through to the detailed realistic performance assessment of one prototyped vehicle concept.</span></span></blockquote><blockquote class="tr_bq"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;">DELIVER is pre-competitive, focusing on the rules of the design of ELDVs to be launched by 2020, and providing a platform for integrated design brought together into one holistic design by a team of experienced design engineers and design researchers of various backgrounds.</span></span></blockquote><blockquote class="tr_bq"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;">The project will build upon the progress made and foreseen in subsystems and main components that are to be integrated into the ELDV through networking with complementary R&D projects, as well as with the support of a multi stakeholder Advisory Board consisting of high level representatives of Europe's cities, large urban delivery fleet owners and others.</span></span></blockquote><div class="" id="parent-fieldname-text"><div style="line-height: 1.5em; margin-bottom: 0.75em;"></div><div style="line-height: 1.5em; margin-bottom: 0.75em;"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;"><br />
</span></span></div><div style="line-height: 1.5em; margin-bottom: 0.75em;"><span class="Apple-style-span" style="background-color: black;"><span class="Apple-style-span" style="color: white; font-family: inherit;">If you want to find out more about the project participants and the EU Green Cars initiative then there is a project portfolio document (PDF) available from the EU website here: <a href="http://www.green-cars-initiative.eu/public/documents/GreenCarsInitiative-Broschure_09-2011_WEB.pdf/view" style="line-height: normal;">http://www.green-cars-initiative.eu/public/documents/GreenCarsInitiative-Broschure_09-2011_WEB.pdf/view</a></span></span><br />
<span class="Apple-style-span" style="background-color: black;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: black; color: white;">As a small UK company it's a measure of how well the UK electric vehicle industry is regarded for us to be involved in an international concept vehicle project with both VW and Fiat - and we have some other similar projects in the application process, so I hope to be able to talk about these more in the future.</span></div></div>iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-60797520303054105862011-06-17T18:21:00.000+01:002011-06-17T18:21:12.867+01:00Something I wrote a while ago about the USA...<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">The following is something that I wrote a while ago as a Facebook "note", I thought I'd copy it here for you to read...</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><strike> </strike></span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"><b>Wednesday, 21 July 2010 at 04:19 UTC</b></span><br />
<span class="Apple-style-span" style="color: grey;"><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"><b><br />
</b></span></span><br />
<span class="Apple-style-span" style="line-height: 16px;"><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">I've just had the most amazing drive in the most dire car along the most boring roads that I've ever encountered. Journey: Eastern Indiana to North-Western Indiana; Car: Chevrolet HHR; Time: 8pm to 11pm<br />
<br />
I set off about 30 minutes before sunset, and as I got onto US-33 the sun hit the horizon, and the verges and the air above them started to glitter. The glittering was thousands of fireflies along the roadside reacting to my approach. As the sun dipped lower the fireflies became more obvious, until it seemed that I was driving along a tunnel of lights similar to a 70s sci-fi effect. Then Venus started shining in the sky above the sun.<br />
<br />
And as the sun disappeared I was driving into a huge orange sunset with Venus overhead and surrounded by fireflies. Absolutely magical, and I've just done it no justice at all with these few brief words. But that is the story of my last evening in the USA.</span></span>iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0tag:blogger.com,1999:blog-5759945618284296392.post-40555300101237923092011-06-17T17:49:00.001+01:002011-06-17T18:15:15.976+01:00Ohai2u!<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Hello there!</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">So here we are... I have no idea where this is going to go, or how it will get there, but it should be interesting to find out.</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">I suppose the first thing I should tell you is a few things about me, for those too lazy to read my account; I live in Warwick in the UK and I am in the middle of a few things, I'll probably write about them now and then:</span><br />
<br />
<ol><li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">A part-time MSc in Control Engineering. This came about after an argument with a (now ex) girlfriend where we split up for a while, I decided that I would need something to do, and decided, for want of a better expression, to "improve myself" in a way that might make me more useful at work (q.v.). At the time of writing I have about 9 months left to go (which will be taken up with my project, this will involve some Matlab and the report for which will have to be written in LaTeX).</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Teaching myself to play the guitar (this has been going on for about 6 years), one day I expect I'll get around to paying someone for a lesson.</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Relearning to play the cornet (I first learnt at school, a few years ago now).</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Running a photography business.</span></li>
<li><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Sitting on the board of a high technology company that is in the field of electric vehicle design and engineering. Primarily I'm responsible for all electrical and electronic systems activities, but I also have some input into other areas, such as customer service and information systems.</span></li>
</ol><div><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br />
</span></div><div><span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;">Something I'm planning to add to the above is that I want to work through, "<span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">The Elements of Computing Systems: </span><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">Building a Modern Computer from First Principles" b</span><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">y <a href="http://www.cs.huji.ac.il/~noam/">Noam Nisan</a> and <a href="http://www.faculty.idc.ac.il/schocken/">Shimon Schocken</a>, which is freely available at:</span> <a href="http://www1.idc.ac.il/tecs/">http://www1.idc.ac.il/tecs/</a> so feel free to join in if you'd like to.</span></div>iainismhttp://www.blogger.com/profile/07936198489144722800noreply@blogger.com0