Technologique
660 subscribers
143 photos
3 videos
42 files
945 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
https://youtu.be/dS9fIphTJfM

И ещё один очень интересный спич про Rust от Эмили Данэм с недавнего RustFest в Киеве (http://2017.rustfest.eu), прошедшего 29-30 апреля.

Предыдущий спич Эмили на Linux.Conf.AU 2017 — https://t.me/technologique/957 — оказался весьма популярен на нашем канале.
Перевод лекции Джорджа Дайсона по его книге "Собор Тьюринга" ("Turing's Cathedral") на конференции Next Berlin 2012 об истории развития вычислительной техники, достижениях Алана Тьюринга и как эти достижения заложили фундамент и повлияли на современное развитие вычислительных технологий.

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

В лекции и в книге (очень советую к прочтению) есть ответ автора (знакомого с историей computer science со времён создания первых компьютеров) на главный вопрос современности - что же всех нас ждёт дальше и куда движется развитие вычислительных систем?

https://habrahabr.ru/post/261033/

Лекция Александра Барда с этой же конференции:
https://t.me/technologique/681
Теперь и кодовая база Windows разрабатывается с помощью Git, инструмента управления версиями кода, изначально созданного Линусом Торвальдсом, автором Linux - Microsoft меняется на глазах! 😁

https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/

Перевод:
https://habrahabr.ru/company/everydaytools/blog/329878/
Простой эксперимент, показывающий, что контейнеризация с помощью Docker порождает определённый оверхэд.

https://www.iron.io/the-overhead-of-docker-run/
Technologique
Простой эксперимент, показывающий, что контейнеризация с помощью Docker порождает определённый оверхэд. https://www.iron.io/the-overhead-of-docker-run/
И ещё одна очень вдохновляющая статья Трэвиса Ридэра, сооснователя Iron.io, из их блога, прекрасно иллюстрирующая экономичность технологии Golang и как с его помощью был преодолён оверхэд Ruby (по памяти и процессорному времени) на самых ранних этапах разработки проектов Iron.io.

https://www.iron.io/how-we-went-from-30-servers-to-2-go/
Большой разговор с Крисом Касперски о технологиях, информационной безопасности, профессии и жизни.

http://blogerator.org/page/evangelie-ot-myshhha-kris-kasperski-intervju-1

http://blogerator.org/page/evangelie-ot-myshhha-kris-kasperski-haker-2

http://blogerator.org/page/evangelie-ot-myshhha-rsdn-kris-kaspersky-3


https://t.me/technologique/833
Группа студентов факультета социологии СПбГУ проводит масштабное исследование для определения рейтинга работодателей IT сферы Санкт-Петербурга и Москвы.

Результаты исследования будут опубликованы в блоге "Моего круга" на Хабрахабре и в группе JUG.RU в VK.

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

Ссылка на форму опроса (на базе исследовательской платформы SurveyGizmo): http://sgiz.mobi/s3/63243b734400

Опрос проводится среди пользователей ресурсов "Хабрахабр" (TechMedia) и "Мой круг", JUG.RU и читателей IT каналов и групп в Telegram и VK.
Technologique
Прямая трансляция с конференции Apple WWDC 2017 https://www.youtube.com/watch?v=hntVmN2aK8k https://www.youtube.com/watch?v=lIMmFzUY2xo https://www.youtube.com/watch?v=ixPIXa1AiY8 С переводом на русский язык: https://www.youtube.com/watch?v=BrsLccII0mE…
Услышал интересное мнение от коллег, что новый MacBook Pro стоит брать как минимум из-за юзабилити трэкпада и тачбара клавиатуры, потому что "такое не поддерживается в Linux" (имелась ввиду поддержка жестов трэкпада в macOS).

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

И юзабилити в Linux дистрибутивах и десктоп оболочках ничем не хуже, чем в macOS на MacBook.

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

Плюс, если у вас сенсорный экран (например от ELAN), то он вероятно уже поддерживается драйверами X.org и Wayland, а GNOME 3 прекрасно поддерживает жесты на сенсорном экране (Debian 9 + GNOME 3 в моём случае).
А если есть трэкпойнт (прецизионный тензометрический датчик на клавиатуре, как в моделях Lenovo ThinkPad и некоторых моделях Dell и HP), то про использование мыши можно вообще забыть (я например перестал пользоваться мышью на ThinkPad).

Работа жестами с Apple Magic Trackpad в KDE с помощью TouchEgg:
https://www.youtube.com/watch?v=1Ek4QaFQ1qo

https://github.com/JoseExposito/touchegg/wiki/Gallery

Как этого достичь? Очень просто.

На данный момент устройства Synaptics и ELAN поддерживаются библиотекой libinput для X.org (xf86-input-libinput, xserver-xorg-input-libinput).

sudo apt-get install arandr x11-touchscreen-calibrator xinput xinput-calibrator xserver-xorg-input-libinput xserver-xorg-input-mouse

К сожалению Synaptics больше не поддерживает разработку драйвера для X.org.
Мультитач драйвер для X.org (http://bitmath.org/code/multitouch/ - xf86-input-multitouch, xserver-xorg-input-multitouch) также не поддерживается для более современных устройств.
Чтобы не возникало конфликтов в приоритете драйверов с libinput - их лучше удалить.

sudo apt-get purge xserver-xorg-input-synaptics synclient xserver-xorg-input-multitouch

https://wiki.archlinux.org/index.php/Libinput

https://wiki.archlinux.org/index.php/Touchpad_Synaptics

Далее нужно установить и настроить по своему вкусу TouchEgg, следуя инструкциям из вики:
https://wiki.archlinux.org/index.php/Touchegg

https://github.com/JoseExposito/touchegg

https://github.com/JoseExposito/touchegg/wiki/How-to-compile-Touch%C3%A9gg-source-code

https://github.com/JoseExposito/touchegg/wiki/All-actions-supported-by-Touch%C3%A9gg

https://github.com/JoseExposito/touchegg/wiki/All-gestures-supported-by-Touch%C3%A9gg

Совместное использование мультитач тачпэда, трэкпойнт на клавиатуре и мультитач дисплея в оболочке GNOME 3 или KDE обеспечивают самое продвинутое юзабилити и пользовательский опыт (user experience, UX), который абсолютно не сравним ни с macOS, ни с Windows 10.

Для GNOME 3 есть отличное расширение для управления всеми устройствами ввода через xinput или gconf:
https://extensions.gnome.org/extension/131/touchpad-indicator/

http://user501254.github.io/TouchpadIndicator/

https://github.com/user501254/TouchpadIndicator
Новое поколение железа для нейросетей и AI - Nvidia Tesla Volta V100, самый дорогой и самый технологически прогрессивный микропроцессор.

https://youtu.be/3aAEKRDhrj8
Дженсен Хуанг, основатель и CEO Nvidia, про закон Мура, его замедление, оптимизацию вычислений на уровне фотолитографии, архитектуры процессора, его инструкций, логики конвейерной обработки инструкций, про следующие поколения процессоров и прогресс в области процессоров GPU, параллелизм на уровне машиных инструкций, оптимизацию компиляторов, технологию CUDA и ускорение вычислений в различных прикладных областях.

https://youtu.be/NmDex7TbceE
concurrent-ruby - библиотека и Си расширение интерпретатора CRuby

Хорошее библиотечное решение для создания сопрограмм и CSP (https://blog.golang.org/share-memory-by-communicating), акторов, высокоуровнего многопоточного и асинхронного программирования на Ruby, заменяющее использование модуля Fibers.

С одной лишь оговоркой - native threads в рамках процесса интерпретатора поддерживаются с версии 1.9, но многопоточное программирование возможно в рамках потока исполнения байт-кода интерпретатором, т.к. GIL в CRuby пока ещё существует и интерпретатор способен исполнять байт-код в разных потоках последовательно, т.е. в один момент времени исполняется/интерпретируется только один поток байт-кода.

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

Это необходимо для исключения доступа нескольких потоков к общей памяти (thread safety, shared mutable state, shared mutable memory) и состояния взаимоблокировки потоков (dead-locks) или гонки (race condition) потоков за доступ к ресурсам одного блока памяти, что порождает утечку памяти, т.к. оба потока активны и GC не освобождает их общую память.

Более того, всё ещё сложнее - GIL присутствует в интерпретаторах скриптовых динамических языков до стих пор ещё и потому, что автоматическое управление памятью, GC и существующий в эталонных интерпретаторах механизм подсчёта ссылок (RC) очень хорошо оптимизированы под однопоточную сборку мусора в куче, но очень плохо проработан механизм подсчёта ссылок в нескольких потоках и многопоточная сборка мусора.

Также блокировка потоков механизмом GIL используется для immutable гарантий доступа к памяти при вызове низкоуровневого кода через FFI API/ABI интерфейсы, например расширений интерпретатора на Си.

JRuby и Rubinius сейчас свободны от GIL.
В JRuby используется модель акторов и Java Threads, модуль Fibers заморожен и удалён в пользу использования Java Threads.
В Rubinius используется своя модель доступа потоков к памяти также на базе механизма акторов.

concurrent-ruby единственная библиотека, гарантирующая thread safety и работающая одинаково во всех интерпретаторах Ruby - CRuby (MRI/YARV), JRuby, Rubinius.

https://github.com/ruby-concurrency/concurrent-ruby

https://ruby-concurrency.github.io/concurrent-ruby/

https://docs.google.com/document/d/1pVzU8w_QF44YzUCCab990Q_WZOdhpKolCIHaiXG-sPw/edit

Ссылки:
http://www.csinaction.com/2014/10/10/multithreading-in-the-mri-ruby-interpreter/

http://merbist.com/2011/10/03/about-concurrency-and-the-gil/

http://merbist.com/2011/10/18/data-safety-and-gil-removal/

http://merbist.com/2011/02/22/concurrency-in-ruby-explained/

https://github.com/mperham/acting_lessons

https://wiki.python.org/moin/GlobalInterpreterLock
CPython, CRuby, CLua, Node.js/V8 - все реализации интерпретаторов для разных языков используют мьютексные примитивы для реализации GIL и управления памятью потоков
Пара классных сайтов с очень полезной информацией для цифровых кочевников и удалённых работников

https://teleport.org/cities/

https://goodcountry.org/index/results