
if i look back, i am lost

PR's Tumblrdome

roma★
we're not kids anymore.
Mike Driver

⁂
h
YOU ARE THE REASON
sheepfilms

titsay
Today's Document

★
Stranger Things
NASA
Monterey Bay Aquarium

izzy's playlists!

Discoholic 🪩
$LAYYYTER
seen from Norway

seen from United States

seen from United States
seen from United States
seen from United States

seen from United States
seen from United States

seen from Malaysia

seen from Türkiye

seen from United States

seen from Thailand

seen from Russia
seen from Mexico
seen from United States

seen from Malaysia

seen from United States

seen from France

seen from United States

seen from United States
seen from Moldova
@fvfavo

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Join Inflation Pool to get inflation lumens on Ledger Nano S
Open Laboratory Transaction Builder
https://www.stellar.org/laboratory/#txbuilder?network=public
Switch network to public (top right).
Source Account -> public key of your Ledger account.
Transaction Sequence Number -> Click Fetch button.
First operation:
Type -> Set options
Inflation Destination -> GCCD6AJOYZCUAQLX32ZJF2MKFFAUJ53PVCFQI3RHWKL3V47QYE2BNAUT
Copy XDR from the box below Transaction Builder.
Open Transaction Signer
https://www.stellar.org/laboratory/#txsigner?network=public
Paste XDR.
Click Import Transaction.
Click Sign with Default BIP Path in Ledger Wallet section.
Connect your Ledger, enter PIN, open Stellar app, check and confirm transaction.
Click Submit to Post Transaction endpoint.
You will be moved to “Endpoint Explorer”.
Click Submit.
Done!
Sony Lightroom Camera Color Profiles
I love the color profiles www.piraccini.net made, go and visit his page if you are looking for them! Thanks a lot Maurizio!
But… just in case that something happens, I've mirrored them:
http://favo.s3.amazonaws.com/camera_profiles/index.html
Unzip and put into these folders:
Windows
C:\Users\yourusername\AppData\Roaming\Adobe\CameraRaw\CameraProfiles
MAC OS
~/Library/ApplicationSupport/Adobe/CameraRaw/CameraProfile
ignore robots.txt with wget
simple environment switch:
wget -e robots=off http://www.protected.url
act responsibly!
Let me tell you this: if you meet a loner, no matter what they tell you, it’s not because they enjoy solitude. It’s because they have tried to blend into the world before, and people continue to disappoint them.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Synology, Move Apps/Packages between Volumes
This small snippet, executed as root, moves Docker from volume1 to volume2:
# Define App or Package-Name to move APP="Docker" # Source and Destination Volumes SRC="volume1" DST="volume2" "/var/packages/${APP}/scripts/start-stop-status" stop mv "/${SRC}/@appstore/${APP}" "/${DST}/@appstore/" rm -fv "/var/packages/${APP}/target" ln -s "/${DST}/@appstore/${APP}" "/var/packages/${APP}/target" rm -fv "/usr/local/${APP}" ln -s "/${DST}/@appstore/${APP}" "/usr/local/${APP}" "/var/packages/${APP}/scripts/start-stop-status" start
enable ssh keys for Synology SSH Login
By default only password logins are allowed via SSH on a DiskStation, you can switch this by changing the configuration at /etc/ssh/sshd_config:
Search for these three lines and change their values to the listed ones:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
You can put your ssh key in your root user at /root/.ssh. For some reasons this won't work with the default admin user – so you will need to ssh with user root from now on.
For better security disable password logins by commenting in the following two lines with value no:
PasswordAuthentication no PermitEmptyPasswords no
P.S.: Make sure you turn on Terminal-Connections while playing around with SSHD – just in case you mess something up and SSH won't start again :)
manually run fsck on Synology volume
When you experience a file system corruption which your Synology NAS can not repair itself, it becomes really hard to check it yourself since it is nearly impossible to unmount it for all the services running straight from the volume or accessing it.
There is an undocumented syno-task which helps in the progress:
# shut down all services syno_poweroff_task -d # re-activate the volumes vgchange -ay # check the wanted volume fsck.ext4 -pvf -C 0 /dev/vg1000/lv # If you get the message "UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY", try: fsck.ext4 -yvf -C 0 /dev/vg1000/lv
Thanks a lot to the people at the Synology Forum who discovered this!
Synology packages won’t start (`Permission denied`)
The first things I wanted to install on my new NAS were Sonarr, nzbget, Plex and CouchPotato – sadly only Plex was working, everything else was quitting with a Permission denied error.
It seems that with the newly released DSM 6 some changes were made and for some packages will need a shell in which they run.
Thats why you need to go thru this checklist to fix this (well, for the listed packages at least):
cat /var/packages/<PACKAGE>/scripts/start-stop-status
look for a user name the package will sudo to, it mostly looks like this:
USER="couchpotatoserver" [..] su - ${USER}
create the user in the DSM GUI with the appropriate permissions
change the user have a shell (/bin/sh instead of /sbin/nologin) run the following command (replace couchpotatoserver with your user):
sudo /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^couchpotatoserver\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd
try again starting the package
this fixed the issues on all packages I ran into problems with.
Sadly the shell is being reset on each reboot, thats why I have shell script which runs this at every reboot:
#!/bin/bash # set the Login Shell for several package users to /bin/sh /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^nzbget\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^plex\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^nzbdrone\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^couchpotatoserver\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd
I've put this script on my disk and run it as a triggered task every reboot. Triggered tasks can be setup in the DSM UI:
Control Panel
Task Scheduler
Create > Triggered Task
Synology: get estimated rebuild-time
The DSM UI does not offer the estimation for raid parity checks/rebuild/rsync times. Luckily the information is available in the shell which is available via shell:
(look for finish= in the output)
$ cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md4 : active raid1 sdd3[0] 483564544 blocks super 1.2 [1/1] [U] md3 : active raid6 sda6[0] sdf6[3] sdc6[2] sdb6[1] 1953485824 blocks super 1.2 level 6, 64k chunk, algorithm 2 [4/4] [UUUU] [=========>...........] resync = 49.0% (478876224/976742912) finish=2172.8min speed=3818K/sec md2 : active raid6 sda5[0] sdh5[6] sdg5[4] sdf5[3] sdc5[2] sdb5[1] 3887725824 blocks super 1.2 level 6, 64k chunk, algorithm 2 [6/5] [UUUUU_] resync=DELAYED md1 : active raid1 sdd2[6] sda2[0] sdb2[1] sdc2[2] sdf2[3] sdg2[4] sdh2[5] 2097088 blocks [8/7] [UUUUUUU_] md0 : active raid1 sdd1[6] sda1[0] sdb1[1] sdc1[2] sdf1[3] sdg1[4] sdh1[5] 2490176 blocks [8/7] [UUUUUUU_] unused devices: <none>
If you installed watch (sudo ipkg install procps) you can watch it updated every second with watch -n1 cat /proc/mdstat.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
speed up/pause raid-rebuild
Speed up
Depending on the system-load the software raid rebuild/resync on a Synology is sometimes very slow.
It can be speed up by sacrificing some CPU & RAM by increasing the minimum-rebuild-speed and stripe-cache.
Normal 5.400rpm Disks can handle 100MB/s and this is what can be set as minimum speed as root user on the shell like this:
echo 100000 > /proc/sys/dev/raid/speed_limit_min
If you disk is slower or the system can't manage it, it won't matter it will still try to get to that speed but will stay slower.
Depending on the RAM size the raids stripe cache can be increased to improve performance too:
echo 16384 > /sys/block/md3/md/stripe_cache_size
If you have lots of memory, you can also try bigger numbers but 16k should suffice.
Slow down / Pause
Well, on the other hand, you can also slow the rebuild down to have it nearly paused. This might be useful if you want to use the disks while it is re-syncing without sacrificing speed.
echo 100 > /proc/sys/dev/raid/speed_limit_min echo 100 > /proc/sys/dev/raid/speed_limit_max
This will set such a slow speed limit, it will feel like a pause.
Don't forget to set it back to higher numbers when you're done! Undo by setting it back to higher numbers (10.000 min, 200.000 max are the default values).
install (ipkg) tools on Synology
I recently bought a nice Synology DiskStation and one of the first thing that was missing is the right set of linux tools you are used too (watch, screen, lsof, git, etc.).
There's a simple fix for this, after enabling SSH access on the DSM GUI and connecting yourself to the server:
# become root sudo bash # download installer # example is for Intel Atom stations, check yours here: # http://www.synology-wiki.de/index.php/IPKG wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh -O installer.sh sh installer.sh # set search path for new binaries echo 'PATH="$PATH:/opt/bin:opt/sbin"' >> /root/.profile echo 'export PATH' >> /root/.profile # clear mount points and point them to your first volume umount /opt rmdir /opt ln -s /volume1/@optware /opt
uncomment everything in /etc/rc.local that it looks like this:
##!/bin/sh # ## Optware setup #[ -x /etc/rc.optware ] && /etc/rc.optware start # #exit 0
instead create a new startup script:
wget http://favo.s3.amazonaws.com/synology/optware.sh -O /usr/local/etc/rc.d/optware.sh chmod +x /usr/local/etc/rc.d/optware.sh
thats it!
with ipkg update and ipkg install <package> the power of linux is back in your hands!
P.S.: this is what these synology people call "optware" – optional software – in case you run over some questions in the future :)
timelapse videos with ffmpeg
I’ve just received my brand new FLY12 which serves as cycling light and “dashcam”.
I wanted to create some simple timelapse videos from the recordings and the following script is the result:
#!/bin/sh ID="$1" FILENAME="Lapse_$ID.mp4" SPEED="0.05" if [[ -z "$ID" ]]; then echo "missing id or path" echo "example: ./lapse.sh 2016-04-24 /Volumes/FLY12/DCIM/100_2016/0424*" else if [ -e "$FILENAME" ]; then rm "$FILENAME" fi ls -lrt -1 "${@:2}"|grep -v "thm\." > files.txt sed -i -e 's/^/file /' files.txt ffmpeg -safe 0 -hide_banner -v quiet -stats -f concat -i files.txt -preset veryfast -an -pix_fmt yuv420p -vcodec libx264 -crf 29 -filter:v "scale=-2:720:flags=lanczos, fps=fps=24, setpts=$SPEED*PTS" "$FILENAME" fi
The script is invoked with two parameters:
script.sh <id> <path>
It creates a simple text file with all the video files matching the PATH parameter and then calls upon ffmpeg to create a new video in 720p, 24fps with 20x speed.
It might also be interesting that an automatic youtube-upload could be added very easily with the sample script from Google Dev Docs.
My auto-upload looks like this:
python ./youtube-upload/upload_video.py --file="$FILENAME" --title="Cycling $ID" --description="$ID" --keywords="Cycling, Cycliq, Timelapse, Archive, $SPEED" --category="2" --privacyStatus="private"
redeem multiple passcodes in ingress
I'm really lazy when it comes to do repetitive stuff, thats why I put these few lines together to automatically redeem all the currently valid passcodes for ingress I could find.
Just open the web console of your browser while being on the ingress intel map and copy & paste the following lines:
var codes = []; var oldCodes = []; function sendCode(code) { console.log("sending code " + code); document.getElementById('passcode').value = code; document.getElementById('submit').click(); console.log("var oldCodes = " + JSON.stringify(oldCodes) + ";"); console.log("var codes = " + JSON.stringify(codes) + ";"); setTimeout(function () { console.log(document.getElementById('redeem_reward_status').innerText); if ( document.getElementById('redeem_reward_status') && document.getElementById('redeem_reward_status').innerText.indexOf('too hot') > 0 ) { console.log("paused code sending for a while..."); setTimeout(nextCode, 60*30*1000); } else { setTimeout(nextCode, 10000+(Math.random()*5000)); } }, 15000); } function nextCode () { code = codes.shift(); if ( code ) { sendCode(code); } else { setTimeout(nextCode, 10000); } } function addCode (code) { code = String(code).replace(/[^a-zA-Z0-9]/g, '').toLowerCase().trim(); if ( code && codes.indexOf(code) === -1 && oldCodes.indexOf(code) !== -1 ) { codes.push(code); } else { console.log("invalid code or already known"); } } nextCode();
Then add whatever codes can be found on the internet by calling addCode in the console manually like this: addCode("ada3zc36qq9");
Repeat for all codes and it will try to redeem a code every few seconds.
Copy & paste this to use the codes I've found:
codes = ["ada3zc36qq9","ada9yv83mp5","algorithm9gh35cj3","bletchley9ob65ca4","blue3dg99cm6","cassandra2yu35cp6","cern5wu99oq2","chaotic5gg23pf9","conflict5av38pw2","cube8aa87xd2","drone5sg25ez6","drone9rc88jy5","evolution6xu68ru7","evolve5uu33zd4","evolve7yo65nm9","ezekiel7eu89au4","field5jk36yh6","glyph7jb25yw3","glyphs6gj75yq2","green3ou25jt4","green7dv85mp8","hubert4su42qt2","hubert6db54fa6","hulong7tr85ub6","ingress9tu32jk7","inveniri2hc78yy4","jackland8vf92qz5","jarvis5ye63mv9","johnson3ba26qb2","johnson3fx84aw9","kureze2sg38gt2","kureze3ft26jc6","lightman8nd48zb2","message5ka73rp4","minotaur8dm83gg5","moyer4wr38qz8","moyer5pp56fg2","ni7up28fu6","niantic4rv29wc6","niantic9ns77ww9","phillips6wc29mc7","portal7cc88cd2","powercube3hu72ut7","resonate3yd72he7","resonate6wb48ec4","roland8cx62mk4","spacetime7ap46rr6","symbols4ye57bs7","timezero2kk78gx5","tycho7vu99ta2","tycho9uo99qa2","vi2jo15nd0","vi8zu85il7","vi9bb02fk7","vi9rp62ex1","voynich6sx52zr5","voynich8cg82pb6","wolfe7jq38cj3","ada3zc36qq9","bletchley9ob65ca4","blue3dg99cm6","cassandra2yu35cp6","cern5wu99oq2","conflict5av38pw2","cube8aa87xd2","drone5sg25ez6","drone9rc88jy5"];
split a file into smaller chunks
Split myFile into files with 500 lines:
split -l 500 myFile splitFilename
Split myFile into files with 40kbyte:
split -b 40k myFile splitFilename

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Useful Quick Look plugins for Developers
Install all
brew install caskroom/cask/brew-cask brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv betterzipql qlimagesize webpquicklook suspicious-package provisionql cert-quicklook
QLColorCode
Preview source code files with syntax highlighting
QLStephen
Preview plain text files without a file extension. Example: README, CHANGELOG, etc.
QLMarkdown
Preview Markdown files
QuickLookJSON
Preview JSON files
QLPrettyPatch
Preview .patch files
QuickLookCSV
Preview CSV files
BetterZipQL
Preview archives
qlImageSize
Display image size and resolution
WebP
Preview WebP images
Suspicious Package
Preview the contents of a standard Apple installer package
ProvisionQL
Preview iOS / OS X app and provision information
CertQuickLook
Preview various unprotected certificate tokens like X509 certificates, DER or PEM
Thanks a lot to sindresorhus for putting this list together!
auto complete ssh hosts
adding the following to ~/.profile adds auto complete to ssh hostnames on OS X:
_complete_ssh_hosts () { COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" comp_ssh_hosts=`cat ~/.ssh/known_hosts | \ cut -f 1 -d ' ' | \ sed -e s/,.*//g | \ grep -v ^# | \ uniq | \ grep -v "\[" ; cat ~/.ssh/config | \ grep "^Host " | \ awk '{print $2}' ` COMPREPLY=( $(compgen -W "${comp_ssh_hosts}" -- $cur)) return 0 } complete -F _complete_ssh_hosts ssh
thanks a lot shocm for this snippet!