(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| # Plot spectrum of wav file saved by SDR# as function of time (3D plot) | |
| # Bandwidth = 32 kHz when input sample rate = 2.048 MHz (decimated by 64) | |
| # Asgaut Eng/2016-10-02 | |
| import numpy as np | |
| import scipy.io.wavfile as wav | |
| import scipy.signal as signal | |
| from scipy.fftpack import fft, fftfreq, fftshift | |
| import matplotlib.pyplot as plt | |
| from mpl_toolkits.mplot3d import Axes3D |
| // A small SSH daemon providing bash sessions | |
| // | |
| // Server: | |
| // cd my/new/dir/ | |
| // #generate server keypair | |
| // ssh-keygen -t rsa | |
| // go get -v . | |
| // go run sshd.go | |
| // | |
| // Client: |
| #!/bin/sh | |
| sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common | |
| sudo apt-get install liblua5.1-dev luajit libluajit-5.1 python-dev ruby-dev libperl-dev mercurial libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev | |
| sudo mkdir /usr/include/lua5.1/include | |
| sudo ln -s /usr/include/luajit-2.0 /usr/include/lua5.1/include | |
| cd ~ | |
| hg clone https://code.google.com/p/vim/ |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| // Run in the JavaScript console of the hterm browser window | |
| // Clear all existing settings - you probably don't want to do this. | |
| // Preferences are now stored in "chrome.storage.sync" instead of | |
| // "window.localStorage" so if you clear your preferences the changes | |
| // will be propagated to other devices. | |
| //term_.prefs_.storage.clear(); | |
| var htermProfiles = [ |
| [ | |
| { | |
| "class": "sidebar_container", | |
| // $base01: #586e75 | |
| "layer0.tint": [88,110,117], | |
| "layer0.opacity": 1.0, | |
| "layer0.draw_center": false, | |
| "layer0.inner_margin": [0, 0, 1, 0], | |
| "content_margin": [0, 0, 1, 0] |
| [ | |
| { | |
| "class": "sidebar_container", | |
| // $base02: #073642 | |
| "layer0.tint": [7,54,66], | |
| "layer0.opacity": 1.0, | |
| "layer0.draw_center": false, | |
| "layer0.inner_margin": [0, 0, 1, 0], | |
| "content_margin": [0, 0, 1, 0] |
| /*! | |
| * backbone.collectioncache.js v0.0.2 | |
| * Copyright 2012, Tim Branyen (@tbranyen) | |
| * backbone.collectioncache.js may be freely distributed under the MIT license. | |
| */ | |
| (function(window) { | |
| "use strict"; | |
| // Dependencies |
| // Combine JS and CSS files | |
| // --- | |
| // | |
| // Make sure you install the npm dependencies | |
| // > cd YOUR_PROJECT_FOLDER | |
| // > npm install | |
| // | |
| // Than run: | |
| // > node build |
| // selection range | |
| var range = window.getSelection().getRangeAt(0); | |
| // plain text of selected range (if you want it w/o html) | |
| var text = window.getSelection(); | |
| // document fragment with html for selection | |
| var fragment = range.cloneContents(); | |
| // make new element, insert document fragment, then get innerHTML! |