MNH Gedankensprudel

nicht nur ein stilles Wasser

mysql root Password vergessen und jetzt?

15.04.16 (Allgemein)

Folgendes Kurzes Tutorial geht davon aus das ihr screen unter Linux benutzt und zwei offene Fenster habt.

beendet euren MySQL Service z.B. mit

oder

Danach starten wir MySQL mittels mysqld_safe und schalten die grand Tabellen ab um ohne Passwort auf die Datenbank zuzugreifen

und melden uns als root ohne Passwort auf unserer MySQL Console an.

Im MySQL Terminalprogramm selber updaten wir nun das Passwort mittels dieses Befehls. Tauscht hier NEUESPASSWORT gegen euer neues Passwort aus.

danach nur noch im zweiten screen Fenster MySQL wieder beenden mittels

Hier könnt ihr bereits euer neues Passwort eingeben (NEUESPASSWORT).

Jetzt nur noch die Dienste wieder normal starten

oder

Und schon könnt ihr euch wieder einloggen.

 

Keine Kommentare »

Ich und Unitymedia…

13.03.16 (Allgemein)

Dieser Artikel dient erstmal hauptsächlich meinen Persönlichen Frustabbau aber auch als Warnung um nicht in den Kreis der leid genossenen zu Kommen.

Alles fing an einen schönen Mittwoch an als ich tatsächlich mal meinen Flyer von Unitymedia Beachtung schenkte: 1,99€ mehr im Monat dafür doppelte Bandbreite. Alleine die 6 Mbits Upload klangen verführerisch momentan gurke ich mit 2,5 Mbits rum. Der Rest mit 120 Mbits surfen klang auch nach einen „nice to have“. Da ich ein verwöhnter Altkunde bin der sich zum Glück nicht mit Gängelung wie DS-Lite oder schlechter Hardware (habe eine fritzbox 6340) rumärgern musste und sich über echten Dualstack mit ipv4 und ipv6 freut, mussten natürlich vorher Details geklärt:
werden.

Vorher natürlich schon gegoogelt… Ok die 6360 gibt es zu 120er Businesstarif und meine ist auch noch in der liste bis 200 Mbits sollte doch klappen.

Also der griff zum Telefon,

„behalte ich den auch meinen ipv4 (dualstack)“
Antwort: „JA Altkunden eigentlich immer“
„kann ich auch meine Fritz!box weiter benutzen“
Antwort: „JA, wahrscheinlich können sie ihren neuen Tarif sogar schon heute nutzen“

Von dieser Auskunft sehr erfreut, natürlich gleich abgeschlossen.

Am nächsten tag Tarif hat sich nicht geändert, dafür im Kundenmenü eine Paketankündigung. Ok mal eine Mail dorthin was das ist, mit vermerk auf die Zusicherung „meiner“* Fritzbox

Was kommt am Freitag? Eine „Connect Box“ misstrauisch das ding mal begutachtet und ohne an das Kabelnetz zu hängen mal die Oberfläche begutachtet. Ok könnte was werden ich sehe hier einen Modemodus und wenn ich meine Dualstack behalte, kann ich die wohl doch gebrauchen (Modem ist mir eh lieber). Ok mutiger schritt es ist Freitag Nachmittag ich hänge sie trotzdem ans Netz. Box blinkt und scheint irgendwann damit auch fertig zu sein.

Laptop test weise dran und die Ernüchterung: Vorher vorgenommen Einstellung natürlich weg unten auch die tolle Nachricht das sie auf DSlite läuft.

Also mal wieder Support angerufen dort hin und her nein das sollte nicht pasieren beim router könnten sie nichts machen mich aber wenigstens auf Duralsack wieder umstellen.

Nach dem ich also endlich bei einen Techniker in der Leitung war  erklärte der mir das die Firmware der Conectbox das garnicht könnte die läuft softwareseitig nur mit DSlite. Und stellte mich zu einer Dame weiter die sich mit meinen Belangen beschäftigen sollte. Der erklärte ich mein Anliegen, natürlich war ich nach so einen Martyrium auch nicht mehr der Höflichste, Und verwies auch mehrfach auf mein Telefonat mit den Vertragsabschluss (die mal nebenbei gesagt eigentlich bindend sind ansonsten kommt gar kein gültiger Vertrag zu stande naja zumindestens nach Fristverstreich der Nachbesserung…) Das passte der Dame wohl überhaut nicht und erklärte mir das ich als Privatperson überhaupt keine ipv4 bräuchte ich einen Buissnesvertragabschließen müsste und wenn ich eine Fritzbox möchte ich für 5€ mehr im Monat eine Telefon Connfort Option bräuchte. das härteste sie legte nach einer knappen Rückfrage ob ich das verstanden hätte einfach auf.

Also nochmal anrufen irgendjemand wird einen ja helfen können. Diesmal tatsächlich an jemanden kompetenteren geraten der mir wenigstens anbot meine alten Vertragsbedingungen wiederherzustellen, ich solle einfach meine Fritz box wieder anschließen und er leite alles weitere ein.

Nun sehr genervt dafür aber mit einen vermeintlich wieder funktionierenden*(dazu später mehr) Dual stack Anschluss wen auch wieder mit nur 50/2.5mbit also mal das gemacht was alle foren so empfehlen seinen Frust auf Facebook gepostet:

https://m.facebook.com/Unitymedia/posts/1137595382925523

*zwischenzeitlich stellte sich heraus das mein Internet zwar wieder geht und ich keine zwangsdrossel mehr über mein Handymodem brauche aber das Telefon nicht. den das wurde vergessen zu provisionieren.

wie es weitergeht und ging packe ich in einen zweiten Post….

Keine Kommentare »

praktische regex für netbeans und php

06.01.16 (Allgemein)

Das Suchen und ersetzen Feld in Netbeans (STRG+H) ist sehr praktisch vorallem mit regex

ein par regex meiner täglichen arbeit sollen hier nun veröffentlicht werden für alle die sie gebrauchen können oder damit ich sie selber nicht vergesse:

Alte array() schreibweise in php > 5.4 „[]“ Arrays

Find What: array\(([^\(\)]*)\)
Replace With: [$1]
leider muss dieser mehrmals angewendet werden bei Verschachtelungen trotzdem bekommt man damit in nu eine Konfigurationsdatei die deutlich kleiner und aufgeräumter ist.

Keine Kommentare »

Raw code in pilight gui mit eigenen Protokoll 2

01.10.15 (Allgemein)

Nun komm der in diesen Beitrag bereits versprochene zweite Teil…

On Off SoOONY DAS GEHT*

Ganz so arg müssen wir uns nicht ärgern. Doch leider wird es auch nicht mit einen einfachen on/off funktionieren. Damit ihr nicht noch ZWEIHUNDERT PULS bekommt mache ich mal weiter.

nach einen ausführen der install.sh sollte das Protokoll zwar schon auswählbar und kompilierbar sein doch ein:

$ sudo pilight-send -H
Usage: pilight-send -p protocol [options]
-H --help display this message
-V --version display version
-p --protocol=protocol the protocol that you want to control
-S --server=x.x.x.x connect to server address
-P --port=xxxx connect to server port
-F --settings settings file
The supported protocols are:
brennenstuhl Brennenstuhl Comfort
byebyestandbye Bye Bye Standbye Switches
clarus_switch Clarus Switches
cleverwatts Cleverwatts Switches
coco_switch CoCo Technologies Switches
cogex Cogex Switches
dio_switch D-IO Switches
elro_ad Elro Home Easy Advanced Switches
elro_hc Elro Home Control Switches
elro_he Elro Home Easy Switches
generic_dimmer Generic Dimmers
generic_screen Generic Screens
generic_switch Generic Switches
generic_weather Generic Weather Stations
home_easy_old Old Home Easy Switches
impuls Impuls Switches
intertechno_old Old Intertechno Switches
intertechno_switch Intertechno Switches
kaku_dimmer KlikAanKlikUit Dimmers
kaku_screen KlikAanKlikUit Screens
kaku_screen_old Old KlikAanKlikUit Screens
kaku_switch KlikAanKlikUit Switches
kaku_switch_old Old KlikAanKlikUit Switches
nexa_switch Nexa Switches
openweathermap Open Weather Map API
pollin Pollin Switches
program Start / Stop / State of a program
quigg_switch Quigg Switches
raw Raw Codes
relay GPIO Connected Relays
rev1_switch Rev Switches v1
rev2_switch Rev Switches v2
rev3_switch Rev Switches v3
selectremote SelectRemote Switches
silvercrest Silvercrest Switches
unitech Unitech Switches
wunderground Weather Underground API
x10 x10 based devices

liefert leider noch nicht den gewünschten erfolg, wie wir unter „The supported protocols are“ sehen.

Quelltext

Fangen wir also mal an, uns den Quelltext anzuschauen. Also Zurück zu bhc9938d.c und dort die Init Funktion. Den dort müssen wir noch eigne dinge bekanntgeben.

beschäftigen wir uns zunächst mit printHelp hier setzen wir einen Funktionszeiger in diesen Fall auf eine Funktion die bhc9938dPrintHelp heißt. Ich würde hier ein ähnliches Namensschema vorschlagen also protokollnameFunktion um Namenskonflikte zu vermeiden.
mit einer pasenden Methode sind wir also schon so weit Hilfetexte auszugeben:

was noch fehlt sind die Parameter zum steuern und natürlich das Senden dafür ergänzen wir wieder die Initfunktion

 

options_add rufe ich hier gleich dreimal auf, einmal für unit eine einfache numerische ID in meinen Fall von 1-3, und jeweils einmal für on und off.
Desweiteren noch ein Pointer auf die bhc9938dCreateCode funktion die dem Protokoll das eigentliche leben Einhaucht.
Der Komplette Kode schaut bei mir dann so aus:

 

 

 

 

 

 

*Mus man gesehen haben um das zu verstehen

Keine Kommentare »

Raw code in pilight gui mit eigenen Protokoll

23.01.15 (Allgemein)

Pilight sieht es offensichtlich nicht vor Rawcode von unbekannten Protokollen in der GUI zuzulassen, jedenfalls  gibt es laut Docu keine config dafür.

Dafür aber eine Anleitung wie man seine eigenen Protokolle implementieren kann.

Als erstes mal die Umgebung

Mein Umfeld:

Ich arbeite in diesen Beispiel mit Raspbian unter den Benutzer pi. Als Entwiklungsmaschine dient mir mein Windows 8.1 PC mit Netbeans 8.0.2.

Nachtrag: Ich gehe hier im Tutorial von der manuellen Installation aus sprich über das Git Repository dies ist auch notwendig um an den Sourcecode zu kommen.  Je nach dem unter welchen Beutzer ihr arbeitet oder wohin ihr die Dateien clont können die Pfade anderst sein

Entwicklungsumgebung/Editor:

Ich benutze bereits für meine Webprojekte Netbeans dort habe ich einfach die C++ Plugins installiert und schon kann es losgehen.
Ihr könnt natürlich eure favorisierte IDE oder Editor (z.B. Notepad++) verwenden.

Dateizugriff:

Um schnell kompelieren zu können belasse ich die Dateien auf dem rasperry pi und Kompeliere gleich dort, so muss man sich nicht mit Einstellungen für die passende Plattform rumärgern. Dazu mounte ich per sftp mein home Verzeichnis auf meine Entwicklungsmaschine. Das geht in Linux mit „Bordmitteln“ für Windos nutze ich momentan „SFTP Net Mount Free“. Natürlich könnt ihr das git repositorry aber auch auf die entwicklungs Maschine clonen.

Auf geht´s

So jetzt haben wir also was zum Editieren und Zugriff auf die Dateien dann kann es ja jetzt losgehen.
Als erstes navigieren wir zum Verzeichnis libs\protocols und erstellen dort zwei Dateien mit unseren Protokollnamen einmal „Protokollnamen.h“ und „Protokollnamen.c“.
Bei mir sieht es folgender masen aus:

~/pilight/libs/protocols/bhc9938d.h
~/pilight/libs/protocols/bhc9938d.c
          Pfad           Datein. Endung

Diese sollten auch noch gefüllt werden das geschieht jetzt streng nach Beispiel:

Dabei habe ich den Quellcode einfach aus den Beispiel übernommen und das Dummy Protokoll einfach gegen meinen eigenen Protokoll Namen sprich BHC9938D getauscht. Dabei immer schön auf Groß,- und Kleinschreibung achten und am besten den Formatierungsstiel beibehalten.
Damit das ganze mitcompeliert wird müssen wir noch zwei einträge machen:
Protokoll „definieren“ in CMakeConfig.txt:

Nun suchen wir in der Datei „CMakeLists.txt“ nach if(${PROTOCOL  bei mir ab Zeile 159 und fügen kurz davor unseren eigen Absatz ein um die Source Files bekannt zu machen:

Nach diesen beiden schritten kann das Protokoll zur Instillation ausgewählt werden

Probieren geht über studieren

Nun sind wir bereit das ganze zu testen.
Im folgenden gehe ich aus das ihr piligt schon mal erfolgreich installiert/compiliert habt wenn nicht könnt ihr gleich zum Punkt Erstellen wechseln.

Sicherheit geht vor

Als erstes fertigen wir ein Backup von /etc/piligh insbesondere unsere config.json wenn dort schon Geräte für die Weboberfläche eingetragen sind.

Reinemachen

Zuerst mal mit sudo service pilight stop den Service beenden. Danach sauber deinstallieren.
Ein ./setup.sh help bringt uns folgende Hilfe zu tage:

also erstmal mit sudo ./setup.sh uninstall deinstallieren und danach mit sudo ./setup.sh clean saubermachen

Erstellen

nun einfach sudo ./setup.sh ausführen un ihr soltet folgende bild erhalten

Installation von pilight

Installation von pilight

Weiter geht es dann im Zeiten teil….

7 Kommentare »

MySQLTabelle anhand des Spaltennamens finden

18.09.13 (Allgemein)

Manchmal kommt man auf die seltsamsten Ideen z.B. das es möglich sein müsste zu einer Spalte die Tabelle zu finden.

So brauchte ich z.b. Den Namen zu einer Spalte einer unbekannten Tabelle beim Debuggen eines fremden Projekt.

Nach etwas googlen ist folgender Code dabei raus gekommen:

Dabei ist bei COLUMN_NAME  der Wert „YOURSEARCHCOLUMN“ durch den Gewünschten Spaltennamen zu ersetzen.

Keine Kommentare »

Kostenlos profesionell im Web Teil 1

03.06.13 (Allgemein)

Teil 1 Hostersuche

Heute widme ich mich mal den Einsteigern unter euch häufig werde ich gefragt wie man seine eigen Homepage erstellt was ist des beste Hoster, muss ich wirklich sooo viel zahlen?

Als erstes die Letzte Frage der Rest Kommt in einen Anderen Teil:

….muss ich wirklich sooo viel zahlen?

Nein!
Natürlich sind „die Größen nicht die Günstigsten“ jahrelange Erfahrung und eine gefestigte Marktposition erlauben 1&1, Strato und Co dieses Preisniveau. Adlerdings gibt es auch kleine Hoster bei denen der Service weniger kostet oder gar Kostenlos ist.

Eine Kleine Auswahl liste ich nun hier auf:

  • bplaced.net  Kostenloser Webspace mit FTP, MYSQL, und PHP immer in sehr aktueller Form.

– Keine Sockets (braucht man um Verbindung zu anderen Seiten aufzubauen z.B. für Updates).
+ Deutsche Seite deutscher Support.
+ Software immer aktuell.
# Wenig Werbung nur im Login und auf den Fehlerseiten.

Keine Kommentare »

Mehrzeiliges Suchen und ersetzen in Projekten mit Notepad++

21.01.13 (Allgemein)

 

Fangen wir also an:

Man öffne eine Datei mit dem Störenden Inhalt in Notepad++ …

Mehrzeiliges Suchen und ersetzen in Projekten

und markiere nun den Absatz der der uns stört:

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 2

Danach verwendet man das suchen und ersetzen Tool am einfachsten durch die Tastenkombination [STRG] + [H].

Nun sehen wir unseren selektierten Text in der “Suche nach” Textbox.

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 3

Jetzt wählen wir noch den Tab “In Dateien Suchen” und klicken als
erstes auf “Ordner der akt. Datei” und da wir ja das gesamte Projekt
durchsuchen möchten auf “Unterverzeichnisse”.

Selbstverständlich könnt ihr den passenden Pfad auch manuell heraussuchen.

Den Suchmodus stellt man am besten auf “Normal” damit keine ungewollten Ersetzungen stattfinden.

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 4

Und am ende habt ihr erfolgreich euer Projekt von den ungewollten
Einträgen befreit und das trotz Leerzeichen Tabs und Zeilenumbrüche.

Beachtet aber bitte das immer genau dieser String gesucht
wird, sprich es klappt nicht wenn ein Leerzeichen mehr oder weniger oder
sonst eine Kleinigkeit anders ist!

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 5

 

Keine Kommentare »

PHP wir spielen mit Referenzen

11.02.12 (Tutorial´s)

Wer mal mit C oder C++ gearbeitet hat kennt ein ähnliches Modell bereits die Pointer. Allerdings da PHP ja eine Scriptsprache ist stellt es keine Speicheradressen zur Verfügung.

Dafür haben wir aber Referenzen die zwar keinen Performance voreilt verschaffen dafür aber einen ähnliche Möglichkeiten zur Manipulation der Variablen bietet (von der Arithmetik mal abgesehen).

ein kleines Beispiel habe ich mal hier zusammengestellt ziel war es eine Wrapperklasse für Strings zu erstellen .

2 Kommentare »

Merksatz für CSS Deklarationen für mehrere Seiten

11.01.12 (Allgemein)

In CSS gibt es viele Deklarationen die mehrere Werte nutzen, die sich auf unterschiedlichen Seiten des Boxmodells beziehen z.B.:

•    margin
•    padding
•    border-width

Da ich nun auch gerne vergesse welcher Wert nun zu welcher Seite gehört, habe ich mal einen kleinen Merksatz mit Anschauungsmaterial erstellt.

Am Anfang das einfachste ein (1) Wert.

Da nur ein wert zu Verfügung steht ist dieser für alle Seiten gleich
Also ist:

eine vereinfachte Darstellung von:

Nun kommen wir schon zu zwei (2) Werten.

2 Werte in der CSS Deklaration
Der Trick funktioniert wen wir oben beginnen zu zählen und dann  im Uhrzeigersinn weiterzählen. Somit würde oben Wert Eins und Rechts Wert Zwei Stehen.
Doch wie belege ich nun die restlichen zwei Seiten?
Dieses ist ganz einfach ich nehme einfach immer die gegenüberliegende Seite, so ergibt sich ganz automatisch:

  1. Wert Eins für Oben und Unten
  2. Wert Zwei Rechts und Links

Der Trick funktioniert übrigens auch für drei Werte


Allerdings bleibt nach dem Weiterzählen nur die linke Seite ohne Wert also kann auch nur darauf gespiegelt werden:

  1. Wert Eins für Oben
  2. Wert Zwei Rechts und Links
  3. Wert Drei für Unten

Als letztes alle vier Werte. Hier muss nicht mehr gespiegelt werden sondern einfach nur gezählt


Somit ergibt sich dann folgendes Bild:

  1. Wert Eins für Oben
  2. Wert Zwei Rechts
  3. Wert Drei für Unten
  4. Wert Vier für Links

Ich hoffe ich konnte euch mit meinen Tutorial ein wenig helfen.

Keine Kommentare »