Открыть список
Как стать автором
Обновить
17
Карма
0
Рейтинг
Андрей Щеглов @unix_junkie

Пользователь

  • Публикации
  • Комментарии

Релиз CLion 2021.1: глобальный анализ потоков данных, улучшения для удаленной работы, постфиксное автодополнение

Блог компании JetBrainsПрограммированиеC++C

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

В JetBrains стартовал новый релизный год: все наши десктопные продукты обновились или обновятся в самое ближайшее время. Сегодня мы хотим поговорить о CLion 2021.1 — новейшей версии нашей кроссплатформенной IDE для разработки на C и C++.

В этом обновлении много яркого и интересно
Всего голосов 12: ↑10 и ↓2 +8
Просмотры2.7K
Комментарии 65

POHMELFS: NFS по-новому

Настройка Linux
Те, кто следил за обновлениями ядра, могли заметить, что в релиз 2.6.30 была добавлена поддержка POHMELFS.
Что же это такое — Похмельная файлуха?
Изучение окрестностей странички проекта позволило предположить, что разработку ФС ведет московский программист Евгений Поляков (и только он!), у которого на том же сайте есть немало других интересных проектов, таких, например, как порт CARP под Linux. В общем, сложилось впечатление, что программист на редкость грамотный и упорный.
Вернемся к PohmelFS. статья в Википедии подтверждает причастность похмелья к названию, которое для приличия расшифровывается как Parallel Optimized Host Message Exchange Layered File System. Документация на страничке проекта говорит о том, что в перспективе PohmelFS — распределенная ФС с избыточностью, контролем доступа и прочими прелестями, разрабатываемая так, чтобы не сильно отставать по производительности от локальных ФС. Этакая альтернатива разнообразным GFS, GlusterFS и прочим Coda. Но это все будет после интеграции проекта с двумя другими — DST и Elliptics. На текущий момент PohmelFS — это альтернатива старому недоброму NFS, почти всюду показывающая бо́ льшую производительность (пруфлинк).

под хабракатом процесс настройки на небольшом зоопарке
Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Просмотры6.1K
Комментарии 86

Яндекс отключил расширения с аудиторией в 8 млн пользователей. Объясняем, почему мы пошли на такой шаг

Блог компании ЯндексИнформационная безопасностьРазработка веб-сайтовРасширения для браузеровБраузеры
Сегодня мы приняли решение отключить расширения SaveFrom.net, Frigate Light, Frigate CDN и некоторые другие, установленные у пользователей Яндекс.Браузера. Совокупная аудитория этих инструментов превышает 8 млн человек.

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



Читать дальше →
Всего голосов 369: ↑360 и ↓9 +351
Просмотры188.4K
Комментарии 507

Что делать, если «кина не будет» или как обойти блокировку сайта провайдером

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

блокировка

«Вот те раз!» — подумал я. Ни в одном реестре запрещенных сайтов данный ресурс не присутствовал и, с чего билайн его заблокировал — непонятно. Естественно после таких вот «заявочек» в голову полезли страшные мысли: «а что если завтра любимого „кина“ не будет!». Данные мысли тут же подвигли меня начать искать способы борьбы с данной ситуацией, и написать, для тех кому будет интересно, маленький обзор нескольких решений по обходу блокировки сайтов. (под катом скрины)
Читать дальше →
Всего голосов 120: ↑96 и ↓24 +72
Просмотры859.4K
Комментарии 87

Поиск альтернатив для Flash Player на примере реального проекта

Adobe Flash
Надпись “Поддержка Flash Player будет прекращена в декабре 2020 года” в браузере способна вызвать различные эмоции у пользователей, начиная от облегчения, что де уязвимости решены, до осознания некоего предательства со стороны технологических гигантов. Первые, возможно, пострадали от вируса, некогда внедренного на сомнительном сайте, последние же вынуждены прикрывать проект, почти полностью зависящий от этой технологии.
В начале 2016 года, когда перспективы Flash все еще были радужными, автору этой заметки пришла идея реализовать контент сайта с применением встраиваемых SWF-роликов. К тому времени уже были звоночки, наподобие претензий Стива Джобса к Adobe в 2010, заключающиеся в том, что проприетарный продукт не достоин быть внедрен в проприетарные ОС. Здесь должен быть ироничный смайлик. В то время мобильный трафик не был таким заметным (а трава зеленее) и всерьез такие заявления мало кто воспринимал.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры16.3K
Комментарии 11

Групповой иск к WD по поводу тайного перехода на SMR

Хранение данныхХранилища данныхКомпьютерное железоНакопители
Хорошие новости по поводу SMR жестких дисков. Против WD подан групповой иск компанией Hattis Law, на групповых исках и специализирующейся. Ранее компания уже выигрывала иски, например против McAfee за автоматическое продление подписок по более высокой цене.

Иск для американцев и канадцев, россиян касается только косвенно. Но касается. Есть надежда, что (1) производители получат урок деньгами — думаю, за Seagate и Toshiba тоже при успехе с WD не заржавеет (2) само буквосочетание SMR приобретает выраженную токсичность и появляется надежда, что, как минимум, не все диски в будущем будут использовать эту технологию. Так что хотелось бы просить затронутых коллег-американцев поучаствовать в иске.
Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры18.6K
Комментарии 53

Список известных SMR дисков

Хранение данныхХранилища данныхКомпьютерное железоНакопители
Перевод
Англоязычный оригинал опубликован в форуме ixsystems и вряд ли широко известен всем, кто может столкнуться с проблемой. Хотя оригинал датирован 16 апреля 2020, он ссылается в том числе на более поздние публикации, то есть обновлялся.

Жесткие диски, которые записывают данные в перекрывающихся,
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Просмотры49.9K
Комментарии 103

Настройка squid или как не купить платное решение

Системное администрирование*nix
image

Всем привет!

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

Мы пытались внедрить решение от Ideco и ИКС, в итоге остановились на squid. Под катом история пути и техническая информация по настройке старого доброго кальмара.
Читать дальше →
Всего голосов 15: ↑11 и ↓4 +7
Просмотры73K
Комментарии 31

Подключение управлямых блоков питания, сенсоров и реле к серверным материнским платам. Без Arduino

Компьютерное железоDIY или Сделай сам
Подключение различных сенсоров, датчиков, реле, GPIO-расширителей и прочего «ардуиновского» хозяйства по шине I²C напрямую к серверным материнским платам через IPMI-интерфейс бортового контроллера (BMC). Практические примеры I²C-устройств и работа с ними из командной строки утилитой ipmitool. SMBus, PMBus и управление блоками питания. Не очень документированные ограничения и вопросы безопасности. Разоблачение проприетарщины.

После установки сервера в самодельную конструкцию порой хочется подключить к нему ещё чего-нибудь: например, датчики температуры, давления, влажности, ЖК-экранчики или даже ШИМ-драйверы моторчиков. Бывают глючные внешние устройства, которые приходится удалённо и жёстко сбрасывать с помощью реле, не уровнив при этом весь сервер целиком. А может, читателю просто захотелось гребёнку GPIO с гирляндой светодиодов? Если это не одноплатник типа Raspberry Pi, а полноразмерный сервер, приходится навешивать микроконтроллер и возиться с ним: писать прошивку, тестировать, налаживать стык с хостом и т.д. Иногда это интересно само по себе, но бывает и наоборот: скорей бы скриптину написать да запустить, наконец, лишь бы работало.

Необычные разъёмы на железе всегда вызывали у автора смешанные чувства инженерно-технического зуда и вентиляторного фетишизма. Об этих занимательных разъёмах здесь и речь.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры21.6K
Комментарии 36

Выявляем процессы с дисковой активностью в Linux

Настройка LinuxСистемное администрирование
TL;DR: статья рассказывает об удобном, быстром и надежном способе определения Linux-программ, записывающих данные на диск, что помогает в выявлении большой или аномально частой нагрузки на дисковую подсистему, а также позволяет оценить накладные расходы файловой системы. Это особенно актуально для SSD в ПК, EMMC и Flash-памяти в одноплатных компьютерах.
В ходе написания статьи обнаружилось, что запись нескольких килобайт данных на файловую систему BTRFS приводит к записи 3 мегабайт реальных данных на диск.

Введение

«Ой, ерунда, ячейки памяти на современных SSD выйдут из строя через десятки лет обычного использования, не стоит об этом беспокоиться, и уж тем более переносить swap, виртуальные машины и папку профиля браузера на HDD» — типичный ответ на вопрос о надежности твердотельных накопителей c гарантированными ≈150 TBW. Если прикинуть, сколько типичное ПО может писать данных, то кажется, что 10-20 ГБ в сутки — уже большая цифра, пусть будет максимум 40 ГБ, куда уж больше. При таких цифрах ответ вполне разумен — нужно 10 лет, чтобы достичь гарантированных значений по количеству перезаписи ячеек, при 40 ГБ записанных данных ежедневно.
Однако за 6 лет я пользуюсь уже третьим SSD: у первого вышел из строя контроллер, а второй начал перемещать данные между ячейками несколько раз в день, что оборачивалось 30-секундными задержками в обслуживании записи.

После 7 месяцев использования нового SSD я решил проверить количество записанных данных, как их сообщает сам диск через SMART.
19.7 ТБ.
Всего за 7 месяцев я использовал 13% от гарантированного количества записанных данных, притом, что он настроен в соответствии с рекомендациями по выравниваю разделов и настройке ФС, swap у меня почти не используется, диски виртуальных машин размещены на HDD!
Читать дальше →
Всего голосов 119: ↑117 и ↓2 +115
Просмотры41.8K
Комментарии 83

Как начать и не бросить писать ОС

Софт
Из песочницы
Очередной велосипедЧитая Хабр в течении последних двух лет, я видел только несколько попыток разработки ОС (если конкретно: от пользователей pehat и iley (отложено на неопределённый срок) и Igor1024 (не заброшено, но пока больше походит на описание работы защищённого режима x86-совместимых процессоров, что бесспорно тоже необходимо знать для написания ОС под x86); и описание готовой системы от alman (правда не с нуля, хотя в этом нет ничего плохого, может даже наоборот)). Мне почему-то думается, что почти все системные (да и часть прикладных) программисты хотя бы раз, но задумывались о написании собственной операционной системы. В связи с чем, 3 ОС от многочисленного сообщества данного ресурса кажется смешным числом. Видимо, большинство задумывающихся о собственной ОС так никуда дальше идеи и не идёт, малая часть останавливается после написания загрузчика, немногие пишут куски ядра, и только безнадёжно упёртые создают что-то отдалённо напоминающее ОС (если сравнивать с чем-то вроде Windows/Linux). Причин для этого можно найти много, но главной на мой взгляд является то, что люди бросают разработку (некоторые даже не успев начать) из-за небольшого количества описаний самого процесса написания и отладки ОС, который довольно сильно отличается от того, что происходит при разработке прикладного ПО.

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

Читать дальше →
Всего голосов 125: ↑117 и ↓8 +109
Просмотры47K
Комментарии 55

Патчим EDID телевизора из-под Linux

Настройка Linux
Перевод
Мой телевизор («старая» модель LG 32LG5000) никогда не работал в Linux. Каждый раз, когда я подключал его через HDMI-порт, ядро сообщало мне ошибку:
kernel: [  869.677850] [drm:drm_edid_block_valid] *ERROR* EDI  has major version 2, instead of 1

и полностью игнорировало его.

Эта проблема меня не сильно-то и беспокоила, т.к. я не часто им пользовался, да и VGA-порт работал, хоть и с максимальным разрешением 1360×768. Однако сегодня, когда я решил посмотреть фильм, качество вывода через VGA было невероятно хреновым, и я решил с этим покончить.

Анализируем EDID


Для тех, кто не знает, EDID — небольшое количество данных, содержащих в себе информацию о возможностях монитора, в основном разрешения и тайминги, которые он поддерживает. Сообщение об ошибке интересно тем, что в нем говорится об EDID 2.0, которого (почти) никогда не существовало. Вот что нам говорит Wikipedia:
Структура EDID имеет версии от v1.0 до v1.4 размером в 128 байт, каждая последующая версия обратно совместима с предыдущей. Структура EDID v2.0 была размером 256 байт, однако позже была объявлена устаревшей и на замену ей пришла v1.3.

Похоже, EDID 2.0 был объявлен устаревшим где-то в 2000. Довольно забавно, что ТВ 2008 года использовал именно эту версию.
Читать дальше →
Всего голосов 60: ↑57 и ↓3 +54
Просмотры34.9K
Комментарии 21

std::atomic. Модель памяти C++ в примерах

ПрограммированиеC++

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

Читать далее
Всего голосов 52: ↑52 и ↓0 +52
Просмотры33.7K
Комментарии 37

Как писать книгу по физике в LaTeX. Cтатья 1

Блог компании RUVDS.comLaTeXФизика
Tutorial
Это моя первая статья на Хабре.

Глава 1. Введение


1.1 Позвольте представиться и почему я это пишу

Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по ее содержимому. Она отняла у меня очень много времени, что естественно. Что не естественно — это то, что громадная часть потраченного времени ушла на оформление, то есть на изучение языка Латех. И это при том, что я на Латехе пишу всю жизнь, лично написал и опубликовал около 50 статей в разных издательствах.

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

После публикации книги (пока, увы, только на русском языке) у меня возникло громадное желание написать ещё книгу "Как написать книгу по физике в Латехе"
Читать дальше →
Всего голосов 128: ↑127 и ↓1 +126
Просмотры24.4K
Комментарии 99

CLion 2020.2: поддержка проектной модели Makefile, больше C++20 и не только

Блог компании JetBrainsПрограммированиеC++C
Привет, Хабр!

У нашей команды выдалось очень насыщенное лето, результатами которого мы и спешим сегодня поделиться. Итак, встречайте новый релиз CLion 2020.2!

CLion release

Коротко о том, что вошло в новую версию:

  • Поддержка проектной модели Makefile.
  • Последние обновления в CMake.
  • Новые возможности C++20: explicit(bool), назначенные инициализаторы (designated initializers), циклы for на основе диапазонов с инициализаторами.
  • Обновленный статический анализатор кода: анализ на висячие указатели (dangling pointers), поиск возможностей упрощения кода, поиск неиспользуемого кода, анализ возвращаемого значения функции, ограниченной концептом.
  • Юнит-тестирование: поддержка нового фреймворка doctest, новые возможности Catch2 и Google Test. А также упрощение сбора метрик покрытия кода.
  • Обновления в плагине PlatformIO для разработки встроенных систем.
  • Улучшения в поддержке систем контроля версий.
  • Улучшения производительности редактора.
  • Исправления в отладчиках.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры4.8K
Комментарии 21

SCT Error Recovery Control

Компьютерное железо
… или что такое на самом деле 'raid edition' для жёстких дисков



Немного теории


Существуют две стратегии поведения НЖМД при обнаружении ошибки:
  • standalone/desktop — пытаться прочитать до последнего. Это ощущается как «тормозящий винт», который всё-таки работает, если это единичный сбой, то «затупило, но прошло», плюс характерный перестук перекалибрующихся головок.
  • raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. НИЧЕГО НЕ НАШЁЛ ЧТО МНЕ ДЕЛАТЬ».
Статегии очевидным образом различаются по предназначению — десктоп лучше протупит, но ошибку не выдаст, в рейде есть запасной винт, и терпеть минутные тормоза на чтении никто не имеет никакой возможности. Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт как сбойный, начинаем ресинк, а диск потом отправят в утилизатор. Возможно, незаслуженно, но нечего икать на ответственной должности.

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

Расшифровка названия


Возможность управления поведением диска при ошибках называется очень и очень путанно: SCT ERC. Это расшифровывается как SCT Error Recovery Control. SCT в свою очередь название общего протокола SMART Command Transport. SMART в свою очередь расшифровывается как Self-Monitoring, Analysis and Reporting Technology, таким образом, полная расшифровка SCT ERC звучит так: Self-Monitoring, Analysis and Reporting Technology Command Transport Error Recovery Control (выдохнули).
Читать дальше →
Всего голосов 117: ↑113 и ↓4 +109
Просмотры64.9K
Комментарии 90

Говорящая машинка из старого мобильника

DIY или Сделай сам
Из песочницы
Привет, Хабр. Наверное у каждого человека дома валяются старые мобильники. Сдохла батарея, поцарапался экран, просто надоел.

В ряде случаев такой «старый» телефон — довольно продвинутое устройство.
Читать дальше →
Всего голосов 62: ↑59 и ↓3 +56
Просмотры8.9K
Комментарии 22

Время против памяти на примере хеш-таблиц на Java

JavaАлгоритмы
Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Просмотры16.3K
Комментарии 28

SMR (черепичные) жесткие диски без указания наличия SMR пошли в каналы продаж

Хранение данныхХранилища данныхКомпьютерное железоНакопители
Recovery mode

Все три производителя начали продажи относительно небольших, от 2ТБ HDD SMR дисков (черепичных), не указывая это в спеках: WD, Seagate, Toshiba

Читать дальше →
Всего голосов 90: ↑82 и ↓8 +74
Просмотры59.4K
Комментарии 270

Eclipse + QT: установка и настройка

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

Если не рассматривать случай программирования в Emacs, что лично мне кажется пока неким толи анахронизмом, толи экстримом, постоянно сравнивая различные IDE с Visual Studio зачастую приходилось просто ужасаться. И главная проблема этих систем была в том, что за редким исключением они не работали из коробки без напильника.

Вторая проблема — юзабилити. Зачастую ниже среднего. Ранние версии KDevelop оставляли достаточно неоднозначное впечатление.

Третье, чего бы хотелось — интегрированного дизайнера интерфейсов. Его не было практически нигде, если не считать NetBeans (но только для Java), да MonoDevelop (GTK#). И хотя эти IDE весьма достойны, хотелось найти легкий способ программировать именно на C++ с минимальным количеством граблей.

В этой статье я хочу привести пошаговое руководство, что называется «для чайников», по установке на платформу Windows работоспособной конфигурации хорошей IDE Eclipse и хорошей библиотеки QT. Стартовую площадку, так сказать.

UPD: Что касается именно программирования в QT, то могу порекомендовать просто шикарную книжку на эту тему:
Jasmin Blanchette, Mark Summerfield: Разработка графического интерфейса с помощью QT3 (перевод Андрей Киселёв)

UDP2: Ещё литература:
Русский перевод документации из QAssistant
Qt4. Профессиональное программирование на C++
Jasmin Blanchette, Mark Summerfield: Qt 4. Программирование GUI на C++
Foundations of QT Development

Читать дальше →
Всего голосов 46: ↑42 и ↓4 +38
Просмотры50.9K
Комментарии 97

Информация

В рейтинге
5,882-й
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность