90% разработки
20 мая 2010
Есть такое интересное разбивание проекта на этапы, как я называю «по правилу 90%». Я не знаю откуда я его взял, может где-то прочитал, может сам это вывел, может еще что-то, но тем не менее:
- Команда рано или поздно приходит к моменту когда проект «уже сделан на 90%» – что-то уже запускается (в идеалистичном use case) , есть какая-то система, казалось бы осталось лишь допилить чуть чуть.
- Но на самом деле это лишь начало. Дальше еще столько же до того момента когда продуктом можно будет реально пользоваться, когда он станет работать у другого человека, перестанет падать в ситуации отличающейся от идеальной и т.д. Вот тут да, снова дошли до стадии «готово на 90%».
- И это оказывается не все…
Теперь нужно допилить чтобы все было «красиво», удобно, чтобы это поддерживалось, запускалось из коробки, были написаны инструкции. И после уже снова «готов на 90%», тут уже и правда почти готово.
ПО как виртуальный образ
8 апреля 2010
Тут Джоана Рутковска засветила прототип ОС, Qubes OS, в которой приложения запускаются в отдельной вирутальной машине, что должно решить многие проблемы безопасности. Идея, конечно, интересная, но в ситуации когда главная угроза безопасности это пользовать, мне кажется мало полезной. С другой стороны, для такие параноиков как я очень пригодится, я бы себе взял
Так вот, мне это напомнило мою старую мысль о том что многий софт можно вообще выпускать только в виде образов виртуальных машин. Не тот который для обычных пользователей, а более серьезный. Ну вот, например, не проще ли было бы сделать «веб-мастеру» виртуальный образ среды в которой будет разрабатываться сайт, вместо Дэнвера (или что там сейчас популятно)? Вместо всех прочих хитрых SDK? Софта, который для своей работы требует поставить еще сотни мегабайт дополнительных библиотек? А корпоративный софт, особенно серверный, который поставит только сертифицированный админ, на сертифицированно настроенный сервер, со строго определенной версией ОС, на котором после этого ничего другого и не поставить? Итак ведь многие все это ставят сразу в отдельную виртуалку, так может уже и выдавать сразу готовый образ, в котором все настроено, стоит весь нужный комплект дополняющего софта и библиотек, и можно рассчитывать на то что ничего лишнего рядом не поставят? А уж сколько проблем решает виртуализация, тут тебе и многоплатформенность, и бэкапы, и миграция, и cloud computing, и пр. Ну хотя тут не мне говорить, ну хотя бы потому что не эксперт.
Или может я совсем не в теме, и вендоры ПО уже давно работают в этом направлении, и даже уже сейчас продают готовые образы?
Поисковая ниша
18 января 2010
Пообщался на днях, в очередной раз, с человеком пишушим свой поисковик, убийцу яндекса и гугла вместе взятых
Я попытался донести что рынок поиска, в текущем виде, занят, по крайней мере от посягательства со стороны небольших команд. Есть Гугл как основной гигант, есть куча игроков рядом с ним поменьше, и есть несколько тысяч совсем незаметных поисковиков, вертикальных, узкоспециализированных, экспериментальных и пр. Даже мелочь, конечно, имеет своих посетителей, но все равно тут делать нечего, лишь гиганты могут методично вычищать свои алгоритмы, нанося небольшие, малозаметные штрихи в общей картины. Время больших мазков давно прошли. И занять тут значительную долю не получится, даже вкладывая миллиарды в маркетинг, в Bing я слабо верю. Это никому не нужно, даже пользователям, как ни странно это звучит.
Единственный заметный результат дает «структуризация веба», а точнее структурированный и полноценный ответ на его основе. В идеале как у Вольфрама. Вольфраму более менее удалось лишь потому что они выбрали очень специфичную, узкую, и изначально структурируюмую область, в которой, к тому же, они давно сидели. Конечно же продвижения есть и остальных, и у Гугла, и у Яндекса, и особенно мне нравится как это получается у Нигмы. При этом охватить сразу всё, дать ответ на любой вопрос, им слишком трудоемко, на приборах почти не заметно, а ROI совсем плохой.
Читать далее »»
Какой исполнитель по вкусу
23 июля 2009

Представим себе что вы решили купить себе телефон, для наглядности представим что это iPhone 3Gs.
В сети находите 3 варианта покупки:
- 10 тыс. руб – и как получится, может завтра, а может через месяц, может вообще не доставят, но денег в любом случае не вернут. К тому же на корпусе могут быть какие-то подозрительные царапины и непонятные люди в списке контактов. Или вообще другой телефон привезут, ну и может денег сверху попросят, лишь потому что у них там какие-то непонятные вам «проблемы возникли с товаром«.
- 15 тыс. руб – может быть завтра уже доставят, но черт его знает на самом деле, есть некоторая путаница со складами, курьерами, наличием, в общем они обещают на днях позвонить и сказать точнее что как будет, может сразу доставят, может в течении недели, ну или как получится.
- 20 тыс. руб – послезавтра ровно в 14:25 курьер с товаром будет у вас в офисе. точка.
Вы какой выберете? От чего зависит решение?
Если по цене, то третий вариант в 2 раза дороже первого. С другой стороны у него гарантия доставки, или вы готовы сидеть на одном месте и ждать курьера сколько угодно?
А если вы руководитель компании и закупаете их сотрудникам, что вы им скажете? А перед своим руководителем в такой ситуации как обоснуете выбор и отчитаетесь?
На самом деле почти риторические вопросы, просто повод поразмышлять о том как думает заказчик разработки софта. Цена, предсказуемость результата и пр.
PS: а еще можно было бы это разбить на 5 вариантов, чтобы сопоставить с уровнями CMMI
jar с винтом
25 ноября 2008
Java, как язык – ничего особо выдающегося. Да даже тот же C# внешне выглядит приятней, что уж говорить о многих динамических языках. Хотя, если насчет самого синтаксиса Java, то тут тоже наметилась тенденция, уже есть вполне неплохие JRuby, Groovy, Scala и Clojure, выбирай по вкусу.
Так вот, хоть как язык Java и проигрывает, но она имеет за плечами огромный набор библиотек, для решения почти всех востребованных задач. Я бы даже выразился так:
На каждую хитрую задачу найдется свой jar с винтом.
ну может не всегда именно jar, а скорее технология, протокол, спецификация, но суть в общем такая.
У всех остальных все хуже. Там или узкая заточенность под одни нужды (RoR), или единая линия партии (.Net), или просто полный хаос.
Главное – это все таки сколько у тебя за спиной готовых, зарекомендовавших себя и переиспользуемых решений. А что до производительности и требования к ресурсам, так с этим уже давно все хорошо, все работает достаточно быстро, если написать конечно как положено, а не как обычно. Да и в последнее время это уже неактуальная проблема, сейчас в цене не производительность, а масштабируемость.
Поэтому нравится java или нет, но… но чаще всего выбирать и не из чего.
P.S.: Хотя, если честно, есть тут один минус: это то что привыкнув к этому все стараются делать «через жаву», что не всегда верно, но это уже издержки производства.
Я не знаю EJB и JSF
6 августа 2008
Как то так сложилось что при моем примерно 7-летнем опыте коммерческой разработки на Java я почти не имею опыта в EJB. Хотя это первое что спрашивают на собеседовании, я ведь проверял не так давно. Самое интересное, кстати, в том что многие собеседователи после кучи вопросов по опыту в EJB/WebSphere/JMS/пр., о том как это все им важно и пр., рассказывая о своих проектах, говорят что на практике все их проекты разрабатываются без какого либо EJB и прекрасно работают по Tomcat, а WebSphere получается лишь для веса. Возможно и потому что не серьезно сейчас предлагать решение без WebSphere/WebLogic + Oracle.
А мне всегда как то хватало связки Spring + Hibernate + Tomcat/JBoss, что в сущности дает тоже самое, но удобнее. Список можно продолжить добавив еще как минимум Acegi, AspectJ, и прочие решения умеющие хорошо и удобно решать свою отдельную задачу, многие легко взаимозаменяемы и дают очень неплохой синергетический эффект.
Читать далее »»
Лаконичность кода или Java vs K или зачем нам JRuby и Groovy
24 апреля 2008
Кто там говорит что perl-код не читабелен? Вот вам реализация soundex на языке K:
sdx:"bfpvcgjkqsxzdtlmnr"!(4#1),(8#2),(3 3 4 5 5 6)
nn:{d2:x where x > 0;r:d2 where d1:0w<>':d2}
soundex:{(x[0],(nn (sdx@1 _ x)),l:4#0)[til 4]}
угу, именно так… Похоже что клавиатуру протирали.
Теперь запускаем: Читать далее »»
JYaml в качестве DSL
13 апреля 2007
Есть вот такая вот интересная задачка: приложение должно выполнять серию команд, внешне даже однотипных и настраиваемых через разные параметры. При этом описание очереди команд должно быть не в коде, а во внешнем файле, который можно отредактировать, и, без перекомпиляции приложения, запустить очередь заново. Да и вообще файл со списком команд указывать каким то параметром приложению, т.к. будут различные файлы с разными очередностями команд.
Читать далее »»
Горы сейчас высокие пошли…
20 июня 2006
- Что мне нужно выучить, чтобы создать игру/офисный пакет/1с?
- Экономику. Менеджмент, маркетинг и т.д. А потом все-все просчитать, взять огромную кучу денег, нанять помощников, много разных программистов, тестеров, дизайнеров, разных узких специалистов и тогда сделать это! А если в одного… да бесполезно просто.
Web 2.0
5 июня 2006
После книги «Решение проблемы инновации» посмотрел через эту призму на текущие тенденции в Web. В Web-разработка многие сейчас носятся с идеями инноваций, хотя большинство из всего этого авторы назвали бы поддерживающей инновацией, которые по его мнению не так доходны.
Многие высказанные в книге идеи можно развить в области ИТ, да и сами они (авторы) неоднократно рассуждали про инновации в различных сферах ИТ, но я сейчас хочу остановится лишь на одной из них.
Читать далее »»
