Posts for Tuesday, January 15, 2019

HEIC image files in Linux

I was at an event recently where the attendees were asked to upload their camera and smartphone photos and videos to a shared Google Drive folder. Some of the uploaded photo files have a .HEIC (High Efficiency Image Container) extension, which I had not come across before. I have since learnt that these HEIC files […]

Posts for Saturday, January 12, 2019

avatar

How to view BIM IFC files on Linux

BIM IFC (Industry Foundation Classes) files can be viewed and parsed on Linux in a few ways. I describe how to open IFC files with FreeCAD, IfcPlusPlus, and IfcOpenShell. - for the full article please visit the website.

Posts for Thursday, January 10, 2019

avatar

How to install Blender and The GIMP on Android

How to install and run Blender and the GIMP on Android phones using Gentoo Linux. This runs Blender and The GIMP as a native app with full desktop functionality. This also demonstrates two desktop environments: Fluxbox and E17 and shows running Midori as a browser. - for the full article please visit the website.

Posts for Tuesday, January 8, 2019

Interviews zum Fall Habeck und dem “Leak” der Daten Prominenter

In den letzten Tagen gab es im Deutschen Internet 2 größere Aufreger, zu denen ich interviewed wurde.

Zum Fall Robert Habeck, dem Vorsitzenden der Grünen, der gerade (unter anderem) wegen einiger ungeschickter Wahlkampfauftritte seine Social Media Accounts geschlossen hat, habe ich etwas über 10 Minuten mit dem Deutschlandfunk für den Podcast “Der Tag” gesprochen. Ich halte Herr Habecks Handeln unter seinen persönlichen Umständen für sehr nachvollziehbar, seine Begründung allerdings für ziemlich vorgeschoben. Es wird aber sicher jede Menge Beifall aus den Ecken (konservativ-konservativ und neu-konservativ) geben, die das Internet und Social Media immer schon doof fanden.

Zum Thema des “Datenleaks” der Daten diverser mehr oder weniger Prominenter habe ich kurz mit T-Online gesprochen. Der Leak war kein technische Meisterleistung sondern vor allem die Fleißarbeit einer Person mit viel Tagesfreizeit und wahrscheinlich Langeweile. Sie wurde nun auch sehr zeitnah festgenommen. Die wichtigste Erkenntnis: Alle die absurden Forderungen nach neuen Gesetzen und “Hackback” Strategien sind unnötig. Wahrscheinlich werden solche “Cyber-Vergehen” mit höherer Quote aufgeklärt als Autodiebstahl (dort ca. 25-30%).

Posts for Saturday, January 5, 2019

avatar

Create 360 VR panoramas with Radiance

How to use the Radiance rendering engine to render out different types of 360 panoramas for virtual reality. Create cube maps, equirectangular panoramas, sphere maps, fisheye views, and other environment maps. - for the full article please visit the website.

Posts for Sunday, December 30, 2018

avatar

Use macbethcal to calibrate textures

Use macbethcal to calibrate image textures that are used in a Radiance render with a colour chart. This helps to make sure that they represent the true colours of the real-life object. - for the full article please visit the website.

Posts for Saturday, December 29, 2018

avatar

Free Buddhist vector logos

I've created three free Buddhist related vector logos for any use. They are created using Inkscape, a free and open source vector graphics program. - for the full article please visit the website.

Posts for Thursday, December 27, 2018

avatar

Radiance specularity and roughness value examples

Radiance specularity and roughness values are hard to measure without special equipment. This article describes measurement techniques and rules of thumb, along with benchmark images to understand specularity and roughness. These images help give an intuitive understanding of material properties. - for the full article please visit the website.

Posts for Tuesday, December 25, 2018

avatar

Map of the Great North Walk: Sydney to Newcastle

The Great North Walk is a 250km trail that goes from Sydney to Newcastle. I've created a free online map you can use to guide yourself from start to finish, and download a GeoJSON or GPX file to use in your GPS devices. - for the full article please visit the website.

Posts for Saturday, December 22, 2018

Alternatives to Bloatware

The list is built pointing to software that has alternatives with less dependencies, and addressing dependencies was the easy thing. Some tools in particular were included because they add less dependencies overall while keeping a system functional. One such example is imagemagick and ffmpeg, by which you can do a lot of work and replace many tools by just using those with scripts and replace something like a screenshot utility. Certainly it would be great to have a comparative on resource usage. However, a new revision now includes software that was previously discarded for better comparison and featured recommendations will not be highlight for the moment.
TL;DR: is about the unix principle, having a fully functional system pretty damn minimal with that.

Source of this list: https://github.com/mayfrost/guides/blob/master/ALTERNATIVES.md



TOC

  1. ANDROID APPS
  2. Command Line
  3. Communication
    3.1. Desktop Client
  4. Data
  5. Decentralized Networking
  6. Emulation And Virtualization
  7. File Utilities
  8. Filesharing
  9. Forensics
  10. Hardware
  11. Monitoring
    11.1. Benchmarking
    11.2. System Information
    11.3. System Monitoring
  12. Multimedia
    12.1. ASCii Art
    12.2. Audio
    12.3. Image
    12.4. Metadata
    12.5. Video
  13. Network Setup
  14. Office
  15. Package Management
  16. Pentesting
    16.1. Exploitables
    16.2. Network Scanner
    16.3. Network Tampering
    16.4. Password Cracking
    16.5. Vulnerability Scanner
  17. Privacy
  18. Programming
  19. Remote Access
  20. Science And Engineering
  21. Security
    21.1. Containment
    21.2. Honeypots
    21.3. Host Intrusion
    21.4. Network Intrusion
  22. Server
    22.1. Server Authentication
  23. System Utilities
  24. X Desktop

ANDROID APPS

Most apps are from F-Droid, we are just starting.

Command Line

Communication

Desktop Client

Data

Decentralized Networking

  • Backbone Framework: GNUnet -> OSF DCE (Distributed Computing Environment)
  • Chat: Tox -> Matrix (Matrix-Ircd, Riot) -> GNU Ring -> eircd -> P2PIRC -> nircd
  • Darknet: autovpn -> LibreVPN -> Tor -> AnoNet -> i2p
  • Digital Library: Aletheia
  • Distributed File Systems: Samba -> NFS (nfs-utils) -> davfs2 -> Upspin -> IPFS
  • Distributed File Systems (Samba): SMB for FUSE (FuseSmb) -> SMBNetFS -> CIFS (cifs-utils)
  • DNS Resolution: OpenNIC -> Namecoin -> KadNode
  • E-Commerce: OpenBazaar + FIX Agora + Bitnation + GNU Taler
  • E-Commerce (Bitcoin): Qt Bitcoin Trader (Bitcoin Trader), Abe (Block Chain Browser)
  • E-Commerce (Bitcoin Wallet): Armory -> Bitcoin Core -> Monero
  • E-Mail: Notbit (Bitmessage)
  • Forum: Decentraland -> GNU Social (Pleroma, Mastodon) -> Syndie -> NNTPChan
  • Gossip Network (Network Service Discovery): peernet
  • Grid Computing: traceroute@home -> BOINC (+ boinctui)
  • Media Sharing: CyTube -> MediaGoblin -> DTube -> PeerTube (WebTorrent) -> Alexandria (not ready yet but this how it works)
  • Mesh Network: Tinc -> cjdns -> BMX6 -> open80211s (802.11s) -> B.A.T.M.A.N.
  • Monetary Incentives: Storj + Gridcoin + Stream Token
  • Network Block Device: Usbredir -> nbd
  • Search Engine: searx -> Seeks -> YaCy (truly decentralized, would be wonderful if searx/seeks could feed its data to YaCy)
  • Search Engine (Gopher): Jugtail
  • Search Engine (Torrents): Magnetissimo -> magnetico
  • Streaming: Livepeer -> Butter Project -> BasicTV
  • Version Control (Decentralized Github): git-annex (+ git-annex assistant) -> GitTorrent
  • VPN: n2n -> PeerVPN
  • Wiki: ikiwiki

Emulation And Virtualization

File Utilities

  • Batch Renamer: Metamorphose -> GPRename -> vidir -> qmv (renameutils) -> mmv
  • Duplicate Files Removal: dupeGuru -> FSlint -> freedup -> fdmf -> dupmerge -> duff -> Fdupes -> jdupes -> rmlint
  • File Archiver: PeaZip -> Xarchiver -> Patool -> dtrx -> Atool -> dar -> tar -> pax
  • File Compression: arj, Zstandard (Zstd), Zip, lzop, Plzip, pxz, ECM (Error Code Modeler), p7zip, lbzip2, lrzip, pigz
  • File Conversion: nrg2iso, dmg2iso (dmg to iso), mdf2iso (mdf to iso), daa2iso (daa to iso), UIF2ISO (uif to iso), ccd2iso (img to iso), bin2iso (bin-cue to iso), mpq-tools (MPQ or MoPaQ), Macutils
  • File De-Compression Only: unace, cabextract, unrar, Lunzip, UnZip
  • File Manager: PCManFM -> Xfe -> SpaceFM -> File System Visualizer (“It’s a Unix system, I know this!”) -> Endeavour Mark II -> donnatella -> worker (+ imagemagick) -> Moxfm -> Emacs (Dired Plus Mode, Sunrise Commander, ranger.el, Image-Dired, ThumbsMode) -> Ranger -> Midnight Commander -> vifm -> FDclone -> Ytree -> rover -> CLEX -> nnn -> tree
  • File Search: Beagle -> Puggle -> ANGRYsearch -> Tracker -> DocFetcher -> regain -> lightmediascanner -> find
  • File Synchronization: Unison -> duplicity -> synk -> Rsync
  • Pictures Organizer: hydrus network -> Shotwell -> GTKRawGallery -> digiKam -> gThumb (+ gphoto) -> Mapivi -> BASH-Booru
  • RegEx Builder: regexxer -> Visual REGEXP -> txt2regex

Filesharing

Forensics

  • Application Profiling: CGprof -> Valgrind (+ Callgrind)
  • Browser Debugger: Firebug
  • Debugger: DDD -> CGDB -> OpenOCD -> GDB
  • Delta Encoding: xdelta -> Bsdiff
  • Forensic Analysis Framework: The Sleuth Kit -> DFF -> Radare
  • Hex Editors: HT Editor -> biew -> dhex -> hexedit
  • Java Profiling: VisualVM -> Quilt
  • Memory Scanner (Cheat Engine): scanmem & Gameconqueror -> varedit
  • Sandbox: Cuckoo Sandbox
  • Steganalysis: Virtual Steganographic Laboratory -> Stegdetect

Hardware

  • Cameras: Motion (motion detection), gPhoto (connecting digital cameras), ccdciel
  • Car (as in automobile): can-utils
  • CD-DVD Burn and Copy (Backends): cdrtools -> cdrkit -> cdrskin
  • CD-DVD Burn and Copy (Frontends): K3b -> Brasero -> dvd+rw-tools -> xorriso -> cdw
  • CD-DVD Cue Files: cuetools -> cuecmd
  • CD-DVD Information: cd-discid -> cdstatus
  • CD-DVD Ripping: Sound Juicer -> fre ac -> cdparanoia (+ ABCDE)
  • Data Recovery: fatcat -> ext3grep -> giis (gET iT i sAY) -> extundelete -> Magic Rescue -> dvdisaster -> TestDisk (PhotoRec) -> ddrescue
  • Device Management (and module autoloader): evdev -> udev -> vdev
  • Disk Cloning and Writing: devio -> dd -> dcfldd -> dc3dd
  • Display Color Temperature: Redshift -> sct -> luminous
  • Display Settings: xrandr -> DDCcontrol -> fbset
  • Displays (Miracast): MiracleCast
  • Hardware Bus: multipath-tools, I2C Tools (i2c-tools), IPMI Tool (ipmitool, ipmiutil) (IPMI DANGEROUS IF ENABLED)
  • Hardware RAID: mdadm -> dmraid
  • Hibernation: TuxOnIce -> uswsusp -> pm-utils -> shutdownasap -> watchdog
  • Home Automation: LinuxMCE
  • Keyboard Bindings: Xbindkeys -> sxhkd -> bind (readline) -> loadkeys (+ keymaps)
  • Keyboard Input Language: iBus -> SCIM -> Fcitx -> uim (+ Anthy)
  • Keyboard Layout: XKB -> xmodmap -> KBD
  • Media Transfer Protocol (MTP): MTPfs -> jmtpfs -> simple-mtpfs
  • Microcontrollers: AVRDUDE
  • Mounting: AcetoneISO -> Udisks (+ udevil) -> Lightweight Device Mounter (ldm) -> USBmount -> pmount -> bashmount -> mount (.ISO files too) -> udev rules
  • Mouse: xbanish -> keynav -> GPM
  • Power Management: tpfancontrol -> tpacpi-bat -> thinkfan -> TLP -> PowerTOP -> Powertweak
  • Printers: CUPS -> LPR
  • Scanners: Scanner Access Now Easy (SANE)
  • Software-defined radio (SDR): GNU Radio (+ Gqrx) -> rtl-sdr
  • Telescope: Talon
  • Tv (DVR): xawtv -> tvtime
  • Tv (Multicast): udpxy -> IGMPproxy
  • Undevolting and Power Saving: TurionPowerControl -> Linux-PHC -> cpufrequtils -> cpupower -> schedtool
  • UPS: egctl -> Network UPS Tools (NUT) -> apcupsd

Monitoring

Benchmarking

System Information

System Monitoring

  • Database Monitoring: Mytop
  • Disk Usage: QDirStat -> Baobab -> xdiskusage -> XDU -> dfc -> Ncdu -> ls++ -> tdu -> ncdt -> du + df (GNU coreutils)
  • Geolocation: Prey
  • Hardware Monitoring: lm-sensors (psensor for a GUI) -> CrazyDiskInfo -> Hddtemp
  • Log Monitoring: Webalizer -> lnav -> Logcheck -> multiTail
  • Log Visualizer: glTail -> Logstalgia -> ccze
  • Network Flow: Argos -> HFlow -> nfdump (nfsen for a GUI)
  • Network Latency: OpenNMS -> SmokePing -> bmon
  • Network Monitoring: IPTraf -> tcptrack -> IPTState -> NetHogs -> iftop, dnstop
  • Port Monitoring: psad
  • Process Monitoring: lsof, PSmisc (fuser, pkill, pstree)
  • Serial Monitoring: slsnif -> interceptty -> ttylog
  • System Latency: LatencyTOP
  • System Monitor: gnome-system-monitor -> psDooM -> HardInfo -> GKrellM -> treeps -> Conky -> xosview -> Glances -> dstat -> atop -> htop -> nmon -> procinfo -> Sysstat (sar, mpstat, pidstat, iostat, sadf) -> procps (ps, free, vmstat, top, pmap, nice)
  • User Monitoring: wuzzah -> Whowatch -> acct
  • Web Log Analytics: AWStats -> W3Perl -> Analog -> pmacct
  • Web State Monitor: Nagios (+ NagVis) -> Sysmond -> sysmon
  • Wi-Fi Network Monitor: wavemon

Multimedia

ASCii Art

  • ANSI Drawing: MysticDraw -> SHPaint
  • ANSi Viewer: ANSiMat
  • ASCii Animation: blessed -> Durdraw -> drawille
  • ASCii Banner: shellpic -> TOIlet -> FIGlet -> sysvbanner
  • ASCii Drawing: JavE -> Aewan -> cadubi -> CAVE WALL -> textdraw
  • ASCii Presentations: wopr -> blessed-contrib
  • Image to ASCii: jp2a
  • Video to ASCii: libcaca -> AAlib

Audio

  • Audio Editing: Audacity -> Snd -> Ecasound -> SoX
  • Audio Effect Plugins: awesfx (SoundFont), Vamp, zam-plugins (LADSPA/LV2/VST/JACK), LV2 (x42-plugins), LADSPA (tap-plugins), DSSI (dssi-utils, dssi-vst), ALSA plugins (alsa-plugins)
  • Background Sound: GNU GTick -> Ambient Noise -> ctronome
  • Digital Audio Workstation: Rosegarden -> Ardour -> LMMS
  • DJing: Mixxx
  • Ear Training: LenMus -> GNU Solfege
  • Multiple Audio Streams: pulseaudio -> apulse -> ALSA (aloop, Softvol, Dmix)
  • Music Player: Audacious (+ Winamp Classic skin + GJay) -> Clementine -> Open Cubic Player -> MPD (vimus/ncmpcpp) -> cmus -> mp3blaster (runs with "aoss mp3blaster" or compiled with ALSA) -> MikMod -> MOC (+ moc-ffmpeg-plugin, dmenu_mocp) -> simple audio daemon (sad)
  • Music Visualization: Spectrum3d -> Le Biniou -> projectM -> cava -> cli-visualizer
  • Scorewriter: MuseScore -> LilyPond -> eTktab -> Emacs (lyqi) -> Philip's Music Writer (pmw) -> ABCmidi (abcpp + abc2prt + abcm2ps)
  • Software Sampler: LinuxSampler -> orDrumbox -> Hydrogen
  • Synthesizer: AlsaModularSynth -> ZynAddSubFX -> FluidSynth (+ SoundFonts)
  • System Sound Compatibility: WineASIO, oss2jack, oss-compat, alsa-oss
  • System Sound Extensions: pulseaudio -> Jack (jack, jack-audio-connection-kit) -> ESound (esound-common)
  • System Sound Utilities: pavucontrol (pulseaudio) -> JACK Rack (for Jack) -> JAMin (for Jack) -> Qastools -> gnome-alsamixer -> aumix -> Rexima -> ALSA tools (alsa-tools, alsa-tools-gui) -> Alsaequal -> alsa-utils (alsamixer, amixer, aplay, arecord)
  • Tonal Feature Analysis: CLAM Chordata -> Sonic-> Spek -> Pause
  • Tracker Editors: MilkyTracker -> Schism
  • Trackers: SID-Wizard -> GoatTracker
  • Tray Icon: Volume Icon -> Volti

Image

  • Bitmaps to Vector Conversion: AutoTrace -> Potrace
  • Diagram Editor: Pencil Project -> Dia -> Graphviz
  • Digital Drawing (Bitmap Graphics): Krita -> MyPaint -> Xournal -> XPaint -> GrafX2 / uberpaint
  • Digital Drawing (Coloring): OpenColorIO -> deepcolor -> STYLE2PAINTS
  • Digital Drawing (Fonts): FontForge
  • Digital Drawing (Vector): Inkscape -> Xfig -> gozer -> ImageMagick
  • Fonts Conversion: bdftopcf, PSF Tools, pcf2bdf, otf2bdf, bdf2psf
  • Fractals and Random Computer Artwork: Mandelbulber -> Fyre -> Wassily
  • Image Editing: RawTherapee -> darktable -> Gimp -> Netpbm -> G'MIC -> GraphicsMagick -> ImageMagick (display, import) -> Gifsicle
  • Image Optimizing: OptiPNG -> pngcrush -> pngquant
  • Image Viewer: Feh -> sxiv -> zgv -> lsix -> sdump -> display (ImageMagick) -> fim / fbi (fbida) -> idump
  • Plotting: Gnuplot -> Ngraph-gtk -> ygraph -> PLplot -> FRTPLOT -> Picviz
  • Screenshots: Shutter -> scrot -> maim -> shot.sh -> import (ImageMagick) -> fbcat (FBGrab)

Metadata

Video

  • Compositing: CinePaint -> Natron
  • Datamoshing: Autodatamosh
  • Digital Animation (2D): Synfig -> OpenToonz
  • Digital Animation (3D): Blender
  • Flash Player: Lightspark -> Gnash
  • HDR (High-Dynamic-Range): pfstools
  • Screencasting: Open Broadcaster Studio -> SimpleScreenRecorder -> XVidCap -> glc -> FFmpeg -> ttyrec (+ seq2gif)
  • Video Editing: Kdenlive -> Avidemux -> OpenShot -> Cinelerra-cv -> Melt -> AvxSynth -> blind -> FFmpeg
  • Video Effects Plugins: Frei0r
  • Video Player: nvlc (VLC) -> MPV -> MPlayer -> fbff -> ffplay
  • Video to gif: Video2Gif -> QGifer -> convert (ImageMagick) -> FFmpeg
  • Video Transcoding: HandBrake -> WinFF -> FFmpeg / avconv

Network Setup

Office

  • Address book: abook
  • Desktop Publishing: Scribus
  • Dictionary: Goldendict -> Artha -> Dico, dict -> wtf
  • Document Format Conversion: unoconv -> Pandoc -> Yodl -> GNU a2ps -> inf2manp
  • Document Processor: Emacs (AUCTeX) -> LyX -> GNU TeXmacs
  • Ebook Utilities: DeDRM_tools
  • Ebook Utilities (CHM): xCHM -> CHMLib (extract_chmLib)
  • Ebook Utilities (Epub): Ebook Tools (ebook-tools)
  • Ebook Utilities (PDF): PDF SaM -> Poppler -> PDFtk
  • Ebook Utilities (PostScript): PSUtils -> ghostscript
  • Ebook Viewer: Calibre -> Okular -> Zathura -> JFBView / fimgs (fim) / fbgs (fbida) / fbpdf
  • Flashcards: awk flashcards -> Anki
  • Gamification: HabitRPG -> Habitica
  • Mind Mapping: FreeMind
  • Office Suites: LibreOffice -> Siag Office -> catdoc (xls2csv, catppt, wordview)
  • Outliner: TreeSheets -> Vault 3 -> GJots2 -> TuDu -> Emacs (Org-mode) -> Vim (Vimoutliner or Vim-orgmode) -> hnb -> snb
  • Personal Accounting: GnuCash -> Ledger -> GNU Pem
  • Personal Assistant: Mycroft -> Lucida (aka Sirius) -> betty
  • Personal Organizer: Task Coach -> Wyrd -> wtf -> Taskwarrior -> calcurse -> todo.txt-cli -> when -> cal
  • Presentation: Beamer -> Sozi -> Text Presentation Program
  • Repetitive Strain Injury: Workrave
  • Speed Reading: Flinks -> WordFlashReader -> GnomeRSVP -> spread0r -> speedread
  • Spell Check: Ispell -> Aspell
  • Spreadsheets: Libreoffice Calc -> Gnumeric -> Oleo -> SC-IM
  • Text Editor: Vim -> Nano -> Neovim -> Kakoune -> vile -> mg -> GNU Zile (minimalist Emacs clone) -> nvi -> Elvis (minimalist Vi clone) -> ed
  • Text Editor (IDE): Atom -> NetBeans -> Code Blocks -> Emacs (nox) -> Vim -> xwpe (full IDE in the terminal)
  • Text Encoding: fuse-convmvfs, Dos2Unix, ASCII
  • Text Formatting and Pretty Printing: par -> fmt (Textutils) -> MSORT
  • Text-To-Speech: Orca -> Gespeaker -> eBook-speaker (+ pandoc) -> eSpeak
  • Typesetting: LaTeX -> Texinfo + Pinfo -> Discount (Markdown) -> AFT -> groff (tbl, pic, eqn, chem, music, dpic, grohtml)
  • Typing Training: Klavaro -> nlkt -> GNU Typist
  • Weather Forecast: XTide -> AWeather -> My Weather Indicator -> wego -> Weather Util -> rrdweather
  • Word Processor: Libreoffice Writter -> Abiword -> MinEd -> WordGrinder

Package Management

  • CD/USB (Custom Installer): Respin -> Remastersys -> Distroshare -> PinguyBuilder -> Customizer -> Ubuntu Customization Kit -> Mklivecd
  • CD/USB (Live): UNetbootin -> MultiCD
  • Gaming Platform: LGOGDownloader (GOG.com), SteamCMD (Steam), Lutris, Gelide
  • Language Specific: bpkg (Bash scripts) -> CPAN (+ Pinto) (Perl) -> clib (C)
  • Package Creation: OBS (Open Build Service) -> src2pkg -> CheckInstall -> GNU Stow -> lt
  • Portable Apps: Flatpak -> Snappy -> AppImage
  • System Backup: Systemback -> Bacula -> FSArchiver -> CYA
  • Universal Package Managers: Alien -> LinuxBrew -> pkgsrc -> GNU Guix

Pentesting

Exploitables

Network Scan

Network Tampering

Password Cracking

Vulnerability Scanner

Privacy

Programming

Remote Access

  • Configuration Management: Puppet -> LCFG -> CFEngine -> cdist
  • Control Panel: ZPanel -> Vesta Control Panel -> Webmin
  • Diskless Booting: iPXE -> netboot
  • PC-Mobile Connection: KDE Connect -> Wammu -> BitPim -> AndroidTools
  • Remote Desktop (Client): rdesktop -> Remmina -> fbvnc
  • Remote Desktop (Client and Server): X2Go
  • Remote Desktop (Server): xrdp
  • Remote Execution: PSSH -> pconsole -> DSH
  • Remote File Manager: KodExplorer
  • Remote Login: Mosh -> OpenSSH -> lsh -> Dropbear
  • Remote X Apps: Xpra > X11 forwarding
  • Reverse Shell: icmpsh -> RevSh
  • Serial Console: Minicom -> Picocom -> Qodem -> GNU Screen
  • Server Provisioning: FAI
  • Wake-on-LAN: wakeonlan

Science And Engineering

Security

Containment

  • Access Control (Kernel Patches): grsecurity + gradm -> Linux Intrusion Detection System -> SecurelLevel -> PaX -> RSBAC
  • Access Control (Linux Security Modules (LSM)): SELinux -> TOMOYO Linux -> Smack -> AppArmor
  • Authentication: Polkit -> ConsoleKit -> Sudo (visudo) -> Linux PAM -> checkpassword
  • Extended File Attributes: EVM -> IMA -> inotify
  • Resource Usage Control: cpulimit -> ulimit (Bash) -> Disk Quota -> quotatool
  • Sandbox: Arkose -> Firejail -> nsjail -> Bubblewrap

Honeypots

Host Intrusion

Network Intrusion

  • Deep Packet Inspection (DPI) Block (Layer 7 Firewall): ipp2p -> l7-filter -> OpenDPI
  • Deep Packet Inspection (DPI) Circumvention: zapret
  • Firewall: ufw (Uncomplicated Firewall) + gufw (GUI) -> arptables -> ebtables -> iptables (+ ipset) -> nftables + conntrack-tools
  • Man-In-The-Middle (MITM) Detection: arpwatch -> ArpON -> Arpalert
  • Network Intrusion Detection: Snort -> Suricata
  • Network Intrusion Prevention: Fail2ban -> Sshguard
  • Network Logging: CoCaLoRes -> ulogd

Server

Server Authentication

System Utilities

  • BIOS: efibootmgr -> SeaBIOS -> Coreboot -> Libreboot
  • Boot Loader: GRUB 2 -> GRUB Legacy -> SYSLINUX (+ Hardware Detection Tool -HDT-) -> LILO (or ELILO for UEFI) -> AiR-Boot -> Das U-Boot (u-boot-tools)
  • Boot Loaders (load on running machine): loadlin -> Kexec (kexec-tools)
  • Cache: Memcached, EnhanceIO -> dm-cache -> bcache
  • Core Utilities: moreutils -> Mtools -> util-linux -> GNU Coreutils -> BusyBox -> Asmutils and ARMutils
  • Custom Initramfs: mkinitcpio -> dracut -> Genkernel -> mkinitramfs -> umkinitramfs
  • Filesystem: CP/M (cpmtools), HFS Utilities, SquashFS (squashfs-tools), fuseflt, UnionFS (unionfs-fuse), udftools (UDF), F2FS (f2fs-tools), exFAT (exfat-utils, fuse-exfat), FAT (dosfstools), Btrfs (btrfs-progs), XFS (xfsprogs, xfsdump), Ext4, JFS, Reiser4, Bcachefs
  • Init (Daemon): Upstart -> SysVinit -> Initng -> Finit -> sinit
  • Init (Service Manager): OpenRC (includes an optional own init) -> runit (includes an optional own init) -> Ignite -> daemontools-encore -> perp
  • Init (Startup Scripts Manager): bum -> svsh -> sysv-rc-conf -> chkconfig
  • IPC: DBus -> ubus -> RPCBind -> ipcs (util-linux)
  • Job Scheduler (Event): incron -> inotify-tools -> wendy -> ACPI event daemon (acpid) -> waitfordevice (w4d)
  • Job Scheduler (Queue): Slurm -> Task Spooler
  • Job Scheduler (Time): Anacron -> fcron -> bcron -> dcron -> at
  • Kernel Modules: NDISwrapper -> ibm-acpi-> kmod (lsmod, insmod, modprobe)
  • Kernel Patches: V86 mode support, GoboHide, Kernel_gcc_patch, Linux-ck, Liquorix, Linux-rt, GNU Linux-libre, Linux Tiny
  • Kernels: LUnix, Linux + Lux (kernel updater), GNU Mach, RTLinux, Muen, HiStar
  • Load in RAM: E4rat -> readahead -> preload, prelink
  • Logical Volume Management: LVM2
  • Multiplexer Wrappers: ucspi-unix, ucspi-ipc, socket_wrapper, nss_wrapper, uid_wrapper, resolv_wrapper, pam_wrapper
  • Network Time Protocol: clockspeed -> Network Time Protocol daemon (ntpd) -> chrony -> OpenNTPD
  • OS Frameworks: OpenStack -> Genode
  • Partitioning: Gparted -> GNU Parted -> util-linux (cfdisk, fdisk, sfdisk, mkfs, mkswap, swapon, swapoff)
  • Partitioning Fixes: u3_tool, ms-sys
  • Settings Manager: Youker Assistant -> Linux Lite Control Center -> Elektra -> Augeas -> Climate -> The Fuck -> Suicide Linux
  • Virtual Filesystem: FuseIso -> Autofs -> AVFS -> afuse -> bindfs

X Desktop

  • Application Launcher: ratmenu -> xcmd -> dmenu -> nenu
  • Boot Screen: Plymouth -> Splashy -> Fbsplash -> <BOOTLOADERS>
  • Clipboard: CopyQ -> clipmenu -> snippy -> xclip -> XSel
  • Compositing Window Manager: Compiz -> Compton -> Xcompmgr
  • Desktop Animated Character: Kawari + Ninix-aya (for Ukagaka) -> Gnome KiSS -> Oneko -> xevilteddy -> Xteddy
  • Desktop Automation: Autokey -> Sikuli -> Easystroke -> xdotool -> GNU Xnee
  • Font Settings: xfontsel + mkfontdir -> fontconfig -> /etc/X11/xorg.conf
  • Graphics Settings: RiceDB -> Wpgtk -> LxAppearance -> dconf -> Xset -> /etc/X11/xorg.conf
  • Login Manager: SLiM -> Qingy
  • Nested Display: Xephyr -> Xnest
  • Notification (Daemon): dunst -> slstatus -> SiND (Simple Notification Daemon)
  • Notification (Server): Libcanberra + Libnotify -> xmessage
  • Panel: Avant Window Navigator -> Global Menu -> Tint2
  • Screensaver: XScreenSaver -> XLockmore -> i3lock -> sxlock -> slock
  • Status Bar (Client): Dzen -> bevelbar -> Lemonbar
  • Status Bar (Server): monky -> i3status
  • Wallpaper Changer (Animated): Xphoon, xfireworks, Xsnow, xmountains, Xplanet, ImageMagick (animate)
  • Wallpaper Changer (Still): FEH -> xsetroot -> hsetroot -> imagemagick (but using 10MB more RAM than the others)
  • Wallpaper Changer (Terminal As Wallpaper): xli -> root-tail -> xrootconsole
  • Wallpaper Changer (Video): VLC (nvlc) -> mpv -> MPlayer
  • Window Manager: FVWM (+ FvwmTabs and 4dwm theme) -> IceWM -> i3 -> Amiwm -> MWM -> Ratpoison -> dwm (+ dwmstatus) -> FrankenWM -> TinyWM -> s3d (+ s3dfm, it's a 3D desktop independent of X!) -> Twin (independent of X) -> VWM (independent of X)
  • Window Manipulation: QuickTile -> wmctrl -> wmutils
  • Worskpace Pager: 3D-Desktop -> Skippy-XD
  • X Event Display: xprop -> xwininfo -> xev

rEFInd: EFI Boot Manager

What is rEFInd?
Refind is an EFI boot manager (based on the old unmaintained rEFIt). With simple configuration, better functionality and theme supported.


Why rEFInd?
Because most bootloaders are crap. Bootloader should be simple to install, configure and manage. And with themes (because, why not?).


Where I can find more info about it?
http://www.rodsbooks.com/refind/




How can I install it?
1) You should remove your bootmanager (and delete all the crap that it left behind, in case you use a shitty distribution that doesn't clean the mess).
2) See if your distribution have it, if not, go to the main page, download and install it.
3) Run refind-install and it'll do the magic. Check it with efibootmgr if everything is set as expected.
4) See below for extra stuff

rEFInd in a nutshell
Refind will put some files in your ESP directory to properly boot, it's quite simple to figure out, but in special, you have one specific file to take a look: EFI/refind/refind.conf. You can change it by yourself, or replace with this configuration:

# Timeout for boot the default
timeout 20
 

# Hide the elements on the screen
hideui label hints
 

# Use graphics UEFI booted
use_graphics_for linux
 

# Default resolution for UEFI. If you put an unsupported resolution, rEFInd will prompt 
# with choices for the supported ones
resolution 1280 1024
 

# Default selections, the + represents the last booted, and the next ones
# it's for the next in case refind can't detect the last booted OS
default_selection "+,Gentoo,Microsoft,ArchLinux,WhateverOtherOS"

# Show some tools if available
showtools shell, reboot, shutdown, firmware

# Include my theme. Not necessary if you don't want to use any theme and left the default as is.
include themes/yourtheme/theme.conf



The default will look like this:


Custom theme

I have my own custom theme here and it looks like this. Just follow the instructions in this repository and everything will works as expected.
Or refer here to more themes. You can also port Clover-EFI themes without too much hassle.



Using the kernel and initrd inside ESP:

That's my favorite configuration (and you can boot whatever filesystem you want on root and don't mind extra /boot for that).
1) Create a directory for your OS, something like EFI/MyOS
2) Copy your vmlinuz and initrd to EFI/MyOS
3) Create a file inside EFI/MyOS called refind_linux.conf
4) Use the follow example for your refind_linux.conf (it's your boot command-line, so your old boot command-line will work here):

Boot with standard options"  "vmlinuz.efi initrd=\EFI\MyOS\initrd.img root=/dev/rootvg/rootLV rootfstype=jfs verbose" 

5) That's it! You can add more entries for single, etc. Or even create extra directories for extra kernels/OS.

Shortcuts for rEFInd screen:
Keystroke Explanation
left arrow Moves the selection one icon to the left (or up the list in text mode)
right arrow Moves the selection one icon to the right (or down the list in text mode)
up arrow Moves the selection from the utilities row to the OS row (in text mode, moves up one entry)
down arrow Moves the selection from the OS row to the utilities row (in text mode, moves down one entry)
Page Up Scrolls the visible set of tags to the left (or up in text mode)
Page Down Scrolls the visible set of tags to the right (or down in text mode)
Home Moves the selection to the first item on the OS row
End Moves the selection to the last item on the utilities row
Esc or Backspace (Delete on Mac keyboards) Returns from a sub-menu; on the main screen, re-reads the configuration file and re-scans for boot loaders
Delete (on PCs) or minus (-) (Delete on Mac keyboards is Backspace on PC keyboards, and will not work for this) Hides a menu tag. The tag is remembered via the computer's on-board NVRAM.
Insert, F2, Tab, or + From the main menu, opens the selection's submenu, which is most useful with Mac OS X, ELILO, and Linux kernels with EFI stub loader support; in a submenu, opens a line editor enabling editing of boot options
F10 Saves an image of the current screen in the file screenshot_###.bmp, where ### is a sequence number starting with 001, in the EFI System Partition's (ESP's) root directory
F12 or (on some keyboards) Eject Ejects removable media. This feature only works on some Macs, not on UEFI-based PCs.
Enter or spacebar Launches the currently-selected OS, utility, or built-in feature
1 through 9 Launches the specified boot loader by number
A Displays the "About rEFInd" information
E Launches the first instance of ELILO in the boot list
G Launches the first instance of GRUB in the boot list
L Launches the first Linux kernel in the boot list
M Launches the first Mac OS boot loader in the boot list
P Launches gptsync
S Launches an EFI shell, if available
U Shuts down the computer (but note that this is buggy and reboots most UEFI-based PCs)
W Launches the first Windows boot loader
Other letters Launch OSes whose names begin with those letters, as described below
 Source: rEFInd homepage

How about Windows?
rEFInd just needs the Microsoft folder in your ESP, he'll detect automatically.

How about macOS?
You should leave the EFI files of macOS there, and like Windows, rEFInd should detect the files and add an entry automatically. Keep in mind that rEFInd should have priority on boot. 

refind-install doesn't put an entry on my EFI:
Add it manually:

efibootmgr -c -l //EFI//refind//refind_x64.efi -L "rEFInd Boot Manager"

Type efibootmgr to see the results, you should see something like this:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* rEFInd Boot Manager


Extra EFI drivers:
You should put your extra EFI drivers (if applicable) in EFI/refind/drivers_x64/
Since we're talking about pure EFI drivers, most drivers should works without problems, like some exotic FS drivers, clover stuff,etc.
Refer here and here on how to find extra EFI drivers.

Secure boot?
I'll not cover this here because I don't use it, but the official homepage have a section dedicated to it.



Posts for Saturday, December 15, 2018

avatar

thinkMoult Atom / RSS feed

Subscribe to Dion Moult's blog and online articles using Atom / RSS. - for the full article please visit the website.

Posts for Thursday, December 13, 2018

avatar

Free 3D lamp model

Download a free 3D model of a lamp in OBJ format and Blender format for use in renderings and architectural visualisation. - for the full article please visit the website.

Posts for Tuesday, December 11, 2018

avatar

Why Revit is shit

Revit is a proprietary software package developed by Autodesk, an industry monopoly that consistently underdelivers when architects, engineers, and builders attempt to execute a BIM project. With OpenBIM still yet to mature, here is a list of criticisms of the software's limitations. - for the full article please visit the website.

Posts for Tuesday, December 4, 2018

Die maschinenkompatible Gesellschaft

Für die aktuelle Ausgabe des t3n Magazins schrieb ich einen kürzeren Text über die Herausforderungen nach der Digitalisierung. Dieser sollte so 3000 Zeichen haben. Weil ich nicht so gut lese, schrieb ich eher so 3000 Wörter. Im Magazin findet sich sich kurze, auf die Kernthesen reduzierte Variante, der folgende Text ist die sehr ausufernde Form. Für die, die sich für mehr Beispiele und etwas mehr Detail interessieren (oder schlicht die t3n nicht lesen), hier also der erste Ansatz. Er ist aber wirklich ein Ansatz, eine Skizze, noch kein fertiger Text. 

Während sich in Deutschland immer noch Bücher, Texte und Vorträge über Digitalisierung als Zukunftsherausforderung verkaufen lassen, ist bei genauerer Betrachtung festzustellen, dass die Digitalisierung konzeptionell an vielen Stellen eigentlich abgeschlossen ist.

Das bedeutet keineswegs, dass alle gesellschaftlichen, wirtschaftlichen und politischen Prozesse voll digital abgewickelt werden, sondern vor allem, dass die Zugänglichmachung diverser Prozesse für Softwaresysteme – so noch nicht abgeschlossen – eigentlich nur noch an technischer Fleißarbeit, Implementierung und meistens Ressourcen scheitert. In Abwandlung von William Gibson könnte man vielleicht sagen: “Die Digitalisierung ist längst da, sie ist nur noch nicht gleichmäßig verteilt.”

Selbst kleine und mittelständische Unternehmen nutzen heute zur Kollaboration mit Lieferanten und Kunden völlig selbstverständlich integrierte, vernetzte Softwarelösungen und tief in Geschäftsprozesse verwobene ERP Systeme. Vereine und ganze Familien organisieren sich über WhatsApp und andere Messenger. In einen Laden gehen, um Dinge zu kaufen, wird immer mehr zur Ausnahme denn der Regel (Lebensmittel sind dabei noch eher der Sonderfall). Und die eigene Steuererklärung kann (bzw. muss) heute auch komplett oder zu mindest weitgehend papierlos abgewickelt werden.

“Software is eating the world” ist der Leitsatz unserer Zeit. Ein Satz der oft so verstanden wird, als würde immer leistungsfähigere Software die bisher analog abgewickelten Prozesse nun “verstehen” und ersetzen oder zu mindest unterstützen. Dabei ist an vielen Stellen das Gegenteil der Fall und genau hieraus lassen sich für die nächsten Jahre einige Herausforderungen und Projektionen ableiten.

Denn Digitalisierung bedeutet keineswegs, dass Software soziale Prozesse nun perfekt abbildet und sich deshalb durchsetzt: Viel mehr sehen wir eine große Standardisierung, Vereinfachung und Homogenisierung soziotechnischer Abläufe, um sie den digitalen Softwaresystemen zugänglich zu machen. Anstatt dass Maschinen unsere menschliche Lebensrealität verstehen, ist es eher so, dass wir unsere Lebenswelten in digitalten Systemen maschinenkompatibel ausdrücken – und uns dabei den oft sehr einfachen oder scherenschnitthaften Modellen menschlichen Lebens, die die Maschine noch versteht, unterwerfen.

Eine der einfachsten Illustrationen ist vielleicht Social Networking: An Stelle der komplexen, nuancierten sich permanent im Fluss befindlichen Beziehungen zwischen Menschen tritt die “digital Connection” oder “Friendship”, die alles abbildet von “ist der wichtigste Mensch in meinem Leben bis hin zu “keine Ahnung, hat mir ne Verbindungsanfrage geschickt und hat ein lustiges Profilbild”. Und selbst, wenn einfach Qualifikationen wie “ist ein Freund” und “ist ein Bekannter” ermöglicht werden, so läßt sich doch nie die volle Breite unserer Beziehungswelten ausdrücken. Zum Beispiel, dass bestimmte Beziehungsmodelle wie beispielsweise “ist mein zweiter Partner” oft gar nicht wirklich ausgedrückt werden können.

Dieser hohe Vereinfachungs- und Standardisierungsgrad bringt mit sich eben die Vorteile, die dieselbe Bewegung in der Industrietechnik Mitte bis Ende des letzten Jahrtausends gebracht hat: Einfachere Prozesse sind einfacher zu verketten und damit zu automatisieren. Das was wir heute in der IT “Schnittstelle” nennen wird zur Sollklebestelle, an die sich unterschiedliche Anbieter und Organisationen in relevante Prozesse, in unsere Leben integrieren – und das potentiell in immer komplexeren Netzstrukturen. Wir sehen das heute schon darin, dass bestimmte Dienste sich durchaus gerne miteinander verknüpfen lassen, so dass nicht nur das Licht angeht, wenn ich nach Hause komme, sondern die Anlage gleich die richtige Playlist startet und die Heizung versucht, die perfekte Temperatur einzustellen. Dazwischen plappert dann noch der Personal Voice Assistant, der an Sport erinnert oder an die neue Folge der geliebten Fernsehshow. Diese Verknüpfungen zwischen den Diensten, die Menschen einsetzen um sich, um ihre eigene Identität auszudrücken und ihre Wirkmacht in und auf die Welt zu vergrößern, werden sich noch verstärken, werden von den unterschiedlichen Unternehmen als strategische Partnerschaften gepflegt und von den Nutzenden als Service gefordert werden.

Um die Automatisierungsdividende und Effizienzsteigerungen dieser digitalen Verkettung auszuschöpfen, werden nebenläufige Prozesse zunehmend abgeschafft oder verkompliziert werden. Wo es heute schon schwer ist, im Supportfall einen Menschen ans Telefon zu bringen, wird auch hier versucht werden, die Abhängigkeit von geschultem Personal und die Heterogenität der Abläufe zu minimieren und durch automatisierte Systeme wie Chatbots zu verringern. Der Kostendruck auf die Anbietenden von Dienstleistungen wird durch den globalisierten Markt extrem zunehmen: Wenn ein Unternehmen aus z.B. Asien einen Service für 5€ im Monat anbieten kann, dann wird sich ein Unternehmen aus Europa schwer tun, dafür viel mehr Geld zu verlangen. Zugriff auf Dienste wird für Nutzende damit sicherlich tendenziell eher günstiger werden.

Die technischen Systeme in denen wir leben, gestalten aktiv unseren Möglichkeitsraum, bieten uns bestimmte Prozesse an oder machen andere eben schwierig oder unmöglich (man nennt das Affordanz). Die Affordanz der Digitalisierung ist – sehr generell betrachtet -, dass eine Entscheidung gegen vernetzte, digitale Dienste und Softwaresysteme, gegen eine Abbildung der eigenen Lebensrealität in den bestehenden Plattformen und Strukturen, mit zunehmend heftigen Kosten verbunden ist. Das beginnt damit, dass man ohne Facebook Account nicht zu einer Party eingeladen wird und endet damit, dass man seine Steuer schlicht nicht analog einreichen kann und quasi gezwungen ist, einen Computer und die notwendigen Fähigkeiten zur Bedienung einer Steuer-Software zu besitzen oder jemanden dafür zu bezahlen. Die digitalisierte Welt, in der Menschen nicht mehr nur als organisch-psychische Wesen sondern eben als “Cyborgs”, die ihre eigenen auch geistigen Fähigkeiten durch technologie und Services augmentieren, wird zunehmend “feindlich” oder “widerspenstig” gegenüber denen, die sich dieser Technologie verschließen oder die komplexen Technologien nicht oder nicht so souverän, wie andere, einsetzen können. Hierbei wird insbesondere dem Bereich Accessibility, das heißt der Zugänglichmachung von Diensten für Menschen mit Behinderungen oder anderen Einschränkungen bei der Benutzung von Softwaresystemen, eine ganz neue Bedeutung zukommen: Wie Accessibility heute oft schon sträflich vernachlässigt wird, wird diese Tendenz bei zunehmender Alternativlosigkeit der Nutzung von IT Systemen das bestehende politische Problem der Teilhabe nur noch weiter verschärfen.

Konkrete Vorhersagen über die Zukunft™ zu machen, ist immer mit einem gewissen Risiko verbunden. Was aber sicher scheint ist, dass die Abhängigkeit der Menschen in ihrem Alltag von Softwaresystemen und Diensten deutlich steigen wird. Ebenso wachsen wird aber auch die Auswahl an diversen unterstützenden Hard- und Softwaresystemen.

Personal Scale


Während vor einigen Jahren die Musikindustrie noch beklagte, dass Menschen nie wieder Geld für Musik ausgeben würden, wenn man sie nicht mit Gewalt zwänge, nimmt die Nutzung von Musik Streaming Diensten wie Spotify zu. Auch Videostreamingdienste wie beispielsweise Netflix schreiben Jahr um Jahr neue Rekord-Kundenzahlen. Dienste für Backups von Fotos und Videos werden mit abnehmender Zahl von “Hardcopies” dieser Artefakte immer wichtiger, wenn man nicht die Dokumentation der ersten Schritte der eigenen Kinder in einem Kaffee-Unfall verursachten Laptop Kurzschluss verlieren möchte. Die digitalen Daten, die zum Leben der Menschen, zu ihrer Identität und Geschichte gehören und damit von wachsender emotionaler wenn nicht gar identitärer Bedeutung werden, werden zunehmend in Online-Diensten abgelegt werden. Und das hat nicht nur mit der Datensicherheit und der Erstellung von Backups zu tun.

Die Zahl der Geräte, an denen Menschen auf den digitalen Teil ihres Selbst, ihre Notizen, ihre Bookmarks, ihre sozialen und kommunikativen Verbindungen, ihre Bilder, ihre Kontoauszüge usw. zugreifen wollen, steigt. Neben dem eigenen Smartphone und Computer spielen auch Tablets und Rechner bei der Arbeit eine zunehmende Rolle – insbesondere da in vielen Jobs durch Home-Office und flexible Arbeitszeitregelungen die Grenze zwischen Arbeit und Freizeit immer mehr verwischt wird. Um auf allen genutzten Geräten Zugriff auf das volle Selbst, das gesamte mentale Exoskelett zu haben, wird die Abhängigkeit von zentralen Diensten, in die sich alle diese Daten synchronisieren, zunehmen. Dabei ist es keinesweg unmöglich, solche Dienste selbstständig zu betreiben, es ist aber aufgrund der notwendigen Ressourcen wie Zeit und Geld und auch der benötigten technischen Fähigkeiten nur einer kleinen Minderheit vorbehalten. Natürlich könnte jeder und jede einen eigenen Server betreiben, um die eigenen Daten zentral zu speichern und zu synchronisieren, am Ende werden sich die meisten aber eben doch einem Dienst wie Dropbox oder Google Drive anvertrauen, schlicht weil die Fähigkeiten, die Zeit oder schlicht die Lust fehlt, sich mit dem Hosten solcher Lösungen zu beschäftigen.

Die Möglichkeiten der Erweiterung des Selbst durch sich wie Legosteine zusammenfügbarer, oft verhältnismäßig kostengünstiger Dienste werden steigen und damit mehr Menschen einen Zugang ermöglichen. Im Gegenzug wird sich hier allerdings die bestehende ökonomische Spaltung noch stärker zementieren, als sie das bisher tut: Die Menschen, denen nicht genug Geld zur Verfügung steht, um sich aus dem großen Baukasten extrem hilfreicher Werkzeuge die dazuzumieten, die ihre Bedürfnisse unterstützen, werden deutlich größeren Risiken des Datenverlustes ausgesetzt sein oder können bestimmte Dienste, die Zeit (und vielleicht sogar langfristig Geld sparen können) nicht nutzen. Oder sie unterwerfen sich den werbefinanzierten Diensten, die im Austausch für die Bereitstellung des Dienstes die Daten und Aktionen ihrer Nutzenden auswerten. Privacy als bourgeoises Privileg wird auf diesem Weg eher noch weiter ausgebaut.

Als Seiteneffekt der mittlerweile als Standard angenommenen Online-Konnektivität von Diensten und Dienstleistungen wird sich die Besitzbeziehung zu Technologie etwas verändern: Wenn mein Thermometer oder mein Ofen einen Internet-Dienst braucht, um zu funktionieren, und dieser Dienst sich auch finanzieren muss, wird es sich immer mehr dahin entwickeln, dass Hardware eigentlich nicht mehr “gekauft” sondern als Teil eines Services “gemietet” wird. Wir werden vielleicht formal viele Geräte besitzen, sind aber davon abhängig, dass jemand anderes irgendwelche Dienste im Internet betreibt, damit unser Gerät mehr ist als ein Briefbeschwerer. Eigentum an Technologie (und der Gedanke von Autonomie) wird damit zunehmend durch Abhängigkeit von Lieferanten ersetzt werden – mit den oben schon angesprochenen ökonomischen Auswirkungen.

Larger Scale

Aber nicht nur im privaten und individuellen werden die Konsequenzen der Digitalisierung sichtbar werden. Hierbei wird es vor allem zwei Bewegungen geben: Die Regulierung des öffentlichen Raumes um Technologie dort besser einsetzen zu können und die zunehmende Unterstützung diverser bisher nur durch Menschen ausführbarer Aufgaben.

Selbstfahrende Autos sind seit vielen Jahren der Traum vieler – gerade weil diese das Konzept von “Mobilität als Service” vereinfachen und insgesamt deutlich weniger Autos notwendig wären. Das würde nicht nur extrem viel Platz in den Städten sparen, sondern auch die Umwelt entlasten.

Nun hat sich herausgestellt, dass die Welt, in der Menschen spazieren gehen, Fahrräder mal fahren, mal schieben und sich insgesamt sehr unberechenbar verhalten, für autonome KFZs extrem schwierig zu navigieren ist. Dazu kommen noch diverse Probleme mit dem Wetter oder der Größe und des Zustands von Straßen, sobald man kalifornische Highways verläßt.

Um trotzdem die Potentiale selbstfahrender Autos nutzen zu können, ist es nicht unwahrscheinlich, dass bestimmte Bereiche im öffentlichen Raum für Menschen gesperrt werden, um den sicheren und verlässlichen Einsatz selbstfahrender Autos zu ermöglichen. Hierbei wäre es denkbar, dass diese eigene Spuren bekommen oder bestimmte Straßengrößen noch stärker für Menschen gesperrt werden. Um die Umwelt zu entlasten und potentiell weniger Verkehrsunfälle zu riskieren, ist es nicht unwahrscheinlich, dass wir durch Gesetze beginnen werden, die Bewegungsfreiheit von Menschen etwas einzuschränken, ganz im Einklang mit dem schon oben beschriebenen Muster, dass Digitalisierung eben nicht bedeutet, dass die Software sich der Welt anpasst, sondern wir die Welt Software-kompatibel machen.

Viele Prozesse, die bisher nur von Menschen durchgeführt wurden, werden zunehmend auch der (Teil-)Automatisierung zugeführt werden. Ich denke dabei vor allem an Themenbereiche wie zum Beispiel medizinische Diagnostik oder auch Journalismus. Im Journalismus ist es heute schon der Stand der Technik, dass bestimmte Textgattungen (zum Beispiel Spielberichte zu Sportereignissen oder Börsenberichte) aufgrund ihrer großen Homogenität und Strukturgleichheit automatisiert erzeugt werden können. Die Unterstützung von Journalisten insbesondere im Bereich News wird in dieser Hinsicht sicherlich noch zunehmen.

Im Bereich der digitalen Diagnostik sind die Ergebnisse bisher noch nicht immer sehr überzeugend, aber es können zumindest viele Standardfälle durch Softwaresysteme abgedeckt werden, bzw. bestimmte Diagnosen ausgeschlossen oder notwendige Folgeuntersuchungen abgeleitet werden. Insbesondere um dem Kostendruck im Gesundheitssystem zu begegnen, wird die Hoffnung vieler Betreibender und Krankenkassen sein, Ärzte von Standardtätigkeiten zu entlasten um ihre Expertise für komplexe, nicht maschinell entscheidbare Probleme zu nutzen – und damit letzten Endes mehr Patienten mit derselben oder einer kleineren Anzahl Ärzte versorgen zu können. Hierbei wird die besondere Herausforderung sein, den individuellen Krankheitsbildern und -historien gerecht zu werden: Der stark normierende und homogenisierende Charakter automatisierter Hilfssysteme kann an dieser Stelle dazu führen, atypische und ungewöhnliche Krankheitsverläufe oder Symptomatiken falsch zu diagnostizieren.

Es wird spannend sein zu sehen, wie die Verfügbarkeit einer extrem großen Menge vernetzbarer Dienste die Gesellschaft als Gesamtheit und als politisches System beeinflussen wird – und das auch jenseits der schon angesprochenen Frage der ökonomischen Ungleichheit. Die starke Zunahme der Nutzung internationaler Dienste und die Integration von Hardware internationaler Anbieter wird beispielsweise im Bereich des Verbraucherschutzes neue Probleme aufwerfen, da Durchsetzung der hier geltenden Regeln bei irgendwo auf der Welt ansässigen Startups nicht trivial werden wird. Gerade wenn man sich Dinge wie Crowdfunding ansieht, bei dem Produktentwicklung durch die späteren Kunden finanziert wird, können mit sehr wenig Kapital und mit sehr wenig Vorlaufzeit auf dem Papier sehr attraktive Produkte auf den Markt geworfen werden. Die verantwortliche Firma kann aber ohne große Probleme 2 Wochen nach Auslieferung abgewickelt sein. Auch das Thema des Datenschutzes bzw. der Informationskontrolle ist – wie die ersten Reaktionen auf die DSGVO zeigen – keineswegs gelöst und steht vor ähnlichen Problemen.

Grundsätzlich besteht durch die Zugänglichmachung der Welt für Maschinen eine signifikante homogenisierende Wirkung, eine Art “Sog der definierten Normalität”. Der Mainstream hatte schon immer eine normative Kraft, durch die Integration von Softwaresystemen in unsere individuellen und gesellschaftlichen Realitäten wird diese Kraft jedoch ungleich stärker: Nehmen wir an, dass es einen sozialen Netzwerkdienst gibt, mit dem ich nahezu alle Behördengänge und Alltagsprozesse massiv beschleunigen kann, dieser erlaubt allerdings bei der Selbstbeschreibung nur die Auswahl “Mann” oder “Frau” für die Geschlechtsidentität. Für Menschen, deren Identität sich nicht mit diesen zwei Polen abbilden lässt, besteht also nur entweder die Wahl, mit schlechteren, aufwändigeren und weniger leistungsfähigen Lösungen zu arbeiten (implizit also eine Strafe zu zahlen) oder sich – und sei es nur pro forma – dem normierenden System zu unterwerfen.

Die normierende Funktion digitaler Dienste setzt sich aber auch in anderen Bereichen fort: Streaming Dienste wie Spotify bieten Menschen einen verhältnismäßig günstigen Zugang zu Kultur (in diesem Falle Musik). Für einen recht überschaubaren Preis kann man nicht nur beliebig viel Musik hören, sondern sich auch Playlisten potentiell interessanter Musik zusammenstellen lassen. Doch welche Musik findet man auf Spotify? Und was ist mit Künstlern, die aus bestimmten Gründen nicht im Spotify Katalog sind? Streaming Dienste mit ihren auf dem Nutzendenverhalten aufsetzenden Empfehlungsengines haben einen starken kulturell normierenden Charakter: Auf Basis einiger gehörter Stücke werden Menschen sehr schnell in bestimmte Cluster sortiert und mit der zugehörigen Musik versorgt. Diese Empfehlungen bringen definitiv viele Menschen mit neuer Musik in Kontakt, die sie so vor der Existenz solcher Dienste nie gehört hätten. Im Gegenzug findet Musik, die für die (meist westlichen) Anbieter solcher Dienste weniger Relevanz hat, schlicht noch weniger statt als zuvor.

Herausforderungen

Die oben skizzierten Entwicklungen und Vorhersagen stellen uns als Gesellschaft und als politisches System vor einige sehr großer Herausforderungen.

Um die Vorteile, die die neuen, verkettbaren Dienste für das eigene Leben bieten, nutzen zu können, sind signifikante Ressourcen notwendig: Zugang zum Internet (möglichst sogar mobil), technische Kompetenz zur Integration von Diensten in das eigene Leben und natürlich auch die finanziellen Möglichkeiten. Das Recht auf gleichberechtigte Teilhabe am gesellschaftlichen Leben wird hier potentiell stark unter Druck gesetzt, wenn beispielsweise Menschen ohne Job keinen Anspruch auf einen Internetzugang oder Rechner haben. Es kann auch nicht im Sinne einer fairen Gesellschaft sein, wenn sich eine kleinere Menge von Menschen durch Geld aus der heute sehr präsenten und für personalisierte Werbung verwendeten Datenanalyse und -überwachung herauskaufen können und die etablierten Ideen von Privatsphäre noch mehr als schon früher zu einem Privileg der Wohlhabenden werden.
Im Bereich des Verbraucherschutzes wird insbesondere der Shift weg vom “Besitz” hin zu Geräten als dumme Endpunkte von Online-Services zu vielen Konflikten führen: Nicht nur entsteht so mehr Elektroschrott, weil beispielsweise der Betreiber eines Dienstes diesen einstellt und damit die Hardware funktionslos wird, es werden Menschen auch in eine deutlich größere Abhängigkeit von ihrem Anbieter getrieben, wenn nicht durch den Gesetzgeber eingegriffen wird. Hier wären beispielsweise bestimmte Portabilitäts- oder Kompatibilitätsstandards ein Weg, der es ermöglichen könnte, die eigenen Geräte auch weiterzubetreiben, wenn der ursprüngliche Anbieter diese nicht mehr weiter versorgen kann oder will. Es wäre auch denkbar, dass jedes gerät mit Online-Funktionalität beispielsweise eine auf eigene Rechner installierbare Server-Software mitliefern müsste, die den Weiterbetrieb auch ohne den Online-Dienst des Ursprungsanbietenden erlaubt – wenn auch vielleicht mit beschränkter Funktionalität. Dienste, in die Menschen Informationen einpflegen, müssen aus denselben Gründen sinnvolle Exportschnittstellen anbieten, um Anbieter wechseln zu können.

Die tiefe und komplexe Integration diverser Dienste in die individuellen Identitäten der Menschen, die Auslagerung beispielsweise bestimmter mentaler Prozesse in Online-Dienste – wie beispielsweise die Pflege des eigenen Kalenders nicht mehr auf Papier oder im Kopf sondern bei einem digitalen Anbieter – führt zu neuen Ansprüchen bezüglich der Transparenz und der Verständlichkeit. Je wichtiger ein Dienst für das Individuum ist, desto essentieller ist es, zu verstehen, wem dieser Dienst gehört, wie er sich finanziert, von welchen Instanzen er kontrolliert und reguliert wird. Welche Unternehmenspolicies es gibt und wie sich diese auf die Leben der Dienstanwendenden auswirken. Die zur Zeit bestehenden meist sehr barocken Terms of Service sind schon für Menschen mit viel Freizeit und viel juristischer und technischer Kompetenz nicht mehr sinnvoll verständlich.

Der stark homogenisierenden, normierenden Wirkmacht der Digitalisierung müssen Akzente entgegengesetzt werden, die normabweichende Lebensmodelle, Lebensrealitäten und auch kulturelle Artefakte schützt und nicht in ihrer Auslebung einschränkt. Hier können Regulierungen, die Kompatibilitätsstandards definieren, sogar einen Mehrwert bieten, so dass sich bestimmte marginalisierte Gruppen in Plattformen organisieren können, die gewisse Schutzräume bieten, ohne vom gesellschaftlichen Leben grundsätzlich ausgeschlossen zu werden oder sich einer oft traumatisierenden “Normierung” zu unterwerfen.

Die Zugänglichmachung der Welt für Softwaresysteme wird einige Arbeitsplätze kosten und die neu entstehenden Arbeitsplätze werden dieses Problem eher nicht auffangen können: Selbst wenn die Zahl neu entstehender Jobs identisch zu der Zahl der wegautomatisierten wäre, würden die Anforderungen an die Qualifikation zur Ausübung massiv steigen. Wer vorher im Telefonsupport war, wird später nicht automatisch Chatbots programmieren können. Die Automatisierung vieler Tätigkeiten, die Unterstützung von Menschen durch Expertensysteme wird die Produktivität in vielen Arbeitsbereichen massiv steigern können (wir sprechen hierbei wie es leider typisch ist vor allem über die klassischen Wirtschafts- und Industriebereiche, Care-Arbeit wird wie so oft wahrscheinlich nicht so stark betroffen sein, Roboter sind einfach zu schlecht beim Windelnwechseln). Wie wir diese Automatisierungsdividende gesellschaftlich verteilen und ob das traditionelle Modell der freien oder angestellten Erwerbsarbeit überhaupt noch zur gesellschaftlichen und wirtschaftlichen Realität passt, werden die großen politischen Fragen der Post-Digitalisierung werden.

Fazit

Die Digitalisierung ist grundsätzlich inhaltlich abgeschlossen, die Welt wurde den technischen Möglichkeiten angepasst. Diese Umstrukturierung der Welt erlaubt es Menschen potentiell individuell deutlich wirkmächtiger zu werden und sich auch in vielen Aspekten deutlich stärker entlang der eigenen Wünsche und Neigungen zu entwickeln. Die Welt wird – durch die Reduktion auf Maschinenkompatibilität – plötzlich nahezu beliebig kombinierbar.
Über den Potentialen für sowohl Individuen wie auch die Gesellschaft als Ganzes hängt allerdings das Damoklesschwert des stark normativen Charakters digitaler Services, welche in die entgegengesetze Richtung wirken können.
Dieses Spannungsfeld aufzulösen in einer Art, die allen Menschen eine faire Teilhabe ermöglicht, ist eine große Aufgabe, die nur im Dialog aller gesellschaftlichen Gruppen in politische Lösungen überführt werden kann.
Wir haben die Welt durch die Digitalisierung maschinenkompatibel gemacht. Jetzt müssen wir Wege finden, in dieser neu strukturierten Welt unsere Menschlichkeit und unsere Existenz als soziale Gemeinschaft neu zu denken um den Nutzen der Technologie allen Menschen zugänglich zu machen und Technik als Vehikel zur noch besseren Realisierung unserer Menschlichkeit und unserer Menschenwürde zu nutzen.

Falls dir dieser text gefallen hat oder du mich einfach so unterstützen möchtest, kannst du mir gerne auf Paypal oder Ko-Fi ein Getränk ausgeben. Vielen Dank fürs Lesen.

Posts for Sunday, December 2, 2018

Midnight Commander function keys not working in some terminal emulators

Some terminal emulators have issues to properly work with some applications like midnight commander even if TERM settings are configured properly (I'm not sure why).
I'll use konsole as an example so you'll understand what to do:

In konsole go Settings -> Edit Current Profile -> Keyboard and create a new set of keybindings and change to the defaults of rxvt like above:

kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,

Source: I've used the ncurses faq for the keybindings

Posts for Wednesday, November 28, 2018

Experte zum Thema Blockchain beim Ausschuss Digitale Agenda des Bundestages

Ich war heute als Experte für die Fraktion der Linkspartei in einer öffentlichen Sitzung des Ausschusses Digitale Agenda des Bundestages. Das Thema der Sitzung war “Blockchain”. Hier mein vorbereitetes Eingangsstatement:

Sehr geehrte Damen und Herren,

mein Name ist Jürgen Geuter, ich bin Informatiker und Gründungsmitglied des transdiziplinären Netwerks “Otherwise Network”, welches sich mit Fragen der Digitalisierung beschäftigt.

Vielen Dank für die Einladung zu diesem Ausschuss und der Gelegenheit, meine Expertise beisteuern zu dürfen.

“Blockchain” ist bei erster Betrachtung eigentlich gar kein besonderes Thema: Eine Datenbanktechnologie mit sehr spezifischen Eigenschaften, die auf sehr, sehr spezifische Einsatzszenarien abzielt auf Basis der in den 1970ern entwickelten Idee der Merkle Trees. Warum beschäftigen wir uns damit in diesem Ausschuss?

Nun, “Blockchain” hat als Begriff ein zweites Leben gefunden als Codewort für “Zukunftstechnologie” wie auch zum Beispiel “Künstliche Intelligenz”. Deutschland hat – nicht ganz zu unrecht – Angst international technologisch abgehängt zu werden. Dem Hype-Begriff Blockchain zu folgen, soll Deutschland den Anschluss an “die Zukunft” sichern. “Blockchains made in Germany 4.0” quasi.

Dabei dreht sich die Diskussion aber nicht mehr um eine spezifische Technologie mit spezifischen Eigenschaften sondern um einen fast magischen Begriff: Egal, was das Problem ist – Nachverfolgung in Logistikketten, Immobilienregister, Wahlen oder die Probleme, die der Brexit an der Grenze zwischen Nordirland und Irland schafft – die “Blockchain” soll es richten.

Leider ist die Technologie – trotz der 10 Jahre die das Paradebeispiel Bitcoin nun alt ist – keineswegs robust genug für den Einsatz in vielen kritischen Szenarien: Bitcoin hat immer wieder mit Bugs zu kämpfen, die zum Verlust oder der ungewollten Übertragung von “Coins” führen und nicht mal die Entwickler der Programmiersprache mit der Smart Contracts in der populären Ethereum Blockchain geschrieben werden, schaffen es, ihre Contracts abzusichern.

Real existierende Blockchains spielen vor allem eine Rolle als Mittel um unregulierten Wertpapierhandel (so genannte ICOs) und Spekulation mit virtuellen Assets – die fälschlicherweise manchmal Währungen genannt werden – abzubilden. Blockchain Lobbyismus spricht viel von diffusen “Potenzialen”, ein typischer Blockchain Text findet hauptsächlich im Konjunktiv und Futur I und II statt. Doch natürlich gibt es reale Prototypen: Diese zeigen allerdings, dass sich die Versprechen kaum erfüllen, nur mit extremen technischen und wirtschaftlichen Aufwänden angerissen werden können oder sind – wie bei der viel zitierten estnischen KSI Blockchain zur Verwaltung von Pässen und e-IDs – schlicht keine Blockchains.

Aus diesen Gründen ist es auch nicht verwunderlich, dass der Blockchain Hype in einer in diesem Monat veröffentlichten Studie von Forrester Research als beendet erklärt wurde, da im Vergleich zum Vorjahr die S&P 500 Firmen kaum noch über Blockchain sprechen. Dazu passt auch der Bericht der australischen Digital Transformation Authority, die von Mai bis Oktober untersuchen sollte, in welchen Bereichen Blockchains den meisten Wert für die australische Wirtschaft haben würde. Das Fazit: “For every use of blockchain that you would consider today there is a better technology. […] Internationally, most of the hype around blockchain is coming from vendors and companies, not from governments or users and deliverers of services who are saying, ‘Blockchain’s the solution to our problem’.”

Blockchain wird im Diskurs – auch durch seine Fürsprechenden – mit Versprechen und Hoffnungen überladen, die eine technisch gar nicht uninteressante, aber extrem spezifische und technisch noch unreife Datenbanktechnologie überhaupt nicht leisten kann.

Die heute populäre Frage – die sich auch hier im vor der Sitzung versendeten Fragenkatalog stellte (“Wie kann Blockchain für X eingesetzt werden?”) steht auf dem Kopf. Es ergibt nur Sinn, bei bestimmten konkreten Problemen Blockchains als eine mögliche Datenbanktechnologie zu evaluieren. Die Idee, personenbezogene Daten, hoheitliche Aufgaben oder gar Gesundheitsdaten in Blockchains zu abzubilden, ist nicht nur aus Sicht bestehender Regulierung wie DSGVO mit großer Vorsicht zu genießen: Datenbanken, aus denen Daten nicht sicher entfernt werden, bzw. Zugriff auf Daten verlässlich und garantiert, kontrolliert, protokolliert und unterbunden werden kann, schließen sich insbesondere in Bereichen, die die Daten natürlicher Personen betreffen, eigentlich von selbst aus. Grundsätzlich scheint es schon nicht sinnvoll in einer schnelllebigen Technologie Welt seine Politik an einer spezifischen Nischentechnologie auszurichten.

Blockchains sind keineswegs wertlos oder ihr Einsatz immer falsch. Sie sind nur bei weitem keine Silver Bullet für die technische Lösung sozialer Probleme wie zum Beispiel dem Aufbau von Vertrauen.

Vielen Dank

Die Sitzung an sich war etas skurril. 5 Blockchain Salespeople richteten Förderungsforderungen an die Regierung, die auch bei den Nachfragen niemals kritisch oder reflektierend war sondern nur nach mehr magischen Erfolgsstories fragte. Blockchain Nutzung steht ja auch im Koalitionsvertrag und ist daher Staatsräson, no matter what. Unerwartet war aber wie ähnlich die Grünen und die FDP argumentierten … andererseits auch wieder nicht soo unerwartet.

Die Statements übertrafen sich mit jedem weiteren Experten an Extravaganz. Erst war es das übliche Blockchain-löst-alle-Probleme-Ding, das man 2017 so auf der Internationalen Ebene gesehen hat und nun in Deutschland kommt. Dann wurde Blockchain zur “Digitalisierung 2.0” erklärt, die irgendwie das Internet ersetzt und auch irgendwie die Marktmacht von Plattformen bricht – es erklärte nur niemand so recht wie eigentlich. Schlussendlich wurde die Erfindung der Blockchain gleichgesetzt mit der Erfindung der Schrift. Wir sehen, man blieb sehr auf dem Teppich 😉

Sonst waren es die üblichen Beispiele: Mit Blockchain gibts endlich Tracking&Tracing von Warenflüssen (wie die Logistikfirmen das vor Blockchain gemacht haben, ist mir schleierhaft, Magie vielleicht?) und Datenaustausch. Dass diese Daten irgendwie Standardisiert werden müssen und bisher Schnittstellen immer daran scheiterten war auch nicht so relevant. 

Der wirkliche Kicker war eigentlich die Forderung nach “Sandboxes” – wie sie Singapur anbietet. Die Regierung nickte und freute sich über den Arbeitsauftrag. Aber was heißt das? Als Sandbox bezeichnet die Blockchain Community einen “rechtsfreien Raum”. Ihnen ist schon klar, dass sie personenbezogene Daten nicht DSGVO konform speichern können und auch vielen anderen gesetzlichen Pflichten nicht nachkommen können, also soll Deutschland ihnen erlauben, diese Anforderungen für Spielwiesen außer Kraft zu setzen. Sportliche Forderung zu der es irritierenderweise keine Gegenrede oder Nachfrage gab. Aber wenn das ein undemokratischer und die Menschenrechte sportlich auslegender Staat wie Singapur macht, dann muss das in Europa ja auch das richtige sein. 

Es war eine lustige Erfahrung, ich hätte mir aber etwas mehr kritische Nachfrage durch die Abgeordneten erwartet. Aber es schien eher darum zu gehen, die bestehende Policy durch Experten, die alle ein persönliches Interesse an einer massiven Förderung haben, zu legitimieren. 

Der offizielle Bericht ist auf den Seiten des Bundestages einsehbar, der Mitschnitt dürfte irgendwann in der Mediathek landen.

Posts for Wednesday, November 21, 2018

Ein neues Netzwerk

Ich bin im Netz bisher meist alleine unterwegs gewesen. Das hat diverse Vorteile – man muss sich nicht wegen aller Details abstimmen – aber es schränkt natürlich auch ein, was man erreichen kann.

Während ich mich mit IT Zeugs technisch sehr gut auskenne und ich auch in politischen Fragen ganz okay aufgestellt bin, so gibt es für viele Fragen im Kontext der Digitalisierung (und auch in anderen Kontexten) immer wieder Fragen bei denen ich alleine nicht weiterkomme oder mir einfach der Zugriff auf Experten fehlt.

Manchmal hat man im Leben aber auch Glück. Vor fast anderthalb Jahren bekam ich – nachdem ich auf Twitter mal wieder das Leben als Einzelkämpfer moniert hatte – eine DM auf Twitter. Die DM Gruppe wurde erweitert, es gab Skype Calls und Retreats an der Ostsee und heute, mehr als ein Jahr später, startet unser neues Baby:

The Otherwise Network 

The Otherwise Network ist ein Netzwerk aus Menschen, die einerseits alle besondere Fachexpertise in diversen Domänen mitbringen, die andererseits aber auch alle den Willen haben, die Digitalisierung, die technosoziale Entwicklung der Welt kritisch aber trotzdem optimistisch zu begleiten. Nicht als ein Netzwerk aus Individualist*innen sondern als transdisziplinäre Verbindung aus Menschen, die sich mit Technologie und Gesellschaft gemeinsam beschäftigen. Lösungen suchen für aktuelle Probleme. Regulatorische Herausforderungen gestalten wollen. Und vor allem jenseits von akademischen Elfenbeintürmen und exkludierender Fachsprache mit den Menschen über die laufenden und kommenden Veränderungen reden möchten.

Das Otherwise Network ist noch jung und welchen Weg genau es einschlagen wird, welche Publikations- und Veranstaltungsformen es entwickeln und pflegen wird steht noch nicht fest. Aber wir haben Seitenweise Ideen und Themen, an denen wir alle arbeiten wollen. 

Man kann auf vielen Wegen mit uns in Kontakt treten, am einfachsten sind wahrscheinlich Twitter oder Facebook. Es gibt auch einen Eventkalender, in dem alle Veranstaltungen an denen eine oder einer von uns teilnimmt oder die wir ausrichten.

Ich freue mich auf die kommenden Monate und hoffentlich Jahre auf die Arbeit in einem wahnsinnig inspirierenden Team. 

avatar

Robotic stereotomy with stone diamond wire-cutting

Stereotomy in stone cutting can result in material wastage, and when assembled, tend to not be able to cantilever well. This new technique cuts a wave-joint in a block with a diamond wire that allows stone to interlock and cantilever with minimal material wastage. - for the full article please visit the website.

Posts for Saturday, November 17, 2018

6 core falsehoods about the digital sphere

A few days ago I spend my lunch break writing a short Twitter thread pointing out the core falsehoods people (and I include experts in this) hold about tech and the digital sphere. But I felt it might be useful to elaborate on these points a little more given the very broad strokes that Twitter’s character limit forced me to paint the situation with.

I call the following 6 ideas “core falsehoods” because they are not held and argued by just one specific stakeholder group: It’s not “what technologists believe” or “what technology sceptics and critics believe” or “what politicians, the general public or journalists believe” but a set of ideas argued by key figures in each of the relevant social and political groups. Ideas that tech evangelists and the most harsh critics do (at least to a significant degree) share. 

Identifying these beliefs is especially relevant today. Governments, activists, corporations and other entities are in a race towards finding the right way to regulate technical systems and the Internet deciding how “AI” (we’ll come to that term later) can be deployed and what it’s requirements are, doing all kinds of panels and debates on “algorithms” (often without a clear definition what specifically that term is supposed to reference in that specific case) and analyzing terms such as “fake news” to death hoping to milk them for meaning. 

And I’m not at all saying that these discussions are irrelevant or not worth having. I just wonder whether they might be more goal-oriented by shedding old and dearly loved (but sadly wrong) ideas about the digital sphere. So here we go. Quick remark for people who saw the Twitter thread: The falsehoods are the same, the explanation is replaced with a longer, more detailed text.

1) “The application of ethics can be operationalized at scale and in a generic form.”

Whether it’s about self-driving cars or automated decision making systems (basically discrimination machines) or “AI” the current topic du jour is to argue for an operationalization of ethics. 

Operationalizing ethics means translating abstract rules and models of (good) behavior into computable, deterministic and supposedly “objective” rules. These rules can then be implemented in code and therefore – supposedly – peer reviewed and checked for bugs making sure that the algorithm or “AI” or robot or whatever is being looked at behaves “ethically”.

But that is a myth. If we look at current approaches like the MIT’s “moral machine” we see that approach failing gloriously. We either end up with clueless, racist results like for example MIT’s recent self-driving cars study  or solutions that just don’t perform given real world circumstances.

The idea that ethics can be put into little rulesets might work in video games where characters might get “good person points” for making “the right decision” but in the real world the application of ethics isn’t as simple as that.

Even given the same ethical codices people with different backgrounds and personal situations will make radically different choices without one of them being necessarily better or worse than the other. Applying ethics is a social practice deeply rooted in the history and mindset of the community an individual comes from. Look at Immanuel Kant who is thought of as an important moral philosopher who was racist to a degree that would probably make him unelectable even in Texas. Sure he thought that human beings should be treated well, he just had very different ideas of who is a human being and who isn’t. 

Trying to break down complex ethical decisions to scorecards or rules that then get applied to “the world” isn’t treating ethics as the complex social construct that it is. Or it just gets racist by implying that one perspective (usually the perspective of rich white people) is “the default”. That this idea also mistakes the map for the territory (as in: applying rules to a super reduced model of the world will make decisions affecting the infinitely more complex real world somehow magically ethical). 

Applying ethics is actually more complex than video games make it look.

2) “Data generates truth and if it doesn’t you just need more/better data.”

Many current discussions focus on bias in data sets. And that is a very important realization that should inform every decision that is made based on data: No data set is “neutral” or “objective”. A set of data is always influenced – even if just subtly – by the implicit assumptions, dogmas and biases the social structure defining it live by.

But whether it’s people trying to save their precious data crunching businesses or journalists and activists casting light on the implicit racism, classism or whatever kind of discrimination you can think of, many people seem to think that “yes, right now our data sets are bad, we just need to fix them”.

That could mean adding more data to a set to make the system perform “better”: Adding diverse faces to image recognition algorithms for example or adding more women to medical data sets. 

Sometimes it means changing the data or it’s structure, changing a data type, removing certain information carrying bias or adding other vectors to make the model more “realistic”. Like for example changing a “male/female” gender selector to a free form text field.  

But while these actions can sometimes limit certain specific biases or vectors of discrimination they never completely get rid of it and can sometimes even create new, implicit structures of discrimination. The real question isn’t how to get bias out of data sets but how to make a bias clear and obvious. How to communicate in which ways a data set is problematic.

People want to “fix” data sets to make them more “true”. Truth is a complex idea and most people’s idea what truth is doesn’t really survive contact with a few unpleasant questions. But why is the idea of truth so connected to data sets? Why do we believe that “the truth is in the data” and we just have to look (or make machines look) intensely to find some truth in there?

This is a mix of false idea of science and how truth is generated (as well as an unfounded belief that abstract and objective truth [as if that existed] would change public discourse). “Truth” (as objective and abstract truth) is a quasi-religious term deeply connected to ethical “good” but just as you won’t find god in your data (the singularitarians might disagree but they are crackpots) you also won’t find that kind of truth in there. You might find your truth but that’s different. I could write more about truth but this would distract from the actual point here, add a comment if you would be interested in more on that.

3) “We will have human-grade AI in 20 years”

We’ve heard that exact sentence for 50 years now. “AI” is always just around the corner and current developments are always very promising. But it never comes.

This has many reasons one of them being that it’s really hard to know what intelligence actually is. After having run against the wall trying to build AI based on rules or top-down models of the world (people still rememberthe semantic web that was supposed to help in that regard?) today the bottom up approach is getting a lot of press: Look what Google’s AI can do, it craps dog-ish features all over your picture. What a brilliant and creative move!

But the currently available technologies like neural nets aren’t even close to any form of what we can reasonably call intelligence. Not even dog-like intelligence and for sure nothing even close to anything that could become human-level intelligent. They are systems of automated statistics that get trained and fitted to ultra-specific use-cases and end up falling apart as soon as the input gets a little funky.

The “intelligence” in those systems is what the spectator imbues the system with. People love seeing intellect in objects or structures in the world and as human being being able to create intelligence is an almost religious act. But that’s projection of hopes and dreams, not what’s there. 

Self-driving cars can’t deal with people on the streets because they are too “erratic”. Yes, but people are on the streets. That’s what streets are for.

If you’d translate the weights and factors in a neural net to a set of equations that can calculate whether a cat-like object is on a given picture we’d probably be impressed. We wouldn’t call the equations intelligent though. 

4) “Algorithmic discrimination is worse than discrimination by human beings.”

This is a very popular tech criticism fallacy. There is a lot of analyses about automated decision making of software systems (hidden behind a magic understanding of “algorithms”): Software decides who gets which healthcare, software decides who gets unemployment benefits, etc. You could even argue that the question whether drones are allowed to kill or not falls into the same category.

These stories come up as tech criticism: How can we have software make these integral, potentially life-threatening decisions? How can we give this power over – literally – life and death to machines?

In reality what happens is that existing, formalized, structured patterns of discrimination, violence and power are being automated through software systems: Yes a machine makes the call not to give you health care very quickly when the person who used to make that call using the same criteria and formal decision trees used to take weeks to come to the same conclusion.

And there is something to say about the way people targeted by that kind of violence could try to talk to a human being on the other side and get them to change their minds but in reality that has very little if any effect: The person “making the decision” is not making the decision at all, it’s just going through the established processes and communicates the result. The “deciders” are more often than not just the friendly – or not so friendly – faces for systemic violence. But you can be sure that they are sorry (they really are!) and probably depressed.

Making discrimination quicker through automation is not the issue. You could even argue that code might be auditable to detect bias and discrimination (I wouldn’t given how currently audits rarely do anything because of “trade secrets”).

The issues are discrimination and violence. Talking about it as a tech problem dilutes the issue and implicitly accepts the actual problems.

5) “Contracts or laws can be expressed in code and their application standardized that way.”

Not just Blockchain Stans believe that contracts should be turned into code (“smart contracts”) but even privacy activists drunk on GDPR and many other people in tech think that the law (usually the “good parts”) can be expressed in standardized, formal ways that can be automatically evaluated. (Ask people about data ownership and these things often come up). The hope is to create “fair”, transparent, objective systems.  

The problem is that that’s neither how the law nor how contracts work. Whether it’s about the law or contracts, obviously people are trying to write them as precise, as waterproof as possible, defining terms and conditions, explicitly modeling and referencing edge-cases and in general trying to predict the future and everything that it might bring.

If that worked as techy people believe, we would need way fewer lawyers and courts. But we do. Cause reality doesn’t map neatly onto the models and systems that we’ve come up with.

Scientists and experts have tried for decades to put supposedly clear-cut parts of law (tax law for example) into code and still those projects failed. Because at some point someone needs to make decisions, interpret reality and apply the law as it was intended to be applied (that’s why laws always come with reasoning to help making these decisions). The law isn’t just about symbols that are being processed by the letter, its strength is its adaptability to the real world by having people, lawyers, judges make decisions. That’s why very old laws often still somewhat work.

You need someone smarter than code to do the heavy lifting of abstracting the world to something that code can actually operate on. And software can’t do that (see point 3 of this list).

6) “Full autonomy of individuals is the high point of digital freedom.”

A lot of talk about the Internet deals with Freedom. Freedom from tyrannic laws, freedom from evil corporations and governments and the restrictions they force upon us.

Open source often comes into play here: You can run your own email-server or social networking node or webserver and never every have to rely on anyone. Because you don’t want to “be the product” and the only way not to be is autonomy.

Autonomy often is framed as an expression of negative freedom: Freedom from restriction or force or violence. The autonomous individual making their own decisions.

But in reality this understanding of autonomy is mostly an expression of privilege: The privilege of a tech education, the privilege to have enough time to keep up with tech to run one’s own services, the privilege to have enough resources (servers, hardware, etc.) to run your own stuff.

It’s also strongly normative and judgmental: If you just don’t want to spend your time running your own server you are suddenly stupid or clueless. But not having to do everything by yourself is a key part of what I’d call freedom: The freedom to choose how and on what to spend one’s time. A freedom that is a lot more about connectedness and community than about individualism.

What kind of freedom forces every user of the Internet to be a programmer or a “product” or “potential victim”? What kind of freedom values tech knowledge over everything else?

The libertarian sources of the Internet ideology show their problematic results here and sticking to that understanding of the freedom that the Internet can bring limits the Internet to a toy at best and a continuation of existing structural violence at worst.

Freedom isn’t everybody struggling for themselves. At least not if it’s supposed to mean anything.

If you liked this text and want to help me out you can buy me a drink on paypal or Ko-Fi. It’s very much appreciated.

Header image: Wrong by AliceNWondrlnd (2008-03-08 22:22:19)

Posts for Wednesday, November 14, 2018

avatar

Bash windows in to survive follow up

Looking again at the Stack Overflow Developer Survey Results. It is possible to calculate a trend for “Developed for Platform” category. ‘win’ for Windows Desktop or server depending on year.

| Year | other|  win |
|------|------|------|
| 2013 | 38.6 | 61.4 |
| 2014 | 41.2 | 58.8 |
| 2015 | 42.0 | 58.0 |
| 2016 | 47.9 | 52.1 |
| 2017 | 59.0 | 41.0 |
| 2018 | 64.8 | 35.2 |

In a five years almost half of the share is gone.

The bash on windows improvement allows more developers to use Windows while developing for other platforms. At the same time more Microsoft things are being ported to linux.

NTFS is still the biggest gripe. Along with very slow search and system updates.

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

<g:plusone size="medium"></g:plusone>

<script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script> <script src="http://www.reddit.com/buttonlite.js?i=2&amp;styled=off&amp;url=http://andreasaronsson.github.io/2018/11/14/bash-windows-in-to-survive-follow-up&amp;newwindow=1" type="text/javascript"></script>

Posts for Monday, November 12, 2018

How to display the times in various time zones from the LXDE Panel

I normally check the time in the time zone of family, friends and colleagues who live in various places around the World before I call or message them. In KDE Plasma on my laptop it is possible to configure the digital clock widget to display the times in a list of time zones of my […]

Posts for Wednesday, October 31, 2018

Configure a keyboard shortcut in Lubuntu 18.04 to take a screenshot of a screen region

As installed, Lubuntu 18.04 is configured so that the user can capture a screenshot of the whole screen by pressing the PrtScrn key, and a screenshot of the active window by pressing Alt+PrtScrn. However, no keyboard shortcut is configured to enable the user to capture a user-specified region of the screen. Now, as it happens, […]

Posts for Sunday, October 28, 2018

avatar

Panblog, a new, minimal, plaintext blog system

Panblog is a minimalist blog system. You write articles in Markdown with metadata in YAML, and Pandoc converts your articles to HTML. The entire system of Panblog is a 73 line Makefile and 14 line lua filter, excluding HTML and Atom feed templates. - for the full article please visit the website.

Posts for Thursday, October 25, 2018

About Microsoft acquiring github

That's right, you can read about here.


I was on the verge to migrate my repos to gitlab, now I have another good reason to do it. My new git repo is available here.

Planet Larry is not officially affiliated with Gentoo Linux. Original artwork and logos copyright Gentoo Foundation.