Компания-разработчик JIRA доросла до IPO, развиваясь без инвесторов

Разработчик легендарного таск-менеджера JIRA австралийская IT-компания Atlassian планирует выйти на IPO к концу года. Об этом сообщило издание The Wall Street Journal.

В прошлом году оценка Atlassian достигла $3,3 миллиарда благодаря выдающимся финансовым результатам компании. Отдельно стоит отметить, что компания развивалась самостоятельно, без сторонних инвестиций. Участие таких фондов, как Accel Partners, T. Rowe Price Group и Dragoneer Investment Capital, ограничилось покупкой незначительных долей. Более того, Atlassian все 13 лет растет исключительно за счет сарафанного радио и не держит в штате менеджеров по продажам.

Учитывая нестабильную ситуацию на биржах, выход на IPO для компании – смелый, но рискованный шаг. Как показала практика, в такие периоды многие стартапы с оценкой более $1 миллиарда не решаются переходить в статус публичных. По данным компании Dealogic, с начала этого года только 19 компаний в США провели IPO. В прошлом году, за аналогичный период времени, публичной стала 41 компания. Однако компании Pure Storage и Square являются исключениями. Обе готовятся выйти на IPO в этом году.

Капитализация Pure Storage почти достигла $3 миллиардов. Компания производит дисковые хранилища, состоящие исключительно из флэш-накопителей (all-flash). Pure Storage предложит 25 миллионов акций по цене от $16 до $18. В результате рыночная капитализация компании может достигнуть $3,3 миллиарда. Производитель систем хранения данных планирует привлечь в рамках IPO с учетом всех расходов в среднем около $395,2 миллиона.

Еще в прошлом году инвесторы оценивали Squre в $6 миллиардов. Основателем компании является Джек Дорси из Twitter. Своим клиентам Square предлагает платежные терминалы, взимая 2,75% с каждой транзакции. Компания уже отправила регуляторам США заявку на первичное размещение акций.

В случае успешного выхода на IPO, в руках основателей (Scott Farquhar и Mike Cannon-Brookes) Atlassian окажется практически вся немалая сумма, вырученная с размещения. Ведь кроме них у компании практически нет совладельцев.

Помимо заманчивых перспектив IPO, у Atlassian на руках уже имеется очень сильный козырь. К компании пришел коммерческий успех в связи с возросшим до небес спросом на ее продукты и сервисы в Кремниевой долине. Ведь именно она является одним из мировых центров развития IT-индустрии в целом и разработки ПО в частности.

Тем не менее, конкуренция остается довольно жесткой, и еще не на всех крепостях возвышается флаг Atlassian. JIRA на своих позициях держится крепко. Но запущенный в 2010 году и купленный в марте 2012 года компанией Atlassian корпоративный мессенджер HipChat проиграл на многих рынках конкурирующему Slack.

ссылка на оригинал статьи http://megamozg.ru/post/19736/

Как тематические мероприятия могут помочь вашему бизнесу?

image

На Западе, да и у нас с недавних пор, практикуется проведение тематических мероприятий на постоянной основе. Раз или два в месяц компания устраивает встречи профессионалов для презентации услуг своей компании, тестировании продуктов и обмена опытом.

Зачастую такие мероприятия проводятся в виде открытых нетворкингов: бесплатное участие, еда и напитки для всех пришедших. Начиная с 5 -10 первых клиентов, некоторые компании доходят до 100+ участников на каждой встрече. И, достаточно раскрутив свое сообщество, организаторы начинают монетизировать нетворкинги.

Так чем же могут быть полезны тематические мероприятия вашему бизнесу?

1) Новые клиенты. Немного большая вероятность, что люди купят ваш продукт, если они присутствовали на его презентации и познакомились с представителями этой компании;

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

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

4) Обмен опытом. Безусловно, подобные мероприятия будут привлекать профессионалов вашей сферы, которые в ходе разговоров за чашечкой кофе могут дать вам дельный совет;

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

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

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

А что вы думаете по этому поводу? Проводите ли свои собственные мероприятия?

ссылка на оригинал статьи http://megamozg.ru/post/19734/

«Книжная полка фронтендера» — как гугл, только лучше

Список книг — «Книжная полка фронтендера

Привет, читатель!

В этой публикации я расскажу тебе о «Книжной полке фронтендера».

Предыстория

К сожалению, в рунете очень мало по-настоящему качественных ресурсов для изучения фронтенда. Эти ресурсы можно буквально пересчитать по пальцам одной руки — это Frontender Magazine, HTML Academy, «Современный учебник JavaScript». Я благодарю авторов этих ресурсов за их неоценимый вклад в развитие и популяризацию фронтенда в рунете.

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

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

Проблема

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

Решение

Я вообще люблю собирать годные материалы в одном месте. Например, веду несколько тематических сообществ во «ВКонтакте». Список YouTube-каналов для веб-разработчиков создал тоже я, если вы видели его. Однажды я понял, что моё основное сообщество с полезностями для фронтендеров имеет слишком много категорий материалов, и хорошо бы как-то часть этих категорий отделить. С этого и началось создание «книжной полки».

Что такое «книжная полка фронтендера»? Это пополняемая коллекция хороших книг, так или иначе связанных с фронтендом. Книги можно фильтровать по трём критериям: тематика, язык и сложность. Например, если вы хотите изучить JavaScript — выбирайте эту тематику. Если вы знаете английский плохо — выберите русский язык. Если вы новичок, то книги вам нужны для начинающих. Таким образом можно найти подходящую вам книгу буквально за пару минут.

Планы на будущее

К сожалению, времени на проект у меня не так много, как хотелось бы. А хотелось бы много, потому что разных возможностей для развития есть много: добавление рейтинга, поиска по авторам/издательствам, добавление возможности сохранять книги в «избранное», добавление подробной информации о каждой книге.

Кстати, для реализации всего вышеперечисленного придётся писать бэкэнд — было бы достаточно простого RESTful API. Если вы хотите принять участие в разработке проекта, то свяжитесь со мной (контакты есть в профиле) или напишите в комментарии и я сам свяжусь с вами.

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

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

И да, приветствуется любая конструктивная критика и предложения по улучшению проекта. Надеюсь что «книжная полка» будет вам полезна!

ссылка на оригинал статьи http://habrahabr.ru/post/267775/

Артем Гавриченков, Qrator — DDoS-атаки [Видеолекция]

Пару недель назад нам удалось вытащить на CodeFreeze с докладом Артема Гавриченкова aka ximaera, CTO в Qrator Labs (бывший Highload Labs) — компании, которая является одним из мировых лидеров по вопросам борьбы с DDoS-атаками.

Собственно, я позвал Артема сделать нам обзорную лекцию о том, что такое DDoS-атаки, какие они бывают и как с ними бороться.

Если конкретнее:

  • История термина. Чем отличаются DoS- и DDoS-атаки?
  • DDoS-атаки с точки зрения специалистов по информационной безопасности, оценка рисков;
  • Виды атак и их классификация;
  • Противодействие для каждого вида атак;
  • DDoS-атаки в Интернете будущего: как IPv6, IoT и рост числа участников Сети повлияет на её, Сети, безопасность?


Лекция получилась большой — более двух с половиной часов. Поэтому делать расшифровку мы не стали. Перед просмотром запаситесь попкорном и пивом.

Команда CodeFreeze желает вам приятного просмотра!

ссылка на оригинал статьи http://habrahabr.ru/post/217543/

Подключение STM32 к аппаратуре радиоуправления


Понадобилось мне реализовать дистанционное управление несколькими двигателями постоянного тока.
В магазинах доступны готовые комплекты радиоуправления для разных ездящих-летающих игрушек и «не игрушек», и появилось желание использовать именно такое управление.
Сигналы на выходе приёмника такого комплекта — это импульсы для управления сервомашинками,
и задача сводится к тому, чтобы измерить длительность имульса 0,8..2,3 мс в каждом из шести каналов, затратив как можно меньше ресурсов контроллера.
Дальше описано как реализовано измерение длительности импульсов с шести каналов, используя особенности периферии STM32 микроконтроллеров.

Железо, на котором проводилась отладка — аппаратура радиоуправления HobbyKing HK-T6A и контроллер STM32F100C8T.

На выходе приёмника имеем такие сигналы:

Очевидное решение — запустить 6 таймеров и каждый канал измерять отдельным таймером.
По переднему фронту импульса сбрасываем таймер, начинаем отсчёт. По заднему фронту смотрим сколько таймер насчитал с момента сброса, это и будет длительность импульса.

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

Будем использовать режим таймера для работы с Hall sensor.
Бесколлекторные двигатели иногда в качестве датчика положения ротора имеют три датчика холла, установленных со смещением. Картинка ниже даёт наглядное изображение как это происходит.

Для обработки датчика холла бесколлекторного электродвигателя некоторые таймеры в STM32 могут быть настроены таким образом, что:
— по переднему фронту на любом из трёх входов CC1, CC2, CC3 таймер сбрасывается,
— по заднему фронту, на любом из этих входов, в регистре capture compare CCMR1 защёлкивается значение счётчика таймера — по факту длительность импульса.

Таким образом, в одном регистре последовательно имеем значения длительности импульсов по трём каналам.

Программно можно как-то разделить эти значения, но проще оставить только два канала ch2 и ch3, значения от них будут защёлкиваться в CCR2 и CCR3 регистрах, а сбрасываться таймер будет по переднему фронту на любом из этих каналов.
Пин, на который назначен вход ch1, настроим на выход, чтобы не ловить помехи на неиспользуемом входе.

На рисунке ниже: красная стрелочка показывает путь сигнала сброса таймера, зелёные стрелочки — путь сигнала защёлкивания значения таймера.

В итоге, для чтения 6 каналов будем использовать 3 таймера, и без дополнительных программных ухищрений, в регистрах CCR таймеров иметь требуемые значения.

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

Взято отсюда

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

Только измерять надо не длительность импульсов, а время между импульсами.

Называется он PPM и широко используется для подключения аппаратуры радиоуправления к компьютеру в качестве джойстика для симулятора (через адаптер, разумеется).
Есть разные версии адаптеров, и даже на основе недорого USBasp программатора.

При наличии PPM выхода задача упростилась: измерить время между шестью последовательными импульсами, началом к измерению будет достаточно длительная пауза.
По переднему фронту импульса сохраняем значение таймера и сразу сбрасываем таймер.
Когда импульсы не поступают, происходит прерывание по переполнению таймера, в этот момент готовимся к приёму импульсов, настраиваем DMA так, чтобы сложить 7 значений в массив.
Первый импульс синхронизирует процесс измерения, значение таймера в этот момент нас не интересует, последующие 6 значений будут хранить время между импульсами.
При каждом последующем импульсе значение таймера защёлкивается, таймер сбрасывается, защёлкнутое значение по DMA сохраняется в массив.

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


При отклонении рукояток значения меняются в диапазоне 3200..5700 единиц
Только вот значения измеренные первым и вторым способом отличаются, но логический анализатор то же самое показывает, так что это особенности аппаратуры.

Грабли, на которые удалось наступить в процессе разработки.
Поведение программы выглядит так — при включении питания программа работает, но при работе с отладчиком вылетает в HardFault_Handler. Программатор подключён по SWD линии (SWDIO, SWIO, GND).

Оказалось:
— при ресете программатором не очищается регистр статуса таймера TIM1->SR, там остаются флаги запроса на прерывание,
— при инициализации таймера разрешается прерывание от TIM1,
— прерывание для TIM1 и TIM15 общее, и когда обращаемся к структуре htim15, то она ещё не определена, поэтому улетаем в HardFault_Handler.

Вот так выглядит процедура прерывания

void TIM1_BRK_TIM15_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_BRK_TIM15_IRQn 0 */

/* USER CODE END TIM1_BRK_TIM15_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
HAL_TIM_IRQHandler(&htim15);
/* USER CODE BEGIN TIM1_BRK_TIM15_IRQn 1 */

/* USER CODE END TIM1_BRK_TIM15_IRQn 1 */
}

Весь этот код сгенерирован Cub-ом автоматически, поэтому пришлось перед всей инициализацией добавить строчку htim15.Instance = TIM15.

Приложения:
1. Проект для Cube
2. Данные 6 каналов + PPM сохранённые с USB логического анализатора Logic-U

ссылка на оригинал статьи http://geektimes.ru/post/263002/