Продолжая тему улучшения кода ядра Linux хочу дать несколько рекомендаций, основанных как на жизненном опыте, так и на существующей документации.
Читать полностью »
Рубрика «C» - 84
Сделаем код чище: Рекомендации по подготовке изменений в ядро Linux
2015-03-18 в 13:20, admin, рубрики: C, linux kernel, linux kernel development, open source, сделаем код чищеПишем ARP Spoofer под Android. Разработка Root инструментов под Android
2015-03-17 в 15:40, admin, рубрики: C, java, root tools coding, Разработка под android, сетевое программирование, метки: разработка под androidПеред вами моя первая статья на этом замечательном ресурсе, потому не судите слишком строго. Конструктивная критика, поправки и дополнения приветствуются.
Так как это моя первая статья здесь, предлагаю начать со знакомства. Кому-то может показаться, что мой ник( First Row) звучит слишком пафосно, поэтому хочу, так сказать, прояснить ситуацию. Я часто подписывался «First row viewer», что означает «зритель в первом ряду». Но при регистрации аккаунта разработчика на Google Play оказалось, что символов слишком много. Пришлось оставить просто «First Row».
Что-ж, мы несколько отклонились от темы, и многим, наверняка, начала порядком надоедать моя болтовня( а внизу-то букв еще много). Поэтому предлагаю перейти непосредственно к нашей теме.
Прежде всего скажу, что здесь мы не будем разбирать IP-маршрутизацию, работу ARP-протокола и теорию самого Spoofing'а (на эту тему я видел пару прекрасных статей на Хабре). Так же предполагается, что вы знаете языки С, Java и имеете хотя бы минимальные навыки разработки под Android. Перейдем сразу к практике, в нашем случае к реализации. Для начала разберемся с инструментами. Лично я пользуюсь Eclipse с плагином ADT и установленным Android NDK (в нашем случае большая часть кода будет писаться как раз в нэйтиве). Возможно, вы будете редактировать сорцы в блокноте и собирать ручками через терминал, или использовать Android Studio, или что нибудь еще. В этом случае, может оказаться, что некоторые мои рекомендации можно будет опустить. В данной статье же я хочу рассказать в том числе о некоторых подводных камнях и граблях, на которые наступил, когда взялся за свой первый проект под Android.
Читать полностью »
Построение диаграмм и графов в Doxygen
2015-03-17 в 12:18, admin, рубрики: C, C#, c++, doxygen, графы, диаграммы, документация, документация кода, Программирование
Данная статья продолжает цикл статей о системе документации Doxygen (статья о самой системе, статья об оформлении документации). На этот раз статья посвящена построению различных диаграмм и графов в Doxygen. В ней мы рассмотрим основные их виды, различные способы их настройки и оформления, а также приведём ряд примеров и советов по их использованию.
Читать полностью »
Будущее C: ООП
2015-03-17 в 7:43, admin, рубрики: C, c++, будущее рядом, ооп, Программирование, разрыв шаблона, метки: разрыв шаблонаИнтернет обошла стороной одна интересная новость: стало известно о том, что, вероятно, в следующий стандарт языка программирования C будут добавлены средства ООП, а именно — классы. При этом судить о том, будет ли это реализовано — ещё рано, так как данный документ не был окончательно принят и не добавлялся в черновой вариант следующего стандарта. Предложение реализовать это поступило ещё в далёком 1995 году неким Robert Jervis, но было принято на WG14 только сейчас.
Попробуем поделить шкуру неубитого медведя и посмотрим, чем это грозит и что это нам даст.
Читать полностью »
Boost C++ libraries на Android; и не только
2015-03-16 в 16:33, admin, рубрики: android, boost, C, c++, crystax, Ndk, open source, Разработка под android, метки: ndkИтак, мы запустили регулярное регрессионное тестирование библиотек Boost на Android. С результатами все желающие могут ознакомиться на официальной страничке Boost (develop branch) или на нашем сайте (Android-only): master, develop.
На данный момент есть немало регрессий, часть из которых вызвана багами в Boost, а часть — багами в CrystaX NDK. Мы, естественно, на этом не останавливаемся и продолжаем работать, так что количество фэйлов будет уменьшаться со временем. Тем не менее, это довольно важный шаг, т.к. процесс тестирования теперь полностью налажен и работает в автоматическом режиме, так что теперь сделать Boost полноценно поддерживаемым на Android — относительно несложная техническая задача и всего лишь вопрос времени. Призываю всех заинтересованных обращать внимание на регрессии и, если причиной окажется баг в CrystaX NDK — заводить тикет. Само собой, мы этим занимаемся тоже, но эффективность, очевидно, будет выше при участии большего количества людей.
«Патчим» зеркало в автомобиле
2015-03-16 в 13:19, admin, рубрики: C, diy или сделай сам, stm8s, микроконтроллеры stm, программирование микроконтроллеров, Электроника для начинающих, электроника своими руками, метки: stm8s, микроконтроллеры stmКоллега на работе купил себе новый автомобиль Chery Tiggo FL, куда китайцы напихали много различных функций за не большую сумму стоимость автомобиля. Одной из самых необычных штуковин в авто оказалось «волшебное» зеркало, которая наделено функциями барометра, альтиметра и компаса.
Главным недостатком всей начинки данного автомобиля является отсутствие датчиков температуры за боротом автомобиля и вне его. Данный недостаток решили с коллегой изменить, путем модификации штатного зеркала заднего вида нештатными методами.
Итак, приступим к созданию «патча» на зеркало.
Читать полностью »
MIDI плеер на восьми Floppy. Или как электронщик с ума сходил
2015-03-16 в 12:13, admin, рубрики: avr, C, floppy disk, floppy drive, java, music, programming, говнокод, музыкальные инструменты, Электроника для начинающих, метки: floppy disk, floppy driveКак-то раз посмотрел я видео о поющих флопах и на гору списанных компов. Решил сделать что-то подобное.
Делать на Arduino как остальные? Да вы что, серьёзно? F*uck the system, как говорится! Решено было делать на Atmega8A, потому что только она и была под рукой. Провода тоже для слабаков, поэтому я отыскал HC-05 (зачем лишние сопли?).
Поехали!
Читать полностью »
Сделаем код чище: Что можно исправить в ядре Linux
2015-03-15 в 18:36, admin, рубрики: C, linux kernel, linux kernel development, open source, сделаем код чище, метки: linux kernel development Наверняка многие хотели бы попробовать что-то изменить в ядре Linux к лучшему, но не знают с чего начать. Я хочу описать несколько проблем, исправить которые под силу каждому, и на примере показать путь от нахождения проблемы до опубликования её исправления в списке рассылки. По ходу повествования читатель познакомится с некоторыми вспомогательными утилитами.
Читать полностью »
Лекции Технопарка. 1 семестр. С-С++
2015-03-15 в 12:42, admin, рубрики: C, c++, mail.ru, Блог компании Mail.Ru Group, лекции технопарка, Программирование, технопаркМы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.
Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти
Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.
Алгоритм сортировки вставками: реализация на PHP
2015-03-10 в 10:21, admin, рубрики: C, php, алгоритм сортировки, Алгоритмы, книга про алгоритмы, Программирование, метки: алгоритм сортировкиРешил недавно повторить алгоритмы и структуры данных. Из разных источников у меня уже был составлен следующий список литературы по этим темам:
- С. Скиена – Алгоритмы. Руководство по разработке. 2011
- S. Dasgupta, C. Papadimitriou, U. Vazirani. Algorithms. 2006
- А. Х. Шень. Программирование: теоремы и задачи. 2007
- М. А. Бабенко, М. В. Левин. Введение в теорию алгоритмов и структур данных. 2012
- Т. Кормен, Ч. Лейзерсон, И. Ривест, К. Штайн. Алгоритмы: построение и анализ. 2013
- Н. Вирт. Алгоритмы и структуры данных. 2010
Так как у меня уже была первая книга, начал с нее. Содержание понравилось, примеры не на псевдокоде, а на реальных ЯП (в частности C) тоже вполне устроили.
В самом начале книги автор (Стивен С. Скиена) приводит наглядный пример с алгоритмом сортировки вставками, дабы подчеркнуть важность применения качественных алгоритмов в любой компьютерной программе.
Читать полностью »