Search
Write a publication
Pull to refresh
3
0
Send message

Идеальная передача и универсальные ссылки в C++

Reading time9 min
Views165K
Недавно на isocpp.org была опубликована ссылка на статью Eli Bendersky «Perfect forwarding and universal references in C++». В этой небольшой статье есть простой ответ на простой вопрос — для решения каких задач и как нужно использовать rvalue-ссылки.
Узнать этот ответ

Автоматическое подключение сетевых МФУ с возможностью сканирования [Часть 1]

Reading time8 min
Views173K

HP LaserJet 1522, 1536, 3052/3055, 300/400 Color...


Я думаю, многим системным администраторам известны описанные в заголовке мфу, отличаются они, в первую очередь, не очень удобной установкой и от этого имеют дурную славу. Однажды, копируя на очередной компьютер сквозь узкий канал пакет fullsolution для мфу весом около 300 мегабайт, идея разобрать этот инсталлятор и автоматизировать установку вылезла попапом на глаза — работу пришлось приостановить.



Разбором драйвера я занимался уже около полутора лет назад, в то время интернет на эту тему был совершенно пуст. Сейчас быстро погуглил по теперь уже известным мне ключевым словам утилит и нашел немного разрозненной информации. Несмотря на это, я решил. что собранная в одно место информация все равно не помешает, при том, что в этом посте она более полная.
Читать дальше →

Проектор на коленке

Reading time6 min
Views170K
Бывает у меня такое — просыпаешься посреди ночи и думаешь: «Интересно, до утра еще долго? Нужно попытаться заснуть или уже смысла нет?». В этот момент взглянуть бы на часы, но:

  1. Я близорукий, поэтому любые настольные часы с размером символов меньше 20 см бесполезны;
  2. Спать в наручных часах неудобно, да и ночью на аналоговых стрелочных часах все равно ни черта не видно;
  3. Телефон бесконечно далеко (расстояние более 1м) от кровати, а вставать, чтобы решить, нужно ли еще поспать, как-то не логично.

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

И тут случилось так, что у меня сломался телефон Huawei P1, так что телефоном он быть перестал, а вот все остальное в нем, в общем-то, работало. Продать не получится, а выкинуть жалко, и воспаленный таким противоречием мозг начал искать место приложения полурабочего девайса.
image
Что случилось дальше — под катом.
Читать дальше →

Бесплатный Code signing для Open Source от Certum

Reading time3 min
Views30K
Запустив сегодня программу, описанную в статье, я увидел следующее предупреждение:


Бросается в глаза необычный префикс, Open source developer. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов.

Несложный поиск показал следующее:
Что именно?

Quotient filter

Reading time5 min
Views16K
Quotient filter — это вероятностная структура данных, позволяющая проверить принадлежность элемента множеству. Она описана в 2011 г. как замена фильтру Блума. Ответ может быть:
— элемент точно не принадлежит множеству;
— элемент возможно принадлежит множеству.

Читать дальше →

Технологии межзвездных путешествий в научной фантастике

Reading time14 min
Views59K

[source]

Говоря «научная фантастика», в большинстве случаев мы подразумеваем под этим "космическая научная фантастика". В том смысле, что будущее нам уже кажется практически немыслимым без освоения космоса.
И если с освоением нашей Солнечной системы всё выглядит относительно просто и понятно — способы передвижения отличаются только степенью наплевательства авторов к законам импульса, инерции и астродинамики, то с межзвездными перелётами всё гораздо интереснее. Варианты есть самые разные — от классических и никак не оскорбляющих физику с отправкой кораблей на обычной реактивной тяге, груженых либо мороженными тушками либо оборудованные для длительного проживания на них популяции людей в течении поколений, до совсем уж экзотических, вроде использования Ада в качестве промежуточной остановки.

В этой статье я постарался составить обзор способов доставки бренных человеческих тел от одной звездной системы к другой, которым пользуются наиболее популярные НФ произведения, плюс один мой личный фаворит.
Warp five, engage!

Библиотека Strutext обработки текстов на C++ — реализация лексического уровня

Reading time15 min
Views14K

Базовые принципы


Этот текст является продолжением поста о библиотеке Strutext обработки текстов на языке C++. Здесь будет описана реализация лексического уровня представления языка, в частности, реализация морфологии.
Читать дальше →

Почему по мере заполнения SSD падает скорость записи в RAID, или зачем нужен TRIM

Reading time7 min
Views122K
Эта проблема наиболее актуальна для аппаратных RAID или firmware RAID (таких как Intel RST RAID 1/10/5/6) с непромышленными SSD.

Особенность SSD


SSD пишут и читают данные страницами, записать можно только на очищенные страницы, а очистить страницы можно только большими блоками. Например, у диска размер страницы 8 КБ, в блоке находится 128 страниц, таким образом, размер блока — 1024 КБ (здесь и далее, если не указано иного, КБ и МБ двоичные).

Например, если изменить 40 КБ в одном файле, то на физическом уровне это будет выглядеть так:


Читать дальше →

IceCash 1.3. Linux рабочее место кассира на php, с драйвером Штрих-М

Reading time1 min
Views26K
image

Всем привет. Как-то давным придавно писал статью первый пост о проекте IceCash. Собственно никуда этот проект не потерялся, живет себе в моей организации и понемногу совершенствуется. Работает примерно на сорока кассах. Не шедевр, конечно, но свою функцию выполняет.
Читать дальше →

Фракталы, Fortran и OpenMP

Reading time6 min
Views15K
Когда-то давно я решил «потрогать» Fortran. Единственную задачу которую я придумал — генерация фракталов (заодно и OpenMP в Fortran'е можно было бы попробовать). В процессе написания я часто сталкивался с проблемами, решение которых приходилось додумывать самому (например в интернете не так много примеров использования чисел двойной точности или бинарной записи в файл). Но рано или поздно все проблемы решились, и я хочу написать этот текст, который возможно кому-нибудь поможет.

Писать я буду на диалекте Fortran 90, но с GNU расширениями (те же числа двойной точности).
Читать дальше →

ah — лучше, чем history

Reading time3 min
Views30K
Так получается, что я провожу в консоли (терминале) достаточно времени, порой даже больше, чем хотелось бы. Порой даже исполняю там какие-то команды и внимательно изучаю их вывод. Часто случается, что к выводу той или иной команды приходится возвращаться, а он постоянно теряется: то терминалы захлопываются, то в tmux окно закрываешь, то выводы прочих команд уже давным-давно забили и похоронили ту самую полезную строчку.

Для того, чтобы сохранить вывод какой-либо утилиты я, как и многие, пользовался tee. Это работало, но постоянная суета среди бесконечных error.log, out.log, output.log, err.log log.log, lll.txt и тп если не сводила с ума, то безумно раздражала; вместо того, чтобы вести какой-то порядок, постоянно подмывало создать Новую Папку (1), где и похоронить эти самые логи, периодически бэкапя могильничек: порядок предполагал какую-то систематизацию, а в разгаре работы вспоминать как назвать свой файл крайне не хотелось.

Тогда я написал ah, крохотную утилитку, которая сильно-сильно улучшила мою жизнь.
Читать дальше →

Учимся писать userscript'ы

Reading time7 min
Views294K
Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript, userJS, юзерскрипты).

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!

Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.
Поехали!

Наступают тёмные времена: тема HabraDarkAge

Reading time5 min
Views40K
imageСейчас ночь. Самое время для презентации тёмной темы стилей Хабра.

Для стилей ZenComment настали тёмные времена. В век засилья ноутбуков, смартфонов и планшетов большое значение для аккумулятора имеет то, в каком цвете ты показываешь фон сайта. Если ты не пользуешься ЭЛТ-монитором, то яркость LED-экрана влияет на потребление энергиии. Белые бизнес-стиляги начинают жрать ресурс — и проигрывают. У ограниченных в знаниях технической подоплёки белых воротничков одни за другими начинают гаснуть экраны в темноте, в застрявшем вагоне электрички, когда истинные гики, потешаясь над их попытками включить телефон, дочитывают последнюю статью с Хабра на 20 минут дольше, спокойно дожидаясь спасателей, чем все остальные. Если, конечно, они в своё время установили тёмную тему юзерстилей…

Поэтому тёмные темы пользуются заслуженной популярностью. Их возникло за последние годы несколько, но не все они дожили до синхронизации и гармонии с текущей версией сайта. Даже конец августа этого года для стилей «New Habr: night mode» не стал моментом истины: в сентябре грянула перестройка (сайта), geektimes и прочие наслоения вечно текущего мира.

HabraDarkAge

О стилях для Хабра HabraDarkAge

Писать скрипты для Mikrotik RouterOS — это просто

Reading time6 min
Views231K
RouterOS — сетевая операционная система на базе Linux. Данная операционная система предназначена для установки на аппаратные маршрутизаторы Mikrotik RouterBoard. Также данная система может быть установлена на ПК (или виртуальную машину), превращая его в маршрутизатор. Изначально довольно богатая функционалом ОС нет нет да и удивит отсутствием какой-нибудь нужной фишки из коробки. К сожалению, доступ к Linux-окружению очень сильно ограничен, поэтому, «это есть под Linux» абсолютно не равнозначно «это есть в RouterOS». Но не надо отчаиваться! Эта система предоставляет несколько возможностей для расширения своего функционала. Первая — самая простая и нативная — это возможность писать скрипты на встроенном языке.
В данной статье, в качестве примера будет рассмотрен скрипт, преобразующий DNS-имена в списки IP-адресов (address lists).
Зачем он может быть нужен? Многие сайты используют Round Robin DNS для распределения нагрузки (а некоторые и не только для этого). Чтобы управлять доступом к такому сайту (создать правило маршрутизации или фаервола) нам потребуются все IP-адреса, соответствующие этому доменному имени. Более того список IP-адресов по истечении времени жизни данной DNS-записи (в данном случае речь идёт об A-записи) может быть выдан абсолютно новый, поэтому информацию придётся периодически обновлять. К сожалению в RouterOS нельзя создать правило
блокировать все TCP соединения на порт 80 по адресу example.com
на месте example.com должен быть IP-адрес, но как мы уже поняли, example.com соответствует не один, а несколько IP-адресов. Чтобы избавить нас от мучения создания и поддержки кучи однотипных правил, разработчики RouterOS дали возможность создавать правило так:
блокировать все TCP соединения на порт 80 по любому адресу из списка с именем DenyThis
Дело осталось за малым — автоматически формировать этот самый список. Кто ещё не утомился от моей писанины приглашаю под хабракат.
Читать дальше →

Непереводимая игра слов по поводу CLANG, LLVM и msp430

Reading time11 min
Views20K
Целью данной работы является получение кода, сгенерированного бэк-эндом компилятора LLVM MSP430

Введение


CLANG — это просто фронт-энд компилятора С для LLVM. LLVM — это фреймворк для разработки фронт-эндов, бэк-эндов компиляторов для разных целевых платформ. Этот фреймворк облегчает анализ путем приведения всех фронт-эндов к промежуточному представлению (IR). Все бэк-энды оперируют с этим общим представлением.

Одна из целевых платформ, которая меня интересует, это MSP430 — популярный встраиваемый микроконтроллер, используемый во многих микропотребляющих приложениях.

Текущая поддержка MSP430 весьма ограничена. Я надеюсь, что смогу помочь кому-нибудь, кто слишком фейс-палмит, сохранить лицо. 1

Поехали


Текущая поддержка данной платформы предельно ограничена. Надеюсь, я смогу восполнить этот пробел. Ниже приведена упрощенная диаграмма того, как должна происходить сборка:
Читать дальше →

Конечный автомат (он же машина состояний) на чистом С

Reading time5 min
Views133K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →

Немножко про радиацию

Reading time9 min
Views99K
Я уже привык к тому, что для большинства людей радиация — область мифологии, а не науки. Но тут наткнулся на эту запись, в которой уже типа профессионал объясняет безумную опасность советских датчиков дыма. После этого решил, что стоит таки заняться просветительством.
Читать дальше →

Спутник — это очень просто

Reading time19 min
Views65K
Мы быстро привыкаем к прогрессу. Вещи, которые нам несколько лет назад казались фантастикой, сегодня не замечаются и воспринимаются как всегда существовавшие. Достаточно покопаться в старых вещах, как вдруг найдется монохромный мобильный телефон, дискета, магнитофонная кассета или даже катушка. Не так давно это было. Не так давно и интернет был «по талонам» под скрип модема. А кто-то помнит 5,25" жесткие диски или даже магнитофонные кассеты с компьютерными играми. И обязательно найдется тот, кто скажет, что в его время были 8" дискеты и бобины для ЕС ЭВМ. И в тот момент ничего не было современнее, чем это.

В эти недели можно наблюдать традиционные мероприятия, посвященные запуску первого Спутника — началу Космической эры. Силой случая спутник, который должен быть первым, стал третьим. А первым полетел совсем другой аппарат.
Этот текст о том, как просто сейчас услышать спутники на околоземных орбитах и как это было в начале космической эры. Перефразируя известной когда-то книги Е. Айсберга: «Спутник — это очень просто!»

image

Читать дальше →

Первое независимое подтверждение LENR (по-простому – холодный синтез)?

Reading time4 min
Views268K
LENR – Low-energy nuclear reaction – Низкоэнергетическая ядерная реакция.

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


E-Cat изобретателя Андреа Росси – устройство, использующее холодный синтез для выработки большого количества дешёвой экологичной энергии – в марте 2014г было проверено независимой группой учёных, представивших сейчас 54-страничный отчёт.
Испытатели
Джузеппе Леви – Университет Болоньи, Италия
Эвелин Фоски – Болонья, Италия

Бо Хойстед, Роланд Петтерсон и Ларс Тегнер – Университет Уппсалы, Швеция

Ханно Эссен – Королевский Институт Технологий, Стокгольм, Швеция

Они исследовали маленький E-Cat в течение 32 дней, за которые реактор произвёл 1.5 мегаватт-часов энергии. Это «намного больше, чем может быть получено из любого известного химического источника для реактора подобного размера».

Интересно, что в самом отчёте написано, что 32 дня – это заранее установленный срок эксперимента. То есть, реактор выключили искуственно, и он, к тому времени, всё ещё не подавал признаков снижения выдаваемой мощности.
Читать дальше →

Советская операция по спасению мертвой космической станции

Reading time19 min
Views352K

Источник: Spacefacts.de

Эта история произошла в 1985 году, но в последствии постепенно забылась. Шли годы — многие подробности были искажены, кое-что было выдумано. Даже те, кто первыми рассказал об этих событиях, допускали явные ошибки. Операция «Союза-13» по спасению орбитальной станции «Салют-7» была впечатляющей попыткой проведения ремонта в открытом космосе. Писатель Николай Белаковский собрал все факты воедино и готов впервые за все время предоставить нам полноценный рассказ о тех событиях.
Читать дальше →

Information

Rating
4,052-nd
Location
Кызыл, Тува (Тувинская Респ.), Россия
Registered
Activity

Specialization

Software Developer, Application Developer
Senior
From 150,000 ₽
Python
C++
Linux
Docker