Telegram Web Link
Тем временем вышел релиз лучшего, по моему мнению, opena api генератора для Go oapi-codegen.

Интересно, что релиз посвящён в основном выпиливанию зависимостей.

Пост автора генератора https://www.jvwww.tg-me.com/posts/2023/10/23/oapi-codegen-v2-decrease/

Релиз https://github.com/deepmap/oapi-codegen/releases/tag/v2.0.0
5🔥1
Примерно через 3 часа UNIX timestamp достигнет красивой отметки 1700000000


https://www.epochconverter.com/countdown?q=1700000000
🍾262👍1
Amazon анонсировал поддержку JSON в Api SQS (кто не знает - это такая SaaSная очередь).

Я полез смотреть как оно устроено сейчас и был уверен что увижу XML RPC - но нет!

Оказалось, что их ручки принимают POST запросы в виде application/x-www-form-urlencoded - то есть чисто технически можно написать простенткий SQS клиент на чистом HTML без js 🤔

Анонс: https://aws.amazon.com/about-aws/whats-new/2023/11/amazon-sqs-support-json-protocol/

SQS API: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests-xml.html
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3👍1
В какой-то момент у меня выработалось странное когнитивной искажение — чем более уверенным тоном или бескомпромиссной манере мне доносят какую-то мысль, тем сильнее у меня одно из двух ощущений:

- мне вешают лапшу на уши;
- собеседник вываливает на меня свои беды с башкой комплексы или просто ещё не закончил седьмой класс;
👍25
Я всегда считал, что один из самых важных ресурсов для новичков в ЯП - это статьи/гайды, описывающие создание готовых штук от самого начала до конца. У нас более чем достаточно статей вида "применяем документацию из стандартной библиотеки" или "вот пример как делать один небольшой компонент".

Поэтому наткнуться на эту статью было приятным сюрпризом https://habr.com/ru/articles/774796/

И пусть мне нравятся не все выборы автора (зачем писать свой auth, если есть ory https://github.com/ory ; не люблю подход suito-в в тестах) - я буду рекомендовать эту статью всем новичкам.
5👍3🫡1
Хочу Hi-Fi Rush, но ты играешь за Old Gods of Asgard
🥰4😢1💊1
#TIL TrueType и FreeType шрифты – это, по сути, байт-код для виртуальных машин шейпинга и рендеринга.

На интерпретаторах шрифтов обычно стоит ограничение на количество переходов, но если их обойти, то можно сделать вот это

https://fxtwitter.com/valdemarerk/status/1682715181854367744


Недавно вышел wasm shaper – это набор API для создания своего интерпретатора для движка, который, насколько я понял, можно подгрузить например на web страничку.

Интересно, я не видел ещё статей о side channel атаках через шрифты из-за своего пузыря, или пока люди просто ленятся?
🔥7💊6
Сейчас нашёл прикольный способ как с точки зрения парсера можно реализовать вызов функций вида myfunc(x, y, z)

левая скобка ( - это инфиксный оператор, который принимает выражение слева и список выражений справа
🤯7💅3💊2🌭1
Forwarded from Go Update
🔒proposal: Tuple Types for Go

Я наконец оправился после конференции, а ребята из Go Core Team ненадолго вернулись к обсуждениям после ноябрьских праздников в США, перед тем как снова уйдут уже на рождественский отдых.

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

И тут появляется традиционный вопрос - а зачем? Их много раз предлагали, но каждый раз упирались в вопрос "А чем мало простых структур?". И ведь правда, обычно структур должно хватать за глаза, а там где очень хочется можно притянуть множественный возврат из функции (тоже, кстати, своего рода кортеж). Но сила кортежей не в инновациях, а в облегчении каждодневной разработки. А именно в этих двух вещах:

• Для кортежа не нужно создавать отдельный тип (но можно). Ближайший аналог это анонимная структура, только в случае кортежа не нужно указывать имена полей.

• Для распаковки и упаковки кортежей в несколько переменных в язык добавляются специальные конструкции.

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


val := (1, "foo", false)
x, y, z := val...
fn(val...) // вызываем функцию в которую распаковываем кортеж

func fn(int, string, bool) { ... }


Так-же можно получить конкретный элемент:


val := (1, "foo", false)
x := val.0 // получаем первый элемент


Функции тоже могут возвращать кортежи, но выглядит это немного странно (по причине обратной совместимости):


func f() ((int, int)) { // обратите внимание на двойные скобки


Однако по мнению Go Core Team это не настолько нужно, чтобы внедрять принципиально новый тип в язык. Поэтому сам proposal это даже не предложение, а скорее заметка о том, какое исследование они провели внутри Google и какие выводы сделали. Выводы кстати простые: делать они эту фичу не будут.

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

P.S. И да я очень надеюсь вывести количество заметок хотя-бы до трех в месяц 😆️️️️️️
👍1🤔1🫡1
Forwarded from Блог*
#prog #amazingopensource

wuffs (Wrangling Untrusted File Formats Safely) — язык (и компилятор) для написания программ обработки данных, который компилируется в C. Язык намеренно весьма ограниченный — в частности, в нём отсутствует IO и способы динамически управлять памятью, да и в принципе доступ к сисколам. Язык также memory safe: компилятор отказывается компилировать программу, в которой индексы выходят за границу массива (а также если в ней где-то есть переполнение).

Несмотря на ограниченность языка и намеренно простые проверки диапазонов переменных, на практике он с успехом подходит для написания (де)кодировщиков медиаформатов — реализации на wuffs по производительности обгоняют существующие реализации на C и Rust.

(thanks @experimentalchill за привлечение внимания к этой вещи — взято из поста про ошибки реализации в CRC32 в Linux)
4👍2
tl;dr: Диффузионную модель обучили делать оптические иллюзии и визуальные анаграммы

https://dangeng.github.io/visual_anagrams/
👍3🎃1
2025/10/01 16:43:14
Back to Top
HTML Embed Code: