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

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

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

Golang — архитектурный линтер

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.8K

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

В данной статье расскажу про свой бесплатный, open-source, линтер под MIT лицензией и чем он может быть полезен.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии1

Не спешите, делайте как следует: Общинное Управление

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

Эта статья — четвертая глава серии Groove is in the Heart: The DisCO Elements, которая в настоящее время публикуется на Hackernoon. Представленная здесь инфографика принадлежит Felipe Duarte. Здесь вы можете посмотреть все изображения, которые есть в этой серии статей.

DisCO расшифровывается как «Distributed Cooperative Organization» (распределенная кооперативная организация) и представляет собой феминистскую, кооперативную и ориентированную на интересы общества альтернативу широко распространенной DAO-парадигме (Decentralized Autonomous Organization — распределенная автономная организация). DisCO Elements — это нелинейное введение в тонкости DisCO. Перейдите сюда, чтобы загрузить полный PDF или EPub с дополнительным контентом, или же посетите DisCO.coop, где вы также найдете дополнительную информацию.

Читать далее
Всего голосов 14: ↑10 и ↓4+6
Комментарии1

Материалы студенческой школы «Recent Advances in Algorithms»

Время на прочтение1 мин
Количество просмотров4.2K
Recent Advances in Algorithms

В конце мая в Петербурге в ПОМИ РАН прошла международная студенческая школа «Recent Advances in Algorithms». Идея школы заключалась в том, чтобы ведущие учёные рассказали о последних достижениях в области алгоритмов. В результате у нас получился следующий список курсов.

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

Что не так с интерфейсами авиасервисов #2: Как Aviageek изменился после поста на Хабре

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


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

Мы тщательно проанализировали полученные отзывы, создали новую версию интерфейса и сегодня представляем вашему вниманию финальный прототип «Авиагика» перед непосредственным запуском сервиса.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии54

Видео докладов с MoscowJS Meetup

Время на прочтение1 мин
Количество просмотров12K
Недавно в офисе Badoo проходил юбилейный MoscowJS Meetup. Делимся с вами видео докладов.

1. «Специфика верстки мультиязычных веб-приложений»
Александр Тевосян, Badoo.




+ Выложили на GitHub нашу утилиту rtl-css специально к митапу: https://github.com/badoo/rtl-css
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии6

Проектируем информационную архитектуру для e-commerce. Часть 2

Время на прочтение14 мин
Количество просмотров24K
image
Продолжим наше изучение информационной архитектуры и ее значение для электронной коммерции. В первой главе мы вкратце ознакомились с понятием информационной архитектуры (далее — ИА), значением и подходами к работе над ней в рамках проектирования взаимодействия.
Теперь от вопроса «Зачем проектировать информационную архитектуру» перейдем к вопросу «Какие есть особенности ее проектирования?»

Итак: особенности работы с ИА в e-commerce и три аспекта ее проектирования:

  • Принципы построения качественной ИА. Их применение в e-commerce;
  • Шаблонные схемы ИА. Какие шаблоны лучше использовать;
  • Процесс исследований ИА в e-commerce и их рентабельность.

Как водится, краткие итоги главы в конце поста.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Обзор Razer Ouroboros и Blackwidow. Или как я клавиатуру с мышкой менял

Время на прочтение7 мин
Количество просмотров93K
Прошла уже более трёх лет с того момента, как я начал пользоваться игровой мышкой Naga (спасибо Boomburum за неё) и обычной беспроводной клавиатурой Logitech. Но всё имеет свойство ломаться, как это ни печально. Мышь начала глючить, у неё перестала щёлкать одна кнопка, а у клавиатуры и вовсе начали отваливаться клавиши. И я снова решил взглянуть на рынок компьютерной периферии. Остановился для начала на Razer, т.к. мышка всё же прожила 3 года, а до этого обычно они у меня разваливались за год. Да и зелёный цвет в подсветках клавиатур меня всегда привлекал.


Читать дальше →
Всего голосов 68: ↑46 и ↓22+24
Комментарии85

Input — новый шрифт для программирования

Время на прочтение1 мин
Количество просмотров99K
Компания Font Bureau разработала новое семейство шрифтов Input, важнейшим из которых в данном случае для нас является шрифт Input Mono. Кириллица присутствует. Для персонального использования шрифты бесплатны.

Читать дальше →
Всего голосов 81: ↑72 и ↓9+63
Комментарии142

Знакомство с Content Delivery Network

Время на прочтение9 мин
Количество просмотров86K
Содержимое: что такое CDN? История возникновения. Зачем она нужна? Кому она нужна, а кому нет? Порог вхождения, стоимость, издержки. Основные технологии.

CDN — сокращение от content delivery network, то есть “сеть доставки контента”. Чаще всего это множество серверов с специализированным ПО, которые ускоряют доставку (“отдачу”) контента конечному пользователю. Сервера расположены по всему миру таким образом, чтобы время ответа посетителям сайта было минимальным. Под “контентом” чаще всего подразумевают видео и статические элементы веб-сайтов (не требующие выполнения кода на сервере или запросов в базу данных, такие как css/js), но к “контенту” относятся и совсем неожиданные вещи — например, игры в Стиме (использует CDN для отдачи игр), обновления для операционных систем и т.д.



Немного истории

Резкий рост Интернета в середине 90-х привёл к ситуации, что сервера тех лет не могли в одиночку выдержать нагрузку (много ли может отдать могучий двухпроцессорный сервер на базе Pentium Pro на частоте в 266 МГц с 128 мегабайтами памяти?). Лимит производительности серверов и потребность во всё большей и большей производительности породила ныне забытые слова: “ферма серверов”, “иерархическое кеширование”… Айтишный новояз удивительно чувствителен к возрасту — и слова вроде “servers farm” или “information superhighway” сейчас ассоциируются с тёплыми ламповыми CRT-мониторами, а не с прогрессом. В ходе разработки и внедрения разных решений была замечена одна важная особенность: есть два типа контента — статический и динамический.
Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии28

Опубликованы записи докладов конференции DevCon 2014

Время на прочтение7 мин
Количество просмотров7.5K
Уважаемые друзья! Мы рады вам сообщить о публикации записей докладов конференции Microsoft DevCon 2014. Для вашего удобства они размещены на трех ресурсах, и вы можете посмотреть интересующие вас доклады.
TechDays – http://www.techdays.ru/series/devcon_14
Channel9 – http://channel9.msdn.com/Events/DevCon/Russia-2014
Youtube – http://www.youtube.com/playlist?list=PLVDsxiCH_PqTpoEAwIRquA9W4ODnMfc2Z

Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии3

Делаем простейший фильтр по свойствам товаров с помощью ElasticSearch на Symfony2

Время на прочтение5 мин
Количество просмотров48K
Написать эту статью меня сподвигло отсутствие в интернете готового пошагового руководства «как реализовать фильтр товаров на ElasticSearch», а задача сделать это у меня стояла чётко и непоколебимо. Удавалось находить отрывочную справочную информацию, но никак не cookbook по решению самых тривиальных задач.

Акцентирую ваше внимание именно на symfony2, поскольку буду использовать FOSElasticaBundle, который позволяет описывать mapping индексов elasticsearch в удобных yaml конфигах и привязывать к ним сущности Doctrine ORM или документы Doctrine ODM. Промаппленные индексы заполняются из связанных доктриновских сущностей с помощью одной единственной консольной команды. Кроме того, он включает в себя вендорную библиотеку для конструирования поисковых и фильтрационных запросов. Результаты поиска возвращаются в виде массива объектов сущности или документа Doctrine ORM/ODM, привязанной к поисковому индексу. Подробнее о FOSElasticaBundle, традиционно, на гитхабе: github.com/FriendsOfSymfony/FOSElasticaBundle

Использование бандла позволяет полностью абстрагироваться от манипуляций с чистым JSON, что-то кодировать и декодировать функциями json_encode и json_decode, лезть куда-то с помощью сurl. Здесь только ООП подход!

Немного о схеме данных в SQL

Поскольку мои товары хранятся в реляционной СУБД, мне понадобилось реализовать EAV модель для их свойств и значений (подробнее: en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model )

В результате, у меня вышла вот такая схема данных:
image
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии22

Создание игрового персонажа

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


В данной статье описывается процесс создания персонажа для игрового движка. Статья в первую очередь адресована тем, кто интересуется процессом разработки next gen моделей, а также всем, кто хочет заглянуть за кулисы современного игродела. Персонажа я делал для портфолио, на персонажей переключился совсем недавно, можно сказать, что это первый доведенный до ума персонаж. Поскольку данная работа — мой личный проект, то я установил ограничение треугольников в 20 000, текстуры в 2048*2048, работа планировалась под PBR.
Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии47

Как развивать силу воли

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

Одной из самых важных вещей в GTD является сила воли. Без нее вы не будет доводить дела до завершения, любая выбранная вами система не буде работать. Первый же приступ лени не даст вам заглянуть в список дел. GTD, todo list, канбан доска — это всё инструменты. Мы про них много читаем, учимся их использовать, даже программируем. Только самый важный инструмент, который всегда при нас, это сила воли.

До не давнего времени я не понимал, как работает сила воли, не знал, в какой момент времени меня покинет самообладание. Это изменила одна книга. Я рекомендую ее прочесть каждому ITшнику, особенно фрилансерам. У нас, как правило, слабый внешний контроль, поэтому приходиться полагаться только внутренний. Поэтому так важно его настроить. Почему я рекомендую именно эту книгу в качестве руководства под катом.
Читать дальше →
Всего голосов 98: ↑74 и ↓24+50
Комментарии62

Создание API: в рамку и на стену

Время на прочтение5 мин
Количество просмотров57K
Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

API должен описывать сам себя. Изучение кода на таком API не вызывает желания читать комментарии. Вообще, комментарии редко нужны.

Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
Читать дальше →
Всего голосов 154: ↑143 и ↓11+132
Комментарии97

Семь вопросов, которые необходимо задать себе перед тем, как начать собственный бизнес

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

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



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



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





20 основных причин провала старапов по версии ToWave


Читать дальше →
Всего голосов 73: ↑62 и ↓11+51
Комментарии79

«Запах» проектирования: одержимость примитивами

Время на прочтение2 мин
Количество просмотров9.6K
Это второй пост из серии о Poka-yoke проектировании – также известном, как инкапсуляция.

Множество классов имеют тенденцию к потреблению или раскрытию примитивных значений, таких как int, или string. В то время как такие примитивы существуют на любой платформе, их использование может приводить к процедурному коду. Более того, они обычно нарушают инкапсуляцию, допуская присвоение некорректных значений.
Читать дальше →
Всего голосов 23: ↑16 и ↓7+9
Комментарии24

Использование EXPLAIN. Улучшение запросов

Время на прочтение10 мин
Количество просмотров168K
Когда вы выполняете какой-нибудь запрос, оптимизатор запросов MySQL пытается придумать оптимальный план выполнения этого запроса. Вы можете посмотреть этот самый план используя запрос с ключевым словом EXPLAIN. EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации, но печальным фактом является то, что многие разработчики редко его используют. В данной статье вы узнаете о том, какие данные предлагает EXPLAIN на выходе и ознакомитесь с примером того, как использовать его для оптимизации запросов.
Читать дальше →
Всего голосов 39: ↑32 и ↓7+25
Комментарии14

Темное программирование

Время на прочтение7 мин
Количество просмотров139K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →
Всего голосов 257: ↑203 и ↓54+149
Комментарии212

Перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»

Время на прочтение1 мин
Количество просмотров52K
В какой-то момент меня очень удивило, что потрясающая и понятная книга о проектировании JavaScript-приложений от известного автора до сих пор не переведена на русский язык. Вместе с единомышленниками мы перевели все главы. Сейчас мы внимательно вычитали 5 из них и хотим их показать всем, кто интересуется JS. Каждую неделю мы обещаем публиковать по 2 главы.

Прочитать книгу можно на сайте, который мы специально для нее создали, следить за обновлениями можно по RSS и в твиттере. Проект хостится на GitHub Pages, а это значит, что все, кто хочет помочь в вычитке глав, исправить опечатки, или каким-то иным образом помочь проекту, может легко это сделать.

Сайт перевода
Репозиторий на GitHub
Всего голосов 77: ↑75 и ↓2+73
Комментарии26

Разработка «браузерки» — уровень концепции

Время на прочтение19 мин
Количество просмотров26K
Если бы кто-то сказал мне в тот день, когда я согласился участвовать в разработке браузерной игры, что мы доживем до дня открытия проекта в публичный доступ, я бы нервно похихикал и просто не поверил. И если я уже рассказывал, какая череда событий предшествовала реальному запуску проекта, то я несколько умолчал о том объеме работ, который в действительности был выполнен за это время.

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

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

Пернатск
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии35

Информация

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