Intent When there is a city wide Wireless Sensor Network (WSN), this has to be resolved with anything meaningful, say name of where it is located. then this has to be the name that it should be resolved to. to creat DNSed, as in past tense in English for DNS. To DNS the shit out of the IoT. To create an amazing network and to overload the DNS servers. To create everything out in the open, so everything in the Hollywood movies can come true. Scenario When a water tank level indicator at place called “Meereen”. There is a number for the water tank which is 256. then, this can be described in the internet nomenclature as domain name: meereen.got object: water tank number: 256 sensor type: level indicator this would translate to an internet name of “level.256.water.meereen.got” usually, there is only a sensor in a an area and they are organised in cluster. in that case, Meereen’s water tank is being referenced, and the sensor 256 is being addressed where the level is being asked for, https://256.water.meereen.got/level where level is a service provided by the sensor Possibility: It is possible to use BIND9 to build a DNS server, then create the zone records to point to the different sensors. the tutorial gives a good insight on deploying a BIND9 DNS server [3]. There are very good python libraries available in such an instance to build an DNS server and then work with their API. The following are some interesting DNS APIs… Read more
Category: General
Developing for ESP8266 using Arduino IDE
Cut to action steps: Install Arduino IDE Install board support packages to compile for ESP8266 http://arduino.esp8266.com/stable/package_esp8266com_index.json How and where to do it! first add that URL in the additional board managers URL now goto the board manager and look for ESP8266 and install the package compile your first program, don’t upload yet To upload, if you have NodeMCU, Arduino takes care of turning the boot-loader mode. if any other, then better to put it yourself into boot-loader mode. Enjoy ESP8266 development!
There are million ways to finish what you started; there is only one way to fail
There are million ways to finish what you started; there is only one way to fail On the way to getting things done right after getting off the train at the university. was having a moment ;)😂
All about Google WiFi Positioning System
WiFi Positioning system is a new way to get precise localisation. It is used in conjunction with GPS to achieve better accuracy. Read through to know how there is a slight privacy intrusion and how you can take care of your privacy issues. I am also sharing some interesting things about this WiFi Positioning System (WPS) that Google offers through its developer API. It is interesting that Google asks for you to sign up for logging the access point (AP) information in your android phone. Well if you knew when and where it is asked, you will surely hit NO! They collect your AP information mostly without clear notice and then you have to pay to use the API to access this information. Atleast this is what Google does. Well some digging says it is just done periodically. My conclusions of how AP information tagged with location is logged are as follows It is somewhere connected to location reporting from Google Location Services. It could be just the localisation data that is sent to Google to while you are using your apps that require location. So Google actually logs all the Access Point (AP) a device connects to and with the help of GPS it is geolocated and the info is tagged and sent to Google servers! How to opt out of this WPS?
Generating Heat Maps for eye-tracker data
A heat map is a graphical representation of data where the individual values contained in a matrix are represented as colors. –Wikipedia Concept Here is my approach to deal with it. All that is need is a frequency of a value being repeated in case of one dimension and then creating a color map for high to low and plotting them on a graph. Problem statement For eye tracking data, we are dealing with a 2d data of x and y points. In the experiement there are squares of size 3.4cm. They are arranged in 10 colomns and 6 rows. We want to see in which of those squares are hit more frequently and produce a heatmap. Experiment data For the hits, we have the data from the participant eye tracking. After some manipulations from the eye tracker raw data, we get points x and y. Here we are not using time series analysis so time stamps are not required. The experiment uses a specific eye tracker but the data is saved using python and the format of the data looks like the following TimestamptTriggertLeftValiditytRightValiditytLeftXtLeftYRigthXtRightY Data from userXX trialXXX [wpdm_file id=3] Solution code positions <- read.table(“http://blog.southpaw.in/?wpdmact=process&did=My5ob3RsaW5r”) br.x <- seq(-23.5, 23.5, length.out=10) br.y <- seq(-16.1, 16.1, length.out=6) int.x <- findInterval(positions[,1], br.x) int.y <- findInterval(positions[,2], br.y) #See footnote int.x <- factor(int.x, levels=10) int.y <- factor(int.y, levels=6) tb <- table(int.x, int.y) image(br.x, br.y, tb, xlab=”X”, ylab=”Y”, las=1, main=”Heat map”) Conclusion The image generated can be interpreted as red with low frequecy or almost no… Read more
Installing MEAN stack for Fullstack application development
The best one liner for what MEAN stack is given in the following picture. MEAN stack is more like LAMP. M = MongoDB E = ExpressJS A = AngularJS N = NodeJS MEAN Stack Logo There has been a lot of development from Google for the AngularJS and NodeJS. They are minimalistic and javascript based, for now cutting edge web development tools. For installing MEAN stack in ubuntu, follow the commands to set up your MEAN Stack. I deployed my server in Digitalocean which is like my obsessed service for cloud deployment. Install MongoDB #~ sudo apt-get install mongodb Install NodeJS and Npm #~ sudo apt-get install nodejs npm and create a symlink #~ sudo ln -s /usr/bin/nodejs /usr/bin/node Install Bower #~ sudo npm install -g bower Install Grunt #~ sudo npm install -g grunt-cli Install MEAN sudo npm install -g mean-cli Init your first App $ mean init testApp type in your IPaddress with port 3000 http://xxx.xxx.xxx.xxx:3000
It could not have been better! Its just gonna get better!
That moment! few hours before the new years! A probable feel of dashing adrenaline because of It could not have been better! Its just gonna get better! An amazing page in the book of time where a year is a a sheet smeared with melancholic emotions, careless decisions, withering memories, inspirational failures and motivational achievements. Incredible year with the force awakening in the end! There is a stir to settle down! got stirred, probably will settle down… looking ahead for the future. Its all about the vibes and the motions!
Compiling Contiki for CC1350
Setup: macOS 10.13.5 VM – VirtualBox Guest OS: Ubuntu 16.04 Setup Contiki on the local machine: Install the following packages. you might need sudo right. # sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi # sudo add-apt-repository http://ppa:team-gcc-arm-embedded/ppa # sudo apt-get update Compile Contiki hello-world for Native: Native means that your code will compile and run directly on your host PC. for me, it will run on the Ubuntu 16.04 OS on the VM. cd into your development folder. # git clone https://github.com/contiki-os/contiki # cd contiki/examples/hello-world # make TARGET=native mkdir obj_native CC ../../core/ctk/ctk-conio.c CC ../../platform/native/./contiki-main.c CC ../../platform/native/./clock.c CC ../../core/dev/leds.c ### output truncated ### AR contiki-native.a CC hello-world.c LD hello-world.native rm hello-world.co The target command tells the compiler to compile for the current system. This is what is later changed for cross compiling to our target platform. Type the following command to run the hello-world program. # ./hello-world.native Contiki-3.x-3343-gbc2e445 started with IPV6, RPL Rime started with address 1.2.3.4.5.6.7.8 MAC nullmac RDC nullrdc NETWORK sicslowpan Tentative link-local IPv6 address fe80:0000:0000:0000:0302:0304:0506:0708 Hello, world if this is how it worked! your compilation worked! Compiling Contiki-OS for CC13xx The only thing to be changed is the target. make clean is an important step. make clean make TARGET=srf06-cc26xx BOARD=sensortag/cc1350 this says the compilation works if you see the following: CC ../../cpu/cc26xx-cc13xx/lib/cc13xxware/startup_files/ccfg.c CC ../../cpu/cc26xx-cc13xx/./ieee-addr.c AR contiki-srf06-cc26xx.a CC ../../cpu/cc26xx-cc13xx/./fault-handlers.c CC ../../cpu/cc26xx-cc13xx/lib/cc13xxware/startup_files/startup_gcc.c CC… Read more
TI CC2530DK – Contiki OS – Internet of Things
This blog post is an effort to create a one stop information for starting off your Contiki project with cc2530DK. There is enough information already available on Github wiki. This post is more than an extension to have all information under one place and as usual my way of documenting my projects! [toc] Getting started Installation – Ubuntu I am assuming that you already have a system installed with Ubuntu. My suggestion would be to do it on a Virtual machine. I am using VirtualBox Installing Contiki The easiest way is to use [viraldownloader id=211 text=’InstantContiki 2.7′]. The longer description of how to install on your existing virtual machine (vm) is also available at the bottom. Steps for firing up your instant contiki 2.7 Install vmware since the guest operating system is in VMDK and Vmx files [viraldownloader id=212 text=’vmplayer’] Start the VM instance and Contiki comes already installed. Steps for installation Install the following packages: Copy paste the following in your terminal. You need root access to perform this. sudo apt-get install build-essential binutils-msp430 gcc-msp430 msp430-libc binutils-avr gcc-avr gdb-avr avr-libc avrdude openjdk-7-jdk openjdk-7-jre ant libncurses5-dev doxygen git gtkterm This will allow you to cross-compile for MSP430- and AVR-platforms. Clone the Contiki sources from Github: git clone git://github.com/contiki-os/contiki.git contiki This is all about installing contiki. There is one more step where you will install SDCC to compile for 8051 devices. Installing SDCC to compile for cc2530/1 devices As always, first step is to install the pre-requisites. Copy paste the following in your terminal. sudo… Read more
Finding Aabenra (Åbenrå)
Silent, Classic Danish city! Aabenra Yacht Club was the main attraction with the side by camping site that made me intrigued to get to that place. This popped up in the Navigation map on our way to Copenhagen (København) .