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
Перевод лекции Джорджа Дайсона по его книге "Собор Тьюринга" ("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
Комьюнити форк оболочки Unity 8, проект конвергентного графического окружения рабочего стола Yunit доступен для Debian Sid (unstable) и будет доступен в скором времени для Ubuntu 16.04 LTS

https://yunit.io/yunit-packages-for-debian-unstable/

https://github.com/yunit-io/yunit
Почему Kotlin достоен внимания и чем он интересен.

https://medium.com/@octskyward/why-kotlin-is-my-next-programming-language-c25c001e26e3

Kotlin язык практический и прагматичный, не академический, выросший из потребностей индустрии разработки на JVM и компании JetBrains, накопившей в этой индустрии огромную экспертизу.

Kotlin comes from industry, not academia. It solves problems faced by working programmers today.

Now there is Kotlin, and with it the last traditional pain associated with the Java ecosystem is gone. You can write code that’s more expressive and more concise than even a scripting language, but with way fewer bugs and with way better performance.

https://try.kotlinlang.org

http://kotlinlang.org/docs/resources.html

http://blog.paralleluniverse.co/2015/06/04/quasar-kotlin/
Как неверный выбор технологий для задачи приводит к значительным финансовым потерям.

О некорректной реализации библиотечных функций в языках программирования для работы с генераторами случайных чисел и к чему приводит слабая система типов языков и слабая проверка типов данных в динамических языках в разработках для финансовой индустрии и криптовалют.

https://medium.com/@octskyward/type-safety-and-rngs-40e3ec71ab3a