2010-03-22

Десять правил ведения бизнеса в России

Совершенно разумные правила ведения бизнеса в нашей стране, согласен на все сто:

1. Держите сервера за границей

Почему так?
Далеко за примерами ходить не надо, а случай не единичный.

Представьте, что у вас, например, сервис электронных магазинов. Или хостинг. И тут под предлогом «поиска улик» у вас выключают и опечатывают все сервера. Вы теряете клиентов и попадаете на убытки. В лучшем случае вы просто вне бизнеса, в худшем — еще и с долгами.

Да даже если ваш скромный интернет-магазин никому не нужен, где гарантия, что когда будут трахать вашего хостера, не вырубят ваш сервер, даже бекапы не дав сделать. Да, и делайте бекапы регулярно. Любое серьезное изменение — бекап на локальную машину или сервер в датацентре, не связанном с тем, где хостится ваш сайт. А то обычно оказывается, что и бекапы все были на той же машине.

Читать дальше...

 

Коментариев: 1

 
  2010-03-22

Полезное свойство функции substr в PHP

Функция substr служит для взятия подстроки, синткасис у нее следующий:

string substr ( string string, int start [, int length] )

Допустим, вам нужно отрезать последний символ, знатоки Javascript или Си напишут примерно следующее:

$s = 'some string1';
$s = substr($s,0,strlen($s)-1); //some string

пока терпимо, хотя код уже явно громоздкий и трудный для понимания, задача усложняется если нужно получить несколько последних символов в строке:

$s = 'some string123';
$s = substr($s,strlen($s)-4); //123

понять что делает этот код довольно трудно, несмотря на то что его назначение тривиальнейшее.

К счастью в PHP в substr можно использовать ОТРИЦАТЕЛЬНЫЕ ЗНАЧЕНИЯ для стартового символа и длинны:

//пример первый
$s = 'some string1';
$s = substr($s,0,-1); //some string

//пример второй
$s = 'some string123';
$s = substr($s,-3); //123

 

Кака видно, в этом случае код читается на порядок проще. Ничего подобного нет ни в Си ни в JavaScript, а жаль.

 

Коментариев: 4

 
  2010-03-20

Про науку и образование в России

Про то, что науку и образование в России уничтожают сейчас говорить уже даже не интересно. При этом по телевизору постоянно твердят о куче миллионов якобы выделяемых на науку.

Типичный пример - покупка ПО для школ и ВУЗов. Из бюджета выделили огромные деньги на закупку программного обеспечения для нужд образования. Причем провернули все очень технично, никто ничего даже не заметил. Сначала взяли за шкирку сельского учителя с хорошей говорящей фамилией Поносов. Раструбили о проблеме на всю страну, а потом взяли да и закупили ПО от Microsoft во все школы и ВУЗы.
Как раз это происходило когда я работал в Саратовском Государственном Техническом Университете - история сама по себе любопытная.

На нашей кафедре годами существовал собственный парк компьютеров. Компьютеры были так себе - их собирали годами на деньги студентов, которые не хотят учиться сами кафедры. Когда началась борьба за лицензионное программное обеспечение в один прекрасный день на кафедру принесли совершенно новые современные компьютеры с предустановленным Microsoft Windows , Microsoft Word,  Mathcad, Matlab.

Представляете сколько это все стоит только на одной машине? А компьютеров на кафедру выделили около пятнадцати штук. И это только на одной кафедре - тоже самое было на других кафедрах. Везде новые компьютеры, и везде Windows.

Во всем мире вузы стараются экономить на программном обеспечении, поэтому все открытое программное обеспечение разрабатывается энтузиастами - студентами и преподавателями в вузах. Причем, выигрывают от этого все - студенты получают прекрасную возможность приобрести навыки программирования, преподаватели имеют возможность показать студентам как надо разрабатывать ПО, причем на конкретных примерах - тысячи исходных кодов доступны для ознакомления.

Однако, в нашей стране все не так. В нашей стране на каждом компьютере стоит Microsoft Windows, открытое ПО пусть пишут в других странах а мы и так программировать научимся.

На мой взгляд для школ и вузов Microsoft Windows  противопоказан. Студенту гораздо нагляднее и проще освоить программирование в Unix среде - ведь это по сути большой конструктор. Для линукса не нужен антивирус - а это значительная статья расходов для вуза. В линуксе из коробки есть все необходимое для работы. В то же время на Windows нужно покупать и ставить кучу дополнительного софта, особенно это касается разработки ПО и научных программ.

Но все дело в том что Линукс не выгоден ВУЗам - все в России живут откатами - больше платить преподавателям не выгодно - преподаватели не откатывают ректору за повышение зарплаты - но если пустить эти денежки на закупку новых компьютеров - будьте уверены, те кто принимают решение у какой фирмы эти компьютеры закупать получат хорошие откаты. Как можно получить откат с покупки Линкус, он же бесплатный! Наоборот, придется платить специалистам за внедрение, а они откаты как то не очень дают - работы у них и без ВУЗов выше крыши. А с ПО Microsoft будьте уверены - все хорошо наварятся. Антивирусы же вообще весчь отличная - за них платят каждый год - а значит бюджетные денежки будут освоены без проблем.

Хотя все же говорить, что виноваты в том, что в ВУЗах стоит Windows а не Линукс только руководители не совсем правильно. Преподаватели тоже виноваты. Если бы на всех кафедрах уже стоял Линукс - хрен бы его кто заменил на Windows - все бы сразу взбунтовались. Но на кафедрах стояла левая винда.

Просто после определенного возраста очень сложно осваивать новые технологии. А на кафедрах сейчас работают одни старики - молодежь туда не заманишь - зарплаты в ВУЗах сейчас смешные - правда почему никто то не смеётся. Доценту платят в месяц столько, сколько хороший программист зарабатывает за день. Новых людей на кафедре нет, старые - умирают. За те пять лет что я там проработал - от старости и болезней умерло пять человек, и это только на одной кафедре.

Поэтому, образованию в том виде в котором оно было в советские времена приходит пушистый северный зверек. То образование, которым мы все так гордимся уходит вместе с последними представителями старой системы. Новой системы никто не создал. Какое образование будут получать наши дети это еще не известно. Но все в наших руках, давайте же не бояться осваивать новые технологии, давайте сами решать какие программы нам нужны - иначе за нас это сделают другие.

 

Коментариев: 3

 
  2010-03-19

Как найти все жесткие ссылки на файл

Чтобы найти все жесткие ссылки на файл, сначала выполнием ls и смотрим какой у файла inode, затем скармливаем этот inode команде find:

> ls -li filetosearch.txt

9964445 -rwxrwxrwx  2 root root 1813 Sep 25 03:06 filetosearch.txt

> find /home -xdev -inum 9964445

отсюда

 

Оставить комментарий

 
  2010-03-18

Микрософт что то совсем опустились

Ура, теперь микрософт всем раздает бесплатный антивирус, однако, как было бы здорово для пользователей если бы под windows не было бы вирусов, совсем. Как например в случае с Линуксом - нет вирусов под Линукс, и это основное его преимущество, что бы кто не говорил...

 

Коментариев: 1

 
  2010-03-18

SSH без пароля

Краткая инструкция как настроить доверительные отношение между двумя машинами по ssh. Мне она нравится тем что все команды выполнятся на одной машине.

Даны два компьютера server1 и server2, пользователей будут звать user1 и user2 соответственно.

Зaходим на server1

ssh-keygen -t rsa

выбираем имя файла по умолчанию - просто жмем enter
парольная фраза должна быть пустой если вы вы не хотите чтобы вместо пароля сервера спрашивалась парольная фраза ключа

создаем папочку .ssh на удаленной машине

ssh user2@server2 mkdir -p .ssh

добавляем ключ в конец файла

cat ~/.ssh/id_rsa.pub | ssh user2@server2 'cat >> .ssh/authorized_keys'

пробуем соединиться по ssh - если все сделано правильно - пароль при этом не должен спрашиваться.

Следует учесть что папка .ssh должна иметь права доступа 700 а файл с ключами 640 если это не так - нужно поправить
на моей системе файл с ключами называется authorized_keys2 в то время как обычно он называется authorized_keys

Когда пробовал выполять команды ssh получил stdin: is not a tty — проблема разрешилась удалением .bashrc из пользовательской папки.

Upd: как оказалось позже совсем удалять .bashrs не обязательно - теряются многие полезные настройки, достаточно закоментировать несколько строчек:

# Source global definitions
#if [ -f /etc/bashrc ]; then
#       . /etc/bashrc
#fi
 
 

Оставить комментарий

 
  2010-03-16

Дрова vs Li-ion аккумуляторы

Задача: сравнить количество энергии запасённой в 1 кг. дров с количеством энергии запасённой в литий-ионном аккумуляторе такой же массы.

Дано:
удельная энергоёмкость Li-ion аккумуляторов: 250 мАч/г или 250 Ач/кг
Напряжение одной банки: 3.6 В
Удельная теплота сгорания дерева: 20 МДж/кг

Следовательно аккумулятор массой 1 кг запасет U*I*3600 = 250*3.6*3600=3240000 Дж энергии или 3.24 МДж

Аналогичная масса дерева запасет примерно в 6 раз больше энергии чем литий-ионный аккумулятор такой же массы.

Оказывается человек со времён пещерных людей совершенно не научился эффективно накапливать энергию, кто знает, может ещё научимся, в нашем запасе ещё есть лет пятьдесят, пока нефть не кончилась...

 

Коментариев: 2

 
  2010-03-15

Как поставить модуль для Perl

Понадобилось установить на сервер перловый модуль File::RSyncP. При попытке поставить методом "в лоб" получил следующее:

Insecure dependency in require while running with -T switch at /usr/lib/perl5/5.8.8/Pod/Perldoc.pm line 1634.

Однако, как оказалось метод в лоб не всегда применим для перловых модулей и лучше использовать специальный "шелл":

Запускаем шелл:
perl -MCPAN -eshell

далее набираем:
install File::RSyncP

Нужный модуль автоматически скачается и установится.

 

Оставить комментарий

 
  2010-03-15

Насколько будет выгоден электромобиль

Сейчас модно говорить об электромобилях - мол они экономиченее, экологичнее, экрономичнее и еще много всякого ...ее.

Прикинем во сколько обойдется заправка автомобиля электричеством вместо бензина.

Дано: стоимость киловат-часа электроэнернии 2.09 рубля.
допустим, что одна заправка обычного городского автомобиля 20 литров 95-ого бензина стоит примерно 500 рублей. Плотность бензина: 0.567 кг/литр, теплота сгорания бензина: 42 МДж/кг.
Найти: сколько будет стоить заправка электричесвом автомобиля при одинаковом количестве энергии одной заправки и одинаковом КПД преобразования энергии.

В 20 литрах 95 бензина 11.34 кг (20*0.567), следовательно в 20 литрах бензина запасены 476.28 МДж энергии. 1 киловат-час это 3.6 МДж. Следовательно в 20 литрах бензина запасены 132.3 Киловат-часов энергии, которая будет стоить 276.51 рубль.

Получается почти в два раза дешевле чем на бензине.

 

Коментариев: 3

 
  2010-03-13

Про программистов

Подпишусь под каждым словом:

...программисты обладают завидной психологической устойчивостью. Если программист пережил институт (говорят на математических и ITшных факультетах самый большой процент сходов с катушек) то он практически неуязвим в психологическом плане. Дело в том, что программисты воспринимают и строят жизнь как некий алгоритм с ответвлениями возможных вариаций. Их мир стабилен и прост, а объективная реальность интересует слабо. Вчера два сотрудника спросили меня: "Маш, а че все по какой-то кризис раздувают, расскажи, а?" Вчера!
От этого у программистов не бывает страхов, серьезных жизненных сомнений и не случается неожиданностей. Так же у них, по большей части, напрочь отсутствует навык рефлексии, поэтому, даже имеющиеся у них комплексы, они не ощущают. Тот дискомфорт и неуверенность которые они, возможно, испытывают в реальном мире проходят у них по графе "невнятных ощущений" и, не получая никакого развития, просто игнорируются.
Устойчивости им добавляет еще и то, что большинство программистов действительно любят свою работу и получают от нее моральное удовлетворение. Они творят! Какой процент остальных людей может похвастаться тем же? Вооот. При этом, им не нужно нюхать кокс и тусоваться ночами как киношникам и музыкантам.
Словом, в то время как весь остальной мир тщетно носится по психоаналитикам и бухает от непонятной тоски, программисты чувствуют себя в полном порядке. Читать полностью....

 

Оставить комментарий