Pull to refresh
6
0

Insfrastructure Engineer

Send message

CAN-USB адаптер из stm32vldiscovery

Reading time15 min
Views141K


При разработке устройств с CAN-интерфейсом желательно иметь удобный инструмент для отслеживания сообщений в сети. Для RS232/485 существует множество бюджетных USB адаптеров и куча разнообразного софта, а вот для CAN мне не удалось найти недорогое готовое решение.

В то же самое время на сайтах автолюбителей находились самодельные устройства для подключения к CAN шине автомобиля. Одними из готовых проектов были USB<>CAN Bus Interface (CAN Hacker), реализованный на Atmega+SJA1000 и проект STM32-CAN-Busadapter, реализованный на STM32F105. Работают они с программой CAN Hacker, которая выглядит достаточно удобной для работы. Беглый анализ протокола команд по USB показал, что эти устройства представляются COM портом, и дальнейшее общение происходит в виде передачи команд из ASCII символов.

В закромах была найдена плата STM32VLDiscovery, которая и стала объектом испытаний. На ней мы будем повторять «STM32-CAN-Busadapter».
Что из этого получилось
Total votes 27: ↑26 and ↓1+25
Comments9

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

Reading time6 min
Views406K

Введение


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

В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Total votes 272: ↑232 and ↓40+192
Comments378

Как не стать спамером со своей уютной рассылочкой

Reading time1 min
Views67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

А по другую сторону баррикад находитесь Вы с вашей уютненькой подписочкой, полезной информацией и очень удобной системой отписки, о которой пользователь так никогда и не узнает.

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Total votes 238: ↑230 and ↓8+222
Comments60

Введение в SELinux: модификация политики targeted для сторонних веб-приложений

Reading time8 min
Views32K
Привет, коллеги!
Многие из нас занимаются настройкой рабочих серверов для веб-проектов. Я не буду рассказывать о том, как настроить Apache или Nginx: вы знаете об этом больше меня. Но один важный аспект создания frontend-серверов остается неосвещенным: это настройки подсистем безопасности. «Отключите SELinux», — вот стандартная рекомендация большинства любительских руководств. Мне кажется, что это поспешное решение, ибо процесс настройки подсистем безопасности в режиме «мягкой» политики чаще всего весьма тривиален.

Сегодня я расскажу вам о некоторых методах настройки подсистемы безопасности SELinux, применяемой в семействе операционных систем Red Hat (CentOS). В качестве примера мы настроим связку для веб-сервера Apache + mod_wsgi + Django + ZEO на CentOS версии 5.8.

Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments32

Порцию серверов пожалуйста, или как начать деплоить с Opscode Chef

Reading time5 min
Views11K
Большинство русских статей по (Opscode Chef), которые мне попадались, содержали выдержки из кукбука (cookbook) и рассказ «какая классная штука Шеф». И все. Мол, смотри как я могу! А что и как с ним делать — не понятно. На официальном сайте есть подробная вики. Но в ней, ИМХО, легко заблудиться. Простого руководства «как сделать элементарное чтобы работало» нашел только в виде видео, по мотивам которого родилась эта статья.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments15

BIND: храним зоны в mysql (Dynamically Loadable Zones — BIND DLZ)

Reading time4 min
Views15K
Возможность Berkeley Internet Name Daemon (BIND) хранить зоны DNS в базе mysql не шибко известна и крайне плохо документирована. Документация заморожена на моменте включения отдельного патча DLZ в основную ветку BIND, а это BIND 9.4.* и 2005-2006 годы. Я постараюсь хотя бы частично восполнить этот пробел, выложив под хабракатом рабочие на данный момент инструкции с примерами. Мое описание совершенно не претендует на полноту, но простейшую зону прописать позволит.
Отдельно хочу заметить, что DLZ поддерживает не только mysql, список поддерживаемых хранилищ также под хабракатом.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments49

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Reading time15 min
Views97K
Приветствую всех хаброжителей!

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

Думаю вполне резонным будет предположение, что данная тема уже набила оскомину, но все же я рискну поделиться своим опытом. На суд читателя будет представлена клиент-серверная реализация схемы резервного копирования. В качестве инструмента я выбрал open source проект Bacula. По более чем полугодовому опыту его использования остаюсь доволен своим выбором.

Bacula состоит из нескольких демонов, каждый из которых несет свою функциональную нагрузку. На рисунке ниже схематично представлена взаимосвязь этих демонов.

Под хабракатом я опишу все демоны подробно


В моем случае резервному копированию подлежат:
  1. Конфигурационные файлы различных демонов со всех серверов.
  2. MySQL базы данных.
  3. Документооборот с файлового сервера Windows.
  4. Различные важные данные с nix серверов(движки сайтов/форумов, etc..)


Приглашаю под кат тех, кто еще не делает бекапы, и тех кто уже их делает.
Total votes 45: ↑42 and ↓3+39
Comments51

Мультидоменность в Apache без лишних хлопот на локальном хосте

Reading time3 min
Views48K
Интернет пестрит руководствами по настройке виртуальных хостов в Apache. Но, в большинстве случаев, создание такого поддомена представляется хлопотным делом.
По «стандартной» инструкции предлагается сделать следующее:
  1. Создать папку для сайта
  2. Создать конфигурационный файл с именем будущего домена
  3. Включить сайт специальной опцией
  4. Перезагрузить Apache
  5. Прописать наш домен в файле hosts

Некоторые пытаются оптимизировать данный процесс различными скриптами, но проблемы это, по сути, не решает.
Итак, попробуем добиться, чтобы процесс создания поддомена сводился лишь к созданию папки для сайта. Возможно ли это? Проверим…
Читать дальше →
Total votes 94: ↑81 and ↓13+68
Comments86

Работа с виртуальными машинами KVM. Лимитирование ресурсов виртуальной машины

Reading time9 min
Views30K


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

Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments14

Будущее Активностей — сессии, переносимые между устройствами

Reading time9 min
Views1.6K
Этот пост является переводом вот этой написанной сегодня статьи.

Пост приглянулся мне прежде всего тем, что автор приходит к идее общего хранилища данных, и затрагивает тренд кросс-девайсности, который раскочегарили последние изменения в Mac/iOS.

Итак, пишет Chani Armitage.

Я пытался написать этот пост в течение многих месяцев, и обычно все заканчивалось или полным ступором, или еще какими-нибудь недоразумениями. Так что, забить — я начну писать, а потом посмотрим, что получится.

О чем я хотел рассказать, так это о сессиях, об XSMP, и о Вейленде.

Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments43

Алгоритм: Как оформить баг на ядро Linux

Reading time4 min
Views2.3K
Мой опыт в разработке и отладке Parallels Virtuozzo Containers позволил обобщить и сформулировать список пожеланий к описанию проблемы пользователя, который позволяет существенно уменьшить время диагностирования и решения проблемы в ядре операционной системы Linux. Прошу отметить, что при всей очевидности некоторых рекомендаций многие участники open-source сообщества по-прежнему пренебрегают ими. Алгоритм представлен подкатом.
Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments14

Введение в OpenCL

Reading time11 min
Views61K
Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments26

Почему стандартному vSwitch-у не нужен Spanning Tree протокол

Reading time6 min
Views12K
Сегодня мне хотелось бы немного отвлечься от vSphere 5 лихорадки и вспомнить основы стандартного vSwitch-а, а в частности каким образом он обходится без Spanning Tree Protocol.

Я предполагаю, что вы уже обладаете простейшими знаниями коммутации и знаете что такое vlan, switching loop, spanning tree протокол и некоторые виды link aggregation протоколов. Я постараюсь кратко пробежаться по основным возможностям стандартного vSwitch-а, делая акцент на фактах, которые показались мне интересными или же которые были не очень очевидны в официальной документации, по крайней мере для меня. Отсюда же вытекает и некоторая сумбурность нижеизложенного.

Основная цель стандартного vSwitch-а (или же vNetworking Standard Switch aka vSS) — это обеспечение связи между виртуальными машинами и физической сетевой инфраструктурой. В дополнение, он обеспечивает логическое разделение виртуальных машин используя Port Groups, предлагает различные алгоритмы балансирования в случае если у вас есть более чем один аплинк на одном ESXi хосте, обеспечивает шейпинг исходящего трафика от виртуальных машин к vSS, ну и наконец, позволяет обнаруживать сбой аплинка и автоматическое переключать трафик на оставшиеся аплинки.

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments8

Основы управления памятью в vSphere 4.1

Reading time6 min
Views2K
Эта статья по логике должна была появиться первой, перед статьей про Transparent Page Sharing, так как это база, с которой должно начинаться погружение в управление ресурсами памяти в vSphere 4.1.

В моем англоязычном блоге, когда я только начинал изучать эту тему, я разбил ее на две части — мне самому было так легче воспринимать совершенно новую для меня информацию. Но так как публика на хабре серьезная и бывалая, то я решил объединить материал в одну статью.

Начнем мы с самого основного элемента, который называется Memory Page. Ему дается следующее определение — непрерывный блок данных фиксированного размера, используемый для распределения памяти. Как правило размер страницы может быть 4 Кбайта (Small Page) или 2 Мбайта (Large Page). Каждому приложению ОС выделяет 2 Гбайта виртуальной памяти, которая принадлежит только этому приложению. Чтобы ОС могла знать какой странице физической памяти (Physical Address — PA) соответствует определенная страница виртуальной памяти (Virtual Address — VA) ОС ведет учет всех страниц памяти с помощью Page Table. Именно там хранятся все соответствия между VA и PA.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments2

Solaris Container (zone). Создание и администрирование. Часть 1

Reading time5 min
Views11K
Solaris Container (zone). Создание и администрирование. Часть 2

Введение


Технология Solaris Zone (Solaris Container) – это технология, позволяющая разделить на программном уровне Solaris 10 ОС на контейнеры(зоны), почти самостоятельные ОС, которые могут иметь отдельные независимые ресурсы (процессоры, память, дисковое пространство) и своих собственных пользователей.

Конетейнеры – это хорошее решение для построение серверов приложений, в которых каждое приложение будет иметь свой честный гарантированный (или разделяемый между всеми зонами) кусочек ресурсов, с которым сможет работать. Такое решение позволит консолидировать инфраструктуру на более мощных серверах, что в общем понизит стоимость и сложность информационных систем.

Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments13

Знакомство с межпроцессным взаимодействием на Linux

Reading time11 min
Views208K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →
Total votes 79: ↑78 and ↓1+77
Comments22

Pdmenu или как не дать новичку ошибиться

Reading time3 min
Views1.9K
image

Привет, Хабр!

У многих системных администраторов наверняка бывали случаи, когда доступ к серверу приходилось предоставлять неопытному или непроверенному человеку. Соблюдая меры предосторожности вполне можно оградить себя от проблем, но что делать, если человек вообще не знаком с консолью?

«Категорически отказать!» — скажете вы и будете правы. Но, что делать, если этот человек — ваш босс?
Читать дальше →
Total votes 78: ↑73 and ↓5+68
Comments33

DNSSec: Что такое и зачем

Reading time6 min
Views100K

Предисловие


Как оказалось, не так много людей знают что такое DNSSec, для чего он нужен, для чего нет и стоит ли его внедрять у себя. Так как на русском языке информации на этот счет мало, я постараюсь пролить свет на эти вопросы.

Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments13

Многопоточный сервер на Perl? Легко!

Reading time3 min
Views14K
Иногда возникает необходимость написать какой-то простенький TCP либо UDP сервер. Например, сейчас у меня вполне успешно в production трудится собственная реализация DHCP (существующие не подходят из-за специфики). Обычно это делается просто — один цикл, слушаем сокет — и вуаля! Но не всегда «тупой» подход оправдан (нужно что-то более сложное — работа в несколько потоков, например), а использование тяжелой артиллерии слишком затратно.

Интересно? Добро пожаловать под кат.
Осторожно! Внутри Perl-код.
Total votes 69: ↑56 and ↓13+43
Comments62

Популярные вопросы на собеседовании по C++ и ответы на них

Reading time9 min
Views329K
Здравствуйте!

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

О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
Читать дальше →
Total votes 199: ↑196 and ↓3+193
Comments174
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity