<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7524121611539854790</id><updated>2024-09-20T19:59:56.019-07:00</updated><category term="Ubuntu"/><category term="Amazon"/><category term="aws"/><category term="how-to"/><category term="EC2"/><category term="Eclipse"/><category term="Mac OS X"/><category term="NS3"/><category term="TinyOS"/><category term="centos"/><category term="simulations"/><category term="svn export sub-folder"/><category term="ARM"/><category term="Apple"/><category term="Bluetooth"/><category term="Bluetooth Low Energy"/><category term="Cortex"/><category term="EBS"/><category term="Eclipse error"/><category term="Eclipse refuses to start"/><category term="Inc. Bluetooth USB Host Controller"/><category term="Internet of Things"/><category term="IoT"/><category term="M0"/><category term="Magic Lanter"/><category term="Nordic Semiconductor"/><category term="PrecisePangolin"/><category term="SoC"/><category term="TOSSIM"/><category term="Ticket #2372"/><category term="USB device"/><category term="Ubuntu 12.04"/><category term="VirtualBox"/><category term="WSN"/><category term="attach a Bluetooth device to a guest OS from my OSX host environment"/><category term="backup"/><category term="beta"/><category term="blogger"/><category term="boos"/><category term="c++"/><category term="can&#39;t start"/><category term="canon 5D Mark III"/><category term="capture traffic"/><category term="class"/><category term="cloud"/><category term="code formating"/><category term="configuration"/><category term="configure"/><category term="corrupt Eclipse workspace"/><category term="create profile"/><category term="django"/><category term="django form"/><category term="django models"/><category term="django-registration"/><category term="error"/><category term="external library"/><category term="firmware"/><category term="gcc-arm"/><category term="guide"/><category term="how to"/><category term="how to add external library to ns3"/><category term="http"/><category term="install ns-3"/><category term="lenovo"/><category term="multicore"/><category term="nRF51822"/><category term="network"/><category term="ns-3"/><category term="nsnam"/><category term="python"/><category term="raw video"/><category term="raw2dng"/><category term="rsvndump"/><category term="smart device"/><category term="svn"/><category term="thinkpad x220"/><category term="thread"/><category term="trac"/><category term="tshark"/><category term="tutorial"/><category term="update error"/><category term="user registration"/><category term="virtualbox error"/><category term="windows 8"/><category term="wireshark"/><category term="workspace"/><title type='text'>shieldroute</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-8744673507672121060</id><published>2014-09-09T20:42:00.002-07:00</published><updated>2014-09-09T20:42:43.913-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="attach a Bluetooth device to a guest OS from my OSX host environment"/><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth"/><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="Inc. Bluetooth USB Host Controller"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X"/><category scheme="http://www.blogger.com/atom/ns#" term="Ticket #2372"/><category scheme="http://www.blogger.com/atom/ns#" term="USB device"/><category scheme="http://www.blogger.com/atom/ns#" term="VirtualBox"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox error"/><title type='text'>Bluetooth on Virtual box with Mac OS x 10.9.4 as host</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
You want to have bluetooth on your Linux/Window in VirtualBox while using Mac OS X as host. The bug (&lt;a href=&quot;https://www.virtualbox.org/ticket/2372&quot;&gt;Ticket #2372&lt;/a&gt;) has been filed six (6!!!) years ago, go figure.&lt;br /&gt;
&lt;br /&gt;
For&lt;b&gt; 10.9.4&lt;/b&gt; on MBP 2014 you need to execute following:&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;$sudo su
$launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
$kextunload -b com.apple.iokit.IOBluetoothSerialManager
$kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
&lt;/pre&gt;
&lt;br /&gt;
Note that the actual extension may vary depending on your Mac hardware, so you can simple list modules and try to unload each and one of them until you can connect bluetooth on virtual box.

&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;$kextstat | grep -i bluetooth
&lt;/pre&gt;
&lt;br /&gt;
Cheers&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/8744673507672121060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2014/09/bluetooth-on-virtual-box-with-mac-os-x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8744673507672121060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8744673507672121060'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2014/09/bluetooth-on-virtual-box-with-mac-os-x.html' title='Bluetooth on Virtual box with Mac OS x 10.9.4 as host'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-8799436335873109340</id><published>2014-08-27T00:07:00.002-07:00</published><updated>2014-08-27T00:07:25.072-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth Low Energy"/><category scheme="http://www.blogger.com/atom/ns#" term="configure"/><category scheme="http://www.blogger.com/atom/ns#" term="Cortex"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="firmware"/><category scheme="http://www.blogger.com/atom/ns#" term="gcc-arm"/><category scheme="http://www.blogger.com/atom/ns#" term="guide"/><category scheme="http://www.blogger.com/atom/ns#" term="how to"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet of Things"/><category scheme="http://www.blogger.com/atom/ns#" term="IoT"/><category scheme="http://www.blogger.com/atom/ns#" term="M0"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X"/><category scheme="http://www.blogger.com/atom/ns#" term="Nordic Semiconductor"/><category scheme="http://www.blogger.com/atom/ns#" term="nRF51822"/><category scheme="http://www.blogger.com/atom/ns#" term="smart device"/><category scheme="http://www.blogger.com/atom/ns#" term="SoC"/><title type='text'>Developing for Nordic Semiconductor nRF51822</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;script src=&quot;https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
What&amp;nbsp;&lt;/h2&gt;
&lt;div&gt;
This post describes installation and first simple example running dev kit nRF51822 on Mac OS X 10.9.4.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Why&lt;/h2&gt;
&lt;b&gt;&lt;i&gt;Its either you who will rule Internet of Things, or Internet of Things will rule you. Pick a side and spot wining.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
I got my hands on nRF51822 and since I have switched to Mac, the installation instructions for mac are confusing... there was no obvious way to run it from thus this is a mental note to my self how to set up environment. So here you go, after tutorial you will be up and running in no time :) with multiple options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
How&lt;/h2&gt;
&lt;div&gt;
First install needed shit, its all below. The instructions are minimal and assumes you can figure out some simple stuff. If not ask, Google, change carrier.&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
1. Eclipse&lt;/h3&gt;
&lt;div&gt;
I have many copies of eclipse for different developing purpose containing different language. The reason is that plugins do brake each other and I rather reinstall single plugin then have all my &quot;life&quot;dependent on one eclipse.&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Download Eclipse http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunar (I used&amp;nbsp;eclipse-cpp-luna-R-macosx-cocoa-x86_64.tar.gz)&lt;/li&gt;
&lt;li&gt;Extract it&lt;/li&gt;
&lt;li&gt;Rename it to eclipseARM&lt;/li&gt;
&lt;li&gt;Enter folder and rename eclipse.app to&amp;nbsp;ArmLipse.app&lt;/li&gt;
&lt;li&gt;Move folder to /Applications/ or /User/Applications/&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
1.1 Plugins&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Lauch ArmLipse&lt;/li&gt;
&lt;li&gt;Create new workspace nRF51 (keep it clean)&lt;/li&gt;
&lt;li&gt;Help-&amp;gt;Install new software&lt;/li&gt;
&lt;li&gt;Add&amp;nbsp;http://embsysregview.sourceforge.net/update&amp;nbsp;&lt;/li&gt;
&lt;li&gt;and install&amp;nbsp;&lt;b&gt;embsysregview&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Go back, &lt;i&gt;select all available sites&lt;/i&gt;, search and install&amp;nbsp;&lt;b&gt;GDB Hardware Debugging&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Go back and add site&amp;nbsp;&lt;span style=&quot;background-color: white; color: #555555; font-family: monospace; font-size: 13px; line-height: 18px; white-space: pre-wrap;&quot;&gt;http://gnuarmeclipse.sourceforge.net/updates&lt;/span&gt;&amp;nbsp;and install plug in for arm&lt;/li&gt;
&lt;li&gt;Go back and add&lt;b&gt;&amp;nbsp;&lt;a href=&quot;http://nrf51osx.sourceforge.net/updates&quot; style=&quot;-webkit-tap-highlight-color: rgb(0, 119, 170); background: rgb(255, 255, 255); color: #006699; font-family: sans-serif; font-size: 13px; font-weight: normal; line-height: 18px; margin: 0px; outline: none; padding: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;http://nrf51osx.sourceforge.net/updates&lt;/a&gt;&amp;nbsp;&lt;/b&gt;and install nordic plugin&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
2. &amp;nbsp;GNU Tools&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Get tar for mac from here&amp;nbsp;https://launchpad.net/gcc-arm-embedded/ (I got&amp;nbsp;gcc-arm-none-eabi-4_8-2014q2)&lt;/li&gt;
&lt;li&gt;Extract it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
3. Jlink&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Get libusb to start with&amp;nbsp;&lt;span style=&quot;background-color: whitesmoke; color: #333333; font-family: monospace; font-size: 12px; line-height: 16.7999992370605px;&quot;&gt;brew install libusb&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Get Jlink from&amp;nbsp;http://www.segger.com/jlink-software.html&lt;/li&gt;
&lt;li&gt;You will need to enter number from the biggest chips on the board&lt;/li&gt;
&lt;li&gt;I got&amp;nbsp;JLink_MacOSX_V490b.pkg, double tap and follow instructions&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
4. Libraries&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;You will need firmware either s110, s120, s130 depending on the purpose. You can get then form nordic Semiconductor site.&lt;/li&gt;
&lt;li&gt;Create folder development in /User/your_name/ and create subfolder nrf51&lt;/li&gt;
&lt;li&gt;Copy, SDK, Firmware and GNU tools to it&lt;/li&gt;
&lt;li&gt;Mine looks:&amp;nbsp;
&lt;pre class=&quot;prettyprint&quot;&gt;-&amp;gt;tree -CL 1 nrf51
nrf51
├── gcc-arm-none-eabi-4_8-2014q2
├── nrf51_sdk_v6_0_0_43681
├── s110_nrf51822_7.0.0
├── s120_nrf51822_1.0.0
└── s130_nrf51822_0.5.0-1.alpha

5 directories, 0 files
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
5. Configure&lt;/h3&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
5.1 Eclipse - hardway&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
In case you are insane and have no life play here:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;embsysregview:&amp;nbsp;&lt;/b&gt;Copy&amp;nbsp;sdks/nrf51/nrf51_sdk_v6_0_0_43681/nrf51822/SVD/nrf51.xml to&amp;nbsp;Applications/eclipseARM/plugins/org.eclipse.cdt.embsysregview.data_0.2.4.r168/data/cortex-m0/Nordic&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;cd ~
mkdir Applications/eclipseARM/plugins/org.eclipse.cdt.embsysregview.data_0.2.4.r168/data/cortex-m0/Nordic
cp development/sdks/nrf51/nrf51_sdk_v6_0_0_43681/nrf51822/SVD/nrf51.xml Applications/eclipseARM/plugins/org.eclipse.cdt.embsysregview.data_0.2.4.r168/data/cortex-m0/Nordic/ 
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Configure Environment, add this to the .bashrc (!!!change username to your username!!!)
&lt;pre class=&quot;prettyprint&quot;&gt;cd ~
export GNU_INSTALL_ROOT=/Users/username/development/sdks/nrf51/gcc-arm-none-eabi-4_8-2014q2
export GNU_VERSION=4.8.4
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now, lets remove Nordics bug from Makefile.posix, just delete these lines (why are they there???)
&lt;pre class=&quot;prettyprint&quot;&gt;GNU_INSTALL_ROOT := /usr/local/gcc-arm-none-eabi-4_8-2014q1
GNU_VERSION := 4.8.3
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now follow the rest of configuration described &lt;a href=&quot;https://www.nordicsemi.com/eng/nordic/download_resource/16124/3/27704629&quot;&gt;in n29 v1.0&lt;/a&gt; from 1.2 and make sure you can compile blinky. 
&lt;/li&gt;
&lt;li&gt;Dont rewrite, &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;c-c c-v, &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;into startup window&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;mon speed 10000
mon endian little
mon flash download = 1 
mon flash device = NRF51822
mon reset 0&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;5.2 Eclipse easy way&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If you want time over for your girlfriend just follow these steps:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;Create a project how its is described in http://sourceforge.net/p/nrf51osx/wiki/create%20a%20project/ &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;You done!&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;6 Make that F*** blink&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;So all done and you happy, almost. &lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;Go get this awesome programmer &lt;/span&gt;&lt;a href=&quot;http://sourceforge.net/projects/rknrfgo/&quot;&gt;http://sourceforge.net/projects/rknrfgo/&lt;/a&gt;. Install, fire up terminal and run:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;cdccontrol disable

&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
Then fire up rknrfgo (fancy name) and program your device :)&amp;nbsp;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;6.1 Bug fixing&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;Everybody is changing everything and fixing bugs all over the places. Which leads that there is HUGE amount of inconsistency in EVERY single post you will read or software you install. Trust no one.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;When you created project and if you are using SDK 6+ (and you should) uploading ldscripts/mem.ld will be faulty. To make it work just c-c c-v following (assuming you select softdevice :))&lt;/span&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;/* 
** Linker script to configure memory regions. 
**
** Device type: xxaa, 256K flash, 16K RAM
** Device type: xxab, 128K flash, 16K RAM
**
** Softdevice:  none, all memory available to device,  Code start: 0x0000 , xxaa:0x40000, xxbb:0x20000, RAM start: 0x20000000 
** Softdevice:  s110, uses 80K code, 8K RAM,   Code start: 0x16000, xxaa:0x2c000, xxbb:0x0c000, RAM start: 0x20002000 
** Softdevice:  s120, uses 96K code, 10K RAM,   Code start: 0x18000, xxaa:0x28000, xxbb:0x08000, RAM start: 0x20002800 
*/ 

GROUP(-lgcc -lc -lnosys)

MEMORY
{
  FLASH (rx) : ORIGIN = 0x00016000, LENGTH = 0x2C000
  RAM (rwx)  : ORIGIN = 0x20002000, LENGTH = 0x2000 
}

/*
** All permutations, copy one into the MEMORY section above, removing the leading &#39;**&#39;s
**
** xxaa, no softdevice
**  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x40000  
**  RAM (rwx)  : ORIGIN = 0x20000000, LENGTH = 0x4000 
**
** xxab, no softdevice
**  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x20000 
**  RAM (rwx)  : ORIGIN = 0x20000000, LENGTH = 0x4000 
**
** xxaa s110
**  FLASH (rx) : ORIGIN = 0x00016000, LENGTH = 0x2C000
**  RAM (rwx)  : ORIGIN = 0x20002000, LENGTH = 0x2000 
**
** xxab s110
**  FLASH (rx) : ORIGIN = 0x00016000, LENGTH = 0x0C000
**  RAM (rwx)  : ORIGIN = 0x20002000, LENGTH = 0x2000 
**
** xxaa s120
**  FLASH (rx) : ORIGIN = 0x00018000, LENGTH = 0x28000
**  RAM (rwx)  : ORIGIN = 0x20002800, LENGTH = 0x1800 
**
** xxab s120
**  FLASH (rx) : ORIGIN = 0x00018000, LENGTH = 0x08000
**  RAM (rwx)  : ORIGIN = 0x20002800, LENGTH = 0x1800 
**
*/
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
7 What you get?! This beauty! :)&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;embedly-card&quot; href=&quot;http://instagram.com/p/sMSQFHRJWf/&quot;&gt;Dat Feeling of the #blink! #nordic #ble #internetofthings #iot #sanfrancisco #arduino #california #oneplus #summershots #SoC #nrf51822&lt;/a&gt;
&lt;script&gt;!function(a){var b=&quot;embedly-platform&quot;,c=&quot;script&quot;;if(!a.getElementById(b)){var d=a.createElement(c);d.id=b,d.src=(&quot;https:&quot;===document.location.protocol?&quot;https&quot;:&quot;http&quot;)+&quot;://cdn.embedly.com/widgets/platform.js&quot;;var e=document.getElementsByTagName(c)[0];e.parentNode.insertBefore(d,e)}}(document);&lt;/script&gt;

&lt;br /&gt;
&lt;div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Acknowledgment&lt;/h2&gt;
The biggest thanks goes to the people who spread they knowledge all over the internet, and did load of coding. Go check them out, donate, send flower or fruits!&lt;br /&gt;
&lt;br /&gt;
Roland King (King indeed)&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/rknrfgo/&quot;&gt;http://sourceforge.net/projects/rknrfgo/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/nrf51osx/&quot;&gt;http://sourceforge.net/projects/nrf51osx/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Other sources of ideas&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://hg.cmason.com/nrf&quot;&gt;http://hg.cmason.com/nrf&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://robolabwiki.sdu.dk/mediawiki/index.php/Nordic_Semiconductor_nRF51822_development&quot;&gt;http://robolabwiki.sdu.dk/mediawiki/index.php/Nordic_Semiconductor_nRF51822_development&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://erlblog.lewin.nu/2013/12/setting-up-eclipse-under-mac-os-x-for.html&quot;&gt;http://erlblog.lewin.nu/2013/12/setting-up-eclipse-under-mac-os-x-for.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/8799436335873109340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2014/08/developing-for-nordic-semiconductor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8799436335873109340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8799436335873109340'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2014/08/developing-for-nordic-semiconductor.html' title='Developing for Nordic Semiconductor nRF51822'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-7362923103958351716</id><published>2014-04-08T02:58:00.000-07:00</published><updated>2014-04-08T02:58:04.609-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="can&#39;t start"/><category scheme="http://www.blogger.com/atom/ns#" term="corrupt Eclipse workspace"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse error"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse refuses to start"/><category scheme="http://www.blogger.com/atom/ns#" term="workspace"/><title type='text'>Recovering a corrupt Eclipse workspace</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I had a computer crash with a running Eclipse which resulted in a corrupt workspace. 
I was simply getting message that workspace is in use. 

While there is many proposed solutions on the internet the simplest one is to open &lt;b&gt;.metadata&lt;/b&gt; folder in your workspace, make sure that you can see invisible (hidden) files there and remove &lt;b&gt;.lock&lt;/b&gt; file. 

Works like a charm and preserves all projects.

:)
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/7362923103958351716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2014/04/recovering-corrupt-eclipse-workspace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7362923103958351716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7362923103958351716'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2014/04/recovering-corrupt-eclipse-workspace.html' title='Recovering a corrupt Eclipse workspace'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-8772380180183417471</id><published>2014-03-19T06:29:00.001-07:00</published><updated>2014-03-24T03:55:29.023-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="create profile"/><category scheme="http://www.blogger.com/atom/ns#" term="django"/><category scheme="http://www.blogger.com/atom/ns#" term="django form"/><category scheme="http://www.blogger.com/atom/ns#" term="django models"/><category scheme="http://www.blogger.com/atom/ns#" term="django-registration"/><category scheme="http://www.blogger.com/atom/ns#" term="how-to"/><category scheme="http://www.blogger.com/atom/ns#" term="user registration"/><title type='text'>Customizing django-registration</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;script src=&quot;https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js&quot;&gt;&lt;/script&gt;



&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Whatz up?!&lt;br /&gt;
&lt;br /&gt;
The integration of django-register is awesome! But if you want to customize it with additional models it can be confusing.&lt;br /&gt;
&lt;br /&gt;
Here in example I will show how to create your custom backend, form to handle it (custom validator and model choice field). &lt;br /&gt;
&lt;br /&gt;
Note, the django I use is version v1.5.4 django-registration v1.0. Some line breaks are imposed due to layout of this page.&lt;br /&gt;
&lt;br /&gt;
Thus, bellow you will find everything you need to:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create custom backend&lt;/li&gt;
&lt;li&gt;Add custom form&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Create custom validation&lt;/li&gt;
&lt;li&gt;Badabung! :D &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;
Below is and example extending 
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;from registration.backends.default.views.RegistrationView
&lt;/pre&gt;
First of all, inherit RegistrationView, then override register() and get_form_class() functions.
In the examples to follow it is assumed that the class is saved to regbackend.py.

&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;#regbackend.py
from registration.backends.default.views import RegistrationView

#create custom registration backend
class StudentBackend(RegistrationView): 
    &#39;&#39;&#39;
    we just want to override register and fix profile creation
    &#39;&#39;&#39; 
    def register(self,request, **kwargs):
        from usermanager.models import Profile
        user=super(StudentBackend,self).register(request, **kwargs)
        user.first_name = kwargs[&#39;first_name&#39;]
        user.last_name = kwargs[&#39;last_name&#39;]
        user.save()
        profile = Profile.objects.create(
                                user=user, course=kwargs[&#39;course&#39;])
        profile.save()
        
    def get_form_class(self, request):
        &quot;&quot;&quot;
        Return the default form class used for user registration.

        &quot;&quot;&quot;
        from usermanager.form import UserRegistrationForm
        return UserRegistrationForm    
&lt;/pre&gt;
Below is the code from urls.py. Nothing fancy, just import your registration backend, and form, and redirect accounts/register/ to your backend.

&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;#urls.py
from regbackend import StudentBackend
from form import UserRegistrationForm

urlpatterns = patterns(&#39;&#39;,
    url(r&#39;^accounts/register/$&#39;,
        StudentBackend.as_view(form_class = UserRegistrationForm),
        name=&#39;registration_register&#39;),
    (r&#39;^accounts/&#39;, include(&#39;registration.backends.default.urls&#39;)),
    #more url configs
)
&lt;/pre&gt;
Following code is from form.py:

&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;#form.py
from django import forms
from django.contrib.auth.models import User
from usermanager.models import Course, Profile
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _



attrs_dict = { &#39;class&#39;: &#39;required&#39; }

#this function checks for the allowed domain:
def affiliation_valid_email(value):
    allowed_domain=[&#39;domain.se&#39;,&#39;domain.se&#39;]
    #not the prettiest soliution 
    v_error=_(&quot;Email does not match allowed domains (%s, %s)&quot;
                           %(allowed_domain[0],allowed_domain[1])
    if value.split(&#39;@&#39;)[1] not in allowed_domain:
        raise forms.ValidationError(v_error)
    else:
        return value


#the registration form is inherited from django-registration   
class UserRegistrationForm(RegistrationForm):  
    
    class Meta:
        model = User
        fields = (&quot;first_name&quot;,
                  &quot;last_name&quot;,
                  &quot;username&quot;, 
                  &quot;email&quot;, 
                  &quot;password1&quot;, 
                  &quot;password2&quot;)
    #username is enforced to some particular rules 
    u_error = _(&quot;User name needs to match domain convention.&quot;)   
    username = forms.RegexField(regex=r&#39;^\w&#39;,
                                max_length=9,
                                widget=forms.TextInput(attrs=attrs_dict),
                                label=_(&quot;Username - same as in domain!&quot;),
                                error_messages={ 
                                &#39;invalid&#39;: u_error })
    first_name = forms.CharField(max_length=30)
    last_name = forms.CharField(max_length=30)
    course = forms.ModelChoiceField(queryset=Course.objects,required=True)
    email = forms.EmailField(validators=[affiliation_valid_email],
                             widget=forms.TextInput(
                                     attrs=dict(attrs_dict,maxlength=75)
                                     ),
                                     label=_(&quot;domain - Email address&quot;))
    

    
    def clean(self):
        #clean with super
        ue_error = _(&quot;Email and user name do not match.&quot;)
        super(UserRegistrationForm, self).clean()
        #this is just checking that username is the same as in email
        if self.cleaned_data[&#39;email&#39;].split(&#39;@&#39;)[0] == 
                                        self.cleaned_data.get(&quot;username&quot;):
            return self.cleaned_data
        else:
            raise forms.ValidationError(ue_error)
         
    def save(self, commit=True):
        user = super(UserRegistrationForm, self).save(commit=True)    
        user.email = self.cleaned_data[&quot;email&quot;]
        user.first_name =  self.cleaned_data[&quot;first_name&quot;]
        user.last_name =self.cleaned_data[&quot;last_name&quot;]
        profile = Profile(
                   systemuser=user, course = self.cleaned_data[&quot;course&quot;])

    if self.commit:
        user.save()
        profile.save()
    return user

&lt;/pre&gt;
Models used in this example:
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;#models.py

class Course(models.Model):
    code = models.CharField(max_length=6)
    teacher = models.CharField(max_length=30)
    
    class Meta:
        app_label = &quot;usermanager&quot;
        verbose_name = &quot;Course&quot;
        verbose_name_plural = &quot;Courses&quot;
    
    def __unicode__(self):
        return &quot;%s&quot; % self.code
    
class Profile(models.Model):
    user=models.ForeignKey(User, unique=True)
    course=models.ForeignKey(&#39;usermanager.Course&#39;)
    created = models.DateTimeField(auto_now_add=True)
    updated_local = models.DateTimeField(blank=True, null=True)
    

    def getCourse(self):
        return &quot;%s&quot; %self.course
    
    def save(self,*args,**kwargs):
        self.updated_local = datetime.now()
        super(Profile, self).save(*args,**kwargs)
    
    def __unicode__(self):
        return &quot;Profile: %s&quot; %self.user

&lt;/pre&gt;
Finally, remember to enable registration in installed apps before running

&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;python manage.py syncdb
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;INSTALLED_APPS = (
    &#39;django.contrib.auth&#39;,
    &#39;django.contrib.contenttypes&#39;,
    &#39;django.contrib.sessions&#39;,
    &#39;django.contrib.messages&#39;,
    &#39;django.contrib.staticfiles&#39;,
    &#39;django.contrib.admin&#39;,
    &#39;django.contrib.admindocs&#39;,
    &#39;registration&#39;,
)
&lt;/pre&gt;
&lt;/div&gt;

That&#39;s it foks, happy coding!
L
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/8772380180183417471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2014/03/customizing-django-registration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8772380180183417471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8772380180183417471'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2014/03/customizing-django-registration.html' title='Customizing django-registration'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-7808872162101158702</id><published>2013-07-22T15:23:00.000-07:00</published><updated>2013-07-22T15:32:51.519-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="canon 5D Mark III"/><category scheme="http://www.blogger.com/atom/ns#" term="Magic Lanter"/><category scheme="http://www.blogger.com/atom/ns#" term="multicore"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="raw video"/><category scheme="http://www.blogger.com/atom/ns#" term="raw2dng"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 8"/><title type='text'>Quick and dirty multiply raw file conversion </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Multi-raw2dng-converter&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
I asume that you know all about installiation and usage of Magic Lanters raw video functionality.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
If you like me find your self with many raw files, using raw2dng manually can be pain in a**.&amp;nbsp; Here you have python 3.x script working and tested on Windows 8. Given the argument -d &quot;file directory&quot; it will look for any subfolders there and for each raw file in subfolder will create new folder and will run raw2dng on that file. The resulting dng will end up in folder named &quot;ra_file_name&quot; without RAW. The script utilizes as many new processes as there cores in CPU.&lt;br /&gt;
&lt;br /&gt;
Note that this script is just quick and&amp;nbsp; dirty way to fix my problem. I hope it will be useful for other as well. Feel free to modify and extend.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage:&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:python&quot;&gt;D:\dev\python multiConverter.py -d &quot;F:\Images\2013\0722&quot;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Output:
&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:python&quot;&gt;Successfully processed: F:\Images\2013\0722\1\M17-2243.RAW&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Script&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;brush:python&quot;&gt;#!/usr/bin/python
#searches for raw files and converts then into a directory with the 
#same name as file
import glob
import sys, getopt
import os, multiprocessing, queue, subprocess
from threading import Thread, Lock

FILE = 0
DIR = 1
RAW2DNG = r&quot;C:path\to\raw2dng.exe&quot;
def optionsGet(argv):
 inputdir = &quot;&quot;
 try:
  opts, args = getopt.getopt(argv,&quot;hd:&quot;,[&quot;ddir=&quot;])
 except getopt.GetoptError:
  print(&#39;multiconverter.py -d &lt;inputdirectory&gt;&#39;)
  sys.exit(2)
 for opt, arg in opts:
  if opt == &quot;-h&quot;:
   print(&quot;multiconverter.py -d &lt;inputdirectory&gt;&quot;)
   sys.exit()
  elif opt in (&quot;-d&quot;, &quot;--ddirectory&quot;):
   inputdir = arg
 return inputdir

def getCPUs():
 # Windows
    try:
        res = int(os.environ[&#39;NUMBER_OF_PROCESSORS&#39;])
        if res &amp;gt; 0:
            return res
    except (KeyError, ValueError):
        pass

def createFolder(name):
 pass
 

def getFileNames(name):
 return glob.glob(name + &quot;\*.RAW&quot;)

def getsubdirs(inputdir):
 file_list = []
 dirs=os.listdir(r&#39;%s&#39; %inputdir)
 for d in dirs:
  tmp = r&#39;%s\%s&#39; %(inputdir,d)
  file_list.append(tmp)
 return file_list
  
def createJobs(dir_list, q):
 for d in dir_list:
  files = getFileNames(d)
  for f in files:
   q.put((f,d))
   
  
   
def deployWorkers(file_list, l, num_workers, func):
 jobs = multiprocessing.Queue()
 createJobs(file_list, jobs)
 workers = []
 for i in range(num_workers):
  jobs.put(None)
  tmp = multiprocessing.Process(target=func, args=(jobs,))
  tmp.start()
  workers.append(tmp)
 for worker in workers:
  worker.join()
  
def raw2dngWorker(queue):
 while True:
  job = queue.get()
  if job == None:
   break
  else:
   #enter right dir
   os.chdir(job[DIR])
   #create folder
   folder = job[FILE].split(&quot;.&quot;)[0]
   os.makedirs(folder)
   #change dir
   os.chdir(folder)
   proc = subprocess.Popen([RAW2DNG, job[FILE]] , 
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.STDOUT, )
   stdout_value, stderr_value = proc.communicate()
   if not stderr_value:
    print(&quot;Successfully processed: %s&quot; %job[FILE])
   else:
    print(&quot;ERROR %s &quot; %stderr_value)
   
   
 
   
if __name__ == &quot;__main__&quot;:
 inputdir = optionsGet(sys.argv[1:])
 cores = getCPUs()
 l = Lock()
 file_list = getsubdirs(inputdir)

 #start cores = workes
 deployWorkers(file_list, l, cores, raw2dngWorker) &lt;/inputdirectory&gt;&lt;/inputdirectory&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cheers
&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/7808872162101158702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2013/07/quick-and-dirty-multiply-raw-file.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7808872162101158702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7808872162101158702'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2013/07/quick-and-dirty-multiply-raw-file.html' title='Quick and dirty multiply raw file conversion '/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-6613441827786094942</id><published>2012-08-24T00:19:00.001-07:00</published><updated>2012-08-24T00:19:18.314-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="external library"/><category scheme="http://www.blogger.com/atom/ns#" term="how to add external library to ns3"/><category scheme="http://www.blogger.com/atom/ns#" term="NS3"/><category scheme="http://www.blogger.com/atom/ns#" term="nsnam"/><title type='text'>Extending NS3 with your module and extra libraries</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I have been working on custom module in ns3 for some time now. Due to many changes in NS3, like bug fixes, extensions, improvements, I decided to move to latest version.&lt;br /&gt;
&lt;br /&gt;
This decision consumed couple of days and several gray hair, due to lack of documentation. The biggest difference for custom module developer is the new waf build system and thus how build works.&lt;br /&gt;
&lt;br /&gt;
Reading &lt;a href=&quot;http://www.nsnam.org/wiki/index.php/HOWTO_use_ns-3_with_other_libraries&quot;&gt;http://www.nsnam.org/wiki/index.php/HOWTO_use_ns-3_with_other_libraries&lt;/a&gt; it seems very simple to add additional libraries, however the tutorial is not valid for module. Because the suggested build steps will &lt;b&gt;only&lt;/b&gt; link the individual files with external libraries and &lt;b&gt;NOT&lt;/b&gt; the module. The flags are only passed when compiling indivirual object, the &lt;a href=&quot;https://www.nsnam.org/bugzilla/show_bug.cgi?id=1490&quot;&gt;bug&lt;/a&gt; (?) is reported.&lt;br /&gt;
&lt;br /&gt;
So here is how I managed to solve it&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;First&lt;/span&gt;, add configuration in your wafscript script&lt;br /&gt;
&lt;pre class=&quot;brush:python&quot;&gt;def configure(conf):
     conf.env[&#39;xercersc&#39;] = conf.check(mandatory=True, lib=&#39;xerces-c&#39;, uselib_store=&#39;XERCES&#39;)
     conf.env[&#39;ldl&#39;] = conf.check(mandatory=True, lib=&#39;dl&#39;, uselib_store=&#39;LDL&#39;)&lt;/pre&gt;
&lt;pre class=&quot;brush:python&quot;&gt;&amp;nbsp;&lt;/pre&gt;
make sure you change naming to your libs, note also the name of library, you have to omit &quot;lib&quot;, &quot;l&quot; and only go by the name. Having &lt;i&gt;mandatory=True&lt;/i&gt; will abort the compilation if waf can not find the library.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
Second and last&lt;/div&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:python&quot;&gt;def build(bld):
    #......
    #...... code omited
    #......
    module.use.append(&quot;XERCES&quot;)
    module.use.append(&quot;LDL&quot;)
    #......
    #...... the rest of build code
&lt;/pre&gt;
Delete build directory run
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;./waf configure &amp;amp;&amp;amp; ./waf build&lt;/pre&gt;

If you still having problems with linking it is very useful to run
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;./waf --no-task-lines -v&lt;/pre&gt;

In that case after each build step waf will output runner were the compiler and all passed flags are visible. From there you can continue bug hunt :)&lt;br /&gt;
&lt;br /&gt;
Cheers 
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/6613441827786094942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/08/extending-ns3-with-your-module-and.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/6613441827786094942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/6613441827786094942'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/08/extending-ns3-with-your-module-and.html' title='Extending NS3 with your module and extra libraries'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-5468701590660348635</id><published>2012-08-10T00:50:00.003-07:00</published><updated>2012-08-10T00:50:30.586-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TinyOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu 12.04"/><category scheme="http://www.blogger.com/atom/ns#" term="update error"/><title type='text'>TinyOS on Ubuntu 12.04 update error, the fix</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&amp;nbsp;TinyOS released the update to tinysos-tools package. However, if updating from GUI of update manager you will get an error&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The action would require the installation of packages from not authenticated sources.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
And update will be aborted. To fix it, simply open terminal and run&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;
sudo apt-get update
sudo apt-get upgrade
&lt;/pre&gt;
You will get two warning, proceed by answering &lt;b&gt;Y&lt;/b&gt; and you are done!
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/5468701590660348635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/08/tinyos-on-ubuntu-1204-update-error-fix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5468701590660348635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5468701590660348635'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/08/tinyos-on-ubuntu-1204-update-error-fix.html' title='TinyOS on Ubuntu 12.04 update error, the fix'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-8659636421002235789</id><published>2012-08-07T03:30:00.002-07:00</published><updated>2012-10-04T05:30:22.729-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="aws"/><category scheme="http://www.blogger.com/atom/ns#" term="EC2"/><category scheme="http://www.blogger.com/atom/ns#" term="how-to"/><category scheme="http://www.blogger.com/atom/ns#" term="install ns-3"/><category scheme="http://www.blogger.com/atom/ns#" term="ns-3"/><category scheme="http://www.blogger.com/atom/ns#" term="NS3"/><category scheme="http://www.blogger.com/atom/ns#" term="simulations"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type='text'>Install and run NS3 on Amazons EC2</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This is simple step-by step on how to run NS3 on Amazon cloud. If you skip to 3 you can use same script on any other machine using Ubuntu.&lt;br /&gt;
&lt;br /&gt;
This script will install needed packages, download ns3, make standard configuration, build ns-3-dev, and will run test. &lt;br /&gt;
&lt;br /&gt;
Assuming you have Amazon account.&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create Ubuntu 12.04 image&lt;/li&gt;
&lt;li&gt;Log in to it&lt;/li&gt;
&lt;li&gt;Create file installns3.sh&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;vi installns3.sh
i
&lt;/pre&gt;
&lt;li&gt;Copy following code into it:&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;#!/bin/bash
#original timer was published in
#http://www.linuxjournal.com/
#http://tiny.cc/en2niw 
#by Mitch Frazier
function timer()
{
 if [[ $# -eq 0 ]]; then
  echo $(date &#39;+%s&#39;)
 else
  local  stime=$1
  etime=$(date &#39;+%s&#39;)
         if [[ -z &quot;$stime&quot; ]]; then stime=$etime; fi
         dt=$((etime - stime))
         ds=$((dt % 60))
         dm=$(((dt / 60) % 60))
  dh=$((dt / 3600))
  printf &#39;%d:%02d:%02d&#39; $dh $dm $ds
 fi
}
tmr=$(timer)
INSTALL_DIR=&quot;/home/ubuntu/dev/ns3&quot;
#files to install 
APPS=&quot;gcc g++ python python-dev mercurial bzr gdb valgrind gsl-bin \
 libgsl0-dev libgsl0ldbl flex bison libfl-dev tcpdump sqlite sqlite3 \
 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun \
 lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils \ 
 texlive-latex-extra python-sphinx dia python-pygraphviz python-kiwi \
 python-pygoocanvas libgoocanvas-dev libboost-signals-dev \ 
 libboost-filesystem-dev openmpi-bin libopenmpi-dev openmpi-doc&quot;
# update repos
RETVAL=$(sudo apt-get update)
if [ $? -ne 0 ]; then
 echo &quot;Unable to update, reason: $?&quot;
 echo $RETVAL
 exit 1
else
 echo &quot;Successfully updated app repostitory&quot;
fi
#function to handle instaliation 
function make_install(){
 if [ $# == 0 ]; then
         echo &quot;must give at least one argument&quot;
  exit 1
 fi
 for app in $*
 do
  #we do not care is packet is installed it is success
  RETVAL=$(sudo apt-get install -y $app 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null)
  if [ $? -ne 0 ]; then
   echo &quot;Failure: can&#39;t install $app reson: $?&quot;
          echo $RETVAL
          echo &quot;Skipping package $app&quot; 
  else
   echo &quot;Succesfully installed $app&quot;
  fi

 done
}

#create directory
if [ ! -d &quot;$INSTALL_DIR&quot; ]; then
 echo &quot;Creating $INSTALL_DIR&quot;
 RET=$(mkdir -p $INSTALL_DIR 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null)
 if [ $? -ne 0 ]; then
  echo &quot;Can not create directory $INSTALL_DIR. Reason: $?&quot;
  echo $RET
  exit 1
 else
  echo &quot;Succesfully created directory $INSTALL_DIR&quot;
 fi
fi
#check if port is open

#install apps
make_install $APPS

cd $INSTALL_DIR
echo &quot;Cloning repo&quot;
RET=$(hg clone http://code.nsnam.org/ns-3-allinone)
if [ $? -ne 0 ]; then
 echo &quot;Could not clone ns-3-allinone. REASON: $?&quot;
 echo $RET
 exit 1
else
 echo &quot;Cloning was successfull&quot;
fi
cd &quot;ns-3-allinone&quot;
echo &quot;Downloading ns3-dev&quot;
chmod +x download.py
./download.py -n ns-3-dev
cd &quot;ns-3-dev&quot;
echo &quot;Building standart ns3&quot;
./waf configure --enable-tests
./waf build
echo &quot;Running test&quot;
chmod +x test.py
./test.py
printf &#39;Elapsed time: %s\n&#39; $(timer $tmr) 
echo &quot;Thank you! Enjoy NS3&quot;
&lt;/pre&gt;
&lt;li&gt;Save file and execute it.&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;#hit esc
:wq
chmod +x installns3.sh
./installns3.sh
#go grab coffee
&lt;/pre&gt;
&lt;li&gt;It will take a while, I was using medium instance which took: ~34 min.&lt;/li&gt;
&lt;/ol&gt;
If you are to lazy to copy paste and bother, find &quot;&lt;span class=&quot;value&quot;&gt;ubuntu-12.04-ns-3-dev&lt;/span&gt;&quot; AMI in community AMI&#39;s I have published pre-installed and pre-build version of the image. It will save you time and buck too!&lt;br /&gt;
&lt;br /&gt;
Cheers :) &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/8659636421002235789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/08/install-and-run-ns3-on-amazons-ec2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8659636421002235789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/8659636421002235789'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/08/install-and-run-ns3-on-amazons-ec2.html' title='Install and run NS3 on Amazons EC2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-3514688110451790222</id><published>2012-08-06T09:06:00.000-07:00</published><updated>2012-10-19T07:36:27.372-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="aws"/><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="how-to"/><category scheme="http://www.blogger.com/atom/ns#" term="simulations"/><category scheme="http://www.blogger.com/atom/ns#" term="svn export sub-folder"/><category scheme="http://www.blogger.com/atom/ns#" term="TinyOS"/><category scheme="http://www.blogger.com/atom/ns#" term="TOSSIM"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="WSN"/><title type='text'>TOSSIM simulations on Amazon AWS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
There can be many reasons why you want to run your TOSSIM simulations on cloud.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Share same apps and environment with your coworkers.&lt;/li&gt;
&lt;li&gt;Give access to students.&lt;/li&gt;
&lt;li&gt;Run gi-norm-ous&amp;nbsp; simulation.&lt;/li&gt;
&lt;li&gt;etc&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Edit: &lt;/b&gt;if you for some reason do not want to create your own installation, search publics for &lt;span title=&quot;282850175725/ubuntu-12.04-tinyos-tossim&quot;&gt;ubuntu-12.04-tinyos-tossim, I have published an AMI with preinstalled TinyOS 2.1.1 and svn version ready to use!&lt;/span&gt;&lt;br /&gt;
&lt;span title=&quot;282850175725/ubuntu-12.04-tinyos-tossim&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;br /&gt;
What ever reason is here is how-to guide for running both release and svn version of TinyOS simulator TOSSIM, one assumption is that you have AWS account.&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create&amp;nbsp; EBS volume.&lt;/li&gt;
&lt;li&gt;Create EC2 instance and start it (it is enough to have ssh port open), type does not matter since you can change it later. The only assumption that you run Ubuntu 12.04 64 bit version.&lt;/li&gt;
&lt;li&gt;Log in to the instance&lt;/li&gt;
&lt;li&gt;Create and edit source file&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;sudo vi /etc/apt/sources.list.d/tinyos.list
#in vi paste
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu natty main
#hit esc and 
:wq
&lt;/pre&gt;
&lt;li&gt;Install main release of TinyOS&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;sudo apt-get update &amp;&amp; sudo apt-get install -y --force-yes tinyos-2.1.1
#fix ownership 
sudo chown -R ubuntu:ubuntu /opt/tinyos-2.1.1
&lt;/pre&gt;
With the -y --force-yes following packages will be installed:
&lt;pre class=&quot;brush:shell&quot;&gt;Setting up libasound2 (1.0.25-1ubuntu10.1) ...
Setting up libasyncns0 (0.8-4) ...
Setting up libatk1.0-data (2.4.0-0ubuntu1) ...
Setting up libatk1.0-0 (2.4.0-0ubuntu1) ...
Setting up libgtk2.0-common (2.24.10-0ubuntu6) ...
Setting up ttf-dejavu-core (2.33-2ubuntu1) ...
Setting up fontconfig-config (2.8.0-3ubuntu9) ...
Setting up libfontconfig1 (2.8.0-3ubuntu9) ...
Setting up libpixman-1-0 (0.24.4-1) ...
Setting up libxcb-render0 (1.8.1-1) ...
Setting up libxcb-shm0 (1.8.1-1) ...
Setting up libxrender1 (1:0.9.6-2build1) ...
Setting up libcairo2 (1.10.2-6.1ubuntu3) ...
Setting up libavahi-common-data (0.6.30-5ubuntu2) ...
Setting up libavahi-common3 (0.6.30-5ubuntu2) ...
Setting up libavahi-client3 (0.6.30-5ubuntu2) ...
Setting up libcups2 (1.5.3-0ubuntu2) ...
Setting up libjpeg-turbo8 (1.1.90+svn733-0ubuntu4.1) ...
Setting up libjpeg8 (8c-2ubuntu7) ...
Setting up libjasper1 (1.900.1-13) ...
Setting up libtiff4 (3.9.5-2ubuntu1.2) ...
Setting up libgdk-pixbuf2.0-common (2.26.1-1) ...
Setting up libgdk-pixbuf2.0-0 (2.26.1-1) ...
Setting up libthai-data (0.1.16-3) ...
Setting up libdatrie1 (0.2.5-3) ...
Setting up libthai0 (0.1.16-3) ...
Setting up libxft2 (2.2.0-3ubuntu2) ...
Setting up fontconfig (2.8.0-3ubuntu9) ...
Cleaning up old fontconfig caches... done.
Regenerating fonts cache... done.
Setting up libpango1.0-0 (1.30.0-0ubuntu3.1) ...
Setting up libxcomposite1 (1:0.4.3-2build1) ...
Setting up libxfixes3 (1:5.0-4ubuntu4) ...
Setting up libxcursor1 (1:1.1.12-1) ...
Setting up libxdamage1 (1:1.1.3-2build1) ...
Setting up libxi6 (2:1.6.0-0ubuntu2) ...
Setting up libxinerama1 (2:1.1.1-3build1) ...
Setting up libxrandr2 (2:1.3.2-2) ...
Setting up shared-mime-info (1.0-0ubuntu4.1) ...
Setting up libgtk2.0-0 (2.24.10-0ubuntu6) ...
Setting up libnspr4 (4.8.9-1ubuntu2) ...
Setting up libnss3 (3.13.1.with.ckbi.1.88-1ubuntu6) ...
Setting up libnss3-1d (3.13.1.with.ckbi.1.88-1ubuntu6) ...
Setting up tzdata-java (2012b-1) ...
Setting up java-common (0.43ubuntu2) ...
Setting up libgif4 (4.1.6-9ubuntu1) ...
Setting up libjson0 (0.9-1ubuntu1) ...
Setting up libogg0 (1.2.2~dfsg-1ubuntu1) ...
Setting up libflac8 (1.2.1-6) ...
Setting up libvorbis0a (1.3.2-1ubuntu3) ...
Setting up libvorbisenc2 (1.3.2-1ubuntu3) ...
Setting up libsndfile1 (1.0.25-4) ...
Setting up libpulse0 (1:1.1-0ubuntu15.1) ...
Setting up x11-common (1:7.6+12ubuntu1) ...
Setting up libxtst6 (2:1.2.0-4) ...
Setting up libgomp1 (4.6.3-1ubuntu5) ...
Setting up libice6 (2:1.0.7-2build1) ...
Setting up libmpfr4 (3.1.0-3ubuntu2) ...
Setting up libquadmath0 (4.6.3-1ubuntu5) ...
Setting up libsm6 (2:1.2.0-2build1) ...
Setting up libxt6 (1:1.1.1-2build1) ...
Setting up libxmu6 (2:1.1.0-3) ...
Setting up libxpm4 (1:3.5.9-4) ...
Setting up libxaw7 (2:1.0.9-3ubuntu1) ...
Setting up libgd2-noxpm (2.0.36~rc1~dfsg-6ubuntu2) ...
Setting up libmpc2 (0.9-4) ...
Setting up tinyos-base (2.1-20080806) ...
Setting up avr-tinyos-base (2.1-20080806) ...
Setting up avr-binutils-tinyos (2.17-20080812) ...
Setting up avr-gcc-tinyos (4.1.2-20080812) ...
Setting up avr-libc-tinyos (1.4.7-20080812) ...
Setting up avrdude-tinyos (5.4-20080812) ...
Setting up avr-tinyos (2.1-20080806) ...
Setting up avr-optional-tinyos (2.1-20090326) ...
Setting up binutils (2.22-6ubuntu1) ...
Setting up cpp-4.6 (4.6.3-1ubuntu5) ...
Setting up cpp (4:4.6.3-1ubuntu5) ...
Setting up libc-dev-bin (2.15-0ubuntu10) ...
Setting up linux-libc-dev (3.2.0-27.43) ...
Setting up libc6-dev (2.15-0ubuntu10) ...
Setting up nesc (1.3.3-20110821) ...
Setting up tinyos-tools (1.4.0-20100326) ...
Setting up deputy-tinyos (1.1-20080807) ...
Setting up fonts-liberation (1.07.0-2ubuntu0.1) ...
Setting up gcc-4.6 (4.6.3-1ubuntu5) ...
Setting up gcc (4:4.6.3-1ubuntu5) ...
Setting up libcdt4 (2.26.3-10ubuntu1) ...
Setting up libcgraph5 (2.26.3-10ubuntu1) ...
Setting up libgraph4 (2.26.3-10ubuntu1) ...
Setting up libpathplan4 (2.26.3-10ubuntu1) ...
Setting up libgvc5 (2.26.3-10ubuntu1) ...
Setting up libgvpr1 (2.26.3-10ubuntu1) ...
Setting up graphviz (2.26.3-10ubuntu1) ...
Setting up hicolor-icon-theme (0.12-1ubuntu2) ...
Setting up libgtk2.0-bin (2.24.10-0ubuntu6) ...
Setting up xorg-sgml-doctools (1:1.10-1) ...
Setting up x11proto-core-dev (7.0.22-1) ...
Setting up libice-dev (2:1.0.7-2build1) ...
Setting up libpthread-stubs0 (0.3-3) ...
Setting up libpthread-stubs0-dev (0.3-3) ...
Setting up libsm-dev (2:1.2.0-2build1) ...
Setting up libxau-dev (1:1.0.6-4) ...
Setting up libxdmcp-dev (1:1.1.0-4) ...
Setting up x11proto-input-dev (2.1.99.6-1) ...
Setting up x11proto-kb-dev (1.0.5-2) ...
Setting up xtrans-dev (1.2.6-2) ...
Setting up libxcb1-dev (1.8.1-1) ...
Setting up libx11-dev (2:1.4.99.1-0ubuntu2) ...
Setting up libx11-doc (2:1.4.99.1-0ubuntu2) ...
Setting up libxt-dev (1:1.1.1-2build1) ...
Setting up manpages-dev (3.35-0.1ubuntu1) ...
Setting up msp430-binutils-tinyos (2.21.1-20110821) ...
Setting up msp430-gcc-tinyos (4.5.3-20110821) ...
Setting up msp430-libc-tinyos (20110612-20110821) ...
Setting up msp430mcu-tinyos (20110613-20110821) ...
Setting up msp430-tinyos (20110821) ...
Setting up tinyos-required-msp430 (2.1-20090326) ...
Setting up tinyos-required-avr (2.1-20090326) ...
Setting up tinyos-required-all (2.1-20090326) ...
Setting up tinyos-2.1.1 (2.1.1-20100401) ...
Setting up ttf-dejavu-extra (2.33-2ubuntu1) ...
Setting up ttf-liberation (1.07.0-2ubuntu0.1) ...
Setting up icedtea-netx-common (1.2-2ubuntu1.1) ...
Setting up openjdk-6-jre-headless (6b24-1.11.3-1ubuntu0.12.04.1) ...
&lt;/pre&gt;
&lt;li&gt;Install svn release of TinyOS, the directory root is of your chois, I just like keep things organised&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;sudo apt-get install subversion
mkdir /home/your_user/dev
cd dev
mkdir tiny-os-svn
#checkout the trunk version
svn checkout http://tinyos-main.googlecode.com/svn/trunk/ tinyos-main-read-only
&lt;/pre&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;&lt;/pre&gt;
&lt;li&gt;Fix .bashrc&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;vi .bashrc
i
#paste
TOSROOT_BASE=&quot;/opt/tinyos-2.1.1&quot;
TOSROOT_SVN=&quot;/home/ubuntu/dev/tiny-os-svn/trunk&quot;
#TOSROOT=$TOSROOT_SVN #swap TOSROOT to change to different version of TinyOS
TOSROOT=$TOSROOT_BASE 
TOSDIR=&quot;$TOSROOT/tos&quot;
CLASSPATH=.:$TOSROOT/support/sdk/java:$TOSROOT/support/sdk/java/tinyos.jar:$CLASSPATH
MAKERULES=&quot;$TOSROOT/support/make/Makerules&quot;
PYTHONPATH=$PYTHONPATH:$TOSROOT/support/sdk/python
export TOSROOT
export TOSDIR
export CLASSPATH
export MAKERULES
export PYTHONPATH

#reload bash
source /home/ubuntu/.bashrc
&lt;/pre&gt;
&lt;li&gt;Fix JNI&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;sudo tos-install-jni
&lt;/pre&gt;
&lt;li&gt;Install build tools &lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;sudo apt-get install build-essential python python-dev gdb
&lt;/pre&gt;
&lt;li&gt;Fix python version&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;vi /opt/tinyos-2.1.1/support/make/sim.extra
i
#change PYTHON_VERSION=2.5 to
PYTHON_VERSION ?= $(shell python --version 2&amp;gt;&amp;amp;1 | sed &#39;s/Python 2\.\([0-9]\)\.[0-9]+\{0,1\}/2.\1/&#39;)
&lt;/pre&gt;
&lt;li&gt;Test installiation&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;cd dev/tiny-os-svn/trunk/apps/Blink
make micaz sim
#should end with 
*** Successfully built micaz TOSSIM library.
&lt;/pre&gt;
&lt;li&gt;Create and run simulation&lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;cd /opt/tinyos-2.1.1/apps/RadioCountToLeds
make micaz sim
&lt;/pre&gt;
Create topo.txt
&lt;pre class=&quot;brush:shell&quot;&gt;0  2 -66.0
 2  0 -67.0
 1  2 -54.0
 2  1 -55.0
 1  3 -60.0
 3  1 -60.0
 2  3 -64.0
 3  2 -64.0
&lt;/pre&gt;
Create python packet.py (this is edited and fixed version of original packet.py)
&lt;pre class=&quot;brush:python&quot;&gt;import sys
from TOSSIM import *
from RadioCountMsg import *

t = Tossim([])
m = t.mac();
r = t.radio();

t.addChannel(&quot;RadioCountToLedsC&quot;, sys.stdout)
t.addChannel(&quot;LedsC&quot;, sys.stdout)

for i in range(0, 2):
  m = t.getNode(i);
  m.bootAtTime((31 + t.ticksPerSecond() / 10) * i + 1)

f = open(&quot;topo.txt&quot;, &quot;r&quot;)
lines = f.readlines()
for line in lines:
  s = line.split()
  if (len(s) &amp;gt; 0):
    if (s[0] == &quot;gain&quot;):
      r.add(int(s[1]), int(s[2]), float(s[3]))

noise = open(&quot;/opt/tinyos-2.1.1/tos/lib/tossim/noise/meyer-heavy.txt&quot;, &quot;r&quot;)
lines = noise.readlines()
for line in lines:
  st = line.strip()
  if (st != &quot;&quot;):
    val = int(st)
    for i in range(0, 2):
      t.getNode(i).addNoiseTraceReading(val)

for i in range(0, 60):
  t.runNextEvent()

msg = RadioCountMsg()
msg.set_counter(7)
pkt = t.newPacket()
pkt.setData(msg.data)
pkt.setType(msg.get_amType())
pkt.setDestination(0)

print &quot;Delivering %s to 0 at %s&quot; %(str(msg),str(t.time() + 3))
pkt.deliver(0, t.time() + 3)


for i in range(0, 20):
  t.runNextEvent()

&lt;/pre&gt;
Run in sequence 
&lt;pre class=&quot;brush:shell&quot;&gt;python packet.py
&lt;/pre&gt;
&amp;nbsp;&lt;/ol&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;Lots of pretty output. Done!&amp;nbsp;&lt;/ol&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;For more info on simulations see http://docs.tinyos.net/tinywiki/index.php/TOSSIM.&amp;nbsp;&lt;/ol&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;Remember to stop your instance when you done! &lt;/ol&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;Happy WSN simulations! &lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/3514688110451790222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/08/tossim-simulations-on-amazon-aws.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/3514688110451790222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/3514688110451790222'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/08/tossim-simulations-on-amazon-aws.html' title='TOSSIM simulations on Amazon AWS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-1383400393640277260</id><published>2012-08-06T05:44:00.000-07:00</published><updated>2014-03-28T03:36:24.200-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Amazon"/><category scheme="http://www.blogger.com/atom/ns#" term="aws"/><category scheme="http://www.blogger.com/atom/ns#" term="capture traffic"/><category scheme="http://www.blogger.com/atom/ns#" term="EBS"/><category scheme="http://www.blogger.com/atom/ns#" term="EC2"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="tshark"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="wireshark"/><title type='text'>Wireshark on AWS EC2</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;script src=&quot;https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js&quot;&gt;&lt;/script&gt;

&lt;b&gt;Updated on 28th Mars 2014, thanks &lt;i&gt;Imran Hayder&lt;/i&gt; for suggestions!&lt;/b&gt;

In some cases you may need to run wireshark on remote machine, especially if you want to in depth to understand what is going on.&lt;br /&gt;
Without any further blah blah, amusing you are using Ubuntu here is how to:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create EBS, make sure to un-check &quot;delete on termination&quot;&lt;/li&gt;
&lt;li&gt;Create and start Ubuntu 12.04 EC2&lt;/li&gt;
&lt;li&gt;Log in to it&lt;/li&gt;
&lt;li&gt;Check disk name &lt;/li&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;
sudo fdisk -l 
&lt;/pre&gt;
&lt;li&gt;Format disk&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo mkfs -t ext4 /device/path
&lt;/pre&gt;
&lt;li&gt;Create mount directory&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo mkdir /home/data-storage
&lt;/pre&gt;
&lt;li&gt;Mount disk&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo mount /dev/DEVICE /home/data-storage
&lt;/pre&gt;
&lt;li&gt;Make wireshark folder&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo mkdir /home/data-storage/wireshark
#important change ownership!
sudo chown root:ubuntu /home/data-storage/wireshark
#allow group to read
sudo chmod -R 774 wireshark
&lt;/pre&gt;
&lt;li&gt;Install wireshark&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo apt-get install wireshark tshark
&lt;/pre&gt;
&lt;li&gt;Run example&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
sudo su
cd /home/data-storage/wireshark
#tshark will capture eth0 for 10 seconds and save file to my.pcap
tshark -i eth0 -a duration:10 -w my.pcap
&lt;/pre&gt;
&lt;li&gt;Copy file to local&lt;/li&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#from your local machine, note intentional line brake due to layout of the blog.
cd wireshark
scp -i your.pem 
   ubuntu@your_ec2_dns.compute.amazonaws.com:/path-to/my.pcap .
&lt;/pre&gt;
&lt;/ol&gt;

Read the comments bellow for trouble shooting. Note, it is not advisable to copy paste commands since you may bet the html representation, and not what you should type in the terminal.
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/1383400393640277260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/08/wireshark-on-aws-ec2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/1383400393640277260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/1383400393640277260'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/08/wireshark-on-aws-ec2.html' title='Wireshark on AWS EC2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-2398563701369061188</id><published>2012-04-14T04:12:00.000-07:00</published><updated>2012-04-14T04:12:58.479-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="beta"/><category scheme="http://www.blogger.com/atom/ns#" term="lenovo"/><category scheme="http://www.blogger.com/atom/ns#" term="PrecisePangolin"/><category scheme="http://www.blogger.com/atom/ns#" term="thinkpad x220"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type='text'>Ubuntu 12.04 on Lenovo x220</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Ubuntu 12.04&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
There have been a lot of progress in Ubuntu! I got new Lenovo&#39;s Thinkpad X220 and immediately installed Ubuntu 12.04 64 bits. A short summary everything worked out of box, however, I did not tested fingerprint reader nor WiMax or mobile Broadband. The rest is smooth flow even with beta of Ubuntu. Boot time is really awesome, bringing the login screen 7s!&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Thanks Canonical for Ubuntu! :)&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/2398563701369061188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/04/ubuntu-1204-on-lenovo-x220.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/2398563701369061188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/2398563701369061188'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/04/ubuntu-1204-on-lenovo-x220.html' title='Ubuntu 12.04 on Lenovo x220'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-5120797653891142273</id><published>2012-04-04T04:43:00.001-07:00</published><updated>2012-04-04T05:00:49.029-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="backup"/><category scheme="http://www.blogger.com/atom/ns#" term="centos"/><category scheme="http://www.blogger.com/atom/ns#" term="rsvndump"/><category scheme="http://www.blogger.com/atom/ns#" term="svn"/><category scheme="http://www.blogger.com/atom/ns#" term="svn export sub-folder"/><title type='text'>Export specific sub holder from svn on CentOS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Some time project grows in your repository and you may want to move it to separate repository or you want to share you work and open up repository from tight security. The reasons can be many but the process is the same.&lt;br /&gt;
&lt;br /&gt;
(assuming root access, LATEST refers to the latest available version, procedure was tested on 0.5.8)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Install needed components&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;yum install subversion-devel httpd-devel
wget http://prdownloads.sourceforge.net/rsvndump/rsvndump-LATEST.tar.gz
tar xvfz rsvndump-LATEST.tar.gz
cd rsvndump-LATEST
./configure
make
sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Exporting your project&lt;/b&gt;&lt;br /&gt;
With rsvndump you don&#39;t need to use filters to extract your subfolder within svn, it will do it for you just in one command&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;rsvndump -v -u username -p psw  https://ulr/svn/repos/to/subfolder &amp;gt; subfolder
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Create svn repository&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;svnadmin create /path/to/svn/project
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Allow Apache to read it&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;chown -R apache:apache symphony&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Import it dumped file&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;svnadmin load --force-uuid /path/to/svn/project &amp;lt; subfolder
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Enable web access in Apache&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
&amp;lt;location svn=&quot;&quot;&amp;gt;
        SSLRequireSSL
        DAV svn
        SVNParentPath /path/to/svn
        AuthzSVNAccessFile /path/to/svn-acl-conf
        AuthType Basic
        AuthName &quot;Subversion repos&quot;
        AuthUserFile /path/to/svn-auth-conf
        Require valid-user
        SVNIndexXSLT &quot;https://url/svnindex.xsl&quot;
&amp;lt;/location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;location path=&quot;&quot;&gt;&lt;/location&gt;&lt;b&gt;Enable access in svn-acl-conf&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;[project:/]
@project_users=rw&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;
[repos:/]
@users=rw
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Restart Apache&lt;/b&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;/etc/init.d/httpd restart
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;More info&lt;/b&gt;&lt;br /&gt;
The assumption in example is that all your repositories are in the /path/to/svn/
Then  you can use only one conf file for Apache and control access to repositories :)


and you are done!
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/5120797653891142273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/04/export-specific-sub-holder-from-svn-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5120797653891142273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5120797653891142273'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/04/export-specific-sub-holder-from-svn-on.html' title='Export specific sub holder from svn on CentOS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-5150203602154794394</id><published>2012-03-08T23:36:00.000-08:00</published><updated>2012-03-08T23:36:41.800-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="centos"/><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="http"/><category scheme="http://www.blogger.com/atom/ns#" term="trac"/><title type='text'>Trac on Centos</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;cat httpd/conf.d/trac-project.conf&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt; #configuration 
#permament redirect for https
Redirect permanent http://path https://path
WSGIScriptAlias /project /var/www/html/project/cgi-bin/trac.wsgi
#with multiple project you need only alias it once&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;&lt;location &#39;=&quot;&quot; symphony&#39;=&quot;&quot;&gt;Alias /trac/chrome/common /usr/share/trac/htdocs/common&lt;/location&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;&lt;location &#39;=&quot;&quot; symphony&#39;=&quot;&quot;&gt;Alias /trac/chrome/site /usr/share/trac/htdocs/site

&amp;lt;Directory /var/www/html/project/cgi-bin/&amp;gt;
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
&amp;lt;/Directory&amp;gt;

&amp;lt;Location &#39;/symphony&#39;&amp;gt;
        SSLRequireSSL
        AuthType Basic
        AuthName &quot;Trac symphony&quot;
        AuthUserFile /usr/share/trac/projects/project/conf/trac.htpasswd
        Require valid-user
&amp;lt;/Location&amp;gt;&amp;nbsp;&lt;/location&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Back up trac&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Since 0.13, trac back up include MySQL db back up, always good to have before upgrading.&lt;br /&gt;
&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;&lt;code&gt; $ trac-admin /path/to/projenv hotcopy /path/to/backupdir&lt;/code&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;code&gt;
More info: http://trac.edgewall.org/wiki/0.13/TracBackup&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/5150203602154794394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/03/trac-on-centos.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5150203602154794394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/5150203602154794394'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/03/trac-on-centos.html' title='Trac on Centos'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-7938672483921095846</id><published>2012-03-07T02:04:00.000-08:00</published><updated>2012-03-07T02:04:07.414-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="code formating"/><title type='text'>Code on blogger</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Quite nice formating for posting code on blogger
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
&amp;lt;pre style=&quot;font-family: Andale Mono, Lucida Console,&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;Monaco, fixed, monospace; color: #000000;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;background-color: #eee;font-size: 12px;border: 1px dashed #999999;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;line-height: 14px;padding: 5px; overflow: auto; width: 100%&quot;&amp;gt;&amp;lt;code&amp;gt;

&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/7938672483921095846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2012/03/code-on-blogger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7938672483921095846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/7938672483921095846'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2012/03/code-on-blogger.html' title='Code on blogger'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7524121611539854790.post-419691164928280356</id><published>2011-11-23T06:44:00.000-08:00</published><updated>2011-11-23T06:44:50.787-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="boos"/><category scheme="http://www.blogger.com/atom/ns#" term="c++"/><category scheme="http://www.blogger.com/atom/ns#" term="class"/><category scheme="http://www.blogger.com/atom/ns#" term="thread"/><title type='text'>Boost threads</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Good information on boost thread:&lt;br /&gt;
&lt;br /&gt;
General intro:&lt;br /&gt;
&lt;a href=&quot;http://drdobbs.com/cpp/184401518&quot;&gt;http://drdobbs.com/cpp/184401518&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Using in class: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html&quot;&gt;http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Official API &lt;br /&gt;
&lt;a href=&quot;http://www.boost.org/doc/libs/1_48_0/doc/html/thread/thread_management.html&quot;&gt;http://www.boost.org/doc/libs/1_48_0/doc/html/thread/thread_management.html&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shieldroute.blogspot.com/feeds/419691164928280356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://shieldroute.blogspot.com/2011/11/boost-threads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/419691164928280356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7524121611539854790/posts/default/419691164928280356'/><link rel='alternate' type='text/html' href='http://shieldroute.blogspot.com/2011/11/boost-threads.html' title='Boost threads'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03487342392493882098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>