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
Будучи в Китае, в Шеньчжене и Гонконге, понимаешь, почему в Юго-Восточной Азии так популярен Golang.

Технологический масс-маркет и нагрузки на системы будут только расти.

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

Есть большой пласт систем, критичных к скорости исполнения, time critical, real time и mission critical систем.
Мы их обычно даже не замечаем в повседневной жизни, погрузившись в интернет. 😆
До тех пор пока что-нибудь начинает идти не так.
И я уже не говорю про управление ракетами, самолётами, спутниками, бортовые системы, оборонные и военные системы, в которых время реакции и надёжность критически важны.
Я задумался про гражданские системы.
И это не только обеспечение связью, банковские, экономические системы, трейдинговые платформы, транспортные, энергетические системы, где так же критически важны время реакции и надёжность.
Сейчас появляется всё больше отраслей в IT - driverless cars, дроны, коптеры, персональный наземный и воздушный транспорт, автопилоты, IoT, умная городская среда, умные дома, носимая электроника, даже появился термин "подключенная реальность", "подключенный мир", "всеобщие коммуникации", потому что скоро грядёт 5G с гигабитными скоростями.
Huawei заявляет о первых внедрениях систем связи пятого поколения уже в 2017-2018 году в Китае.
Будет всё больше устройств, подключенных к облачным системам.
Мы всё больше зависим в своей жизнедеятельности от электронных программируемых систем.
И в таком мире будущего нет места задержкам в исполнении и большому времени реакции систем.

Я думаю, что надёжное многопоточное системное и сетевое программирование будут только набирать популярность.

PS: Изучайте Rust друзья! Rust силён!
Чувствую позиции C++ скоро будут сильно потеснены.

https://github.com/redox-os/redox
#Generics in Go

Pass interfaces

Generic functions can easily be written - this require the caller to use variables of the empty interface type. The empty interface can hold a value of any type.


package main

import "fmt"

func swap(a, b *interface{}) {
*a, *b = *b, *a
}

func main() {
var a, b interface{} = 3, "four"
fmt.Println(a, b)
swap(&a, &b)
fmt.Println(a, b)
}


Output:

3 four
four 3


В интернетах только и разговоров, что об отсутствии дженериков в Go...
В Go нет дженериков?
Зато есть ещё более шикарный хак!
Обобщённые типы для функций/методов и их параметров могут создаваться через пустые интерфейсы, которые могут содержать значения любого типа.
При этом параметры в обобщённую функцию передаются по ссылке, интерфейсы передаются через указатели и все операции с интерфейсами и параметрами происходят через указатели.
Таким образом вся реализация дженериков сводится к операциям через указатели с переменными, тип которых определён пустыми интерфейсами, т.е. всё сводится к операциям с интерфейсами!

Интерфейсы и модули - это сила структурного программирования!
Technologique
Отличное приложение 👍 Позволяет читать и тестировать данные бесконтактных карт (Visa PayWave, MasterCard PayPass, American Express ExpressPay) в режиме pos-терминала через NFC в смартфоне https://play.google.com/store/apps/details?id=com.github.devnied.emvnfccard…
Исходники Java библиотеки NFC/EMV (https://en.wikipedia.org/wiki/EMV) ридера бесконтактных платёжных карт.

https://github.com/devnied/EMV-NFC-Paycard-Enrollment

Весьма полезная библиотека при создании Android приложений мобильного банкинга, использующих NFC для эмуляции виртуальных карт и оплаты с помощью смартфона с запущенным приложением.
Яркий пример - приложение Яндекс.Деньги.
Счастливого Нового Года друзья! 🎄🍊🍾🎊🎉
Technologique
MX Player-ом или VLC открываешь и смотришь на город Бишкек 😄👍 http://iptv.saima.kg/hls-cam/alatoo.m3u8 http://iptv.saima.kg/hls-cam/berengold.m3u8 http://iptv.saima.kg/hls-cam/chui-ibraimova.m3u8
А тем временем в Кыргызстане и в его столице, городе Бишкек, все празднуют наступление Нового 2017-го года! 😄
"Интернет революция" - лекция и интереснейшее выступление Александра Барда на конференции Next-2012 в Берлине.

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

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

https://youtu.be/E5Ko8NVx82A - в переводе на русский язык

https://youtu.be/hRqvd2bo_OI - оригинал на английском языке

Александр Бард - классный музыкант и продюсер, создатель нескольких знаменитых и широко известных европейских музыкальных synth-pop групп, Army of Lovers, Alcazar, Vacuum, Bodies Without Organs, Gravitonas, а также сооснователь звукозаписывающей компании Stockholm Records и отличный писатель-социолог.
Совместно с писателем Яном Зодерквистом написал серию книг по социологии и философии в эпоху интернет и информационного общества - Синтеизм (Syntheism, 2014), трилогия Футурика (The Futurica Trilogy, 2012), состоящая из трёх книг, Нетократия (The Netocrats, 2000), Глобальная Империя (The Global Empire, 2002), Тело Машины (The Body Machines, 2009).
Книги переведены на русский язык - советую прочитать каждую из них. 👍
Technologique
Channel created
С Рождеством друзья!
Каналу исполнился один год!
🎄🍊🍾🎊🎉
Forwarded from addmeto
Все вы уже наверняка прочитали, но Atlassian купил Trello. Хорошо что у трелло уже есть много конкурентов, а то все, за что берётся Атласиан превращается в джиру http://www.forbes.com/sites/alexkonrad/2017/01/09/atlassian-acquires-popular-team-productivity-app-trello-for-425-million/
Крис Лэттнер (Chris Lattner), основатель проекта LLVM, автор языка программирования Swift, покинул Apple и перешёл в Tesla Motors на должность Vice President of Tesla Autopilot Software

https://www.tesla.com/blog/welcome-chris-lattner
Forwarded from Spalmalo Tech Talks
Часто вижу как люди без OSX страдают с посредственными сервисами/приложениями менеджмента паролей. Попробуйте https://www.passwordstore.org

Менеджер паролей по линукс философии
Spalmalo Tech Talks
Часто вижу как люди без OSX страдают с посредственными сервисами/приложениями менеджмента паролей. Попробуйте https://www.passwordstore.org Менеджер паролей по линукс философии
Утилита pass спользует gpg для шифрования файлов, в которых хранятся чувствительные данные и пароли.
Для управления версиями файлов может использоваться git.
Для утилиты pass, есть простое, но очень классное GUI приложение, написанное на Go.

https://github.com/cortex/gopass

Идеология Unix, самостоятельные утилиты для выполнения конкретных задач - это удобно, отлаживаемо и автоматизируемо скриптами, и поэтому это правильная концепция.
В свою очередь раздельное хранение паролей и данных в отдельных зашифрованных файлах, защищённых контейнерах - это более безопасно, чем например хранение всех данных от разных ресурсов в одном зашифрованном xml файле, как это реализовано в KeePass.
Сегодня был выпущен первый релиз версии 1.0 десктопного клиента Telegram.

https://telegram.org/blog/desktop-1-0

Консервативная аудитория Telegram очень скептически отнеслась к текущему обновлению десктопного клиента, в первую очередь к его внешнему виду.
Однако если вам не понравился внешний вид - просто поставьте тему из официального канала @themes - внешний вид клиента теперь весьма кастомизируемый и это очень круто! 🤘😁
https://opennet.ru/opennews/art.shtml?num=45832

Если уже Эрик Рэймонд, имея многолетний опыт разработки, решил отказаться от небезопасного программирования на Си в пользу Rust или Go, для перевода на один из этих языков кодовой базы резидентного демона NTPsec, реализующего критичный к задержкам (GC latency) обработки сетевых пакетов протокол сетевого времени NTP - это сильно!

Более конкретно, Рэймонд упоминает проблемы, вызванные выходами за границы буфера и висячими указателями (wild pointers), заявляя, при этом, что он готов отказаться от C, несмотря на всё то время, которое он с 1983 года и по сей день вложил в изучение C со всеми его нюансами, поскольку сегодняшние высокие требования к безопасности продолжают расти, пришла пора перейти на новый уровень и снизить частоту появления ошибок.
Сегодня состоялся запуск ракеты Falcon-9 и доставка первого спутника Иридиум на орбиту для обновления орбитальной группировки со спуском и приземлением первой ступени на морскую платформу.

https://youtu.be/tTmbSur4fcs?t=37m

Второй точный лэндинг первой ступени Falcon-9 на морскую платформу - это абсолютно круто!
Ребята из SpaceX молодцы!
😄👍

https://youtu.be/tTmbSur4fcs?t=37m
Первый точный лэндинг первой ступени Falcon-9 на морскую платформу.

https://youtu.be/sYmQQn_ZSys
Сводные цифры по количеству модулей в репозиториях пакетов популярных языков программирования.

http://www.modulecounts.com
https://tobi.rocks/2017/01/whatsapp-vulnerability-bug-or-backdoor/

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

https://www.theguardian.com/technology/2017/jan/13/whatsapp-backdoor-allows-snooping-on-encrypted-messages

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

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

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

Facebook был уведомлен о проблеме ещё в апреле прошлого 2016 года, но уязвимость до сих пор остаётся не исправлена. 

https://tobi.rocks/2016/04/whats-app-retransmission-vulnerability/

Напомню WhatsApp использует модифицированную версию XMPP сервера ejabberd для реализации своего протокола FunXMPP (https://github.com/mgp25/Chat-API/wiki/FunXMPP-Protocol), при этом сообщения с недавних пор шифруются криптометодами протокола Signal, который инкапсулирован в FunXMPP и используется как надстройка над ним для шифрования сообщений и обмена ключами.

Буквально недавно был опубликован тест - исследование мессенджеров, которое также рассматривает и смену ключей со стороны сервисов и клиентских приложений.

https://medium.com/@pepelephew/a-look-at-how-private-messengers-handle-key-changes-5fd4334b809a

В статье также весьма поверхностно поизводится анализ безопасности мессенджера Telegram.
Secret Charts в Telegram достаточно безопасны для передачи чувствительной информации (но дополнительная обработка текста средствами gnupg никогда не помешает 😉).
В Telegram ключи вырабатываются клиентскими приложениями при создании секретной чат комнаты, после чего производится обмен публичными ключами по p2p протоколу.
В такой секретной чат комнате история сообщений не сохраняется в облаке - обмен данными производится по peer-to-peer протоколу с сильным end-to-end ассиметричным шифрованием передаваемых данных.
При том в приложении-клиенте Telegram даже заскринить ключ нельзя стандартными системными средствами.
В документации протокола mtproto об этом сказано. То же самое подчёркивает Павел Дуров (@durov) в своём комментарии к статье в Twitter (https://mobile.twitter.com/durov/status/820963437241057281).

А уведомления мессенджера WhatsApp о смене ключей шифрования в переписке, включаемые в настройках клиента, считаю были сделаны просто для отвода и замыливания глаз от проблемы существующего в мессенджере WhatsApp бэкдора - ключи для крипточата должны быть выработаны лишь один раз для одного клиента на одном устройстве, как это сделано в секретных чатах Telegram. Весь обмен данными должен происходить строго p2p между клиентскими приложениями с сильным e2e шифрованием.
В иных случаях, даже при благих намерениях - сохранение истории, гарантированная доставка, смена устройства, переустановка приложения клиента - чат считается скомпрометированным.