#!/bin/bash # linux urllist.txt sitemap generator # run the spider again for deeper URLs # written by Joachim De Zutter # released under GPL site="www.example.com" startpage="http://www.example.com/" lynx -dump $startpage | grep -i "$site" | sed -e "s/.*\(http:\/\/.*$site\/[^\"\'<>#\&]*\).*/\1/g" >>urllist.txt while read a do echo $a sort -u urllist.txt | grep -v "\.\.\." >urllist.tmp mv urllist.tmp urllist.txt lynx -dump $a | grep -i "$site" | sed -e "s/.*\(http:\/\/.*$site\/[^\"\'<>#\&]*\).*/\1/g" >>urllist.txt done <urllist.txt
22 января 2012 г.
bash shell urllist crawler
16 декабря 2011 г.
Lost connection to MySQL server at 'reading initial communication packet', system error
/etc/mysql/my.cnf file and edit the bind-address parameter from the 127.0.0.1 to the IP-address you actually use.
1 ноября 2011 г.
27 октября 2011 г.
Виртуальный диск на базе RAM-Disk в Windows XP
Ram Disk — технология использования некоторого объема виртуальной памяти (т.е. RAM) для создания псевдо раздела жесткого диска. Т.е. открыв "Мой компьютер", наряду с привычными C:\, D:\ и может быть даже E:\, вам будет доступен раздел, назовем его, T:\, выполняющий те же функции, но в разы быстрее и безопаснее для реального жесткого диска.
Быстрее и безопаснее потому, что чтение-запись данных в рамках виртуальной ( = оперативной) памяти намного эффективнее аналогичных процедур на реальном жестком диске, т.к. там они представляют собой физическое взаимодействие с вращающимися на огромной скорости магнитными дисками, и приводит к их износу. Безусловно, микросхемы на планках оперативки тоже не вечные, но а что делать. Ведь чтобы полностью обезопасить свой жесткий от износа его придется вообще не использовать :) Так что рано или поздно он все равно посыпется, но ведь стоит постараться оттянуть это "поздно", не правда ли?
И да, еще одна очень важная деталь. Первое о чем говорят когда изучают что такое компьютер в целом и его оперативная память в частности — это то, что её содержимое носит временный характер. Другими словами, очищается после выключения компьютера.
Всё это, конечно, хорошо, но как это применить на практике? Просто.
- Во-первых, можно перенести на RamDisk системную временную папку. Там ведь в любом случае хранятся временные файлы.
- Во-вторых, можно создать на нем свою личную временную папку. Например, для скачивания в нее сериалов или, скажем, фильмов. Т.е. тех файлов, которые после просмотра, с большой долей вероятности, будут удалены.
Например, представим ситуацию: вы нашли свежий микс в интернете. Вы не уверены что он вам понравится, но и не ислючаете этого. Если захотите — сразу же запишете его на CD-болванку, или перенесете на основной раздел в папку с музыкой, скажем, подпапку "Хорошие миксы". Если нет — безболезненно удалите файл. То же касается фильмов, сериалов, выпусков радиошоу и т.д.
Опять же: безусловно, эти методы — не панацея. Но все ведь состоит из мелочей, согласитесь. И в своей совокупности они обладают достаточной статистической значимостью чтобы ею не пренебречь. В нашем случае — избавление основного жесткого диска от множества лишних, ненужных операций позволит несколько продлить его жизнь, равно как и уменьшить вероятность преждевременного выхода его из строя.
Итак, каким же образом всю эту схему реализовать?
- Выберите программу для создания RamDisk'а. Мой выбор остановился на RamDisk Plus.
- Собственно, создайте сам виртуальный диск. После этого он появится у вас в "Моем компьютере". Когда я создавал его у себя, я выбрал пункт "Создавать временную папку \temp", в результате чего при каждом выключении/перезапуске компьютера (читай — очистке созержимого оперативной памяти, и, следовательно нового виртуального жесткого диска), восстанавливается пустая временная папка temp, на которую я могу ссылаться отвсюду.
Также обратите внимание на опцию "Сохранять содержимое RAM диска при выключении на основной диск" (название опции может отличаться, более того — ее у вас может вообще не быть, зависит от программы). Я ее у себя по понятным причинам выключил :) - Теперь пропишем в системе эту временную папку.
- Открываем "Мой компьютер" → "Свойства" → "Дополнительно":
- Выбираем "Переменные среды" (кнопка в нижней части, на рисунке выше обведена пунктиром). Появляется следующее окно:
- На рисунке выше выделены переменные, хранящие расположение временных папок на уровнях системы и пользователя:
- Для пользователя; TMP и TEMP:%USERPROFILE%\Local Settings\Temp- Общесистемные; TMP и TEMP:%SystemRoot%\TEMPОбратите внимание: чтобы добраться до переменных TMP и TEMP в разделе "Системные переменные" (рисунок выше) соответствующий список нужно пролистать в самый низ.
Выше приведены их стандартные значения на случай если вам понадобится вернуть все как было по-умолчанию. - Меняем значение вышеупомянутых переменных окружения TMP и TEMP для пользователя и для всей системы:
В моем случае виртуальному диск у присвоена буква "T", следовательно путь до новой временной папки — T:\temp. Кстати, имя самой временной папки на вашем RAM диске зависит от имени, под которым ее создаст выбранная вами программа.
Повторите эту процедуру еще 3 раза, итого по два на каждую переменную (TMP и TEMP) и по два на пользовательский и общесистемный уровень). - Сохраните изменения, перезагрузите компьютер
- Открываем "Мой компьютер" → "Свойства" → "Дополнительно":
14 октября 2011 г.
Reload Icecast configuration without disconnecting listeners and losing source
To send the HUP signal to a process you'll have to know it's
PID. Basically, it looks like the following:
kill -HUP %PID%
So how do you know Icecast's PID? You'll have to either check the
ps aux command output (i recommend you filter the output with | grep icecast):

... or use the Icecast's
.pid-file. Open up the icecast.xml file to edit Icecast configuration and under the <paths> section alter the <pidfile> setting. For example, the FreeBSD path would be:
<pidfile>/usr/local/share/icecast/icecast.pid</pidfile>
Restart Icecast. Now the
.pid-file should be generated and available by the path specified. So no it's time to say Icecast kill -HUP `cat /usr/local/share/icecast/icecast.pid`
24 сентября 2011 г.
google muppets doodle animations
This is kinda 'spoiler' post, so if you want to keep the intrigue, don't read it.
Today's Google Doodle favours Jim Henson. Here's what it looks like:
And here's the HensonCompany video uploaded to Youtube: Jim Henson's Google Doodle
To see the doodle in action just go to Google or check out this Youtube video: http://youtube.com/watch?v=4qtFeF6o82o. So there are 6 muppets for each letter in Google's logo. You can select one and it starts following your cursor moves and reacts on click.
There've been lots of videos appearing on Youtube claiming they reveal secrets and hidden animations of this doodle, so just let me summarise them and add some of my own thoughts.
In Google's homepage source code each muppet-letter has,well, a code, i.e. G is 1g, O is 2o, next O is 3o, G is 4g, L is 5l and E is 6e. All animations, no matter whether it's just following your cursor, or eating each other, are put into a .PNG image, which is a so-called 'sprite'.
Move animations for each letter are:
G
O
O
G
L
E
But those are just moves, and they are boring. Let's talk about hidden animations. Lucky we, they're "hidden" with the same naming pattern, so it was not that hard to find them. Knowing G is 1g, O is 2o and so on and doing some clicking-around-watching-what's-going-on we can get the following:
G
O

Note: to make the puppet do this you select it and just move cursor from left to right rapidly.
O
G
L
E

Note: to make the crazy-eyed red puppet eat another you select the long/tall green one (the L letter) then move your mouse pointer to the LOWER RIGHT so he's looking down at the red monster. CLICK RAPIDLY while holding this position, and the red monster will eat him. (source)
19 сентября 2011 г.
flash upload uploadify nginx io error 2038
keepalive_timeout 0;in order to fix this.
More information on Nginx keepalive_timeout directive can be found here.








