DN42 is een prachtig project waarmee u uw vaardigheden te ontwikkelen zonder schrapen het BGP product milieu, zonder dat u hoeft te hebben van dure apparaten waarmee u te maken van uw labo te doen van simulaties met GNS3. Tegelijkertijd is niet een pure laboratoriumomgeving waar er geen echte wereldproblemen is. Deelnemen met 1 knooppunt in het project voor ongeveer een jaar. Een van de problemen in het project is 1:1 met de echte wereld – Wanneer iemand aangekondigd voorvoegsels die niet hoeven te verklaren. Omdat ik lui ben en niet het gevoel dat het typen aan kant tijd filters, Ik dacht dat het probleem met een eenvoudige bash-script dat genereert een voorvoegsel-lijst met de naam dn42 en giet de geldige voorvoegsels.

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

De lijst van geldige prediksi in https://ca.dn42.us/reg/filter.txt van de belangrijkste transportband + kleine mods van mijn kant om het genereren van een lijst van voorvoegsel te kunnen. De opdrachten worden uitgevoerd in vtysh.

Mijn favoriete teksteditor Geany. Het is zeer minimalistisch HIER dat ondersteunt een groot aantal talen – schelp, php, Python, C … enz. Er is automatisch aanvullen, terwijl de hel is wendbaar. Het ontbreekt de passerende aangenaam mogelijk maar momenteel voor mij ruim voldoende. Ik cursus begon online Python programmeren van SoftUni – om hun kennis op te frissen en te upgraden, want ik ben niet na een passende wat er gebeurt met python 3. De docenten van de cursus aanbevolen PyCharm als IDE voor het programmeren van Pyton, maar voor mij ver van mijn smaak, natuurlijk gebruiken Geany voor oefeningen.

Tijdens de colleges pijnlijk gevoeld 2 tekorten

  1. python autocomplete-en uitgeademde van documentatie functies en methoden
  2. geen validatie voor pep8 standaard

Het goede nieuws is dat Geany flexibel genoeg is om de configuratie en kan gemakkelijk worden aangevuld met ten ontbreken dergelijke. laten add python documentatie onze IDE:

  • trek je Het volgende script ergens in ons pad als / usr / bin niet vergeten om het uitvoerbaar te maken
  • bewerk het bestand ~ / .config / geany / filedefs / filetypes.python in partinstellingen voeg de volgende regel context_action_cmd = pydocw% s. Als alleen het toevoegen van de naam van binarkata uit de vorige stap. Herstart Geany indien lopen.
  • We hebben al een context-actie die informatie over de functie zal verwijderen. Ik heb een snelkoppeling toegevoegd aan mijn voorkeur als ik niet zie geen functionaliteit. Leach me deze aanpak veel, want ik hou me stoort netbeans aanpak.

So far so good. Toen ik wilde echt een validatie code te schrijven – of ik schrijven volgens algemeen aanvaarde normen of schrijven elke lelijkheid. In het algemeen vond ik weer tutorialče hoe dingen gebeuren, maar het is een beetje verouderd – Geany heeft alles ingebouwd in zichzelf alleen nodig om het te installeren pep8 package. In Debian apt-get install pep8 werkt alleen al in andere distrota om te ontdekken hoe de magie gebeurt. In de tweede Build menuknop (althans voor mij) het Lint is na klikken u vindt hem hoe lelijk code zelfgemaakt 😀

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

Dit is eigenlijk hoe maak uw Geany te werken beter met Python en op hetzelfde moment, blijven een snelle rijden de CPU u wilt trekken de kogel.

Om uw domein te wijzigen in WordPress is wat pijn. Onlangs moest ik doen verschillende dingen al gebeurt snelle sportauto 😀 . Als ik kan sumariziram stappen 2 – uiteraard zonder het verplaatsen van bestanden, Instellingen als er wijzigingen volledig hosting.

1. Wijzigen van de oude naar de nieuwe URL – Dingen die ik hier met triviale. Open uw wp-config.php bestand en plaats het in deze 2 rij

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

Als vervanging http://example.com met uw nieuwe.

2. So far so good nu website opent url-ste werk, maar geüploade content, zoals foto's, documenten en dus niet toegankelijk. Hier heeft al een nare uitdaging. Zij moeten de oude url-ste plaats in een nieuwe database. Het was erg lastig proces vooral voor beginners, die niet goed maken met SQL syntax, но вече има доста приятен скрипт searchreplacedb2, waardoor het ongemakkelijk voor u. Gebruik is triviaal – uploaden naar de root directory waar de wordpress uw pagina en open het in de browser-je. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

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

A shell script wants your job

Днес докато работех видях че една от машините лагна много жестоко. Влизам в нея гледам един cron наблъскал адски много зомби процеси (грубо около 50-60). Нямаше как да ги убия всички с killall затова се наложи да направя малко по грамотно решение на проблемада драсна едно елементарно bash скриптче което да намери и убие процесите. 50-тина PID-а не се пишат лесно на ръка :D. Скрипта го надрасках за минута и е свръх елементарен но все пак заслужава внимание 🙂

В основата му седи конвейера

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

Тука получаваме лист с всички PID-ове на процеса който трябва да килнем като изключваме grep от този списък. Вече като имаме списъка нещата стават лесни всичко се завърта в един for. Ето го и крайния резултат

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

Може да сетунинговакато името се взима като аргумент след името на скрипта и по този начин се вика като изпълнимо binary. Обаче не е много добра практика да има много такива чести случаи 😀 Но никога не пречи да сме предпазени от всякакви шитни

Versterkt door Zemanta

Image representing MySQL as depicted in CrunchBase

Enige tijd geleden schreef ik over MySQL full text search 🙂 Vandaag had ik een zeer interessante ervaring met één applicatie. In het algemeen, het verzoek zoekt naar resultaten andere tafel mist. Selecteer een hoofd- en een sub selecteren in de WHERE-gedeelte van de applicatie. In het algemeen skelet en

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

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

In principe eenvoudig verzoek. Ik schreef het voor 30 sec voer het uit, en stak machine. Na een lang en geduldig te wachten op mijn part of gewoon ~ 43 sec . Het spuwde resultaat lol . Pfff gekkenhuis. Inloggen machine blik processor is normaal gesproken bezet bijna rusttoestand. Shock and awe. Replay toepassing opnieuw hetzelfde resultaat. neuken WTF. Run verklaren het verzoek en al scheen – Alleen tweede veld secondTextField Zoek volledige text без index, en er is een bescheiden schaal van ongeveer 35K regels. Wie gelezen – Zoek volledige text не е индекс. Al duidelijk probleem snel een

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

En dingen viel op zijn plaats Query nam 0.0005 sec 😀

Wees voorzichtig met hoe je de indices van hen afhankelijk van uw marginale tarief verzoek.

P.S het algemeen ben ik verslaafd aan de bovenste situatie, niet alleen omdat er geen index, maar omdat het niet gebruiken van full text search methode 😀

Versterkt door Zemanta