Skip to content

Instantly share code, notes, and snippets.

View peci1's full-sized avatar

Martin Pecka peci1

  • Czech Technical University in Prague
  • Czech republic
View GitHub Profile
@peci1
peci1 / dynamic_reconfigure_tools.py
Created November 5, 2015 01:55
ROS dynamic_reconfigure enum with variable value set.
def change_enum_items(type, parameter_name, new_items, default=None):
"""
Take an enum-typed parameter in the given autogenerated cfg type and reset its possible values to new_items.
You can then start a dynamic_reconfigure server which advertises the changed enum domain.
To achieve this, you need to call this function before creating the server.
:param type type: One of the autogenerated config types (package.cfg.*Config).
:param basestring parameter_name: Name of the enum parameter to change.
:param new_items: The items that will form the new domain of the enum.
// Author: Martin Pecka ( martin.pecka@cvut.cz )
// License: BSD
#ifndef DEM_GENERATION_SLOW_TOPIC_DIAG_UPDATE_H
#define DEM_GENERATION_SLOW_TOPIC_DIAG_UPDATE_H
#define private public
#include <diagnostic_updater/update_functions.h>
#undef private
@peci1
peci1 / transparent-tor.diff
Created November 2, 2017 02:14
A trial to get transparent .onion translation on Omnia
diff -Nru @161/etc/config/resolver @/etc/config/resolver
--- @161/etc/config/resolver 2017-10-01 21:01:14.375423242 +0200
+++ @/etc/config/resolver 2017-11-02 01:13:47.862130135 +0100
@@ -21,6 +21,7 @@
option log_stderr '1'
option log_stdout '1'
option forks '1'
+ option include_config '/etc/kresd/config.conf'
config resolver 'unbound'
@peci1
peci1 / print_bytes_in_all_encodings.py
Created December 25, 2017 23:05
Print the characters corresponding to the given byte sequence in all encodings known to the python interpreter.
#!/usr/bin/env python3
import encodings
import pkgutil
bytes_to_decode = b"\xc4\x9b"
codecs = []
for importer, modname, ispkg in pkgutil.iter_modules(encodings.__path__):
try:
@peci1
peci1 / nas
Created May 31, 2018 00:01
OpenWRT: automount NTFS drive by UUID and before mountd comes into action and mounts it under /tmp/run/mountd
#!/bin/sh /etc/rc.common
# This is a procd initscript, so put it in /etc/init.d/
START=79 # Important: this number must be lower than the START number in /etc/init.d/mountd !!!
USE_PROCD=1
PROGNAME="/usr/bin/ntfs-3g"
# Fill these values as desired
@peci1
peci1 / pb_model_executor.py
Created June 1, 2018 20:25
Tensorflow executor of models from TF 1.4+ on TF 1.3- (python 3)
import tensorflow as tf
import numpy as np
class PbModelExecutor:
def __init__(self, model_path, input_shape, input_name='input', output_name='output:0'):
self.session = tf.Session()
self.input = tf.placeholder(tf.float32, shape=input_shape)
@peci1
peci1 / .htaccess
Created May 22, 2014 21:02
Silly (but powerful) .htaccess handling of script-generated web thumbnails
#############################
# START: THUMBNAIL HANDLING #
#############################
# Since handling thumbnails in Nette is painfully slow (loading the whole framework
# just to find out that the thumbnail has already existed), there is a workaround
# that finds all the generated thumbnails using mod_rewrite and only redirects to the
# script if generating a thumbnail is really needed.
# Even for generating thumbs the standard Nette usage is slow, so there is another workaround.
update_deb_from_github() {
repo=$1 # will use github.com/repos/${repo}/releases, so set to e.g. BoostIO/boostnote
pkg=$2 # name of the Deiban package e.g. apt can use, so e.g. boostnote
deb_type=$3 # a substring of the deb file on github releases which uniquely tells the requested deb from other deb files on the latest releases page
version_installed=$(LANG=C aptitude show boostnote | grep Version | grep -o '[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}')
download_link=$(curl -s https://api.github.com/repos/${repo}/releases/latest | jq -r ".assets[] | .browser_download_url" | grep "${deb_type}.*\.deb")
version_upstream=$(echo ${download_link} | grep -o '[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}' | head -n1)
if [[ "${version_installed}" != "${version_upstream}" ]]; then
wget -O "/tmp/${pkg}.deb" "${download_link}"
@peci1
peci1 / check_raid_status.sh
Last active January 13, 2019 23:49
A script for Turris Omnia that checks the status of a JMicron JMS56x RAID controller and sends a notification if something's wrong.
#!/bin/bash
# Based on the script from https://forum.odroid.com/viewtopic.php?t=29298
# Changes to that script are released under BSD license (c) Martin Pecka, 2019.
# raidmgr_static can be downloaded here: https://wiki.odroid.com/_media/accessory/add-on_boards/xu4_cloudshell2/raidmgr_static_cloudshell2.zip
RAID_MANAGER="/usr/bin/raidmgr_static"
STATUS="$(echo -e "SR C0\nEX\n" | $RAID_MANAGER)"
@peci1
peci1 / clean build output
Last active August 13, 2019 08:24
gazebo build problem
Subprocess > gazebo:make `cd /media/data/gazebo/build/gazebo; catkin build --get-env gazebo | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -`
[gazebo:make] /usr/bin/cmake -H/media/data/gazebo/src/gazebo -B/media/data/gazebo/build/gazebo --check-build-system CMakeFiles/Makefile.cmake 0
[gazebo:make] /usr/bin/cmake -E cmake_progress_start /media/data/gazebo/build/gazebo/CMakeFiles /media/data/gazebo/build/gazebo/CMakeFiles/progress.marks
[gazebo:make] /usr/bin/make -f CMakeFiles/Makefile2 all
[gazebo:make] make[1]: Vstupuje se do adresáře „/media/data/gazebo/build/gazebo“
[gazebo:make] /usr/bin/make -f deps/opende/ou/CMakeFiles/gazebo_opende_ou.dir/build.make deps/opende/ou/CMakeFiles/gazebo_opende_ou.dir/depend
[gazebo:make] /us