DN42 on loistava projekti, joka antaa sinulle mahdollisuuden kehittää BGP taitoja rikkomatta tuoteympäristö, ilman, että tarvitsisi kalliita laitteita laboratorion tekemiseksi simulaatioiden tekemiseksi GNS3: lla. Samanaikaisesti sen ei pitäisi olla puhtaasti laboratorioympäristöä, jossa ei ole todellisen maailman ongelmia. Olen mukana 1 solmu projektissa noin vuoden ajan. Yksi projektin ongelmista on 1:1 todellisen maailman kanssa – kun joku ilmoittaa etuliitteet, joita heidän ei pitäisi ilmoittaa. Koska olen laiska ja en kirjoita suodattimia käsin koko ajan, Ratkaisin ongelman elementaalilla bash-skriptilla, joka luo etuliite-nimisen dn42 ja kaataa siihen kelvolliset etuliitteet.

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

Voimassa olevien etuliitteiden luettelo otetaan https://ca.dn42.us/reg/filter.txt mistä pääputki + muutama muutos omalta puolelta, jotta voin luoda etuliitteitä. Komennot suoritetaan vtyshin kautta.

Suosikki tekstieditori on Geany. Se on hyvin minimalistinen TÄSSÄ joka tukee suurta kielivalikoimaa – kuori, php, pytonkäärme, C … jne. Siinä on automaattinen viimeistely ja samalla erittäin ketterä. Siltä puuttuu jokin muu miellyttävä tilaisuus, mutta tällä hetkellä se on enemmän kuin tarpeeksi minulle. Aloitin verkkokurssin Python-ohjelmointi на SoftUni – päivittää tietoni ja päivittää sitä, koska en ole seurannut riittävästi pythonin kanssa tapahtuvaa 3. Kurssin luennoitsijat suosittelevat PyCharm IDE: nä pyton-ohjelmoinnille, mutta en pidä siitä, käytän tietysti harjoituksiin Geanyä.

Luentojen aikana tunsin tuskallista 2 puuttuu

  1. python-automaattinen täydennys hengittää toiminnan ja menetelmien dokumentoinnista
  2. ei validointia pep8-standardi

Hyvä asia on, että Geany on riittävän joustava konfiguroidakseen ja sitä voidaan helposti täydentää puuttuvilla.. Joskus lisää python-dokumentaatio IDE: hen:

  • me vedämme seuraava komentosarja jossain PATH-kentässä esimerkiksi / usr / bin ja älä unohda tehdä siitä suoritettavaa
  • muokkaa tiedostoa ~ / .config / geany / filedefs / filetypes.python lisäämällä seuraava rivi asetusosaan konteksti_toiminta_cmd = pydocw% s. Lisää vain binaarin nimi edellisestä vaiheesta. Käynnistämme Geanyn uudelleen, jos se vapautetaan.
  • Meillä on jo asiayhteystoiminto, joka antaa sinulle tietoja toiminnosta. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Pidän tästä lähestymistavasta paljon, koska minua häiritsee hyvin netbeans-lähestymistapa.

Toistaiseksi niin hyvä. Sitten todella haluan saada vahvistuksen kirjoittamalleni koodille – kirjoitanko sen yleisesti hyväksyttyjen standardien mukaisesti vai kirjoitanko jotain rumuutta. Pohjimmiltaan löysin sen uudelleen Oppaat miten asiat tapahtuvat, mutta se on vähän vanhentunut – Geany sisältää kaiken sisäänrakennetun, sinun on vain asennettava pep8-paketti. Debianissa apt-get install pep8 toimii muissa distrossa, sinun on selvitettävä itsellesi, kuinka taika tapahtuu. Rakenna-valikon toinen painike (ainakin minulle) on Lint napsauttamalla sitä, kuinka ruma koodi olet luonut 😀

Näyttökuva 2016-01-11 20-42-21

Tässä on yleiskuvaus siitä, kuinka saada Geanysi toimimaan paremmin Pythonin kanssa samalla, kun se on silti nopea tekemättä prosessoristasi halua vetää luotia.

Да сменяш домейн във WordPress си е известна болка. Напоследък ми се наложи да направя няколко такива и вече нещата се случва спортно бързо 😀 . Ако мога да сумаризирам стъпките са 2 – естествено без местенето на файловете, настройките ако се сменя изцяло хостинга.

1. Промяна на старото URL със новототука нещата са тривиални. Отваряте си wp-config.php файлът и във него поставяте следните 2 реда

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

Като замествате http://example.com със вашият нов.

2. До тук добре вече сайтът се отваря url-тата работят но каченото съдържание като картинки, документи и прочие не се вижда. Tässä tarvitaan jo karkeaa interventiota. Vanhat URL-osoitteet on korvattava tietokannan uusilla. Tämä oli erittäin epämiellyttävä prosessi, etenkin aloittelijoille, jotka eivät käsittele SQL-syntaksia hyvin, но вече има доста приятен скрипт searchreplacedb2, kuka tekee kaiken epämiellyttävän sinulle. Sen käyttö on triviaalia – lataat sen päähakemistoon, jossa Wordpress-sivusi sijaitsee, ja avaa se selaimesi kautta. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

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

A shell script wants your job

Tänään, työskennellessään huomasin, että yksi koneista makaa erittäin huonosti. Menen siihen katsomassa cronin törmäävän helvettiin monissa zombiprosesseissa (karkeasti ympäri 50-60). Ei voinut tappaa heitä kaikkia tapa kaikki joten minun piti tehdä hieman pätevämpi ratkaisu ongelmaan – piirtää alkuaine Bash skripti prosessien löytämiseksi ja hävittämiseksi. 50-PID: itä ei ole helppo kirjoittaa käsin :D. Raapin käsikirjoitusta minuutin ja se on hyvin yksinkertainen, mutta se ansaitsee silti huomion 🙂

Sen juuressa on kuljetin

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

Täältä saamme arkin, joka sisältää kaikki prosessin PID: t, jotka meidän on tapettava sulkemalla grepi pois tästä luettelosta. Nyt kun meillä on luettelo, asioista tulee helppoja, kaikki muuttuu yhdeksi. Tässä on lopputulos

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

Voi olla “viritys” koska nimi otetaan argumentiksi komentosarjan nimen jälkeen ja sitä kutsutaan siten suoritettavaksi binaariksi. Ei ole kuitenkaan kovin hyvää käytäntöä olla niin usein tapauksia. 😀 Mutta se ei koskaan estä meitä olemasta suojassa mistään

Parantaa Zemanta

Image representing MySQL as depicted in CrunchBase

Jokin aika sitten kirjoitin MySQL Koko teksti Haku 🙂 Minulla oli tänään erittäin mielenkiintoinen kokemus yhdestä pyynnöstä. Yleensä kysely etsii tuloksia, jotka puuttuvat toisesta taulukosta. Yksi perusvalinta ja yksi alavalinta kyselyn WHERE-osassa. Yleensä luuranko on

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

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

Periaatteessa yksinkertainen kysely. Kirjoitin sen 30 sec Suoritan sen ja kone silmukoi. Pitkän ja kärsivällisen odottamiseni puolesta tai tarkemmin ~ 43 sekuntia . Spatin tuloksen lol . Pffff hulluhuone. Sisään koneeseen katsellen, että suoritin on normaalisti ladattu melkein tyhjäkäynnissä. Shokki ja kauhu. Suoritan kyselyn uudelleen sama tulos. Vittu WTF. Suoritan selittää kyselyn ja kaikki paistaa – toinen kenttä secondTextField on vain kokotekstihaku ilman hakemistoa, ja siellä levy on vaatimaton, noin 35 kt viivoja. Kuka lukea – kokotekstihaku ei ole hakemisto. Ongelma poistuu nopeasti

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

Ja asiat menivät paikoilleen Query vei 0.0005 sekuntia 😀

Ole varovainen indeksien laatimisessa, kyselyn nopeus riippuu sinusta vähän.

s.s Yleisesti ottaen olen syyllinen yllä olevasta tilanteesta paitsi siksi, että siitä puuttuu hakemisto, vaan koska siinä ei käytetä kokotekstin hakumenetelmää 😀

Parantaa Zemanta