Search
Write a publication
Pull to refresh
38
0
Георгий Оганисян @Grox

Full Stack Web Developer

Send message

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

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


Введение


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

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

Заповеди IT-аутсорсера/Сервис провайдера

Reading time4 min
Views23K
Доброго времени суток, уважаемые хабровчане.

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

Благодаря этому опыту, а также счастью работать в полностью ITIL-compliant организации, у меня сложился ряд представлений о том, как должна вестись работа (речь скорее о внутренней «кухне»). Хотелось бы ими с Вами поделится. На их правильности я не настаиваю, однако такое «кредо» очень здорово помогает мне (а, соответственно, и моему работодателю) вести успешную работу и не переставать радовать клиентов.

Все остальное — под катом.

Читать дальше →

Даешь пульт мультикоптеру!

Reading time8 min
Views75K
image

Авиамоделизму, как хобби, десятки лет. И на рынке аппаратуры радиоуправления давно сформировались свои лидеры и стандарты. Мультикоптеры же стали смиренно использовать существующие пульты ДУ от самолетов и вертолетов.

Насколько безопасны такие полеты? И почему коптеру нужен собственный пульт?

Пост содержит инструкцию по изменению механической части RC-передатчика Futaba T8FG. С незначительными отступлениями, эта инструкция может быть применена к большинству передатчиков, имеющихся в продаже.

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


Рекомендую к прочтению, если:

1) Вы собираетесь сделать/приобрести мультикоптер
2) Вы летаете на мультикоптере, используя самолетный пульт
3) Хотите быть в курсе особенностей управления авиамоделями

Читать дальше →

STM32 и Bluetooth или удаленное управление ПК своими руками

Reading time7 min
Views46K

Вместо введения


День добрый.
Сегодня я попытаюсь рассказать о своей попытке построить систему удаленного управления ПК в пределах одного помещения.

Сразу отмечу для тех кто скажет велосипед. Да это велосипед. И мне было интересно его построить. По ряду причин. Одна из которых желание сделать своими руками а не купить.
Для тех кому интересно что из этого вышло

Как мы «перенесли» всю инфраструктуру в «облако» за 5 дней

Reading time5 min
Views35K
К нам недавно пришел заказчик и сказал: нужно перевести работу всей компании в «облако». Желательно вчера. В общем, как и все авральные проекты — задача мечты, потому что работы много, а времени нет.

По сути, нужно было с нуля спроектировать архитектуру IT и перенести туда данные сотрудников. Со стороны заказчика — исполнительный-директор и его напарник, около 100 человек пользователей на 4 площадках, с нашей стороны — четыре небольшие рабочие группы. Одна занималась терминальным доступом, вторая — отвечала за почту. Третья занималась инфраструктурой (VPN, сетевое взаимодействие), и четвертая настройкой бэкапа.

Справились за пять календарных дней — за среду провели полный аудит ИТ-инфраструктуры компании Таврос, разработали основные архитектурные решения и выбрали технические средства для их реализации. Следующие 2 дня специалисты КРОК активно работали над развертыванием соответствующей требованиям заказчика инфраструктуры. В субботу и воскресенье допиливали мелочи и тестировали. В понедельник пользователи компании вышли на работу и ничего не заметили, но большинство ИТ-объектов уже были в нашем «облаке».
Читать дальше →

Как поставить электронику на производство: разбор этапов и задач

Reading time4 min
Views43K


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

  • Кто задумывается о производстве электроники? Объясним, почему практически все игроки рынка электроники учитывают в своей работе производственные вопросы: и стартапы, и зрелые компании.
  • Из каких этапов состоит процесс коммерческого производства? Разберемся, какой объем работ предстоит в рамках проекта. Кратко и по пунктам.
  • Кто участвует в производственных проектах? Перечислим компании, которые нужны для организации производства.


Читать дальше →

PHP: фрактал плохого дизайна

Reading time32 min
Views207K

Предисловие


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

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

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

Статьи от предпринимателей из Кремниевой Долины. Алексей Федосеев: «Дивный и новый, но не слишком понятный мир (часть 1)»

Reading time4 min
Views12K
image
Привет, это Иван Цыбаев из Американской Бизнес-ассоциации Русскоговорящих Профессионалов (AmBAR). Данной статьёй начинаем нашу серию публикаций от именитых предпринимателей из Кремниевой Долины, в которых они будут рассказывать о своих стартапах, рынках в которых они работают и о прочих вещах, входящих в сферу их компетенции. Ранее мы уже знакомили обитателей Хабра с интересными людьми и местами Кремниевой Долины — видеоинтервью и репортажи из Кремниевой Долины.

Итак, наш первый автор — Алексей Федосеев, бывший директор по разработке продуктов в компании Motorola, серийный предприниматель, продавший свой предыдущий стартап за несколько десятков миллионов долларов (точная сумма не разглашается). В статье Алексея проливает свет на то, как можно ответить с помощью современных технологий, социальных сетей и своего стартапа на столь простой, и одновременно самый сложный из вопросов «Так что же на самом деле думают люди [в Интернете]?», решая проблему навязывания мнения наиболее активных комментаторов, блогеров, журналистов и других лиц, выдающих свою точку зрения за общественную.
Читать дальше →

Замечательное выступление настоящего программиста

Reading time1 min
Views150K
Не нашёл на хабре — спешу поделиться. Восхитительное выступление Александра Соловьёва ingspree на конференции JavaScript Frameworks Day 2013. На видео ниже просто набор отрывков из него, желающим посмотреть полностью — сюда.

Как мы улетели и с трудом вернулись: подробный отчет о нашем участии в соревнованиях летающих роботов компании КРОК

Reading time8 min
Views20K
3 сентября 2012 года, прочитав на сайте Habrahabr новость о соревнованиях летающих роботов, мы поняли – вот оно, дождались! К тому моменту мы уже несколько месяцев думали о том, что пора переводить свой многолетний интерес к робототехнике в профессиональное русло, и искали для этого повод.

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

Забегая вперед, хочется отдельно отметить высокий уровень организации соревнований. Такого в России еще не было. Мы рады, что приняли участие в этом мероприятии и рады, что смогли победить.
Читать дальше →

Инструкция по выживанию для штатного системного администратора 2

Reading time8 min
Views59K

Наводим порядок в ИТ-инфраструктуре




Предыдущая инструкция по выживанию системного администратора относилась преимущественно к взаимодействию системного администратора и руководства компании, но, как верно заметили читатели, уровень стресса у системного администратора зависит еще и от уровня хаоса в ИТ-инфраструктуре. При этом, хаос в ИТ-инфраструктуре, как правило, является историческим наследием компании, который создали предыдущие сисадмины-временщики сторонники определенных (иногда экстремистских) технологий. Системный администратор, приходя в компанию с такой ИТ-инфраструктурой, ставится перед тяжелым выбором: либо менять работу (и тем самым снижать свою привлекательность в глазах работодателей), либо собрать всю волю в кулак и пытаться привести ИТ-инфраструктуру в «нормальное» состояние.
Читать дальше →

Цикл разработки через Github

Reading time3 min
Views106K

Разработка



Я расскажу о цикле разработки через Github, который я использую. Он был проверен в течении года на командах разного размера: 3 — 14 человек.

Существует 2 основных ветки: master и dev.

master — стабильная ветка, готовая к выкатыванию на production сервер в любой момент.

dev — ветка, над которой в данный момент работает команда.

Итак, в начале разработки master и dev ветки идентичны.

Читать дальше →

Джефф Дин из компании Google — это Чак Норрис нашего времени

Reading time4 min
Views226K
«Джефф Дин компилирует и запускает свой код перед коммитом, но только чтобы проверить на баги компилятор и CPU», — вот один из множества шуточных фактов о Джеффе Дине.

Джефф Дин считается кем-то вроде Чака Норриса. Отличие только в том, что он вовсе не герой боевиков, а инженер-программист компании Google.

Шутки о нём впервые появились на 1 апреля шесть лет назад. Один из коллег Дина по имени Кентон Варда открыл страничку, куда каждый мог добавлять факты о Джеффе Дине. Идею с энтузиазмом подхватили другие разработчики — и вскоре наполнили страничку множеством таких «фактов».
Читать дальше →

Авиабилеты — IT системы бронирования

Reading time4 min
Views59K
Мы каждый день находим недорогие билеты для наших пользователей на buruki.ru. Но как устроен рынок авиабилетов «под капотом»?

На первой ступени цепочки стоят авиакомпании — производители продукта.

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

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

Reading time7 min
Views140K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →

Облака — ещё дешевле

Reading time5 min
Views116K
Наверняка вы слышали о сервисах Amazon EC2, Rackspace и им подобным. Может быть даже пользовались. Лично мне бывает нужен иногда личный VPN-сервер. Для этих целей я уже давно держал микро-инстанс на Амазоне, предоставляемый им в течении первого года бесплатно. Плюс использовал для архивов Amazon Glacier, который с его ценой «1 цент за гигабайт в месяц» можно считать тоже почти бесплатным. Но вот год закончился и за EC2 стало нужно платить. Архивы мои тоже разрослись прилично и затраты на Glacier аналогично перестали радовать.

Случайно пробежавший мимо обзор сервиса DigitalOcean по-началу оставил меня равнодушным. Ну, облачный сервис, ну виртуалки. Ну да, чуть-чуть дешевле (но не так чтобы уж очень), чего-то аналогичного Glacier вроде бы нет да и вообще оно того не стоит.

Я сильно ошибался. Ниже будет рассказано как на базе DigitalOcean сделать себе VPN-сервер в пару десятков раз дешевле такого же на Амазоне и сервис хранения архивов, в бесконечность раз дешевле Glacier.
Читать дальше →

О системе диалогов Deus Ex и реальных механиках в настольных играх

Level of difficultyEasy
Reading time3 min
Views54K
Deus Ex Human Revolution — произведение искусства в лучших традициях киберпанка, своего рода IT-RPG. Игра отличная и стильная с крутым сюжетом и массой проработанных деталей. Но самое, на мой взгляд, крутое в ней – это система диалогов как механика.

Сейчас объясню в чём дело. Посмотрите на вот эти два скриншота: первый из Fallout II, второй из нового Deus Ex.


Старая добрая диалоговая система


Диалог в Deus Ex с установленным в голову социальным модулем
Читать дальше →

Hardware is less hard with accelerator

Reading time5 min
Views10K
image

Habrahabr, привет! Почти год назад я писал о своем проекте Petcube — гаджете для игры с домашними животными. С тех пор прошло немало времени, мы продвинулись в разработке, получили патент, анонсировали продукт на западном рынке и получили сотни публикаций, в частности в Wired, NBCNews, CNet и других больших медиа. Всего на проект было потрачено порядка $40к из собственных сбережений основателей. Этим летом мы взяли сторонние инвестиции и решили участвовать в программе хардверного акселератора HAXLR8R, который находится в китайском городе Шэньчжэне — мировой столице электроники.
Читать дальше →

EmBlocks — IDE для STM32

Reading time3 min
Views63K
Я обещал поделиться своей настроенной средой Em::Blocks.
Выполняю обещание.


Что такое Em::Blocks?


Это IDE на основе Code::Blocks — кросс-платформенной быстрой среды разработки со встроенным скриптовым языком и очень гибкой настройкой, ориентированной под С/С++ разработку. В среде есть встроенные шаблоны для кучи различных случаев и возможность подключать любые компиляторы.
EmBlocks в отличие от CodeBlocks не кросс-платформенная, она существует только под Windows.
Зато вместе с ней поставляется специальная версия CodeSourcery тулчейна, которая позволяет плотнее интегрировать тулчейн с IDE. Версия в комплекте всегда свежая.

Достоинства EmBlocks


  • быстрая, т.к. написана в native коде
  • расширяемая и хорошо автоматизируется с помощью скриптов
  • шаблоны проектов можно настроить на свой вкус
  • можно самому изменить диалог мастера создания проекта
  • не требует установки — можно носить с собой на флешке и легко перенести с настройками на другой комп
  • из коробки поддерживает отладку через ST-Link и J-Link
  • бесплатная
  • неплохо поддерживается на собственном форуме

Пример проекта с использованием EmBlocks — мигание светодиодами.
Подробности и архив для скачивания

Создание автономного робота Frank. Часть первая

Reading time5 min
Views75K
image

Уже второй месяц я собираю по вечерам автономного робота, которого зовут Frank. Почему? Не спрашивайте! Я знаю, что у каждого робота должно красиво расшифровываться имя, но я ничего еще не придумал. Если будут идеи — пишите в комментариях. Все началось достаточно давно. Мое увлечение нейронаукой, когнитивистикой, искусственными нейронными сетями и искусственным интеллектом привело меня к тому, что исследования алгоритмов в компьютере — это достаточно увлекательный процесс, но иногда хочется потрогать свое творение руками и посмотреть как оно ведет себя в реальной жизни.

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

Так как половину времени я живу в Лос Анджелесе, а половину в Москве, то возможно некоторые ссылки будут не очень актуальны. С другой стороны, мне пришлось найти магазины для покупки электроники и там и тут, так как мои постоянные разъезды никак не влияют на желание изучать робототехнику. Поэтому, по возможности, я опубликую ссылки и на наши и на западные ресурсы. Возможно, это поможет и русским читателям и тем, кто читает Хабр за рубежом.

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity