STACK MORE LAYERS
2.13K subscribers
76 photos
14 videos
3 files
158 links
Еще один канал в твоем списке, который ты не будешь читать
Author: @alxmamaev
Download Telegram
🙏 Боже храни VSCode - Часть 2🧎

Астрологи объявили неделю восхваления VSCode (но оно и понятно, ведь я перешел из вима).
Удивительно наблюдать какое количество реально рабочих плагинов существуют и совершенно бесплатно!

Если вам приходится писать (или исправлять) cuda kernels, вам захочется их отдебажить, и в VScode есть для этого инструмент от самих Nvidia. Штука супер крутая и позволяет дебажить код не только на хосте, но и на гпушке, прыгать между параллельными тредами, ну в общем реально красота, работает в том числе через ssh.

Очень круто, что есть такие свободные и бесплатные инструменты, которые при этом делают свою работу хорошо!



p.s.
Если кто вас попытается убедить, что в виме много плагинов — он прав, но все плагины работают через жопу, так у меня криво работал даже автокомплит.

https://www.youtube.com/watch?v=gN3XeFwZ4ng
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👏1
🛠 Python C++ debug 🔨

В последнее время чаще занимаюсь отладкой C++ кода совместно с Python.
Написал небольшую статью для себя (чтобы помнить) и для других (чтоы знали)

Как подружить дебаггер VSCode с Python и C++, чтобы он мог дебажить их одновременно

https://alxmamaev.me/posts/vscode-py-cpp-debug/
Имперские нейросети
😁7
🐋 Docker underhood 🐳

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

Один из инструментов, которые стоит освоить не только на уровне использования из командной строки, но и заглянуть "под капот" -- это докер. Для многих людей докер выступает своего рода виртаульной магической машиной, которая делает какие-то классные штуки с изоляцей, а мы радуемся.
Но все куда интереснее! Начать свое ознокомление я рекомендую с видосов LiveOverflow: видос 1, видос 2
Дальше ютуб сам подскажет, что вам смотреть.

------------------------------------
Но сделаю небольшую затравочку.

Сам docker на самом деле состоит из двух программ: dockerd - демон, который крутится в фоне, и docker - cli тулза, которую мы используем в консоли для общения с демоном. Клиент общается с демоном при помощи неименового сокета, что нам позволяет сделать много интересных вещей!
Мы можем создать новый докер контекст, где укажем клиенту, что искать сокет для взаимодействия надо на этом сервере.
Заодно подключимся к этому контексту

docker context create --docker host=ssh://ubuntu@my_remote_server --description="My server" my_remote_server
docker context use my_remote_server


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

docker run -it pytohn:lastest


Также мы можем пробросить докер сокет внутрь контейнера, тогда мы получим возможгность запускать новые контейнеры из контенера. (Но тут важно понимать, что это не будет докер внутри докера, если вы хотите именно такой функциональности, лучше воспользоваться Podman)
👍8🐳41
Вермя просить рекомендации.
Расскажите в комментах про интересные материалы про компьютерные сети, например про iptables, DHCP и прочее, и желательно чтобы это рассматривалось как-то поглубже, для разработчиков, нежели просто пояснялось для рядового пользователя.
🇰🇬 Кыргызстан, Бишкек, Стартапы 🇰🇬

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

В целом звучит как классный запасной финансовый аэродром, который позволит получать и легализовать деньги. И виза по их словам простая: подается онлайн, с минимумом документов.

Все так да не совсем.
Я получил уже два реджекта, по следующей причине: от меня просят нотариально заверенный трудовой договор на русском языке.
В моем случае, прямо скажем, это квест не из простых, поскольку мой работодатель находится в США и никаких представительств в Грузии не имеет. Поэтому, как заключить нотариально заверенный договор никто не знает, так еще чтобы это было на русском языке.

Я попытался спросить это у них по почте, но никаких ответов ни приветов, только визовый центр ответил, что это не их ума дело, пишите в министерство, а министерство молчит.

Выглядит так будто программа рассчитана на то, что люди будут продолжать работать в Сбербанке, а жить в Бишкеке, план, прямо так скажем так себе.

Короче на картинке хорошо, а вот в жизни уже не так все гладко.
1
Как такое только возможно.
Снял квартиру на недельку, чтобы посидеть в Батуми, тем временем проводной домашний интернет невероятно медленный (первая картика).
В тоже время раздача мобильного интернета с айфона лучше многих домашних провайдеров. В чем секрет плохого интернета.... Я подозреваю роутер
Мой бывший коллега Юра продолжает пилить свои проекты
И вот один из них уже показывает результаты.

По сути это некоторый аналог спотлайта или альфреда, но с умом внутри. Если вы хотели попробовать использовать chatgpt в работе или учебе, но не знали как это сделать, cmd + J вам может помочь.

Если вам понравилось, поддержите Юру на Product Hunt и поставьте апвоут
Forwarded from Rebryk Blog
This media is not supported in your browser
VIEW IN TELEGRAM
🎉 Cmd J is live on Product Hunt

Друзья, мы с @theshadowagent запустили наш Cmd J на Product Hunt!

Это Google Chrome расширение, чтобы пользоваться ChatGPT на любой вкладке без лишних копирований текста. Например, выделили текст имейла, выбрали “переписать как нейтив” и жмякнули enter, чтобы подставить результат. Самое прикольное, что я дико подсел на такой UX. Гляди и вам зайдет.

Сегодня очень сложный день для запуска (во всех смыслах), но попробуем затащить 💪🏻

Буду признателен, если сможете поддержать наc апвоутом и оставить доброе слово в комментариях:
https://www.producthunt.com/posts/cmd-j-chatgpt-for-chrome

Если у вас вдруг есть свой канал, то вам от меня ❤️ за репост.

P.S. Если у вас нет аккаунта на PH, то не нужно его заводить для этого случая. Вы не только не поможете, а даже навредите. Такие дела.
Совершенно неожиданным образом с долгим перерывом без постов количество подписчиков выросло до 700 🐈‍⬛!
Будем надеятся, что не боты, хотя зачем им это.

Но раз такое дело, я принес сюда очень полезную штуку которую нашел только-что.


🔉Spotify Pedalboard 🎸

Все еще пользуетесь SciPy и Numpy для обработки аудио? Есть решение по-лучше.
Spotify pedalboard это что-то вроде Adobe Audition, только из питона. Эта штука умеет применять к звуку кучу готовых плагинов вроде реверберации, эха, дисторшена, и много что еще. Быстро удобно и из коробки! Я попробовал, очень понравилось, на много лучше того, что я видел раньше.
(Кстати есть не такие стандартные вещи, например сжимание в mp3 и разжимание обратно, чтобы получить испорченный звук)

А еще оно поддерживает сторонние VST3 плагины! То есть если вашему звуку в работе нужен какой-то специфичный пост процессинг, вы можете нанять проффесионального звуковика, который подберет все нужные плагины и параметры, а вам останется все это импортировать и вбить нужные цифры - ляпота!

А еще: Reads audio files up to 4x faster than librosa.load (in many cases)

https://github.com/spotify/pedalboard
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥4
Audio
🔉Impulse response dataset 📂

Если вы в какой-то момент зададитесь вопросом, а как мне аугментировать аудио данные для задач речи, то наверняка наткнетесь на разные методы вроде добавления шума, реверберации и всего такого. Среди прочих датасетов можете найти так называемые RIR-датасеты, которые содержат room impulse response аудио. Как например этот: https://github.com/RoyJames/room-impulse-responses

И в начале этот датасет может ввести в замешательство, ведь все звуки из датасета будут похожи вот на такие щелчки (прекрепленное аудио).

Не очень понятно как такие использовать для аугментации данных. Вот и я по началу попал в такое замешательство.

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

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


А вот краткий пример как делается применение RIR фильтра:

audio_orig = torch.tensor(librosa.load("audio.wav")[0]).unsqueeze(0)
rir = torch.tensor(librosa.load("rir.wav")[0]).unsqueeze(0).abs()
rir = (rir / torch.norm(rir, p=2)).flip([1])
audio = torch.nn.functional.pad(audio_orig, (rir.shape[1]-1, 0))
audio = torch.nn.functional.conv1d(audio.unsqueeze(0), rir.unsqueeze(0)).squeeze(0)
🔥15👍3
🧑‍💻 Тестики 🪤️️️️️️

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

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

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

НО! Всегда есть проблема соблюдения консистентности, вам жизненно необходимо делать так, чтобы модель на новом супер быстром бекенде выдавала тот же ответ, что и на обычном pytorch. И во время разработки это почти всегда не так, а учитывая размеры моделей и колличество слоев, найти место с ошибкой бывает не просто, приходится глубоко дебажить, чтобы найти злосчастную операцию, которая портит всю малину.

Куда лучше разделить портирование моделей на маленькие части, и для каждой такой части написать тесты, в моем случае тесты очень однотипные -- проверяют на сколько выходы совпадают с оригинальной pytorch моделей.

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

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

Расскажите про ваш опыт использования тестов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
А вы знали что в названии Turkish Airlines буква "C" означаени cyber-security.

Я всякие требования к паролям повидал, но такое! Я представляю как они пришли к этой гениальной и умопомрачительной идее:

Слушайте, как-то много памяти мы тратим на эти пароли, придется выносить их хранения на отдельные сервера.

А может как-то сможем оптимизировать?

А давайте пользователей заставим вводить шесть цифр как пароль, тогда один пароль будет влезать в int32, 32 бита на один пароль! и сколько информации сэкономим!


-----------------
Блиц! Кто угадает парль по картинке? Есть 999999 попыток
😁14🤣5👍1
Продолжаю возиться с TensorRT для ускорения некоторых моделек

Заметил очень странное инженерное решение - указание оси по которой будет производится softmax с помощью битовой маски.

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

И вот мы получаем такие странные куски кода когда softmax.axes = 8 означает софтмакс по четвертой оси..


Ну конечно всегда есть вариант 1<<4, но читаемости это, прямо скажем, не добавляет
🥴10👍5
Спасибо гугл, на сегодня интернета достаточно
😁25🥰5🔥4👍21🤡1🌚1
Кажется это невероятная штука для того, чтобы пытаться разобраться в чужом коде на плюсах.

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

А тут вот сразу все готовенькое
🔥22🌚3
Продолжаю удивляться использованию chat gpt в разработке!

Я даже не особо представляю как бы я это вообще мог бы загуглить в теории. Наконец-то нашлось решение которое способно пояснить сокращения перемнных плюсовиков!
❤‍🔥24👍9🤯2🍌1
🤞 Скрестим пальчики, чтобы дальше не было проблем 🤞

Но кажется в этом году я переезжаю в UK 🇬🇧


You have requested that the decision not to endorse your application be reviewed. The Home Office forwarded your request to Tech Nation and it has reconsidered your application. It has advised that you meet its criteria for Exceptional Promise and I am therefore satisfied that you can be endorsed under the Global Talent category.
🔥68😎12🤡4👍1
Обожаю когда сталкиваются три титана: Нерды, алгоритмы и майнкрафт.
Вы могли никогда об этом не думать, но благодаря тяге людей к исследованию, теперь мы можем узнать ответ на этот вопрос.

https://youtu.be/jpi50LX2Qyk
🔥101👍1