Как стать автором
Обновить
5
0
Алексей Лосев @alosev

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

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

Для чего нормальным пацанам нужна миссия компании — и немного кибернетики

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


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

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

Но, тем не менее, если вы используете распределённое управление, эта вот самая непонятная фигня вам жизненно необходима.
Читать дальше →
Всего голосов 90: ↑82 и ↓8+74
Комментарии40

И еще раз о GIL в Python

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

Предисловие


Область, в которой мне повезло работать, называется вычислительная электрофизиология сердца. Физиология сердечной деятельности определяется электрическими процессами, происходящими на уровне отдельных клеток миокарда. Эти электрические процессы создают электрическое поле, которое достаточно легко измерить. Более того оно очень неплохо описывается в рамках математических моделей электростатики. Тут и возникает уникальная возможность строго математически описать работу сердца, а значит — и усовершенствовать методы лечения многих сердечных заболеваний.

За время работы в этой области у меня накопился некоторый опыт использования различных вычислительных технологий. На некоторые вопросы, которые могут быть интересны не только мне, я постараюсь отвечать в рамках этой публикации.
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии47

Как мы отучили аутсорсинг перекидываться мячом со внутренним ИТ-отделом

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


Мы используем как аутсорс, так и свои внутренние ресурсы ИТ-отдела. На одном физическом сервере может быть сервис, за который отвечают внешние сотрудники, и сервис, за который отвечаем мы. И от сезона эти сервисы могут мигрировать внутрь компании или выходить наружу.

Началась история с того, что нам понадобилась централизованная система с фермой терминалов. На тот момент у нас было порядка 10 магазинов, и каждый из них вёл свою базу, данные из которой использовались для составления совокупного отчёта в конце периода или по запросу.
Читать дальше →
Всего голосов 87: ↑80 и ↓7+73
Комментарии56

Опыт получения токена закрытого ключа для Единого Портала Госуслуг

Время на прочтение3 мин
Количество просмотров52K
Всё нижеописанное относится к физлицам Российской Федерации.

Зачем это надо?


Как вы, возможно, знаете — авторизация на портале госуслуг возможна тремя способами — при помощи логина и пароля (где роль логина играет номер СНИЛС), при помощи USB-ключа ЭЦП (криптографического токена), и при помощи CSP.
Мне проще помнить небольшой ПИН к токену, чем каждый раз держать перед глазами карточку СНИЛС с цифрами номера, и вспоминать пароль (а требования к паролю у ЕПГУ серьезные).Поэтому я решил получить аппаратный токен с ключом ЭЦП.
До кучи — квалифицированую подпись токеном можно использовать и помимо портала госуслуг.
Как это было ...
Всего голосов 10: ↑7 и ↓3+4
Комментарии34

Основная ловушка маркетинга и пиара или что бывает, если вы врёте

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


Продолжаю рассказывать про человеческий маркетинг. Когда Англия вошла во Вторую Мировую, был очень примечательный эпизод. Военная пропаганда – это то, чему обычно не все и не всегда верят. Официальные каналы преуменьшают потери, преувеличивают успехи. Я сейчас не уверен в числах, но первое же радиосообщение с фронта про воздушный бой было про то, что сбито 40 английских истребителей. Позже пришла информация, что меньше – 34. Через пару дней нашли ещё пилота, совершившего аварийную посадку.

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

Есть первый железный принцип хорошего маркетинга и пиара – никогда не обещать ни на грамм больше, чем можешь сделать. И никогда не врать. Стоит хоть немного увлечься – и вот в какой-то момент ты станешь обманывать сам себя.
Читать дальше →
Всего голосов 210: ↑199 и ↓11+188
Комментарии158

Сборка: markitUp, fancybox, elFinder — отличная замена WYSIWYG редакторов

Время на прочтение3 мин
Количество просмотров8.2K
Я давно занимаюсь написанием систем управления контентом для сайтов и всегда в них использовал визуальные редакторы. В виду того, что я часто не только пишу cms, но и осуществляю дальнейшую их поддержку, мне надоело, что юзеры регулярно норовят намудрить с html-кодом (о копипасте из ворда я вообще молчу). И с этого года я стал вместо визивиг-редакторов вставлять markitUp с поддержкой markdown.

И действительно, проще за 3-4 часа объяснить основы html разметки, чем отучить пользователя копипастить из ворда. Все замечательно в markitup, но не хватает возможности загружать файлы на сервер и вставлять ссылки на них.

Сегодня решил посвятить время симбиозу замечательных jquery плагинов: markitUp, fancybox, elFinder. Результатом своего труда решил поделиться.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии23

Генерим PDF бочками

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

Предыстория


На хабре неоднократно упоминались различные инструменты и способы создания скриншотов WEB страниц.

Хочу поделиться собственным «велосипедом» для создания PDF на Python и QT, дополненным и улучшенным для централизованного использования несколькими проектами.

Изначально генерация запускалась из PHP скрипта, примерно так:

<?php
// локальный файл
exec('xvfb-run python2 html2pdf.py file:///tmp/in.html /tmp/out.pdf');
// или URL
exec('xvfb-run python2 html2pdf.py http://habrahabr.ru /tmp/habr.pdf');
?>

этого было достаточно и все было хорошо…
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии18

Рентабельный код

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


Жили-были в двух соседних деревушках Вилларибо и Виллабаджо две команды разработчиков. И те и другие делали ревью кода, писали тесты, приводили рефакторинг, но через год разработки в Вилларибо уже выпустили релиз и вышли в продакшн, а в Виллабаджо все еще проводят рефакторинг и чинят баги. В чем же дело?

Разработка ПО – область, подверженная рискам. В нашей сфере при наступлении одного или нескольких рисков, срок поставки рабочей версии может сдвинуться не на привычные и комфортные 10-20%, а на все 150-300%. И надо признаться, что это далеко не предел.

Мы можем либо скрестить пальцы и надеяться, что удача будет сопутствовать проекту во всем, либо признать, что по статистике большая часть проектов по разработке ПО «проваливается» и предпринять дополнительные усилия по ослаблению возможных рисков.
Моя практика показывает, что клиенты крайне неохотно работают по схеме T&M и чаще предпочитают Fixed Price. В условиях зафиксированной стоимости наступление рискового случая означает автоматическое снижение рентабельности проекта: сотрудники получают зарплату ежемесячно, а не за сданные проекты.

До Agile и XP вся ответственность за работу с рисками ложилась на менеджеров. В гибких методологиях разработчики гораздо больше вовлечены в процесс и делят ответственность с менеджерами. Однако, принципы XP и Agile – больше методологические, чем технологические. Я думаю, что с рисками эффективнее работать комплексно на всех уровнях, в том числе на самом низком уровне, т.е. во время проектирования и написания кода.

Почему об этом следует думать разработчику, если есть менеджер?
  1. Не секрет, что если факап случится, менеджмент примет единственное «супер-умное» решение: «давайте поработаем сверхурочно и в выходные»
  2. Премии сотрудники получают тоже обычно за в срок сданные, а не за проваленные проекты
  3. Чувство сделанного дела, в конце концов. Гораздо приятнее сдать проект во время и видеть улыбку клиента, чем с опозданием в полгода отвязаться от «трудного ребенка»

С моей точки зрения спокойная рабочая обстановка вместо авралов и бонусы – неплохая мотивация, чтобы начать заботиться об этом.
Читать дальше →
Всего голосов 76: ↑68 и ↓8+60
Комментарии26

Простая методика построения фильтров товаров с помощью MongoDb и MapReduce

Время на прочтение8 мин
Количество просмотров32K
Впервые столкнувшись с MapReduce, я продолжительное время искал реальные примеры применения. Пресловутый поиск слов в тексте, встречающийся в каждой второй статье о MapReduce, искомым примером считать не будем. Наконец, на двух курсах по Big Data на Coursera, я нашёл не только живые примеры, но теоретическую подоплёку для более глубокого понимания происходящего. Возможность применить полученный багаж знаний не заставила себя долго ждать.

В этой небольшой статье я хочу поделиться опытом реализации классической для большинства Интернет-магазинов системы фильтров товаров по критериям применительно к туристическому порталу, где появилась задача поиска и фильтрации по базе в десятки тысяч отелей, каждый из которых описывается рядом параметров и наличием нескольких десятков предоставляемых сервисов из сотен возможных.
Всех интересующихся MongoDb и MapReduce приглашаю под кат.
Всего голосов 74: ↑69 и ↓5+64
Комментарии18

Кружок по программированию для школьников

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

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

Где-то пол года назад я загорелся желанием открыть свой кружок по программированию для детей. Решил, что было бы замечательно набрать группу детей и обучить их полезному языку программирования и познакомить с основными технологиями, которые применяются совместно с программированием и смогут пригодиться в реальной жизни, например, работа с HTTP и базы данных.
Читать дальше →
Всего голосов 128: ↑120 и ↓8+112
Комментарии90

Поиск через sphinx в django 1.6 admin

Время на прочтение3 мин
Количество просмотров12K
Задача: реализовать полнотекстовый поиск в админке django.
Пример модели, по которой будем делать поиск:
class Movie(models.Model):
    title_en = models.CharField(max_length=255, null=True)
    title_ru = models.CharField(max_length=255, null=True)
    year = models.PositiveSmallIntegerField(null=True)

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

Ajax валидация форм в Django

Время на прочтение5 мин
Количество просмотров21K
imageСегодня я расскажу о том, как мы валидируем формы с использованием технологии Ajax. На стороне сервера будет использоваться Django.
Ничего нового в этом способе нет, в интернете есть несколько статей на эту тему, главное же отличие от этих статей заключается в том, что всю логику валидации формы через Ajax мы вынесем в отдельное представление (view). Это позволит нам писать все остальные представления без какой-либо дополнительной логики. При написании функционала будет использоваться Class Based Views подход.

При валидации форм с использованием Ajax мы получаем следующие преимущества:
  • страница пользователя не перезагружается пока данные не валидны;
  • форма не отрисовывается заново;
  • логика валидации формы описывается в одном месте.

Если заинтересовались, добро пожаловать под кат.
Читать дальше →
Всего голосов 9: ↑5 и ↓4+1
Комментарии6

Улучшаем админку

Время на прочтение6 мин
Количество просмотров79K
Одно из слабых мест джанго-админки — главная страница. Идея авто-группировки моделей по приложениям и вывод столбиком в одну колонку работает только на начальных этапах, дальше это становится просто неудобно — куча лишней информации и довольно сложные пути для того, чтобы добавить полезную. Ну, например, чтобы названия приложений писались русскими буквами — полностью перекрывать шаблон.

И тут на помощь приходит django-admin-tools. С этим приложением минут за 20 можно получить «приборную панель» с произвольной группировкой приложений/моделей, вкладками, любым числом колонок, различными блоками, которые каждый пользователь сможет расставить, как ему удобнее, скрывать и сворачивать по желанию, закладками, настраиваемым меню и удобным способом добавления во все это хозяйство всего, чего только можно придумать.

Вот так, например, сейчас выглядит админка к сайту НадоВместе:

image
(это только часть, вот скриншот целиком)

Разберемся поподробнее.
Читать дальше →
Всего голосов 105: ↑100 и ↓5+95
Комментарии45

Использование MongoDB в Django

Время на прочтение3 мин
Количество просмотров45K
— документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++ и распространяется в рамках лицензии Creative Commons.

В последнее время становится довольно популярной и восстребованой. И вот возникла идея использовать ее в связке с фреймворком Django. Собственно о чем далее и пойдет речь.

Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии14

Боевой сервер для Django-приложения: Ubuntu Server 10.04 LTS + django 1.4 + nginx + gunicorn

Время на прочтение11 мин
Количество просмотров121K
Многие учебные пособия по разработке на Django раскрывают как быстро получить работающий отладочный сервер (python manage.py runserver), а вопрос развертывания в боевом режиме часто остается нераскрытым или освещаются далеко не самые простые и эффективные методы.
Ниже я расскажу о об одном из способов развернуть сайт на Django в боевом режиме, начиная от выбора хостинга, заканчивая развертыванием веб-сервера. Таким образом статья может быть полезна тем, кто освоил разработку на базе Django, но не имеет опыта развертывания серверов. Мой способ один из многих, но он достаточно прост, эффективен в работе и легок в поддержке. Используем VPS-хостинг, Ubuntu 10.04, nginx, gunicorn.

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии41

Сервер отчетов на django

Время на прочтение18 мин
Количество просмотров19K
Доброго времени суток.

Так случилось, что моя работа связана с написанием отчетов.
Этому я посвятил около 8 лет. Отчеты — это глаза бизнес-процесса и информация,
необходимая для принятия оперативных решений.

Вначале наш отдел делал отчеты,
— Принимая задачи по outlook
— Составляя sql-запрос
— Отправляя результаты заказчику в xls
— В лучшем случае, сохраняя sql-код куда-то в папку (а иногда и не сохраняя)

Но это было скучно и неинтересно. Так появилось простейшее приложение на PHP,
в котором каждый отчет был представлен в виде php-файла с одним классом, имеющим единственный (помимо конструктора) метод show()

В таком виде, система прожила 5,5 лет, за которые мной и еще одним человеком было написано более 500 различных отчетов.
В процессе появился опыт и стало понятно, что многое (если не все) сделано не так, да и PHP уже не устраивал.

Сервер отчетов был переписан на django, где была «админка» и код приложения уже не правился.
В процессе работы снова накопилось несколько мыслей,
в итоге сервер был снова переписан.

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

Это рабочий инструмент, который вы можете (если захотите) использовать в работе,
который нам использовать просто нравится.

Итак, поехали
Всего голосов 33: ↑31 и ↓2+29
Комментарии16

Поле множественного выбора с автодополнением в Django

Время на прочтение7 мин
Количество просмотров22K
Привет, хабр.
В прошлой своей статье я описал технологию создания кастомного поля для ввода тегов в Django. Сейчас я бы хотел поделиться готовым и более-менее универсальным решением, реализующим поле множественного выбора с автодополнением по AJAX. Отличие этого поля от описанного в предыдущей статье в том, что оно позволяет только выбирать элементы из справочника, но не создавать новые. За front-end часть будет отвечать замечательный jQuery-плагин Select2. Решение будет оформлено в виде отдельного приложения Django.
Всех заинтересованных прошу под кат
Всего голосов 18: ↑17 и ↓1+16
Комментарии4

5 полезных батареек для Django

Время на прочтение3 мин
Количество просмотров33K
Разрабатывая постоянно сталкиваешься с разнообразными задачами, которые часто решить в лоб не удаётся. Но многие задачи уже были решены кем-то — нужно только найти это решение.

Так, день за днём я насобирал небольшую коллекцию батареек, которые сильно облегчили мне жизнь. Чем и спешу поделиться:
Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии11

Подборка инструментов для фронт-энд разработки

Время на прочтение2 мин
Количество просмотров134K
Как разработчику, мне очень нравятся инструменты, которые помогают сэкономить время или упростить процесс разработки фронт-энда. В этой статье я собрал мои любимые веб-инструменты для упрощения разработки веб-интерфейсов.

Картинки кликабельны.

Form builder


Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
image
Читать дальше →
Всего голосов 202: ↑184 и ↓18+166
Комментарии40

Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь

Время на прочтение4 мин
Количество просмотров38K
Бесценный опыт работы с Django, или Django для блондинок, брюнеток и всех-всех-всехПоследние 15 недель мы активно работали над проектом «Стиллион», первым нашим мейнстрим-проектом, написанным на Django. Был приобретен интересный опыт, которым мы хотели бы поделиться с сообществом.
Статья, прежде всего, будет интересна новичкам в Django.
За катом список полезных плагинов, которые мы использовали, и ещё немного клёвых фич
Всего голосов 108: ↑100 и ↓8+92
Комментарии59

Информация

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