Рубрика «C» - 84

Продолжая тему улучшения кода ядра Linux хочу дать несколько рекомендаций, основанных как на жизненном опыте, так и на существующей документации.
Читать полностью »

Перед вами моя первая статья на этом замечательном ресурсе, потому не судите слишком строго. Конструктивная критика, поправки и дополнения приветствуются.

Так как это моя первая статья здесь, предлагаю начать со знакомства. Кому-то может показаться, что мой ник( First Row) звучит слишком пафосно, поэтому хочу, так сказать, прояснить ситуацию. Я часто подписывался «First row viewer», что означает «зритель в первом ряду». Но при регистрации аккаунта разработчика на Google Play оказалось, что символов слишком много. Пришлось оставить просто «First Row».

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

Прежде всего скажу, что здесь мы не будем разбирать IP-маршрутизацию, работу ARP-протокола и теорию самого Spoofing'а (на эту тему я видел пару прекрасных статей на Хабре). Так же предполагается, что вы знаете языки С, Java и имеете хотя бы минимальные навыки разработки под Android. Перейдем сразу к практике, в нашем случае к реализации. Для начала разберемся с инструментами. Лично я пользуюсь Eclipse с плагином ADT и установленным Android NDK (в нашем случае большая часть кода будет писаться как раз в нэйтиве). Возможно, вы будете редактировать сорцы в блокноте и собирать ручками через терминал, или использовать Android Studio, или что нибудь еще. В этом случае, может оказаться, что некоторые мои рекомендации можно будет опустить. В данной статье же я хочу рассказать в том числе о некоторых подводных камнях и граблях, на которые наступил, когда взялся за свой первый проект под Android.
Читать полностью »

Построение диаграмм и графов в Doxygen - 1

Данная статья продолжает цикл статей о системе документации Doxygen (статья о самой системе, статья об оформлении документации). На этот раз статья посвящена построению различных диаграмм и графов в Doxygen. В ней мы рассмотрим основные их виды, различные способы их настройки и оформления, а также приведём ряд примеров и советов по их использованию.
Читать полностью »

Интернет обошла стороной одна интересная новость: стало известно о том, что, вероятно, в следующий стандарт языка программирования C будут добавлены средства ООП, а именно — классы. При этом судить о том, будет ли это реализовано — ещё рано, так как данный документ не был окончательно принят и не добавлялся в черновой вариант следующего стандарта. Предложение реализовать это поступило ещё в далёком 1995 году неким Robert Jervis, но было принято на WG14 только сейчас.

Попробуем поделить шкуру неубитого медведя и посмотрим, чем это грозит и что это нам даст.
Читать полностью »

Итак, мы запустили регулярное регрессионное тестирование библиотек Boost на Android. С результатами все желающие могут ознакомиться на официальной страничке Boost (develop branch) или на нашем сайте (Android-only): master, develop.

На данный момент есть немало регрессий, часть из которых вызвана багами в Boost, а часть — багами в CrystaX NDK. Мы, естественно, на этом не останавливаемся и продолжаем работать, так что количество фэйлов будет уменьшаться со временем. Тем не менее, это довольно важный шаг, т.к. процесс тестирования теперь полностью налажен и работает в автоматическом режиме, так что теперь сделать Boost полноценно поддерживаемым на Android — относительно несложная техническая задача и всего лишь вопрос времени. Призываю всех заинтересованных обращать внимание на регрессии и, если причиной окажется баг в CrystaX NDK — заводить тикет. Само собой, мы этим занимаемся тоже, но эффективность, очевидно, будет выше при участии большего количества людей.

Читать полностью »

Коллега на работе купил себе новый автомобиль Chery Tiggo FL, куда китайцы напихали много различных функций за не большую сумму стоимость автомобиля. Одной из самых необычных штуковин в авто оказалось «волшебное» зеркало, которая наделено функциями барометра, альтиметра и компаса.

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

«Патчим» зеркало в автомобиле - 1

Итак, приступим к созданию «патча» на зеркало.
Читать полностью »

Как-то раз посмотрел я видео о поющих флопах и на гору списанных компов. Решил сделать что-то подобное.

готовый девайс

Делать на Arduino как остальные? Да вы что, серьёзно? F*uck the system, как говорится! Решено было делать на Atmega8A, потому что только она и была под рукой. Провода тоже для слабаков, поэтому я отыскал HC-05 (зачем лишние сопли?).

Поехали!
Читать полностью »

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

Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.

Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти

Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.


Читать полностью »

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

  • С. Скиена – Алгоритмы. Руководство по разработке. 2011
  • S. Dasgupta, C. Papadimitriou, U. Vazirani. Algorithms. 2006
  • А. Х. Шень. Программирование: теоремы и задачи. 2007
  • М. А. Бабенко, М. В. Левин. Введение в теорию алгоритмов и структур данных. 2012
  • Т. Кормен, Ч. Лейзерсон, И. Ривест, К. Штайн. Алгоритмы: построение и анализ. 2013
  • Н. Вирт. Алгоритмы и структуры данных. 2010

Так как у меня уже была первая книга, начал с нее. Содержание понравилось, примеры не на псевдокоде, а на реальных ЯП (в частности C) тоже вполне устроили.

В самом начале книги автор (Стивен С. Скиена) приводит наглядный пример с алгоритмом сортировки вставками, дабы подчеркнуть важность применения качественных алгоритмов в любой компьютерной программе.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js