вторник, 11 апреля 2017 г.

Задачи по программированию на языке C++, часть 2 (обновление)

Значительное дополнение, обновление и исправление текста и примеров кода для задачника по языку C++.

Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов
Сейчас это редакция 48 от 11.04.2017, страниц 110.
Задач с примерами на сегодня представлено 66 (хотя посчитать это достаточно проблематично, поскольку ряд задач имеет по несколько представленных вариантов решений).

Дополнения (относительно первоначальных редакций) весьма обстоятельные: по сравнению с предыдущей выложенной версии текст увеличился на 20 стр. (+22%), а число задач увеличено на 10.



суббота, 1 апреля 2017 г.

Документация systemd

Начало публикаций в этом блоге положило (октябрь 2012г.) обсуждение и описание некоторых сторон использования новой системы инициализации Linux systemd. К тому времени сам systemd был сделан Леннартом Поттерингом в самом зачаточном виде, с минимумом тех возможностей, которые реализованы в systemd на сегодня (больше было на уровне обещаний, чем реализаций). О документации тогда говорить не приходилось вообще, а сведения какие-то приходилось черпать из оригинальных "горячих" заметок (очень рваных) из блога самого Леннарта Поттеринга. Отсюда и появились заметки о systemd в 6-ти частях в этом блоге. 

По статистике посещений я вижу, что и до сейчас эти заметки о systemd достаточно активно читаются (например, часть 2 прочитана больше 2000 раз). Но на сегодня это достаточно бессмысленно! Потому что есть объёмное и постоянно обновляемое руководство по systemd, непосредственно от разработчика проекта Леннарта Поттеринга, и есть регулярно обновляемый перевод этого руководства, поддерживаемый Сергеем Пташником. Вот этим руководством и следует пользоваться (это то, что можно считать уровнем документации)!

Это руководство (PDF) свободно доступно здесь (обратите внимание на дату):
  
systemd для администраторов
Lennart Poettering (автор)
Сергей Пташник (русский перевод)
17 февраля 2017 г.
107 стр.     

Благодарите переводчика! 😃
P.S. Очень советую сохранять (периодически) копию этой документации, а не пользоваться ней онлайн (доступность там не всегда на 100% гарантирована).

Детальные обсуждения

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

Поэтому, для любых интересных и полезных обсуждений приглашаю всех интересующихся на форум сайта, основанного Виктором Костроминым:




Сам по себе, это один из старейших и обстоятельнейших русскоязычных ресурсов по Linux - на нём регулярно, с частотой в 2-3-4 дня размещаются переводы актуальных статей по администрированию и программированию. Но для обсуждений имеется в виду форум этого сайта. Форум этот можно найти по по адресу. Присоединяйтесь к обсуждениям!



вторник, 31 января 2017 г.

Прочь, малолетние хакеры!


Тематика моих интересов сильно сместилась (временно или надолго) в сторону безопасности в цифровом информационном пространстве (так я обозначаю сетевые среды, но не только).
Появился замысел, на основе анализа хакерских ресурсов и описываемого инструментария, подготовить обстоятельный обзор средств противодействия хакерской активности, инструментов и методик анти-хакинга. Возможно это будет брошюра, возможно небольшая книга ... под рабочим названием "Прочь, малолетние хакеры!" 😃
Предварительно состояние дел можно будет видеть здесь: Прочь, малолетние хакеры! Зачем я загодя показываю ссылку на совершенно сырой материал ... из которого может вообще ничего не получиться, который не завершится? Только потому, что тематика эта вызывает многочисленные отклики, а ещё больше - вопросы. И эти вопросы, точнее ответы на них, могут быть включены в структуру текста.
Как всегда, всё это рассмотрение относится только к операционной системе Linux и, отчасти, к другим UNIX-подобным системам. К Windows это не относится, и на Windows могут быть перенесены только сами общие идеи, по аналогии.

Собственно, интерес и деятельность в этом направлении началась давно... Некоторые соображения, из сформулированных ранее, можете глянуть здесь: То, чего вам никто не говорил про хакеров... Начав систематизировать материалы по безопасности, убеждаюсь, что то, что житейски, в обиходе называют "безопасность" - отчётливо разделяется на 2 разных, и даже противоположных понятий: «безопасность от» и «безопасность для». Первое — это вопросы защиты от не предусмотренного стороннего вторжения в информационную систему … со стороны недоброжелателей: хакеров (доморощенных и неграмотных, чаще всего), обиженных и уволенных сотрудников алчущих мести, мошенников разного рода, спамеров, рекламных агентов и др. придурков. Второе — предусматривает охранение личного пространства, персональной информации от отдельных лиц (тех же спамеров с мошенниками), IT корпораций (Microsoft, Google, FaceBook, Amazon и т.д.), государственных органов и спецслужб (ФСБ, СБУ, АНБ, Госдепартамент … принадлежность их не имеет значения), общественных организаций и «доброжелателей» (разнообразные экологи с зелёными, голубые с розовыми, ювенальная юстиция и т.п.). Так что писать придётся, похоже, 2 описания.


среда, 21 сентября 2016 г.

Задачи по программированию на языке C++, часть 2 (обновление)

Значительное дополнение, обновление и исправление текста и примеров кода.

Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов
Сейчас это редакция 40 от 21.09.2016, страниц 90.
Задач с примерами на сегодня представлено 57 (хотя посчитать это достаточно проблематично, поскольку ряд задач имеет по несколько представленных вариантов решений).

Исправления главным образом касались грамматики и опечаток. Но дополнения (относительно первоначальных редакций) весьма обстоятельные.


вторник, 13 сентября 2016 г.

Задачи по программированию на языке C, часть 1 (обновление)

Заметное обновление текста и примеров кода.

Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов
Сейчас это редакция 39 от 14.11.2016, страниц 106.
Задач с примерами на сегодня представлено 102.

Но самое главное изменение: все и любые планировавшиеся изменения и расширения под стандарт C11 - отменены. По моему мнению, по результатам достаточно щепетильного изучения стандарта - это мёртворожденное творение, состряпанное в угоду и на заказ крупнейших IT корпораций в их шкурных интересах. Но предполагаю, что никто это использовать на практике не станет.

суббота, 10 сентября 2016 г.

Регулярные выражения C/C++

Это фактически продолжение предыдущего текста Языковая локализация. И планировалось оно как небольшая глава в тот общий текст. Но разбирательство потянуло за собой всё большее расширение объёма. Вопрос изначально стоял узко: как поведут себя инструменты обработки регулярных выражений с Unicode/UTF-8 строками? Тем более, когда мультибайтные Unicode символы символы станут появляться и в шаблонах регулярных выражений и в самих сопоставляемых строках. Ну, например, что и как происходит вот в таком простейшем случае:

$ echo "слово слава слива" | grep сл[о,а]
слово слава слива

Там всё не так однозначно просто ... и некоторые детали не ясны до конца. Связано это с тем, что все инструменты (библиотеки) сопоставления с регулярными выражениями в C и в C++ до стандарта 2011г. не могут работать со строками широких локализованных символов (wchar_t[], wstring). По крайней мере, я таких не знаю.

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

Сам текст : на Yandex и на на Google
Редакция 05, от 10.09.2016, стр. 13.

Архив примеров кода на Yandex и на на Google

Все не ясные моменты (а они там есть), замечания и предложения по тексту - обсуждаем здесь: регулярные выражения в C/C++... и это может заметно улучшить освещение вопроса. Там же, по ссылке, найдёте книги (переводы), из числа наилучших, по регулярным выражениям, и ссылки для их свободного скачивания.


  

четверг, 1 сентября 2016 г.

Языковая локализация

Локализация программного кода под язык (например, русский) очень слабо описана. На то есть несколько причин:
  • Современное представление текстов в Unicode появилось достаточно поздно (1991г.), а представление Unicode в UTF-8 кодировке ещё позже (1992г., Кен Томпсон и Роб Пайк);
  • Ранние описания, например знаменитая книга по C K&R, естественно, не могут даже упоминать о проблеме языковой локализации...
  • А более поздние зарубежные (и переводные) издания обходят эти вопросы стороной - им оно не актуально ... и "до лампочки"...
  • отечественные же учебники только пересказывают то, что они прочитали в переводных изданиях.
А вопросы по этому поводу многократно задают. И в обсуждениях рассказываются совершенно чудовищные картины локализации ... складывающиеся в больном воображении в отсутствии информации.
Поэтому пришлось собрать в одно место то, что я знаю по этому поводу, и описать единым текстом.
Как и раньше, особенно расписывать я здесь не стану, а для интересующихся, пожалуйста - скачивайте описательный текст + архив примеров кодов, которые можно компилировать, изучать и с которыми можно экспериментировать.

Сам текст : на Yandex и на на Google
Редакция 09, от 01.09.2016, стр. 22.

Архив примеров кода на Yandex и на на Google

Всё, что здесь описано, касается локализации в коде C и C++. Но вопросы локализации, вообще то говоря, определяются не столько языком программирования, сколько а операционной системой и её настройками. Поэтому локализация на других языках, скажем Python, полностью наследуют описываемые здесь принципы, и только изображаются API этого языка. В будущем, возможно, я расширю текст примерами ещё на нескольких языках программирования ... хотя это достаточно тривиально после C/C++.

Всё, что хотелось бы обсудить, уточнить, замечания и предожения по тексту - обсуждаем здесь: регулярные выражения в C/C++.



пятница, 26 августа 2016 г.

Начала STL и контейнеры C++

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

Кому интересно - берите и пользуйтесь...

Сам текст : на Yandex и на на Google
Редакция 12, от 24.08.2016, стр. 59.

Архив примеров кода на Yandex и на на Google

Всё, что хотелось бы обсудить, уточнить, замечания и предожения по тексту, какие бы ещё примеры и задачи включить в рассмотрение - обсуждаем здесь: Начала STL и контейнеры C++.

пятница, 27 мая 2016 г.

Задачи по программированию на языке C, обновление

Предыдущее сообщение Задачи по программированию на языке C, часть 1 содержало ссылки на документ, который обновлялся, расширялся много раз. Последняя редакция предлагаемого текста была 23 от 12.01.2016, объёмом 82 страниц. После этого текст достаточно стабилизировался, и оставался неизменным почти пол-года.

Сейчас назрел новый цикл обновлений. Главный его резон: рассмотреть расширения стандарта ISO/IEC 9899:2011 языка C (но накопились и другие нюансы). Поэтому новый цикл обновлений вынесен отдельно сюда.

Скачать свободно последнюю актуальную редакцию текста и архива кодов можно здесь:
Yandexтекст, архив кодов
Googleтекст, архив кодов
Сейчас это редакция 30 от 27.05.2016, страниц 89.

P.S. А по поводу самого стандарта C11, который не очень известен и доступен - черновик стандарта N1570, датированный 12.04.2011, можете скачать здесь.