-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.json
1 lines (1 loc) · 19.2 KB
/
search.json
1
{"entries":[{"title":"404","url":"/404.html","date":null,"categories":[],"body":" 404 This page has just discovered that Darth Vader is his father and ran away to not be found. Go back to the homepage. ©2014, anton . Some rights might be reserved, who really cares? . "},{"title":"Archive","url":"/archive/index.html","date":null,"categories":[],"body":" 08 April 2014 Ag, Silver Searching in Emacs I always seem to run into the constant problem of having to change multiple variables, symbols, function names, and other usually mundane parts of my code on a regular basis. Most likely due to the fact that I first name everything in a random, train of thought manner, only realising... 22 January 2014 Get Things Done: STM32 Development This article will go through the required steps to setup an environment for writing, programming, and debugging code for ARM Cortex-M processor. As I am predominately a OS X user (sometimes Linux depending on my mood) the information provided is tailored towards OS X users, however, as all of the... 08 November 2013 The Emacs Curse It never ceases to amaze me how long I can procrastinate before actually deciding to get shit done. It would maybe be not as troubling if I hated what I do on a daily basis, or the work that I had to get done was mind numbing dull, but it’s... 04 November 2013 virtually, a new beginning I decided, one fateful day (or maybe not so fateful, but rather ill-conceived) - that it would be a good idea to blog using orgmode. I use orgmode for many things - scheduling, expenses, charts of varying kind, time-tracking, the list goes on. Blogging in org seemed like a natural... "},{"title":"Parallela: A Beginners Guide to Parallel Computing","url":"/racd/clustered/index.html","date":null,"categories":[],"body":" "},{"title":"Home","url":"/index.html","date":null,"categories":[],"body":" Home About Archive Clustered Embedded #!ype because sometimes different is better. Page of ©2014, anton . Some rights might be reserved, who really cares? . (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-53880831-2', 'auto');ga('require', 'displayfeatures');ga('require', 'linkid', 'linkid.js');ga('send', 'pageview'); "},{"title":"About some stuff.","url":"/about/index.html","date":null,"categories":[],"body":"Hi, my name is Anton, and I like colouring, long walks on the beach, and getting caught in almost inevitable London rain. Here's a bit about me... I Code in (depending on the day and type of project): Python JavaScript C++ Embedded C Java UNIX Shell Perl R HTML CSS+SASS Clojure Common Lisp SQL I Build Embedded whatchamacallits with: ARM Processors Raspberry Pi Parallella I usually can be found using Mac OS X (a very hacked up version, that is perfectly mine) When I edit text I use the editor of RSI crippled champions, Emacs. If I find myself bored I'll be most likely booting up Linux (Kali) to dabble around running random PyCuda scripts trying to crack my WiFi or crush my server in a hopes of rebuilding it on-top of the rubble, stronger and more impenetrable then it was before. Some things that interest me are... GPU Accelerated Computing with Python, wearables, modular synthesis, embedded systems design, creative coding, Emacs, music production, foley, sound engineering, monome, open source software, MAKE magazine, 3D Printing, screen printing, carpentry, hardware hacking, and typography. if you wanna know more, look at my CV - it's got similar stuff plus a bit more extra suit and tie sort of business stuff. CV email "},{"title":"From Arduino to ARM","url":"/racd/embedded/index.html","date":null,"categories":[],"body":"Get Started 22 January 2014 Get Things Done: STM32 Development This article will go through the required steps to setup an environment for writing, programming, and debugging code for ARM Cortex-M processor. As I am predominately a OS X user (sometimes Linux depending on my mood) the information provided is tailored towards OS X users, however, as all of the... Examples First Steps: Blink [in progress] Beyond the flashing light [in progress] Resources Here is a list of resources I have helpful during the transition from Arduino to ARM development. STM32 Open Source Course Course Page Build template for projects using the STM32VL-Discovery Board Book Discovering the STM32 Microcontroller libopencm3 Wiki - Main Project Page github/libopencm3 github/libopencm3-examples libopencm3 API Documentation Reference Manuals Cortex-M3 Reference Manual RM0008: STM32F1xx RM0041: STM32F100xx "},{"title":"virtually, a new beginning","url":"/posts/2013/11/04/virtually-a-new-beginning","date":"2013-11-04 00:00:00 -0700","categories":[],"body":"I decided, one fateful day (or maybe not so fateful, but rather ill-conceived) - that it would be a good idea to blog using orgmode. I use orgmode for many things - scheduling, expenses, charts of varying kind, time-tracking, the list goes on. Blogging in org seemed like a natural extension of this already ill-fated, ill-conceived, awesomely nerd trapped system I have developed for myself. How it all came together This blog uses a combination of a few tools that have become very dear to me - the aforementioned orgmode, ispell (because I’m using friggin emacs to write all this drivel), a ruby static site generator - nanoc, and some hacked together bits of code (one of which is org-ruby, I’ll explain this one in detail at a later time - there is a surprisingly limited amount of documentation on how to use it effectively) All of this heaping junk pile of snippets has come together in isoty.pe - my effort to help clog the stinking drain that the Internet has become (don’t get me wrong I spend a good majority of my time in this cesspool of delights). In [very needed] Conclusion I feel I should warn, alert, tell you what you will encounter on this site - don’t be afraid, it’s not a NSFW warning (it could be a little though I guess, as your boss probably would not enjoy you wasting endless hours looking at pointless pictures of pandas) - the site is my endless hacking, tweaking, replace-stringing of the various tools I use on a daily basis to GSD (for the GTD crowd GSD is my version where I replace the David Allen acronym “Get Things Down” with the more work appropriate “Get Shit Done”) I hope you enjoy this journey to the deep, bon voyage to sanity, this different, but hopefully better foray into Internet cesspiting. "},{"title":"The Emacs Curse","url":"/posts/2013/11/08/problematic-procrastination","date":"2013-11-08 00:00:00 -0700","categories":[],"body":"It never ceases to amaze me how long I can procrastinate before actually deciding to get shit done. It would maybe be not as troubling if I hated what I do on a daily basis, or the work that I had to get done was mind numbing dull, but it’s unfortunately not (I saw unfortunately because then I would have an excuse as to why I’m a lazy sod). Brief notes on a day I would like to say I wake up energised and rearing to go, but like most, I wake in a fog, dragging my sulking ass out of bed, trying desperately to summon some celestial force to help me muster the focus to stay on track with tasks I need to get done. Side note: Freelance is the procrastinators worst nightmare (although I have found many a way to procrastinate in a normal work environment as well, see also: reverse toilet sleeping) After raking large amounts of crust from my tired eyes I start my already behind day with a cup of tea and a wonderfully delicious cigarette (if you don’t smoke you should try it, really it’s a lot of fun (no sarcasm, just pure smoking love)) Smoking and tea drinking over, I either turn on some stupid cartoon on one of a handful of streaming TV websites and proceed to say at the end of every episode “after this one I’ll get to work” - this has become problematic to the point that I downloaded an app to block specific sites (unfortunately I never turn this app on). Once TV show watching has been completed I continue doing absolutely useless, time wasting activities - one of my favourite being the aimless pursuit of customising Emacs to the point of insanity. The Emacs Curse I believe Richard Stallman whilst designing Emacs, deviously devised to create a piece of shit, almost text editor, time vampire that was more addictive then Facebook or all its other time sucking compadres. Half serial time killer, half insane genius, Stallman created the bane of my existence, as for some reason I feel as though changing my dotemacs file is somehow kind of like doing actual work - this is not the case. The calm after the storm With the drudge through the wasteland that is my morning over, actual money making, cash flowing work can begin - this usually means possibly taking a shower and then eating food so that around 3pm I can start sewing, soldering, or hacking some slapped together, haphazardly made project together. All in all work does get done and deadlines are hit, but oh how I crave the day when this process is mitigated down to a streamline flow making a 40 hour work week possibly possible. In (ardently needed) conclusion It’s a love hate thing in my opinion - procrastination is beautiful - almost wonderful to say the least - the unfortunate part is that ignorance does not exist, making it virtually impossible to forget the fact that if all the chaff could be removed, I might actually build something useful for myself, and possibly others. Another 20 minutes down the drain writing this god forsaken pile of empty words - I really hope you didn’t read to the end of this - if so go to some work, or find a better blog to read. I like turtles. "},{"title":"Get Things Done:<br/>STM32 Development","url":"/posts/2014/01/22/stm-dev-notes","date":"2014-01-22 00:00:00 -0700","categories":["racd","embedded","project_001"],"body":"T his article will go through the required steps to setup an environment for writing, programming, and debugging code for ARM Cortex-M processor. As I am predominately a OS X user (sometimes Linux depending on my mood) the information provided is tailored towards OS X users, however, as all of the tools used in the setup are open-source, the information should be transferable to other platforms. Setup Parts List ST STM32VL-DISCOVERY board - or any other ARM Cortex-M Processor, however most of the examples shown will be for the STM32VL ST-Link/v2 (or other compatible ICD/Programmer, for STM32) NOTE: If you have the STM32VL-Discovery board, there is an ST-Link built-in, and it is not required to get an external ST-Link, however if you plan on developing custom projects built around the ST range of microcontrollers it may be worth to get one. You will also need: Wires, LED and other components you may want to play around with, note that for each example I will list the parts used with links to where you can get them. A computer, but given you are reading this I am going to assume you have one. Toolchain Homebrew installation To manage packages on my mac (OS X 10.9), I use homebrew, so I will show you how to set that up, however if you are on Linux, or prefer a different package manager (i.e. macports), most of these packages should be available. You can also alternatively install all of these packages manually, though I would advise against it, as in my experience it can be a road riddled with bugs. Homebrew install $ ruby -e \"$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)\" $ brew doctor gcc-arm-none-eabi install You are going to need a compiler to generate your object code that will be loaded onto your microcontroller. To do this you are going to need a toolchain. The GNU toolchain for ARM Cortex-M and Cortex-R processors is really great, and can be easily installed using homebrew. (Note: you can use an IDE for ARM development, however the examples and instructions here are built around the GNU ARM toolchain. Further, if you are developing on OS X or Linux IDE support for ARM development is limited with most being built specifically for Windows) Installing the GNU Toolchain with Homebrew $ brew install https://raw.github.com/PX4/homebrew-px4/master/gcc-arm-none-eabi-47.rb ST-LINK The ST-Link (or compatible ICD/Programmer) is essential for ARM microcontroller development. It is an in-circuit debugger and programmer for the STM8 and STM32 microntroller families. Installing ST-Link Utils using Homebrew $ brew install automake autoconf libusb libusb-compat $ sudo easy_install pyyaml $ mkdir ~/Development $ cd ~/Development $ mkdir ~/Development/embedded $ cd ~/Development/embedded $ mkdir ~/Development/embedded/tools $ cd ~/Development/embedded/tools $ git clone https://github.com/texane/stlink.git #ST-LINK command line utility #Source: https://github.com/texane/stlink $ cd ~/Development/embedded/tools/stlink/ $ ./autogen.sh $ ./configure $ make Extra Configurations for ST-Link/v1 The ST-Link/v1’s SCSI emulation is very broken, You will need to tell your operating system to ignore the ST-Link/v1, as the SCSI emulation on it doesn’t play nice with UNIX systems. Do one of the following before using your ST-Link Option 1: $ modprobe -r usb-storage $ modprobe usb-storage quirks = 483:3744:i Option 2: #add \"options usb-storage quirks=483:3744:i\" to /etc/modprobe.conf #then $ modprobe -r usb-storage $ modprobe usb-storage Option 3: $ cp stlink_v1.modprobe.conf /etc/modprobe.d #then $ modprobe -r usb-storage $ modprobe usb-storage Notes for ST-Link/v2 The ST-Link/v2 should work right away, nevertheless, doing the above fix for STLINKv1 won’t hurt anything and will prevent you from having to do the work later if you are using an ST-Link/v1. Using ST-Util You must launch st-util with “-1” flag (source) $ /path_to_stlink/st-utils -1 #or if you have added the stlink folder to your path $ st-utils -1 Setting up a Development Environment for STM32 Projects Option 1, Firmware Lib => Simple libopencm3 The libopencm3 project is a good place to start with ST programming. Featuring a large free/libre/open-source (LGPL v3, or later) firmware library for various ARM Cortex-M3 microcontrollers, including the ST STM32 range, libopencm3 offers examples, community and documentation to help for a smooth transition from Arduino to ARM. To get more familiar with libopencm3 go to there main wiki @ http://libopencm3.org/wiki/Main_Page libopencm3 quick start The code below will help you to setup a workflow to develop for ARM Cortex-M microcontrollers using the resources available from libopencm3. $ cd ~/Development/embedded/ $ git clone https://github.com/libopencm3/libopencm3-examples.git $ cd libopencm3-examples $ git submodule init $ git submodule update $ make Test to see everything works (Note: The Example below is for the ST STM32VL-DISCOVERY board ) $ cd examples/stm32/f1/stm32vl-discovery/miniblink/ $ make $ cd ~/Development/embedded/tools/stlink/ $ ./st-util #Short way $ arm-none-eabi-gdb miniblink.elf -ex \"tar ext :4242\" ( gdb ) load ( gdb ) continue Option 2, Bare Metal => Fiddly (Coming Soonish) Helpful resources Here is a list of helpful links to tutorials and information to get you started on the path to development using ARM microcontrollers STM32 Open Source Course Course Page Build template for projects using the STM32VL-Discovery Board Book Discovering the STM32 Microcontroller libopencm3 Wiki - Main Project Page github/libopencm3 github/libopencm3-examples libopencm3 API Documentation Reference Manuals Cortex-M3 Reference Manual RM0008: STM32F1xx RM0041: STM32F100xx "},{"title":"Ag, Silver Searching in Emacs","url":"/posts/2014/04/08/silver-searching-in-emacs","date":"2014-04-08 00:00:00 -0600","categories":[],"body":"I always seem to run into the constant problem of having to change multiple variables, symbols, function names, and other usually mundane parts of my code on a regular basis. Most likely due to the fact that I first name everything in a random, train of thought manner, only realising later that a more useful, explanatory definition is required. Up until last night I found myself opening and closing multiple files after spending a few minutes in each finding and replacing keywords, and then ultimately running my code to find out I missed a few in this file, and a few in that file. Take for example two files - one named foobar, and the other named foofoo. In both foobar and foofoo I have a something with the keywords foofunct. Now this something (variable, function, whatever) needs to have the same name in both these files. So I decided while editing the first file foobar that I want to change foofunct to foodef. With the change made to foobar lock in place and saved, I attempt to run my code, ultimately to be greeted by the wonderful world of errors saying something of the sort “your doing it wrong, I can’t find your flipping foofunct in foofoo anymore because it’s not in foobar” Now this is an ongoing problem I’ve had and have always thought there has to be a better way… Well maybe I'm just ignorant Enter “The Silver Searcher” or “ag” for sort. Ag is a wonderful command line tool that lets you quickly search a code file, or set of files, to find a specific keyword within those file. Ag from the command line is awesome, but Ag in Emacs is amazing. By adding a few simple lines to my dotemacs file I am not able to find, replace, and view a single keyword across multiple files within a matter of seconds. Adding some silver to your search (the code bit) First you are going to have to make sure you have ag installed. On Mac you can do this through homebrew very easily (if you don’t have homebrew installed already, join the future and install it) Homebrew $ brew install the_silver_searcher Macports $ port install the_silver_searcher Linux (Debian/Ubuntu) $ apt-get install silversearcher-ag note: substitute apt-get for whichever package manager you use regularly In your dotemacs In your dotemacs you need a few things. (before you do anything use M-x package-install to get the required packages ag and wgrep (optional (projectile)) ;;it makes things a whole lot nicer ( when ( executable-find \"ag\" ) ( require 'ag ) ( require 'wgrep-ag ) ( setq-default ag-highlight-search t ) ( global-set-key ( kbd \"H-q\" ) 'ag-project ) ( global-set-key ( kbd \"H-z\" ) 'projectile-ag )) ; if you have projectile As you might noticed I am using Hyper-q H-q and Hyper-z H-z as hot keys for ag-*(whatever), you can change these to suit your preferred keybinding style. A few other useful keybindings you may want to check out are C-x C-p , this makes the search buffer writable and lets you edit results inline. Also, C-c C-f , which activates next-error-follow-minor-mode , a nifty feature that quickly opens the file matching the search result your cursor is currently over. The gif show at the top of this page is a demo of how I use it to navigate my emacs.d nightmare...here it is again so you don't have to scroll up to see it. Silver Searching in Emacs In (somewhat of a haphazard) Conclusion With the setup complete you can now move you cursor over any variable, function name, definition, word, whatever and run ag on it to find all the uses of it in either a project, file, or if you’re feel ambitious your entire system (be warned, this sucks the life out of everything and may take a billion years to complete) "}]}