Friday, December 28, 2007

Lifehack - Домофоны

Предыстория — Лифт 2.0
Послесловия:
Секреты домофонов
Домофоны на ru_lifehack

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. Правительство – это не тот орган, где, как многие думают, можно только языком.
Виктор Черномырдин

Miller dominoes

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

animation mix

Wednesday, December 5, 2007

Saturday, September 15, 2007

make nginx (command-line)

help resources:
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

hi! this weekend was a bit hot for me, cause i decided to implement Front-end and back-end architecture on my home server (my home machine is, usually, platform for many tests about performance or new technology stuff, that i after use at work).

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

picnik online photo editor (flash)
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

North-4 and some fun

My new trip album

difference between Female and Male (Frauen und Männer) by Bruno Bozzetto.

Wednesday, August 1, 2007

Cursor (caret) sometimes fails to appear in input text fields in FF

this post opens bugs i found in browsers while making my projects.

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

i found funny this tool, can help, for example, read google reader code. not a big deal, but much better.

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

AJAX Edit In Place (EIP) With Prototype

a good example of IEP technique with Prototype and AJAX - link. still afraid of AJAX? ;-)

Funtime

Japanese tv tetris game
Jewz N The Hood

Saturday, July 7, 2007

борьба с ленью и привычками

с ленью, с привычками.

jQuery and Interface

good article about jQuery (rus) and FX module - Interface elements. they have demos there - something amazing.

Saturday, June 2, 2007

Image_Graph samples

here is good samples of creating graphs with PEAR::Image_Graph package.

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

this is last step before you get complete LAMP system.

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/bin/apxs --with-mysqli --with-gd --with-zlib --enable-mbstring --with-freetype-dir --enable-gd-native-ttf --with-jpeg-dir --enable-bcmath

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/bin/apxs
--with-freetype-dir=/usr/include/freetype2/freetype
--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/lamp_slackware.txt.html

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.

Thursday, May 24, 2007

mysql profiling

this is my first post about profiling, so we need to understand what is profiling (performance analysis)?

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 *

i found this haha img on mysql webinars.


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

css background lesson

still having problem with background positioning? Web Design 101: Backgrounds

Monday, May 21, 2007

php filter

how you check data coming from user? we have great tool already in php - "Filter Functions".

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?

if you really want to understand how mysql stuff works, start read webinars instructions at MySQL AB On Demand Web Seminars.

Sunday, May 20, 2007

what is web?

http://www.youtube.com/watch?v=NLlGopyXT_g







thanks to xaoc.

php performance (code)

require_once "./a.php";
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)

with this article i start post useful tips for optimize your LAMP applications. all info i grab on net from sites, blogs, etc. be sure, that you check all of this variables what they do to avoid problems.

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

download source from apache (switzerland mirror, you can choose best for you here)
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

mysql help about install from source

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

before you start any installation, please, update you system. it very helpful - cause you will use during "make" lot of tools such as gcc, libxml, etc.

apt-get update

apt-get upgrade

you probable need root access for linux while all future steps (# sign).

Sunday, April 8, 2007

HTML Dog


очень реккомендую как начинающим, так и профессионалам веба посмотреть на учебники и примеры ресурса HTML Dog.

Friday, January 5, 2007

линукс для начинающих

всё руки не доходят начать писать полезные сайты про линукс, но сегодня я обещал себе...

когда я собрал дома сервер и впервые в жизни поставил сам Debian, я испытал пару оргазмов. у меня возник вопрос: а что теперь с этим делать? что дальше? как там, ну... список файлов хоть увидеть? :-)

сперва, взялся за доки самого демьяна. потом мне этого стало мало, у меня возникало всё больше и больше вопросов... начал заглядывать на проект OpenNet, citforum (старый добрый ресурс). ещё все знают про корпорацию IBM, но не все знают про то, что у них на сайте есть замечательный раздел developerWorks - "Ресурсы IBM для разработчиков". там я наткнулся на техническую библиотеку по линуксу (Linux, Статьи). это просто кладезь инфы в виде подготовок к экзамену по линуксу - вы шаг за шагом изучаете устройство компутера, линуха на нём, как запикапить девчёнку новыми знаниями... весь текст идёт сразу с примерами, то есть прочитав абзац, можно будет попробовать в действии (желательно иметь шелл где-нибудь).
советую начинать с самого первого экзамена (можно отсортировать по дате).

если вы не слышали про слово из 3-х букв - IBM, то, наверное, вы ошиблись в адресной строке. тут не блог николая баскова...

Tuesday, January 2, 2007

это полезно

один мой хороший приятель imi посоветовал приличный ресурс по photoshop.

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.