DN42 adalah proyek yang luar biasa yang memungkinkan Anda untuk mengembangkan keahlian Anda tanpa gesekan BGP produk lingkungan, tanpa Anda harus memiliki perangkat yang mahal yang digunakan untuk membuat laboratorium Anda untuk melakukan simulasi dengan GNS3. Pada saat yang sama bukanlah lingkungan laboratorium murni dimana tidak ada masalah dunia nyata. Berpartisipasi dengan 1 node dalam proyek sekitar setahun. Salah satu masalah dalam proyek 1:1 dalam dunia nyata – Ketika seseorang mengumumkan awalan yang tidak perlu untuk menyatakan. Karena aku malas dan tidak merasa seperti mengetik di tangan waktu filter, Saya pikir masalah dengan sederhana bash script yang menghasilkan daftar awalan-dengan nama dn42 dan tuangkan awalan berlaku.

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

Daftar prediksi yang sah ke https://CA.dn42.US/reg/filter.txt dari conveyor utama + sedikit modifikasi di bagian saya mampu menghasilkan daftar awalan. Perintah dieksekusi di vtysh.

Editor teks favorit saya adalah Geany. Ia sangat minim IDE yang mendukung berbagai bahasa – Shell, php, Python, C … dll. Anda auto-lengkap dan pada saat yang sama begitu gesit. Hilang itu kesempatan yang menyenangkan tapi saat itu, bagi saya, lebih dari cukup. Aku mulai kursus online Pemrograman Python dari SoftUni – untuk menyegarkan pengetahuan saya dan membuat mereka nadgradâ karena saya tidak mengikuti memadai apa yang terjadi dengan python 3. Speaker tentu merekomendasikan PyCharm sebagai IDE untuk pemrograman pyton, tapi aku jauh dari selera saya, secara alami menggunakan Geany untuk latihan.

Selama kuliah aku merasa menyakitkan 2 Lipsi

  1. Python-autocomplete dan napas ke dokumentasi fungsi dan metode
  2. Ada tidak ada validasi untuk standar pep8

Hal yang baik adalah bahwa itu cukup fleksibel dari Geany untuk konfigurasi dan dapat dengan mudah ditambahkan ke yang hilang. Biar aku Tambahkan Dokumentasi python ide kami:

  • tarik Anda script berikut di suatu tempat di jalan kami, misalnya, sebagai/usr/bin lupa untuk membuat executable
  • Mengedit file ~/.config/geany/filedefs/filetypes.python dalam pengaturan kita menambahkan mengikuti garis context_action_cmd = pydocw %s. Jika tidak hanya menambahkan nama binarkata dari langkah sebelumnya. Reboot jika menjalankan Geany.
  • Kita sudah memiliki konteks-tindakan yang akan Anda menarik informasi tentang fungsi. Saya telah menambahkan jalan pintas ke pilihan saya karena saya tidak melihat fungsi apapun. Leach saya pendekatan ini banyak suka karena banyak mengganggu saya pendekatan netbeans.

Sejauh ini baik-baik saja. Kemudian saya ingin memiliki sebuah validasi kode yang Anda menulis – Apakah Anda menulis sesuai standar umumnya diterima atau menulis Weirdos apapun. Secara umum saya menemukan lagi tutorialče bagaimana hal-hal terjadi tapi agak ketinggalan zaman – Geany memiliki segala dibangun pada Anda hanya perlu menginstal paket pep8. Di Debian apt-get install pep8 bekerja di distrota lain untuk menemukan bagaimana keajaiban terjadi. Tombol kedua dalam membangun menu (setidaknya untuk saya) adalah serat setelah mengklik Anda akan menemukan dia bagaimana jelek kode yang Anda buat 😀

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

Ini pada dasarnya adalah bagaimana membuat Anda Geany untuk bekerja lebih baik dengan Python dan pada saat yang sama, terus menjadi cepat mengemudi CPU Anda ingin menarik peluru.

Untuk mengubah domain di WordPress adalah rasa sakit. Baru-baru ini aku harus melakukan beberapa ini dan segala sesuatu terjadi cepat olahraga 😀 . Jika saya bisa sumariziram langkah-langkah 2 – secara alami tanpa memindahkan file, Jika Pengaturan berubah sepenuhnya hosting.

1. Mengubah URL lama dengan yang baru – Berikut hal-hal sepele. Buka file URwp-config.php dan paste di berikut 2 garis

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

Sebagai ganti http://example.com dengan baru Anda.

2. Situs ini sekarang buka url bekerja tetapi upload konten seperti gambar, dokumen dan sebagainya yang tidak terlihat. Di sini sekarang gangguan. Anda perlu untuk menggantikan yang lama dengan baru-url dalam database. Itu merupakan proses yang sangat merepotkan terutama bagi pengguna pemula, yang tidak baik dengan SQL sintaks, но вече има доста приятен скрипт searchreplacedb2, yang membuat tidak nyaman untuk Anda. Penggunaannya sepele – meng-upload ke direktori root yang mana wordpress adalah halaman Anda dan buka di browser Anda-. След това следвате стъпките като първо ще ви пита за потребителско име и парола който е взел от вашия wp-config.php и след това ще ви пита за новото и старото url. След последната стъпка ще се наложи да поизчакате при мен отнемаше средно 40сек -50сек.

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

A shell script wants your job

Днес докато работех видях че една от машините лагна много жестоко. Влизам в нея гледам един cron наблъскал адски много зомби процеси (грубо около 50-60). Нямаше как да ги убия всички с killall затова се наложи да направя малко по грамотно решение на проблемада драсна едно елементарно pesta скриптче което да намери и убие процесите. 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. Обаче не е много добра практика да има много такива чести случаи 😀 Но никога не пречи да сме предпазени от всякакви шитни

Ditingkatkan oleh Zemanta

Image representing MySQL as depicted in CrunchBase

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

Ditingkatkan oleh Zemanta