Friday, December 28, 2007
Saturday, December 22, 2007
Friday, December 14, 2007
47 цитат о…
1. Красивую женщину можно целовать без конца и не разу не попасть в одно и то же место.
Януш Макарчик
2. Женщина – это человеческое существо, которое одевается, болтает и раздевается.
Вольтер
3. Для женитьбы нужны двое – одинокая девушка и озабоченная мать.
NN
4. Даже самые красивые ноги, где-нибудь заканчиваются.
Юлиан Тувим
5. Он любит её больше, чем всех других, но ему нужны другие, чтобы в этом удостовериться.
Натали Клиффорд Барни
6. Не врывайся к жене с криком «Я всё знаю!», а то она чего доброго спросит тебя, в каком году была битва при Трафальгаре.
«Пшекруй»
7. Не бегай ни за женщиной, ни за трамваем. Всегда придёт следующий.
Итальянское изречение
8. Мужчины, которые относятся к женщинам с наибольшим почтением, редко пользуются у них наибольшим успехом.
Джозеф Аддисон
9. Из двух зол выбирай более смазливое.
Кэролайн Уэллс
10. Мир тесен: в конце концов, все мы встретимся в постели.
Бриджит Бардо
11. Всегда говори женщине, что она не такая, как другие, если хочешь получить от неё то же, что от других.
Уиндем Льюис
12. Бабники редко думают сразу о целой бабе.
Ежа Карецкий
13. Люди имеют право заниматься любыми сексуальными практиками, которые им нравятся. Впрочем, они должны избегать секса с козлами.
Элтон Джон
14. Быть мужчиной хорошо уже потому, что не нужно целовать чужую трёхдневную щетину.
NN
15. Для женщины первый поцелуй – конец начала, для мужчины – начало конца.
Хелен Роуленд
16. Секс – самое забавное из всего того, чем я мог заниматься без смеха.
Вуди Ален
17. Пессимист утверждает, что все женщины шлюхи, а оптимист на это надеется.
NN
18. Секс, не касается никого, кроме тех троих, которые в нём участвуют.
Неизвестный американец
19. Нимфоманка: женщина, которая вечером хочет заниматься любовью несмотря на то, что утром сделала причёску.
Морин Лимпан
20. Я приду к тебе в номер в пять вечера, если я опоздаю, начинай без меня.
Таллула Банкхед
21. Женщина иногда может заменить мастурбацию. Но, разумеется, это требует большого усилия воображения.
Карл Краус
22. Мужья, как правило, хороши в постели, когда изменяют своим жёнам.
Мэрилин Монро
23. Как всякий мужчина, я ношу при себе орудие насилия.
Анджей Керн
24. Каждый, кто ест три раза в день, должен понимать, почему кулинарных книг продаётся втрое больше, чем книг о сексе.
Л.М. Бойд
25. Если секс – такое естественное занятие, откуда столько пособий по сексу?
Бетти Мидлер
26. Рада барану овца, быком наслаждается тёлка; для плосконосой козы сладок нечистый козёл.
Овидий
27. В поцелуях двух женщин, есть что-то от боксёрского рукопожатия.
Генри Луис Менкен
28. Ларису Ивановну хочу!
Мимино
29. Целомудрие - самое неестественное из всех сексуальных извращений.
Олдос Хаксли
30. Если у тебя нет женщины, значит у кого-то их две.
Аркадий Давидович
31. Одно неосторожное движение, и вы – отец.
Михаил Жванецкий
32. Если бы Господь Бог не хотел, чтобы человек мастурбировал, он сделал бы его руки короче.
Джордж Карлин
33. Хорошим девушкам рады на небесах, плохим девушкам – где угодно.
Лозунг Всемирного конгресса проституток
34. Всё же мне жалко, что я не мужчина, а то бы я в десять раз больше шлялась.
Надежда Крупская
35. Почему мужчины такие серьёзные? У них есть эта клёвая длинная штука, которая поднимается и опускается, когда захочет. Если бы я была мужчиной, то постоянно бы смеялась над собой.
Йоко Оно
36. Раньше женщины кормили грудью младенцев, теперь – кинопродюсеров.
Жан Кокто
37. Девушке некоторый опыт, чтобы целоваться, как начинающая.
Джоан Риверз
38. Единственное, чему я научилась, снимаясь в порно, - это, делать минет так, чтобы не размазалась губная помада.
Трейси Элизабет Лордс
39. Каких бы высот ни достигли новейшие технологии, самым венным, простым и приятным методом воспроизводства человечества всегда будет метод тыка.
Стас Янковский
40. В Библии содержится 6 предостережений, адресованных гомосексуалам, и 362 предостережения гетеросексуалам. Это не значит, что Бог не любит гетеросексуалов. Просто за этими людьми нужно лучше присматривать.
Генри Миллер
41. У меня три эрогенные зоны – мои дети, мужчины и права человека.
Мария Арбатова
42. Ничто не властно над любовью, кроме импотенции.
Сэмюэл Батлер
43. В моём кругу переспать с женщиной – недостаточный повод для того, чтобы быть ей представленным.
Вирджиния Макклауд
44. А голые женщины тоже умны?
Станислав Ежи Лец
45. Пустота засасывает. Вот почему мужчину влечёт к женщине.
Натали Клиффорд Барни
46. В индустрии развлечений самой удачной идеей было разделение людей на два пола.
Янина Ипохорская
47. Правительство – это не тот орган, где, как многие думают, можно только языком.
Виктор Черномырдин
Wednesday, December 12, 2007
Mastering JavaScript — concept and resource guide
The immensity of information available today is also adversely focused on AJAX, frameworks and APIs. I wonder how designers and developers manage to wade through the cruft to even begin learning the basics. If you are like me, and have evolved along with JavaScript, then the state of the language makes a little more sense. However, if you are in the first steps of your journey, it might seem like a long and winding road ahead.
This concept and resource guide is a way to deal with these issues. Instead of listing a compendium of resources too vast to matter to anyone, I have listed only those that I feel truly contribute to the process of mastering JavaScript. Preceding the list is an outline of advanced JavaScript concepts that will help “light the master’s path”.
continue reading
Sunday, December 9, 2007
Wednesday, December 5, 2007
Saturday, September 15, 2007
make nginx (command-line)
getting started
install
getting all sorces:
wget http://sysoev.ru/nginx/nginx-0.5.31.tar.gz
tar xzvf nginx-0.5.31.tar.gz
wget http://ovh.dl.sourceforge.net/sourceforge/pcre/pcre-7.3.tar.bz2
tar xjvf pcre-7.3.tar.bz2
wget http://www.zlib.net/zlib-1.2.3.tar.bz2
tar xjvf zlib-1.2.3.tar.bz2
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.5.tar.gz
tar xzvf mod_rpaf-0.5.tar.gz
this is for transferring IP address of user to backend.
/usr/local/httpd/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
cd nginx-0.5.31
make clean
./configure --with-zlib=../zlib-1.2.3 --with-pcre=../pcre-7.3
make -j4
make install
frontend + backend = nginx + apache
so i wanted it. and i decided that it will be nginx as front, and my old friend apache as back.
why nginx? i saw that many internet projects i track in my day job (especially at .ru zone) uses it. one thing that i want to mention, that it not so many docs in english, but you always can ask somebody.
very useful was getting started from nginx's author. but it's not always enough - Using Nginx As Reverse-Proxy Server On High-Loaded Sites (russian version) and Заметки о ipb, apache, nginx can solve you too.
after day and a half, i win ;-) and now i has tuned nginx+apache for my 4 virtual hosts. in next article, i will post about install process (and probably after tuning).
Saturday, August 18, 2007
week links
photorobot
bitronicum and russian list of venture fonds
bookmarks and javascript
dontclick.it interface concept without any mouse click
Prototype 1.6.0 RC0 has arrived
Google Maps in your phone
Apple Form Factor Revolution
Sunday, August 5, 2007
Wednesday, August 1, 2007
Cursor (caret) sometimes fails to appear in input text fields in FF
first one, found in my favorite browser - Mozilla Firefox.
when i have absolute positioned divs (or anything) and i have there input boxes, cursor is invisible... till you specify in styles "overflow: auto;"
Bugzilla@Mozilla – Bug 167801
Saturday, July 28, 2007
Анатомия ядра Linux
Ядро Linux - это центральная часть большой и сложной операционной системы. При этом, несмотря на колоссальные размеры, оно имеет четкую структурную организацию в виде подсистем и уровней. В этой статье мы рассказываем об общей структуре ядра Linux и знакомим вас с его основными подсистемами и базовыми интерфейсами. Везде, где это возможно, мы приводим ссылки на другие статьи IBM, где вы сможете найти углубленную информацию.
хорошая статья на любимом developerworks. афтар - М. Тим Джонс (инженер-консультант, Emulex)
Saturday, July 21, 2007
JavaScript Code Improver
Cannot read your own JavaScript code?
Cannot find that closing brace?
Lost all hope of making head or tail of the JavaScript code inherited from your colleague?
Or just curious of how JavaScript works?
Try JavaScript Code Improver and create self-explanatory JavaScript code with ease!
JavaScript Code Improver
Saturday, July 7, 2007
jQuery and Interface
Saturday, June 2, 2007
Image_Graph samples
Image_Graph is, as is indicated by the title, a project to create graphs. It utilizes PHP's object oriented model, to simple but very customizable enable a user/developer to create highly versatile graphs.
Friday, June 1, 2007
step 3 — compiling php 5.2.3 on debian linux
before you start anything, please point your browser to install notes from php site. you right man if you always have a fresh copy of off-line docs (best one).
first, you need to get php source code. i like swedish locations (good speed) and smaller bz2 compressions, so chose where do you want to save and extract after files and run this:
wget http://se.php.net/get/php-5.2.3.tar.bz2/from/this/mirror
now in that dir we need decompress archive. this will create "php-5.2.3" directory
tar -xvvf php-5.2.3.tar.bz2
this step is not necessary if you build it for a first time, but after you sholud do this (for finding out, why my new compile not work properly with all options that i added - i spent all day, just for this simple thing)
make clean or make distclean
cd to new folder and try to check your config
./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/httpd
it is never (i think) passed on first time ;-) so for this my conf i was need these packages: libmysqlclient14, libmysqlclient14-dev, libxml2, libxml2-dev, libpng3, libjpeg62, libjpeg62-dev, libgd-dev, libfreetype6-dev
also, it was a little trouble to understand, why php cant see mysql installation, this should help (we put path to mysql into linux environment PATH):
export PATH=/usr/local/mysql/bin:$PATH
if configure passed, we can smile and start make phase. (for my double P-II 350 MHz it took ~30 mins)
make -j4
-j option is for SMP systems (more than one CPU). it's CPU_COUNT*2
i found that PHP team provide us some testcases, so we can use it for find out any compiling bugs or smthing
make test
before install phase, make sure that apache is not running (ps ax | grep httpd)
/etc/init.d/apachectl stop
make install
export CFLAGS="-O3 -msse -mmmx -march=pentium3 -mcpu=pentium3 -funroll-loops -mfpmath=sse -fomit-frame-pointer"
--with-mysql
--with-mysqli
--with-apxs2=/usr/local/httpd
--with-freetype-dir=/usr
--with-tidy (libtidy, tidy, tidy-dev)
--enable-bcmath = Enable bc style precision math functions
--enable-memory-limit (prior to 5.2.1) for memory_get_usage(), memory_get_peak_usage() and 'memory_limit' configuration directive.
http://www.opennet.ru/base/net
http://www.opennet.ru/opennews /art.shtml?num=8508
Thursday, May 31, 2007
mootools programming help
MooTools is a compact, modular, Object-Oriented javascript framework designed to make writing extensible and compatible code easier and faster. MooTools lets you get the job done efficiently and effectively.
MooTools have great effects, so one time i was need help and found this sites useful for me...
MooTools docs
A Mootools Tutorial :: The "Mootorial"
MOOTOOLS Javascript Examples
in my present work i use another js framework Prototype, so if you want only effects from mootools, you can use moo.fx for this.
Saturday, May 26, 2007
Thursday, May 24, 2007
mysql profiling
In software engineering, performance analysis (a field of dynamic program analysis) is the investigation of a program's behavior using information gathered as the program runs, as opposed to static code analysis. The usual goal of performance analysis is to determine which parts of a program to optimize for speed or memory usage.
full article you can find at mysql documentation, here i'll just overview it.
profiling gives us option to understand on timeline our queries, to see resource usage for executed statements.
SHOW PROFILES
and SHOW PROFILE
were added in MySQL 5.0.37 (that's important!).Profiling is controlled by the profiling session variable, which has a default value of 0 (OFF). Profiling is enabled by setting profiling to 1 or ON.
mysql>SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec)
mysql>SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql>DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>CREATE TABLE T1 (id INT);
Query OK, 0 rows affected (0.01 sec)
mysql>SHOW PROFILES;
+----------+----------+--------------------------+
| Query_ID | Duration | Query |
+----------+----------+--------------------------+
| 0 | 0.000088 | SET PROFILING = 1 |
| 1 | 0.000136 | DROP TABLE IF EXISTS t1 |
| 2 | 0.011947 | CREATE TABLE t1 (id INT) |
+----------+----------+--------------------------+
3 rows in set (0.00 sec)
mysql>SHOW PROFILE;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| checking permissions | 0.000040 |
| creating table | 0.000056 |
| After create | 0.011363 |
| query end | 0.000375 |
| freeing items | 0.000089 |
| logging slow query | 0.000019 |
| cleaning up | 0.000005 |
+----------------------+----------+
7 rows in set (0.00 sec)
mysql>SHOW PROFILE FOR QUERY 1;
+--------------------+----------+
| Status | Duration |
+--------------------+----------+
| query end | 0.000107 |
| freeing items | 0.000008 |
| logging slow query | 0.000015 |
| cleaning up | 0.000006 |
+--------------------+----------+
4 rows in set (0.00 sec)
mysql>SHOW PROFILE CPU FOR QUERY 2;
+----------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| checking permissions | 0.000040 | 0.000038 | 0.000002 |
| creating table | 0.000056 | 0.000028 | 0.000028 |
| After create | 0.011363 | 0.000217 | 0.001571 |
| query end | 0.000375 | 0.000013 | 0.000028 |
| freeing items | 0.000089 | 0.000010 | 0.000014 |
| logging slow query | 0.000019 | 0.000009 | 0.000010 |
| cleaning up | 0.000005 | 0.000003 | 0.000002 |
+----------------------+----------+----------+------------+
7 rows in set (0.00 sec)
Here is SQL queries that you need to know:
SELECT @@profiling;
SET profiling = 1;
SET profiling = 0;
SHOW PROFILES;
SHOW PROFILE;
SHOW PROFILE FOR QUERY 1;
/* displays all information */
SHOW PROFILE ALL FOR QUERY 1;
/* displays counts for block input and output operations */
SHOW PROFILE BLOCK IO FOR QUERY 1;
/* displays counts for voluntary and involuntary context switches */
SHOW PROFILE CONTEXT SWITCHES FOR QUERY 1;
/* displays user and system CPU usage times */
SHOW PROFILE CPU FOR QUERY 1;
/* displays counts for messages sent and received */
SHOW PROFILE IPC FOR QUERY 1;
/* displays counts for major and minor page faults */
SHOW PROFILE PAGE FAULTS FOR QUERY 1;
/* displays the names of functions from the source code, together with the name and line number of the file in which the function occurs */
SHOW PROFILE SOURCE FOR QUERY 1;
/* displays swap counts */
SHOW PROFILE SWAPS FOR QUERY 1;
Wednesday, May 23, 2007
SELECT *
this post not about sql error on img but about post subject.
it's ok when your table is
CREATE TABLE `your_table` (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`smthing` tinyint(3) NOT NULL unsigned,
PRIMARY KEY (`id`)
) ENGINE=MyISAM
only two columns and you can use
SELECT *
and even you can put subj in 10 places, ok? after month, you alter table, add text field. usually, you not remember all places with this code, so in 10 places it overload resource usage with useless traffic between MySQL and application, isn't it? it mean that is always better to do SELECT `id`, `smthing` FROM...
- only needed fields.so, forget to select all!
Tuesday, May 22, 2007
Monday, May 21, 2007
php filter
This extension serves for validating and filtering data coming usually from some insecure source such as user input.
good tutorials you can find here: Zend devzone, PHPro and php doc.
want to learn mysql?
Sunday, May 20, 2007
php performance (code)
require_once "a.php";
php_version() = PHP_VERSION constant
php_uname(‘s’) = PHP_OS constant
php_sapi_name() = PHP_SAPI constant
// Slow
if (preg_match("!^foo_!i", "FoO_")) { }
// Much faster
if (!strncasecmp("foo_", "FoO_", 4)) { }
// Slow
if (preg_match("![a8f9]!", "sometext")) { }
// Faster
if (strpbrk("a8f9", "sometext")) { }
// Slow
if (preg_match("!string!i", "text")) {}
// Faster
if (stripos("text", "string") !== false) {}
$text = preg_replace( "/\n/", "\\n", $text);
In this case it would be simpler and to mention faster to use a regular str_replace()
$text = str_replace( "/\n/", "\\n", $text);
$rep = array( '-' => '*', '.' => '*' );
if ( sizeof( $globArr ) > 1 ) {
$glob = "-" . strtr( $globArr[1], $rep );
} else {
$glob = strtr( $globArr[0], $rep );
}
if ( sizeof( $globArr ) > 1 ) {
$glob = "-" . strtr( $globArr[1], '-.', '**' );
} else {
$glob = strtr( $globArr[0], '-.', '**' );
}
// The Good
if (!strncmp(PHP_OS, 'WIN', 3)) {
if (!strncasecmp(PHP_OS, 'WIN', 3)) {
// The Bad
if (substr(PHP_OS, 0, 3) == 'WIN') {
if (strtolower(substr(PHP_OS, 0, 3))) == 'win') {
// And The Ugly
if (preg_match('!^WIN!', PHP_OS)) {
if (preg_match('!^WIN!i', PHP_OS)) {
if (substr($class, -15) != 'text')
/* == */
if (substr_compare($class, 'text', -15))
References can be used to simply & accelerate access
to multi-dimensional arrays.
$a['b']['c'] = array();
// slow 2 extra hash lookups per access
for($i = 0; $i < 5; $i++)
$a['b']['c'][$i] = $i;
// much faster reference based approach
$ref =& $a['b']['c'];
for($i = 0; $i < 5; $i++)
$ref[$i] = $i;
all info from slides and other sources Ilia Alshanetsky
Saturday, May 19, 2007
php performance (environment)
this can be done in php.ini, inside your scripts or in .htaccess
<IfModule mod_php5.c>
php_value expose_php 0
</IfModule>
register_globals = Off
magic_quotes_gpc = Off
expose_php = Off
register_argc_argv = Off
always_populate_raw_post_data = Off
session.use_trans_sid = Off
session.auto_start = Off
session.gc_divisor = 1000 or 10000
Thursday, May 17, 2007
step 2 — compiling apache 2.0.59 on debian linux
wget http://mirror.switch.ch/mirror/apache/dist/httpd/httpd-2.0.59.tar.bz2
extracting from archive
tar -xvvf httpd-2.0.59.tar.bz2
change into dir
cd httpd-2.0.59
try to config source. here i specify modules for me: rewrite - for good-looking urls, deflate - for compression, headers - to change headers, info - apache informations (i use it for debug).
./configure --prefix=/usr/local/httpd --enable-rewrite --enable-deflate --enable-headers --enable-info
if you passed configure, can go to make. (for dual PII-350, 512 Mb it takes ~10 min)
make -j4
finally, install
make install
editing conf
vi /usr/local/httpd/conf/httpd.conf
if you want apache auto start:
copy start program to init.d
cp /usr/local/httpd/bin/apachectl /etc/init.d
update startup conf
update_rc.d apachectl defaults 19
test run
/etc/init.d/apachectl start
install instructions config help
/usr/local/httpd/conf/httpd .conf
/usr/local/httpd/bin/apachectl start
another help links
apachedev.ru
step 1 — compiling mysql 5.0.41 on debian linux
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.41.tar.gz/from/http://mirror.switch.ch/ftp/mirror/mysql/
tar -xvvf mysql-5.0.41.tar.gz
./configure --prefix=/usr/local/mysql --with-collation=latin1_general_ci
packages that may be need: libncurses5-dev
make -j4
make install
useful options:
--localstatedir=/usr/local/mysql/data
--enable-thread-safe-client
--with-low-memory
--prefix=/usr/local/mysql
--with-charset=latin1
--with-collation=latin1_general_ci
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-openssl
--with-mysql-user=mysql
--enable-assembler
--with-mysqld-ldflags=-all-static # not for user-defined functions
--with-unix-socket-path=/tmp/mysql.sock
Where to put the unix-domain socket. SOCKET must be
an absolute file name.
after all done, check your
/etc/mysql/my.cnf
(server specific options) and /etc/my.cnf
(global options) for same socket path. i found that in global conf, socket placed in /tmp/mysql.sock
, but server specific - /var/run/mysqld/mysqld.sock
. that make error when you trying to run mysql tool. if you do not want to change - workaround is to use "-S socket_path" .
Wednesday, May 16, 2007
step 0 — before compiling LAMP on debian linux
apt-get update
apt-get upgrade
you probable need root access for linux while all future steps (# sign).
Sunday, April 8, 2007
Friday, January 5, 2007
линукс для начинающих
когда я собрал дома сервер и впервые в жизни поставил сам Debian, я испытал пару оргазмов. у меня возник вопрос: а что теперь с этим делать? что дальше? как там, ну... список файлов хоть увидеть? :-)
сперва, взялся за доки самого демьяна. потом мне этого стало мало, у меня возникало всё больше и больше вопросов... начал заглядывать на проект OpenNet, citforum (старый добрый ресурс). ещё все знают про корпорацию IBM, но не все знают про то, что у них на сайте есть замечательный раздел developerWorks - "Ресурсы IBM для разработчиков". там я наткнулся на техническую библиотеку по линуксу (Linux, Статьи). это просто кладезь инфы в виде подготовок к экзамену по линуксу - вы шаг за шагом изучаете устройство компутера, линуха на нём, как запикапить девчёнку новыми знаниями... весь текст идёт сразу с примерами, то есть прочитав абзац, можно будет попробовать в действии (желательно иметь шелл где-нибудь).
советую начинать с самого первого экзамена (можно отсортировать по дате).
если вы не слышали про слово из 3-х букв - IBM, то, наверное, вы ошиблись в адресной строке. тут не блог николая баскова...
Tuesday, January 2, 2007
Monday, January 1, 2007
человеческий фактор
Вероятно, вам приходилось слышать, как люди по телефону сообщают о своем невыходе на работу из-за болезни. Возможно, вы и сами когда-то так делали. Но приходило ли вам в голову позвонить и сообщить, что вы здоровы? Примерно так. Вы позвоните шефу и скажете: «Послушайте, я был болен все то время, когда работал здесь, но сегодня я здоров и больше не появлюсь на работе».
рекомменудется у прочтению книжка Tom DeMarco и Timothy Lister: Peopleware. Productive Projects and Teams. (Человеческий фактор. Успешные проекты и команды).
ISBN 5-93286-061-8 (рус) или ISBN 0-932633-43-9 (англ).
Так почему же руководители разрешают или даже поощряют сверхурочный труд? Джерри Вейнберг (Jerry Weinberg) представил нечто вроде ответа: он предполагает, что мы работаем сверхурочно не для того, чтобы успеть сделать работу, но для того, чтобы оградить себя от обвинений, когда работа не будет сделана в установленные сроки.
мне книжка дала ответы на многие проблемы «работников интеллектуального труда», которые я не мог сам озвучить или догнать.
эта и другие книжки всегда ждут своих читателей на natahaus.ru.