DN42 é um projeto maravilhoso que permite que você desenvolva suas habilidades sem ambiente do produto BGP-destrutiva, sem você ter que ter equipamentos caros com que fazer laboratório para fazer simulações com GNS3. Embora não seja um ambiente de laboratório pura onde não há problemas do mundo real. participar com 1 nó no projeto há cerca de um ano. Um dos problemas no projeto 1:1 com o mundo real – quando alguém anunciou prefixos não deve anunciada. Porque eu sou preguiçoso e eu não filtros manuscritas ainda tempo, Resolver problemas com o script bash simples que eu gerar lista de prefixo do nome dn42 e despeje prefixos válidos.

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

Uma lista de prediksi válidos tomar https://ca.dn42.us/reg/filter.txt onde o principal transportador + pequenas modificações em minha parte para ser capaz de gerar uma lista de prefixo. Os comandos são executados em vtysh.

Meu editor de texto favorito Geany. É muito minimalista AQUI que suporta uma enorme variedade de línguas – Concha, php, pitão, C … etc. Há autocomplete enquanto o inferno é ágil. Falta-lhe a agradável ocasional quanto possível, mas no momento para mim é mais do que suficiente. Comecei curso on-line Programação Python de SoftUni – para atualizar seus conhecimentos e atualizar, porque eu não estou atrás adequada o que acontece com python 3. Os palestrantes do curso recomendado PyCharm como IDE para pyton programação, mas para mim longe de ser o meu gosto, naturalmente usar Geany para exercícios.

Durante as palestras dolorosamente sentida 2 escassez

  1. python autocomplete e exalado de documentação para funções e métodos
  2. nenhuma validação para padrão pep8

A boa notícia é que Geany é flexível o suficiente para a configuração e pode ser facilmente completado por pelo faltando tais. deixar adicionar documentação python para nosso IDE:

  • puxar o seu O script a seguir em algum lugar no nosso caminho, como / usr / bin se esqueça de torná-lo executável
  • edite o arquivo ~ / .config / geany / filedefs / filetypes.python em ajustes de partes adicione a seguinte linha context_action_cmd =% s pydocw. Se há só é adicionando o nome de binarkata do passo anterior. Reinicie Geany se for executado.
  • Nós já temos um contexto de ação que irá remover informações sobre a função. Eu adicionei um atalho para meu preferido como não vejo nenhuma funcionalidade. Leach me esta abordagem muito porque eu gosto de me irrita abordagem netbeans.

So far so good. Então eu realmente queria ter um código de validação que você escreve – se eu escrever de acordo com as normas geralmente aceites ou escrever qualquer fealdade. Em geral eu achei novamente tutorialče como as coisas acontecem, mas é um pouco desatualizado – Geany tem tudo integrado em si mesmo só precisa instalá-lo pep8 pacote. Em Debian apt-get install pep8 funciona somente em outra distrota para descobrir como a mágica acontece. No segundo botão de menu Build (pelo menos para mim) é o fiapo após clicar você vai encontrá-lo código feio como você criou 😀

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

Isto é basicamente como tornar seu Geany para funcionar melhor com Python e ao mesmo tempo, continuar a ser um rápido dirigindo o CPU você quer puxar a bala.

Para alterar o seu domínio no WordPress é um pouco de dor. Recentemente eu tive que fazer várias coisas já está acontecendo esportes rápidos 😀 . Se eu puder sumariziram passos são 2 – naturalmente, sem mover arquivos, configurações se mudanças totalmente hospedagem.

1. Alterando o URL antigo para o novo – Coisas que eu aqui com trivial. Abra o arquivo wp-config.php e colocá-lo nestes 2 linha

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

Como substituir http://example.com com o seu novo.

2. Até aí tudo bem agora site abre trabalho url-th, mas o conteúdo carregado, tais como imagens, documentos e por isso não visível. Aqui ele já tem um desafio desagradável. Eles devem substituir o antigo url-th em um novo banco de dados. Era processo terrivelmente problemático especialmente para iniciantes, que não se dão bem com a sintaxe SQL, но вече има доста приятен скрипт searchreplacedb2, o que torna desconfortável para você. Use é trivial – enviá-lo para o diretório raiz onde o wordpress sua página e abri-lo no navegador-o. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия 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. Обаче не е много добра практика да има много такива чести случаи 😀 Но никога не пречи да сме предпазени от всякакви шитни

Reforçada por Zemanta

Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за Pesquisa de texto completo do MySQL 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне 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 метода 😀

Reforçada por Zemanta