Pull to refresh
18
0
Вадим Крючков @long

User

Send message

Акинатор и математика

Reading time6 min
Views110K
На Хабре уже несколько раз всплывала тема Акинатора, в том числе и с тегом не знаю как оно работает. Я на него наткнулся недавно и, разумеется, был восхищен. Затем, как вероятно и многим другим, мне в голову пришла мысль: «А как же это работает?» Ответа на этот вопрос я нигде не нашел, а потому задался целью написать аналогичную по функциональности программу, разобравшись по ходу дела что к чему.
Читать дальше →
Total votes 103: ↑95 and ↓8+87
Comments78

17 пользовательских идей монетизации соцсети

Reading time2 min
Views2.4K
Приблизительно год назад в контакте администрацией был открыт топик (ссылка сохранилась, но по ней сейчас ничего нет), в котором пользователи предлагали свои варианты монетизации проекта. Варианты, которые на их взгляд более приемлемы, чем очевидные «платный вход» и «завесить всё баннерами».

Я по данному топику прошелся и выписал себе на заметку все более-менее разумные варианты. Ничего своего в представленный ниже список я старался не вносить, лишь переформулировал идеи более абстрактно.
Читать дальше →
Total votes 65: ↑56 and ↓9+47
Comments42

Одна идея монетизации социальных сетей

Reading time2 min
Views687
На написание данного поста с подвигла новость, промелькнувшая в ридере — «Рекламодателей не интересуют социальные сети». Вопрос монетизации интернет-ресурсов встает практически перед каждым интернет-проектом, и его решения может зависеть судьба проекта и его основателей, учредителей. Поэтому многие стараются (или требуют) определиться с бизнес-моделью еще на ранних стадиях развития проекта. Что касается социальных сетей — их наделали, они раздулись, но ни одна не работает в прибыль, несмотря на гигантскую аудиторию (насколько мне известно). Попробуем вместе разобраться, какие способы монетизации для нас, как пользователей, приемлемы.
Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments21

Набор PHP-функции для создания user-friendly интерфейса на русском языке

Reading time7 min
Views1.3K
Почти в каждом своем проекте я использую набор функций, которые делают сайт чуточку приятнее для глаза и удобнее для восприятия. Эти функции я частично позаимствовал в разных местах и частично написал сам. Наверняка, многие используют подобные, но я решил все же поделиться — возможно, кому-то они будут полезны.

Они умеют склонять существительные по числовому признаку, выводить дату с нормальными русскими названиями месяцев и выводить дату в удобочитаемом человекопонятном виде (вчера, позавчера, 2 дня 3 часа и 2 минуты назад, через 1 год и 2 месяца и т.д.).

Использовать их можно примерно так:
<acrnonym title="<?php print r_date($timestamp'j M Y в H:i'false); ?>"><?php print human_date($timestamp2false);?></acronym>
<acrnonym title="<?php print r_date($timestamp'j M Y в H:i'); ?>"><?php print human_date($timestamp);?></acronym>


Это вернет примерно такой результат:
<acrnonym title="2 января 2009 в 23:39">1 день назад</acronym>
<acrnonym title="2 января в 23:39">Вчера</acronym>

(Хабр обрезает тег <acronym>)

И вот так:
<?php
$count 
10;
printf('%d %s'$countdeclension($count, array('комментарий''комментария''комментариев')));
?>


Это вернет:
10 комментариев

Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments26

Мой знакомый разработчик

Reading time4 min
Views1.2K
Я работаю с удивительным человеком. Каждый раз, когда я смотрю в bugzill'у или проверяю почту, я им поражаюсь. Иногда мне кажется, что он мог бы стать неплохим писателем. Во всяком случае графоман из него отличный.

Этот разработчик принимает документирование очень близко к сердцу.
Что же тут такого удивительного?
Total votes 64: ↑59 and ↓5+54
Comments38

Аудит системы контроля версий, ч. I

Reading time7 min
Views1.3K
Необходимо регулярно сверять устройство вашей системы контроля версий с
реальностью процесса разработки и внедрения. В этом документе мы постараемся
изложить краткую схему вопросов, на которые необходимо ответить, чтобы
высветить недостатки и потенциальные проблемы в вашей системе.


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


В этом документе описывается только анализ системы. Способы решения проблем,
выявленных при анализе, будут обсуждаться отдельно.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments27

Русский рынок ПО для сотрудничества и ведения проектов

Reading time3 min
Views1.6K

Причины написания



Этот текст является выжимкой из маркетингового исследования русского рынка ПО сотрудничества для малых команд, которое я сделал для проекта Comindwork, российско-украинской системы ведения проектов онлайн. Подумал, что будет полезно и для меня, и для людей, которые ищут такие системы, и для… конкурентов :)

Сразу скажу свой результат исследования: российский рынок отстает от мирового рынка ПО для совместной работы на 2-3 года. Доказательства?
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments18

SQA в PHP

Reading time1 min
Views512
Приветсвую всех.
Случилось так, что на работе нужно более глубоко использовать SQA (software quality assurance). Погуглив, сделал пока выводы, что можно использовать

1. phpunit как средство тестирования кода (simpleTest как альтернатива, и другие фрейворки для тестирования кода)
2. Selenium как средство тестирование веб интерфейса
3. code review для повышения качества кода. (он же рефакторинг)
upd:
4. code coverage by phpunit+xdebug для установления какой код не используется
5. багтрекер на основе trac

а что можно еще использовать чтобы повысить качество кода? какие методики?

спасибо за внимание
Total votes 25: ↑20.5 and ↓4.5+16
Comments43

Десять советов как написать (чуть) менее ужасное резюме

Reading time19 min
Views20K

«Цель: получить работу в IBM»
— пишет какой-то идиот-соискатель в Amazon.com.




ВНИМАНИЕ: это мое собственное, *персональное*, мнение, не Google, не Amazon или кого-либо еще. Я думаю вы обнаружите, что большинство рекрутеров, оценивающих анкеты в технических компаниях — особенно в технических компаниях, которые производят собственное программное обеспечение сами, такие как Yahoo!, Ebay, Amazon.com, Microsoft или Google — в целом, согласятся со многим из перечисленного. Но опытные рекрутеры расходятся во мнениях касательно многих мелких деталей, и, в конце-концов, это всего лишь мое собственное мнение. Эти советы не гарантируют получения Вами сколь-нибудь лучших результатов. Возможно, у вас будет другой опыт. Не используйте эти советы в ванной или стоя в луже. Не стучите по стеклу, это раздражает советы. Советы не кормить! И т.д.

Читать дальше →
Total votes 104: ↑82.5 and ↓21.5+61
Comments101

WEB OS: 40+ сетевых операционных систем

Reading time1 min
Views2.9K
Как это ни странно звучит, но оказывается существует немало операционных систем, задачей которых является перенос ваших обычных настольных приложений в онлайн. То есть, имея доступ в Интернет и браузер, остальные приложения вы получаете в Интернете, используя операционную систему, возможно, принципиально отличающуюся от той, в которой вы работаете. Некоторые из таких систем представляют собой привычный рабочий стол, в то время как другие (стартовые страницы) собирают информацию со всей сети. Далее представлены более чем 40 Веб ОС, достойных вашего внимания.

Удаленные операционные системы


youos.png

AstraNOS — с виду Windows 98. Или OS X. Или вечернее небо. А возможно все вместе :-). У вас теперь есть довольно хорошее приложение AstraNOS.

cmyOS — бесплатный Вебтоп, на базе eyeOS.

Desktoptwo — вы получаете не только 1 Гбайт места, но и еще полностью функциональный набор OpenOffice.org. Нет, не базовый онлайн редактор, у которого есть простые опции форматирования. Полный пакет OpenOffice.org 2.0 от SUN, преобразованный в Java аплет.

GCOE X — Хорошая WebOS с мощным терминалом и поддержкой iPhone.

eyeOS — Превосходный Вебтоп на операционной системе eyeOS.

Glide — онлайновая операционная система с интересными возможностями для пользователей BlackBerry, Palm, Windows Mobile, Symbian и iPhone.

G.ho.st — 3 Гбайта места, доступ по ftp, поддержка Zoho Office. Наверняка вам такое понравится.

goowy — превосходный Вебтоп с предоставлением персонального e-mail адреса (@goowy.com), службой сообщений, 1 Гбайт места (через Box.net), и многим другим.

Оригинал сообщения содержит ссылки и описания еще более 30 ВебОС: самостоятельные, рабочие столы, стартовые страницы и др.
Total votes 23: ↑19 and ↓4+15
Comments5

Что почитать по проектированию архитектуры?

Reading time2 min
Views6.4K
Текущий проект на работе разросся до огромных размеров и продолжает расти.
Так получилось, что большая часть была создана людьми, которые уже не в проекте. И качество кода многих компонент зачастую ужасно. Но все это работает, пользователи всем этим пользуются и потому русское
«Это все никуда не годиться. Легче все написать заново» — не применимо.

Проект построен на связке tomcat,struts c java-сервером работающим с postgres. С веб-частью(tomcat) вроде все нормально. В самом сервере каша — где сам функционал по работе с БД.

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

Потому хочется почитать что-то по теме и дать почитать коллегам.
Не то чтобы я с луны свалился. Опыт какой никакой есть. И книг перечитано не мало.
Но возможно хабра-люди посоветуете что-то наиболее практичное с вашей точки зрения, без сухой теории.
(на русском языке, в бумажном виде, по теме: архитектура, паттерны проектирования, рефакторинг, разработка корпоративных приложений) — что-то наиболее приближенное к практике разработки большой быстро расширяемой системы.

уже есть(читал) по теме или близко:
— Рефакторинг. Фаулер
— Совершенный код. Стив Макконнелл
— Архитектура корпоративных программных приложений. Фаулер (хорошая книга)
— Еще какие-то одинаковые книги типа «Разработка корпор.приложений с помощью UML, J2EE» от
Гради Буча и пр.

Интересно не что-то общее из цикла типа RUP процессов разработки, а конкретно по архитектуре
и шаблонам развертывания, на примере конкретных коммерческих проектов.

Заранее спасибо за комментарии
Total votes 9: ↑9 and ↓0+9
Comments16

Семь советов по выбору названия для стартапа Веб 2.0

Reading time2 min
Views772
Новые интернет-стартапы появляются каждые несколько секунд. В такой ситуации особенно важно подобрать правильное имя для своего детища. Вот список советов по выбору названия для современного интернет-стартапа.
Читать дальше →
Rating0
Comments27

Правила Джоша (для деловых людей)

Reading time3 min
Views1.4K
Список советов от эксперта по базам данных и члена группы разработчиков Джоша Беркуса (Josh Berkus), на мой взгляд, может оказаться полезным не только консультантам в области баз данных. Приведённые советы относятся к сфере взаимоотношений с клиентами. Некоторые рекомендации, как мне кажется, являются актуальными и для разработчиков-фрилансеров.

Джош Беркус является членом ядра группы разработчиков PostgreSQL (PostgreSQL Core Team) с 2002-го года. В данный момент он работает на Sun Microsystems, входя в группу, занимающуюся открытыми СУБД. До работы над PostgreSQL он работал с различными другими приложениями и технологиями, включая OpenOffice.org, Microsoft SQL Server, Oracle PL/SQL, и (о, ужас!) COM+.

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

1. Состояние данных отражает состояние бизнеса. Покажите мне клиента с хроническими проблемами в базе данных — и я покажу вам клиента с хроническими проблемами в области менеджмента.
2. Три вещи, с которыми вам не придется столкнуться никогда:
  • слишком мягкие временные рамки;
  • клиент, который платит слишком быстро;
  • точная и полная спецификация.

3. Решения, принимаемые по отношению к базе данных, «живут» очень долго («нет ничего более постоянного, чем временное»): среднее время жизни «временного, одноразового» приложения баз данных составляет 4 года. Некоторые такие кусочки кода датируются 1960-ми и работают и по сей день. Так что сразу рассчитывайте на долгосрочное использование.
4. Плохие клиенты погубят ваш бизнес: умение вовремя распознать плохого клиента и отказаться от него или вовремя расторгнуть контракт — это половина успеха. Будьте готовы сбежать в любую минуту.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments40

Неудача —лучший друг стартапа

Reading time6 min
Views837
Лишь некоторые рыночные ниши терпели более сокрушительное падение во времена Веб 1.0, чем та ниша, которую занимали сайты о домашних животных. Всего лишь за девять месяцев после своего создания в 2000 году, сайт Pets.com (Питомцы.com) — заработал невероятную сумму в 82,5 миллиона долларов, выйдя на фондовый рынок через IPO; потратил 1,2 миллиона на рекламу своего кукольного питомца-талисмана на кубке по американскому футболе «Super Bowl»; получил финансирование от Amazon.com; развернул сеть огромных магазинов… и вылетел из бизнеса, оставшись без копейки прибыли.
Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments30

Ubuntu и повреждение винчестера

Reading time2 min
Views4.5K


Сегодня я узнал пренеприятнейшее известие — Ubuntu Linux вследствие некорректной работы скрипта демона питания может повреждать ноутбучный винчестер путем его постоянных остановок и запусков (пытаясь сэкономить (ха!) электроэнергию).

Этот ресурс для винчестеров является довольно важным, и для современных моделей составляет около 600 000 раз. Load Cycles увеличивается на единицу при каждой остановке-разгоне шпинделя винчестера или при парковке/депарковке его головки.

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments71

Интегрируем google maps

Reading time2 min
Views2.8K
Google maps — отличное средство для картографии и сейчас мы будем интегрировать его себе на сайт благодаря открытому API. Интегрировать будем не только фиксированное положение но и произвольное, а именно — создадим в базе данных таблицу «locations», впишем там поля title, x, y.

Теперь нам надо редактировать каждое местоположение. Создадим полотно, где будет отображаться карта.
<div id="map" style="width: 250px; height: 250px"> </div>

Дальше — прикрутим вызов библиотеки из google. Поскольку я использую smarty, то я передаю ключ разработчика в виде переменной.
<script src="http://maps.google.com/maps?file=api&v=2&key={$google_maps_hash}" type="text/javascript"></script>


Теперь сделаем функцию, которая будет заниматься всей гразной работой — создавать карту в нашем div элементе, позиционировать согласно заданным координатам, устанавливать bubble. В случае если мы редактируем эти координаты, то функция будет по обратной связи прописывать в скрытые input-поля некоей формы «registration_form» новые координаты перенесённого pin-указателя.
<script type="text/javascript">
function load_map(x,y,title) {

if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(x, y), 13);
map.enableScrollWheelZoom();

point = new GLatLng(x, y);
marker = new GMarker(point);

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addOverlay(marker);
marker.openInfoWindowHtml(title);
/*
var mgr = new GMarkerManager(map);

GEvent.addListener(marker, "dragend", function() {
//var center = map.getCenter();
var strCenter=marker.getPoint();
marker.openInfoWindowHtml(document.forms['registration_form'].title.value);
document.forms['registration_form'].geo_x.value=strCenter.lat();//arrCenter[0];
document.forms['registration_form'].geo_y.value=strCenter.lng();//arrCenter[1];

});
*/
}
}
</script>
Total votes 19: ↑19 and ↓0+19
Comments30

Flickr Vision

Reading time1 min
Views559
Прислали ссылку на офигенный сервис — FlickrVision, он показывает последние залитые на Flickr фотографии, отмечая их в GoogleMaps, гипнотизирует…
Total votes 15: ↑13 and ↓2+11
Comments6

Комментарии к статье «Кропотливая оптимизация PHP-приложений»

Reading time4 min
Views1K
Здравствуйте,

Странно, что Хабрахабр не пускает это сообщение как комментарий к топику mocksoul об оптимизации РНР: www.habrahabr.ru/blog/webdev/19129.html. Наверное, слишком длинное. :)

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6

Выбор способа оценки контента

Reading time3 min
Views1K
Я участвую в создании небольшого веб2.0-проекта и хочу посоветоваться с хабралюдьми насчет способов оценки пользователями контента — например, новостей или постов в блогах. Оценки должны дополнять уже работающие у нас таги и счетчик просмотров страниц.

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments62

Секреты дизайна проектов Web 2.0

Reading time3 min
Views1.4K
Если вы читали крупнейшую бесплатную энциклопедию, то наверняка заметили, что в статье Web 2.0 Wikipedia не сказано ни слова, каким должен быть внешний вид страниц нового поколения. Ничего не сказано ни о красочных иконках, ни о пастельных тонах, ни о приятных градиентах, рефлекциях, большого размера шрифте и т.п… Какой же веб дизайн доминирует с возникновением Web 2.0?

Секреты дизайна проектов Web 2.0
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments56

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity