Леонид Павлов. "It specialist's tricks"
14 subscribers
77 photos
7 videos
5 files
59 links
Keep calm, no spam.
Download Telegram
# Что такое ARM64 и AMD64, и чем они отличаются?

ARM64 и AMD64, также известные как Aarch64: ARM architecture, 64-bit и AMD64: EM64T, x86_64 — это архитектуры процессоров.

ARM64 (Aarch64) — 64‑битная архитектура, разработанная компанией ARM Limited. Она используется в процессорах мобильных устройств, серверов, суперкомпьютеров и других вычислительных систем.

Процессоры с архитектурой ARM64/Aarch64:
* обеспечивают более высокую производительность и эффективность по сравнению с 32-битными процессорами;
* поддерживают больший объём оперативной памяти;
* могут работать с 64-битными приложениями и операционной системой.

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

x86–64, AMD64 или EM64T, или x86_64 - 64-х битная версия архитектуры x86, используемая в процессорах Intel и AMD. Она обеспечивает поддержку 64 бит и позволяет использовать более 4 ГБ оперативной памяти на каждом ядре процессора.

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

Процессоры x86_64, в отличие от процессоров ARM64, используют другой набор инструкций и имеют другую архитектуру. Процессоры ARM64 и x86_64 не являются взаимозаменяемыми, и программы, написанные для одного типа процессора, не всегда могут быть выполнены на другом типе процессора.
В последнее время часто наблюдаю, как молодые разработчики сталкиваются с проблемами запуска, казалось бы рабочих, проектов, начатых до 2020 года.

Например:

Есть кроссплатформенный сервис, он себе прекрасно работает и живет, где-нибудь на windows server, или на старенькой Ubuntu, которую админы поднимали еще в "бородатом" 2015 году. И приходит молодой и энергичный разраб, или РП, и начинает ратовать и активно продвигать самые последние версии всех ОС и библиотек. А-ля "почему вы до сих пор работаете на этом старье?". И вот руководство согласовывает потратить пару часов, на то, чтобы перенести сборку и запуск более менее активных проектов, на новые машины, которые подняли админы, с самой последней (естественно последней long-term support) Ubuntu 22.04. Задача по переносу падает на джуна, т.к. "делов то: файлы сделать Ctrl+C -> Ctrl+V и запустилось!".
Но прошел 1 час, затем 2, 3, 8. Уже и пинговал, и curl проверял, но все время получает странные ошибки, связанные с OpenSSL, GSS и др. И вот уже второй день джун пытается открыть порты, изменить код, устанавливать различные версии СДК, но ничего не получается.

Чтож, все дело в том, что относительно старые проекты, зависят от не очень новых библиотек, или имеют конфигурацию, использующие TLS версии 1.0 и 1.1 - которые были удалены в ubuntu 20.04 и 22.04. Существуют различные способы исправления таких ошибок, например установка, или конфигурирование openssl, на использование легаси провайдеров (openssl md4 -provider legacy), или установка библиотек GSS (sudo apt-get -y install libgss-dev) - всё зависит от стека и окружения сборки.

Мораль сей басни такова:
1) закладывайте x2 часы на подводные камни
2) спрашивайте помощи у старших
3) РАБОТАЕТ - НЕ ТРОГАЙ! xD

Извините, я оставлю тут эти хэштеги для удобства:
#истории #ssl #tls
🤩1
Короче говоря, релизнули Mojo.

Это язык программирования для Data Science, от создателей PyTorch и компаний-лидеров в сфере AI-инфраструктуры, и обещают, что его скорость работы в 35 000 раз быстрее python. Если его будут успешно использовать для обработки данных, то и для обучения нейросетей он тоже должен подойти. Вроде уже доступен в JupyterHub.

Если взглянуть на самые популярные области применения python - обучение ИИ, анализ и работа с данными, веб-разработка, скриптинг и автоматизация - то потенциально, Mojo может отобрать примерно 50% хлеба питонистов. Предполагаю, что на этом фоне и общая популярность Python может снижаться.

Хотя с другой стороны это похоже на C++ и C# в свое время, и возможно один из этих языков станет мейнстримом для молодежи, а другой хардкорный для олдов и супер-гиков.

Но лучше не учить питон сейчас, пока есть такая неопределенность, а уйти в более стабильные и менее хайповые языки.
Совершенно случайно наткнулся на диссертацию из UCI, от доктора философии в области информационных и компьютерных наук Roy T. Fielding.
В ней достаточно краткая выжимка по архитектуре REST,
Могу отметить параграф "5.1.6 Layered System", "5.1.7 Code-On-Demand", "5.3 REST Architectural Views". Достаточно много продвинутой информации, для тех, кому хочется большего, но кто уже устал перебирать статьи про REST, в формате "REST - это POST, GET и др."

#dissertation #uci #rest #architecture
🔥2
Вся информация в сети передается в виде пакетов. Поток данных разбивается специальным программным обеспечением на небольшие пакеты и передается через сеть интернет на целевой узел, а там собирается обратно.

Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. Причем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.

#http #how_internet_works
Протоколы передачи данных или сетевого взаимодействия - определяют "кто", "кому", "что", передает. Самые распространенные протоколы в web - http/https, ftp, rdp, imap, pop3 и др.
Но они работают в верхнем слое, над более низкоуровневыми TCP и UDP.

TCP:
Протокол с подтверждением получения. Т.е. формируемый пакет данных, по аналогии с посылкой в реальном мире, отправляется курьером, с доставкой на дом. Курьер приносит посылку, и получает от вас подпись о получении, которую возвращает отправителю. Если получателя не было дома, посылка оставляется у двери, но потом курьер везет новую посылку позже, до тех пор, пока получатель не окажется дома, и не подтвердит получение. Так и осуществляются DDOS атаки, когда курьеры привозят фуры посылок, без ожидания подтверждения их получения, а получатель просто не успевает все распаковать и определить какие из них полезные, а какие от мошенников.
Т.е. когда нам важно знать, что информация точно доставлена.
Обычно используется при:
- Отправке почты.
- Отправке файлов (обычно файлы слишком большие для одной посылки, и они дробятся и отправляются по частям).
- Загрузка веб-сайтов.

UDP:
Протокол без подтверждения получения. Курьер просто приносит вам посылку и оставляет у двери, требует меньше времени из-за отсутствия подтверждения получения и возврата к отправителю, и можно подвозить сразу несколько посылок подряд, разными курьерами.
Используется в:
- Потоковых передачах данных.
- Видео и аудио трансляциях.
- Видеозвонках.

Теперь вы можете понять анекдот про эти протоколы:
- Я знаю неплохой анекдот про UDP, но не факт, что он до вас дойдёт.
- Я знаю неплохой анекдот про TCP, но если он до вас не дойдёт, то я повторю

#how_internet_works #tcp #udp
👍1
Ts-node — это механизм выполнения TypeScript для Node.js. Он преобразует TypeScript в JavaScript в памяти без записи на диск. Это позволяет напрямую запускать код TypeScript в Node.js без предварительной компиляции.

Так-же имеются примеры использования через shebang. По сути, это кросс-платформенные скрипты на JS/TS, которые могут заменить shell, batch и даже python скрипты.

Установка.
- Установите ts-node глобально с помощью команды npm install -g ts-node.
- Если необходимо, установите компилятор TypeScript отдельно: npm install -g typescript

Запуск скрипта.

- Чтобы запустить скрипт main.ts, выполните команду ts-node main.ts

Использование REPL.

- Чтобы получить доступ к REPL, запустите команду ts-node без аргументов.

Оптимизация.

- Если вас не беспокоят ошибки, вы можете передать флаг -T или --transpileOnly. Тогда ts-node будет выполнять транспиляцию в JavaScript без проверки ошибок в коде TypeScript.

Дополнительные возможности.

- Ts-node предлагает поддержку TypeScript REPL, что позволяет писать TypeScript прямо в командной строке. Это удобно для быстрого тестирования чего-либо.

#js #ts #nodejs
GigaCode — это ИИ-ассистент от «Сбера» для разработчиков. Ранее он был доступен только для внутренней команды, но с начала 2024 года его могут использовать сторонние разработчики. 

Что делает GigaCode:
* Дополняет код в режиме реального времени. Сервис анализирует уже написанный код и предлагает наиболее подходящие варианты продолжения — функции, циклы, условия и т. д.. 
* Поддерживает 15+ языков программирования, включая Java, Python, JavaScript, C++, C# и др.. 
* Генерирует код с нуля — пользователь вводит комментарии и описание логики, а GigaCode делает всё остальное. 
* Осуществляет семантический поиск по кодовой базе — интеллектуальный поиск нужных фрагментов кода. 
* Ищет уязвимости — бот выделяет и исправляет распространённые ошибки в коде. 
* Предлагает способы улучшения существующего кода. 

По результатам исследования, проведённого на большом объёме протестированного кода, GigaCode опережает:
* Copilot на 2 % в области генерации подсказок с более низкими порогами совпадения; 
* Codeium на 3 %; 
* TabNine на 6,5 %. 

#news
Видел статью про выход крутого опенсорс UI фреймворка MagicUI на React, Tailwind и Framer. Посмотрел пару статей, выглядит интересно. Может перейду на него, вместо старенького Antd. (Да, я скатываюсь в JavaScript, очень уж чувствуется свобода по сравнению с C#)

Вот пара статей с примерами кода технологий, отдельно от фреймворка:
🔵Building a Beautiful Product Onboarding 👋 with Next.JS , Framer Motion, and Tailwind CSS
🔵Advanced page transitions with Next.js and Framer Motion
Please open Telegram to view this post
VIEW IN TELEGRAM
⚠️ Docker hub перестал работать в России ‼️

При открытии сайта появляется надпись

403 Forbidden
Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countries, or regions and are blocked, please reach out to https://hub.docker.com/support/contact/


С VPN доступ открывается. При этом из wsl2 образы не скачиваются даже с включенным VPN.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ поддержки докера: САНКЦИИ ⚰️ press F 👍

Hi there,

Thank you for contacting Docker Support.

At this time we are no longer doing business with Russian or Belarusian companies and have removed the ability to purchase subscriptions from these countries.
https://www.docker.com/blog/dockers-response-to-the-invasion-of-ukraine/

Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Russia, Iran, North Korea, Republic of Crimea, Sudan, and Syria.

Best regards,
Docker Support
Please open Telegram to view this post
VIEW IN TELEGRAM
Временное решение с зеркалами:
🔵В файле /etc/docker/daemon.json
"registry-mirrors": ["https://mirror.gcr.io", "https://daocloud.io", "https://c.163.com/", "https://registry.docker-cn.com"]
Please open Telegram to view this post
VIEW IN TELEGRAM
image_2024-05-29_11-21-26.png
161 KB
Kolmogorov-Arnold Networks (KAN).
Новая архитектура нейронной сети, представленная учёными из Массачусетского технологического института, Калифорнийского технологического института и Института ИИ и фундаментальных взаимодействий. Идея KAN основана на глубоких математических принципах, а именно на теореме об аппроксимации Колмогорова-Арнольда.

Источник cnews