Pull to refresh
19
0
kizill @kizill

Разработчик C++

Send message

Лора на батарейках (мечта каждого мужчины)

Reading time9 min
Views43K


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

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

Можно было бы сделать свои батарейные LoRa модули (благо прототипы есть и прекрасно работают), но не хотелось тратить время на изобретение велосипеда, а просто купить что-то готовое, и я заказал с Aliexpress несколько плат-кандидатов для тестирования.

Одна из таких плат — LoRa Radio Node, отчёт о её разборе (по косточкам) и тестировании я и предлагаю вашему вниманию.
Читать дальше →
Total votes 50: ↑48 and ↓2+68
Comments121

Эффект кофты на шейдерах для мобильных устройств

Reading time3 min
Views17K

Пролог


Доброго времени суток! После опубликовании статьи о визуализации квадратичного дерева(Quad-tree), меня попросили написать статью, показывающую работу шейдера, переводящего изображение в «кофту».



Так что, давай рассмотрим данную методику.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments6

Эксперименты с malloc

Reading time12 min
Views37K
image

Как известно, в современных архитектурах x86(_64) и ARM виртуальная память процесса линейна и непрерывна, ибо, к счастью, прошли времена char near* и int huge*. Виртуальная память поделена на страницы, типичный размер которых 4 KiB, и по умолчанию они не отображены на физическую память (mapping), так что работать с ними не получится. Чтобы посмотреть текущие отображённые интервалы адресов у процесса, в Linux смотрим /proc/<pid>/maps, в OS X vmmap <pid>. У каждого интервала адресов есть три вида защиты: от исполнения, от записи и от чтения. Как видно, самый первый интервал, начинающийся с load address (соответствующий сегменту .text у ELF в Linux, __TEXT у Mach-O в OS X), доступен на чтение и исполнение — очень логично. Ещё можно увидеть, что стек по сути ничем не отличается от других интервалов, и можно быстро вычислить его размер, вычтя из конечного адреса начальный. Отображение страниц выполняется с помощью mmap/munmap, а защита меняется с помощью mprotect. Ещё существуют brk/sbrk, deprecated древние пережитки прошлого, которые изменяют размер одного-единственного интервала «данных» и в современных системах эмулируются mmap’ом.

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

  • оптимально управляет уже выделенной памятью;
  • значительно уменьшает количество обращений к ядру (ведь mmap / sbrk — это syscall);
  • вообще абстрагирует программиста от виртуальной памяти, так что многие пользуются malloc’ом, вообще не подозревая о существовании страниц, таблиц трансляции и т. п.

Довольно теории! Будем щупать malloc на практике. Проведём три эксперимента. Работа будет возможна на POSIX-совместимых операционках, в частности была проверена работа на Linux и на OS X.
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments11

Введение в курс «Анализ изображений и видео». Лекции от Яндекса

Reading time8 min
Views70K
Мы начинаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба



Всего в программе — девять лекций. В первой из них рассказывается о том, как применяется анализ изображений в медицине, системах безопасности и промышленности, какие задачи оно еще не научилось решать, какие преимущества имеет зрительное восприятие человека. Расшифровка этой части лекций — под катом. Начиная с 40-й минуты, лектор рассказывает об эксперименте Вебера, представлении и восприятии цвета, цветовой системе Манселла, цветовых пространствах и цифровых представлениях изображения. Полностью слайды лекции доступны по ссылке.
Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments5

Классификация знаний в области программирования

Reading time7 min
Views189K
2 года назад я написал статью о классификации знаний в области программирования. Это было на волне интереса и моей активной деятельности по самообразованию в компьютерных науках. Написал статью и забыл о ней. Публиковать на Хабре не собирался. В конце концов, она базируется на моем личном опыте и знаних, которые могут оказаться весьма субъективны.

Недавно, на фоне постоянно поступающих вопросов «как научиться программированию?», я вспомнил про этот материал и перечитал его. Прошло уже 2 года, пополнился опыт, добавились знания, изменились взгляды. Но эта статья для меня не утратила актуальности, и я не нашел почти ничего, что хотел бы в ней изменить. Мне показалось, что она все же достойна публикации. И, возможно, кому-то она поможет в собственном профессиональном развитии.

Но прежде, чем «запустить» материал, еще небольшое отступление. О том, почему вообще я все это писал. Дело в том, что у нас в странах бывшего СССР с образованием в области IT очень туго. С одной стороны нет программ обучения, которые подготовят специалистов на должном уровне (наверное, за очень редкими исключениями, которые можно отнести к погрешности). С другой стороны, из-за широких возможностей самообразования, программисты и не спешат учиться в ВУЗах — все стремятся начать практиковать как можно раньше. Часто изучается только одно направление (например PHP+Mysql — самое популярное) и в бой. Причем, на этом все заканчивается. В итоге у нас огромное количество программистов, которые и базовых вещей не знают. Отсюда вытекают проблемы с качеством кода, и с эффекивностью алгоритмов, с велосипедированием.

Но программирование — это полноценная область знаний, которая требует в том числе и инженерной подготовки. Точно так же, как строительство или телекоммуникации. Да, построить дом (особняк) можно своими руками и без образования. А поднять большинство сайтов можно прочитав пару книг по PHP и HTML. Но многоэтажку без специальной подготовки не построишь, как и Гугл не напишешь, не зная основ.

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

Поехали.
Читать дальше →
Total votes 78: ↑57 and ↓21+36
Comments52

Как и зачем мы делаем TLS в Яндексе

Reading time16 min
Views89K
Я занимаюсь в Яндексе продуктовой безопасностью и, кажется, сейчас самое время подробнее, чем уже было на YaC, рассказать на Хабре о том, как мы внедряем TLS.

Использование HTTPS-соединений является важной частью безопасного веб-сервиса, так как именно HTTPS обеспечивает конфиденциальность и целостность данных на этапе передачи их между клиентом и сервисом. Мы постепенно переводим все наши сервисы только на HTTPS-соединение. Многие из них уже работают исключительно по нему: Паспорт, Почта, Директ, Метрика, Такси, Яндекс.Деньги, а также все формы обратной связи, имеющие дело с персональными данными пользователей. Яндекс.Почта уже больше года даже обменивается данными с другими почтовыми сервисами по SSL/TLS, поддерживающими это.



Все мы знаем, что HTTPS — это HTTP, завернутый в TLS. Почему TLS, а не SSL? Потому что принципиально TLS — это более новый SSL, при этом название нового протокола наиболее точно характеризует его назначение. А в свете уязвимости POODLE можно официально считать, что SSL больше использовать нельзя.
Читать дальше →
Total votes 164: ↑156 and ↓8+148
Comments97

Грандиозное тестирование батареек

Reading time4 min
Views361K
Каждый раз при покупке батареек у меня возникало много вопросов:

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

Чтобы получить ответы на эти вопросы я решил протестировать все батарейки АА и ААА, которые удастся найти в Москве. Я собрал 58 видов батареек АА и 35 видов ААА. Всего было протестировано 255 батареек — 170 АА и 85 ААА.


Читать дальше →
Total votes 234: ↑232 and ↓2+230
Comments117

Будущее нашей цивилизации: гибель или бессмертие?

Reading time16 min
Views95K
Наблюдая за тем, как развивается технический прогресс, наука и медицина, все чаще приходишь к мысли, что к концу XXI века человечество обретет силу древних богов, о которых когда-то слагались мифы. Но к чему все это приведет и что ждет нас на пути к Олимпу?

image

Все технические революции, которые мы наблюдаем, можно считать этапами большого пути к одной великой цели: созданию планетарной цивилизации. Переход к ней должен стать, вероятно, величайшим событием в истории человечества. Мало того, поколение живущих сегодня людей можно смело считать самым значительным из всех, что когда-либо жили на нашей планете. Именно они должны определить, достигнет ли человечество этой великой цели или будет ввергнуто в пучину хаоса. С того момента, когда наши предки впервые вышли из Африки около 100 000 лет назад, миновало около 5000 поколений, но лишь одно поколение — сегодняшнее — определит судьбу нашего мира.
И к чему это все?
Total votes 137: ↑126 and ↓11+115
Comments76

Интересующимся мозгом/ИИ: ссылки на почитать

Reading time18 min
Views81K
Расчищая Авгиевы конюшни на своем компе, взялся за структурирование накопившихся линков. Подумал, может и другим будет интересно то, что когда-то мне показалось достойным. Опять же, будет к чему отсылать с вопросом есть чо? «что почитать?»

Этот набор (порядка 400 ссылок) ни в коей мере не претендует на полноту или объективность. Наоборот, приглашаются все желающие дополнить и исправить (например раздел «Онлайн Курсы» подозрительно пуст). Если будет интерес, буду апдейтить этот пост новыми линками + апдейты отдельными постами оформлять.

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

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

PS: я оставил ссылки как есть, чтобы было видно куда ведет. Если кого напрягает — пишите, апдейтом спрячу.

Знание - сила!
Total votes 86: ↑79 and ↓7+72
Comments11

Памятка начинающему фотографу

Reading time2 min
Views149K
Хабраюзер nicothin сделал памятку начинающим фотографам — короткую шпаргалку, материал которой описывает тот крайний минимум, который необходим каждому, кто собирается снимать сознательно. Вкратце опишу что это и зачем.
Читать дальше →
Total votes 133: ↑103 and ↓30+73
Comments59

Нейробиология и искусственный интеллект: часть вторая – интеллект и представление информации в мозгу

Reading time7 min
Views76K
Продолжение.

Начало здесь: Нейробиология и искусственный интеллект: часть первая — ликбез,
и здесь: Нейробиология и искусственный интеллект: часть полуторная – новости от Blue Brain Project.

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

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

И как же интеллект связан с деятельностью нейронов?





Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments39

Что внутри марсохода Curiosity

Reading time5 min
Views19K


6 августа 2012 года на поверхность Марса десантировался аппарат «Любопытство» (Curiosity). В следующие 23 месяца марсоход будет изучать поверхность планеты, её минералогический состав и спектр излучения, искать следы жизни, а также оценит возможность высадки человека.

Основная тактика исследований состоит в поиске интересных пород камерами высокого разрешения. Если таковые появляются, то марсоход издалека облучает лазером исследуемую породу. Результат спектрального анализа определяет, нужно ли доставать манипулятор с микроскопом и рентгеновским спектрометром. Далее «Кьюриосити» может извлечь и загрузить образец во одну из 74 чашечек внутренней лаборатории для дальнейшего анализа.

При всем своем большом обвесе и внешней легкости аппарат имеет массу легкового автомобиля (900 кг) и весит на поверхности Марса 340 кг. Для запитывания всего оборудоваения используется энергия распада плутония-238 от радиоизотопного термоэлектрического генератора компании «Боинг», ресурс которого составляет как минимум 14 лет. На данный момент он вырабатывает 2,5 квт·ч тепловой энергии и 125 Вт электрической, со временем выход электричества будет снижаться до 100 Вт.
Читать дальше →
Total votes 101: ↑96 and ↓5+91
Comments174

Бозон Хиггса и Наделение Массой

Reading time4 min
Views6.7K
Корни топика здесь.

Сегодня на конференции в ЦЕРН официально объявили, что каналы распада ZZ и фотон-фотон дают общую достоверностью в 5 сигма. Это означает, что преодолен порог между успешной догадкой и научным открытием. Они определенно открыли частицу. В то же время, эксперимент ATLAS более сдержан в своем настроении.

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



Читать дальше →
Total votes 159: ↑146 and ↓13+133
Comments257

Ребенок в семье гика или у нас свой подход

Reading time2 min
Views18K
Когда в семье рождается ребенок, это, черт возьми, здорово! Как говорил Гришковец в фильме «сатисфакция»: «все становится сложно, но в то же время все становится просто». Так вот, о простом: существует огромное количество литературы, рассчитанной на молодых мам. Существует даже пара книжек о детях, написанной для мужчин (причем очень дурным языком). Но почему-то очень мало информации, рассчитанной на технарей. Считается, видимо, что у нас до детей не доходит.

Лично мне, когда я читал эти книжки (первое правило — RTFM), очень не хватало каких-то четких инструкций и вариантов использования техники и разных приспособ. А поскольку все мы, сидящие тут, не просто технари, а немного техногики и живем в окружении бешеного количества техники, давайте посмотрим, как ее можно было применить для пользы ребенка.


Читать дальше →
Total votes 256: ↑211 and ↓45+166
Comments324

Обеспечение чистоты воздуха при чистке матрицы цифрового фотоаппарата

Reading time3 min
Views7.6K
Думаю многим владельцам фотоаппаратов со сменной оптикой знакомы точечки пыли севшей на матрице их цифрового любимца и соответственно видимые тёмные пятнышки на фотографиях (как правило не доэкспонированных).
Читать дальше →
Total votes 87: ↑80 and ↓7+73
Comments62

Будущее Photoshop: Content-aware fill

Reading time2 min
Views4.7K
Что Photoshop грядущий нам готовит — скорее всего в CS5, но может немного позже. Видео на английском, но, в принципе, и так все понятно должно быть. Хотите стереть дерево, чтобы никто не заметил? Нет проблем, пара кликов. Никаких больше clone tool. Хотите дорисовать панораму до углов? Нет проблем, те же пара кликов и пустые места сами дорисовались. Собственно, продолжение развития идеи PatchMatch.

Самые впечатляющие вещи после 2:50 и до конца ролика. Для несведущих в английском — работа идет с одним слоем и объекты(дерево, дорога, пустые куски в панораме) удаляются(закрашиваются и дорисовываются) Photoshop'ом в автоматическом режиме.



Еще примеры и про технологию — под катом
Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments80

The Case of the Intermittent Windows Freezes

Reading time4 min
Views13K

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

Читать дальше →
Total votes 249: ↑238 and ↓11+227
Comments113

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views804K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 533: ↑517 and ↓16+501
Comments365

Дорабатываем зарядник Turnigy Accucel 6

Reading time4 min
Views140K
Многим знакомо универсальное зарядное устройство iMax B6 и его клона Turnigy Accucel 6.

Оно умеет заряжать
  • Литий-полимерный LiPo и литий-ионные LiIon аккумуляторы
  • Никель-кадмиевые NiCd, столь любимые производителями электродрелей
  • Никель-металлогидридные Ni-Mh, идущие в комплекте с недорогими радиуправляемыми моделями
  • Свинцовые Pb, которые можно найти в автомобиле, мото, UPS и много где еще.
Стоит недорого, принимает питание 11-17В от БП или автомобильного аккумулятора, позволяя заряжать прямо в поле.
Но это еще не все. Зарядник можно подключить к компу и получить наглядные графики зарядки/раздрядки аккумуляторов, наглядно оценив на графике, в каком диапазоне напряжений сосредоточена основная часть заряда, как аккумулятор реагирует на разные зарядные и разрядные токи, насколько проседает напряжение под нагрузкой и много чего еще интересного.
Вот только с завода эта зарядка уже пару лет идет без такой возможности. Производитель пожадничал и не поставил пару микросхем и копеечных элементов, а производитель iMax B6 вообще шнурок и софт продает отдельно по цене сопоставимой с самой зарядкой.
Будем исправлять
Total votes 64: ↑63 and ↓1+62
Comments51

Information

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