воскресенье, 30 июля 2017 г.

Docker

Docker - это модно!
Docker - это круто!
Это такие ... девизы сегодняшнего дня ... и прочая DevOps галиматья - когда рачительные менеджеры рассчитывают на то, что, вместо программистов с многолетним багажом разработки, создание крутых программных проектов им станут вести слабо образованные системные администраторы...

Но ... внимательно следя за проектами (достаточно родственными) LXC (LinuX Containers) и Docker практически от времени их появления (интересные проекты!), столкнулся с практическим использованием проекта Docker только сейчас... в рамках реального проекта.

Если кого заинтересуют практические детали (тонкости командной строки) экспериментов с Docker, то я свои опыты подробно описываю здесь: Dockerграфические приложения в DockerDocker Compose.

P.S.  Относительно LXC, с которым на сегодня не связан на 100% Docker, но с которого он начался, от которого он стартовал, можете глянуть здесь же: контейнеры LXC, в теме обсуждения, стартовавшем ещё 2 года назад. Представление о LXC не является необходимым для работы с Docker, но многое проясняет в сравнении - возможности LXC во многом могут считаться альтернативой Docker.

суббота, 15 июля 2017 г.

Блокчейн

Блокчейн - слово, термин, которое появилось только 2008 году, а до этого его никто не говорил и не знал. А сегодня число ресурсов по Интернет относительно блокчейн исчисляется десятками тысяч, о нём пишут и переводят с разных языков книги:
Вот из этой книги:
Вполне вероятно, мы находимся на пороге блокчейн-революции. Эта революция началась с появлением новой экономической реальности в интернете – альтернативной валюты под названием биткойн, которая эмитируется и обеспечивается не государством, а пользователями биткойн-сети при автоматизированном достижении консенсуса между ними.
И ещё:
Обладая революционным потенциалом, равным потенциалу интернета, блокчейн-технология будет разворачиваться и внедряться намного быстрее благодаря повсеместной доступности интернета и мобильной связи.
По технологии блокчейн (даже не по биткоин, в среде которого родилась техника блокчейн, а именно блокчейн) - обсуждаем здесь: Блокчейн. Там же вы найдёте ссылки для свободного скачивания вот той 240-страничной книги, которая нарисована выше.

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





Квантовая криптография

Всякие интересные факты относительно квантовой криптографии обсуждаем здесь: Квантовая криптография.

P.S. Если кто сочтёт, что с интересом к этому предмету я сошёл с ума или впал в детство - то это не так: приходите годков так через 3-5, и мы повторно обсудим эту тему.

понедельник, 26 июня 2017 г.

смена хостинга форума rus-linux.net

Форум, который упоминался ранее мной в сообщении Детальные обсуждения, и на котором отрабатывается начерно тот материал, из которого (иногда) создаются тексты, показываемые в этом блоге - меняет свой хостинг (адреc, ссылку, URL). Теперь (пока, по крайней мере) это будет так.

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

пятница, 2 июня 2017 г.

Arduino

Для тех, кто не изучал профессионально и специально электронику и программирование, но хотел бы на практике "пощупать" это занятие, такая игрушка как Arduino - наилучшая выдумка: можно за $10, или около того, построить у себя на письменном столе стенд, на котором испытывать довольно замысловатые устройства.

Подробнее о том: где что взять и как что сделать - обсуждаем здесь: Arduino.

Это отличное хобби и времяпрепровождение ... в свободное от работы время. Увлекательная забава. Это то, чем было лет 40 назад такое занятие как радиолюбительство ... которое с того времени практически потеряло свой смысл.

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

Язык программирования Kotlin

Достаточно интересный новый (2011г.) язык Kotlin, идущий на смену Java. Моё внимание на него обратили ex-сотрудники моего отдела (когда-то), ныне благополучно пребывающие в Канаде. Вряд ли необходимость замены Java и появление Kotlin было необходимо, целесообразно и объяснимо ... если бы не Android. 😆

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

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

Я уже показывал здесь, в блоге, ссылку на текст Сравнительное обозрение языков программирования, где сравниваются реализации одной и той же задачи, выполненные на 15 языках программирования. Теперь к ним предстоит присовокупить и Kotlin. 😆
P.S. К 02.06.2017 такой 16-й вариант уже сделан и представлен (в темах, ссылки на которые показаны выше).

Активные ресурсы Kotlin на сегодня:

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

- Русскоязычный канал официального чата JetBrains по языку Kotlin в корпоративном мессенджере Slack (нужно зарегистрироваться и получить инвайт).



пятница, 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.