Technologique
656 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
Масштабируемость характерна не только для server-side back-end, но и для client-side front-end приложений в клиент-серверной архитектуре, не только для железа, но и для всех типов сложных приложений, требующих разделения на компоненты и использующих архитектурные шаблоны при проектировании.

В client-side front-end SPA, scalability - это характеристика гибкости оптимизации архитектуры приложения для дальнейшего его роста и развития, и для оптимизации скорости работы интерфейса и расхода памяти браузерным движком.

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

Сложность интерфейсов растёт, поэтому архитектурные изменения в концепциях фреймворков это требование времени и оптимизации интерфейсов.
В Facebook после редизайна интерфейса от многочисленного плохо скомпонованного JavaScript кода, реализующего элементы интерфейса, сам интерфейс соцсети тормозил (стена, лента новостей), поэтому они сделали фреймфорк (библиотеку) React с компонентной архитектурой, чтобы в каждом представлении (view) интерфейса включались и работали свои компоненты.

Cравните компонентную архитектуру SPA приложений на React (которую проектируете вы сами) c фронт-энд фреймворками предлагающими каркас архитектуры - MVC (Angular), MVVM (Ember), MVP (Backbone), и т.д.
Главное преимущество React это гибкость разрабатываемой архитектуры каждого SPA приложения, отсюда и их масштабируемость (scalability).
Эти же концепции, свободно проектируемой масштабируемой архитектуры SPA приложений и интерфейсов, продвигают Vue.js и Polymer.
Поэтому React.js, Vue.js и Polymer скорее библиотеки, чем фреймворки - пропагандируется DRY, повторное использование кода, но не каркас архитектуры.

https://youtu.be/M5WySjinAT4

@technologique/885
https://www.youtube.com/watch?v=uCaYkUmdtPw

Yehuda Katz (https://twitter.com/@wycats) - автор пакетного менеджера и сборщика проектов Cargo (https://crates.io) для экосистемы пакетов языка Rust, фреймворка Ember.js, шаблонизатора Handlebars.js и других многих проектов (более подробно - http://yehudakatz.com/projects/), а также Core Team Member проектов библиотеки jQuery, фреймворка Ruby on Rails и самого проекта языка Rust.

На мини-конференции компании Code Genius он очень толково рассказал о концепциях языка Rust. 👍
Очень интересно про scope based RAII (automatic destructors) для автоматического управления памятью без GC, про borrow ownership checker и его связь с actor based concurrency, и про создание примесей (mixins) через композицию трейтов в Rust.
Roman Kononov
https://stackoverflow.com/research/developer-survey-2016
StackOverflow опубликовали результаты исследования опроса разработчиков на 2017 год. Опрос проводился с 12 января по 6 февраля 2017 года.

http://stackoverflow.com/insights/survey/2017

https://stackoverflow.blog/2017/03/22/now-live-stack-overflow-developer-survey-2017-results/

Исследования предыдущих лет можно найти на странице http://stackoverflow.com/insights/survey/

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

Всего в исследовании приняли участие 64227 респондентов из 213 стран, из которых были использованы (прошли ценз и были достаточными для корректности статистики) ответы 51392 респондентов.

http://stackoverflow.com/insights/survey/2017#methodology

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

Уже второй год подряд Rust (https://xn--r1a.website/technologique/892) оказывается самым любимым разработчиками языком. 👍

http://stackoverflow.com/insights/survey/2017#technology-most-loved-dreaded-and-wanted-languages

http://stackoverflow.com/insights/survey/2016#technology-most-loved-dreaded-and-wanted

Тем не менее для многих разработчиков Rust остаётся языком выходного дня для pet проектов и в промышленной разработке распространённость Rust пока небольшая.

https://stackoverflow.blog/2017/02/07/what-programming-languages-weekends/

https://medium.com/@hoffa/the-top-weekend-languages-according-to-githubs-code-6022ea2e33e8

http://www.opennet.ru/opennews/art.shtml?num=46033

Некоторые вопросы оказались весьма забавны, например, можно ли использовать шумную клавиатуру (шумную мышь?) в офисе или co-working пространстве? 😆

http://stackoverflow.com/insights/survey/2017#work-can-a-developer-whos-sharing-an-office-use-a-noisy-keyboard

Вспомнился анекдот:
- Коллега, у вас мышь громко щёлкает.
- Коллега, а вам не мешает шум в моей голове при её работе? 😅


#StackSurvey17
#StackSurvey
Technologique
https://www.youtube.com/watch?v=uCaYkUmdtPw Yehuda Katz (https://twitter.com/@wycats) - автор пакетного менеджера и сборщика проектов Cargo (https://crates.io) для экосистемы пакетов языка Rust, фреймворка Ember.js, шаблонизатора Handlebars.js и других многих…
https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1160-2017-03-16

https://blog.rust-lang.org/2017/03/16/Rust-1.16.html

16 марта был выпущен релиз Rust 1.16.
В сборщик Cargo добавили команду cargo check для проверки корректности кода проекта без его сборки и компиляции.
Сейчас ведётся работа по оптимизации и ускорению условной и раздельной компиляции, для компилятора и его инструментария, сборщика Cargo, что очень сильно ускорит процесс создания скомпилированных исполняемых бинарных файлов даже для очень больших проектов.
Условная компиляция (conditional compilation) в Rust реализована через директивы компилятора (#[cfg], https://doc.rust-lang.org/book/conditional-compilation.html) в исходных текстах.
В сборщике cargo и компиляторе rustc изначально реализована раздельная (модульная) компиляция (separate compilation), на основе проверки изменеий трейтов/интерфейсов (trait) для типов и описаний/имплементаций их реализации (impl) в модулях (mod) крэйтов (crate - контейнер, пакет, библиотека).
Если изменяется интерфейс трейта, поля и методы его имплементации impl, то производится перекомпиляция модуля содержащего эти трейты и имплементации со сборкой модулей в crate контейнер (который можно опубликовать в репозитории пакетов https://crates.io), в ином случае производится сборка уже скомпилированных объектных файлов модулей, без перекомпиляции, что оптимизирует и ускоряет сам процесс компиляции значительно.
Всё это очень похоже на концепции модульной раздельной компиляции в Modula-2 и Oberon-2, а также в OCaml, на котором изначально был написан компилятор Rust до стадии его бутстраппинга.
В Go используется тот же принцип раздельной компиляции для структурного программирования, также взятый из Oberon-2 и Modula-2, что обеспечивает рекордно быструю компиляцию, даже для очень крупных проектов (типа Docker, Juju и Kubernetes) и без применения кластерной распределённой компиляции (распределённых компиляторных фабрик на кластерных фермах).
Британский энтузиаст NODE собрал весьма интересный портативный компьютер Zero Terminal на базе Raspberry Pi Zero W.

Для сборки помимо одноплатного компьютера Zero W (W - модификация с беспроводным контроллером wifi/bluetooth) он использовал чехол слайдер с Bluetooth клавиатурой, 3.5" дисплей и батарею на 1.5 Ah, поместив всю аппаратную часть в корпусе, распечатанном на 3D принтере, с отверстиями для стандартных разъёмов (Mini HDMI, USB, Micro SD) одноплатного компьютера.

У меня этот девайс вызвал ностальгию по временам Nokia N900. 😁

https://youtu.be/YWlZ3B_hq_g

https://n-o-d-e.net/zeroterminal.html

Ещё пара интересных разработок автора:
https://youtu.be/hqG8ivP0RkQ

https://youtu.be/aZc5gUKcRZA

https://youtu.be/NMkhRK2lV0E


#DIY
Technologique
Вчера я писал про проект Ruby+OMR и что не вижу особого смысла переделывать существующие Ruby и Python для ускорения исполнения выдаваемого их интерпретаторами кода - они и так сами по себе как языки достаточно хороши, а попытки как-то встроить динамические…
Нагрузочное тестирование производительности и многопоточности в языках пограммирования и application серверах приложений при обработке http запросов.

https://github.com/costajob/app-servers#results

Crystal, Rust и Go себя показали очень хорошо по всем параметрам - максимальным rps, минимальным задержкам ответа, многопоточности и главное, минимальному расходу памяти.
Но в продакшн системах у Go и Crystal memory footprint будет выше, чем у Rust, из-за наличия GC (на личном опыте).
Nim полностью загрузил на 100% одно ядро, отработал в один поток асинхронно, с не очень высоким rps и высокими максимальными задержками ответов, но минимальным расходом памяти.
Crystal развивается быстрее Nim.
В Cystal уже с версии 0.21 есть CSP многопоточность, подобная модели многопоточности Go - thread-pool с fibers/green threads, управляемые через каналы, и M:N mapping'ом на системные треды через minimal GC runtime - и GC с минимальными latency при подсчёте указателей и сборке мусора.

https://crystal-lang.org/docs/guides/concurrency.html

https://crystal-lang.org/2017/02/24/state-of-crystal-at-0.21.html

Веб-фреймворк Kemal уже использует встроенную в Crystal CSP многопоточность.

https://twitter.com/sdogruyol/status/833369972919382019

В этом году проекту языка Crystal исполняется пять лет и к концу года планируется довести его до релизной версии 1.0.

https://crystal-lang.org/2016/12/29/crystal-new-year-resolutions-for-2017-1-0.html

https://github.com/crystal-lang/crystal/wiki/Roadmap

Nim пока что далеко не production ready - язык отличный с обширной stdlib, но разработка движется крайне медленно.
https://youtu.be/EI-tGVFg7PU?t=42m30s

https://youtu.be/bqUIX3Z4r3k?t=58m25s

Технология вертикальной посадки многоразовых ракет есть не только у SpaceX, но и у компании Blue Origin Джеффа Безоса (основателя и владельца компании Amazon).
Но их ракеты New Shepard значительно меньше по длине и массе, чем Falcon-9, а полёты пока суборбитальные со спуском ракеты с малых высот (~100 km).
Но у ракеты и капсулы New Shepard есть свои преимущества. Двигатели BE-3 ракеты New Shepard работают на смеси жидкого водорода и жидкого кислорода (окислитель для поддержания горения в безкислородной среде), что обеспечивает очень чистое горение в атмосфере Земли (см. видео старта) и бОльшую экологичность выбросов продуктов горения.
Такая же топливная смесь использовалась в центральном разгонном блоке системы Space Shuttle.
Сама же капсула имеет механизм с возможностью экстренного отделения от ракеты на любой высоте для спасения экипажа при чрезвычайной или аварийной ситуации с разгонным блоком первой ступени ракеты.

https://youtu.be/bqUIX3Z4r3k?t=52m10s

https://youtu.be/3r6r0eglKPo

https://youtu.be/N5i-f-D_A-M

https://youtu.be/TgjIYVUfkE4

Нужно отметить, что система New Shepard создавалась для вывода экипажа на околоземную орбиту и его доставки на МКС.
Для вывода спутников и доставки полезных грузов на/с МКС будет использоваться другая модификация капсулы и ракета New Glenn.

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

#Space
Статья о том, что не так с JavaScript и почему он до сих пор применяется и используется настолько широко.

https://dev.to/walker/javascripts-persistent-popularity-no-one-seems-to-particularly-enjoy-the-language-but-everyone-is-using-it

JavaScript настолько же базовый язык для веб, как Си для системной разработки.
Потому что стоял у истоков всемирной паутины.

Проблема не в самом JavaScript как языке, а в не строгом контроле типов, границ массивов и итерируемых объектов, т.е. в реализации JIT компиляторов и run-time для языка.
Производители движков (V8, SpiderMonkey) не полностью следуют стандартам ECMAScript.

Надеюсь стандарт ES2017 приведёт к общему знаменателю и уравняет все реализации run-time для JavaScript, хотя бы пару основных, V8 и SpiderMonkey.
Switch house!

http://i.imgur.com/cwVYQNT.jpg

Патч-панель... Коммутатор! 😁😂👍
Technologique
Скачать последнюю сборку от разработчиков тестовой бета версии клиента Telegram для Android с поддержкой аудио звонков можно по ссылке: https://rink.hockeyapp.net/apps/dc3b3c6317af4a3caa5269a58697e088 Перед установкой в главном меню Android выберите подменю…
Звонки официально запущены в продакшн бэкэнде Telegram!

Уже доступны обновления официальных клиентов Telegram v3.18!

We're starting to roll out Voice Calls: secure, crystal-clear, constantly improved by machine learning

https://telegram.org/blog/calls

На самом деле географических ограничений на возможность совершения звонков нет (как написано в блог посте - сначала звонки запустили для Западной Европы) - звонки как и в бета версии с тестовым бэкэндом включаются в клиенте по эстафете "инвайтов", т.е. по звонку от человека у которого уже есть возможность звонить.
Звонки станут доступны всем в течение этих суток.

https://xn--r1a.website/technologique/855
https://xn--r1a.website/technologique/899

В апреле звонки появятся и в десктопной версии клиента Telegram:
https://twitter.com/telegram/status/847417578150428675

https://twitter.com/durov/status/847454932257001477

PS: Ждём с нетерпением видеозвонков! 😉
В Signal, WhatsApp и Viber они уже есть давно.
https://xn--r1a.website/technologique/741
Technologique
Сегодня мировая премьера фильма Ghost In The Shell https://youtu.be/msUF-nAe9uw https://xn--r1a.website/technologique/605
Кинопоиск опубликовал интересное обзорное видео по жанру киберпанк:

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

Но обзор не самый полный - нет классического фильма Трон и современной версии Трон:Наследие.

Наша колекция фильмов по IT тематике и жанру киберпанк:
https://telegram.me/technologique/304

Также N+1 опубликовали интересный тест по фильмам жанра киберпанк:
https://nplus1.ru/news/2017/03/30/cyberpunk

Материалы нашего канала по теме:
https://xn--r1a.website/technologique/605
https://xn--r1a.website/technologique/611
https://xn--r1a.website/technologique/653
https://xn--r1a.website/technologique/904

#киберпанк
#cyberpunk
Прямая трансляция SpaceX запуска миссии SES-10

Начало трансляции через 3 часа.

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

SES-10 Technical Webcast:
https://www.youtube.com/watch?v=xfNO571C7Ko

SES-10 Hosted Webcast:
https://www.youtube.com/watch?v=xsZSXav4wI8


#SpaceX
#Space
Technologique
Звонки официально запущены в продакшн бэкэнде Telegram! Уже доступны обновления официальных клиентов Telegram v3.18! We're starting to roll out Voice Calls: secure, crystal-clear, constantly improved by machine learning https://telegram.org/blog/calls …
Исходный код мобильных клиентов с последними наработками по звонкам и прочему функционалу наконец-то открыт после полугода оффлайн разработки без коммитов кода в GitHub репозитории.

https://twitter.com/durov/status/847759869201571840

Android:
https://github.com/DrKLO/Telegram

iOS:
https://github.com/peter-iakovlev/Telegram

Скоро возможности звонков появятся и в сторонних клиентах, номер Plus Messenger:
https://xn--r1a.website/plusmsgr/173

Также сегодня был серьёзно обновлён десктопный клиент, в который были добавлены необходимые настройки, присутствующие в мобильных клиентах, например возможность смены номера телефона.
https://xn--r1a.website/desktop/40

В апреле звонки появятся и в десктопной версии клиента Telegram:
https://twitter.com/telegram/status/847417578150428675

https://twitter.com/durov/status/847454932257001477