2x1=10

because numbers are people, too
Persönliches
Fotografie
Programmierung
    • Ubuntu/NetworkManager: Shell-Skript bei Verbindung mit Netzwerk ausführen

      Das WLAN-Net­zw­erk unser­er Hochschule ist zwar offen, erfordert bei Verbindung aber einen Login auf ein­er zwis­chengeschal­teten Seite. Das ist extrem nervig, wenn manche Pro­gramme bei Verbindung ver­suchen, Dat­en herun­terzu­laden und dann an ungülti­gen (selb­st-sig­nierten) SSL-Zer­ti­fikat­en scheit­ern.

      Kurzum: Ein Skript muss her, das mich bei Verbindung mit dem Uninetz automa­tisch authen­tisiert.
      Ubun­tu 10.10 ver­wen­det Net­work­Man­ag­er für die Ver­wal­tung der Net­zw­erke. Ein man NetworkManager zeigt:

      Net­work­Man­ag­er will exe­cute scripts in the /etc/NetworkManager/dispatcher.d direc­to­ry in alpha­bet­i­cal order in response to net­work events. Each script should be (a) a reg­u­lar file, (b) owned by root, © not writable by group or oth­er, (d) not set-uid, (e) and exe­cutable by the own­er. Each script receives two argu­ments, the first being the inter­face name of the device just acti­vat­ed, and sec­ond an action.

      Kurzum: Ein Skript in /etc/NetworkManager/dispatcher.d wird aufgerufen, wenn die Verbindung hergestellt wird und bekommt als ersten Para­me­ter das Net­zw­erk­in­ter­face übergeben. Voraus­set­zung: Aus­führbar, gehört root und ist nur durch diesen beschreib­bar.

      Mit­tels Python und dem Http-Mod­ul ist es jet­zt möglich, ein schnelles Login-Skript zusam­men­zuschus­tern.

      #!/usr/bin/env python
      # -*- coding: utf-8 -*-
      
      # Skript kopieren nach /etc/NetworkManager/dispatcher.d/99wlan-login
      
      from httplib2 import Http
      from urllib import urlencode
      import os
      import sys
      
      # Login und Netzwerk-Konfiguration
      network_userid = 'login'
      network_password = 'password'
      network_name = 'UninetzName'
      network_loginpage = 'https://login.hochschule.de/loginskript'
      
      # Parameter testen
      if (len(sys.argv) < 3):
      	print('Aufruf: '+sys.argv&#91;0&#93;+' <interface> up')
      	sys.exit(1)
      
      # Parameter auswerten
      iface = sys.argv[1];
      if not (sys.argv[2] == "up"):
      	sys.exit(1)
      
      # Netzwerknamen testen
      is_uni = 0 == os.system('iwconfig '+iface+' | grep '+network_name)
      if is_uni:
      	h = Http()
      	h.request("http://www.google.de")
      	data = dict(userid=network_userid, password=network_password)
      	resp, content = h.request(network_loginpage, "POST", urlencode(data))
      

      Das ganze Ding dann etwa /etc/NetworkManager/dispatcher.d/99wlan-login nen­nen (Skripte wer­den in alpha­betis­ch­er Rei­hen­folge aus­ge­führt), die Rechte anpassen und der Welt­frieden ste­ht direkt vor der Haustür.
      Oder so.

      April 4th, 2011 GMT +1 von
      Markus
      2011-04-4T13:22:56+01:00 2011-04-4T13:26:47+01:00 · 0 Kommentare
      ubuntu
      Allgemein
      • Git-Beispielkonfiguration

        Die benutzer­spez­i­fis­che, glob­ale Kon­fig­u­ra­tion von Git befind­et sich im Home-Verze­ich­nis eines Nutzers und heißt .gitconfig.
        Um schnell loszule­gen, hier eine Beispielkon­fig­u­ra­tion für getrack­te Kopi­en von Dateien, Zeile­nen­dan­pas­sung, eine glob­ale Datei mit Ignori­er­regeln, VIM als Edi­tor und far­bige Aus­gabe.

        [user]
        	name = Max Mustermann
        	email = max@mustermann.de
        [core]
        	autocrlf = true
        	excludesfile = ~/.gitignore
        	editor = vim
        
        	renames = copies
        [color]
        	diff = auto
        	status = auto
        	interactive = auto
        	branch = auto
        

        Wer will (oder zu faul zum Suchen ist), kann alles eben­falls über die Kom­man­dozeile ein­tra­gen (lassen):

        git config --global user.name "Max Mustermann" 
        git config --global user.email max@mustermann.de
        git config --global color.diff auto
        git config --global color.status auto
        git config --global color.branch auto
        git config --global color.interactive auto
        git config --global diff.renames copies
        git config --global core.excludesfile '~/.gitignore'
        git config --global core.editor 'vim'
        

        Und ab dafür.

        April 2nd, 2011 GMT +1 von
        Markus
        2011-04-2T00:18:04+01:00 2011-04-2T00:18:57+01:00 · 0 Kommentare
        git
        Version Control
        • Git für SVN-Umsteiger

          Eine gute Über­sicht für Git-Neulinge aus dem Sub­ver­sion-Land gibt es hier zu sehen. Da für mich für den direk­ten Quere­in­stieg nur eine Hand­voll der Befehle wichtig waren, hier eine kurze Über­sicht ohne Anspruch auf Voll­ständigkeit.

          git remote add origin http://rechner.net/repository.git
          git remote add mirror git@mirror.org/repository-mirror.git
          
          git pull origin master
          
          git branch experimental
          git checkout experimental
          
          git add neuedatei.txt
          git rm foobar.exe
          git commit -m "Dinge geändert."
          
          git push mirror experimental
          
          git checkout master
          git merge experimental
          

          Was es mit alle­dem auf sich hat und noch einiges mehr, ste­ht in den fol­gen­den Abschnit­ten. Weit­er­lesen »

          April 2nd, 2011 GMT +1 von
          Markus
          2011-04-2T00:03:34+01:00 2011-04-2T21:14:24+01:00 · 0 Kommentare
          git svn
          Version Control
    1. « newer
    2. 1
    3. 2
    4. 3
    5. 4
    6. 5
    7. 6
    8. 7
    9. 8
    10. 9
    • Kategorien

      • .NET
        • ASP.NET
        • Core
        • DNX
      • Allgemein
      • Android
      • Data Science
      • Embedded
      • FPGA
      • Humor
      • Image Processing
      • Kalman Filter
      • Machine Learning
        • Caffe
        • Hidden Markov Models
        • ML Summarized
        • Neural Networks
        • TensorFlow
      • Mapping
      • MATLAB
      • Robotik
      • Rust
      • Signal Processing
      • Tutorial
      • Version Control
    • Neueste Beiträge

      • Summarized: The E-Dimension — Why Machine Learning Doesn’t Work Well for Some Problems?
      • Use your conda environment in Jupyter Notebooks
      • Building OpenCV for Anaconda Python 3
      • Using TensorFlow’s Supervisor with TensorBoard summary groups
      • Getting an image into and out of TensorFlow
    • Kategorien

      .NET Allgemein Android ASP.NET Caffe Core Data Science DNX Embedded FPGA Hidden Markov Models Humor Image Processing Kalman Filter Machine Learning Mapping MATLAB ML Summarized Neural Networks Robotik Rust Signal Processing TensorFlow Tutorial Version Control
    • Tags

      .NET Accelerometer Anaconda Bitmap Bug Canvas CLR docker FPGA FRDM-KL25Z FRDM-KL26Z Freescale git Gyroscope Integration Drift Intent J-Link Linear Programming Linux Magnetometer Matlab Mono Naismith OpenCV Open Intents OpenSDA Optimization Pipistrello Player/Stage PWM Python Sensor Fusion Simulink Spartan 6 svn tensorflow Tilt Compensation TRIAD ubuntu Windows Xilinx Xilinx SDK ZedBoard ZYBO Zynq
    • Letzte Kommetare

      • Lecke Mio bei Frequency-variable PWM generator in Simulink
      • Vaibhav bei Use your conda environment in Jupyter Notebooks
      • newbee bei Frequency-variable PWM generator in Simulink
      • Markus bei Using TensorFlow’s Supervisor with TensorBoard summary groups
      • Toke bei Using TensorFlow’s Supervisor with TensorBoard summary groups
    • Blog durchsuchen

    • März 2021
      M D M D F S S
      « Mrz    
      1234567
      891011121314
      15161718192021
      22232425262728
      293031  
    • Self

      • Find me on GitHub
      • Google+
      • Me on Stack­Ex­change
      • Ye olde blog
    • Meta

      • Anmelden
      • Beitrags-Feed (RSS)
      • Kommentare als RSS
      • WordPress.org
    (Generiert in 0,569 Sekunden)

    Zurück nach oben.