Technologique
652 subscribers
144 photos
3 videos
42 files
947 links
Deeply involved developers about various aspects, tendencies & conceptions of programming technologies, FLOSS, Linux, security, cloud infrastructures & DevOps practices, distributed systems, data warehousing & analysis, DL/ML, web3, etc.
Author: @andrcmdr
Download Telegram
Technologique
А вообще хорошо, что сейчас постепенно приходит прозрение и осознание у многих профессиональных умудрённых опытом программистов, что наследование и классы, специальный ad-hoc полиморфизм включения (полиморфизм подтипов - однако, сколько же терминов в русской…
Товарищи с Хабра провели отличное интервью с Аланом Кейем, автором SmallTalk и очень крупным учёным в области computer science, разработавшем в конце 60-х будучи в Xerox PARC очень много ИКТ технологий, ставших нашей сегодняшней реальностью.

https://habrahabr.ru/post/333778/

С сорокового вопроса начинаются очень интересные ответы по части технологий программирования.

44:
В том, как я думал об ООП (и что я под этим имел ввиду) нет совсем никакого конфликта с функциональным программированием.
Дело просто в том, что люди хотят программировать императивно и в итоге вынуждены называть объектно-ориентированным программированием то, что является на самом деле абстрактными типами данных, а не ООП.


58:
Религиозный культ становится злом даже если пытается быть добром, потому что сталкивается с трудностями по отношению к различным изменениям мира — а ещё бывает и так, что культ возникает относительно неправильных идей. Поэтому убрать всякий «религиозный культ» из компьютерной сферы было бы большим благом. Настоящий вопрос заключается в следующем: как создавать системы, в которых «простые вещи были бы просты, а сложные вещи — возможны». Это, в том числе, подразумевает возможность измененения своей точки зрения на вещи со временем, а также способность осуществлять изменения, затрачивая разумное количество усилий.


И в дополнение мысль Алана о сегодняшних технологиях разработки ПО из другой весьма интересной статьи (https://www.itweek.ru/idea/blog/idea/3254.php):

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



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


Links:
https://xn--r1a.website/technologique/1007

https://youtu.be/NdSD07U5uBs

https://youtu.be/KVUGkuUj28o

https://youtu.be/M6ZHxUwqPVw

https://habrahabr.ru/company/edison/blog/310588/
Technologique
Товарищи с Хабра провели отличное интервью с Аланом Кейем, автором SmallTalk и очень крупным учёным в области computer science, разработавшем в конце 60-х будучи в Xerox PARC очень много ИКТ технологий, ставших нашей сегодняшней реальностью. https://habr…
И раз уж речь зашла про паттерны проектирования - Марио Фуско из Red Hat большой оригинал в этом деле и преподнёс весьма элегантное решение для упразднения ООП паттернов проектирования.
Он буквально вывернул наизнанку ООП паттерны проектирования, спроецировал и привёл их к функциональной парадигме, где программы проектируются с использованием лямбда исчисления и функций высших порядков, и структурируются с помощью функторов и монад, как структурного паттерна для проектирования приложений.

The book of design patterns known as Gang of Four has been a kind of Bible for all the developers of my generation.
Nevertheless the biggest issue with this is that almost all patterns listed in that book, especially the behavioural ones, are a only workaround for a missing abstraction: higher order functions.


https://www.youtube.com/watch?v=lZG74WbnhoE&feature=youtu.be&list=PLRsbF2sD7JVq8QYW0vlbOS2JuXUWaWMnT

https://github.com/mariofusco/from-gof-to-lambda

https://github.com/lmller/gof-in-kotlin

https://github.com/truizlop/GOFToLambda


PS:
Огромная благодарность за материалы для крайних двух постов Люгеру (@Luger_08) - во многом благодаря нашим регулярным дискуссиям о технологиях программирования рождаются интересные мысли и посты, которыми живёт и полнится наш канал. 👍
Весьма интересный и близкий нам канал о технологиях программирования на С, C++, Go и Python, а также о Linux, ведёт Сергей Аббакумов - Sea++. Подписывайтесь на канал, чтобы поддержать автора в его стремлении писать больше об этих технологиях программирования.

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

Мне понравилась серия постов про обработку ошибок и исключений в С++:

https://xn--r1a.website/sea_plus_plus/22 - про использование идиомы RAII (деструкторной техники освобождения ресурсов) в обработке исключительных ситуаций

https://xn--r1a.website/sea_plus_plus/23 - про сравнение с методом обработки исключений в Go

В Go обработка исключений и ошибок происходит посредством возврата состояний через тип-интерфейс error. [1] [2] [3] [4]

https://xn--r1a.website/sea_plus_plus/24 - про класс Expected<T> от Андрея Александреску, соавтора D и стандартной библиотеки языка D (библиотеки Phobos).

О подобном способе обработки исключений в Java, посредством класса Either<MyError, MyResult>, как альтернативе checked exceptions, писал недавно Марио Фуско из RedHat в Twitter.
Technologique
На Mobile World Congress 2017, проходящем в Барселоне, Sony и финская компания Jolla объявили о долгосрочном сотрудничестве. Jolla будет поставлять ОС Sailfish, для смартфонов Xperia. Sailfish - дистрибутив для мобильных платформ на базе ядра Linux и проекта…
Jolla выпустили обновление Sailfish OS 2.1.1

Обновление образов прошивок будет доступно для устройств Jolla и Sony Xperia.

https://blog.jolla.com/sailfish-os-2-1-1-now-available-jolla-devices-early-access/

https://blog.jolla.com/sony-xperia-project-update/

Девайсов с Sailfish на борту по прежнему очень мало - это устройства Jolla собственной разработки компании и с недавних пор отдельные устройства Sony Xperia, прошивки для которых разрабатываются по договору о сотрудничестве Jolla с Sony.
Поддержка устройств не очень широкая и вряд ли будет таковой. Причины этого обективны и понятны - рынок уже занят и поделён.
Все основные производители мобильных устройств и SoC чипов завязаны на Open Handset Alliance, который недостаточно open, чтобы быть открытым для сторонних производителей железа и софта, и альянс сильно завязан на Google и экосистеме Android, которые обязывают компании альянса, для участия в нём и экосистеме Android, закрывать спецификации своих SoC и запрещают открывать исходники драйверов для сторонних производителей софта.

https://www.openhandsetalliance.com/oha_members.html#handset

https://www.openhandsetalliance.com/oha_members.html#semiconductor

https://www.openhandsetalliance.com/oha_members.html#software

Это захват и сегментация рынка, и защита своих лидирующих позиций на нём для Google, как производителя софта и защита доходов от производства устройств и их компонентов для производителей железа, т.е. это фактически закрытый рынок и закрытый конгломерат компаний его формирующих, который не приемлет новых производителей софта и ОС.
Даже китайские производители железа не смогли изменить ситуацию на рынке и снизить зависимость от Google.

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

Canonical искали точки входа на рынок, сначала пытались распространять устройства с помощью европейских (например Bq) и азиатских мобильных операторов, участвовали со своим проектом мобильного дистрибутива Ubuntu в Mobile World Congress в Барселоне на протяжении нескольких лет для его популяризации среди производителей устройств, европейских и азиатских операторов , после пытались сотрудничать с азиатскими производителями железа (например Meizu) - но ничего не вышло.

Думаю та же участь ждёт проект Jolla Sailfish, даже не смотря на сотрудничество с Sony.
Такая ситуация на рынке делает любой проект альтернативной ОС невостребованным и слабо окупаемым.
Производитель железа должен иметь уверенность в прибыли, сколько он устройств сможет и должен произвести и отгрузить, сколько из них будут востребованы, согласно исследованиям рынка и ситуации на нём, чтобы окупить их разработку и производство и ещё заработать прибыль - Google с Android и альянс дают гарантии этого, а сторонние производители софта не дают никаких гарантий.
С другой стороны производитель софта должен создавать удобный инструментарий для разработки приложений и формирования экосистемы вокруг ОС - успех ОС во многом зависит от её SDK, доступности языковых и инструментальных средств для разработки приложений под неё.

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

Хотя сам я за Jolla очень болею, но уже ни на что не надеюсь, потому что на успех Ubuntu у меня лично была очень большая надежда и большие ожидания свершений, и сейчас я просто использую те устройства что более доступны.

На таком рынке сможет остаться только полностью самостоятельный производитель софта и железа ("full-stack vendor"), как например Apple, чтобы составить конкуренцию и зарабатывать на нём деньги.
Technologique
Jolla выпустили обновление Sailfish OS 2.1.1 Обновление образов прошивок будет доступно для устройств Jolla и Sony Xperia. https://blog.jolla.com/sailfish-os-2-1-1-now-available-jolla-devices-early-access/ https://blog.jolla.com/sony-xperia-project-update/…
Даже в самой экосистеме Android такая ситуация на рынке и в альянсе порождает негативные тенденции - замкнутость экосистемы, элиминация/исключение не только иных производителей софта, но и железа (пример - слабый успех YotaPhone 2, что послужило причиной замораживания всего проекта, слабый успех Intel на мобильном рынке, не смотря на влияние корпорации и технологически очень хорошо проработанные последние поколения мобильных чипов), из-за чего устройства всё больше становяться до ужаса однообразными, как по своей железной начинке, дизайну, форм-фактору, так и по пользовательским интерфейсам приложений и системы, из-за влияния одного главного производителя софта, Google, со своим мнением о том "как нужно делать интерфейсы правильно".
Тем не менее такая унификация железа, ОС, SDK и интерфейсов не делает разработку приложений, прошивок и их поддержку более простой - до сих пор в экосистеме Android присутствует значительная фрагментация самой ОС в плане существующего железа и его поддержки, возникшая во многом из-за закрытости драйверов для SoC (производители SoC чипов в альянсе делятся спецификациями и исходниками драйверов только с производителями конечных устройств) и из-за модели выпуска и поддержки обновлений прошивок целиком под конкретные устройства самими производителями конечных устройств. Таким образом фрагментация ОС возникла из-за vendor centric модели выпуска и распространения самой системы, сконцентрированной вокруг производителей конечных утсройств, которые решают сделать ли прошивку, её обновления, ядро и драйверы доступными или нет, что делает процесс поддержки прошивок устройств самими производителями (без привлечения сообщества) очень сложным и также негативно влияет на процесс разработки приложений разработчиками под различные устройства, т.к. нужно поддерживать как можно больше различных стройств и сделать универсальную поставку приложения работающего на всех устройствах становится всё сложнее, даже не смотря на наличие единого SDK.

И именно по этим причинам пользователи выбирают устройства Apple, как альтернативную экосистему c единой ОС для ограниченного спектра мобильных устройств и их железа.

Выпустив Windows для персональных компьютеров в своё время Microsoft поступили очень грамотно (что было весьма очевидно для того времени), разработав единый универсальный API ядра и системных библиотек (WinAPI), и заставив производителей самого железа, а также производителей компьютеров "в сборе" и лэптопов, распространять как минимум бинарные драйверы железа и устройств для их поддержки и работы в ОС Windows.

Links:
https://xn--r1a.website/technologique/777
https://xn--r1a.website/technologique/933
https://xn--r1a.website/technologique/936
https://xn--r1a.website/technologique/938
Technologique
Интересные времена настали, интересные... - Mr.Robot Мистер Робот продлён на третий сезон! https://www.instagram.com/p/BJLknNEBpIH/ Лишь бы Сэм Эсмэйл не уронил планку сценария! PS: eps2.2_init1.asec - действительно интересная и глубокая по своему смыслу…
Первый тизер третьего сезона сериала "Мистер Робот".

С каждым сезоном сериал "Мистер Робот" всё больше отражает тенденции в американском и глобальном обществе и политике, а также показывает влияние технологий на информационное общество - побочные эффекты применения и использования цифровых технологий, тотальная слежка за гражданами, ограничение свободы доступа к информации, всё большее влияние глобальных корпораций и финансовых конгломератов на жизни и судьбы людей, распространение криптовалют и darknet.
Во втором сезоне было сделано весьма смелое предположение, что после краха традифионной финансовой системы фиатных денег международные финансовые конгломераты могут перейти на криптовалюты, основанные на блокчейн алгоритмах. И это вполне подтверждается текущими экспериментами крупных международных банков (например UBS) с блокчейн алгоритмами.
Я конечно не сторонник теорий заговоров, но мне думается, что появление Bitcoin в текущую post-2K эру было далеко не случайным и весьма своевременным, учитывая также факт сокрытия его авторства. 😉

Сложно представить до чего дойдёт фантазия (фантазия ли? скорее предупреждение и предостережение) Сэма Эсмейла в новом, третьем, сезоне, премьера которого состоится 11 октября этого года.

https://www.youtube.com/watch?v=CmtaZ8sOfbk

Links:
https://xn--r1a.website/technologique/553
Technologique
https://www.kinopoisk.ru/news/2590497/ https://www.kinopoisk.ru/film/404213/ Главная жанрообразующая книга Уильяма Гибсона "Нейромант" ждёт своей экранизации PS: Наша колекция фильмов по IT тематике: https://telegram.me/technologique/304 Весьма интересный…
Первую книгу трилогии "Киберпространство", роман "Нейромант" ("Neuromancer", 1984) будет экранизировать Тим Миллер, режиссёр "Дэдпула".

https://www.kinopoisk.ru/news/3019210/

http://deadline.com/2017/08/deadpool-tim-miller-neuromancer-william-gibson-movie-fox-simon-kinberg-1202145496/

Права на экранизацию второй и третьей книги трилогии "Киберпространство" ("Sprawl" trilogy), романов "Граф Ноль" ("Count Zero", 1986) и "Мона Лиза Овердрайв" (Mona Lisa Overdrive, 1988) писателя Уильяма Гибсона, были выкуплены ещё в 2007 году и ожидают своей экранизации.

В англоязычной литературе цикл романов был озаглавлен издательствами в разные годы по разному ("Neuromancer", "Cyberspace", и даже "Matrix"), т.к. сам Уильям Гибсон не объединял цикл романов в трилогию и не давал специально трилогии названия.
Наиболее известно название "Sprawl trilogy", по первому изданию всех трёх романов одной трилогией.

Термин "Sprawl" в романе "Нейромант" и всём цикле применяется в смысле "urban sprawl" и обозначает рост количества строений, т.к. в романах описывается экспансия, расширение урбанистической агломерации и городских метрополий будущего, одна из которых и обозначается нарицательным именем "Sprawl", "Муравейник", "расскадник", городская агломерация, простирающаяся вдоль восточного побережья Соединённых Штатов, вокруг дуо-города Бостон-Атланта (Boston-Atlanta Metropolitan Axis, BAMA), являющаяся расскадником, порождающим криминальную среду будущего киберпространства. Сам термин "киберпространство" был впервые изобретён в этом цикле романов Уильяма Гибсона.

Уильям Гибсон в библиотеке Максима Мошкова:
http://lib.ru/GIBSON/

Очень советую прочитать оригинал романа "Нейромант" ("Neuromancer") на английском языке:
http://lib.ru/GIBSON/neuromancer.txt

Wiki:
https://ru.wikipedia.org/wiki/Киберпространство_(трилогия)
https://en.wikipedia.org/wiki/Sprawl_trilogy
https://en.wikipedia.org/wiki/The_Sprawl

Links:
https://xn--r1a.website/technologique/611

#киберпанк
#cyberpunk
zRAM - swapped your memory from zipped swap partition, placed right into the same RAM memory, and getting more memory!

Подкачиваешь оперативку прямо из сжатого раздела подкачки в оперативке и получаешь больше памяти! ©

Модуль ядра Linux zRAM полезен для "современных" ультрабуков со "стандартными" 8 ГиБ RAM, когда памяти недостаточно и конфигурация не поддерживает апгрейд (память нерасширяема, нет слотов, впаяна в матплату - on-board soldered RAM), для серверов при использовании виртуализации, для серверов приложений (для апплетов экосистемы Java), при тестировании массивных Java приложений и GC на многогигабайтных кучах (heap), а также для систем сборки и поставки проектов (процессов CI/CD в DevOps практике), для компиляторных ферм, используемых для сборки очень крупных проектов, требующих для процесса компиляции и сборки много памяти и процессорного времени, в этом случае zRAM будет полезен для мэйнтейнеров пакетов различных дистрибутивов и любителей компилировать и собирать source-based дистрибутивы (Gentoo и другие) и пакеты для них, создавать локальные зеркала скомпилированных и собраных пакетов (ebuild для Gentoo) для подобных дистрибутивов, на серверной площадке компании или проекта, и т.д.

https://www.kernel.org/doc/Documentation/blockdev/zram.txt

Установка и настройка zRAM в Gentoo, ArchLinux и Debian.

https://habrahabr.ru/post/172137/ - давняя статья Дмитрия Петрашко (@darkdimius, к слову одного из основных авторов компилятора Dotty с системой зависимых типов для Scala 3)

#Linux
Technologique
Шикарный спич на недавней конференции C++Now 2017, прошедшей в мае, от Нико Матсакиса, одного из основных разработчиков Rust! Нико очень простым языком на примерах объясняет весьма сложные концепции, например как устроена идиома контроля заимствований и владений…
Нико Матсакис о библиотеке Rayon для параллельной обработки данных в языке Rust на конференции Rust Belt.

https://youtu.be/gof_OEv71Aw

Библиотека Rayon позволяет обрабатывать данные параллельно с использованием композитных комплексных типов данных, поддерживающих параллелизм при работе с ними, например параллельных коллекций.
Для этих целей библиотека Rayon обеспечивает создание параллельных итераторов и редукцию рекурсивных алгоритмов в параллельные с использованием поддерживаемой библиотекой операции/метода join (https://en.wikipedia.org/wiki/Fork%E2%80%93join_model).

http://smallcultfollowing.com/babysteps/blog/2015/12/18/rayon-data-parallelism-in-rust/

Перевод на русский язык:
https://habrahabr.ru/post/274299/

https://github.com/nikomatsakis/rayon

https://crates.io/crates/rayon

https://docs.rs/rayon/

Links:
https://xn--r1a.website/technologique/1012
Андрей Бреслав, автор Kotlin, о поддержке сопрограмм (coroutines), итераторов и продолжений (continuations) в языке Kotlin и семантике байт-кода JVM для работы с асинхронным многопоточным исполнением кода в программах, ленивыми и отложенными вычислениями, и событийно асинхронным неблокирующим вводом-выводом.

https://youtu.be/4W3ruTWUhpw
Для работы, правильного настроя на творческий процесс написания программ и приятного отдыха - классный сайт, c GIS и аудио-стримингом, для поиска интересных радиостанций по всему миру!

http://radio.garden/live/

Список интересных избранных радиостанций, которые сам часто слушаю:
https://gist.github.com/andrcmdr/5953df2752285b714108ef2ee6bde61d
Антон Кекс - про применение Kotlin в реальных проектах.

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

https://youtu.be/CABN2r4GPpQ

На английском:
https://youtu.be/lpPbCWpBM3I

#Kotlin
Technologique
И снова про патентный троллинг и патентные войны в наше время... https://youtu.be/Scq94Er7VB8
JVM vs. .Net

Спустя время "open source и Oracle патенты" (41:41) смотрится очень забавно, в свете последних разбирательств Oracle vs. Google по патентам на API - а ведь Ричард Столлман предупреждал в своё время, ещё когда Java принадлежала Sun, что Java не свободна.
Тем не менее исходники Java были открыты и был создан проект OpenJDK до покупки Sun компанией Oracle, поэтому Google удалось избежать претензий со стороны Oracle по патентам на API.
В этом случае лицензии FOSS сработали как и должны были, сработали в защиту открытых платформ.

Хотя .Net тоже не свободен, но есть свободная (распространяемая по свободной лицензии) open source платформа Xamarin Mono, которая сейчас развивается очень большими темпами, благодаря покупке Xamarin компанией Microsoft и благодаря открытию исходников .Net и созданию проекта .Net Core - уже можно писать мобильные приложения на Xamarin.Android и Xamarin.iOS, десктопные приложения на Xamarin.Mac и кроссплатформенные десктоп приложения на Mono+GTK# для Linux и Windows, например так сделан оригинальный KeePass 2.

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

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

https://youtu.be/1z32YuiyncI

Ссылки по теме (Thread):
https://xn--r1a.website/technologique/610
https://xn--r1a.website/technologique/577
https://xn--r1a.website/technologique/530
https://xn--r1a.website/technologique/444
https://xn--r1a.website/technologique/434
https://xn--r1a.website/technologique/400
https://xn--r1a.website/technologique/327
Technologique
JVM vs. .Net Спустя время "open source и Oracle патенты" (41:41) смотрится очень забавно, в свете последних разбирательств Oracle vs. Google по патентам на API - а ведь Ричард Столлман предупреждал в своё время, ещё когда Java принадлежала Sun, что Java не…
Но в Java как в технологии всё равно больше шума и boilerplate кода в экосистеме - сама технология Java это поощряет, а её популярность это только усугубляет.

Об этом есть очень классный доклад Антона Кекса, особенно первая его часть, с очень подробным анализом проблем в экосистеме Java.

Первую часть посмотрите обязательно - очень крутой обзор и разбор проблем в экосистеме с разных сторон.

Часть первая:
https://youtu.be/TSAlj04_tkA

Часть вторая:
https://youtu.be/cPXTozVjSHo
Бартош Милевски - теория категорий

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

https://youtu.be/p54Hd7AmVFU

Полный курс лекций — Category Theory:
https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_

Category Theory II:
https://www.youtube.com/playlist?list=PLbgaMIhjbmElia1eCEZNvsVscFef9m0dm

Links:
https://xn--r1a.website/technologique/1002
Бартош Милевски - правда о типах

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

https://youtu.be/dgrucfgv2Tw