Тем временем вышел релиз лучшего, по моему мнению, 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
Интересно, что релиз посвящён в основном выпиливанию зависимостей.
Пост автора генератора 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
https://www.epochconverter.com/countdown?q=1700000000
🍾26❤2👍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
Я полез смотреть как оно устроено сейчас и был уверен что увижу 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
Amazon
Amazon SQS announces support for JSON protocol
🤯3👍1
В какой-то момент у меня выработалось странное когнитивной искажение — чем более уверенным тоном или бескомпромиссной манере мне доносят какую-то мысль, тем сильнее у меня одно из двух ощущений:
- мне вешают лапшу на уши;
- собеседник вываливает на меня своибеды с башкой комплексы или просто ещё не закончил седьмой класс;
- мне вешают лапшу на уши;
- собеседник вываливает на меня свои
👍25
Я всегда считал, что один из самых важных ресурсов для новичков в ЯП - это статьи/гайды, описывающие создание готовых штук от самого начала до конца. У нас более чем достаточно статей вида "применяем документацию из стандартной библиотеки" или "вот пример как делать один небольшой компонент".
Поэтому наткнуться на эту статью было приятным сюрпризом https://habr.com/ru/articles/774796/
И пусть мне нравятся не все выборы автора (зачем писать свой auth, если есть ory https://github.com/ory ; не люблю подход suito-в в тестах) - я буду рекомендовать эту статью всем новичкам.
Поэтому наткнуться на эту статью было приятным сюрпризом https://habr.com/ru/articles/774796/
И пусть мне нравятся не все выборы автора (зачем писать свой auth, если есть ory https://github.com/ory ; не люблю подход suito-в в тестах) - я буду рекомендовать эту статью всем новичкам.
Хабр
Пишем gRPC сервис на Go — сервис авторизации
В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В...
❤5👍3🫡1
If Pixar Made Programming Tutorials
https://www.youtube.com/watch?v=G9207EJySaA
https://www.youtube.com/watch?v=G9207EJySaA
YouTube
If Pixar Made Programming Tutorials
Support the channel: https://bit.ly/SupportHyperplexed
CodePen: https://bit.ly/HyperplexedMagicMouse
The original effect was for some promotion, so its no longer there lol, but here's a link to Canva anyways: https://www.canva.com.
Music Licensed by Artlist:…
CodePen: https://bit.ly/HyperplexedMagicMouse
The original effect was for some promotion, so its no longer there lol, but here's a link to Canva anyways: https://www.canva.com.
Music Licensed by Artlist:…
👍4😍4
#TIL TrueType и FreeType шрифты – это, по сути, байт-код для виртуальных машин шейпинга и рендеринга.
На интерпретаторах шрифтов обычно стоит ограничение на количество переходов, но если их обойти, то можно сделать вот это
https://fxtwitter.com/valdemarerk/status/1682715181854367744
Недавно вышел wasm shaper – это набор API для создания своего интерпретатора для движка, который, насколько я понял, можно подгрузить например на web страничку.
Интересно, я не видел ещё статей о side channel атаках через шрифты из-за своего пузыря, или пока люди просто ленятся?
На интерпретаторах шрифтов обычно стоит ограничение на количество переходов, но если их обойти, то можно сделать вот это
https://fxtwitter.com/valdemarerk/status/1682715181854367744
Недавно вышел wasm shaper – это набор API для создания своего интерпретатора для движка, который, насколько я понял, можно подгрузить например на web страничку.
Интересно, я не видел ещё статей о side channel атаках через шрифты из-за своего пузыря, или пока люди просто ленятся?
FxTwitter / FixupX
Erk (@valdemarerk)
I embedded Bad Apple into a font using Harfbuzz' new wasm shaping engine. #BadApple #touhou #harfbuzz #wasm #rustlang
🔥7💊6
☕️ Мерлин заваривает τσάι 🐌
#TIL TrueType и FreeType шрифты – это, по сути, байт-код для виртуальных машин шейпинга и рендеринга. На интерпретаторах шрифтов обычно стоит ограничение на количество переходов, но если их обойти, то можно сделать вот это https://fxtwitter.com/valdema…
С вами была рубрика "очередная совершенно бытовая штука оказалась тьюринг-полной".
Интересно, мы уже вступили в эпоху эмерджентной тьюринг полноты или ещё нет?
Интересно, мы уже вступили в эпоху эмерджентной тьюринг полноты или ещё нет?
❤4
Сейчас нашёл прикольный способ как с точки зрения парсера можно реализовать вызов функций вида
левая скобка
myfunc(x, y, z)
левая скобка
(
- это инфиксный оператор, который принимает выражение слева и список выражений справа🤯7💅3💊2🌭1
☕️ Мерлин заваривает τσάι 🐌
зачем писать свой auth, если есть ory
Хабр
Ory Kratos — коробочный SSO
Вступление Ory Kratos - современный cloud native сервер идентификации с поддержкой PassKeys, MFA, FIDO2, TOTP, WebAuthn, с возможностью управления профилями, схемами пользователей, входом через...
👍4❤1
Forwarded from Go Update
🔒proposal: Tuple Types for Go
Я наконец оправился после конференции, а ребята из Go Core Team ненадолго вернулись к обсуждениям после ноябрьских праздников в США, перед тем как снова уйдут уже на рождественский отдых.
Итак, на повестке дня у нас новый тип - кортеж. Вообще кортежи много где встречаются - от sql до python. Идея проста: нужно хранить несколько значений друг с другом в одной конструкции и иметь доступ к ним по индексу. Условно говоря это такой массив фиксированной длины, у которого элементы могут быть разного типа.
И тут появляется традиционный вопрос - а зачем? Их много раз предлагали, но каждый раз упирались в вопрос "А чем мало простых структур?". И ведь правда, обычно структур должно хватать за глаза, а там где очень хочется можно притянуть множественный возврат из функции (тоже, кстати, своего рода кортеж). Но сила кортежей не в инновациях, а в облегчении каждодневной разработки. А именно в этих двух вещах:
• Для кортежа не нужно создавать отдельный тип (но можно). Ближайший аналог это анонимная структура, только в случае кортежа не нужно указывать имена полей.
• Для распаковки и упаковки кортежей в несколько переменных в язык добавляются специальные конструкции.
Посмотря на количество предложений, ребята наконец назрели и решили провести эксперимент по итогу которого сделали свое предложение: в их случае синтаксис выглядит как-то так:
Так-же можно получить конкретный элемент:
Функции тоже могут возвращать кортежи, но выглядит это немного странно (по причине обратной совместимости):
Однако по мнению Go Core Team это не настолько нужно, чтобы внедрять принципиально новый тип в язык. Поэтому сам proposal это даже не предложение, а скорее заметка о том, какое исследование они провели внутри Google и какие выводы сделали. Выводы кстати простые: делать они эту фичу не будут.
На мой взгляд, здесь они правы, так как для полноценного внедрения кортежей нужно было бы решать вопрос с возвратом функций без этих ужасных двойных скобок. Да и анонимные структуры решают 80% описанных проблем. Однако само исследование породило интересные выводы о том как можно улучшить язык не внедряя новые типы. Об этом мы поговорим в следующий раз.
P.S. И да я очень надеюсь вывести количество заметок хотя-бы до трех в месяц 😆️️️️️️
Я наконец оправился после конференции, а ребята из 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. И да я очень надеюсь вывести количество заметок хотя-бы до трех в месяц 😆️️️️️️
GitHub
proposal: Tuple Types for Go · Issue #64457 · golang/go
NOTE: This is a write-up of an internally worked out idea for tuple types, inspired by some of the tuple proposals listed below. The primary reason for this write-up is simply to document this work...
👍1🤔1🫡1
Forwarded from Блог*
#prog #amazingopensource
wuffs (Wrangling Untrusted File Formats Safely) — язык (и компилятор) для написания программ обработки данных, который компилируется в C. Язык намеренно весьма ограниченный — в частности, в нём отсутствует IO и способы динамически управлять памятью, да и в принципе доступ к сисколам. Язык также memory safe: компилятор отказывается компилировать программу, в которой индексы выходят за границу массива (а также если в ней где-то есть переполнение).
Несмотря на ограниченность языка и намеренно простые проверки диапазонов переменных, на практике он с успехом подходит для написания (де)кодировщиков медиаформатов — реализации на wuffs по производительности обгоняют существующие реализации на C и Rust.
(thanks @experimentalchill за привлечение внимания к этой вещи — взято из поста про ошибки реализации в CRC32 в Linux)
wuffs (Wrangling Untrusted File Formats Safely) — язык (и компилятор) для написания программ обработки данных, который компилируется в C. Язык намеренно весьма ограниченный — в частности, в нём отсутствует IO и способы динамически управлять памятью, да и в принципе доступ к сисколам. Язык также memory safe: компилятор отказывается компилировать программу, в которой индексы выходят за границу массива (а также если в ней где-то есть переполнение).
Несмотря на ограниченность языка и намеренно простые проверки диапазонов переменных, на практике он с успехом подходит для написания (де)кодировщиков медиаформатов — реализации на wuffs по производительности обгоняют существующие реализации на C и Rust.
(thanks @experimentalchill за привлечение внимания к этой вещи — взято из поста про ошибки реализации в CRC32 в Linux)
GitHub
GitHub - google/wuffs: Wrangling Untrusted File Formats Safely
Wrangling Untrusted File Formats Safely. Contribute to google/wuffs development by creating an account on GitHub.
❤4👍2
tl;dr: Диффузионную модель обучили делать оптические иллюзии и визуальные анаграммы
https://dangeng.github.io/visual_anagrams/
https://dangeng.github.io/visual_anagrams/
dangeng.github.io
Visual Anagrams
Optical illusions zero-shot from diffusion models.
👍3🎃1