Как стать автором
Обновить
-2
0
Андрей Кудрявцев @andybiiig

Специалист по информационной безопасности

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

Как ухудшить производительность вашего приложения — типичные ошибки разработчиков

Время на прочтение12 мин
Количество просмотров46K
Производительность считается одним из наиболее важных нефункциональных требований приложения. Если вы читаете эту статью, то, вероятно, используете приложение, например веб-браузер или программу для чтения документов, и понимаете, насколько велико значение производительности. В этой статье я расскажу о производительности приложений и о трех ошибках разработчиков, из-за которых не удается добиться высокой производительности приложений.


Читать дальше →
Всего голосов 55: ↑32 и ↓23+9
Комментарии23

Разработка HTML5 игры под Android с нуля и до релиза

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

Вместо вступления


Потратив несколько суток подряд (без перерыва на сон) на изучение поддержки HTML5 всеми любимыми Android-гаджетами, решил, что данной теме стоит уделить внимание. В статье постараюсь раскрыть по шагам все этапы (конечно же базовые/ключевые/основные) создания HTML5 Игрового приложения для Android от идеи до релиза самого APK файла. Возможно, ничего нового я и не открою маститым разработчикам, но для новичков постараюсь описать все как можно проще, со скриншотами и пояснениями.

image

Желающих узнать подробнее приглашаю под кат.
Читать дальше →
Всего голосов 37: ↑24 и ↓13+11
Комментарии21

Указатели, ссылки и массивы в C и C++: точки над i

Время на прочтение10 мин
Количество просмотров619K
В этом посте я постараюсь окончательно разобрать такие тонкие понятия в C и C++, как указатели, ссылки и массивы. В частности, я отвечу на вопрос, так являются массивы C указателями или нет.

Обозначения и предположения


  • Я буду предполагать, что читатель понимает, что, например, в C++ есть ссылки, а в C — нет, поэтому я не буду постоянно напоминать, о каком именно языке (C/C++ или именно C++) я сейчас говорю, читатель поймёт это из контекста;
  • Также, я предполагаю, что читатель уже знает C и C++ на базовом уровне и знает, к примеру, синтаксис объявления ссылки. В этом посте я буду заниматься именно дотошным разбором мелочей;
  • Буду обозначать типы так, как выглядело бы объявление переменной TYPE соответствующего типа. Например, тип «массив длины 2 int'ов» я буду обозначать как int TYPE[2];
  • Я буду предполагать, что мы в основном имеем дело с обычными типами данных, такими как int TYPE, int *TYPE и т. д., для которых операции =, &, * и другие не переопределены и обозначают обычные вещи;
  • «Объект» всегда будет означать «всё, что не ссылка», а не «экземпляр класса»;
  • Везде, за исключением специально оговоренных случаев, подразумеваются C89 и C++98.


Указатели и ссылки


Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):

int x;
int *y = &x; // От любой переменной можно взять адрес при помощи операции взятия адреса "&". Эта операция возвращает указатель
int z = *y; // Указатель можно разыменовать при помощи операции разыменовывания "*". Это операция возвращает тот объект, на который указывает указатель

Читать дальше →
Всего голосов 70: ↑48 и ↓22+26
Комментарии73

Еще один домашний стереолитографический принтер

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


В сентябре прошлого года закончился на кикстартере сбор средств на создание еще одного принтера – LittleRP. По сравнению с аналогами его выгодно отличала цена (без учета проектора принтер мог вам обойтись в 500$). Так как необходимые средства были собраны буквально за пару часов, я могу сказать, что мне посчастливилось попасть в первую группу бэкеров, и вот на прошлой неделе я его получил. Видя, что тема актуальна, решил поделиться с общественностью впечатлением от приобретения.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

STM32 и FreeRTOS. 1. Развлечение с потоками

Время на прочтение7 мин
Количество просмотров153K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии35

Как надо дружиться с STM32

Время на прочтение3 мин
Количество просмотров354K
Не, не, не, все не так!

Давайте дружиться с STM32 правильно!

Самая главная ошибка, сделанная автором — это неправильно выбранный инструментарий.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии79

Arduino, модуль Nokia 5110 LCD и кириллица

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


Понадобилось мне, для небольшого проекта на ардуино, выводить кое-какую информацию, естественно на экран, а не в консоль. Купил парочку LCD модулей а-ля Nokia 5110 с разрешением 84 х 48 пикселей. Библиотеку решил использовать от Adafruit, точнее две Adafruit-PCD8544-Nokia-5110-LCD-library и Adafruit-GFX-Library. Если кто с ними ещё не знаком – позволяют выводить не экран текст (шесть строк по 14 символов), отображать заранее подготовленные изображения, рисовать (линии, прямоугольники, круги и т.д.), ну и рисовать попиксельно. Скетч pcdtest отработал нормально, и я приступил к написанию своего велосипеда проекта. Тут то и начались приключения…
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии13

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

Время на прочтение6 мин
Количество просмотров96K
«Чтоб ты жил в интересные времена!» — якобы старинное китайское проклятие.
Да, нам с вами повезло или «повезло» жить в действительно интересные времена (вариант — «в эпоху перемен»). Возможно, это на самом деле проклятие, особенно с точки зрения мифических древних китайцев. Однако факт остается фактом: то, что еще пара десятков лет назад казалось невозможным, сейчас доступно практически каждому. Особенно это заметно в нашей отрасли — информационные технологии и цифровая электроника развиваются просто какими-то совершенно фантастическими темпами. Функциональные возможности, быстродействие, миниатюрность и (относительная) дешевизна современных цифровых решений поражает воображение.
Еще совсем недавно сетевой компьютер размером меньше кредитки и стоимостью в несколько сотен рублей, пригодный для создания на его базе интересных самостоятельных проектов энтузиастами-одиночками с относительно невысоким уровнем знаний в области электроники и программирования, казался весьма отдаленной перспективой. И вот уже мы можем смело выбирать из десятка (как минимум) альтернатив! Давайте посмотрим, что сейчас можно приобрести буквально за несколько десятков долларов, чтобы построить вокруг этого нечто впечатляющее и даже, может быть, полезное.
Итак, поехали.
Всего голосов 65: ↑60 и ↓5+55
Комментарии124

ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор

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

*Оставьте свою работу на рабочем месте!*

Итак, нелёгкий путь по обзиранию созданию краткого обзора NIST SP 800-53 подходит к логическому концу. Я рад, что мне удалось совершить задуманное и написать пусть небольшой, но законченный по содержанию цикл статей, не остановившись на первой или второй части. В дальнейшем, надеюсь, получится от случая к случаю делиться с общественностью своими соображениями на тему ИБ, ИТ и аудита.

Итак, в этой статье будет наконец-то поведано о выборе набора контролей безопасности, подгонке его под нужды конкретной организации и создании так называемых перекрытий «overlays», применимых вне масштабов отдельной организации.

Ссылки на предыдущие статьи:

ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?
ИБ по-американски. Часть 2. А можно поподробнее о NIST 800-53 и причём тут управление рисками?
ИБ по-американски. Часть 3. Что из себя представляет базовый набор контролей безопасности и как определять критичность информационных систем?
ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор

Продолжаем читать внутри
Всего голосов 10: ↑9 и ↓1+8
Комментарии3

Для тех, кто выбрал красную пилюлю. Инструментарий Нео

Время на прочтение9 мин
Количество просмотров29K
Значимость любого массового явления измеряется резонансом и борьбой мнений. Так было всегда. Криптовалюта, которую в 2008-м придумал Сатоши Накамото, и ее флагман – биткоин, с каждым годом становится все популярнее. Первыми в биткоин, как в доллар цифрового века, уверовали шифропанки, криптоанархисты и бунтари всех мастей. Законы математики сильнее законов, придуманных людьми, решили они, и с энтузиазмом занялись строительством криптовалютной экосистемы. Затем потенциал перспективного платежного средства оценили IT-компании, сначала те, кому особо нечего было терять, а потом и гиганты. Dell, Expedia, Dish Networks, Overstock.com уже активно принимают платежи в биткоинах, Apple, Facebook, Pay Pal и такие социальные площадки как Reddit, им тоже симпатизируют, но пока занимают выжидательную позицию, подумывая при этом о введении собственной криптовалюты. Вместе с ростом популярности усиливалось беспокойство тех, кому развитие нового рынка могло сулить серьезные проблемы. Олдфаги же ярые противники, в роли которых выступают прежде всего государства и финансовые структуры, увидели в них угрозу финансовой стабильности, и в большинстве своем объявили новому и малопонятному явлению войну.



Словом, все крайне неоднозначно, и продолжать холивар на тему «За» или «Против» мы здесь не будем. Важно одно – рынок криптовалют существует и обрастает сопутствующими сервисами. Принимать его или нет – целиком выбор пользователя. Эта же статья для тех, кто выбрал красную пилюлю свой выбор уже сделал и нуждается в утилите, которая не только поможет ориентироваться в мире криптовалют и следить за их курсом, но и играть на нем, оперативно обменивая одну криптовалюту на другую, или же выводить ее за вполне обычные, фиатные деньги.
Читать дальше →
Всего голосов 48: ↑37 и ↓11+26
Комментарии10

Обзор Mi Band от Xiaomi

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


Похоже, я стал одним из первых русских обладателей трекера активности от Xiaomi [сяо ми]Mi Band. Сегодня я сделаю анбоксинг браслета, расскажу о его функциях и личных впечатлениях. Он совместим с любым смартфоном на Android 4.3 и выше, и обладающим Bluetooth 4 LE.

Цена игрушки — 79 юаней, или приблизительно $15 USD. Девайс куплен в Китае с официального сайта производителя. Если вы еще не знаете, каких трудов стоит покупка, в конце обзора я дам ссылку. Я не занимаюсь продажей браслетов, не сотрудничаю с перекупщиками — вы и сами знаете, где можно заказать китайские девайсы.

Технические характеристики


Вот заявленные характеристики и возможности трекера и приложения для смартфона:

  • Шагомер;
  • Трекер сна;
  • Умный будильник;
  • Уведомление о поступающих звонках;
  • Счётчик калорий;
  • Работа в режиме ожидания до 30 дней;
  • Разблокировка смартфона — для владельцев устройств с прошивкой MIUIv6 (и не только);
  • Размер: 36х9х14 мм;
  • Материал: пластик, алюминий;
  • Влагозащита: IP67;
  • Аккумулятор: 41mAh;
  • Bluetooth-чипсет: Dialog BT4LE;
  • А ещё некий «военный датчик»

Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии164

Дао программирования, часть 2

Время на прочтение7 мин
Количество просмотров21K
Часть 1



Книга 4


Кодим

И сказал Великий Программист: «Хорошо написанная программа сама себе Рай. Плохо написанная программа сама себе Ад»

4.1

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

Программа должна следовать правилу «наименьшего удивления». Это значит, что программа должна отвечать на действия пользователя способом, наименее удивительным для него.

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

Если программа не удовлетворяет этим требованиям, это ведёт к беспорядку и путанице. Остаётся лишь переписать её заново.
Читать дальше →
Всего голосов 42: ↑30 и ↓12+18
Комментарии5

Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016

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


Всем привет. Уже давно появился способ программировать маленькие, дешёвые, экономичные к питанию и доступные микроконтроллеры ATtiny13A.

Вот собственно всё то что ниже, только в видео формате:



Сегодня расскажу, как я зашиваю Arduino'вские скетчи в ATtiny13A.
Читать дальше →
Всего голосов 59: ↑52 и ↓7+45
Комментарии52

Удаленное управление VLC player’ом при помощи Arduino и Python

Время на прочтение4 мин
Количество просмотров15K
Добрый день, уважаемые читатели.

Я давно интересовался Arduino, и вот однажды решился на покупку этой замечательной платформы. После недолгих поисков приобрел небольшой Arduino kit, в котором, помимо прочего, был ИК-датчик и пульт к нему. Изучив примеры из мануала, понял, что настало время придумать что-то свое. В итоге я решил сделать удаленное управление VLC player’ом, используя магию Arduino и Python3.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии2

Педалируем Vim

Время на прочтение5 мин
Количество просмотров54K
В этом посте пойдёт речь о широко известной в узких кругах педали для переключения Vim из Normal mode в Insert mode и обратно. Вдохновившись примерами подобных поделок на просторах сети, я решил сделать свой вариант, с преферансом и поэтессами.

Задача


Сделать педаль, представляющую собой USB HID-устройство, при нажатии и удержании которой печатается i, а при отпускании Esc.

Решение


Заказать китайскую педаль PCsensor USB footswitch и запрограммировать её соответствующим образом.

PCsensor USB footswitch
Читать дальше →
Всего голосов 94: ↑82 и ↓12+70
Комментарии89

Самодельный велокомпьютер, или как Arduino на улицу попал

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

Здравствуй, Хабр! Мне хотелось бы поделиться историей о создании велокопомпьютера своими руками. После покупки велосипеда я решил как-то фиксировать свой прогресс, но мобильные трекеры оказались не самым удобным решением, а из Китая ко мне уже летел заранее заказанный там BOGEER 823, что делало покупку на месте бессмысленной. Поэтому я решил попытаться сделать велокомп своими руками, заодно заложив в него основу для расширения: управление обвесом велосипеда (передний и задний свет, звонок).
Дочитать про создание велокомпьютера
Всего голосов 54: ↑42 и ↓12+30
Комментарии89

Hexapod-робот под управлением ROS

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


Робот гексапод — это платформа, использующая для передвижения шесть ног. После просмотра множества видео в интернете, стало ясно, что очень интересно наблюдать за передвижением подобных роботов. И тут возникло желание сделать что-то похожее, но с одноплатным компьютером BeagleBone Black (далее BBB) на борту, потому что подобных проектов еще не было. Информацию о таких роботах было найти непросто, особенно, что касается программной составляющей. Некоторое время было непонятно с чего начинать, но вскоре было решено начать с изготовления конструктива робота — шасси и электронной составляющей, а затем заняться программированием того, что получилось.
Читать дальше →
Всего голосов 130: ↑128 и ↓2+126
Комментарии42

Phyode W/Me: спортивный браслет с «индикатором здоровья»

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


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

Кто-то цену снижает, кто-то добавляет разного рода «плюшки», которые могут пригодиться покупателю. Одним из таких, отличающихся от остальных, устройств является и Браслет W / Me от компании Phyode (кстати, название расшифровывается, как Phyode With Me, т.е. устройство, которое всегда с собой).

Читать дальше →
Всего голосов 15: ↑9 и ↓6+3
Комментарии13

Собираем лазерный проектор из доступных деталей

Время на прочтение7 мин
Количество просмотров88K
UPD: Добавлены файлы платы с ЦАП на GitHub

Изначально я планировал сделать Лазерную арфу, но пока получился промежуточный результат — устройство, которое можно использовать как лазерный проектор — рисовать лазером различные фигуры, записанные в файлах формата ILDA. Я в курсе, что многие, кто берется за сборку лазерного проектора, в качестве устройства, управляющего гальванометрами (так и не понял как лучше перевести на русский сочетание “galvo scanner"), используют дешевые слегка модифицированные звуковые платы для компьютера. Я пошел иным путем, так как в конечном счете мне нужно будет полностью автономное устройство, которое может работать без компьютера.



Посмотрим из чего состоит мой лазерный проектор. Стоимость всех деталей составила около 8000 руб, из которых больше половины — это 70mW лазерный модуль.
  1. Гальванометры и драйверы к ним для отклонения луча лазера по осям X/Y
  2. 532нм 70mW лазерный модуль с питанием от 5В Dragon Lasers SGLM70
  3. Texas Instruments Stellaris Launchpad
  4. Самодельная плата с ЦАП AD7249BRZ
  5. Блок питания

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии10
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Security Engineer