-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1 lines (1 loc) · 12 KB
/
index.html
1
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta http-equiv="content-language" content="en-gb"/> <meta name="language" content="english"/> <meta name="author" content="charles keepax"/> <meta name="robots" content="index, follow"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <link rel="sitemap" href="/sitemap.xml" type="application/xml" title="Sitemap"/> <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"/> <link rel="stylesheet" href="/styles/layout.css" type="text/css" media="screen and (min-width: 750px)"/> <link rel="stylesheet" href="/styles/m_layout.css" type="text/css" media="screen and (max-width:750px)"/> <link rel="stylesheet" href="/styles/webblog.css" type="text/css" media="screen and (min-width: 750px)"/> <link rel="stylesheet" href="/styles/m_webblog.css" type="text/css" media="screen and (max-width:750px)"/> <link rel="alternate" href="/atom.xml" type="application/atom+xml" title="Charles Keepax Blog Feed"> <meta name="description" content="Charles Keepax's blog about anything that crosses his mind, but probably mostly food, fishing and programming."/> <meta name="keywords" content="charles keepax, charles, keepax"/> <title>Charles Keepax - Blog</title> </head> <body> <div> <div id="title_container"> <h1>Charles Keepax's Blog</h1> <a id="feedlink" href="/atom.xml"><img src="/image/rss.svg" height="24" width="24" alt="Atom Feed"/></a> </div> <div id="sidebar_background"></div> <div id="column_container"> <div id="sidebar_container"> <img id="sidebar_icon" src="/image/menu.svg" alt="Toggle Navigation Menu" height="24" width="24"/> <ul class="nav_list"> <li class="nav_item"><div><a href="/blog/blog.html"><img class="spicon" src="/image/calendar.svg" height="12" width="12"/>Blog</a></div></li> <li><ol id="blogposts_sidebar" class="nav_list"> <li class="nav_item"><div> <a href="/blog/WebsiteIcons.html">Website Icons</a> </div></li> <li class="nav_item"><div> <a href="/blog/KeypressesFromJoystick.html">Keypresses From Joystick</a> </div></li> <li class="nav_item"><div> <a href="/blog/IntelHEXChecksumsInVim.html">Intel HEX Checksums in Vim</a> </div></li> <li class="nav_item"><div> <a href="/blog/HTCHeroDisassembly.html">HTC Hero Disassembly</a> </div></li> <li class="nav_item"><div> <a href="/blog/CPPForEmbedded.html">C++ for Embedded?</a> </div></li> <li class="nav_item"><div><a href="/blog/archive.html">Blog Archive</a></div></li> <li class="nav_item"><div><a href="/blog/tags.html">Blog Tags</a></div></li> </ol></li> <li class="nav_item"><div><a href="/cv.html"><img class="spicon" src="/image/doc.svg" height="12" width="12"/>Curriculum Vitae</a></div></li> <li><ol class="nav_list"> <li class="nav_item"><div><a href="/cv.html#cv_profile">Profile</a></div></li> <li class="nav_item"><div><a href="/cv.html#cv_employmenthistory">Employment History</a></div></li> <li class="nav_item"><div><a href="/cv.html#cv_education">Education</a></div></li> <li class="nav_item"><div><a href="/cv.html#cv_publications">Publications</a></div></li> <li class="nav_item"><div><a href="/cv.html#cv_references">References</a></div></li> </ol></li> <li class="nav_item"><div><a href="/links.html"><img class="spicon" src="/image/link.svg" height="12" width="12"/>Links</a></div></li> <li><ol class="nav_list"> <li class="nav_item"><div><a href="https://bitbucket.org/charleskeepax">Bitbucket</a></div></li> <li class="nav_item"><div><a href="http://github.com/charleskeepax">Github</a></div></li> <li class="nav_item"><div><a href="http://uk.linkedin.com/pub/charles-keepax/24/b79/59a">LinkedIn</a></div></li> <li class="nav_item"><div><a href="http://stackoverflow.com/users/735744/charles-keepax">Stackoverflow</a></div></li> </ol></li> <li class="nav_item"><div> <a href="mailto:ckeepax@gmail.com"><img class="spicon" src="/image/email.svg" height="12" width="12"/>Contact</a> </div></li> </ul> </div> <div id="content_container"> <div class="section"> <h2>Website Icons</h2> <div class="subsection"> <p>It is really long overdue I updated this site to be a little more friendly to Hi-<abbr title="Dots Per Inch">DPI</abbr> screens, as a first step towards this I thought I would replace the icons on the site with <abbr title="Scalable Vector Graphics">SVG</abbr> versions. These should scale with the site once I update it to scale correctly with the screen size/<abbr title="Dots Per Inch">DPI</abbr>. Having had one of my rare flights of artistic fancy, it occurred I might as well share the icons explicitly on my site.</p> <p>Initially I started out using <a href="http://inkscape.org/">Inkscape</a> to draw my icons but the outputed <abbr title="Scalable Vector Graphics">SVG</abbr> wasn't really coming out as clean and simple as I had hoped, so I decided to hand code the icons given they are all pretty simple.</p> <img src="/image/calendar.svg" height="120" width="120"/> <img src="/image/doc.svg" height="120" width="120"/> <img src="/image/email.svg" height="120" width="120"/> <img src="/image/home.svg" height="120" width="120"/> <img src="/image/link.svg" height="120" width="120"/> <img src="/image/tag.svg" height="120" width="120"/> <img src="/image/rss.svg" height="120" width="120"/> <p>I am placing these icons under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>, which basically means you can do what you want with them as long as you give me credit for making them.</p> <p>Finally, although the versions here on the site are likely to remain relatively up to date, they have also had some miniaturisation done on them. I am adding the full untouched versions a repository on my <a href="https://github.com/charleskeepax/webicons">Github</a>, which is probably a better bet if you want to modify the images.</p> <div class="bp_footer"> <span class="rnote">Posted by <span class="bp_name">Charles Keepax</span> on <span class="bp_date">10/05/2015</span></span> <span class="bp_tags"> <img class="spicon" src="/image/tag.svg" height="16" width="16" alt="tags:"/> <a href="/blog/tags.html#bar_general">general</a> <a href="/blog/tags.html#bar_art">art</a> </span> </div> </div> </div> <div class="section"> <h2>Keypresses From Joystick</h2> <div class="subsection"> <p>I have been playing quite a few smaller indie games lately and have found that whilst the style of these games often lends itself to using a gamepad, joystick support under Linux on these games is often quite poor. So I wrote a small program to fake keyboard events based on joystick events, thus circumventing any poor joystick support.</p> <p><a href="/blog/KeypressesFromJoystick.html">Read More...</a></p> <div class="bp_footer"> <span class="rnote">Posted by <span class="bp_name">Charles Keepax</span> on <span class="bp_date">18/08/2013</span></span> <span class="bp_tags"> <img class="spicon" src="/image/tag.svg" height="16" width="16" alt="tags:"/> <a href="/blog/tags.html#bar_development">development</a> <a href="/blog/tags.html#bar_gaming">gaming</a> </span> </div> </div> </div> <div class="section"> <h2>Intel HEX Checksums in Vim</h2> <div class="subsection"> <p>If you do any work in the embedded world you have no doubt come across <a href="http://en.wikipedia.org/wiki/Intel_HEX">Intel HEX</a> files. Intel HEX files provide a text representation of binary data and are often used for programming of Flash and EEPROM parts. Each line of the file contains a checksum at the end, when manually editing the file updating the checksums is very annoying. To fix this I have written a small bit of vim script to automatically correct said checksum.</p> <p><a href="/blog/IntelHEXChecksumsInVim.html">Read More...</a></p> <div class="bp_footer"> <span class="rnote">Posted by <span class="bp_name">Charles Keepax</span> on <span class="bp_date">24/01/2012</span></span> <span class="bp_tags"> <img class="spicon" src="/image/tag.svg" height="16" width="16" alt="tags:"/> <a href="/blog/tags.html#bar_intelhex">intel hex</a> <a href="/blog/tags.html#bar_vim">vim</a> <a href="/blog/tags.html#bar_development">development</a> <a href="/blog/tags.html#bar_embedded">embedded</a> </span> </div> </div> </div> <div class="section"> <h2>HTC Hero Disassembly</h2> <div class="subsection"> <p>Recently my HTC Hero has developed a few faults and with it being out of warranty I though I would have a crack a fixing them myself. Quite a while a go one of the directions on my phones trackball ceased to function, now given that you don't use the trackball very often I mostly ignored this. However the touch screen then went completely nuts. The bottom 10% of the screen would often be completely unresponsive and sometimes it would imagine additional fingers poking the screen causing all sorts of weird behaviour. This, it turns out, is caused by the screen digitizer giving up the ghost; that's the bit of the phone that senses your finger poking the screen. This <a href="http://www.youtube.com/watch?v=osFlCJDFD9Q">youtube video</a> gives a good sense of what this issue looks and feels like if you are trying to diagnose it yourself. Anyway this made the phone rather infuriating to use, so a fix was required and whilst at it I might as well fix that pesky trackball as well.</p> <p><a href="/blog/HTCHeroDisassembly.html">Read More...</a></p> <div class="bp_footer"> <span class="rnote">Posted by <span class="bp_name">Charles Keepax</span> on <span class="bp_date">17/09/2011</span></span> <span class="bp_tags"> <img class="spicon" src="/image/tag.svg" height="16" width="16" alt="tags:"/> <a href="/blog/tags.html#bar_hardware">hardware</a> <a href="/blog/tags.html#bar_mobile">mobile</a> </span> </div> </div> </div> <div class="section"> <h2>C++ for Embedded?</h2> <div class="subsection"> <p>The term embedded system is rather vague, so it is perhaps prudent to narrow our field a little. Primarily, we are focusing on very small devices, that is development on small <abbr title="Digital Signal Processor">DSP</abbr> and microcontroller based systems running primarily out of the <abbr title="Central Processing Unit">CPU</abbr>'s internal memory. We shall discuss this scale of system mainly because use of C++ on a 32-bit <abbr title="Advanced RISC Machine">ARM</abbr> processor running linux is hardly contentious. These systems are about as small as you get and often bytes/clock cycles will count. Conventional wisdom generally dictates that we should avoid the use of C++ in such systems entirely, and stick to C and assembly. Personally I don't agree, but certainly C++ must be used with care and we will not build such a program using the same style and idioms we would for a desktop application.</p> <p><a href="/blog/CPPForEmbedded.html">Read More...</a></p> <div class="bp_footer"> <span class="rnote">Posted by <span class="bp_name">Charles Keepax</span> on <span class="bp_date">10/07/2011</span></span> <span class="bp_tags"> <img class="spicon" src="/image/tag.svg" height="16" width="16" alt="tags:"/> <a href="/blog/tags.html#bar_development">development</a> <a href="/blog/tags.html#bar_embedded">embedded</a> <a href="/blog/tags.html#bar_c++">c++</a> </span> </div> </div> </div> </div> <div id="footer_spacer"></div> </div> <div id="footer_container"> <p>Copyright © Charles Keepax 2010-2022. All rights reserved.<a id="privacy_policy" href="/privacy.html">Privacy Policy</a></p> </div> </div> <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script type="text/javascript">$(document).ready(function(){var a=true;if($("#sidebar_icon").is(":visible")){a=false;$("#sidebar_container > .nav_list").animate({height:"hide"},300)}$(window).resize(function(){if($(window).width()>750||a){$("#sidebar_container > .nav_list").show()}else{$("#sidebar_container > .nav_list").hide()}});$("#sidebar_icon").click(function(){a=!a;$("#sidebar_container > .nav_list").animate({height:"toggle"},300)});$("h2").click(function(){$(this).siblings(".subsection").animate({height:"toggle"},300);if($(this).children("span").length){$(this).children("span").remove()}else{$(this).prepend("<span>+ </span>")}})});</script> </body> </html>