DN42 ist ein wunderbares Projekt, das Ihnen ermöglicht, Ihre Fähigkeiten zu entwickeln, ohne Kratzen der BGP Produktumgebung, ohne dass Sie teure Geräte mit denen Ihr Labor Simulationen mit GNS3 zu tun zu haben. Zur gleichen Zeit ist keine reine Laborumgebung wo gibt es keine Probleme der realen Welt. Beteiligen sich mit 1 Knoten im Projekt für etwa ein Jahr. Eines der Probleme im Projekt ist 1:1 mit der realen Welt – Wenn jemand Präfixe angekündigt, die nicht brauchen, um zu erklären. Weil ich faul bin und keine Lust zum Schreiben auf Seite Zeitfilter, Ich dachte, das Problem mit einem einfachen Bash-Skript, die erzeugt einer Präfix-Liste mit Namen dn42 und gießen Sie die gültigen Präfixe.

#!/bin/bash</pre>
vtysh -c 'conf t' -c "no ip prefix-list dn42"; #drop old prefix list

while read pl
do
vtysh -c 'conf t' -c "$pl"; #insert prefix list row by row
done < <(curl -s https://ca.dn42.us/reg/filter.txt | grep -e ^[0-9] | awk '{ print "ip prefix-list dn42 seq " $1 " " $2 " " $3 " ge " $4 " le " $5}' | sed "s_/\([0-9]\+\) ge \1_/\1_g;s_/\([0-9]\+\) le \1_/\1_g");
vtysh -c 'wr' #write new prefix list

Die Liste der gültigen Prediksi in https://ca.dn42.US/reg/Filter.txt aus den wichtigsten Förderer + kleine Mods meinerseits eine Prefix-Liste generieren können. Die Befehle werden in Vtysh ausgeführt..

Mein Lieblingstexteditor Geany. Es ist sehr minimalistisch HIER dass unterstützt eine breite Palette von Sprachen – Schale, PHP, Python, C … etc.. Es gibt Auto-Vervollständigen, während Hölle agil. Es fehlt die gelegentliche angenehm wie möglich, aber im Moment ist für mich mehr als genug. Ich fing an Online-Kurs Python-Programmierung auf SoftUni – ihr Wissen aufzufrischen und zu aktualisieren, da ich bin nicht nach ausreichender was mit Python geschieht 3. Die Dozenten des Kurses empfohlen PyCharm als IDE für die Programmierung von pyton, aber für mich weit weg von meinem Geschmack, Verwenden Sie Geany natürlich für Übungen.

Während der Vorträge schmerzlich empfunden 2 Engpässe

  1. Python Auto-Vervollständigen-und ausgeatmeten von Dokumentation zu Funktionen und Methoden
  2. keine Validierung für PEP8 Standard

Die gute Nachricht ist, dass Geany flexibel genug ist, um von der Konfiguration und leicht durch solche ergänzt werden können fehlt. lassen hinzufügen Python-Dokumentation in unseren IDE:

  • ziehen Sie Ihre Das folgende Skript irgendwo in unserem PATH / usr / bin nicht zu vergessen machen es ausführbar
  • bearbeiten Sie die Datei ~ / .config / geany / filedefs / filetypes.python teil Einstellungen die folgende Zeile hinzufügen context_action_cmd = pydocw% s. Wenn es das Hinzufügen nur den Namen binarkata aus dem vorherigen Schritt. Starten Sie Geany wenn laufen.
  • Wir haben bereits eine kontext Aktion, die Informationen über die Funktion zu entfernen wird. Ich fügte hinzu, shortcut, so dass ich war komfortabel, als mir nicht klar, irgendwelche Funktionalität. Leach mir diesen Ansatz sehr, weil Ich mag mich ärgert netbeans Ansatz.

So weit so gut. Dann wollte ich wirklich einen Bestätigungscode zu haben, schreiben Sie – ob ich schreibe allgemein anerkannten Standards entsprechend oder jede Hässlichkeit schreiben. Im Allgemeinen fand ich wieder tutorialče wie die Dinge passieren, aber es ist ein bisschen veraltet – Geany hat alles in sich selbst gebaut es nur installieren müssen PEP8 Paket. In Debian apt-get install PEP8 allein in anderen distrota arbeitet, um herauszufinden, wie die Magie passiert. Im zweiten Build-Menü-Taste (zumindest für mich) - Lint, indem Sie darauf klicken, werden Sie sehen, wie ein hässlicher Code, den Sie erstellt haben 😀

Screenshot aus 2016-01-11 20-42-21

Dies ist in groben Zügen, wie man Ihr Geany funktioniert gut mit Python und dabei weiter schnell sein, nicht die CPU macht Ihnen will, um seine Kugel zu ziehen.

Ja, auch in wordpress, для und si e bekannten до MIT neon Oder und и spielen, Musik. ich muss noch ein paar dinge passieren schnell und sport . wenn ich сумаризирам schritte 2 – natürlich, ohne sie die dateien, einstellungen, wenn voll hosting.

1. mit der änderung der alten url – hier sind trivial. sie datei wp-config.php und folgende in 2 um

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

als ersatz für://mit ihrem neuen example.com.

2. So weit so gut jetzt Seite öffnet url-ten Arbeit, aber hochgeladenen Inhalte wie Bilder, Dokumente und so nicht sichtbar. Hier hat es bereits eine böse Herausforderung. wir müssen an die stelle der alten url - mit dem neuen in der datenbank. es war sehr unangenehm werden, vor allem für anfänger, wer nicht gut mit der sql - syntax, aber es ist ein gutes drehbuch searchreplacedb2, das macht es für sie.. seine verwendung ist trivial – in dem verzeichnis, in dem ihre website und es ist wordpress - open in browser und. Dann folgen die Schritte, die zuerst Sie nach einem Benutzernamen und einem Kennwort fragt, die von Ihrem wp-config.php genommen wird, und dann fragt Sie nach den alten und neuen url. Fußabdruck MIT и на две на на, к, а за Lange gebunden IST, werden dankbar две и в и и по не, не только и за к, а на следствие маргоша с Meng, ein - und 40, 50, bei der ein.

Das ist in schwierigkeiten Oder и б musst Mich nicht super, gut.

A shell script wants your job

Heute, während ich arbeitete, sah ich, dass einer der Maschinen lagna sehr grausam. Einloggen es eine verdammt viel cron verpackt Zombie-Prozesse aussehen (etwa über 50-60). Es gab keine Möglichkeit, sie zu töten alle mit alle töten so brauche ich ein wenig mehr gebildete Lösung zu tun – Um schlug eine Unordnung Bash skriptche Prozesse zu finden und zu töten. 50-Tina PID-nicht leicht mit der Hand zu schreiben :D. Script kritzelte es für eine Minute und ist super einfach, aber noch verdient Aufmerksamkeit 🙂

An seiner Basis sitzt Förder

ps ax | grep -v grep | grep process_name | awk '{print $1}')

Hier erhalten wir ein Blatt mit allen PID-s Prozess, der als grep ausschließen aus dieser Liste kilnem müssen. Jetzt haben wir eine Liste der Dinge einfach geworden dreht sie in einer für. Hier ist das Endergebnis

#!/bin/bash

PR=$(ps ax | grep -v grep | grep process_name | awk '{print $1}')

for PID in $PR
do
echo "$PID will be killed"
kill -9 $PID
done

Kann sein “abgestimmt” der Name wird als Argument nach dem Skriptnamen genommen und damit eine ausführbare Binärdatei aufgerufen wird. Aber nicht eine sehr gute Praxis viele solche häufigen Fälle haben 😀 Aber prevented're nie von jedem shitni geschützt

zemanta ausgebaut.

Image representing MySQL as depicted in CrunchBase

Vor einiger Zeit schrieb ich über MySQL Volltextsuche 🙂 Heute hatte ich eine sehr interessante Erfahrung, mit einer Anfrage. In der Regel, was die Anwendung sucht nach Ergebnissen fehlt eine andere Tabelle. Wählen Sie eine Haupt- und eine Unter auswählen, die in der WHERE-Teil der Anwendung. Im allgemeinen Skelett und

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

Im Allgemeinen elementare Anforderung. Ich schrieb es für 30 sec führen Sie es und steckte Maschine. Nach einem langen und geduldig auf meinen Teil warten oder einfach nur ~ 43 sec . Es spuckte Ergebnis lol . pfff Irrenhaus. Anmeldung Maschine Blick Prozessor ist in der Regel damit beschäftigt fast Ruhezustand. Schock und Horror. Führen Sie erneut anfordern wieder das gleiche Ergebnis. Bumsen WTF. Führen Sie die Anwendung und erklären alles leuchteten – zweite Feld secondTextField nur Volltextsuche без Index, und es gibt eine bescheidene Tablett von etwa 35K Reihen. Wer lesen – Volltextsuche не е индекс. Schon klar Problem schnell ein

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

Und die Dinge fiel in Platz Abfrage in 0.0005 sec 😀

Seien Sie vorsichtig, wie Sie Indizes von ihnen setzen, hängt von Ihrer Grenzrate Anfrage.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

zemanta ausgebaut.