Wednesday, 30 June 2010
Холодное лето 2003го
Всем смотреть, заставляет о многом задуматься. http://www.youtube.com/watch?v=rSC0pMvILmk&playnext_from=TL&videos=45zo_PdWkQc&feature=grec_browse
Tuesday, 29 June 2010
Monday, 28 June 2010
Thursday, 24 June 2010
Активация Hyper-Threading на серверах NHS-1, NHS-2, NHS-3, NHS-24 fastvps.ru
Заказываем KVM, заходим в биос клавишей DEL, "Advanced BIOS features", "CPU feature", Hyper-Threading function - enabled после этого нажимаем F10 и подтверждаем сохранение настроек.
Все, теперь будет логических процессоров не 4, а 8 :) Ну а если все описанное для Вас сложно, то напишите в нашу замечательную поддержку и мы все сделаем сами :)
Все, теперь будет логических процессоров не 4, а 8 :) Ну а если все описанное для Вас сложно, то напишите в нашу замечательную поддержку и мы все сделаем сами :)
Как ограничить число php5-cgi процессов при использовании mod_fcgid?
This summary is not available. Please
click here to view the post.
Активация модуля geo в Nginx 0.7.65
Будем подключать вот это:
http://wiki.nginx.org/NginxHttpGeoModule
Почему именно geo, а не geoip? Вот результаты тестов, проведенных нашими сотрудниками:
Скачиваем файлы с IP адресами:
Теперь, даже если у Вас nginx стоит из пакетов стягиваем дистрибутив nginx треубуемой версии:
Конвертируем geoip файл в формат nginx и переносим в папку nginx:
Подключаем к nginx:
Также вниз блока http добавляем следующее:
Далее изменяем формат логов, чтобы туда также попадала страна клиента:
Перезапускаем Nginx:
http://wiki.nginx.org/NginxHttpGeoModule
Почему именно geo, а не geoip? Вот результаты тестов, проведенных нашими сотрудниками:
С геоип:
средняя для -n1 (10 измерений, каждый запрос с нового адреса): 5.20
средняя для -n10000 -c1: 6.63
Средняя для -n10000 -c10: 55.06
потребление памяти: каждый воркер имеет свою базу geoip (страны - 500 Кб, города - 20 Мб)
C гео:
средняя для -n1 (10 измерений, каждый запрос с нового адреса): 6.61
средняя для -n10000 -c1: 6.73
Средняя для -n10000 -c10: 58.01
потребление памяти: каждый воркер имеет свою базу geoip (только страны - 4 Мб)
Без геоип:
средняя для -n1 (10 измерений, каждый запрос с нового адреса): 6.70
Средняя для -n10000 -c1: 6.76
Средняя для -n10000 -c10: 57.91
Скачиваем файлы с IP адресами:
cd /usr/src
wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
unzip GeoIPCountryCSV.zip
Теперь, даже если у Вас nginx стоит из пакетов стягиваем дистрибутив nginx треубуемой версии:
cd /usr/src
wget http://sysoev.ru/nginx/nginx-0.7.65.tar.gz
tar -xf nginx-0.7.65.tar.gz
Конвертируем geoip файл в формат nginx и переносим в папку nginx:
perl nginx-0.7.65/contrib/geo2nginx.pl < GeoIPCountryWhois.csv > geo.conf
mv geo.conf /etc/nginx/
Подключаем к nginx:
vi /etc/nginx/nginx.conf
Также вниз блока http добавляем следующее:
geo $country {
default no;
include /etc/nginx/geo.conf;
}
Далее изменяем формат логов, чтобы туда также попадала страна клиента:
log_format vhost_ip_full_format '$remote_addr - $remote_user [$time_local] $host $server_addr $request '
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for" $request_time-$upstream_response_time "$country"';
access_log /var/log/nginx/access.log vhost_ip_full_format;
Перезапускаем Nginx:
/etc/init.d/nginx reload
Wednesday, 23 June 2010
e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
Вот вылезла такая радость на машинке сильно нагруженной по сети:
Юзаем фикс аналогичный http://phpsuxx.blogspot.com/2009/11/e1000-centos-netdev-watchdog-eth0.html
Источник: https://bugzilla.redhat.com/show_bug.cgi?id=398921
[399393.714927] e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
[399393.714929] Tx Queue <0>
[399393.714930] TDH
[399393.714931] TDT <91>
[399393.714932] next_to_use <91>
[399393.714933] next_to_clean
[399393.714934] buffer_info[next_to_clean]
[399393.714935] time_stamp <105f49deb>
[399393.714936] next_to_watch
[399393.714937] jiffies <105f49f85>
[399393.714938] next_to_watch.status <0>
[399395.715956] e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
[399395.715957] Tx Queue <0>
[399395.715958] TDH
[399395.715958] TDT <91>
[399395.715959] next_to_use <91>
[399395.715959] next_to_clean
[399395.715960] buffer_info[next_to_clean]
[399395.715960] time_stamp <105f49deb>
[399395.715961] next_to_watch
[399395.715961] jiffies <105f4a179>
[399395.715962] next_to_watch.status <0>
[399397.709166] e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
[399397.709167] Tx Queue <0>
[399397.709168] TDH
[399397.709168] TDT <91>
[399397.709169] next_to_use <91>
[399397.709169] next_to_clean
[399397.709170] buffer_info[next_to_clean]
[399397.709170] time_stamp <105f49deb>
[399397.709171] next_to_watch
[399397.709171] jiffies <105f4a36d>
[399397.709172] next_to_watch.status <0>
[399399.706064] e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
[399399.706065] Tx Queue <0>
[399399.706066] TDH
[399399.706066] TDT <91>
[399399.706066] next_to_use <91>
[399399.706067] next_to_clean
[399399.706067] buffer_info[next_to_clean]
[399399.706068] time_stamp <105f49deb>
[399399.706068] next_to_watch
[399399.706069] jiffies <105f4a561>
[399399.706069] next_to_watch.status <0>
[399400.704517] ------------[ cut here ]------------
[399400.704547] WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0xd2/0x16c()
[399400.704587] Hardware name: MS-7522
[399400.704608] NETDEV WATCHDOG: eth0 (e1000): transmit queue 0 timed out
[399400.704634] Modules linked in: xt_multiport acpi_cpufreq cpufreq_stats cpufreq_powersave cpufreq_userspace cpufreq_conservative ip6table_filter ip6_tables xt_recent xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state xt_owner iptable_filter ip_tables x_tables quota_v2 quota_tree fuse nf_conntrack_ftp nf_conntrack loop snd_pcm snd_timer snd soundcore wmi i2c_i801 snd_page_alloc tpm_tis tpm tpm_bios i2c_core usbhid evdev hid pcspkr button ext3 jbd mbcache dm_mirror dm_region_hash dm_log dm_snapshot dm_mod sd_mod crc_t10dif e1000 uhci_hcd ehci_hcd thermal fan processor thermal_sys raid10 raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcpy async_tx raid1 raid0 md_mod atiixp ahci sata_nv sata_sil sata_via libata via82cxxx ide_core 3w_9xxx 3w_xxxx scsi_mod [last unloaded: scsi_wait_scan]
[399400.705068] Pid: 0, comm: swapper Not tainted 2.6.33.4-fastvps-2-4 #1
[399400.705095] Call Trace:
[399400.705114][ ] ? dev_watchdog+0xd2/0x16c
[399400.705146] [] ? dev_watchdog+0xd2/0x16c
[399400.705173] [] ? warn_slowpath_common+0x77/0xa3
[399400.705201] [] ? dev_watchdog+0x0/0x16c
[399400.705227] [] ? warn_slowpath_fmt+0x51/0x59
[399400.705254] [] ? try_to_wake_up+0x248/0x256
[399400.705282] [] ? autoremove_wake_function+0x9/0x2e
[399400.705310] [] ? netif_tx_lock+0x3d/0x69
[399400.705337] [] ? netdev_drivername+0x3b/0x40
[399400.705364] [] ? dev_watchdog+0xd2/0x16c
[399400.705392] [] ? blk_rq_timed_out_timer+0x2a/0x103
[399400.705421] [] ? run_timer_softirq+0x1c4/0x263
[399400.705450] [] ? __do_softirq+0xdd/0x1a2
[399400.705476] [] ? lapic_next_event+0x18/0x1d
[399400.705503] [] ? call_softirq+0x1c/0x30
[399400.705529] [] ? do_softirq+0x3f/0x79
[399400.705555] [] ? irq_exit+0x36/0x76
[399400.705580] [] ? smp_apic_timer_interrupt+0x87/0x95
[399400.705608] [] ? apic_timer_interrupt+0x13/0x20
[399400.705633][ ] ? acpi_idle_enter_bm+0x273/0x2a5 [processor]
[399400.705685] [] ? acpi_idle_enter_bm+0x26c/0x2a5 [processor]
[399400.705729] [] ? cpuidle_idle_call+0x94/0xee
[399400.705757] [] ? cpu_idle+0x59/0x91
[399400.705782] ---[ end trace e53d97746b1a3cdf ]---
[399402.758125] e1000: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
Юзаем фикс аналогичный http://phpsuxx.blogspot.com/2009/11/e1000-centos-netdev-watchdog-eth0.html
Источник: https://bugzilla.redhat.com/show_bug.cgi?id=398921
Tuesday, 22 June 2010
На сайтах посольств Германии и Финляндии все документы в .pdf
А у Российского УФМС - все в .doc. Делаем выводы сами? :)
Monday, 21 June 2010
Обратите внимание на то, чтобы среди бумаг не оказались деньги, это расценивается как попытка подкупа и влечет за собой отказ в выдаче визы
• Предоставьте на собеседовании все документы, которые Вы прилагаете к
заявлению. Обратите внимание на то, чтобы среди бумаг не оказались деньги,
это расценивается как попытка подкупа и влечет за собой отказ в выдаче визы.
(c) Памятка о порядке получения виз Германии
Официальный сайт посольства Финляндии в Москве
Ибо хрен найдешь его даже гуглом. http://www.finland.org.ru
Saturday, 19 June 2010
Где купить тайм-карты для XboX Live Gold?
Да, например, здесь: http://www.getzeny.ru/partnerbuy/xbox.php
Или вот тут тоже все супер: http://pinsell.ru/ Сразу после оплаты получил ключи на продление и продлился :)
Или вот тут тоже все супер: http://pinsell.ru/ Сразу после оплаты получил ключи на продление и продлился :)
Thursday, 17 June 2010
Как запустить программу с пониженным приоритетом ввода-вывода?
ionice -c 3 programm_name
Проверяйте файловую систему, если на сервере отказала память
После замены, размуеется. Почти всегда будет уйма ошибок, которые если не исправить сразу, можно лишиться данных.
Увеличение диска для Xen VPS с диском в файле
Допустим, у нас есть VPS с малым диском и мы хотим его увеличить. Самый безопасный путь следующий.
Создаем новый файл-фс большего размера:
Останавливаем VPS:
Убежадемся, что VPS точно остановился:
Монтируем оба образа:
Переносим все файлы:
Убеждаемся в идентичности содержимого (визуально, по размеру):
Отмонтируем оба диска:
Теперь редактируем файл конфигурации домена, указываем там новый диск:
Запускаем VPS:
Создаем новый файл-фс большего размера:
dd if=/dev/zero of=/home/vps/domain-new-disk bs=1000000 count=20000
mkfs.ext3 domain-new-disk
Останавливаем VPS:
xm shutdown domain
Убежадемся, что VPS точно остановился:
xm list
Монтируем оба образа:
mkdir /mnt/domain
mkdir /mnt/domain-new
mount -o loop /home/vps/domain-disk /mnt/domain
mount -o loop /home/vps/domain-new-disk /mnt/domain-new
Переносим все файлы:
cp -a /mnt/domain/* /mnt/domain-new/
Убеждаемся в идентичности содержимого (визуально, по размеру):
du -sh /mnt/domain
du -sh /mnt/domain-new
Отмонтируем оба диска:
umount mnt/domain-new
umount mnt/domain
Теперь редактируем файл конфигурации домена, указываем там новый диск:
vi /etc/xen/domain.conf
Запускаем VPS:
xm create -c domain
Защита от запуска нескольких инстансов (экземпляров) Perl / Python скриптов
Решение для Perl
Стоит задача - есть некий скрипт, который производит определенные действия с определенной периодичностью. Вызов скрипта в определенном случае может заблокироваться (допустим, ожиданием ввода-вывода). При этом следом может запуститься вторая копия скрипта (интервал не велик), третья и далее. Что в итоге приведет к тому, что система после разблокировки рухнет. Допустим, наш скрипт зовут: /usr/bin/ispmanager_fix_fastcgi и написан он на Перле.
Для начала алгоритм - узнаем имя текущего скрипта (ну не захардкоживать же его в самом деле), грепаем выдачу ps aux (текущие запущенные в системе процессы) на предмет наличия указанного. Если находим, то просто завершаемся - значит предыдущий запуск скрипта еще продолжает работать.
Во-первых, тут нам понадобится спец-переменная $0, которая содержит имя исполняемой программы. В моем случае это будет "/usr/bin/ispmanager_fix_fastcgi". То есть, код будет такой:
Также в выдачу ps aux обязательно попадет сам grep, поэтому его также нужно исключить:
Итого получается следующий Perl код:
Исключение /bin/sh -c добавлено для Debian cron, где каждая cron задача запускается как два процесса.
Конечно, решение не подойдет для форкащихся процессов, которые имеют одинаковые имена, не подойдет оно и для скриптов запускающихся друг за другом, но если интервал между запусками велик и от него не зависят жизни людей (тут уже ключевые слова звучат, например, как "flock"), то юзать вполне можно :)
Как вариант "красивого решения", могу предложить модуль: Proc::ProcessTable, который на Debian ставится вот так:
Решение для Python
Логику рассуждений повторять не буду, приведу лишь код.
Стоит задача - есть некий скрипт, который производит определенные действия с определенной периодичностью. Вызов скрипта в определенном случае может заблокироваться (допустим, ожиданием ввода-вывода). При этом следом может запуститься вторая копия скрипта (интервал не велик), третья и далее. Что в итоге приведет к тому, что система после разблокировки рухнет. Допустим, наш скрипт зовут: /usr/bin/ispmanager_fix_fastcgi и написан он на Перле.
Для начала алгоритм - узнаем имя текущего скрипта (ну не захардкоживать же его в самом деле), грепаем выдачу ps aux (текущие запущенные в системе процессы) на предмет наличия указанного. Если находим, то просто завершаемся - значит предыдущий запуск скрипта еще продолжает работать.
Во-первых, тут нам понадобится спец-переменная $0, которая содержит имя исполняемой программы. В моем случае это будет "/usr/bin/ispmanager_fix_fastcgi". То есть, код будет такой:
ps aux | grep "/usr/bin/ispmanager_fix_fastcgi"Далее нам надо будет исключить из выдачи ps aux скрипт, из которго сделан запрос проверки. Тут нам поможет встроенная переменная $$, содержащая pid текущего процесса, который в пределах системы, разумеется, уникален. То есть, у нас получается нечто вида:
ps aux | grep "/usr/bin/ispmanager_fix_fastcgi" | grep -v "pid"
Также в выдачу ps aux обязательно попадет сам grep, поэтому его также нужно исключить:
ps aux | grep "/usr/bin/ispmanager_fix_fastcgi" | grep -v "pid" | grep -v grep
Итого получается следующий Perl код:
#!/usr/bin/perl
use strict;
use warnings;
unless ( system("ps aux | grep $0 | grep -v grep | grep -v $$ | grep -v '/bin/sh -c' > /dev/null") ) {
print "Duplicate!\n";
exit 0; # another copy already running
}
# тут код параллельного запуска которого мы и собираемся избегать
Исключение /bin/sh -c добавлено для Debian cron, где каждая cron задача запускается как два процесса.
Конечно, решение не подойдет для форкащихся процессов, которые имеют одинаковые имена, не подойдет оно и для скриптов запускающихся друг за другом, но если интервал между запусками велик и от него не зависят жизни людей (тут уже ключевые слова звучат, например, как "flock"), то юзать вполне можно :)
Как вариант "красивого решения", могу предложить модуль: Proc::ProcessTable, который на Debian ставится вот так:
apt-get install -y libproc-processtable-perl
Решение для Python
Логику рассуждений повторять не буду, приведу лишь код.
import os pid = os.getpid() Nil, scriptname = os.path.split(sys.argv[0]) result = os.system("ps aux | grep '" + scriptname + "' | grep -v grep | grep -v '" + str(pid) + "' > /dev/null" ) if result == 0: print "Another copy of script already running" sys.exit(0)
Wednesday, 16 June 2010
Запуск теста железа на FastVPS.ru
Перезагружаемся в Rescue, даем команду "hwcheck", в меню выбора нажимаем A. После этого тесты будут запущены. Потом отключаемся от консоли командами CTRL+a d, в ответ нам будет выдано "[detached]", что ознаачет о том, что мы отключились от экрана, где идут тесты, но при этом тесты не прерваны. После этого можно отключаться от ssh.
Есть также способ запуска теста без скрина:
Через часов 12 снова подключаемся к машине по ssh, вводим команду screen -r и перед нами разверытвается окно с данными законченых тестов, но его не видно целиком - только нижнюю часть. Теперь нажимаем клавиши CTRL+a [, после чего screen переходит в copy-mode и стрелочками можно подняться на экран выше и просмотреть результаты всех тестов.
Есть также способ запуска теста без скрина:
/root/.oldroot/nfs/check/menu.sh
Через часов 12 снова подключаемся к машине по ssh, вводим команду screen -r и перед нами разверытвается окно с данными законченых тестов, но его не видно целиком - только нижнюю часть. Теперь нажимаем клавиши CTRL+a [, после чего screen переходит в copy-mode и стрелочками можно подняться на экран выше и просмотреть результаты всех тестов.
Проект Kinect (ex. "Natal") от Microsoft, презентация на E3
Всем смотреть: http://www.youtube.com/watch?v=PY68bAeDtF0
С 11й минуты начинается самая зрелищная часть :)
С 11й минуты начинается самая зрелищная часть :)
Monday, 14 June 2010
Запуск 32 битного софта на 64 битной платформе
На 64 битной машине при попытке запустить 32 битный бинарик имеем следующее:
И все, пашет :)
./sc_serv
-bash: ./sc_serv: No such file or directory
apt-get install ia32-libs
И все, пашет :)
Sunday, 13 June 2010
Потрясающий блог об алгоритмах
Рекомендую всем всем всем: http://www.catonmat.net/sitemap/
Ловля бага в PHP
Пост моего товарища, прошу любить и жаловать http://habrahabr.ru/blogs/php/95656/ !
Friday, 11 June 2010
Хотеть поиграть в космические рейнджеры
Для тех, кто не в теме: http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%81%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%80%D0%B5%D0%B9%D0%BD%D0%B4%D0%B6%D0%B5%D1%80%D1%8B_2:_%D0%94%D0%BE%D0%BC%D0%B8%D0%BD%D0%B0%D1%82%D0%BE%D1%80%D1%8B
Thursday, 10 June 2010
Wednesday, 9 June 2010
Коммерческий космос и нелепые понты совка :)
Рекомендую прочесть: http://blog.not-a-kernel-guy.com/2010/06/08/836
Sunday, 6 June 2010
Subdreamer жжот
Dear Subdreamer Customer,
A serious security vulnerability in the latest release has just come to our attention. If you have already downloaded Subdreamer CMS 3.1 then please download and apply this patch immediately:
А из наших я ни у кого не видел, чтобы присылали нечто подобное. Промолчат, запихают в новый релиз и делу конец.
О кариесе
Отличается от большинства остальных бактерий, находящихся в нашем рту, способностью жить и процветать при высокой кислотности. Кроме того, умеет производить специальный полимер, с помощью которого может прилипать даже к гладкой поверхности зубов (а не только болтаться в трещинках и пазухах). Для производства этого полимера ей абсолютно необходима сахароза (именно она, а не какой-нибудь иной сахар), отсюда и связь между большим потреблением сахара и развитием кариеса.
Бороться с этой тварью (и последствиями ее разножения) можно фторосодержащими зубными пастами (сам процесс чистки зубов пользы не имеет), а в особо-запущенных случаях можно и антибиотиками. Помогают ли от нее полоскалки для рта (содержащие хлоргексидин) - консенсуса на этот вопрос еще не сложилось, кратковременный эффект вроде есть, а долговременный - не очень. Жевачки с ксилитолом, насколько я понял, тоже особой пользы не несут - разве что собственно процесс жевания усиливает отделение слюны, которая обладает буферными свойствами и приводит в норму кислотный баланс после еды.
http://shvarz.livejournal.com/238226.html
Saturday, 5 June 2010
Как правильно разбирать soft-raid на fastvps.ru?
Итак, допустим, мы имеем следующую картину raid массивов:
Очевидно, у нас три массива - /dev/md0, /dev/md1, /dev/md2. Каждый из которых, соответственно, состоит из двух физических дисков - md0 из /dev/sda1, /dev/sdb1, md1 из /dev/sda2, /dev/sdb2, md2 из /dev/sda3, /dev/sdb3.
Допустим, у нас физически отказал диск /dev/sda и в результате этого сервер начинает работать крайне нестабильно (да, несмотря на raid), поэтому сбойный жесткий диск необходимо выбросить из массива и дождаться плановой его замены. Но как это сделать?
Разбор массива осуществляется двумя шагами - метим диск как faulty (отказ) ключом -f, а потом выбрасываем ключом -r. Например, для массива /dev/md0 это выглядит так:
После этого массив /dev/md0 перейдет в однодисковый (DEGRADED) режим:
Повторяем аналогичную операцию для других массивов (/dev/md1 и /dev/md2) и все, сбойный диск исключен из массива.
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
4200896 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
306263040 blocks [2/2] [UU]
[==========>..........] resync = 51.7% (158425088/306263040) finish=51.3min speed=47962K/sec
unused devices:
Очевидно, у нас три массива - /dev/md0, /dev/md1, /dev/md2. Каждый из которых, соответственно, состоит из двух физических дисков - md0 из /dev/sda1, /dev/sdb1, md1 из /dev/sda2, /dev/sdb2, md2 из /dev/sda3, /dev/sdb3.
Допустим, у нас физически отказал диск /dev/sda и в результате этого сервер начинает работать крайне нестабильно (да, несмотря на raid), поэтому сбойный жесткий диск необходимо выбросить из массива и дождаться плановой его замены. Но как это сделать?
Разбор массива осуществляется двумя шагами - метим диск как faulty (отказ) ключом -f, а потом выбрасываем ключом -r. Например, для массива /dev/md0 это выглядит так:
mdadm /dev/md0 -f /dev/sda1
mdadm /dev/md0 -r /dev/sda1
После этого массив /dev/md0 перейдет в однодисковый (DEGRADED) режим:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1]
4200896 blocks [2/1] [_U]
Повторяем аналогичную операцию для других массивов (/dev/md1 и /dev/md2) и все, сбойный диск исключен из массива.
Friday, 4 June 2010
Удаление папок с сессиями PHP в ISPManager
mv mod-tmp mod-tmp2
mkdir mod-tmp
chmod 2700 mod-tmp
chown 33:33 mod-tmp
rm -rf mod-tmp2
Thursday, 3 June 2010
Самое популярное в стране ИТ - подкастинг радио
Всем слушать: http://radio-t.rpod.ru/ !
Wednesday, 2 June 2010
BGP Blackhole как защита от DDoS
Что это такое: http://m.habrahabr.ru/post/91574/
Проблема с открытием формул Equation в Office 2008 Mac? Обновитесь!
Description of the Office 2008 for Mac 12.0.1 Update
http://support.microsoft.com/kb/948057
Но мне не помогло, все равно кракозяблы в части формул :(
Documents that contain Word 2007 for Windows equations open correctly.
This update fixes an issue that prevents Word 2008 from opening some documents. The issue affects only documents that contain equations that were created in Word 2007 for Windows.
http://support.microsoft.com/kb/948057
Но мне не помогло, все равно кракозяблы в части формул :(
Tuesday, 1 June 2010
BTRFS
Anybody who has had to replace a drive in a RAID array knows that the rebuild process can be long and painful. While all of that data is being copied, the array runs slowly and does not provide the usual protections. The advantage of running RAID within Btrfs is that the filesystem knows which blocks contain useful data and which do not. So, while an MD-based RAID array must copy an entire drive's worth of data, Btrfs can get by without copying unused blocks.
Круто, чо.
Юзаете венду?
Компания Google начала воплощение в жизнь плана по полному избавлению от использования платформы Windows на рабочих станциях персонала компании, мотивировав такое решение работой в области повышения информационной безопасности. Указание о повсеместном переходе на другие операционные системы было дано в начале января, после истории со взломом нескольких машин сотрудников Google, через уязвимость в Internet Explorer.
http://rss.feedsportal.com/c/32457/f/477056/s/ad9d475/l/0L0Sopennet0Bru0Copennews0Cart0Bshtml0Dnum0F26797/story01.htm
Subscribe to:
Posts
(
Atom
)