Как стать автором
Обновить
208
0
Григорий Жижилкин @StopDesign

Chief technology officer

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

Нескучные интегралы

Время на прочтение6 мин
Количество просмотров175K
Некоторые из вас, вероятно, видали на просторах сети эту задачку: какое число продолжает следующий ряд?

Предлагался такой очевидный правильный ответ:

Для тех, кому неочевидно, как он получен, предлагалось объяснение. Пусть (ну и 1 при x = 0, хотя неважно). Тогда каждый член ряда — это значение следующего интеграла в цепочке:

Пока всё идёт хорошо, но тут внезапно:

В принципе, этого достаточно, чтобы повеселить друзей-математиков, но мне захотелось узнать, как вообще считаются такие интегралы и почему получается такой смешной результат. Если кому-то ещё охота тряхнуть стариной и вспомнить матан с функаном, прошу читать дальше.
Читать дальше →
Всего голосов 263: ↑253 и ↓10+243
Комментарии62

Инвижин? Хуижин!* Как мы делали бесплатный аналог InvisionApp

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

*Whoision — официальное название сервиса, с налетом еле заметной иронии.

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

Сам по себе сервис прекрасный, там можно даже связывать макеты отдельных страничек в прототип. Одна загвоздка — ограничение по количеству активных проектов и участников демонстрации. Платный аккаунт всё решает, но у наших ребят давно зачесались руки устроить хакатон. А это значит, что мы построим свой Инвижин, с драг-н-дропом и Google-синхронизацией.

На весь проект у нас одни сутки. Сознаемся, дизайн и верстку мы вынесли за пределы хакатона — делали всё это непосредственно перед ним. Как и тестирование, которое мы перенесли на следующий день. Всё это, с одной стороны, нивелирует наш героический подвиг, но с другой — романтики в нем меньше не становится.

Итак, хроника рабочего процесса со слов участников. В конце — ссылка на сам сервис, для нетерпеливых.
Читать дальше →
Всего голосов 157: ↑111 и ↓46+65
Комментарии64

Введение в анализ сложности алгоритмов (часть 1)

Время на прочтение10 мин
Количество просмотров385K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


Многие современные программисты, пишущие классные и широко распространённые программы, имеют крайне смутное представление о теоретической информатике. Это не мешает им оставаться прекрасными творческими специалистами, и мы благодарны за то, что они создают.

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →
Всего голосов 106: ↑98 и ↓8+90
Комментарии27

Медиацентр из MacMini и Rapsberry PI

Время на прочтение6 мин
Количество просмотров141K
Или самый простой и удобный медиацентр, понятный всем домочадцам



картнка для привлечения внимания

Привет, Хабр! С каждым днем собрать дома медиацентр становится все проще. Вариантов много – от HTPC из старого железа до безымянных устройств размером с флэшку. На хабре было много обзоров самодельных бесшумных HTPC, android-боксов и нет-топов для реализации домашних медиасерверов. Я испытал много разных вариантов, прежде чем найти самый подходящий для себя и, самое главное, для домочадцев.

Задача-минимум:
1. Собрать и структурировать всю медиатеку воедино
2. Сделать ее максимально доступной к просмотру на двух телевизорах в разных комнатах
3. Иметь возможность просмотра или загрузки (для оффлайн просмотра) фильмов из медиатеки на мобильных устройствах
4. Удаленный запуск торрентов с мобильных устройств
5. Бесшумная работа устройств.

Путем проб и ошибок, я пришел к использованию XBMC на стареньком Mac-mini + Rapsberry Pi.
Пробы, ошибки, и удобная конфигурация под катом.
Читать дальше →
Всего голосов 70: ↑61 и ↓9+52
Комментарии75

Методы определения местоположения пользователя

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

Предисловие


Всем, кто когда-либо занимался написанием систем авторизации/регистрации пользователей, наверняка приходилось задаваться вопросом: «А как узнать о пользователе больше информации?». Для чего это нужно? В большинстве случаев, для идентификации именно этого пользователя. Иногда — для предоставления каких-либо дополнительных возможностей и информации, в зависимости от различных социальных параметров, или, быть может, местополжения пользователя или региона проживания. Иногда, например, для проведения какого-либо скоринга. В этой статье речь пойдёт об определении географического положения пользователя.

Эффективные методы определения


Можно придумать массу методов получения георгафического положения пользователя интернета. И все эти методы будут обладать своим набором плюсов и минусов, будут более или менее эффективны, в зависимости от применения. Сейчас я опишу только те методы, которыми на данный момент пользуется проект, в котором я учавствую, т.е. те, которые я непосредственно использую. За время существования проекта по ним уже собралось достаточно статистики, из которой можно сделать некоторые выводы.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии9

Отчёты и графики для travis-ci и drone.io

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

В больших проектах уже довольно давно привык к плюшкам ci: прогону тестов, отчётам и автоматическому деплою. При разработке небольших проектов этого не хватает. 1 и 3 покрывает travis-ci (ну или drone.io), но вот визуализации результата нет никакой.

И сразу придумалось простое решение:
  • прогонять анализаторы на стороне ci;
  • отправлять их себе;
  • парсить результат и красиво отображать.


И это всё вылилось в небольшое приложение — coviolations.io (исходники сервера и приложения), сейчас оно
  • работает с публичными и приватными репозиториями на github;
  • работает с travis-ci, drone.io и при желании с jenkins;
  • умеет парсить результат pep8, sloccount, python unittest, pip-review и testem;
  • умеет рисовать статус-плашку ;
  • умеет комментировать пул реквесты в публичные проекты, использующие travis-ci;
  • не умеет работать с репозиториями организаций.

Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии3

Геймификация студии с помощью подручных средств

Время на прочтение7 мин
Количество просмотров30K
Сам термин «геймификация», вы, наверняка, слышали — он в последнее время снова стал модным. Означает примерно следующее: перенос игровых механик на неигровые процессы. Отчего последние (по задумке) становятся увлекательнее и охотнее воспринимаются теми, кто в них вовлечен.

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

image
Читать дальше →
Всего голосов 76: ↑67 и ↓9+58
Комментарии13

Красивые трейсбеки в Python

Время на прочтение1 мин
Количество просмотров21K
Как часто вам присылают подобные отчеты об ошибке?

Traceback (most recent call last):
...
  File "...", line ..., in ...
    process(lst[index])
IndexError: list index out of range


Ох, если бы только узнать значение lst и index на тот момент...

python-catcher — автоматическая генерация HTML-трейсбеков с локальными переменными и исходниками, + загрузка в интернет — пользуйтесь на здоровье.



Читать дальше →
Всего голосов 94: ↑89 и ↓5+84
Комментарии21

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Создавайте продукты, которые не масштабируются

Время на прочтение16 мин
Количество просмотров70K
Один из наиболее универсальных советов, которые мы даем в Y Combinator, это браться за сложную работу. Многие начинающие основатели верят, что стартапы или «взлетают» или нет. Вы создаете что-то, делаете это доступным, и, если вы придумали самую лучшую мышеловку, люди, как и было обещано, сами придут к вам. Или не придут, в таком случае у вас нет рынка. [1]

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

Привлечение клиентов


Самая распространенная сложная работа, за которую основатели должны браться на старте, это самостоятельное привлечение пользователей. Этим должны заниматься почти все стартапы. Нельзя ждать, когда пользователи к вам придут. Вы должны сами пойти и привести их.
Читать дальше →
Всего голосов 95: ↑86 и ↓9+77
Комментарии12

Traceroute: про умение читать вывод

Время на прочтение4 мин
Количество просмотров168K
  • Почему в трейсроуте после узла X идут звездочки?
  • Сервис не работает, а трейсроут обрывается на узле X — значит проблема в узле X?
  • Почему одинаковые трейсроуты с Windows и Unix показывают разные результаты?
  • Почему трейсроут показывает большие задержки на определенном узле?
  • Почему трейсроут показывает «серые» адреса при трассировке через интернет?
  • Почему маршрутизатор отвечает на трейсроут не тем адресом, каким я хочу?
  • Почему трейсроут показывает какие-то «не такие» доменные имена?
  • Почему вообще вывод трейсроута отличается от интуитивно ожидаемого чаще, чем хотелось бы?

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

Сей топик не дает ответов на вышепоставленные вопросы. Или почти не дает. Но предлагает подумать, нужно ли их вообще задавать, и если да, то когда и кому.
Читать дальше →
Всего голосов 71: ↑50 и ↓21+29
Комментарии43

Распределенный аудиоплеер на Odroid U2

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

Однажды я заметил, что довольно много времени я провожу на кухне, куда звук от колонок, расположенных в комнате доходит плохо. И тогда мне захотелось сделать хороший бесшумный плеер, способный синхронно воспроизводить музыку в нескольких комнатах. Конечно проблему можно было решить простым поворотом регулятора громкости, но этот способ был отброшен как негуманный по отношению к соседям. Другой важный момент заключался в том, что я хотел использовать те же колонки для вывода звука с компьютера. Зачем мне иметь несколько комплектов аккустики в одной комнате?
Пост получился довольно длиннный, так как я старался уделить внимание соображениям, по которым я выбирал то или иное решение.
Читать дальше →
Всего голосов 77: ↑73 и ↓4+69
Комментарии49

Интерактивная SVG картограмма с помощью d3.js

Время на прочтение7 мин
Количество просмотров91K
Приветствую вас, хаброжители! Сегодня я расскажу вам как сделать интерактивную SVG картограмму при помощи d3js.org, о возможностях этой JavaScript библиотеки в общем, а также придётся немного разобраться в том как и где лучше хранить геоинформацию для веба. В финале мы получим следующее:

Картограмма
Начать сие увлекательное путешествие можно под катом.
Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии40

Django ORM, gevent и грабли в зелени

Время на прочтение6 мин
Количество просмотров16K
Очень многие выбирают Django за его простоту. Код на Django прост и лаконичен, мы меньше думаем о костылях и больше о бизнес-логике.

Gevent тоже выбирают из-за того, что он простой, очень шустрый и не несёт за собой callback hell.

В голове возникает великолепная идея совместить две простые и удобные вещи вместе. Мы патчим Django и радуемся простоте, лаконичности и производительности, делаем множество запросов на другие сайты, создаём подпроцессы, в общем используем наш новый асинхронный Django по максимуму.
Но совместив их, мы незаметно для себя поставили несколько граблей на нашем пути.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии76

Инструменты мониторинга в социальных сетях

Время на прочтение7 мин
Количество просмотров56K
Сегодня можно без труда на пальцах одной руки насчитать две и даже семь сотен социальных сетей. Я думаю мне не нужно убеждать дорогого читателя в том, что это бездонный кладезь информации. Но вот как можно эту самую информацию заполучить, да ещё и в удобоваримом виде?

Для того, чтобы у нас с вами было не как на картинке, предлагаю вашему вниманию обзор наиболее интересных сервисов для монитроинга и взаимодействия с социальными сетями. Если коротко, то ситуация выглядит следующим образом:
Wildfire HootSuite TweetDeck AppData Klout
С чем интегрируется
Google+, Facebook, Linkedin, Pinterest, Twitter, Youtube
Google+, Facebook, Foursquare, Linkedin, Mixi, Myspace, Twitter, Wordpress, App Directory
Facebook, Twitter
Facebook
Facebook, Twitter
Цена
Pro / Enterprise — договорная
Free, Pro — $10/месяц, Enterprise — договорная
Free
Free, Pro — $595/месяц или $5995/год, Enterprise — договорная
Free
Аналитика
          
          
          
          
          
Сравнение брендов
          
          
          
          
          
Постинг по расписанию
          
          
          
          
          
Стриминг сообщений
          
          
          
          
          
Для любопытного же читателя я подготовил более развёрнутое описание всех этих сервисов под катом. Так же там можно найти идеи для сервиса, который мог бы принести радость всем людям на Земле.
Читать большой субъективный обзор с картинками
Всего голосов 24: ↑22 и ↓2+20
Комментарии23

Практика борьбы с прокрастинацией и нелюбовью к планированию

Время на прочтение7 мин
Количество просмотров165K
DISCLAIMER: Все изложенные ниже приемы работают для меня, и не факт, что будут работать для вас. IMHO only, на истинность в последней инстанции не претендую.

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

Как ни странно, большая часть из них относится к переделываю своих привычек. Потому что то, что навязывает нам среда, книги, и что мы сами себе прививаем, часто работает против нас.



Отдых тела и ума


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

Второй важный пункт — еда. Для работы мозга — а работа в IT суть интеллектуальный труд — нужно много хорошей еды.
Если вы выспались и сыты, то силы должны быть, если их нет, идем дальше.

Активное тело, температура в помещении
Иногда нужно размять тело. Вовсе не так просто в СССР была производственная зарядка, о которой так бодро пел Высоцкий.

Тут есть глубокий физический смысл. Когда вы приводите свои мышцы в активность, повышается их тонус, в теле изменяется обмен веществ. Организм понимает, что нужно стать бодрее — и через 10-15 минут разминки вы себя не узнаете.
Читать дальше →
Всего голосов 94: ↑77 и ↓17+60
Комментарии43

19 команд ffmpeg для любых нужд

Время на прочтение3 мин
Количество просмотров572K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →
Всего голосов 222: ↑214 и ↓8+206
Комментарии107

Визуализация графа социальной сети: анализ событий блогосферы перед декабрём 2011 года

Время на прочтение6 мин
Количество просмотров35K
Это логическое продолжение статьи "Построение графа социальной сети с помощью Drupal и Feeds"

Я в составе группы занимался собором информации из блогосферы. Задачей было оценить напряженность, активность политических дискуссий в период избирательной кампании выборов в Государственную Думу. Забегая вперед скажу, что исследование позволило выдвинуть гипотезы, которые позже подтвердились. В частности, по результатам, о которых вы прочтете ниже можно понять, кто же будет выходить на площади и выводить за собой людей. И главное, за кем они пойдут.
Читать дальше →
Всего голосов 46: ↑38 и ↓8+30
Комментарии16

Оправдание стоимости разработки сайта и защита от демпинга

Время на прочтение7 мин
Количество просмотров65K
Привет, хабр. Сегодня я хочу поговорить о проблеме, с которой сталкивается абсолютное большинство молодых студий и агентств (и не только молодых, на самом деле) – про оправдание стоимости разработки интернет-проекта перед заказчиком и защиту от демпинга со стороны конкурентов. Надеюсь, эта информация найдет свое практическое применение и поможет вам создавать проекты по достойной цене.

Расчет себестоимости


Говоря о стоимости создания сайта, начать необходимо с определения его внутренней себестоимости в самой компании. До сих пор многие студии работают по фиксированным тарифам (сайт-визитка – XXX рублей, интернет-магазин – YYY и т.п.). Но, так или иначе, все агентства продают время своих сотрудников, и определение себестоимости должно отталкиваться именно от этого фактора.

Заказчик покупает время производящих сотрудников (дизайнеров, разработчиков, специалистов по вносу контента и пр.). Он не готов платить за время PR-менеджера, бухгалтера, уборщицы. Поэтому расчетная смета на проект отталкивается, как правило, именно от стоимости часов «производящих ресурсов».

Посмотрим, какую долю эти ресурсы занимают в общем пуле трат компании. Для небольшой веб-студии (специализирующейся на разработке, а не на рекламе – там закупочные бюджеты и немного другое распределение) из 15 человек распределение статей расходов, как правило, выглядит так:

  • ФОТ сотрудников – 50%
  • — Производящие ресурсы (30%)
  • — Менеджеры, обслуживающий и административный персонал (20%)
  • Условно-постоянные расходы – аренда офиса, канцелярка, расходники, еда, техника и пр. – 15%
  • Налоги – 20%
  • Маркетинг и реклама – 15%
Читать дальше →
Всего голосов 121: ↑103 и ↓18+85
Комментарии66

Raspberry Pi в качестве Time Capsule для Mac OS

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


Об одноплатном компьютере Raspberry Pi узнал чуть больше полугода назад и сразу появилось желание использовать его в качестве домашнего медиасервера. Но ожидание своего заказа в течении 4 месяцев и блуждание по Интернету навели на мысль использовать Raspberry Pi в качестве хранения резервных копий MacBook Pro, т.е., настроить RPi (Raspberry Pi) таким образом, чтобы система Mac OS X по локальной Wi-Fi сети создавала свои резервные копии автоматически.

Данная статья является попыткой создать пошаговую инструкцию по настройке RPi для использования в качестве Time Capsule.
Читать дальше →
Всего голосов 78: ↑75 и ↓3+72
Комментарии69

Информация

В рейтинге
Не участвует
Откуда
Индонезия, Индонезия
Дата рождения
Зарегистрирован
Активность