пятница, 12 мая 2017 г.

Go конспект: дополнения и обсуждения

Меня достаточно часто спрашивают всякие уточняющие вопросы по выложенной здесь два с половиной года назад рукописи Go конспект ... в частности, будут ли по ней обновления и расширения?

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

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

Инструменты Go
cборка приложений Go
GUI на Go
Примеры кода Go
alternatives
редкие полезные команды
Go


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

Предупреждение: это всё форумные обсуждения, многостраничные, не упорядоченные, ... "взлохмаченные", начатые (некоторые из них) не один год назад. Поэтому читать эти форумные обсуждения лучше начинать лучше с конца.

воскресенье, 7 мая 2017 г.

лицензия Creative Commons Attribution ShareAlike

Все заметки (тексты, программные коды) ниже были представлены под лицензией Creative Commons Attribution ShareAlike. Которая требует некоторых разъяснений и ссылок:

Во-первых, я бы вообще не заморачивался с лицензиями, если бы читатели этих заметок прошлых лет (и не один, а несколько) не обращались с вопросами о том, под какой лицензией представлены эти материалы и не советовали явно указать вид лицензии. И выбор был остановлен на лицензии Creative Commons Attribution ShareAlike.

Во-вторых, на текст этой лицензии (русский перевод) есть не раз ссылки внутри сообщений блога, но ... эти ссылки умерли, домены распродаются ... а выискивать и править ссылки по старым сообщениям, 5-летней и более давности, у меня определённо нет никакого желания.

Лицензия Creative Commons Attribution ShareAlike - это лицензия "общественное достояние" и "атрибуция - на тех же условиях". Ссылка на перевод на русский с английского и перевод с юридического на человеческий - здесь: Атрибуция - на тех же условиях.
Логотип лицензии "общественное достояние" выглядит примерно так:
 




Почему такая лицензия, а не свободная лицензия MIT, BSD, или Apache (из числа "самых" свободных)? Только потому, что эти свободные лицензии в большей мере применимы к программному коду, а Creative Commons распространяется так еж и на тексты публикаций. Creative Commons — лицензия, которая пытается перевести проект в общественное достояние в максимальной форме, разрешенной законом. А если закон не позволяет это совершить, автоматически применяет положения разрешительной лицензии.

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





суббота, 6 мая 2017 г.

Интерпретация программного кода

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

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

Я предполагаю написать это на C++. Такая задача куда проще решалась бы на ... скажем, Python ... или Lisp, Ocaml и т.д. Но ... "мы не ищем лёгких путей" 😉 - пусть будет C++.

Но не исключено, что в какой-то момент мне это наскучит 😉 ... и я продолжу делать то же на Python...

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

А основная (и, как понимаете, самая сложная в реализации) часть - вычисление выражений - здесь: обратная польская запись. Там планируется параллельно рассмотреть 2 альтернативные реализации: а). метод рекурсивного спуска и б). алгоритм сортировочной станции Э.Дейкстры (как заметно чаще более известный). Пока представлен только 1-й из них ... именно как менее известный. 😉

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

P.S. Всё это предоставляется под лицензией "Общественное достояние - на тех же условиях" (Creative Commons Attribution ShareAlike), см. Attribution-ShareAlike.

P.S. Там после 09.05.2017 (с Днём Победы! 😉) существенные расширения: для лексического разбора и трансляции операторов языка применены регулярные выражения в C++, использование которых ранее детально описывались в публикации Регулярные выражения C/C++.

 

вторник, 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 описания.