Apple-style screenshoting with autoupload

Install xclip and scrot:

apt-get install scrot xclip

Download a shutter wave, i found one here: https://www.soundjay.com/camera-sound-effect.html

Actually this one: https://www.soundjay.com/mechanical/camera-shutter-click-03.wav

Add the following lines to your i3 config (~/.config/i3/config):

bindsym --release Shift+Print exec --no-startup-id scrot -s -e 'scp $f root@example.com:/var/www/screenshots && echo https://example.com/screenshots/$f|xclip && aplay ~/.config/screenshot.wav'

bindsym --release $mod+Shift+4 exec --no-startup-id scrot -s -e 'scp $f root@example.com:/var/www/screenshots && echo https://example.com/screenshots/$f|xclip && aplay ~/.config/screenshot.wav'

Note i added two keybindings, you may choose any combination you wish.

You also need to install password-less ssh keys for the example.com server for this to work.

Udgivet i I3WM, Knowledge Base, Linux, Workstation | Skriv en kommentar

Thinkpad T430s Keybindings i I3

~/.config/i3/config

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% 
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle 
bindcode 156 exec ~/.config/toggletouchpad.sh

~/.config/toogletouchpad.sh

#!/bin/bash
if synclient -l | grep "TouchpadOff .*=.*0" ; then
    echo off
    synclient TouchpadOff=1 ;
else
    echo on
    synclient TouchpadOff=0 ;
fi

 

Udgivet i I3WM, Knowledge Base, Workstation | Skriv en kommentar

Using v4l2loopback to create custom v4l2 interfaces

Duplicate a stream:

modprobe v4l2loopback devices=2 card_label="Mike er en hest","Det er brian oxo"

ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -codec copy -f v4l2 /dev/video2 -codec copy -f v4l2 /dev/video3

 

Udgivet i Knowledge Base, Videostreaming | Skriv en kommentar

Wiping a harddrive secureley

shred -vfz -n 10 /dev/md0 –random-source=/dev/urandom

Udgivet i Knowledge Base | Skriv en kommentar

VNC til en aktiv session

mike@reliant:~$ apt-get install tigervnc-scraping-server

mike@reliant:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

mike@reliant:~$ x0vncserver -display :0 –PasswordFile=.vnc/passwd

Udgivet i Knowledge Base, VNC, Workstation | Skriv en kommentar

Nu med WordPress

Efter et hurtigt bestyrrelsesmøde på IRC tidligere idag blev vi enige om at føre Uni-fix ind i det 21. Århundrede, droppe den gamle Perl-kode og sætte et WordPress site op. Så vi kan fokusere på indhold istedet for teknologi.

Vi vil med tiden få ført alt indhold over, men det er ikke noget vi kan gøre automatisk så det er en manuel process, primært fordi de enkelte indlæg skal kategoriseres. Så giv os lige et par uger eller 10, så burde vi være i luften på den nye platform.

Vi forventer at holde det gamle site i luften på adressen base.unifix.org som faktisk er den oprindelige URL, men der vil nok blive lukket for tilføjelse af nyt indhold.

Udgivet i Uncategorized | Skriv en kommentar

Ratelimiting på Linux

Linie 2 matcher kun 10 pakker i sekundet, med en burst på 20 (forklaret længere nede) og disse jumpes til accept. Resten fortsætter i tabellen, hvor man så kan gøre andet med den – f.eks. logge den.

iptables -N RateLimit
iptables -A RateLimit –match hashlimit –hashlimit-mode srcip –hashlimit-upto 10/sec –hashlimit-burst 20 –hashlimit-name conn_rate_limit –jump ACCEPT
iptables -A RateLimit –jump DROP

iptables -A INPUT –match conntrack –ctstate NEW –jump RateLimit

Burst er grænsen for hvor mange forbindelser der kan være bagud. Hvis f.eks. du ikke har haft trafik i flere timer kan du kortvarigt have flere tusind requests uden at komme over 10req/s hvis man ser på det over f.eks. en hel dag. Derfor fungerer det på den måde at hver ip adresse har en konto, og på denne bliver der sat 10 tokkens ind per sekund, og hvergang en forbindelse smutter igennem fjernes en tokken. Denne konto har i vores eksempel et max på 20 tokkens. Det betyder at når den grænse er nået sættes der ikke flere tokkens ind.

Test:
https://www.petefreitag.com/item/689.cfm

# ab -n 100 -c 10 http://renesejling.mikjaer.com/ 2>1 | grep “Requests per second”
Requests per second: 12.43 [#/sec] (mean)

Noter:
https://making.pusher.com/per-ip-rate-limiting-with-iptables/

Udgivet i Knowledge Base, Linux, Networking | Skriv en kommentar

Dræb en SSH session selv når den hænger

Hvis din ssh session hænger kan den lukkes ved at trykke <ENTER><~><.>

Udgivet i Knowledge Base, Linux, Old Base | Skriv en kommentar

MVC .NET Core med EF (Entity Framework) og Postgresql som database

Siden Microsoft har ændret taktik og begyndt at koncenterer sig mere om opensource, have vi fået dotnet core. Det er en opensource implementation af deres .Net Framework, der er stadig meget der mangler i dotnet core. men web delen er ret moden.

Jeg vil heri beskrive de trin der skal til for at sætte et MVC site op på dotnet core.

Denne guide forudsætter at postgresql er installeret og kørende.

1. Installere dotnet core -> https://www.microsoft.com/net/core#linuxredhat.
Du kan med fordel bruge visual studio code (installationen beskrives også i ovenstående link)

2. Opret en mappe til dit mvc projekt
   mkdir projekt_navn

3. Skift til mappen
   cd projekt_navn

4. Opret projektet ved hjælp af følgende kommando
   dotnet new mvc --Individual --framework netcoreapp1.1

   Individual - fortæller dotnet at du ønsker en simpel brugerstyrring i projektet
   framework - beskriver hvilet dotnet core framework projektet skal bruge.

5. Download nuget pakkerne til projektet
   dotnet restore

6. Køre projektet for at sikre det virker
   dotnet run

7. Installerer nuget pakker til postgres og entity framework
   dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 1.1.1

   Pr. skrivende stund er version 2.0.0 ikke kompatibel med dotnet core, derfor vi benytter 1.1.1.

   Npgsql.EntityFrameworkCore.PostgreSQL pakken installerer selv de fornødende afhængigheder.

8. Opret en bruger i postgres til projektet

9. Opret en tabel i postgres til projektet

10. Konfigurer projektet til at bruge npgsql.
   a. åben Startup.cs
   b. udkommenter "options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));" eller slet denne
   c. Indsæt "options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));" istedet for den overstående linje.

11. Konfigurer connectionString i appsettings.json filen
   ex.     "DefaultConnection": "Server=127.0.0.1;Port=5432;Database={{databasename}};User Id={{username}};Password={{Password}};"

12. check at projektet kan kompilere og køre
    dotnet run

13. Opdater nu databasen
    dotnet ef database update

    Denne kommando konfigurer databasens tabeller således at de database afhængig funktioner kan gemme og læse data.

Nu er vi sådanset klar til at begynde at udvikle på vores projekt

 

Udgivet i Knowledge Base, Linux, Old Base, Uncategorized | Skriv en kommentar

Installing FreeBSD 2017 (OpenVPN)

wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-memstick.img

root@defiant:/home/mike/Downloads# dd if=FreeBSD-11.1-RELEASE-amd64-memstick.img of=/dev/sdb bs=10240

dpkg search openvpn
dpkg install openvpn-2.4.3
cd /usr/local/etc/
mkdir openvpn

root@beastie:/usr/local/etc/openvpn # cp /root/beastie.mikjaer.com.ovpn .

add to /etc/rc.conf

openvpn_enable=”YES”
openvpn_configfile=”/usr/local/etc/openvpn/beastie.mikjaer.com.ovpn”

reboot

Udgivet i FreeBSD, Knowledge Base, Old Base, OpenVPN | Skriv en kommentar