Как стать автором
Обновить
3
0
Холстинников Григорий @scarych

Системное проектирование

Отправить сообщение

Древовизируйте

Время на прочтение1 мин
Количество просмотров1.1K

Есть сервис:


image

Назначение:


Быстрая конвертация мыслей в визуальное древовидное представление.

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

Кто-то другой вероятно сможет найти иное применение.

Плюсы:


  • Любую операцию можно сделать с хоткея
  • Внизу по этому поводу красуется «неглупая» панель с хоткеями. Неглупая потому что показывает только доступные в данный момент времени сочетания клавиш. Напрмер, если вылез попап, то она покажет какой клавишей его скрыть, какой пролиcтать и т.п.
  • Минималистичность.
  • Легкий дизайн, который не отвлекает.
  • Возможность видеть все проекты сразу.
  • Возможность работы на нескольких машинах одновременно с одного пользователя. То есть оно умное, все из себя ajax и обновляет.


а где живет?
Всего голосов 103: ↑82 и ↓21+61
Комментарии97

100 долларов в час

Время на прочтение5 мин
Количество просмотров8.6K

Ранее я упомянул свою ставку 100 долларов в час. Я получил десятки комментариев с общим смыслом “получать так много нескромно”. И никто не сказал “работать так мало нескромно”. Почему-то считается, что работать надо хотя бы 40 часов в неделю. Общество настроило нас:

  • работать надо много
  • жизнь должна быть трудной
  • времени должно не хватать.

“Welcome to real life. It sucks, but you’ll get used to it”, – говорят в сериале Friends.


Сколько стоит мое время?

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

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


Оно того не стоит

Стоит выяснить цену своего времени, как можно забить на убыточные дела. На прошлой неделе я ходил в театр Станиславского на “Севильского цирюльника” и забыл бутылку вина в камере хранения. Вино стоило 287 рублей, до театра идти 15 минут туда и 15 минут обратно. Получается, что при часовой ставке до 574 рубля дело выгодное, иначе выгоднее не забирать.

Пример расточительства
Удивительно, но даже крупные банки, обладающие штатом квалифицированных экономистов, не всегда прибегают к такому анализу. Мой друг получил звонок из Citibank с просьбой погасить задолженность в размере… 90 копеек. По самым скромным оценкам, только минута работы оператора на телефоне стоит полтора рубля. Прибавьте расходы на офис коллцентра, оборудование, страховку, налоги. Прибавьте работу офиса, куда друг приехал гасить задолженность, операционистов, в конце концов стоимость бумаги!

Вот примеры того, где можно сэкономить:


Читать дальше →
Всего голосов 387: ↑254 и ↓133+121
Комментарии356

Как нанять программиста с закрытыми глазами

Время на прочтение5 мин
Количество просмотров8K

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

  • Один не мылся и вонял так, что в комнату не зайти. Я угрожал поставить вытяжку и вычесть из зарплаты; это помогало на один душ, не больше.
  • Другой пил запоем и врал, что отравился брюшками семги.
  • И все, почти все затягивали сроки.


Каждый из тех, кого мы наняли, казался отличным профессионалом. И только опыт работы показывал, насколько ошибочным было первое впечатление. Как в браке: стоит пожить вместе, как понимаешь, чем именно тебя бесят.




Поиск кандидатов



Очередного программиста я нашел так: отобрал несколько откликов на HeadHunter.ru и попросил их посмотреть, чем они займутся. Вот что я написал:

Читать дальше →
Всего голосов 379: ↑341 и ↓38+303
Комментарии237

Перегрузка функций в JS

Время на прочтение4 мин
Количество просмотров56K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
Читать дальше →
Всего голосов 106: ↑99 и ↓7+92
Комментарии59

Идеальная CRM. Часть 2

Время на прочтение2 мин
Количество просмотров4.5K
После написания статьи о потребностях «продажников» в CRM, я стал более плотно заниматься этой темой + на мое удивление, мне пришло много предложений от хабраколлег написать такую систему и вместе ее продавать, посмотреть на их, уже готовую CRM-ку.
image
Напомню, что мои основные требования были: online + удобство + малая цена

Кому интересна тема CRM применительно к небольшим компаниям — мои находки и мысли на этот счет.

Итак, что же такое CRM и кому и зачем она нужна. По сути CRM нужна не только отделу продаж, но и всем сотрудникам компании, которые связаны с работой с клиентами. В больших компаниях (телеком, банки) это такие большие системы как Oracle Siebel, MS Dynamics CRM и прочие монстры. В таких системах помимо автоматизации операционной работы (завести контакты, вести учет переговоров, выставлять счета и заводить кейсы) существует много наворотов типа BI, маркетинговых кампаний или совместной работы.

В небольших же компаниях чаще всего продажникам и другим сотрудникам, работающим с клиентом чаще всего нужны:
  1. База аккаунтов (организаций) и контактов
  2. Возможность быстрого доступа к ней лучше online
  3. Ведение истории переговоров
  4. Напоминалки (типа, через 3 месяца не забыть позвонить клиенту)
  5. Ведение протоколов встреч, записи звонков, короче видеть всю историю взаимоотношений


Под катом хорошие варианты:
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии56

Сборка и запуск HipHop-PHP

Время на прочтение5 мин
Количество просмотров18K

Почти три недели назад был анонсирован новый проект от Facebook. Он называется HipHop-PHP.
Для широкой публики исходные коды стали доступны лишь сутки назад.

HipHop был создан для улучшения производительности Facebook. Он преобразует PHP код в C++ код и комплирует его с помощью g++. HipHop доступен под opensource лицензией.

В данной статье описан процесс сборки HipHop из исходных кодов и его использование.

Читать дальше →
Всего голосов 127: ↑112 и ↓15+97
Комментарии105

8 правил инноваций от Тайлера

Время на прочтение3 мин
Количество просмотров43K
Тайлер ДёрденВсем нам хотелось бы совершать значительные поступки и прожить выдающуюся жизнь.
Никто не хочет целыми днями производить приевшиеся товары в бесцельной гонке за несуществующего потребителя. Ну и уж само собой, что вы лично этого не хотите, не так ли?
Так почему же нам кажется, что сломать рутину и начать заниматься чем-то принципиально новым, так сложно? Потому что это действительно сложно: от нас требуется сменить приоритеты, поменять свои планы и разрушить комфортную жизнь. Это почти то же самое, что стать другим человеком.

«Бойцовский клуб» — фильм о том, как прожить ту жизнь, которую хочешь, и какой тернистый путь нужно пройти, чтобы это стало возможным. Тайлер помогает безымянному герою фильма встать на путь просветления. Возможно, слова Тайлера смогут помочь и кому-то из нас.
Читать дальше →
Всего голосов 201: ↑153 и ↓48+105
Комментарии120

Отключайте autocomplete

Время на прочтение3 мин
Количество просмотров80K
В 1999-м году в браузере IE 5 Микрософт впервые реализовал автозаполнение текстовых полей форм, что позволило вам не вводить текст, который вы уже вводили ранее в поле с данным именем (в том числе на другом сайте). Тогда же появилось нестандартное расширение тега <input>: атрибут autocomplete, установление которого в off позволяло отключить эту функциональность для конкретного поля. Сейчас все популярные браузеры (подсказали, что кроме Оперы) поддерживают автозаполнение и этот атрибут. Он также введён в стандарт HTML 5. Тем не менее, разработчики веб-сайтов зачастую им пренебрегают.
Читать дальше →
Всего голосов 161: ↑153 и ↓8+145
Комментарии56

Массовый угон доменов

Время на прочтение4 мин
Количество просмотров12K


Если к тебе вдруг обратится кто-то с просьбой объяснять, как у него смогли увести домен, не удивляйся. Из-за банально устаревшей информации в регистрационных данных, любой домен рискует стать добычей для хакера. А если подключить к этому несколько полезных инструментов, то за экстремально короткий срок, возможно, обзавестись сразу десятками чужих доменов!
Видео проекта SocialWare.ru

Читать дальше →
Всего голосов 205: ↑150 и ↓55+95
Комментарии142

Highcharts: Красивые, динамические чарты за 5 минут!

Время на прочтение2 мин
Количество просмотров66K
image
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
Читать дальше →
Всего голосов 139: ↑132 и ↓7+125
Комментарии49

Дарю код игры для программистов и клонирую Хабр

Время на прочтение4 мин
Количество просмотров10K
Без всяких условий выкладываю исходники, но не обольщайтесь, это даже заготовкой назвать трудно. Просто проба пера многолетней давности, когда только учился писать. Качество явно не коммерческое, но дома поиграться можно. Внешне уже скомпилённое выглядит так (кликабельно):




Жанр этот, игры для программистов, из-за довольно высокого порога вхождения никогда не был популярен. А жаль. Потому что, как учил дядько Суворов, тяжело в учении — легко в бою. Я не милитарист и не оракул, но здравый смысл подсказывает, что довольно скоро некоторым из нас придётся писать ПО для «гаджетов» типа этого (кликабельно):
Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии144

Релиз Javascript фреймворка Qooxdoo 1.0

Время на прочтение2 мин
Количество просмотров2.3K
qooxdooВышел первый стабильный релиз свободного графического Ajax-фреймворка Qooxdoo (произносится ['ku:ksdu:]), использующего JavaScript и предоставляющего почти всё необходимое для создания web-приложений с десктопоподобным интерфейсом. По словам разработчиков, web-приложения при помощи Qooxdoo можно создавать даже без знания HTML, CSS и DOM модели.

Фреймворк запускается в большинстве браузеров (Internet Explorer, Firefox, Safari, Opera и Chrome). Чтобы получить представление о работе фреймворка можно взглянуть на тестовую среду и демо-приложения, демонстрирующие в интерактивном режиме возможности qooxdoo, такие как многочисленные виджеты, Drag&Drop интерфейс, диспетчеры компоновки, визуальные темы, поддержку организации работы многоязычного интерфейса. Для разработчиков особый интерес представляет поставляемый в составе пакета инструментарий, полностью охватывающий процесс разработки, включая валидацию кода, компиляцию JavaScript, юнит-тесты, автоматическое тестирование GUI и средства отладки аналогичные Firebug.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии46

DjangoCMS2.0 — быстрее, больше, эффективней

Время на прочтение5 мин
Количество просмотров69K
Django — очаровательный в своей простоте и гибкости фреймворк. Однако, для быстрого построения большого числа несложных сайтов требуется поставить разработку сайтов на поток. Разрабатывать систему управления сайтом каждый раз утомляет и грозит потерями времени. Именно поэтому программисты часто обращаются к готовым CMS.

Почти все знают о гигантах конвеерного веб-программирования, основанных на php — Drupal, Joomla!, Wordpress и прочих, но не все знают, что в мире Python существуют не менее мощные и даже гораздо более зрелые инструменты.

Ниже - чуть-чуть о них и много - об одном из новичков индустрии
Всего голосов 79: ↑74 и ↓5+69
Комментарии163

Ресайз изображений на лету

Время на прочтение9 мин
Количество просмотров20K
Практически в любом веб-приложении использующем изображения существует потребность формировать уменьшенные копии этих изображений, причем зачастую, форматов дополнительных изображений несколько.
Так же вызывает некоторую головную боль добавление новых размеров на существующем приложении. Отсюда задача:
Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии65

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся. Часть 2: архитектура

Время на прочтение13 мин
Количество просмотров7.1K
Вслед за первой частью, призванной в первую очередь показать, что «не так страшен чёрт, как его малюют»

Статья об архитектуре части проекта, которая занимается он-лайн платежами. Намеренно не хотелось бы сейчас подробно описывать API конкретного биллинга или процедуру регистрации в нём. Тонкости конкретных биллингов нужно обсуждать отдельно, иначе тему просто не раскрыть. Цель статьи: обсудить вариант архитектуры, позволяющий нанизывать новые виды биллингов и типы платежей, с наименьшей головной болью.
Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии33

Перевод Django Documentation: Models. Part 3

Время на прочтение9 мин
Количество просмотров13K
image

Доброго времени суток!

Еще одна часть серии моих переводов раздела о моделях из документации Django.

Перевод Django Documentation: Models. Part 1
Перевод Django Documentation: Models. Part 2

___Мета-параметры
___Методы моделей
_____Переопределение предопределенных методов
_____Использование SQL
___Наследование моделей
_____Абстрактные базовые классы
_______Мета-наследование
_______Будьте аккуратны с related_names


Перевод Django Documentation: Models. Part 4 (Last)

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии17

Как делать все

Время на прочтение2 мин
Количество просмотров1.9K


Предисловие.


За то время, которое у меня есть, я хочу сделать как можно больше. Более того, я хочу заниматься всем одновременно. У меня есть способ. Я вам о нем расскажу.
Как я это делаю...
Всего голосов 135: ↑93 и ↓42+51
Комментарии64

Дао Вебсервиса. (Или да хватит же изобретать велосипеды!)

Время на прочтение12 мин
Количество просмотров58K
image Недавно на Хабре была опубликована статья под провокационным заголовком и призывом к прекращению изобретений велосипедов в API-строении. Поскольку тема мне интересна, то я просто не мог пройти мимо.
Увы, реальность за хабракатом меня сильно разочаровала — я увидел очередной велосипед, да еще и с квадратными колесами. (Коллеги, ничего личного, только техническое обсуждение.) Правда, авторы честно сказали, что увидели на нескольких сайтах модное слово REST и решили сделать по нему. Только вот поняли они этот «РЭСТ» по-своему, примерно как Дед Щукарь читал и понимал толковый словарь.
В этом топике я призываю по-настоящему покончить с велосипедами в API сайтов. Ведь получается какой анекдот: АПИ разрабатывается для упрощения доступа к сайту и легкости подключения внешних систем, а получается такой, что с ним еще сложнее, чем без него :)

Чуть ниже под катом я подпишу смертный приговор всем велосипедам в универсальных API. Чтобы не быть голословным, я все проиллюстрирую примерами.
Но должен предупредить сразу — после прочтения статьи вы не сможете без рвотного рефлекса смотреть на очередной велосипед Васи Пупкина под гордым названием «универсальное API сайта».

В повествовании будут рассмотрены следующие вопросы:
  1. Базовые технологии: XML-RPC, REST, SOAP и краткое сравнение
  2. Дао вебсервиса
  3. Просветленные API
  4. Как отличить сайтовое API от говна
  5. Выводы

Кто не испугался суровых реалий - вперед
Всего голосов 315: ↑289 и ↓26+263
Комментарии206

Облачные вычисления на пальцах

Время на прочтение4 мин
Количество просмотров4.5K
Облачные вычисления – вычисления проводимые в готовой инфраструктуре к которой есть доступ через сеть. Инфраструктура может состоять из тысяч, сотен тысяч вычислительных узлов, дисковых массивов. Все это соединено в единую сеть и функционирует как одна большая вычислительная машина. Все настроено и доступно из «коробки».

А теперь на пальцах
Всего голосов 111: ↑102 и ↓9+93
Комментарии50

jQuery плагин для получения данных формы + ajax аплоадер файлов

Время на прочтение30 мин
Количество просмотров19K
imageДоброго времени суток, уважаемое Хабросообщество! Не пытаясь скрыть легкое волнение, публикую свой первый пост, темой которого стал мой скромный jQuery-велосипед для быстрого и безболезненного сбора данных, введенных пользователем на странице (сразу небольшая оговорка для тех, кто закричит — «ату его! Зачем еще один подобный плагин?», отвечу: во-первых — а быть может именно это кто-то из хаброчитателей и искал, во-вторых — для саморазвития, в-третьх: для собственного удобства и безболезненного использования в своих програмных продуктах).

Итак, помимо, собственно моего небольшого плагина, нам понадобится сам jQuery последней версии, а так же небольшой плагин к нему, реализующий преобразование объектов\массивов в json-строку, для того, чтобы полученные данные можно было быстренько передавать на сервер.
updated

updated 2 — добавлена мультизагрузка!
Смотрим далее
Всего голосов 71: ↑66 и ↓5+61
Комментарии98

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность