Pull to refresh
243
0
Евгений Лисицкий @el777

Пользователь

Send message

Двунаправленный асинхронный обмен данными в веб-приложениях

Reading time4 min
Views21K
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →
Total votes 68: ↑64 and ↓4+60
Comments52

Список Javascript библиотек для рисования графиков и диаграмм 2

Reading time2 min
Views37K
Продолжаем тему визуализации данных в интернете.

Предыдущие топики:
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments12

Модель CMMI

Reading time8 min
Views104K
Всем здравствуйте! Наконец-то я на Хабре. Постараюсь незамедлительно начать приносить пользу если не всему сообществу, то хотя бы некоторой его части:)

Я был немало удивлён, обнаружив, что на Хабре практически нет информации о модели CMMI, если не считать пары упоминаний здесь и здесь.
На западе уже давно крупные заказы по разработке ПО доверяются только компаниям, прошедшим сертификацию на соответствие какому-либо международному стандарту, зачастую им становится модель CMMI. Хотя сами авторы этой модели неоднократно повторяют, что это не стандарт, а всего лишь сборник рекомендаций по улучшению процессов внутри организации.

Что такое CMMI?


Википедия даёт следующее определение:
Capability Maturity Model Integration (CMMI) – Комплексная модель производительности и зрелости – набор моделей (методологий) совершенствования процессов в организациях разных размеров и видов деятельности. CMMI содержит набор рекомендаций в виде практик, реализация которых, по мнению разработчиков модели, позволяет реализовать цели, необходимые для полной реализации определенных областей деятельности.

Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments63

Асинхронное программирование: концепция Deferred

Reading time7 min
Views54K
Асинхронная концепция программирования заключается в том, что результат выполнения функции доступен не сразу же, а через некоторое время в виде некоторого асинхронного (нарушающего обычный порядок выполнения) вызова. Зачем такое может быть полезно? Рассмотрим несколько примеров.

Первый пример — сетевой сервер, веб-приложение. Чаще всего как таковых вычислений на процессоре такие приложения не выполняют. Большая часть времени (реального, не процессорного) тратится на ввод-вывод: чтение запроса от клиента, обращение к диску за данными, сетевые обращение к другим подсистемам (БД, кэширующие сервера, RPC и т.п.), запись ответа клиенту. Во время этих операций ввода-вывода процессор простаивает, его можно загрузить обработкой запросов других клиентов. Возможны различные способы решить эту задачу: отдельный процесс на каждое соединение (Apache mpm_prefork, PostgreSQL, PHP FastCGI), отдельный поток (нить) на каждое соединение или комбинированный вариант процесс/нить (Apache mpm_worker, MySQL). Подход с использованием процессов или нитей перекладывает мультиплексирование процессора между обрабатываемыми соединениями на ОС, при этом расходуется относительно много ресурсов (память, переключения контекста и т.п.), такой вариант не подходит для обработки большого количества одновременных соединений, но идеален для ситуации, когда объем вычислений достаточно высок (например, в СУБД). К плюсам модели нитей и процессов можно добавить потенциальное использование всех доступных процессоров в многопроцессорной архитектуре.
Читать дальше →
Total votes 54: ↑44 and ↓10+34
Comments24

Использование deb-пакетов для дистрибъюции кода

Reading time8 min
Views6.1K
В этой статье я хочу рассказать, о том, как можно внедрить систему сборки deb-пакетов для некоторого абстрактного проекта. Плюсов в распространении и развёртывании ПО на основе пакетов несколько:
  • Атомарность пакета (представление продукта в виде одного файла);
  • Наличие скриптов пред/пост установки/удаления ПО;
  • Возможно указания зависимостей для ПО.
Кроме того, при развёртывании ПО на основе пакетов, а не на основе SVN, вы гарантировано защищены от проблем с .svn-папками.
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments26

Развертывание Django-проектов c помощью Fabric

Reading time2 min
Views11K
В одном из проектов необходимо регулярно выкладывать код из ветки stage на staging сервер. Начали делать это вручную — входишь через ssh, делаешь git push origin stage, если нужно — обновляешь базу и затем перезапускаешь apache. К концу этой недели решили, что хорошо бы все эти действия выполнять одной командой. Я прошерстил блоги — сейчас очень активно пишут про использования для этих целей библиотеки Fabric (это аналог Capistrano из Ruby on Rails).
Читать дальше →
Total votes 49: ↑40 and ↓9+31
Comments11

Коллективная разработка с использованием git и Trac в проекте Midnight Commander

Reading time6 min
Views5K
    Действительно, в интернете сейчас можно найти достаточно много информации о настройке GIT и работе с ним, но недостаточно освещен вопрос коллективной разработки и «рабочего процесса» отдельно взятого проекта от начала и до конца.

    Попробую восполнить этот пробел на примере открытого проекта Midnight Commander, не останавливаясь на вопросах установки необходимого ПО, так как этот момент неплохо описан в интернете, и вы сможете легко найти интересующую вас дополнительную информацию самостоятельно.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments52

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

Reading time2 min
Views4.1K
Я хочу поделиться простым взглядом на сложные вещи.
Отлично помню своё первое столкновение с on-line платежами. Тогда меня такая задача морально напрягала: мало того что на мне ответственность за чьи-то деньги, так я ещё и не понимаю даже обычной банковской системы, что уж говорить о виртуальной.
Хорошо, если бы мне тогда кто то сказал...
Total votes 82: ↑53 and ↓29+24
Comments66

Тестирование Django приложений с помощью Selenium

Reading time6 min
Views7.1K


Selenium


Selenium — это очень удобный (имхо) инструмент для тестирования веб-приложений.

Тесты создаются с помощью дополнения для Firefox, которое может генерировать код теста на различных языках, в том числе и на Python. Затем эти тесты выполняются специальным сервером, Selenium RC.

Сам по себе Selenium не привязан ни к языкам ни к фреймворкам, поэтому чтобы интегрировать его в систему тестирования Django-приложений, нужно приложить очень небольшие усилия.

Для решения задачи интеграции я буду использовать библиотеку Django: Sane Testing. Это библиотека, расширяющая возможности стандартной системы тестирования Django, в том числе и поддержкой тестов Selenium.
Читать дальше →
Total votes 56: ↑42 and ↓14+28
Comments16

Подборка плагинов к jQuery

Reading time2 min
Views5.8K
Вдогонку к этому посту, решил выложить еще одну неплохую и достаточно свежую подборку.

jReject — jQuery Browser Rejection

jReject

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

Еще плагины
Total votes 116: ↑98 and ↓18+80
Comments28

Пол Грэм

Reading time2 min
Views56K
Paul GrahamСколько раз я уже перечитывал статьи Пола Грэма, столько раз я удивлялся его потрясающему умению открывать глаза на вроде бы обычные вещи. И потрясающей способности интересно описывать окружающий нас мир.

Да, это он в 1998 году продал свою компанию Viaweb интернет-гиганту Yahoo, которая впоследствии назвала этот продукт Yahoo Store. Да, это он основал венчурный фонд Y Combinator. Да, это его журнал BusinessWeek включил в список 25 наиболее влиятельных людей в Сети за 2008.

Хотите читать по-настоящему интересные аналитические статьи? Вам однозначно к Полу. Я настоятельно рекомендую прочитать его заметки. Особенно если вы it-шник. Особенно если вы собираетесь открывать свой бизнес.

Читать дальше →
Total votes 125: ↑111 and ↓14+97
Comments61

Про Git на пальцах (для переходящих с SVN)

Reading time8 min
Views279K
Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
Читать...
Total votes 179: ↑175 and ↓4+171
Comments100

Настройка IDE для автоматического запуска тестов

Reading time4 min
Views8.9K
Источник

Блог Google Testing

Когда я программирую, то сначала пишу тесты. Частый ручной прогон тестов может превратиться в утомительное занятие.

Опишу обычный сценарий разработки кода:

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

Лекарство от забывчивости...
Total votes 28: ↑21 and ↓7+14
Comments32

Как открыть интернет-магазин с голой жопой

Reading time3 min
Views6.4K
Последнее время часто слышу жалобы, что нет юрлица, а значит ничего сделать нельзя, ибо непреодолимый страх, что «придут злые опера и закроют за незаконную предпринимательскую деятельность».

Не буду растекаться по древу насчет «до 5-7 тыс. у.е. в месяц в качестве физлица вы никому в упор не интересны».

Допустим без юрлица ну никак нельзя, да еще и на сайт с рекламой денег нет.  Что делать? 

По шагам:
1. Изучаете товары (Я.Маркет, запросы в Директ, ближайший рынок) на предмет «что бы такого не слишком приевшегося и конкурентного, но при этом простого в доставке, и чтобы геморроя с гарантиями/лицензиями поменьше.
Хинт: сувениры, игрушки, коллекционеры всех мастей. Берете одну/несколько специфических ниш для отработки.
Не надо брать строительство, окна, бытовую технику/электронику. Там, где кокурентов дофига.

2. Идем на ближайший рынок, торговый комплекс, а лучше отраслевую выставку(там народ крупнее и плотнее).

Читать дальше →
Total votes 251: ↑217 and ↓34+183
Comments139

7 сайтов, которые используют внешние панели инструментов

Reading time3 min
Views783
Оригинал

В четверг состоялся релиз DiggBar. Это стало большой новостью не только для сервисов коротких ссылок, но также для тех сайтов, которые данный сервис используют (даже если с помощью этого сервиса пользователь хочет перейти на другой сайт). Идея не самая новая, некоторые сервисы уже используют ее в течение нескольких лет. Мы составили список 7 крупных сайтов, которые это используют, и поясним, для чего они это делают.
Читать дальше →
Total votes 25: ↑15 and ↓10+5
Comments8

Введение в gen_fsm: Банкомат Erlybank

Reading time9 min
Views5K
Предыстория
Введение в Open Telecom Platform/Открытую Телекомуникационную Платформу(OTP/ОТП)
Введение в gen_server: «Erlybank»

Это вторая статья из серии «Введение в OTP». Рекомендую вам прочитать первую статью, в которой говорится о gen_server и закладываются основы нашей банковской системы перед тем, как читать эту. Если вы быстро схватываете, можете посмотреть завершенную версию сервера и двигаться дальше.

Сценарий: Мы поставили ErlyBank сервер заказчикам, и они остались очень довольны. Но на дворе 21 век, и они хотят также безопасный и простой в использовании банкомат, поэтому они попросили нас расширить наш сервер и создать программное обеспечение для банкомата. Пользовательские аккаунты должны быть защищены 4-цифровым ПИН-кодом. В банкомате можно залогиниться с помощью ранее созданного аккаунта, сделать депозит или снять деньги со счета. Делать красивый интерфейс не требуется, этим занимаются другие люди.

Цель: Сначала мы расширим сервер, добавив поддержку ПИН-кода для аккаунтов и авторизации через ПИН-код. Потом мы будем использовать gen_fsm чтобы создать бэкенд банкомата. Проверка данных будет проводиться на стороне сервера.
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments4

Круговая прокрутка а-ля iPod на тачпаде

Reading time2 min
Views4.3K
Всем известно, что мультитач и прочие удобные трюки тачпадов от фирмы Synaptics, которые стоят практически на всех ноутбуках, зачастую реализуются драйвером тачпада и от аппаратной составляющей мало что зависит. Вот только поддержка их на разных системах разная.
Около полугода назад я, покопавшись в сети, настроил себе нажатие двумя пальцами на правую кнопку мыши, а тремя — на левую, после чего стал переносить руку на мышь гораздо реже. Но хотелось несколько большего.
Порывшись в man synaptics, нашел там интересную вещь под названием CircularScrolling, что в переводе означает «круговая прокрутка». Многим она знакома по плеерам iPod — весьма и весьма удобна при прокрутке длинных документов. Естественно, мне захотелось себе такую же, ибо прокрутка по правому краю не лучший выбор.
Итак, приступим к настройке. Попутно покажу, как реализуется обработка нажатий двумя и тремя пальцами.
Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments88

Организация видеотрансляции на сайте

Reading time4 min
Views20K
Всем привет.

Боремся с пробками вместе


В рамках этого проекта в г. Красногорск, мы решили установить пару сетевых камер и сделать удобным просмотр потокового видео. Забегая вперед, результат можно посмотреть на нашем сайте или с мобильного телефона по wap www.ventumnet.ru/camera


Читать далее
Total votes 67: ↑66 and ↓1+65
Comments73

Социальные аспекты руководства, или как же всё таки «пинать» сотрудников. 2 года спустя.

Reading time6 min
Views6.8K
Статья про «пинание», «закручивание гаек» и контроль задач, разные стили общения и руководства, про сложности делегирования, самомотивацию сотрудников.

Вопрос: Прочитал вашу статью «Социальные аспекты разработки» и был ошеломлен! До этого момента я считал, что такие идеи лишь из области утопий и невозможны к реализации.

Теперь я понял, что это реализуемо. Сам я всегда исповедовал похожий подход, про себя я его называю «человечный менеджмент». Пытался его использовать, когда со своими партнерами несколько лет назад мы начинали свой первый бизнес, но внедрить его на практике так и не получилось. Под прессингом своих партнеров и неадекватной оценки происходящего мы все-таки свалились к системе «пинания» сотрудников и тогда я решил, что такой подход пока не реализуем.

99.77 КБ

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

Симптомы: падение дисциплины, низкая скорость разработки, потеря энтузиазма.
Свой же стиль руководства я бы теперь назвал «попустительским».

И вот, как только мое терпение кончилось, и я собрался на следующий день «закрутить как можно туже гайки», я натыкаюсь на вашу статью. Это было как бальзам на больное сердце. Я сразу с великим облегчением отказался от идеи пинания, но понимаю, что делать все равно что-то надо, а с чего начать не знаю? Хотелось бы вашего совета.

Ответ: В 2 словах это,
— Вносите элементарную организованность в процесс. Это не «пинание» — это ваша работа.
— Разный стиль. С крутыми – искренне, с молодежью – дружелюбно, с «примадоннами» – сухо
— Используйте эмоции для «поджигания» людей. Прочитайте Возьмите эмоции с собой
— Используйте 4 модели руководства исходя из задачи и человека. Это вопросы — Может? Возьмет?
— Готовьтесь к тому, что у вас будут проблемы с Директивным стилем и Делегированием.
— Стремитесь к тому, чтобы у вас в команде были только люди с сильной самомотивацией, для которых ваша работа это хобби, страсть, любимое дело. Помогите разобраться в себе другим людям.
— Сплачивайте команду: cобирайте в одной комнате, проводите общие собрания, ставьте общие достойные цели.

Читать дальше →
Total votes 94: ↑87 and ↓7+80
Comments22

Information

Rating
Does not participate
Location
Россия
Registered
Activity