--- /dev/null
+<html>
+ <head>
+ <title>Use any untrusted cloud storage with encryption</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+ </head>
+ <body>
+ <h3>PREREQUISITES</h3>
+ Install encfs and fuse<br />
+<pre># apt-get install fuse encfs</pre>
+ Install a cloud service(copy.com used here)(assuming ~/bin is in your path and running on a 64bits machine)<br />
+ When using a different architecture just change x86_64 to x86 or armv6h in the client install script<br />
+ If ~/bin is not in your path add to your bashrc(example using user: test):
+<pre>PATH=$PATH:/home/test/bin</pre>
+ Download and install the copy client for linux
+<pre>
+$ wget https://copy.com/install/linux/Copy.tgz
+$ mkdir ~/bin/copy; tar -xf Copy.tgz -C ~/bin/copy
+$ ln -s ~/bin/copy/x86_64/CopyConsole ~/bin/CopyConsole
+</pre>
+ <h3>SETUP</h3>
+ <p>Make sure your user is in the fuse group and setup the encfs share by doing this:
+<pre>
+$ mkdir ~/.copy.encr ~/copy
+$ encfs ~/.copy.encr ~/copy
+</pre>
+ When they ask use option p for paranoia and pick a password.<br />
+ Create an account on copy.com and setup the client by typing this command
+<pre>$ CopyConsole -u=the_mail_you_signed_up_with -r=/home/your_linux_username/.copy.encr -p=the_password_you_signed_up_with</pre>
+ This creates a setup that does this automatically in the future<br />
+ Let the daemon and the encfs autostart when you and only you are logged in by adding this to ~/.bashrc
+<pre>
+if ! mountpoint -q ~/copy; then
+ encfs ~/.copy.encr ~/copy
+fi
+if ! pidof CopyConsole >> /dev/null; then
+ CopyConsole -daemon 2>&1 1>/dev/null
+fi
+</pre>
+ Congratulations your setup is working. <br />
+ When you want to stop the daemon you can kill the pid given by ~/.copy.pid.<br />
+ From now on your computer or server will ask one time for you password when the first bash starts in your account.</p>
+
+ <h3>NOTES</h3>
+ <p>This could work with any cloud service, just mount the folder it wil sync first with encfs</p>
+ </body>
+</html>
--- /dev/null
+<html>
+ <head>
+ <title>Automatic wifi without heavy network manager on debian</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+ </head>
+ <body>
+ <h3>PREREQUISITES</h3>
+ <p>Install wpa_supplicant and wireless-tools(standard in most distros).<br />
+<pre># apt-get install wireless-tools wpa_supplicant</pre>
+ <br />
+ Identify your wifi controller. This can usually be found by typing<br />
+ <pre>$ iwconfig</pre>
+ <br />
+ Locate all the config files for your desired networks. Mine are placed in /etc/network/wifi/<SSID>.conf. More info on creating configs in the end of the file.</p>
+
+ <h3>INSTALLATION</h3>
+ <p>Create the SSID selection script.<br />
+ I've put mine in /etc/network/wifi/select<br />
+<pre>
+#!/bin/sh
+ifconfig [INTERFACE] up 1> /dev/null && { iwlist [INTERFACE] scan | grep -o "\".*\"" | tr -d \'\" | sort | uniq; grep -o "map\ .*" /etc/network/interfaces | awk '{print $2}'; } | sort | uniq -d | head -1
+</pre>
+ <br />
+ Make it executable.<br />
+ <pre># chmod +x /etc/network/wifi/select</pre>
+ <br />
+ Change in /etc/network/interfaces the [INTERFACE] specification.<br />
+<pre>
+mapping [INTERFACE]
+ script /etc/network/wifi/select
+ map [SSID]1
+ map [SSID]2
+ ..
+ map eduroam
+
+iface [SSID]1 inet dhcp
+wpa_conf /etc/network/wifi/[SSID]1.conf
+
+iface [SSID]2 inet dhcp
+wpa_conf /etc/network/wifi/[SSID]2.conf
+
+..
+
+iface eduroam inet dhcp
+wpa_conf /etc/network/wifi/eduroam.conf
+</pre>
+ <br />
+ You're finished! Restart the network service with:<br />
+ <pre># service networking restartworking restart</pre>
+ And you can connect to a available network by running this command.<br />
+ <pre># ifup [INTERFACE]</pre>
+ If you want to force an [SSID] you can run:<br />
+ <pre># ifup [INTERFACE]=[SSID]</pre></p>
+
+ <h3>CONFIG CREATION</h3>
+ <p>Standard wpa2 network configs can be created by running:<br />
+ <pre># wpa_passphrase [SSID] [PASSWORD] > /etc/network/wifi/[SSID].conf</pre>
+ <br />
+ For eduroam you can use this example:<br />
+<pre>
+network={
+ ssid="eduroam"
+ key_mgmt=WPA-EAP
+ eap=TTLS
+ phase2="auth=MSCHAPV2"
+ ca_cert="/etc/ssl/certs/AddTrust_External_Root.pem"
+ identity="login@university.nl"
+ scan_ssid=1
+ password="YOURPASSWORD"
+}
+</pre>
+ If you don't want your password in a config you can also use a hash generated by this command. (Don't forget to remove it from ~/.bash_history afterwards)<br />
+<pre>$ echo -n [PASSWORD] | iconv -t UTF16LE | openssl md4</pre>
+ You should replace the plaintext string with: "hash:[HASHOUTPUT]"<br />
+ note: don't use quotes.</p>
+ <footer>update 2014-03-04: fixed a few small errors concerning hashing and config files</footer>
+ </body>
+</html>
--- /dev/null
+<html>
+ <head>
+ <title>Play youtube videos on a headless server</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+ </head>
+ <body>
+ Download the get_flash_videos latest version:
+<pre>$ git clone https://github.com/monsieurvideo/get-flash-videos.git</pre>
+ Install the dependencies:
+<pre># apt-get install perl libmodule-find-perl libwww-mechanize-perl vlc</pre>
+ Install the get_flash_videos script:
+<pre>
+$ cd get-flash-videos/
+$ make
+$ make install
+</pre>
+ Create a small script that combines these with vlc by adding this to bashrc or a shellscript in PATH the flag -A alsa could be different(when usig pulseaudio it can be omitted):
+<pre>
+function ytview {
+ if [ "$#" -ne "1" ]; then
+ echo "usage $0 yturl"
+ else
+ get_flash_videos -q -f - $1 | cvlc -A alsa -V aa -
+ fi
+}
+</pre>
+ Play a video by typing:
+<pre>$ ytview http://www.youtube.com/watch?v=QAUzWtLMnU0</pre>
+ Some videos can't be downloaded, but most videos will just work.
+ </body>
+</html>
3d85a9b435eb833de088e45c3f56e49c ./dvorak.html
9e5b7702d73bfb7febb24bf58f0e8d60 ./hashes.txt
-90104db709d8c0c3b796e0e4a36b6b83 ./index.html
+e93bffb77c9c45e1b3efdc4092d04e3d ./index.html
72ac29b74f3e09c551aa10a2a8d2581d ./lejos-ubuntu.html
0ba6cb2c3a9d7d8ba27406d215aa501e ./mart@martlubbers.net.asc
-146f1bb6bed2adfd4d13f9644390db71 ./nsa-dropbox.html
75068866762dc200d6e185bfe9b3a2bf ./o.html
ce31052406b3874b287e98c8a9477516 ./p.jpg
95b2932b7da95664dcef20097b1b58df ./put.bash
43eb61826bc538817b4c78c7f8d57019 ./README.md
4be5b32df3dedb74eeb758b233864fe6 ./robots.txt
-c4eb5b90b5d47d5c7bfe9a80a80abe40 ./style.css
+d41d8cd98f00b204e9800998ecf8427e ./style.css
d69f225d06c3d7a417fb5e8159efc2d1 ./test.php
-2ed34aa229468632cce58151c33d1ebc ./wlan-debian.html
-d07dca8f45b3f046558216cf3ac96c28 ./youtube-term.html
<p>2014-09-09: Introduction to the command line and bash session. <a href="http://www.linuxnijmegen.nl/">LUGN</a></p>
<p>2014-07-08: Advanced usage of ssh. <a href="http://www.linuxnijmegen.nl/">LUGN</a></p>
- <h3>Personal Projects</h3>
- <h4>Tutorials or manuals</h4>
+ <h3>Software and libraries</h3>
<ul>
- <li><a href="dvorak.html">Personal dvorak page</a></li>
- <li><a href="youtube-term.html">Play youtube videos on headless machine</a></li>
- <li><a href="nsa-dropbox.html">Use any untrusted linux cloud storage safe</a></li>
- <li><a href="lejos-ubuntu.html">Install LeJoS on any debian based linux</a></li>
- <li><a href="wlan-debian.html">Wlan w.o. network manager on debian</a></li>
+ <li><a href="https://github.com/dopefishh/praatlign">Praat Align</a> - An interactive praat forced aligner, easily extensible for more languages</li>
+ <li><a href="https://github.com/dopefishh/pympi">pympi</a> - A python toolkit to interact with Praat and Elan files</li>
</ul>
- <h4>Currently active</h4>
+ <h3>Tutorials or manuals</h3>
<ul>
- <li><a href="https://github.com/dopefishh/praatlign">Praat Align</a> - An interactive praat forced aligner, easily extensible for more languages</li>
- <li><a href="https://github.com/dopefishh/pynterfaces">pynterfaces</a> - A python toolkit to modify your /etc/network/interfaces file to make network managers unneeded(wifi included)</li>
- <li><a href="https://github.com/dopefishh/pympi">pympi</a> - A python toolkit to interact with Praat and Elan files</li>
+ <li><a href="dvorak.html">Dvorak page</a></li>
+ <li><a href="lejos-ubuntu.html">Install LeJoS on any debian based linux</a></li>
</ul>
- <h4>Suspended</h4>
+ <h4>Suspended projects/archive</h4>
<ul>
+ <li><a href="archive/youtube-term.html">Play youtube videos on headless machine</a></li>
+ <li><a href="archive/nsa-dropbox.html">Use any untrusted linux cloud storage safe</a></li>
+ <li><a href="archive/wlan-debian.html">Wlan w.o. network manager on debian</a></li>
+ <li><a href="https://github.com/dopefishh/pynterfaces">pynterfaces</a> - A python toolkit to modify your /etc/network/interfaces file to make network managers unneeded(wifi included)</li>
<li><a href="https://github.com/dopefishh/dwifi">dWifi</a> - A cli network manager for linux</li>
<li>TALK - A pure java text adventure engine</li>
- <li>Kasparobot - A chess playing robot made withe LEGO mindstorm</li>
+ <li>Kasparobot - A chess playing robot made with LEGO mindstorm</li>
<li>Logic gate simulator - A pure java logic gate simulator</li>
</ul>
<h3>Other Interests</h3>
- <p>- Death/Doom metal<br />
+ <p>
+ - Death/Doom metal<br />
- Hacking<br />
- <a href="http://www.howchuenmonkeykungfu.nl">Kung fu</a><br />
- <a href="http://linuxnijmegen.nl">Linux</a><br />
- - Pokémon</p>
+ - Pokémon
+ </p>
<div style="margin-top">
Last updated: 14-10-16
<img style="margin:0px auto;display:block" alt="footer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAQAAADYBBcfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAR0lEQVQ4y2P8z4AdMOKQ+M8IoZkYyAT018hCSAHMT+h+H0J+HAkaGRn+k6dxCPkRnlZxpUl08SHox5GgkQUWT4wkptkh5EcAi7gLO+9vTlIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMDQtMjRUMTY6MTI6MzErMDI6MDC13ejnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTA0LTI0VDE2OjEyOjMxKzAyOjAwxIBQWwAAAABJRU5ErkJggg==" />
-@import url(http://fonts.googleapis.com/css?family=Inconsolata);
-@import url(http://fonts.googleapis.com/css?family=PT+Sans);
-@import url(http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700);
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section,
-summary {
- display: block;
-}
-audio,
-canvas,
-video {
- display: inline-block;
-}
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-[hidden] {
- display: none;
-}
-html {
- font-family: sans-serif;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-body {
- margin: 0;
-}
-a:focus {
- outline: thin dotted;
-}
-a:active,
-a:hover {
- outline: 0;
-}
-h1 {
- font-size: 2em;
-}
-abbr[title] {
- border-bottom: 1px dotted;
-}
-b,
-strong {
- font-weight: bold;
-}
-dfn {
- font-style: italic;
-}
-mark {
- background: #ff0;
- color: #000;
-}
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
- font-size: 1em;
-}
-pre {
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-q {
- quotes: "\201C" "\201D" "\2018" "\2019";
-}
-small {
- font-size: 80%;
-}
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-sup {
- top: -0.5em;
-}
-sub {
- bottom: -0.25em;
-}
-img {
- border: 0;
-}
-svg:not(:root) {
- overflow: hidden;
-}
-figure {
- margin: 0;
-}
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-legend {
- border: 0;
- padding: 0;
-}
-button,
-input,
-select,
-textarea {
- font-family: inherit;
- font-size: 100%;
- margin: 0;
-}
-button,
-input {
- line-height: normal;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer;
-}
-button[disabled],
-input[disabled] {
- cursor: default;
-}
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box;
- padding: 0;
-}
-input[type="search"] {
- -webkit-appearance: textfield;
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-textarea {
- overflow: auto;
- vertical-align: top;
-}
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-html {
- font-family: 'PT Sans', sans-serif;
-}
-pre,
-code {
- font-family: 'Inconsolata', sans-serif;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: 'PT Sans Narrow', sans-serif;
- font-weight: 700;
-}
-html {
- background-color: #eee8d5;
- color: #657b83;
- margin: 1em;
-}
-body {
- background-color: #fdf6e3;
- margin: 0 auto;
- max-width: 23cm;
- border: 1pt solid #93a1a1;
- padding: 1em;
-}
-code {
- background-color: #eee8d5;
- padding: 2px;
-}
-a {
- color: #b58900;
-}
-a:visited {
- color: #cb4b16;
-}
-a:hover {
- color: #cb4b16;
-}
-h1 {
- color: #d33682;
-}
-h2,
-h3,
-h4,
-h5,
-h6 {
- color: #859900;
-}
-pre {
- background-color: #fdf6e3;
- color: #657b83;
- border: 1pt solid #93a1a1;
- padding: 1em;
- box-shadow: 5pt 5pt 8pt #eee8d5;
-}
-pre code {
- background-color: #fdf6e3;
-}
-h1 {
- font-size: 2.8em;
-}
-h2 {
- font-size: 2.4em;
-}
-h3 {
- font-size: 1.8em;
-}
-h4 {
- font-size: 1.4em;
-}
-h5 {
- font-size: 1.3em;
-}
-h6 {
- font-size: 1.15em;
-}
-.tag {
- background-color: #eee8d5;
- color: #d33682;
- padding: 0 0.2em;
-}
-.todo,
-.next,
-.done {
- color: #fdf6e3;
- background-color: #dc322f;
- padding: 0 0.2em;
-}
-.tag {
- -webkit-border-radius: 0.35em;
- -moz-border-radius: 0.35em;
- border-radius: 0.35em;
-}
-.TODO {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #2aa198;
-}
-.NEXT {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #268bd2;
-}
-.ACTIVE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #268bd2;
-}
-.DONE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #859900;
-}
-.WAITING {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #cb4b16;
-}
-.HOLD {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #d33682;
-}
-.NOTE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #d33682;
-}
-.CANCELLED {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #859900;
-}