DN42 er et fantastisk prosjekt som gjør at du kan utvikle dine ferdigheter uten BGP-destruktiv produkt miljø, uten at du må ha dyrt utstyr som skal gjøre laboratorium for å gjøre simuleringer med GNS3. Selv ikke en ren laboratoriemiljø hvor det er ingen reelle problemer. delta med 1 node i prosjektet for omtrent et år. Et av problemene i prosjektet 1:1 med den virkelige verden – når noen annonserte prefikser ikke skal kunn. Fordi jeg er lat og jeg har ikke håndskrevne filtre fortsatt tid, Løs problemer med enkle bash script som jeg genererer prefiks-liste navn DN42 og det helle gyldige prefikser.

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

En liste over gyldige prediksi ta https://ca.dn42.us/reg/filter.txt hvor hovedtransportøren + små modifikasjoner på min del for å være i stand til å generere et prefiks liste. Kommandoene blir utført i vtysh.

Min favoritt teksteditor er Geany. Han er svært minimal IDE som støtter et stort spekter av språk – Shell, PHP, Python, Cetc. Den autofullføring og samtidig er så nimbly. Savner ham en hyggelig mulighet, men på tiden, for meg, er mer enn nok. Jeg startet online kurs Python programmering av SoftUni – å oppdatere mine kunnskaper og gjøre dem nadgradâ fordi jeg ikke har fulgt tilstrekkelig hva skjer med python 3. Høyttalerne anbefaler selvfølgelig PyCharm som for programmering pyton, men jeg er langt fra min smak, naturligvis bruke Geany for øvelser.

I løpet av forelesningene følte jeg en smertefull 2 Lipsi

  1. Python-Autofullfør og puster til dokumentasjon av funksjoner og metoder
  2. Er det ingen validering for den standard pep8

Bra er at den er fleksibel nok av Geany konfigurasjonen og kan enkelt legge til de manglende. la meg Legge til python dokumentasjon vår ide:

  • trekk din følgende skript et sted i vår bane glem for eksempel som/usr/bin ikke å gjøre den kjørbar
  • Rediger filen ~/.config/geany/filedefs/filetypes.python i innstillingene vi legge til følgende linje context_action_cmd = pydocw %s. Hvis det er bare å legge til navnet på binarkata fra det tidligere trinnet. Gjenstarte hvis Geany.
  • Vi har allerede kontekst-handlingen har du trakk informasjon om funksjonen. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Leach meg denne tilnærmingen mye som fordi mye irriterer meg netbeans tilnærming.

så langt, alt vel. Så vil jeg ha en validering av koden du skriver – enten du skrive den i henhold til allment aksepterte standarder eller skrive noen Weirdos. Generelt fant jeg igjen tutorialče hvordan ting skje, men det er litt utdatert – Geany har alt i du trenger bare å installere pakken pep8. Debian apt-get installere pep8 arbeider i andre distrota å oppdage hvor Magien skjer. Den andre knappen på bygge-menyen (minst for meg) е Lint след кликването му ще откриете колко грозен код сте сътворили 😀

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

Това е общи линии как да накарате вашият Geany да работи по добре с Python и същевременно да продължи да бъде бърз без да кара процесора ви да иска да си тегли куршума.

For å endre domenet i WordPress er noen smerter. Nylig jeg måtte gjøre noen av disse og alt skjer raskt sport 😀 . Hvis jeg kan sumariziram er trinnene 2 – naturlig uten flytte filer, Hvis innstillingene endres helt hosting.

1. Endre den gamle URL med en ny – Her er trivielt. Åpne URwp-config.php filen og lim den inn i følgende 2 linje

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

Når erstatter http://example.com med din ny.

2. Området er nå åpne url's arbeid men det opplastede innholdet som bilder, dokumenter og så videre er ikke synlig. Her nå forstyrrelser. Du må erstatte gamle med nye-url i databasen. Det var en veldig plagsom prosess spesielt for nybegynnere, som ikke gjør godt med SQL-syntaks, men allerede har ganske fin script searchreplacedb2, Det gjør det ubehagelig for deg. Bruken er trivielt – sende den til rotmappen der wordpress er siden og åpne den i din nettleser-. Deretter følger du trinnene som vil først be deg om et brukernavn og passord som er hentet fra din wp-config.php og deretter ber om ny og gammel url. Etter det siste trinnet måtte hadde ventet på meg tar et gjennomsnitt 40sek -50sek.

Dette er generelt ikke noe vanskelig eller super komplisert.

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. Обаче не е много добра практика да има много такива чести случаи 😀 Но никога не пречи да сме предпазени от всякакви шитни

Forbedret lenker:

Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за MySQL Full tekstsøk 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне Select и един sub select в WHERE частта на заявката. В общи линии скелета и е

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

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

В общи линии елементарна заявка. Написах я за 30 сек пускам я и зацикли машината. След дълго и търпеливо чакане от моя страна или по точно ~43 сек . Ми се изплю резултат lol . Пффф лудница. Влизам в машината гледам процесора е нормално натоварен почти в idle състояние. Шок и ужас. Пускам пак заявката пак същия резултат. Fuck WTF. Пускам explain на заявката и всичко лъснавторото поле secondTextField е само full text search без index, а там табличката е скромна от около 35к реда. Кой да четеfull text search не е индекс. Вече е ясен проблема набързо едно

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

И нещата си дойдоха на местата Query took 0.0005 sec 😀

Внимавайте как си слагате индексите от тях ви зависи маргинално скоростта на заявката.

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

Forbedret lenker: