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

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

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

Оперативное планирование в Redmine

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


В прошлой статье я рассказывал, как мы в Redmine настроили жизненный цикл задач для программистов, сейчас хочу рассказать о том, как мы планируем задачки в Redmine в разрезе месяца (про стратегическое планирование, наверное, напишу в отдельной статье).

Как мы планируем


Вкратце расскажу о процессе оперативного планирования, которое работает в нашем IT-отделе.

Любой сотрудник компании может написать заявку в ИТ-отдел на разработку какой-то функции в ПО или на другую работу (некоторые заявки требуют согласования руководителя, другие — нет).
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии14

26 советов начинающим стартаперам от опытного предпринимателя

Время на прочтение11 мин
Количество просмотров94K
*Эта статья впервые была опубликована в журнале Forbes от 27 Июня 2014 года. На Хабре публикуется её полная версия.

Вот уже 9 лет я занимаюсь интернет-бизнесом и за это время успел создать и вывести на прибыльность 5 собственных стартапов. Кроме того, один из основных моих бизнесов – это заказная веб-разработка, куда часто приходят клиенты, которые хотят разработать свой интернет-стартап и поэтому я все 9 лет каждый день сталкиваюсь с разными проектами, многие из которых являются стартапами в полном смысле этого слова.
Читать дальше →
Всего голосов 71: ↑56 и ↓15+41
Комментарии54

Выразительный JavaScript: Рисование на холсте

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

Содержание




Рисование — это обман.
М.К.Эшер


Браузеры позволяют нам рисовать графику разными способами. Проще всего использовать стили для расположения и расцветки стандартных элементов DOM. Так можно добиться многого, как показал пример игры из предыдущей главы. Добавляя частично прозрачные картинки узлам, мы можем придать им любой нужный вид. Возможно даже поворачивать или искажать узлы через стиль transform.

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

Есть две альтернативы. Первая – SVG, масштабируемая векторная графика, также основанная на DOM, но без участия HTML. SVG – диалект для описания документов, который концентрируется на формах, а не тексте. SVG можно встроить в HTML, или включить через тег <img>.

Вторая альтернатива – холст (canvas). Холст – это один элемент DOM, в котором находится картинка. Он предоставляет API для рисования форм на том месте, которое занимает элемент. Разница между холстом и SVG в том, что в SVG хранится начальное описание форм – их можно в любой момент сдвигать или менять размер. Холст же преобразовывает формы в пиксели (цветные точки растра), как только нарисует их, и не запоминает, что эти пиксели из себя представляют. Единственным способом сдвинуть форма на холсте является очистить холст (или ту часть, которая окружает форму) и перерисовать её на другом месте.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии3

Горизонтальный скролл становится модным. Разберемся в этом

Время на прочтение6 мин
Количество просмотров66K
В последнее время все более популярным становится подход в проектировании сайтов с использованием горизонтального скролла. Нас очень беспокоит целесообразность и юзабилити данного подхода. Чтобы разобраться в этом вопросе, мы перевели статью посвященную горизонтальному скроллу. Предлагаем ознакомиться с материалом и обсудить данную тему в комментариях…


Оригинальное название публикации: “Иск против горизонтального скролла”
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии16

JavaScript выходит за пределы Web в 2014 году

Время на прочтение9 мин
Количество просмотров36K
Перевод статьи Патрика Катанзарити, оригинал можно найти здесь.

JavaScript, эволюционируя, шагнул далеко вперёд от своей изначальной роли в DHTML сайтах 90х гг. Он быстро занимает лидирующую позицию как кандидат на роль универсального языка для Интернета Вещей (Internet of Things). И хотя ещё слишком рано рассуждать о том, одержит ли JavaScript победу в этом состязании, я верю, что ему определённо отведена важная роль в постоянно растущем пространстве Интернета Вещей.

В прошлом году я написал обзор о технологиях, которые могут всерьёз заинтересовать JavaScript разработчиков – JavaScript Beyond the Web. С тех пор появилось много новых устройств и возможностей, поэтому я хочу написать обзор об изменениях, произошедших в мире JavaScript и среди взаимосвязанных устройств в течение 2014 года.

Перечень устройств, способных взаимодействовать посредством JavaScript, растёт с каждым месяцем. У нас появились как официальные JavaScript API, выпущенные производителями устройства, так и продукты усилий сообщества, ориентированные на то, чтобы возможности JavaScript стали доступными и для других.
Читать дальше →
Всего голосов 48: ↑40 и ↓8+32
Комментарии38

BabelFish — полиглот в мире JavaScript

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


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

Например, в REG.RU на сегодня в словарях более 15000 фраз, из которых порядка 200 используют склонение, и более 2000 используют подстановку переменных. Каждый день добавляется не менее 10 фраз. И это при том, что мы пока только начали локализацию сайта и впереди планы на новые языки.

Хотя задачи интернационализации и локализации программного обеспечения (в том числе в веб) не новы, и, в целом, довольно стандартны, хороших универсальных инструментов для их решения не так много. И подобрать такой инструмент для конкретного стека клиентских и серверных технологий не всегда просто, особенно если хочется использовать один и тот же инструмент и там, и там.

DON'T PANIC.

Недавно был опубликован пакет BabelFish 1.0, предназначенный для интернационализации JavaScript-приложений.

Идеи, лежащие в его основе, настолько пришлись нам по душе, что мы даже перенесли их на Perl в виде CPAN-модуля Locale::Babelfish, и используем это для Perl-приложений. Но вернёмся к JavaScript-реализации.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии25

Node.js в огне

Время на прочтение6 мин
Количество просмотров51K
Мы создаем новое поколение веб-приложения Netflix.com, использующего node.js. Вы можете узнать больше о нашем походе из презентации, которую мы представили на NodeConf.eu несколько месяцев назад. Сегодня я хочу поделиться накопленным опытом в настройке производительности нового стека нашего приложения.

Мы впервые столкнулись с проблемами, когда заметили, что задержка запроса в нашем node.js приложении со временем увеличивается. К тому же оно использовало больше ресурсов процессора, чем мы ожидали, и это коррелировало с временем задержки. Нам приходилось использовать перезагрузку как временное решение, пока мы искали причину с помощью новых инструментов и техник аналитики производительности в нашей Linux EC2 среде.

Читать дальше →
Всего голосов 69: ↑64 и ↓5+59
Комментарии64

Flow — статический анализ типов в JS от Facebook

Время на прочтение2 мин
Количество просмотров40K
Flow — это статический анализатор кода и набор синтаксических конструкций, для прямого указания типа переменной.
Flow умеет вычислять тип переменной, без внесения изменений в код (в отличии от TypeScript) что позволяет начать использовать его уже сейчас в любом проекте. Также есть возможность самостоятельно указывать типы в стиле TypeScript.

Есть 3 режима:
  1. Не проверять ничего, по умолчанию
  2. Проверка без использования аннотаций (с коментарием-аннотацией, как в React)
  3. Строгое указание типа переменной (с внесением изменения непосредственно в код)

Примеры под катом
Всего голосов 19: ↑17 и ↓2+15
Комментарии56

Gov.uk: базовые аспекты методологии agile

Время на прочтение8 мин
Количество просмотров21K
Прим. перев.: Продолжаем публикацию серии переводов материалов, подготовленных создателями британского госпортала Gov UK. Данные материалы могут быть полезны с практической точки зрения (разумеется, не только для создания масштабных госсервисов).

Мы начали с блока, посвященного гибким методологиям проектирования, рассказали о его важной части – создания так называемого user-centered design, а сейчас переходим к гибким методологиям разработки.


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

Это означает лишь, что ваша команда, пользователи и стейкхолдеры начнут работать вместе по-новому.
Читать дальше →
Всего голосов 19: ↑11 и ↓8+3
Комментарии2

App Inventor — создание Android-приложений для каждого: Урок 1

Время на прочтение3 мин
Количество просмотров166K
Для начала я расскажу вам немного про App Inventor, а потом мы напишем первое приложение, где будем кормить кота.

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


Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии28

AndroidDev #1. Создаем файловый менеджер

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


Android — перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы.
Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра.
Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести.

Читать дальше →
Всего голосов 98: ↑90 и ↓8+82
Комментарии38

ObjectManager в API Яндекс.Карт. Как быстро отрисовать 10 000 меток на карте и не затормозить всё вокруг

Время на прочтение10 мин
Количество просмотров110K
Перед разработчикам, которые используют API Яндекс.Карт, довольно часто встаёт задача отобразить много объектов на карте. Действительно много — порядка 10 000. Причем эта задача актуальна и для нас самих — попробуйте поискать аптеки на Яндексе. На первый взгляд кажется: «А в чем собственно проблема? Бери да показывай». Но пока не начнешь этим заниматься, не поймешь, что проблем на самом деле целый вагон.



Вопросы по большому количеству меток с завидной регулярностью поступают в наш клуб и техподдержку. Кто все эти люди? Кому может быть интересно показать на карте больше 10 меток? В этом посте я подробно рассмотрю весь вагон проблем и расскажу, как в API появились инструменты, помогающие разработчикам оптимально показать большое количество объектов на карте.
Читать дальше →
Всего голосов 93: ↑89 и ↓4+85
Комментарии85

JarvisJS: Функциональное тестирование веб-приложений

Время на прочтение4 мин
Количество просмотров17K
Здравствуй Хабр! В этом посте мы хотели бы поздороваться и впервые показать миру наш проект JarvisJS.com — сервис для функционального тестирования веб-приложений. Проект еще совсем молод и с любовью разрабатывается командой из трех человек в течении вот уже семи месяцев.

Под катом мы расскажем о нашем сервисе и о причинах, побудивших нас на его создание.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии18

Выразительный JavaScript: Модули

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

Содержание




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

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

Мастер-программист знает, когда нужна структура, а когда нужно оставить вещи в простом виде. Его программы словно глина – твёрдые, но податливые.

Мастер Юан-Ма, Книга программирования


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

В случае больших программ отдельные функции уже теряются в коде, и нам необходима единица организации кода больших масштабов. Модули группируют программный код по каким-то определённым признакам. В этой главе мы рассмотрим преимущества такого деления и техники создания модулей в JavaScript.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии3

Продвинутый Gulp и Browserify: интересные трюки

Время на прочтение9 мин
Количество просмотров42K
Пару недель назад я начал цикл о том, как делал некоммерческий музыкальный проект (первый пост есть в «я пиарюсь», не буду ставить ссылок), но, к сожалению, в первой же статье увлекся, и вместо того, чтобы рассказывать о том, как делал конкретно его, начал вспоминать эффективные трюки из других проектов. Видимо, именно это вкупе с прописанным акцентом на сам проект привело к тому, что за мной и постом прилетело НЛО.

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

Поэтому я постарался убрать все упоминания проекта и повторно публикую (с доработками и правками) статью, которую по сути никто еще не видел. Если вы фанат grunt — почитайте хотя бы вторую часть: то, что вы не любите gulp, не значит, что вы не любите browserify.

Краткое содержание:
  1. Простой способ обработки ошибок;
  2. Универсальная структура для хранения исходных файлов;
  3. Объединение нескольких потоков (например, скомпилированный coffee и js) в один;
  4. Создание потока из текста;
  5. создание собственных плагинов для Browserify;
  6. создание плагинов из плагинов Gulp для Browserify.

Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии15

Graphics2D.js — объекты, интерактивность, анимация на canvas… И ничего лишнего

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

Доброго new Date().getTimeOfDay();




HTML5 Canvas незаменим, когда нужно что-то динамически нарисовать. Но если мы захотим что-то динамически изменять — нам придётся хранить состояние элементов и перерисовывать при необходимости.
Если мы захотим реагировать на события — нам придётся ловить координаты мыши и определять, находятся ли они внутри нужной фигуры.
И т.д.

Частые повторяющиеся задачи. Так и появляются фреймворки и библиотеки.

Впрочем, случай с Graphics2D.js немного другой: мне просто захотелось порисовать. С объектной моделью, анимацией и событиями. И — ничего лишнего.
Но максимально расширяемо: идей много, и всё можно вынести в плагины.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии23

Звоним на мобильные телефоны из браузера с записью разговоров

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


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

Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии20

О Meteor подробно: почему это будущее веб-разработки

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

Что такое Meteor?


Это не очередной javascript фреймворк. Ставить его в один ряд с derby, sails, angular или backbone некорректно. Meteor — это платформа для создания модульных высокоинтерактивных клиент-серверных приложений. Пусть это звучит слегка напыщенно и напоминает маркетинговый булщит слоган, но зато по сути очень точно отражает миссию и текущее состояние Meteor. Буквально несколько дней назад Meteor API выпустил первую стабильную версию (1.0).

Официальную информацию можете почитать на портале www.meteor.com, а я же хочу рассказать об особо горячо любимых мной фичах.
Что же хорошего предлагает Meteor?
Всего голосов 50: ↑22 и ↓28-6
Комментарии73

Джентльменский набор для Amazon Kindle Paperwhite

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

Чтобы настроить и установить все необходимое на любимую читалку Amazon Kindle Paperwhite требуется потратить достаточно много времени. С целью экономии Вашего времени, а также упрощения процесса настройки читалки, я и пишу данную статью. Также добавлены вкусные плюшки помимо стандартных вещей, которые можно сделать с Вашей любимой читалкой, порывшись в интернете… Я включил дополнительные настройки и немного подредактировал программный код. В итоге в мою сборку вошли модифицированные: приложения, игры, ланчер и меню. Кроме ярлыка ланчера, предназначенного для запуска альтернативного меню, на основном экране ничего постороннего нет.

Что входит в сборку:
Jailbreak читалки Kindle Paperwhite;
— русификация клавиатуры;
KUAL — ланчер киндл.
— альтернативное меню;
— словари для перевода текста в книгах с английского и на английский;
— читалки: KOReader и Cool Reader;
— браузеры: SkipStone и Midori;
— другие приложения: блокнот, доска для заметок, напоминалка, просмоторщик картинок, рисовалка, калькулятор, менеджер файлов;
— игры: шашки, шахматы, судоку, сокобан, реверси, гомоку, такузу;
— менеджер задач;
— быстрый вызов: вкл/выкл WiFi, вкл/выкл подсветки экрана, вкл/выкл ночного скринсейвера, вкл/выкл отображения аккумулятора в %, календарь, информация об устройстве.

Все действия со своей читалкой Вы делаете на свой страх и риск. Я никакой ответственности не несу за последствия данных действий. Не испугал Вас? Тогда приступим...
Читать дальше →
Всего голосов 89: ↑63 и ↓26+37
Комментарии44

Выбираем светодиодную лампу

Время на прочтение3 мин
Количество просмотров182K
Всем привет, в продолжении своего поста хочу рассказать о своем опыте в выборе светодиодных ламп.
До написания данного поста меня сподвигло то, что рынок СИД ламп значительно расширился, а цены стали более доступными.
Для сравнения выберем светодиодные лампы, которые можно приобрести в розничных магазинах России или заказть из Китая.
Общее фото на память.

image
Читать дальше →
Всего голосов 86: ↑78 и ↓8+70
Комментарии80

Информация

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