DN42 е един прекрасен проект който ви дава възможност да развивате вашите BGP умения без да чупите продуктова среда, без да ви се налага да имате скъпи устройства с които да си правите лаборатория да си правите симулации с GNS3. Същевременно да не е чисто лабораторна среда при която няма проблеми от реалният свят. Участвам с 1 node в проекта от около година. Един от проблемите в проекта е 1:1 с реалният святкогато някой ти обяви префикси които не трябва да обявява. Понеже съм мързелив и не ми се пише на ръка филтри все път, реших проблема с елементарен bash скрипт които ми генерира prefix-list с име dn42 и в него наливам валидните префикси.

#!/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

Списъка с валидните предикси се взема https://ca.dn42.us/reg/filter.txt от където и основният конвейр + малко модификации от моя страна за да може да се генерира префикс листа. Командите се изпълняват през vtysh.

Il mio editor di testo preferito Gabby. E 'molto minimalista QUI che supporta una vasta gamma di lingue – conchiglia, PHP, pitone, (C) … eccetera. C'è completamento automatico, mentre l'inferno è agile. Manca il piacevole occasionale possibile, ma in questo momento per me è più che sufficiente. Ho iniziato a corso online programmazione Python На SoftUni – per aggiornare le loro conoscenze e per l'aggiornamento perché non sono dopo adeguato ciò che accade con pitone 3. I docenti del corso raccomandati PyCharm come IDE per la programmazione Pyton, ma a me lontano dal mio gradimento, naturalmente usare Geany per esercizi.

Durante le lezioni dolorosamente feltro 2 la carenza di

  1. python-completamento automatico e esalato dalla documentazione a funzioni e metodi
  2. non convalida per standard di PEP8

La buona notizia è che Geany è flessibile abbastanza per a seconda della configurazione e può essere facilmente integrato da a mancare tale. lasciare aggiungere documentazione pitone al nostro IDE:

  • tirare la vostra Lo script che segue da qualche parte nel nostro cammino come / usr / bin non dimenticate di renderlo eseguibile
  • modificare il file ~ / .config / geany / filedefs / filetypes.python nelle impostazioni parte aggiungere la seguente riga context_action_cmd = pydocw% s. Se c'è solo aggiungendo il nome del binarkata dal passaggio precedente. Riavviare Geany se eseguito.
  • Abbiamo già un contesto-action che rimuoverà informazioni sulla funzione. Ho aggiunto una scorciatoia per me è più comodo, come non capisco alcuna funzionalità. Mi Leach questo approccio molto perché mi piace mi infastidisce approccio NetBeans.

Fin qui tutto bene. Poi ho davvero voluto avere un codice di convalida che si scrive – se scrivo secondo gli standard generalmente accettati o scrivere qualsiasi bruttura. In generale ho trovato di nuovo tutorialče Le cose accadono, ma è un po 'obsolete – Geany è tutto integrato in se stesso solo bisogno di installarlo PEP8 pacchetto. In Debian apt-get install PEP8 lavora nel solo altri distrota per scoprire come avviene la magia. Nel secondo pulsante menu Genera (almeno per me) Lint è dopo il clic sarà scoprire come codice brutto creato 😀

screenshot 2016-01-11 20-42-21

Questo è fondamentalmente come rendere il vostro Geany di lavorare bene con Python, e allo stesso tempo continuerà ad essere senza processore veloce fa venire voglia di tirare il proiettile.

Per modificare il dominio in WordPress è un certo dolore. Recentemente ho dovuto fare diverse cose già accadendo sport veloci 😀 . Se posso sumariziram passi sono 2 – naturalmente senza spostamento di file, impostazioni se cambia completamente di hosting.

1. Cambiare il vecchio URL per il nuovo – Le cose che qui con banali. Aprire il file wp-config.php e metterlo in questi 2 fila

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

Come sostituire http://example.com con il nuovo.

2. Fin qui tutto bene sito ora si apre il lavoro url-esimo, ma contenuto caricato, come immagini, documenti e quindi non visibile. Qui si ha già una sfida brutta. Essi devono sostituire il vecchio URL-esimo in un nuovo database. Era processo terribilmente fastidioso soprattutto per i principianti, che non fare bene con la sintassi SQL, но вече има доста приятен скрипт searchreplacedb2, che lo rende scomodo per voi. L'utilizzo è banale – caricarlo nella directory principale in cui il wordpress pagina e aprirlo nel browser tuo. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

Това е във общи линии нищо трудно или супер сложно.

A shell script wants your job

Oggi, mentre stavo lavorando, ho visto che uno della lagna molto crudele di macchine. Immettere in esso guardare un inferno di un sacco di zombie nablskal cron processi (Rough intorno 50-60). Non c'era alcun modo per ucciderli tutti con Killall così ho dovuto fare un po ' più alfabetizzata soluzione al problema – per avviare un disordine bash script per trovare e uccidere i processi. 50-Tina, PID non facile scrivere a mano :D. Lo script per un minuto e graffiato e si eccita rudimentale ma ancora merita attenzione 🙂

Alla sua base sta sedendosi sul nastro trasportatore

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

Qui si ottiene un elenco di tutti i PID-s del processo che dovrebbe kilnem come grep è escluso da questo elenco. Come abbiamo già elencato le cose diventare facile tutto viene ruotato una per. Ecco il risultato finale

#!/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

Può essere “sintonizzato” come il nome è preso come argomento dopo il nome dello script e così chiamato come file binario eseguibile. Tuttavia, non è molto buona pratica di avere molti tali casi frequenti 😀 ma non ha mai fatto male a essere protetti da qualsiasi šitni

Arricchito da Zemanta

Image representing MySQL as depicted in CrunchBase

Qualche tempo fa ho scritto su MySQL Full Text Search 🙂 Oggi ho avuto un interessante esperienza con una query. In generale, la query è alla ricerca di risultati che mancano un'altra tabella. A selezionare un sub con e selezionare nella parte dove l'applicazione. In generale, lo scheletro ed è

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

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

In generale, una semplice richiesta. L'ho scritto per 30 SEC liberarla e bloccato la macchina. Dopo un lungo e pazientemente in attesa da parte mia o solo ~ 43 sec . Sputare il mio punteggio lol . Pfff Madhouse. Inserire nella macchina che dall'aspetto CPU normalmente viene caricata quasi in condizione di inattività. Shock e awe. Eseguire la query ancora ancora lo stesso risultato. Cazzo WTF. Eseguire la query e spiegare tutto io – il secondo campo è solo secondTextField ricerca full-text Nessun indice, e c'è un vassoio modesto di circa 35 k linea. Cosa leggere – Indice di ricerca full-text non è. È già chiaro il problema reale rapidamente uno

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

E le cose si posti che query ha preso 0.0005 😀 sec

Stare attento come metti gli indici di essi dipende il tasso marginale di applicazione.

p. s nel suo complesso mi sbaglio circa la situazione di cui sopra non solo perché manca un indice perché non si utilizza testo completo ricerca metodo 😀

Arricchito da Zemanta