Home
Ванькин ЖЖ

> recent entries
> calendar
> friends




> profile
> previous 20 entries

Advertisement

Sunday, July 19th, 2009
3:38 pm - Theory of Constraints
Оказывается, существует довольно интересная теория управления проектами — Теория Ограничений, которая дополняет и расширяет классический подход, описываемый в Guide to PMBok. Последний является международным промышленным стандартом, сертификацию по которому осуществляет PMI. Theory of Constraints (TOC) в свою очередь позиционируется авторами, как более современный и эффективный подход, однако требующий от менеджера измененить свое стандартное мышление.

О применении этой теории к разработке программных продуктов в России: интервью с соавтором в журнале CIO.ru.

К слову, надо будет поискать какие-нибудь модные концепции, расширяющие Guide to SWEBoK. Поговаривают, многие авторитетные разработчики, в том числе небезызвестные Мартин Фаулер или Гради Буч, считают, что этот промышленный стандарт разработки ПО нуждается в значительных доработках.

(comment on this)

Wednesday, July 15th, 2009
11:52 am - Version numbering
Правила и порядок нумерации версий программных продуктов — это один из многих вопросов, который мне постоянно не давал покоя, и неоднократно был причиной споров с менеджерами и маркетологами.

До абсурда, конечно же, эту проблему довел непревзойденный лидер всяких абсудров, компания Microsoft: так, например, программная версия Windows 7 вовсе не 7.0, а 6.1.

Познавательная статья, которая приводит множество удачных и неудачных примеров нумерования версий в ПО: The Amazing World of Version Numbers.

(comment on this)

Tuesday, July 14th, 2009
12:03 pm - Logging is an art
Logging is an art — такая концептуальная идея изложена в интересной статье, в которой пошагово описываются те очевидные действия, которые должен выполнить пользователь, прежде чем сообщить разработчику о проблеме в виде «все сломалось и ничего не работает».

(comment on this)

10:17 am - ORM
Интересная табличка, сравнивающая две стандартных техники ORM: JDO vs JPA.

(3 comments | comment on this)

Tuesday, July 7th, 2009
1:00 pm - Интересы компании и социальные сети
Исследовательская лаборатория HP опубликовала интересное исследование: Towards an Analytic Approach to Evaluate Enterprises' Risk Exposure to Social Networks.

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

(comment on this)

Monday, July 6th, 2009
5:34 pm - Vim ist da powah
EDC недавно опубликовала рейтинг самых популярных платформ разработки среди пользователей: Software Development Platforms - 2009 Rankings (Чтобы скачать весь отчет целиком — просто вбейте в форму данные от балды.)

К сожалению, vim в этот рейтинг не попал :) Зато большой интерес представляют критерии, по которым оцениваются эти платформы.

(2 comments | comment on this)

5:08 pm - Green IT
Один ваш запрос в гугле по количеству вырабатываемого CO2 сравним со вскипанием одного чайника, передает нам FoxNews.

(6 comments | comment on this)

Friday, July 3rd, 2009
11:24 am - Software requirements & Separation of concerns
Часто замечаю, что многие разработчики функциональных требований не обладают функциональным мышлением, и как следствие, функциональные требования функциональнымы по сути и не являются.

В частности, вместо описания состояний, в которых может находится система, нужно описывать действия, которые с ней производит пользователь, например: требование «пользователь может быть авторизованным или неавторизованным» правильнее формулировать, например, так: «система проверяет введенный пользователем пароль, и в случае успешного результата пользователь сможет выполнять такие-то действия». (У меня где-то был более подробный разбор проблемы на примере из реального техзадания. Если кому-то будет интересно, то я опубликую его в следующих сериях).

Мне это казалось интуитивно понятным, и недавно я обнаружил похожую более обобщенную идею Separation of Concerns в авторитетных источниках:

The programmer is having to do several things at the same time, namely, 1. describe what is to be computed; 2. organise the computation sequencing into small steps; 3. organise memory management during the computation.

Ideally, the programmer should be able to concentrate on the first of the three tasks (describing what is to be computed) without being distracted by the other two, more administrative, tasks. Clearly, administration is important but by separating it from the main task we are likely to get more reliable results and we can ease the programming problem by automating much of the administration. The separation of concerns has other advantages as well. For example, program proving becomes much more feasible when details of sequencing and memory management are absent from the program. Furthermore, descriptions of what is to be computed should be free of such detailed step-by-step descriptions of how to do it if they are to be evaluated with different machine architectures. Sequences of small changes to a data object held in a store may be an inappropriate description of how to compute something when a highly parallel machine is being used with thousands of processors distributed throughout the machine and local rather than global storage facilities. Automating the administrative aspects means that the language implementor has to deal with them, but he/she has far more opportunity to make use of very different computation mechanisms with different machine architectures.

Chris Reade, Elements of Functional Programming, 1989


То есть, выражая свою первую идею другими словами, функциональные требования должны концентрироваться на описании того, что будет делать система с точки зрения пользователя (1), а не в какой последовательности нужно подавать команды вычислительной машине (2), и не в каком виде будет представлен в памяти результат этих действий (3).

Но все-таки в первую очередь разработчик должен думать не только о том, что должна делать система, а о том, зачем, с какой целью она это будет делать. Это другой не менее важный concern, о котором советовал задумываться еще в 1974 году небезызвестный Дейкстра:

In another mood we may ask ourselves whether, and if so: why, the program is desirable. But nothing is gained ­— on the contrary! — by tackling these various aspects simultaneously.

Dijkstra, Edsger W., On the role of scientific thought


В этом состоит вторая простая и очевидная идея: описание целей и задач как неотъемлемых артефактов software requirements нужно всегда выделять в два отдельных документа.

(8 comments | comment on this)

Wednesday, July 1st, 2009
12:23 pm - TeX ist da powah!
Пост, утверждающий превосходство TEX над другими жалкими визуальными редакторами и УГ-форматами документов вроде M$Word.

Тот, кто не пользуется TEX'ом для создания документации — расстраивает Дональда Кнута.

Dixi.

(4 comments | comment on this)

Monday, June 29th, 2009
2:07 pm - Software engineer's code of ethics
Моральный кодекс профессионального разработчика:

IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices

Последний пункт гласит: [...] software engineers shall continually endeavor to:

8.09. Recognize that personal violations of this Code are inconsistent with being a professional software engineer.

Проверьте, можете ли вы называть себя профессионалом. Еще одна рекомендуемая статья по теме: Creating a software engineering culture (pdf) by Karl E. Wiegers.

(comment on this)

Thursday, June 25th, 2009
3:17 pm - Highload & benchmarks
Мне уже давно приходится сталкиваться с нагруженными системами, но вопрос о существовании стандартной методики оценки производительности долгое время для меня оставался открытым.

Похоже, мне удалось, наконец, найти хорошую отправную точку в этом вопросе. Встречайте всемирно признанного авторитета: Transaction Processing Performance Council.

Основные предлагаемые бенчмарки:

  • TPC-App is an Application Server and web services benchmark
  • TPC-C is an on-line transaction processing benchmark
  • TPC Benchmark™ E (TPC-E) is a new On-Line Transaction Processing (OLTP) workload
  • TPC-H is an ad-hoc, decision support benchmark
  • (10 comments | comment on this)

    Monday, June 22nd, 2009
    2:16 pm - Знаю, что боян, но пусть эта цитата будет здесь
    «Adding manpower to a late software project makes it later»
    --
    Frederick Phillips Brooks

    (3 comments | comment on this)

    Monday, June 8th, 2009
    10:34 pm - Его нужно знать в лицо :)
    Благодаря этому человеку обычные покупатели Apple превращаются в религиозных фанатиков:

    фото )

    (7 comments | comment on this)

    12:43 pm - Школьная заметка
    В то время, как наши учителя и преподаватели кропотливо часами, сутками проверяют сочинения по русскому языку и литературе, написанные от руки школьниками и абитуриентами, в развитых странах придумали, как автоматизировать и эту работу.

    IntelliMetric® — автоматизированная система выставления оценки за письменное сочинение. Фактически уже сейчас является международным стандартом и используется при тестировании кандидатов, поступающих на некоторые отделения самых престижных школ (например, в Гарвард, Оксфорд etc). Появилась система всего пару лет назад, и насколько мне известно, русскоязычных аналогов в природе не существует.

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

    Это очередной интересный пример наукоемкой коммерческой разработки, которая проходила по принципу „what is possible to make“, not „what is possible to sell“.

    (1 comment | comment on this)

    Wednesday, May 27th, 2009
    9:57 pm - Кризис социальных сетей
    «Создатель пакетной технологии компьютерных сетей Ethernet Роберт Меткалф однажды вывел формулу, согласно которой полезность любой сети прямо пропорциональна квадрату численности ее пользователей».

    Помните про dot-com bubble, который лопнул весной 2000-го года?

    Год назад «Коммерсантъ» посчитал, что кризис социальных сетей тоже не за горами. Оправдываются ли ожидания? Что будет дальше?

    (15 comments | comment on this)

    Monday, May 25th, 2009
    1:49 pm - Business Vision
    Пришел к выводу, что с точки зрения мотивации разработка бывает только двух типов: либо она ориентирована на маркетинг, либо на технологию.

    При разработке первого типа производится продукт, который будет приносить прибыль (what is possible to sell). Разработка второго типа ориентировано на исследование того, что вообще можно было бы произвести (what is possible to make).

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

    upd: спонсор поста — Sir Timothi ¨Tim¨ Berners-Lee

    (10 comments | comment on this)

    Friday, May 15th, 2009
    2:12 pm - Подсмотрел у Фаулера
    Простая, но концептуальная идея классификации бизнес-логики приложения состоит в выделении трех последовательных частей:

    — валидация (validation): проверяем, что входящие данные имеют смысл и должным образом подходят для выполнения дальнейших действий;
    — воздействие (consequence): запускаем какое-нибудь действие, которое изменяет состояние системы (переворачивает мир™);
    — проведение вывода (derivation): извлекаем некую информацию на основе той информации, которую мы уже имеем (строим проекцию данных).

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

    (8 comments | comment on this)

    Wednesday, April 8th, 2009
    7:11 pm - Symlinks & php feature
    Обнаружил интересную особенность при работе с симлинками, пока воспроизвел только в php: если по ходу выполнения скрипта меняется симлинк, то fopen его не подхватывает, и работает со ссылкой на старый файл. Примечтаельно, что аналогичные инструкции на C работают, как и ожидалось. Код под катом.

    UPD: проблема решена, нужно использовать clearstatcache().

    poc )

    (6 comments | comment on this)

    Thursday, April 2nd, 2009
    7:24 pm - Vim ist da powah #2
    Vimperator

    Пост, доказывающий превосходство vi над другими жалкими программами.

    (comment on this)

    12:56 pm - Vim ist da powah
    Еще одна заметка, доказывающая превосходство vi над другими жалкими IDE.

    Minor annoyance about Eclipse

    «I have been recommended to take a look at Eclim to see if it would fit my needs. It seems like an interesting effort and I would sort of love to have vim with eclipses integration functionality but it just seems like a whole lot of work for what you get»

    (51 comments | comment on this)


    > previous 20 entries
    > top of page
    LiveJournal.com