Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

E-gold признался

22.07.08 @ 19:31 — E-gold

ФБР сообщает: компания “E-Gold” и её три владельца признали себя виновными в отмывании денег и незаконных денежных операциях. Компания согласилась на конфискацию $1.75 миллиона до оглашения приговора.

Сам приговор будет оглашён 20 ноября. Компанию могут оштрафовать на сумму до $3.7 миллионов; владельцам светят разные сроки и штрафы (одному — до 25 лет и $750 тысяч, двум другим — до 5 лет и $25 тысяч).

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

Вообще, больше всего претензий к еголду у американской фемиды именно к полной анонимности и, как следствие, возможности использования системы преступниками для совершения таких преступлений, как: эксплуатация детей, финансовые пирамиды, мошенничество с кредитными картами, воровство identities.

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

Локальный SVN репозиторий

09.07.08 @ 09:24 — Software, Source Control

Если вы используете SVN под Windows, то почти наверняка это — Tortoise SVN.

В стандартную установку Tortoise SVN входит не только SVN клиент, с помощью которого можно делать Checkout, Update и Commit, но и SVN сервер.

Соответственно, если у вас стоит Tortoise SVN, то вы можете поднять свой локальный SVN сервер.

Зачем это необходимо? SVN — это удобно, и это реально сохраняет время. Максимум, на что хватает среднего девелопера при интенсивной разработке без системы контроля версий — сделать текущий бекап проекта, скопировав все текущие файлы в папку вида project_name.20080709.backup. Единственное, что позволяет такая система сделать удобно и быстро — откат к выбранной “версии” проекта. Никакого show differences, restore to revision и прочих прелестей.

В общем, если вы профессионально занимаетесь написанием программ и не пользуетесь никакой системой контроля версий, вы лишаете себя многих прелестей.

Итак, первым делом надо создать репозиторий. Для него подойдёт любая пустая директория, например c:\Repository\. В контекстном меню этой директории выбираем команду TortoiseSVN » Create Repository here. Файловая система FSFS подойдёт.

Пусть мы хотим добавить в репозиторий директорию d:\projects\megashit\source\. В контекстной меню папки c:\Repository\ вызываем TortoiseSVN » Repo-browser. Внутри Repo-browser у нас должна быть видна директория file:///C:/Repository/, в её контекстном меню выбираем add folder и добавляем директорию d:\projects\megashit\source\, которую затем переименовываем в megashit с помощью пункта контекстного меню rename.

Теперь делаем бекап директории d:\projects\megashit\source\ и удаляем из неё все файлы (они уже есть в репозитории). В контекстном меню делаем Checkout из file:///C:/Repository/megashit/.

Если Checkout отработал нормально, то в папке d:\projects\megashit\source\ окажутся те же файлы, что были в ней до удаления + скрытая папка .svn, которую не надо трогать.

Теперь в контекстном меню папки d:\projects\megashit\source\ должны появиться команды SVN Update и SVN Commit, с помощью которых можно работать с репозиторием (svn-адрес которого, напомню, file:///C:/Repository/megashit/).

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

Protocol Buffers

09.07.08 @ 00:57 — Programming, Google

В понедельник Google выпустил Protocol Buffers — формат хранения данных, позициниоруемый гуглом как частичная замена XML.

Вот как выглядит пример XML:

  <person>
    <name>Йа Креведко</name>
    <email>ja@kreved.co</email>
  </person>

А вот так выглядит та же информация, записанная с помощью Protocol Buffers (в текстовом формате):

  person {
    name = "Йа Креведко"
    email = "ja@kreved.co"
  }

Кроме текстового формата, Protocol Buffers может быть бинарным — т.е. Human Readability, как в случае с XML, не гарантирована.

Для любого файла в формате Protocol Buffers нужен файл формата .proto, в котором описывается структура данных:

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

Google и сам пользуется этим форматом во многих своих проектах, и другим рекомендует его вместо XML для сериалайзинга структурированных данных, ибо Protocol Buffers по сравнению с XML:

  • проще
  • в 3-10 раз меньше
  • в 20-100 раз быстрее
  • менее неопределённые
  • порождают классы для доступа к данным, которые легче использовать программно

Protocol Buffers подходят не для всего: например, хранить текстовый документ с разметкой с помощью этого формата будет неудобно, т.к. структура будет смешиваться с текстом.

Оценка качества работы программиста

Программа Programeter на основе анализа исходников проекта в репозитории позволяет оценить/измерить такие характеристики работы каждого программиста:

  • уровень знакомства программиста со всей базой исходников;
  • количество нового, привнесённого этим программистом кода в репозиторий;
  • уровень “выживаемости” кода программиста;
  • размер общего вклада программиста в репозиторий;
  • уровень активности в течение одного месяца;
  • ориентированность на сотрудничество с другими программистами;
  • среднюю сложность написанного кода;
  • соотношение объёма написанных комментариев к объёму написанного кода.

По-моему, фуфло полнейшее. Если в вашей организации пытаются внедрить что-то похожее и принимать какие-то кадровые/зарплатные решения на основе таких вот данных: смело меняйте работу, если не хотите страдать от приступов маразма менеджмента.

Почему менеджмент, принимающий решения на основе таких показателей маразматичен?

Потому что все эти циферки накручиваются, с разной степенью лёгкости.

Например, повысить уровень “сотрудничества с другими программистами” можно так: договориться группой в курилке о том, что как только у кого-то возникает потребность в новой “библиотечной” функции, он сообщает об этом коллегам и кто-то (кому нужно поднять уровень сильнее всего) создаёт эту функцию.

Сложность кода накручивается тоже очень легко; искусственное завышение размера общего вклада также не вызывает особых проблем у опытного программиста.

А накручивать обязательно будут, если накрутка приносит какую-то выгоду (повышение или непонижение з/п, например). Вот выдержки из реальной истории о том, как в одной конторе начали оценивать работу программистов по количеству коммитов в неделю (в переводе Сергея Можайского):

“С помощью его скрипта он мог сделать из одного коммита 20-30. Он вполне мог ожидать повышения, поскольку его продуктивность [по меркам системы] возросла более чем на 600%.

Несмотря на то что это длится уже два месяца, удивительно, что начальник и не подозревает о том, что большинство коммитов - однострочные изменения, или что исправление опечатки в слове “guarantee” в форме заказа потребовало более дюжины коммитов.”

Хорошо, если накрутчики будут просто не ухудшать код своими накрутками, а если начнут ухудшать? Выгребать и фиксить будет вся команда, а не только накручивающие.

В общем, если в вашем проекте решения о уровне полезности программистов принимаются не на основе мнения ведущего программиста, а на основе таких вот “показателей надоев”, то дело плохо.

Выковырять пароль из миранды

07.07.08 @ 20:43 — Software

Для восстановления паролей из всяческих виндовых программ я пользуюсь утилиткой “iOplus Password Recovery XP”.

Но она не работает с Miranda Instant Messenger.

Оказывается, на сайте Миранды есть чудесный Miranda IM Password Decoder 0.0.0.6, выдирающий все пароли из мирандовской базы (все = всех задействованных мессенджеров).

Разархивировать, скопировать в папку с профайлом (базой), запустить (из консоли) и ждать.

У меня выковыряла какой-то пароль (вдобавок к искомому), который я вообще не могу идентифицировать.

Угадай, что прокомментировали

06.07.08 @ 10:41 — CMS

У меня в CMSине есть недоделка: в извещении о новом комментарии не указывается subject комментируемого материала, указывается только его URL.

Если в категории включены нечисловые урлы (вида /blog/scrabble-online.html), то никакой проблемы с идентификацией материала по урлу не возникает.

А если в категории используются числовые урлы (например: /blog/2008/06/25/167/), то очень часто не удаётся вспомнить, что же ты писал 25 июня 2008 года в блог.

В извещении приходит текст комментария целиком. Так вот, зачастую люди пишут такие комментарии (не спам!), по которым понять (не переходя по ссылке), какую заметку прокомментировал автор комментария не удаётся.

JavaScript: создать массив из одной переменной

06.07.08 @ 10:30 — JavaScript

Задача: создать в JavaScript массив из одного элемента, равного значению переменной x.

Очевидное решение var a = new Array(x); — неправильно.

Если переменная x имеет тип number и является целым числом (например, x=5), то вместо массива с одним элементом, равным 5, мы получим пустой массив из пяти элементов. А если x является дробным числом (например, x = 5.2), то мы вообще получим ошибку invalid array length. Если x — строка, то решение сработает.

Причина такого поведения браузеров в том, что при создании массива через Array(x) интерпретатор ведёт себя по-разному в зависимости от типа переменной x. Если он получает тип number, то он трактует этот параметр как длину создаваемого массива, а не как значение нулевого элемента.

Правильный ответ: var a = [x];

Продовольствие в обмен на нефть

05.07.08 @ 23:48 — Politics, Russian, Business

В продовольственном кризисе Медведев обвинил и все страны Запада в целом, так как они инвестировали слишком много средств в производство биотоплива.

Я на неделе прочитал занимательный конспект на тему того, когда же наконец подешевеет нефть.

Биотопливо, вообще говоря, имеет очень низкий EROEI (отношение возврата энергии к затраченной энергии): например, этанол даёт 34%-ный навар на затраченную энергию (т.е. EROEI этанола равен 1.34, а EROEI нефти может достигать десятков единиц - в зависимости от сложности добычи).

Интенсификация производства биотоплива вызвана тем, что страны-производители нефти задрали цены до такого уровня, при которых даже 34% навар в топливе приносит производителям биотоплива ощутимую прибыль. Также к причинам увеличения объёмов производства можно отнести субсидирование (явное или скрытое) правительствами агробизнеса, участвующего в производстве биотоплива.

В результате фермеры стали выращивать больше биомассы (растений для производства биотоплива) и меньше продуктовых растений. Уменьшился объём производимых продуктов питания и возросла его стоимость.

Обвинять в этом страны Запада, инвестирующие в биотопливо в надежде найти замену золотой нефти, — по крайней мере нелогично. Продавайте нефть по $40 за баррель и никто не будет заниматься биотопливом. Проблема в том, что нефти всё меньше и меньше, и стоит она всё дороже и дороже: в упомянутом мною конспекте art_of_arts достаточно убедительно разоблачает данные стран-экспортёров нефти о “подтверждённых запасах нефти”.

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

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

Поверхностный поиск по данным российского Госкомстата показывает, что президент России банально пиздит: в 2007 году Россия экспортировала продовольствия на 9.1 миллиардов долларов США, а импортировала — на 27.6 миллиардов (интересно, почему госкомстат ведёт учёт во вражеских денежных единицах?). Иначе говоря, Россия закупает в три раза больше хавки, чем продаёт: именно поэтому продовольственный кризис по ней ударил настолько сильно, что правительству пришлось замораживать цены на “социально значимые продукты”.

На прошлой неделе глава “Газпрома” Алексей Миллер, находясь во Франции, предположил, что цена баррели нефти может достичь 250 долларов.

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

Продольственный кризис — следствие и свидетельство того, что нефтяная эпоха подходит к своему концу. Не виноват никто, кроме нефтедобытчиков, делающих вид, что с нефтью всё окей: типа она просто будет дорожать и всё. На самом деле нефть будет дорожать всё быстрее и быстрее, и её всё равно будет не хватать экономике, завязанной на непрерывный рост.

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

Битрикс скачать бесплатно

На днях рассказали про местную (запорожскую) кагбе веб-студию, которая делает своим клиентам сайты на ворованном битриксе.

Причём цены клиентам (не местным, в основном российским) студия выставляет не демпинговые, а вполне серьёзные. Что делают клиенты, когда обнаруживают, что стали скупщиками краденного, я не знаю. Знаю только, что студия сидит на постоянном очке, надеясь, что российско-украинская граница их спасёт.

Я сам зарабатываю деньги написанием софта, но в то же время часто пользуюсь “лекарствами”, хоть стараюсь делать это как можно реже: иногда покупаю, но чаще нахожу бесплатный аналог коммерческого софта.

Использование крякнутого программного обеспечения в личных целях я считаю допустимым: если у пользователя хватает мозгов поломать софт, а у разработчиков не хватает мозгов софт защитить, то значит пользователь “победил” разработчиков и в качестве приза ему достаётся возможность пользоваться ломанным софтом бесплатно.

А вот перепродажу крякнутого софта я считаю воровством: вместо того, чтобы купить у авторов, клиенты покупают у пиратов.

Это как раз тот случай, когда авторы софта могут говорить о реально недополученной прибыли: пользователи отдают деньги за софт не разработчику, а вору. Т.е. у пиратов отовариваются потенциальные покупатели софта у разработчиков.

В случае личного использования поломанной версии пользователь в 99 случаях из 100 не является потенциальным покупателем: будучи поставленным перед выбором — купить софт или перестать им пользоваться — пользователь сделает выбор в пользу последнего. Поэтому размер недополученной прибыли, заявляемый компаниями в качестве понесённого ущерба, следует делить как минимум на 100.

Возвращаясь к кагбе студии, впаривающей клиентам ворованный битрикс: по-моему, это просто жлобство. С их ценами можно вполне позволить себе стать партнёром Битрикса и делать сайты, покупая для клиентов легальные лицензии на “1С-Битрикс: Управление сайтом”.

  
Реклама::

 
Реклама::