Forwarded from Сиолошная
Основное развлечение сегодняшнего дня — запуск Starship — начинается ровно через час. Через полчаса запустится официальный стрим (в Твиттере, там уже более-менее нормально смотреть, особенно если без VPN), но тем, кому привычнее ютуб, могу порекомендовать рестрим NasaSpaceFlight или любительскую трансляцию от Everyday Astronaut.
Пока всё выглядит благоприятно, дороги перекрыты, а самолёты, с которых ведётся воздушная съемка, уже вылетели.
Напомню, почему запуск очень важен: это будет первая попытка посадки первой ступени (ускорителя) на «руки» пусковой башни. Первая ступень очень дорогая и ценная — на ней установлено 33 двигателя, и сама возможность их возврата и переиспользования существенно влияет на экономику запусков. Даже если корабль (вторая ступень, которая выходит в космос, и в которую помещают полезную нагрузку/космонавтов) никогда не смогут вернуть и посадить— программа Starship всё равно перевернёт космическую индустрию: на орбиту и к Луне можно будет выводить невиданные ранее объемы и массу за копейки.
Никто никогда не пробовал посадить никакую часть ракеты на башню — да посадка и в целом остаётся очень сложной операцией: несмотря на успех программы Falcon, до сих пор нет ни одной коммерческой или государственной программы, которая бы произвела успешный нетестовый орбитальный пуск (в Китае есть несколько стартапов, которые очень стараются, и уже умеют сажать с ~10 КМ) с посадкой.
Самое интересное произойдет на 7й минуте полёта: именно в этот момент должна быть посадка. Однако она может не состояться, если система решит, что что-то не в порядке (например, отказало больше двигателей, чем возможно), или если директор полёта из центра управления примет решение не нажимать кнопку. SpaceX хотят избежать рисков разрушения площадки — ведь в этом случае программу откинет на несколько месяцев назад (особенно критичны пусковой стол и башня).
В прошлом пуске несмотря на отказ 2 двигателей на этапе набора высоты и 1 при снижении ускоритель смог сесть на воду с точностью в полсантиметра (со слов представителя SpaceX). Но вообще даже меньшая точность позволяет выполнить задачу — зазор на ошибку есть.
Будем болеть за успешную посадку🙏 надеюсь, будут суперские кадры подлёта прямо с земли. Ну а если нет — будет бум 😐
===
UPD: о, и да, про ускоритель — это 20-этажная хреновина, которая падает с высоты более 70 километров на скорости больше 3000 километров в час. И вот этому зданию нужно аккуратненько подлететь к башне на ручки.
Пока всё выглядит благоприятно, дороги перекрыты, а самолёты, с которых ведётся воздушная съемка, уже вылетели.
Напомню, почему запуск очень важен: это будет первая попытка посадки первой ступени (ускорителя) на «руки» пусковой башни. Первая ступень очень дорогая и ценная — на ней установлено 33 двигателя, и сама возможность их возврата и переиспользования существенно влияет на экономику запусков. Даже если корабль (вторая ступень, которая выходит в космос, и в которую помещают полезную нагрузку/космонавтов) никогда не смогут вернуть и посадить— программа Starship всё равно перевернёт космическую индустрию: на орбиту и к Луне можно будет выводить невиданные ранее объемы и массу за копейки.
Никто никогда не пробовал посадить никакую часть ракеты на башню — да посадка и в целом остаётся очень сложной операцией: несмотря на успех программы Falcon, до сих пор нет ни одной коммерческой или государственной программы, которая бы произвела успешный нетестовый орбитальный пуск (в Китае есть несколько стартапов, которые очень стараются, и уже умеют сажать с ~10 КМ) с посадкой.
Самое интересное произойдет на 7й минуте полёта: именно в этот момент должна быть посадка. Однако она может не состояться, если система решит, что что-то не в порядке (например, отказало больше двигателей, чем возможно), или если директор полёта из центра управления примет решение не нажимать кнопку. SpaceX хотят избежать рисков разрушения площадки — ведь в этом случае программу откинет на несколько месяцев назад (особенно критичны пусковой стол и башня).
В прошлом пуске несмотря на отказ 2 двигателей на этапе набора высоты и 1 при снижении ускоритель смог сесть на воду с точностью в полсантиметра (со слов представителя SpaceX). Но вообще даже меньшая точность позволяет выполнить задачу — зазор на ошибку есть.
Будем болеть за успешную посадку
===
UPD: о, и да, про ускоритель — это 20-этажная хреновина, которая падает с высоты более 70 километров на скорости больше 3000 километров в час. И вот этому зданию нужно аккуратненько подлететь к башне на ручки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3❤2 2🌚1
Forwarded from Timofeev EV Tales (яПрофи Технологии)
Media is too big
VIEW IN TELEGRAM
Это невероятно! SpaceX поймали 70-метровый ускоритель Super Heavy B12 руками Мехазиллы!
И оно не разнесло весь стартовый комплекс. Какая точность и мастерство!
Вот видео, где подробно рассказывается про все этапы и проблемы ловли бустера.
#starship #starbase #spacex
И оно не разнесло весь стартовый комплекс. Какая точность и мастерство!
Вот видео, где подробно рассказывается про все этапы и проблемы ловли бустера.
#starship #starbase #spacex
❤🔥5🔥2❤1👍1
Martin Kleppmann - Designing Data-Intensive Applications - 2025
Спустя 8 лет выйдет второе издание книги с Кабанчиком. Написано в декабре, но наверное все же в 2026 тогда :)
source
Спустя 8 лет выйдет второе издание книги с Кабанчиком. Написано в декабре, но наверное все же в 2026 тогда :)
Martin Kleppman mentions that in the new edition, there will be more information and focus on cloud services, and some "dead" technologies like Hadoop MapReduce will be omitted.
In general, however, Martin is happy that most of the book is still fundamental knowledge and ages pretty well.
source
🔥13 2
Go Clean Architecture
В go чатах я хейчу абсолютно все репозитории в названии которых есть что-то связанное с "Clean architecture", т.к. в них вижу ошибки. И меня просят скинуть такой репозиторий, где сделано нормально. И т.к. я такой репозиторий ни разу не находил, то когда-то давно решил делать свой.
Пока в планах сделать 2 репозитория:
1. Базовый. В нем будет минимум либ и минимум чего-то умного, а будет только верная работа с зависимостями и слоями
2. Навороченный. В котором будет все то же, что и в базовом, но и всякие свистелки, вроде грейсфул шатдауна и т.д.
Сейчас я делаю второй (навороченный), а потом его урежу до базового. Решил делать в этой последовательности т.к. базовый должен уметь трансформироваться в навороченный, путем добавления в него всего остального. Но если я сперва сделаю базовый, то могу что-то не учесть и он будет изначально сбивающим с толку.
Сейчас навороченный готов где-то на 60%. На мой взгляд в нем еще много что надо доделать, но в нем уже нет тех банальных ошибок, что есть в любых репозиториях, что я видел.
Главное, что сейчас хорошо - это структура проекта (ну кроме отсутствия слоя инфры, но это не сильно страшно пока, потом доделаю). Все зависимости в нужных направлениях идут. Все адаптеры с максимальным cohesion, нет coupling между чем-либо. Красота короче.
В планах еще будет написать что-то вроде FAQ. Где будут ответы на вопросы вроде: "А ГДЕ ПКГ" и т.д.
Вот Github (всё еще альфа версия!)
В go чатах я хейчу абсолютно все репозитории в названии которых есть что-то связанное с "Clean architecture", т.к. в них вижу ошибки. И меня просят скинуть такой репозиторий, где сделано нормально. И т.к. я такой репозиторий ни разу не находил, то когда-то давно решил делать свой.
Пока в планах сделать 2 репозитория:
1. Базовый. В нем будет минимум либ и минимум чего-то умного, а будет только верная работа с зависимостями и слоями
2. Навороченный. В котором будет все то же, что и в базовом, но и всякие свистелки, вроде грейсфул шатдауна и т.д.
Сейчас я делаю второй (навороченный), а потом его урежу до базового. Решил делать в этой последовательности т.к. базовый должен уметь трансформироваться в навороченный, путем добавления в него всего остального. Но если я сперва сделаю базовый, то могу что-то не учесть и он будет изначально сбивающим с толку.
Сейчас навороченный готов где-то на 60%. На мой взгляд в нем еще много что надо доделать, но в нем уже нет тех банальных ошибок, что есть в любых репозиториях, что я видел.
Главное, что сейчас хорошо - это структура проекта (ну кроме отсутствия слоя инфры, но это не сильно страшно пока, потом доделаю). Все зависимости в нужных направлениях идут. Все адаптеры с максимальным cohesion, нет coupling между чем-либо. Красота короче.
В планах еще будет написать что-то вроде FAQ. Где будут ответы на вопросы вроде: "А ГДЕ ПКГ" и т.д.
Вот Github (всё еще альфа версия!)
❤22🥴5👍2🤮2 2 1
Forwarded from Go Alive
Ну что же, по итогам голосования Homelander победил, и его лицо будет встречать читателя и сопровождать к образовательному материалу.
Статья об интерфейсах в Go опубликована на Хабре. Я постарался детально разобрать эту тему и надеюсь, что она будет полезной как для начинающих, так и для опытных гоферов. Приятного прочтения!
Статья об интерфейсах в Go опубликована на Хабре. Я постарался детально разобрать эту тему и надеюсь, что она будет полезной как для начинающих, так и для опытных гоферов. Приятного прочтения!
Хабр
Погружение в интерфейсы Go
Интерфейсы — одна из самых сложных тем для начинающих в Go. Я решил тщательно разобраться с этой темой и одновременно написать эту статью. После прочтения этой статьи вы сможете ответить на следующие...
👍6❤2🔥2🥴2
gofmt
Наткнулся на пост на реддите, и в нем фраза:
I have been professionally programming in Go since 2015. Our team has a codebase of beautiful, dense code written in a style of "one line is one idea".
И потом кусок кода:
и автор ищет какой-то форматтер, я не особо вник и начал сразу читать комментарии. Какое же было мое удивление, когда я понял, что фраза:
была не сарказмом...🚑
Наткнулся на пост на реддите, и в нем фраза:
I have been professionally programming in Go since 2015. Our team has a codebase of beautiful, dense code written in a style of "one line is one idea".
И потом кусок кода:
func Reload() error {
if !isStale() { return nil }
loadLock.Lock(); defer loadLock.Unlock()
info, err := GetInfo(); if err != nil { return fmt.Errorf("error retrieving info: %w", err) }
bs, err = ioutil.ReadFile(CONFIG_FILEPATH); if err != nil { return nil } // Use default
err = json.Unmarshal(bs, &config); if err != nil { return LogErr(err) }
err = something.UpdateFromConfig(info, config); if err != nil { return LogErr(err) }
return nil
}и автор ищет какой-то форматтер, я не особо вник и начал сразу читать комментарии. Какое же было мое удивление, когда я понял, что фраза:
a codebase of beautiful, dense code written in a style of "one line is one idea"
была не сарказмом...
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10🤔1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
💩9🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Генерация message коммитов с помощью ChatGPT api
Репозиторий:
https://github.com/Nutlope/aicommits
Установка и настройка:
1. Создаем тут api ключ и пополняем баланс. $10 должно хватить на очень долго т.к. модель 4o-mini
2. Выполняем
Использование:
Репозиторий:
https://github.com/Nutlope/aicommits
Установка и настройка:
1. Создаем тут api ключ и пополняем баланс. $10 должно хватить на очень долго т.к. модель 4o-mini
2. Выполняем
sudo npm install -g aicommits
aicommits config set OPENAI_KEY=replace_with_your_key
aicommits config set model=gpt-4o-mini
aicommits config set type=conventional
Использование:
git add .
aicommits
ENTRYPOINT и CMD в Docker
Если при запуске из терминала указать дополнительный параметр
1) При использовании entrypoint
он приаппендится к команде:
2) При использовании cmd
он заменит команду:
Можно использовать ENTRYPOINT и CMD например так:
тогда:
1) Если запустить так:
выполнится
2) а так:
выполнится
Если при запуске из терминала указать дополнительный параметр
docker run image_name 5
1) При использовании entrypoint
ENTRYPOINT ["sleep"]
он приаппендится к команде:
sleep 5
2) При использовании cmd
CMD ["sleep"]
он заменит команду:
5
Можно использовать ENTRYPOINT и CMD например так:
ENTRYPOINT ["sleep"]
CMD ["5"]
тогда:
1) Если запустить так:
docker run image_name
выполнится
sleep 5
2) а так:
docker run image_name 10
выполнится
sleep 10
👍11🔥4 2
Скачать видео с YouTube
Долго мучился, как скачать видео с ютуба. Видео качается или со звуком но в плохом качестве или в хорошем, но без звука (ютуб что-то поменял). А само скачивание очень медленное, если качать через всякие savefromnet.
Помогла утилита clipgrab
Скорость большая
Качает 4к со звуком
Долго мучился, как скачать видео с ютуба. Видео качается или со звуком но в плохом качестве или в хорошем, но без звука (ютуб что-то поменял). А само скачивание очень медленное, если качать через всякие savefromnet.
Помогла утилита clipgrab
sudo pacman -S clipgrab
Скорость большая
Качает 4к со звуком
👍8🔥1
Скачать видео с YouTube 2
В комментариях подсказали еще лучше способ:
https://github.com/yt-dlp/yt-dlp (94к звезд!)
Работает полностью из терминала
Поддерживает кроме ютуба еще много чего
Установка:
Запуск:
В комментариях подсказали еще лучше способ:
https://github.com/yt-dlp/yt-dlp (94к звезд!)
Работает полностью из терминала
Поддерживает кроме ютуба еще много чего
Установка:
sudo pacman -S yt-dlp
Запуск:
yt-dlp https://www.youtube.com/watch?v=Px_84vB-2ec
👍8❤3👌1
Хорошая статья про DIP
1. Из нее можно понять, что такое зависимость
2. Что такое сам принцип DIP
3. Почему интерфейсы располагаются в месте использования, а не реализации
https://habr.com/ru/articles/872078/
1. Из нее можно понять, что такое зависимость
2. Что такое сам принцип DIP
3. Почему интерфейсы располагаются в месте использования, а не реализации
https://habr.com/ru/articles/872078/
Хабр
90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции
Зачастую, когда речь заходит про принцип инверсии зависимостей, можно услышать, что инверсия зависимостей (далее DIP) — это что-то там про зависимость от абстракций, и приводятся примеры, где в...
👍7
#книги
Лю Цисинь - Задача трех тел (трилогия)
15.07.2024 - 02.01.2025
Все ищу что-то, что мне понравится также, как Азимов)
В целом неплохо, книги серии вообще не похожи друг на друга, видно, как автор экспериментировал. Моментами было скучно, например, в первой какое-то долгое описание культурной революции в Китае. В третей один герой рассказывал сказки другому, они важные для сюжета, но такие долгие и неинтересные, что хотелось пропустить.
Только в третей книге началось то, что мне нравится больше всего - космос, корабли, физика и т.п. Во второй тоже было, но не так много.
Третья книга с интересными идеями, иногда даже гуглил разное, чтобы разобраться, но это совершенно необязательно для чтения книги, скорее просто книга рождала ассоциацию и я шел гуглить. Надеюсь, когда-нибудь прочитаю книги по физике, чтобы лучше понимать, как работает этот мир :)
Чтобы еще про космос найти..
Лю Цисинь - Задача трех тел (трилогия)
15.07.2024 - 02.01.2025
Все ищу что-то, что мне понравится также, как Азимов)
В целом неплохо, книги серии вообще не похожи друг на друга, видно, как автор экспериментировал. Моментами было скучно, например, в первой какое-то долгое описание культурной революции в Китае. В третей один герой рассказывал сказки другому, они важные для сюжета, но такие долгие и неинтересные, что хотелось пропустить.
Только в третей книге началось то, что мне нравится больше всего - космос, корабли, физика и т.п. Во второй тоже было, но не так много.
Третья книга с интересными идеями, иногда даже гуглил разное, чтобы разобраться, но это совершенно необязательно для чтения книги, скорее просто книга рождала ассоциацию и я шел гуглить. Надеюсь, когда-нибудь прочитаю книги по физике, чтобы лучше понимать, как работает этот мир :)
Чтобы еще про космос найти..
👍11🔥3
Forwarded from Cross Join - канал о разработке (Anton Okolelov)
🌐 HTTP QUERY: новый метод для поисковых запросов
В мире HTTP давно существует проблема с передачей сложных поисковых запросов. Когда разработчику нужно передать большой набор параметров для поиска или фильтрации, у него есть два не самых удачных варианта.
Можно использовать GET и передавать всё в URL:
Но URL дефакто имеет ограничения по длине, а кодирование сложных параметров становится громоздким.
Второй вариант — использовать POST и передавать параметры в теле запроса. Однако POST не предназначен для таких операций: он не кэшируется и не является идемпотентным, что усложняет работу с CDN и повторную отправку запросов.
Именно поэтому появился новый метод QUERY. Он позволяет отправлять поисковые параметры в теле запроса:
При этом QUERY сохраняет все преимущества GET: он безопасный, идемпотентный и кэшируемый. Cочетает поддержку тела запроса с возможностью кэширования.
Метод официально получил статус PROPOSED STANDARD, что означает скорое появление поддержки в браузерах и веб-фреймворках.
RFC: https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/
В мире HTTP давно существует проблема с передачей сложных поисковых запросов. Когда разработчику нужно передать большой набор параметров для поиска или фильтрации, у него есть два не самых удачных варианта.
Можно использовать GET и передавать всё в URL:
GET /feed?q=foo&limit=10&sort=-published&filters[]=status:active&filters[]=type:post
Но URL дефакто имеет ограничения по длине, а кодирование сложных параметров становится громоздким.
Второй вариант — использовать POST и передавать параметры в теле запроса. Однако POST не предназначен для таких операций: он не кэшируется и не является идемпотентным, что усложняет работу с CDN и повторную отправку запросов.
Именно поэтому появился новый метод QUERY. Он позволяет отправлять поисковые параметры в теле запроса:
QUERY /feed
Content-Type: application/json
{
"q": "foo",
"limit": 10,
"sort": "-published",
"filters": ["status:active", "type:post"]
}
При этом QUERY сохраняет все преимущества GET: он безопасный, идемпотентный и кэшируемый. Cочетает поддержку тела запроса с возможностью кэширования.
Метод официально получил статус PROPOSED STANDARD, что означает скорое появление поддержки в браузерах и веб-фреймворках.
RFC: https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/
👍23🔥8🤨1
#книги
Sam Newman - Building Microservices
02.01.2025 - 01.02.2025
Книга довольно поверхностная и скорее про общие идеи разработки, в том числе в микросервисах, а не про сами микросервисы. Конкретных деталей не так много, как хотелось бы. Когда я читал Chris Richardson - Microservices Patterns и у меня были к ней претензии, что ее можно было бы написать в лучших формулировках, и я думал, что Building Microservices будет как раз лучшей ее версией и больше про идеи, а не детали, но идеи оказались слишком общими и если выбирать книгу про микросервисы то сейчас я скажу, что это Microservices Patterns.
Не понравилась глава про Security. Хотя автор и сделал дисклеймер, что не является специалистом в этой области, всё равно создаётся впечатление, что тема раскрыта поверхностно. Зато понравились главы: Microservice Communication Styles и Scaling. Полезные и их можно прочитать даже в дополнение к Microservices Patterns, где глава, например, про сагу мне показалась слишком сложно сформулированной.
Каждая новая книга, которую я читаю, так или иначе пересекается с предыдущими, и это может влиять на степень моего интереса. Вероятно, это отразилось и на том, как мне читалась эта книга. Однако у нее и у книги Криса Ричардсона на Amazon и Goodreads примерно одинаковые рейтинги, так что, объективно, читатели оценивают их примерно одинаково.
Sam Newman - Building Microservices
02.01.2025 - 01.02.2025
Книга довольно поверхностная и скорее про общие идеи разработки, в том числе в микросервисах, а не про сами микросервисы. Конкретных деталей не так много, как хотелось бы. Когда я читал Chris Richardson - Microservices Patterns и у меня были к ней претензии, что ее можно было бы написать в лучших формулировках, и я думал, что Building Microservices будет как раз лучшей ее версией и больше про идеи, а не детали, но идеи оказались слишком общими и если выбирать книгу про микросервисы то сейчас я скажу, что это Microservices Patterns.
Не понравилась глава про Security. Хотя автор и сделал дисклеймер, что не является специалистом в этой области, всё равно создаётся впечатление, что тема раскрыта поверхностно. Зато понравились главы: Microservice Communication Styles и Scaling. Полезные и их можно прочитать даже в дополнение к Microservices Patterns, где глава, например, про сагу мне показалась слишком сложно сформулированной.
Каждая новая книга, которую я читаю, так или иначе пересекается с предыдущими, и это может влиять на степень моего интереса. Вероятно, это отразилось и на том, как мне читалась эта книга. Однако у нее и у книги Криса Ричардсона на Amazon и Goodreads примерно одинаковые рейтинги, так что, объективно, читатели оценивают их примерно одинаково.
🔥3👍1
Статья про НЕменеджерскую ветку развития разработчика
https://habr.com/ru/companies/kuper/articles/856224/
https://habr.com/ru/companies/kuper/articles/856224/
Хабр
Карьерный рост из senior: кто такой staff-инженер?
Привет! Меня зовут Дима Салахутдинов, я principal-инженер в Купере и автор tg-канала «Стафф-инженер» . У нас в компании это один из грейдов технической ветки развития инженеров, которую мы обобщенно...