myStack
890 subscribers
761 photos
15 videos
27 files
310 links
Меня зовут Ростислав и я разработчик.

Это мой личный блог.

Я пишу на Go, читаю книги про технологии и пишу об этих и других вещах сюда.


Книги:
https://bit.ly/rostislav-books

Личка:
https://t.me/Rostislaved

Сайт:
Rostislav.me
Download Telegram
Сделал небольшой анализ. Взял два абзаца текста на русском, перевел их на английский и сравнил количество токенов.

RU: 2362 символа - 2534 токена
переведенный на английский:
EN: 2444 символа - 486 токена

Делим: 2534/486 = 5.21

То есть писать на английском больше, чем в 5 раз экономичнее. Более того, сама 3.5 версия на английском работает гораздо лучше, чем на русском.

PS: В четвертой версии разница между качеством анализа английского и русского всего 3%.
👍4
Любые попытки обманом заставить себя работать, используя внешнее вознаграждение (например, сделать что-нибудь приятное после написания главы), — это только краткосрочные решения, они не предполагают создания цикла положительной обратной связи. Это очень хрупкие мотивационные конструкции. Только если работа сама по себе становится вознаграждением, динамика мотивации и вознаграждения может стать самодостаточной и сама продвигать процесс вперед.

DePasque, Samantha, and Elizabeth Tricomi. 2015. «Effects of Intrinsic Motivation on Feedback Processing During Learning.» NeuroImage 119 (October): 175–186
😢5👍2🫡1
Вернуть ли 2007й?...
Хотите на литкоде всегда делать как на скриншоте? Быстрее всех по цпу и по памяти? Полагаю, что нет

Вот как это можно с Go.

Надо знать следующие вещи:
1. Литкод подает входные данные через stdin, парсит их и по порядку передает в вашу функцию
2. Литкод считывает ответ из файла user.out

Саму сигнатуру функции можно сохранить и внутри делать, всё, что угодно. Хоть бесконечный цикл. Она не запустится.
func maxProfit([]int) (_ int) {
for {
}

return
}

Пункты 1 и 2, позволяют написать, код, который сам читает stdin, парсит, делает решение и пишет в user.out. И поместить его можно в функцию init().

func init() {
inputBytes, _ := io.ReadAll(os.Stdin)
outFile, _ := os.Create("user.out")

inputString := string(inputBytes)

// string parsing here
// solution here

outFile.WriteString(output)
outFile.Sync()

os.Exit(0)
}

Это я делаю вместо того, чтобы задачки нарешивать.
👾6👍2🫡21🔥1😁1😱1👌1
Спасибо всем, кто ставит реакции 😅
🦄7🎃4🌚3💩2🥴2🗿2❤‍🔥1👻1
Помню время, когда слово интерфейс для меня было непонятным, я гуглил разные статьи, читал их, понимал, что в них написано, но все равно не понимал, зачем нужны эти интерфейсы. А еще и в слове API есть слово интерфейс.

И вот прошло много времени и я сам написал, надеюсь, что понятную статью про интерфейсы:
Интерфейсы medium
👍8👏3🌭1
1. Все планеты Солнечной системы вращаются вокруг
Солнца. Земля вращается вокруг Солнца. Следовательно,
Земля - планета Солнечной системы.

2. Бог - создатель всего сущего. Земля есть сущее.
Следовательно, Бог создал Землю.
🔥2
Какое из утверждений является логически верным?
Anonymous Quiz
32%
1
68%
2
Кто все эти люди на Бали, которые живут в комнатах по 100к за месяц...
First we’ll solve the “that works” part of the problem. Then we’ll solve the “clean code” part.
Kent Beck
👍3
Оказывается две мои любимые статьи про AI есть в полном переводе!

Я писал про них:
тут
и тут

На хабре, вторая часть не полностью была переведена, а именно во второй части второй части самая мякотка про то, как ИИ (тот же чат-гпт) после достижения определенного уровня может всё уничтожить. После прочтения вы поймете, что это не так уж и нереально.

Первая часть
Вторая часть
👍1
От аэропорта Сеула до центра города такое же расстояние, как от него же до границы с Северной Кореей
🤔2
Уже в продаже)
🔥1
Если никогда не использовали chatGPT, то вот бесплатный бот, где можно без всяких регистраций и впнов им пользоваться:
https://t.me/GptwitchBot

Да, там кошкодевочка нарисована на аватарке, но это настоящий chatGPT 3.5, там даже можно 4ю версию подключить, но уже платно.

Как там комнаты под разные топики делать, я не знаю, я на сайте пользуюсь, но для ознакомления отличный вариант. Этот бот можно скидывать тем, кто не хочет заморачиваться. Родителям например.
В 2014 году с биржи Poloniex украли примерно $50.000 из-за бага.

Схема была такая:
1. При запросе перевода денег, программа на бирже проверяла, есть ли достаточная сумма на балансе
2. Если есть, то запись о переводе записывалась в базу данных
3. Другая программа биржы считывала новые записи в базе данных и переводила деньги и уменьшла баланс

Хакер сделал следующее:
1. Сделал много запросов о переводе денег в один момент времени
2. Система проверила, что для каждого из запросов денег достаточно и записала все транзакции в базу данных
3. Вторая программа благополучно перевела все деньги и только после перевода уменьшила баланс. И только после этого он стал отрицательным

PS как я понял владелец вернул все деньги
Вот тут более подробно:
https://bitcointalk.org/index.php?topic=499580
😁1🫡1
В марте 2020 года президент России Владимир Путин заявил, что в России 70 % жителей относятся к среднему классу. В интервью агентству ТАСС он объяснил, что исходит из методики Всемирного банка, в соответствии с которой к среднему классу можно причислить тех людей, доход которых в полтора раза больше минимального размера оплаты труда (МРОТ). При МРОТ в России установленный Федеральным законом минимальный размер оплаты труда с 1 января 2020 года в сумме 12 130 рублей в месяц следует, средний класс — люди, которые получают от примерно 18 200 руб. (233$).
😐2
Я люблю сохранять информацию. Поэтому я когда-то начал сохранять инфу о том, что я читаю и свои комментарии на этот счет. Делал я это в вк, т.к. там почему-то мне это захотелось, но теперь буду постить сюда т.к. это более логично.
🫡2
#книги
20.04.2023 - 17.05.2023

Книга состоит из 3х частей:
1. Демонстрация TDD на примере создания класса Money (value object)
В целом норм, много глав, но каждая маленькая и так удобнее читать
2. Демонстрация TDD на примере jUnit
не читал
3. Паттерны, которые использовались в первых двух частях

Неоднозначное впечатление о книге. Как будто из нее я практически ничего не узнал.
Узнал, что автор предлагает писать код в виде шагов: red/green/refactor, то есть:
1. Пишем тест, которые сперва не работает (red - это вроде какая-то полоска в jUnit)
2. Добиваемся максимально быстро, чтобы тест работал (стал green), причем самым быстрым способом (Автор назвает это fake it паттерном)
3. Рефакторим, чтобы решение работало и в других случаях

Читать было скучно. Не рекомендую
🤯2👍1