На заре становления рынка спутниковой навигации была создана компания Русские Навигационные Технологии, основным продуктом которой стала спутниковая система мониторинга транспорта под названием АвтоТрекер. В то время в России о мониторинге транспорта почти ничего не было известно. Все понимали, что такое GPS-навигатор, что можно определить свое местонахождение на электронной карте, и понять, как попасть из исходной точки в пункт назначения. Но до применения систем навигации в управлении автопарком было еще очень далеко. В это же время стремительно развивается рынок сотовой связи, и стоимость передачи данных по GPRS быстро снижается.
乔木 @Tios
Сетевой инженер
Пишем, собираем и запускаем HelloWorld для Android в блокноте
10 min
129KTutorial
Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.
По-сути эта статья является переводом и переработкой статьи Building Android programs on the command line под современные на данный момент JDK (7) и Android SDK (API level 19). Кроме того, я многое упростил и добавил кое-что от себя.
Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
+86
Разбираем интерфейсные детали на примере одного мобильного клиента такси
6 min
25KTutorial
Продолжаем серию постов о том, как хорошие вещи можно сделать еще лучше. Под «хорошими» подразумеваем те, где первой и единственной мыслью не будет: «Неправильно всё, нужно всё переделать».
Тем, кому интересно учиться на чужих ошибках (или понять, что даже сотни миллионов долларов и лучшие специалисты не избавят вас от ошибок), а также коллегам Павла Фаге — добро пожаловать под кат.
Тем, кому интересно учиться на чужих ошибках (или понять, что даже сотни миллионов долларов и лучшие специалисты не избавят вас от ошибок), а также коллегам Павла Фаге — добро пожаловать под кат.
+21
Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP
9 min
172KTranslation
От переводчика: Это перевод первой статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.
В этой статье мы начнем с самых базовых аспектов сетевого программирования — приема и передачи данных по сети. Прием и передача данных — это основная и наиболее простая часть из всего круга задач, которыми занимаются сетевые программисты, но часто бывает сложно определить, каким путем лучше двигаться. Уделите этой части достаточно внимания — если у вас останется непонимание, то это может привести к ужасным последствиям для вашей многопользовательской игры в дальнейшем!
Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.
В этой статье мы начнем с самых базовых аспектов сетевого программирования — приема и передачи данных по сети. Прием и передача данных — это основная и наиболее простая часть из всего круга задач, которыми занимаются сетевые программисты, но часто бывает сложно определить, каким путем лучше двигаться. Уделите этой части достаточно внимания — если у вас останется непонимание, то это может привести к ужасным последствиям для вашей многопользовательской игры в дальнейшем!
Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
+64
Лучшее время для изучения микроконтроллеров
12 min
212KTutorial
Признайтесь, как часто вы думали о том, чтоб освоить азы программирования микроконтроллеров? Наверняка у вас есть в голове несколько идей потенциальных проектов, но воплощать их в жизнь вы так и не взялись. Так вот: лучше времени для старта, чем сейчас просто не найти.
Почему я решил, что этот вопрос интересен аудитории Хабра? Достаточно проанализировать количество добавления в избранное некоторых постов и выводы напрашиваются сами собой.
С другой стороны, в моём текущем окружении очень много программистов, но почти нет имбедеров. Когда я разговариваю с ними на тему микроконтроллеров, у меня создаётся впечатление, что мнение о них у многих осталось на уровне 10-летней давности.
+83
Чтобы внедрить ERP-систему на производстве
6 min
55KПару недель назад ездил на один завод. Хотят внедрять ERP. Провел презентацию, все посмотрели. Руководство попросило подготовить сводный документ, в котором изложить, что необходимо, чтобы внедрить систему.
Документ я сделал. Получился он весьма занимательным, жалко выбрасывать, вот решил поделиться со всеми.
Сначала немного о фундаменте.
Итак, что же нужно, чтобы в компании была внедрена ERP система? Ну, во-первых в туалетах должно быть чисто. Состояние туалетов — это состояние компании в целом. Вы будете смеяться, но это так и есть. Если в туалетах грязно, то вначале надо решить системные проблемы в компании, а потом уж и за ERP можно браться.
Документ я сделал. Получился он весьма занимательным, жалко выбрасывать, вот решил поделиться со всеми.
Сначала немного о фундаменте.
Итак, что же нужно, чтобы в компании была внедрена ERP система? Ну, во-первых в туалетах должно быть чисто. Состояние туалетов — это состояние компании в целом. Вы будете смеяться, но это так и есть. Если в туалетах грязно, то вначале надо решить системные проблемы в компании, а потом уж и за ERP можно браться.
+33
Шпаргалка по типам и стандартам Ethernet 802.3
3 min
348KTutorial
Когда я изучал CCNA больше всего меня напрягали стандарты IEEE из-за своего количества, типов и названий. И приходилось каждый раз искать и смотреть какому стандарту соответствует такой-то тип интерфейса. После многих часов работы я смог слепить до кучи таблицы по каждому типу Ethernet интерфейсов, которая включает год выпуска стандарта, тип интерфейса, скорость передачи данных соответствующего типа интерфейса, максимальную длину сегмента и тип используемого кабеля. Рад поделиться с читателями.
+55
Идентификация личности на основе данных о перемещениях (трекинга)
3 min
17KИдентификация личности на основе данных о перемещениях
Не так давно в сети наткнулся на занимательную статью — аналитический отчет о том, как можно практически с 95 % гарантией идентифицировать личность пользователя мобильного устройства, зная только лишь 4 точки (по сути — базовые станции), через которые он выходил на связь через определенные промежутки времени (1,5-2 часа). В чем там оказалась суть…
Среди научных исследований в области управления доступом на основе данных о местоположении особо стоит отметить работу группы американских и английских исследователей [1], которые провели детальный анализ данных о перемещениях примерно 1,5 млн. абонентов сотовой сети связи в течении более чем полутора лет. Задачей анализа было выявить насколько уникальными являются маршруты передвижения абонентов и возможно ли, обладая лишь только данными о пребывании абонента в определенных точках в течении некоторого времени, достаточно точно идентифицировать его личность. Результатом исследования стал вывод, что, зная всего 4 пространственно-временных точки, можно с вероятностью в 95 % идентифицировать человека.
+17
Домашний медиа-сервер на основе Ubuntu Server 12.04 LTS
8 min
356KTutorial
Привет, Хабр! В ходе обсуждения одной статьи про «идеальную» домашнюю сеть, возник спор, что лучше, аппаратный NAS или мини-компьютер с Linux дистрибутивом. Автор предлагал использовать аппаратный NAS, т. к. якобы он проще в администрировании, не требует знаний Linux, да и вообще NAS тихий. Но при этом, для просмотра на DLNA-телевизоре видео, который он не поддерживает, предлагал включать ноутбук с транскодирующим DLNA. Меня это, мягко говоря, удивило, т. к. в идеальной сети такого быть не должно. Поэтому хочу представить своё видение одного из ключевых компонентов домашней сети — централизованного хранилища данных, и основано оно будет на мини-ПК с ОС Ubuntu Server.
+86
Десктоп в домашнем сервере или «всё-в-одном»
4 min
89KЦель: недорого собрать систему поддерживающую проброс PCI-устройств в виртуальную машину (c IOMMU). Создать полноценное рабочее место, поднять виртуальный маршрутизатор и еще полезные мелочи.
+28
Беспроводной звук. Часть 1. Препарируем Bluetooth
20 min
317K Иногда, бывает, натыкаешься на какой-то баг впервые, списываешь все на обстоятельства и забываешь о нем. Затем он повторяется снова и снова, вынуждая тебя приступить к поиску проблем и, по возможности, их устранению. И вот когда ты обнаруживаешь себя в глубокой ночи за анализом дампом/дебагом/чтением_мануалов, то становится понятно, дело на полпути бросать уже нельзя и дело принципа — довести его до конца.
Такая история со мной приключилась в момент обзора с коллегой r3s потребительской беспроводной Bluetooth-акустики Klipsch KMC 3. Я столкнулся с ситуацией, когда «беспроводной» аудиопоток начинал безбожно прерываться, стоило лишь мне расположить источник звука у себя за спиной. Пищи для размышлений мне подкинула другая Bluetooth-аудиосистема, которая в тех же условиях вела себя куда лучше. Такая простая проблема выродилась в нырок с головой во внутренности протокола Bluetooth и детали передачи аудио с его помощью.
Под катом первой части цикла статей мы в легкой и непринужденной форме познакомимся с основными протоколами стека Bluetooth, покопаемся в дампе соединения источника и приемника звука, разберемся в причинах конфликта Bluetooth и Wi-Fi и обнаружим корень моей проблемы — прерывающегося звука.
Такая история со мной приключилась в момент обзора с коллегой r3s потребительской беспроводной Bluetooth-акустики Klipsch KMC 3. Я столкнулся с ситуацией, когда «беспроводной» аудиопоток начинал безбожно прерываться, стоило лишь мне расположить источник звука у себя за спиной. Пищи для размышлений мне подкинула другая Bluetooth-аудиосистема, которая в тех же условиях вела себя куда лучше. Такая простая проблема выродилась в нырок с головой во внутренности протокола Bluetooth и детали передачи аудио с его помощью.
Под катом первой части цикла статей мы в легкой и непринужденной форме познакомимся с основными протоколами стека Bluetooth, покопаемся в дампе соединения источника и приемника звука, разберемся в причинах конфликта Bluetooth и Wi-Fi и обнаружим корень моей проблемы — прерывающегося звука.
+111
Как создать концепцию продукта и написать ТЗ на разработку электроники
5 min
70KTutorial
Мы продолжаем серию публикаций о разработке и производстве сложной современной электроники. В предыдущих статьях мы честно рассказали вам о нюансах, связанных с дизайном и изготовлением опытных образцов, с массовым производством, а теперь самое время перейти к вопросам, с которых начинается разработка конструкторской документации (КД) и от которых зависит успех взаимоотношений между заказчиком и разработчиком — создание концепции продукта и написание технического задания. Это первые шаги на пути к выпуску сложных серийных устройств и программного обеспечения (продукта).
+13
Как устроена биржевая торговля в России
5 min
98KМы довольно часто слышим новости о том, что происходит на зарубежных биржах. Лондонская биржа и NASDAQ, кажется, знакомы даже далеким от биржевой торговли пользователям Сети. Зачастую в этих новостях рассказывается об успехах зарубежных финансистов, в частности, в области технологий – рекордах скорости транзакций, производительности, или, наоборот, сбоях оборудования или программного обеспечения. В результате создается впечатление, что зарубежные площадки самые технологичные в мире.
А что у нас? Помимо повторяемых из года в год слов о необходимости создания в стране международного финансового центра, казалось бы, особенных телодвижений в этой области не происходит. С одной стороны – это так, с другой же – отечественный фондовый рынок значительно интереснее, чем об этом принято думать. И интересен он, в первую очередь, с технологической точки зрения.
А что у нас? Помимо повторяемых из года в год слов о необходимости создания в стране международного финансового центра, казалось бы, особенных телодвижений в этой области не происходит. С одной стороны – это так, с другой же – отечественный фондовый рынок значительно интереснее, чем об этом принято думать. И интересен он, в первую очередь, с технологической точки зрения.
+48
События, которые повлияли на ваше развитие в детстве
3 min
142KUPD: игра вышла.
Привет!
Тут такая история. Я заметил, что в какой-то момент стал отмечать для себя важные вещи для развития ребёнка. Например, у меня в детстве был сначала модульный конструктор с мотором, колёсами, батарейками и так далее, а потом – модульный же радиоконструктор. Эти два предмета очень сильно повлияли на то, чем я потом интересовался в будущем.
Ещё пример – в детстве надо обязательно сходить в политехнический и археологический музеи Москвы. Или, например, запомнились такие штуки: первая хорошая НФ, подаренная в 8 лет; дед, научивший меня чертёжному почерку за 15 минут; шахматы каждые выходные; огромная коробка Лего и так далее. И таких событий – тысячи.
У меня просьба. Давайте накидаем важные и интересные вещи, которые можно и нужно сделать с ребёнком до примерно 10 лет. Наверняка ведь у вас есть такие «чекпоинты», которые запомнились.
+148
Аспирантура в Голландии: Kак (поиск, собеседование, оформление)
5 min
52K Как и многие статьи подобного рода, эта основана на личном опыте и на особую объективность не претендует. Тем не менее, мне кажется, такая информация может быть полезна потенциальному поросенку П., которым и я до недавнего времени являлась. Полезна с той точки зрения, что дело трудозатратное, но вполне осуществимое.
А, кстати. Аспирантура у меня получилась околоайтишная, но процесс поиска все равно идентичный вне зависимости от области, да и собиралась в AI исследователи идти…
Еще замечание: приведённый ниже метод кроме Голландии подходит и для многих других европейских стран, но в итоге вышло, что туда поехала, поэтому наиболее точно о ней.
А, кстати. Аспирантура у меня получилась околоайтишная, но процесс поиска все равно идентичный вне зависимости от области, да и собиралась в AI исследователи идти…
Еще замечание: приведённый ниже метод кроме Голландии подходит и для многих других европейских стран, но в итоге вышло, что туда поехала, поэтому наиболее точно о ней.
+34
История об аспирантуре в США. Часть 4.1: А что дальше?
5 min
31KИтак, продолжу свой рассказ об аспирантуре в США. Тут, тут и тут живут предыдущие части, а в этой части я расскажу о том, что происходит после получения докторского звания. На самом деле, я хотел написать обо всем сразу, но ночь подкралась незаметно и тут будет рассказано об одном из двух популярных путей (продолжение живет тут).
Перефразируя известную фразу, есть ли жизнь после PhD, нет ли жизни после PhD — науке не известно. Зато будет известно тем, кто заглянет под кат.
+25
Как получить американский диплом о высшем образовании дистанционно
4 min
51KТема изменений в системе высшего образования становится все более актуальной. Много говорят об онлайн курсах как альтернативе университетскому образованию. Один из основных аргументов за традиционное университетское образование это отсутствие диплома и реальной аттестации после окончания онлайн курса.
На самом деле аттестацию можно получить. Причём не просто сертификат о сдаче экзамена после определённого курса, а вполне реальный диплом американского колледжа после выполнения конкретной программы курсов.
На самом деле аттестацию можно получить. Причём не просто сертификат о сдаче экзамена после определённого курса, а вполне реальный диплом американского колледжа после выполнения конкретной программы курсов.
+40
Google Maps API: схема проезда, анимация и стилизация
4 min
78KМногие из нас часто вставляют на свои сайты карты. Обычно, это карта на странице контактов с единственным маркером, которым отмечено место офиса. Но иногда у заказчика включается фантазия и начинается «творчество». В свое время я потратил много времени, чтобы разобраться в постоянно меняющемся Google Maps API и хочу поделиться с вами своими наработками для решения обычных проблем с картами, которые выходят за рамки одного маркера.
Все, что описано ниже, можно узнать внимательно читая документацию GMaps API. Предполагается, что читатель уже умеет внедрять карту, подключать API и ставить маркер. Статья не претендует на полноту изложения, но может быть полезна начинающим пользователям Google Maps API.
+20
Часть 3. Как подключить смартфон к авто — читаем данные
6 min
114KМы продолжаем цикл статей о том, как подключиться к бортовой системе своего автомобиля (см. Часть 1 и Часть 2 ) и сегодня расскажем как считывать данные.
Предполагается, что к текущему моменту у нас есть машина с диагностическим разъемом, отвечающим OBD-II стандарту, любимое мобильное устройство (ноутбук, смартфон, планшет) и адаптер на базе ELM327, который позволит соединить машину и мобильное устройство.
Как уже говорилось в предыдущей части, независимо от типа связи между мобильным устройством и адаптером (Bluetooth, Wi-Fi, USB) на логическом уровне, — это последовательное соединение. На программном уровне необходимо открыть Socket соединение между компьютером и адаптером поверх имеющегося соединения нижнего уровня. Практическая программная реализация будет зависеть от операционной системы и типа соединения, примеров можно найти массу под все ваши любимые языки программирования. В качестве базового примера можно брать реализацию соединения на примерах чат-программ для Bluetooth или TCP\IP. В данной статье мы не будем останавливаться подробно на реализации такого соединения, для экспериментов нам хватит возможностей имеющихся программ а-ля Telnet, для экспериментов под Андроид и iOS мы встроили простую командную консоль в наше приложение OBD Car Doctor.
Предполагается, что к текущему моменту у нас есть машина с диагностическим разъемом, отвечающим OBD-II стандарту, любимое мобильное устройство (ноутбук, смартфон, планшет) и адаптер на базе ELM327, который позволит соединить машину и мобильное устройство.
Как уже говорилось в предыдущей части, независимо от типа связи между мобильным устройством и адаптером (Bluetooth, Wi-Fi, USB) на логическом уровне, — это последовательное соединение. На программном уровне необходимо открыть Socket соединение между компьютером и адаптером поверх имеющегося соединения нижнего уровня. Практическая программная реализация будет зависеть от операционной системы и типа соединения, примеров можно найти массу под все ваши любимые языки программирования. В качестве базового примера можно брать реализацию соединения на примерах чат-программ для Bluetooth или TCP\IP. В данной статье мы не будем останавливаться подробно на реализации такого соединения, для экспериментов нам хватит возможностей имеющихся программ а-ля Telnet, для экспериментов под Андроид и iOS мы встроили простую командную консоль в наше приложение OBD Car Doctor.
+20
Быстрые треки на google maps
11 min
32KЯ работаю над визуализацией парапланерных соревнований — пишу плеер просмотра гонки для Airtribune.com. В процессе работы мне попадаются интересные и нестандартные задачи. Одна из них — задача быстрой отрисовки маркеров и треков на карте google maps.
Масштабы такие: есть ~200 трекеров в довольно ограниченной области (50x50км), каждый передает данные о своем положении раз в 10 секунд. Нужно их все отрисовать на карте и плавно перемещать при изменении координат. За каждым маркером должен отрисовываться трек. Картинка примерно следующая:
Скоро обнаружилось, что встроенные объекты — google.maps.Marker и google.maps.Polyline — для данной задачи работают слишком медленно. Была куча идей по оптимизации, и в результате получилось решение на canvas-е, которое работает со скоростью 40fps даже на тысяче маркеров. Впрочем, fps вы можете померить сами — я собрал тестовое приложение для сравнения 4-х движков, в котором на лету можно подключать разные фишки и смотреть на скорость работы.
Масштабы такие: есть ~200 трекеров в довольно ограниченной области (50x50км), каждый передает данные о своем положении раз в 10 секунд. Нужно их все отрисовать на карте и плавно перемещать при изменении координат. За каждым маркером должен отрисовываться трек. Картинка примерно следующая:
Скоро обнаружилось, что встроенные объекты — google.maps.Marker и google.maps.Polyline — для данной задачи работают слишком медленно. Была куча идей по оптимизации, и в результате получилось решение на canvas-е, которое работает со скоростью 40fps даже на тысяче маркеров. Впрочем, fps вы можете померить сами — я собрал тестовое приложение для сравнения 4-х движков, в котором на лету можно подключать разные фишки и смотреть на скорость работы.
+51
Information
- Rating
- Does not participate
- Location
- Harbin, Heilongjiang, Китай
- Date of birth
- Registered
- Activity