Wednesday, April 17, 2013
Алгоритм для использования подзапросов SUBQUERRY
Чтобы решить ту или иную задачу c использованием подзапросов SUBQUERY, необходимо подумать, отталкиваясь от меньшего к большему, задавая себе вопросы и отвечая на них.
Последовательность вопросов и действий:
Вопрос 1:
Что я должен получить по условию задачи? В какой таблице мы можем это видеть?
Полезно построить диаграмму БД, прежде, чем присутпить к построению запросов.
В зависимости от ответа, сразу пишем запрос к той таблице, из которой можно получить результат. Например, если то, что нам нужно находится в TABLE1 и это NAME1, то пишем
SELECT NAME1
FROM TABLE1
Вопрос 2:
Из какой таблицы я могу получить недостающие данные?
Поняв ее имя, сразу открываем скобки в основном запросе и помещаем в них подзапрос к недостающим данным. Если эти данные LACK_DATA в таблице TABLE2, то внутренний подзапрос будет выглядеть так (синим):
SELECT NAME1,
(
SELECT LACK_DATA
FROM TABLE2
)
FROM TABLE1
Вопрос 3:
Как недостающие данные и данные из основого запроса связаны между собой? Пусть они связаны по столбцу ORDER_ID. Тогда добавляем условие WHERE во внутренний запрос (синим):
SELECT NAME1,
(
SELECT LACK_DATA
FROM TABLE2
WHERE TABLE2.ORDER_ID=TABLE1.ORDER_ID
)
FROM TABLE1
Рассмотрим пример: Сколько штук каждого товара мы продали по БД на диаграмме ниже?
Вопрос 1: Что ищем и где это есть? Ищем имена товаров ProductName и они есть в таблице Products. Пишем:
SELECT ProductName
FROM Products
Вопрос 2: Что нам не хватает и в какой таблице мы можем найти эти недостающие данные?
Нам нужно кол-во QUANTITY каждого продукта. И это есть в таблице [Order Details]
Открываем скобки и пишем подзапрос (синим)
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
)
FROM Products
Вопрос 3: Каким образом связаны таблицы Products и [Order Details]? Ответ: По полю ProductID. Добавляем во внутренний запрос условие (синим)
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
)
FROM Products
Готово! На выходе мы имеем список и кол-во проданных товаров.
Далее можно отсортировать по кол-ву. Удобнее внутреннему запросу дать имя, для его использования в ORDER BY
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
) AS QTY
FROM Products
ORDER BY QTY DESC
Если нужно вывести только имя самого продаваемого товара, то в SELECT можно добавить TOP и подзапрос переместить в Order BY.
Т.о. запрос будет выглядить следующим образом:
SELECT TOP 1 ProductName
FROM Products
ORDER BY
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
)
DESC
Последовательность вопросов и действий:
Вопрос 1:
Что я должен получить по условию задачи? В какой таблице мы можем это видеть?
Полезно построить диаграмму БД, прежде, чем присутпить к построению запросов.
В зависимости от ответа, сразу пишем запрос к той таблице, из которой можно получить результат. Например, если то, что нам нужно находится в TABLE1 и это NAME1, то пишем
SELECT NAME1
FROM TABLE1
Вопрос 2:
Из какой таблицы я могу получить недостающие данные?
Поняв ее имя, сразу открываем скобки в основном запросе и помещаем в них подзапрос к недостающим данным. Если эти данные LACK_DATA в таблице TABLE2, то внутренний подзапрос будет выглядеть так (синим):
SELECT NAME1,
(
SELECT LACK_DATA
FROM TABLE2
)
FROM TABLE1
Вопрос 3:
Как недостающие данные и данные из основого запроса связаны между собой? Пусть они связаны по столбцу ORDER_ID. Тогда добавляем условие WHERE во внутренний запрос (синим):
SELECT NAME1,
(
SELECT LACK_DATA
FROM TABLE2
WHERE TABLE2.ORDER_ID=TABLE1.ORDER_ID
)
FROM TABLE1
Рассмотрим пример: Сколько штук каждого товара мы продали по БД на диаграмме ниже?
Вопрос 1: Что ищем и где это есть? Ищем имена товаров ProductName и они есть в таблице Products. Пишем:
SELECT ProductName
FROM Products
Вопрос 2: Что нам не хватает и в какой таблице мы можем найти эти недостающие данные?
Нам нужно кол-во QUANTITY каждого продукта. И это есть в таблице [Order Details]
Открываем скобки и пишем подзапрос (синим)
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
)
FROM Products
Вопрос 3: Каким образом связаны таблицы Products и [Order Details]? Ответ: По полю ProductID. Добавляем во внутренний запрос условие (синим)
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
)
FROM Products
Готово! На выходе мы имеем список и кол-во проданных товаров.
Далее можно отсортировать по кол-ву. Удобнее внутреннему запросу дать имя, для его использования в ORDER BY
SELECT ProductName,
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
) AS QTY
FROM Products
ORDER BY QTY DESC
Если нужно вывести только имя самого продаваемого товара, то в SELECT можно добавить TOP и подзапрос переместить в Order BY.
Т.о. запрос будет выглядить следующим образом:
SELECT TOP 1 ProductName
FROM Products
ORDER BY
(SELECT COUNT(Quantity)
FROM [Order Details]
WHERE [Order Details].ProductID=Products.ProductID
)
DESC
Алгоритм для использования объединения таблиц CROSS JOIN
Далее для демонстрации CROSS JOIN рассмотрим задачи на основе базы Northwind, загрузить ее образец можно с http://msdn.microsoft.com/ru-ru/library/ms143221(v=sql.105).aspx
Диаграмма БД:
Задача 1.
Сколько городов обслужил каждый продавец?
1) Осмыслить структуры базы и объединить все таблицы, упомянутые в задаче
SELECT *
FROM Employees E CROSS JOIN Orders O
Получим малополезный массив кол-во строк первой таблицы * кол-во строк второй таблицы
2) Профильтровать так, чтобы остались только осмысленные записи, т.е. те, которые имеют смысл в реальности.
SELECT *
FROM Employees E CROSS JOIN Orders O
WHERE E.EmployeeID=O.EmployeeID
3) Спрашиваем себя, что мы получили в результате. В данном примере это список всех заказов ORDERS.
Это нам нужно для того, чтобы позже
4) Всегда GROUP BY
А чего я хочу получить по задаче? Я хочу список продавцов, значит в GROUP BY пишем продавцов
SELECT E.FirstName+' '+E.LastName, count(DISTINCT ShipCity)
FROM Employees E CROSS JOIN Orders O
WHERE E.EmployeeID=O.EmployeeID
GROUP BY E.FirstName+' '+E.LastName
ORDER BY count(DISTINCT ShipCity) DESC
Задача 2.
Как зовут покуптелей, делавших в 1996-м заказы у нескольких продавцов?
SELECT C.ContactName, COUNT (DISTINCT EMPLOYEEID)
FROM CUSTOMERS C CROSS JOIN Orders O
WHERE C.CustomerID=O.CustomerID
AND YEAR (ORDERDATE)=1996
GROUP BY C.ContactName
HAVING COUNT (DISTINCT EMPLOYEEID) > 1
COUNT (DISTINCT EMPLOYEEID) из SELECT можно убрать
Задачи с тремя и более таблицами и JOIN-ами можно решать по такому же алгоритму:



Диаграмма БД:
Задача 1.
Сколько городов обслужил каждый продавец?
1) Осмыслить структуры базы и объединить все таблицы, упомянутые в задаче
SELECT *
FROM Employees E CROSS JOIN Orders O
Получим малополезный массив кол-во строк первой таблицы * кол-во строк второй таблицы
2) Профильтровать так, чтобы остались только осмысленные записи, т.е. те, которые имеют смысл в реальности.
SELECT *
FROM Employees E CROSS JOIN Orders O
WHERE E.EmployeeID=O.EmployeeID
3) Спрашиваем себя, что мы получили в результате. В данном примере это список всех заказов ORDERS.
Это нам нужно для того, чтобы позже
4) Всегда GROUP BY
А чего я хочу получить по задаче? Я хочу список продавцов, значит в GROUP BY пишем продавцов
SELECT E.FirstName+' '+E.LastName, count(DISTINCT ShipCity)
FROM Employees E CROSS JOIN Orders O
WHERE E.EmployeeID=O.EmployeeID
GROUP BY E.FirstName+' '+E.LastName
ORDER BY count(DISTINCT ShipCity) DESC
Задача 2.
Как зовут покуптелей, делавших в 1996-м заказы у нескольких продавцов?
SELECT C.ContactName, COUNT (DISTINCT EMPLOYEEID)
FROM CUSTOMERS C CROSS JOIN Orders O
WHERE C.CustomerID=O.CustomerID
AND YEAR (ORDERDATE)=1996
GROUP BY C.ContactName
HAVING COUNT (DISTINCT EMPLOYEEID) > 1
COUNT (DISTINCT EMPLOYEEID) из SELECT можно убрать
Задачи с тремя и более таблицами и JOIN-ами можно решать по такому же алгоритму:
Saturday, March 23, 2013
Oracle again?
Today I've completed two Oracle courses on 11g and passed the 1Z0-050 exam... to upgrade my Oracle 10g DBA OCP to 11g. I wonder if I will have a chance to work with Oracle. It would be nice to be honest.
Monday, September 19, 2011
Google Adsense
Tuesday, October 19, 2010
How to extend swap size in RHEL
[root@rhel_srv ~]# dd if=/dev/zero of=/swapfile bs=1024k count=16384
[root@rhel_srv ~]# mkswap /swapfile
Setting up swapspace version 1, size = 17179865 kB
[root@rhel_srv ~]# swapon /swapfile
[root@rhel_srv ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/mapper/vg.01-lv_swap partition 33554424 144 -1
/swapfile file 16777208 0 -2
Add to /etc/fstab
[root@rhel_srv ~]# vi /etc/fstab
/swapfile swap swap deafaults 0 0
[root@rhel_srv ~]# mkswap /swapfile
Setting up swapspace version 1, size = 17179865 kB
[root@rhel_srv ~]# swapon /swapfile
[root@rhel_srv ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/mapper/vg.01-lv_swap partition 33554424 144 -1
/swapfile file 16777208 0 -2
Add to /etc/fstab
[root@rhel_srv ~]# vi /etc/fstab
/swapfile swap swap deafaults 0 0
Wednesday, July 14, 2010
How to install perl modules (using CPAN)
Today I've updated SpamAssassin. And it required some perl-modules.
REQUIRED module missing: HTML::Parser
optional module missing: Mail::SPF
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Mail::DKIM
optional module missing: DBI
optional module missing: LWP::UserAgent
I've found quick way to install them using CPAN:
http://www.livejournal.com/doc/server/lj.install.perl_setup.modules.html
...
# perl -MCPAN -e shell
Once the Perl interpreter has loaded (and been configured), you can install modules with: install MODULENAME.
The first thing you should do is upgrade your CPAN:
cpan> install Bundle::CPAN
Once it is completed, type:
cpan> reload cpan
Now, enter the following command to retrieve all of the required modules:
cpan> install HTML::Parser
REQUIRED module missing: HTML::Parser
optional module missing: Mail::SPF
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Mail::DKIM
optional module missing: DBI
optional module missing: LWP::UserAgent
I've found quick way to install them using CPAN:
http://www.livejournal.com/doc/server/lj.install.perl_setup.modules.html
...
# perl -MCPAN -e shell
Once the Perl interpreter has loaded (and been configured), you can install modules with: install MODULENAME.
The first thing you should do is upgrade your CPAN:
cpan> install Bundle::CPAN
Once it is completed, type:
cpan> reload cpan
Now, enter the following command to retrieve all of the required modules:
cpan> install HTML::Parser
Monday, July 12, 2010
Thursday, July 08, 2010
FreeBSD upgrade 5.5 -> 6.4
How I upgraded FreeBSD from 5.5 to 6.4 (8, July, 2010) чисто шпаркалка на будущее
1) Created all possible backups (configs, scripts, image of HDD, etc)
2) Download sources
cd /usr/src and edit cvs-supfile
cat cvs-supfile
*default host=cvsup.burnet.ru
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_6_4
*default delete use-rel-suffix
*default compress
src-all
ports-all
doc-all
cvsup -g -L 2 /usr/local/etc/supfile | tee cvsup.log && echo ‘cvsup finished’ | mail –s ‘cvsup ’ my@domain
After that let's continue:
cd /usr/src ; make buildworld
make buildkernel KERNCONF=stb-office && echo ‘buildkernel completed’ | mail my@domain
make installkernel KERNCONF=stb-office && echo ‘installkernel completed’ | mail my@domain
- Switch off /usr/local/etc/rc.d scripts
shutdown -r now
adjkerntz -i
mergemaster -p
cd /usr/src && make installworld && echo ‘world has been installed’ | mail my@domain
mergemaster -p
shutdown -r now
- Remove /usr/obj
- Switch on /usr/local/etc/rc.d
reboot
cd /usr/src; make clean
find /usr/ports -type d -name 'work' | xargs rm –rvf
make delete-old (сделал пока только на man’ы)
make delete-old-libs (не стал делать)
Обновляем порты
# portsnap fetch
# portsnap extract
# portsnap update
#cd /usr/ports
#make index
Встреченные ошибки
Ошибки при make installworld
1) Proxy user (избегается при правильном mergemaster -p)
ERROR: Required proxy user is missing, see /usr/src/UPDATING.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Решается через adduser proxy
Но если mergemaster –p делал внимательно, то и ошибки не будет
2) Permission denied
Noexec option in /tmp
umount /tmp
vi /etc/fstab
mount –a
3) Make buildworld error
error:make:don't know how to make buildkernel.stop
Решается повторным cvsup-ом с проверкой cvs-supfile. При первоначальном у меня оказался отключенным *default=compress, после включения и повторной загрузки мир собрался.
=============
The next step is upgrading to 7.3 with the freebsd-update tool.
1) Created all possible backups (configs, scripts, image of HDD, etc)
2) Download sources
cd /usr/src and edit cvs-supfile
cat cvs-supfile
*default host=cvsup.burnet.ru
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_6_4
*default delete use-rel-suffix
*default compress
src-all
ports-all
doc-all
cvsup -g -L 2 /usr/local/etc/supfile | tee cvsup.log && echo ‘cvsup finished’ | mail –s ‘cvsup ’ my@domain
After that let's continue:
cd /usr/src ; make buildworld
make buildkernel KERNCONF=stb-office && echo ‘buildkernel completed’ | mail my@domain
make installkernel KERNCONF=stb-office && echo ‘installkernel completed’ | mail my@domain
- Switch off /usr/local/etc/rc.d scripts
shutdown -r now
adjkerntz -i
mergemaster -p
cd /usr/src && make installworld && echo ‘world has been installed’ | mail my@domain
mergemaster -p
shutdown -r now
- Remove /usr/obj
- Switch on /usr/local/etc/rc.d
reboot
cd /usr/src; make clean
find /usr/ports -type d -name 'work' | xargs rm –rvf
make delete-old (сделал пока только на man’ы)
make delete-old-libs (не стал делать)
Обновляем порты
# portsnap fetch
# portsnap extract
# portsnap update
#cd /usr/ports
#make index
Встреченные ошибки
Ошибки при make installworld
1) Proxy user (избегается при правильном mergemaster -p)
ERROR: Required proxy user is missing, see /usr/src/UPDATING.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Решается через adduser proxy
Но если mergemaster –p делал внимательно, то и ошибки не будет
2) Permission denied
Noexec option in /tmp
umount /tmp
vi /etc/fstab
mount –a
3) Make buildworld error
error:make:don't know how to make buildkernel.stop
Решается повторным cvsup-ом с проверкой cvs-supfile. При первоначальном у меня оказался отключенным *default=compress, после включения и повторной загрузки мир собрался.
=============
The next step is upgrading to 7.3 with the freebsd-update tool.
Saturday, July 03, 2010
ms project links
Нашел видеоурок хороший для быстрого знакомства с ms project за 30 мин.
http://www.microsoftproject.ru/lessons/lesson_1/lesson_1.html
для того, чтобы получить доступ к нему нужно зарегистрироваться на http://www.microsoftproject.ru
http://www.microsoftproject.ru/lessons/lesson_1/lesson_1.html
для того, чтобы получить доступ к нему нужно зарегистрироваться на http://www.microsoftproject.ru
Wednesday, March 17, 2010
Update a config on multiple servers
I've updated the /etc/updatedb.conf on multiple servers by two small scripts:
First script (slocate.sh) located on a management server calls second ~/slocate/updatedb.sh located on a common drive of the target servers which replaces updated /etc/updatedb.conf file.
1) slocate.sh listing
#!/bin/ksh
for machine in $(cat epdtw_srvs.lst)
do
if ping -c 3 $machine >/dev/null 2>&1
then
echo "==== $machine ================="
ssh root@$machine ~/slocate/updatedb.sh
else
echo "==== $machine not available ==="
fi
done
2) ~/slocate/updatedb.sh listing
#!/bin/bash
# Set new /etc/updatedb.conf by Change #...
cp /etc/updatedb.conf /etc/updatedb.conf.bak
cp ~/slocate/updatedb.conf.new /etc/updatedb.conf
First script (slocate.sh) located on a management server calls second ~/slocate/updatedb.sh located on a common drive of the target servers which replaces updated /etc/updatedb.conf file.
1) slocate.sh listing
#!/bin/ksh
for machine in $(cat epdtw_srvs.lst)
do
if ping -c 3 $machine >/dev/null 2>&1
then
echo "==== $machine ================="
ssh root@$machine ~/slocate/updatedb.sh
else
echo "==== $machine not available ==="
fi
done
2) ~/slocate/updatedb.sh listing
#!/bin/bash
# Set new /etc/updatedb.conf by Change #...
cp /etc/updatedb.conf /etc/updatedb.conf.bak
cp ~/slocate/updatedb.conf.new /etc/updatedb.conf
Saturday, March 06, 2010
в Сингапур на денек по пути в (из) Бангалор
Через пару недель собираюсь на курсы LSF (Basic and Advanced Configuration and Administration, 5 days) в Бангалор. Как оказалось Шанкар (админ PI) - ему кстати еще только 24 года - закончил свой контракт и уезжает 10 марта как раз в Бангалор, где в пригороде как раз находится его офис и квартира (Wipro office in Electronic City). Мы договорились встретиться там и прошмыгнуться по городу, когда я там появлюсь - он выслал мне свой номер телефона и будет ждать звонка в субботу. А т.к. моя дочка ждет, что я привезу ей хорошую зеркалку (типа CANON EOS 50D) и т.к. я лечу через Сингапур, где на обратном пути буду с 7 утра до 9 вечера, то попросил порекомендовать Шанкара торговый центр с электро- фото-техникой и путь к нему в Сингапуре, если он знает. В Индии-то мы вместе прошмыгнемся, поэтому нет нужды спрашивать :)
Он посоветовал в аэропорту Сингапура пройти к Information Desk и спросить о Free City Tour, при помощи которого можно совершить бесплатную двухчасовую экскурсию по городу. Таким образом, я смогу с утра часов с 7 или 8 скоротать пару часов прокатившись по Сингапуру и получив первые впечатления в рамках этого Free City Tour'а. Затем по возвращении из него в аэропорт можно сесть на поезд метро и доехать до Small(Little) India -> Big shopping centre "Mustafa", где найти секцию электроники и фототоваров. Цены как он предполагает там ниже московских и индийских. Также если есть желание оттуда же можно на такси проехать до Sim Lim Square, где находится 6-этажный торговый комплекс электроники. Но там нет гарантии, что не нарвешься на китайскую подделку, в отличие от Мустафы.
Я решил посмотреть цены на фотоаппарат в DutyFree Сеула когда буду на пути в Бангалор и на обратном пути опеределиться где лучше приобрести фотик - в Сингапуре или в DutyFree Сеула.
Также по прибытии в аэропорту в Бангалоре Шанкар порекомендовал сразу обратиться в Information Desk и узнать про Prepared Taxi (или Pre-Payed я не понял :)). Но главная суть в том, что можно нарваться на таксистов, которые кидают, особенно иностранцев.
Он посоветовал в аэропорту Сингапура пройти к Information Desk и спросить о Free City Tour, при помощи которого можно совершить бесплатную двухчасовую экскурсию по городу. Таким образом, я смогу с утра часов с 7 или 8 скоротать пару часов прокатившись по Сингапуру и получив первые впечатления в рамках этого Free City Tour'а. Затем по возвращении из него в аэропорт можно сесть на поезд метро и доехать до Small(Little) India -> Big shopping centre "Mustafa", где найти секцию электроники и фототоваров. Цены как он предполагает там ниже московских и индийских. Также если есть желание оттуда же можно на такси проехать до Sim Lim Square, где находится 6-этажный торговый комплекс электроники. Но там нет гарантии, что не нарвешься на китайскую подделку, в отличие от Мустафы.
Я решил посмотреть цены на фотоаппарат в DutyFree Сеула когда буду на пути в Бангалор и на обратном пути опеределиться где лучше приобрести фотик - в Сингапуре или в DutyFree Сеула.
Также по прибытии в аэропорту в Бангалоре Шанкар порекомендовал сразу обратиться в Information Desk и узнать про Prepared Taxi (или Pre-Payed я не понял :)). Но главная суть в том, что можно нарваться на таксистов, которые кидают, особенно иностранцев.
Saturday, January 02, 2010
Wednesday, December 30, 2009
A cron script does not work - check mail in /var/spool/mail
I was really surprized when my cron script didn't work from cron. Though it successfully worked through at and has all neccessary environments.
Today I found a suggestion to add to /etc/crontab your own email address and investigate the output. I changed MAIL in the /etc/crontab, restarted crond by "service crond restart", but no messages in my mailbox. Then I returned MAIL=cron in the /etc/crontab and just checked root's mailbox in /var/spool/mail/cron. And I had found the reason - "sh: kinit: command not found"! Though I thought that all paths are presented in $PATH of cron-script :) After adding to PATH variable the /usr/kerberos/bin the script began to work via cron successfully.
Therefore don't forget to check mails in such cases!!!
Other experience said me that variable should be exported actually by export -
#!/bin/bash
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/kerberos/bin/
export FIRST_V=mean1
export SECOND_V=mean2
....
Today I found a suggestion to add to /etc/crontab your own email address and investigate the output. I changed MAIL in the /etc/crontab, restarted crond by "service crond restart", but no messages in my mailbox. Then I returned MAIL=cron in the /etc/crontab and just checked root's mailbox in /var/spool/mail/cron. And I had found the reason - "sh: kinit: command not found"! Though I thought that all paths are presented in $PATH of cron-script :) After adding to PATH variable the /usr/kerberos/bin the script began to work via cron successfully.
Therefore don't forget to check mails in such cases!!!
Other experience said me that variable should be exported actually by export -
#!/bin/bash
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/kerberos/bin/
export FIRST_V=mean1
export SECOND_V=mean2
....
Saturday, November 21, 2009
Draft to CM Presentation
As a TCI team player I am responsible for IT Subsurface Infrastructure and Change implementing within it. I'd like to give short presentation on how changes are pefromed in IT Subsurface Infrastructure. I am not strong in ITSM and ITIL processes, we don't have software configuration management decision. I'll just describe our experience of implementing the changes in our infrastructure.
Agenda of my talk is the following.
1) Introduction
2) Subsurface IT Services and Configuration Overview
3) Steps to implement Changes
4) Our experiens
Agenda of my talk is the following.
1) Introduction
2) Subsurface IT Services and Configuration Overview
3) Steps to implement Changes
4) Our experiens
Wednesday, November 11, 2009
to extract SEGY-files from LTO3 tapes
Sometimes I am asked to copy SEGY-data from 400Gb tape cartridge of LTO3 with IBM Ultrium LTO3 tape reader.
# dd if=/dev/st0 of=/tmp/file.sgy bs=512k
# dd if=/dev/st0 of=/tmp/file.sgy bs=512k
Friday, October 30, 2009
Cisco ICND 1, 2 прослушаны
Сегодня закончили слушать ICND2, первый прослушали месяц назад - 28 Сент - 2 Окт.
Впечатления в целом хорошие, но ощущение каши по-моему еще больше в голове :)
Впечатления в целом хорошие, но ощущение каши по-моему еще больше в голове :)
GNS3
Долго не мог запустить проект в GNS3, получая ошибку "Can't start Dynamips on port 7200". Дело было не файрволле. Оказалось все просто: 1) GNS3 не терпит пробелов и русских символов в именах системных каталогов. 2) GNS3 В не зависимости от того куда установлен dynamips - ищет его в C:\Program Files\GNS3\Dynamips\
Sunday, October 18, 2009
Перешагнуть через себя или добиться своего?
Я заметил, что мое отношение к людям часто меняется от хорошего к не очень, от не очень к хорошему с течением времени в зависимости от моих наблюдений и опыта общения с ними. Есть интересная категория людей, представители которой по непонятным причинам могут быть либо достаточно приветливыми либо просто не замечать тебя :) Для меня это и курьезно до улыбки и обидно одновременно. И вот непонятно как вести себя, когда в очередной раз такой человек на твой кивок приветственный головы отводит глаза и проходит мимо. А если ты еще и решил протянуть руку в приветствии, то ... пытается показать снисходительность .... Так вот и вопрос - если так и ходить с жеманным выражением лица - мол он меня не приветствует, чего же я буду ... а если ты все же приветствуешь, то ощущаешь себя оплеванным ...
Перешагнуть через себя подав первым руку и почувствовав снисхождение и постепенно добиться своего, заставив такого человека расположиться к тебе и зауважать?
Хз ... вопрос имхо непростой. По идее меня ни то ни это не напрягает и я ничего не теряю, но ... я чувствую себя не в своей тарелке и в том и в этом случае.
Перешагнуть через себя подав первым руку и почувствовав снисхождение и постепенно добиться своего, заставив такого человека расположиться к тебе и зауважать?
Хз ... вопрос имхо непростой. По идее меня ни то ни это не напрягает и я ничего не теряю, но ... я чувствую себя не в своей тарелке и в том и в этом случае.
Афоризмы
Прочитал только что "Как съесть слона" - в инете полно вариантов этой метафоры для планирования и достижения целей. Все просто на первый взгляд - дели большую задачу на мелкие (как слона на тушки), и постепенно решай (поедай) мелкие и ... в конце концов цель будет достигнута (слон съеден). Будь-то, н-р, выучить 500 новых слов в неделю, сбросить 20 кг, выполнить реорганизацию торгового зала и т.д и т.п. Просто! Но самое главное, имхо, это выполнять действие, а именно периодически поедать тушки слона, не ленясь и не отвлекаясь на других слонов.... Т.е. нужно сначала быть голодным и любителем именно этой "кухни". Т.е. не все так просто - без труда. не вынуть и рыбки из пруда, как говорится.
"Если не знаешь куда бежать, стоит ли бежать". Да, уж .... казалось бы так и есть с одной стороны, но ведь бег трусцой по утрам часто тоже без определенного направления, но ведь бегут же с пользой для здоровья и самочувствия. Имхо, можно двояко посмотреть этот на афоризм.
"Если не знаешь куда бежать, стоит ли бежать". Да, уж .... казалось бы так и есть с одной стороны, но ведь бег трусцой по утрам часто тоже без определенного направления, но ведь бегут же с пользой для здоровья и самочувствия. Имхо, можно двояко посмотреть этот на афоризм.
Subscribe to:
Posts (Atom)