Как стать автором
Обновить
0
0

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

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

Метеостанция: от идеи до реализации

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

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

Мне всегда хотелось чего-то большего, чем обычный градусник за окном или ЖК-экран метеостанции с температурой на улице и в комнате. Поэтому, когда я задумался, «что же такое сделать» для того, чтобы начать знакомство с миром микроконтроллеров, ответ нашелся сам собой — свою метеостанцию. Естественно, с отображением градусов на улице и внутри помещения, влажности и давления. И с подсветкой — мне всегда нравилась реализация прогноза погоды на Яндексе — одного взгляда на фон достаточно, чтобы понять, будет тепло или холодно, и насколько.
Как это устроено?
Всего голосов 55: ↑54 и ↓1+53
Комментарии29

Ещё один Pattern Matching на C#

Время на прочтение4 мин
Количество просмотров17K
Последнее время в процессе работы с языком C# я стал всё острее и острее нуждаться в механизме сопоставления с образцом, который присутствует во многих современных мультипарадигмальных языках (F#, Scala и т.д.), но отсутвует в C#. Найденые благодаря получасу гугления реализации (Пример) предлагали конструировать match-выражения посредством fluent-интерфейсов, что, на мой взгляд, довольно громоздко синтаксически. Вторым, уже более существенным для реального использования, недостатком является overhead на перебор предикатов в цикле, происходящий «под капотом» в таких мэтчерах. В общем, я задался целью написать собственную реализацию сопоставления с образцом, руководствуюсь двумя основными принципами:
  • Синтаксически приблизится к «нормальным» конструкциям как в F#/Scala
  • Приблизиться по производительности к коду с if/else if/else насколько это возможно


За тем, что получилось — прошу под кат
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии14

Очередная умная розетка для очередного умного дома

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



Все остальное под катом. Осторожно! Много картинок.
Читать дальше →
Всего голосов 99: ↑92 и ↓7+85
Комментарии126

Архитектура сервера онлайн-игры на примере Skyforge

Время на прочтение12 мин
Количество просмотров191K
Привет, Хабр! Я Андрей Фролов, ведущий программист, работаю в Mail.Ru над Next-Gen MMORPG Skyforge. Вы могли читать мою статью про архитектуру баз данных в онлайн-играх. Сегодня я буду раскрывать секреты, касающиеся устройства сервера Skyforge. Постараюсь рассказать максимально подробно, с примерами, а также объясню, почему было принято то или иное архитектурное решение. По нашему серверу без преувеличения можно написать целую книгу, поэтому для того, чтобы уложиться в статью, мне придется пройтись только по основным моментам.

image

Читать дальше →
Всего голосов 141: ↑127 и ↓14+113
Комментарии179

Overclock мозга или Внутренняя виртуализация сознания

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


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Всего голосов 224: ↑172 и ↓52+120
Комментарии292

Как делаются видеоролики для игр

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

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

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

Итак, чтобы сделать видео для игры, надо пройти следующий путь:

Выбор типа ролика


Первое, о чем мы спрашиваем клиента — “зачем вам видеоролик?” В зависимости от ответа предлагаем один из типов видео:

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

Тизер для мрачной и чертовски захватывающей игрушки Darklings 2 от Mildmania:

Продолжение под катом
Всего голосов 30: ↑27 и ↓3+24
Комментарии11

Генетические алгоритмы в лицах

Время на прочтение10 мин
Количество просмотров31K
Генетические алгоритмы были изобретены в 1950-х годах как результат первых экспериментов по моделированию естественной эволюции на компьютере. С тех пор они используются для решения самых разнообразных оптимизационных задач, где градиентные методы почему-то не подходят. Биологическая составляющая генетических алгоритмов имеет здесь очень упрощенный вид и речь в данном случае идет скорее о следовании общей идее эволюционного отбора, чем полноценному его моделированию. Тем не менее, иногда результаты работы ГА получается интерпретировать в биологическом смысле. В нашей статье мы рассказываем об опыте применения генетических алгоритмов для задачи распознавания лиц с целью получения «регионов важности» лица. Применение этого подхода позволило в среднем на 20% повысить точность распознавания нашей системы распознавания лиц.
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии38

Новый выделенный сервер: приемка и проверка

Время на прочтение10 мин
Количество просмотров41K
Новый сервер: приемка и проверка

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

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.
Читать дальше →
Всего голосов 85: ↑73 и ↓12+61
Комментарии36

J-сортировка

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

Пирамидальная сортировка (она же сортировка кучей) – классический алгоритм который, пожалуй, должен знать любой программист. Старая добрая «пирамидка» примечательна тем, что в независимости от набора данных у неё одна и та же сложность по времени (причём, очень пристойная) – O(n log n). Лучших и вырожденных случаев для неё нет.

С момента изобретения метода (а в этом году алгоритм празднует свой полувековой юбилей) было немало охочих кардинально оптимизировать процесс накладывания сортирующих куч. Тернарная пирамидальная сортировка, плавная сортировка, сортировка декартовым деревом – вот неполный список инноваций. Перечисленные алгоритмы хотя при тестировании и опережают оригинал по абсолютной скорости кто на 12, а кто и на 25%, в оценке временной сложности всё равно крутятся вокруг O(n log n). При этом данные методы весьма изощрённо реализованы.

Своё видение пирамидальной сортировки предложил и скромный труженик Университета Манитобы Джейсон Моррисон. При этом способ в некоторых случаях по скорости приближается к O(n).

Так ещё метод и прост до безобразия
Всего голосов 57: ↑53 и ↓4+49
Комментарии17

Новый набор в Школу анализа данных Яндекса и разбор вступительного экзамена

Время на прочтение7 мин
Количество просмотров80K
16 апреля открылся новый набор в Школу анализа данных Яндекса, который продлится до 15 мая. В этом посте я хочу рассказать вам, как сложилась судьба тех, кто уже закончил ШАД, а также впервые публично разберу все задания нашего письменного вступительного экзамена. Как всегда, желающим надо будет заполнить анкету и выполнить задание на сайте Школы, сдать письменный экзамен и пройти собеседование.

Кстати, если у вас есть знакомые или их дети, которым рано идти в ШАД, но которые подают надежды, расскажите им о факультете Computer Science, который открывается в этом году в Высшей школе экономики при участии Яндекса. Во многом он будет расти из Школы анализа данных, но в неё мы принимаем студентов и выпускников. Поэтому если вы абитуриент, то приходите 27 апреля на презентацию этого факультета, где ректор НИУ ВШЭ Ярослав Кузьминов и сооснователь Яндекса Аркадий Волож расскажут о нём все подробности. Мы всех приглашаем.

Истории: одна о гуглере и одна — о сотруднике Яндекса

С момента создания ШАД её закончили 260 специалистов в области computer science. Мы попросили двух выпускников Школы рассказать о том, что им дало обучение в ней, и дать несколько советов тем, кто решил поступать.

Андрей Петров, разработчик в мюнхенском офисе Google.
imageКогда я был студентом, у меня сложилась иллюзия, что программировать я уже умею, а Computer Science — это просто. Действительно, ведь я создавал сайты с динамическим контентом, писал игры, получал призы на олимпиадах и без проблем сдавал экзамены в университете. Однако это было лишь хобби, а я был любителем. Чтобы начать путь профессионала, я пошёл в школу Яндекса.
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии34

24-битные I2C датчики давления HP203B и HP206C от Hope Microelectronics

Время на прочтение8 мин
Количество просмотров56K
История началась, когда одна китайская компания по имени Hoperf прислала мне их новые датчики давления, на пробу. В статье описаны основные характеристики сенсоров, фичи, тесты ну и самое главное их результаты в виде графиков и словесных описаний к ним. В конце статьи выложены драйвера для этих датчиков, максимально абстрагированы от аппаратной части.

image

С лева на право: HP206C, HP203B и BMP085 от Bosch для сравнения (в тестах также участвует).
Много картинок..
Всего голосов 62: ↑60 и ↓2+58
Комментарии34

Байес

Время на прочтение3 мин
Количество просмотров98K
В левой руке Морфеуса лежит 7 синих и 3 красных таблетки, а в правой 5 синих и 8 красных. Вы закрываете глаза и берете таблетку — она оказывается красной, однако вы не знаете из какой руки ее взяли. Какова вероятность, что вы взяли ее из правой руки?


image

17 апреля 1761 — день смерти Томаса Байеса.
Под катом результаты того, что есть в рунете, помимо стандартных вещей типа Теорема Байеса, Байесовская сеть, Наивный байесовский классификатор , Байесовская фильтрация спама
Читать дальше →
Всего голосов 102: ↑94 и ↓8+86
Комментарии38

Критика книги Боба Мартина «Принципы, паттерны и методики гибкой разработки на языке C#»

Время на прочтение15 мин
Количество просмотров50K
Если спросить у десяти разработчиков о лучшей (или достойной) книге о проектировании, то как минимум 6 из них назовет книгу Боба Мартина «Принципы, паттерны и методики гибкой разработки». Если же после этого показать им на некоторые интересные моменты писанины «дядюшки» Боба, то большая часть из них с недоумением почухает лоб и несколько изменит свое мнение.

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

Читать дальше →
Всего голосов 43: ↑33 и ↓10+23
Комментарии15

The Good, the Bad and the Ugly code

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

Хороший код или плохой? Лично для меня хороший код обладает следующими качествами:
  • Код легко понятен разработчикам разной квалификации и хорошо структурирован
  • Код легко изменять и поддерживать
  • Приложение выполняет свои функции и обладает достаточной, для выполняемого круга задач, отказоустойчивостью

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

Почему именно эти критерии? Сразу оговорюсь, речь сейчас идет о разработке ПО для бизнеса (enterprise application). Критерии оценки кода для систем реального времени, самолетов, систем жизнеобеспечения и МКС отличаются.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии18

Юнит-тестирование для чайников

Время на прочтение15 мин
Количество просмотров1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



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

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper
Всего голосов 70: ↑63 и ↓7+56
Комментарии65

Яндекс открыл регистрацию на свой чемпионат по программированию

Время на прочтение3 мин
Количество просмотров28K
Зарегистрироваться на контест можно будет до 26 мая. Алгоритм 2014 проводится по правилам TCM/Time и состоит из нескольких раундов: разминочного, квалификационного, трёх отборочных и финального. В этом году финальная игра Яндекс.Алгоритма состоится в Берлине в нашем новом офисе. Квалификационные и отборочные туры будут проходить онлайн на платформе Яндекс.Contest в июле.

Впервые Яндекс.Алгоритм прошел в 2011 году и получился очень камерным — он проходил в рамках Летней школы Яндекса по распределённым вычислениям. В прошлом году в нем участвовали уже 3 000 программистов из 84 стран. Среди них были разработчики ВКонтакте, Фейсбука, Google. А победителем стал Геннадий Короткевич, который в тот же год в составе команды НИУ ИТМО победил на чемпионате ACM ICPC.


Офис Яндекса в Берлине

Яндекс проводит свой чемпионат, чтобы поддержать спортивное программирование в России, создать площадку, где бы наши программисты могли учиться, общаться и обмениваться опытом с коллегами из других стран. Над заданиями Алгоритма снова работает международная команда. В прошлом году авторы разобрали для Хабра все задачи, написанные ими для финала.
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии38

Системы типа DoubleClick позволяют идентифицировать до 90% пользователей

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


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

Сейчас появилась публикация от команды специалистов Принстона, где утверждается, что для отслеживания пользователей даже не нужны возможности NSA. К примеру, команда специалистов Принстона смогла идентифицировать до 90% пользователей, отслеживая трафик систем типа гугловской DoubleClick.

Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии44

Terms of Service, Privacy Policy и License Agreement: ликбез для мобильного инди-разработчика

Время на прочтение13 мин
Количество просмотров21K
Мы познакомились с Владиславом Архиповым во время питерской конференции WNCONF, где он выступал с докладом. В его выступлении особое внимание уделялось важной для нас теме трактовки gambling для social casino. В ходе разговора, в котором участвовали и другие коллеги, выяснилось, что юридическим моментам в своей работе инди-девелоперы уделяют очень мало внимания, создавая необходимые документы по остаточному принципу. Мы решили восполнить этот пробел и провести вместе с практикующим юристом небольшой “ликбез”.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии5

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Время на прочтение2 мин
Количество просмотров229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

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



10 реальных ситуаций, которые удалось осветить — под катом:

Читать дальше →
Всего голосов 157: ↑138 и ↓19+119
Комментарии62

LPC1102 и тёплый ламповый индикатор

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


Написать этот текст меня заставила статья – «Freescale уменьшила размеры самого маленького в мире микроконтроллера на архитектуре ARM». За три дня до публикации этой статьи я закончил свой маленький проект, в котором был использован контроллер NXP LPC1102, — это прямой конкурент описанного в статье Freescale KL02 и возможно нового KL03. Далее будет сравнение двух микроконтроллеров от NXP (Филипс) и Freescale (Моторола), и мой проект на LPC1102.
Читать дальше →
Всего голосов 90: ↑90 и ↓0+90
Комментарии29

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность