Как стать автором
Обновить
-8
0

Пользователь

Отправить сообщение

Прострелил то прострелил, но ружьё то не у них совсем, они просто миньоны, которым буквально приказывают)

Go 2 не будет же, сто раз уже подтвердили.

Скоро. Но только на новых Nvidia. У них будет новый open source драйвер (он есть уже сейчас, но пока beta). Дело в том, что на графике Intel и AMD работает отлично, так что проблема не в самом вялом, а на стороне Nvidia.

Для старых Nvidia карт нового драйвера не будет.

вбейте в гугл оба варианта, вот те тысячи, где "посев", там и переводят, а те четыре, где "семена" (seed и seeds вообще-то слова разные и не заменяемые просто так, но в вашем мгимо видимо не проходили)

Обычно ругаю ваши статьи, но тут спасибо. И всё же пара замечаний:

  1. Seed обычно переводят как посев, а не как семя.

  2. Посев не должен быть переменной. Он или константа (тогда, когда это необходимо), или псевдослучайное число, вычитанное из /dev/urandom. В Go для этого есть хелпер crypto/rand.Read()

И немного душноты: на Linux рандом работает только если запущен rngd. Он вычитывает энтропию из доступных устройств (TPM, процессор (в них сейчас есть выделенная инструкция), virtio, если мы внутри виртуалки, и т.д.) и "закачивает" её в urandom. В крайнем случае есть сурогатная альтернатива в виде Haveged. Без них конечно ничего не ломается, но всё что "crypto" работает медленно, а псевдослучайные числа, скажем так, не совсем случайные.

Деньги. Они в первый же день уволятся по собственному после восстановления, но работодатель должен будет выплатить всю недополученную зарплату за всё это время, если не путаю.

А макос почему не может?

Раньше macos сильно тормозила: во-первых ни одной крутой ФС, во-вторых своя графика с неоптимизированными под перфу драйверами (где-то у phoronix были сравнения при прочих равных)

Тем более что софта там и без архитектурных ограничений куда больше.

но практически примерно столько же смысла сколько в хакинтошах (установка макоси на не-эппл железо) - красноглазие ради красноглазия.

Эти два разве не противоречат друг другу напрямую?)

Неа, большая часть софта под Linux open source. Исходник можно легко собрать под ARM, поэтому почти всё сразу доступно нативно. По-моему здесь и было упомянуто, что нет Slack и Steam, а остальное из популярного уже есть и работает.

Спасибо за статью.

Вот тут

Но удивительно, что дефолтный размер пула составляет 2. То есть, как только concurrency запросов становится больше 2, всё начинает тормозить.

нет.

defaultMaxIdleConns - это не размер пула в общем смысле. Можно глянуть в словаре Idle, можно глянуть по коду, там тож понятно.

Надо переделывать тест) 10-е поколение Intel - приличные современные камни, но они устарели морально из-за рывка по перфе, который произошёл после их релиза. Надо сравнивать с Ryzen на Zen 3 и новее и c Intel 13-го поколения и новее.

Строго говоря оба параметра vm.dirty* непоняты и неверно поданы. Первый "vm.dirty_expire_centisecs" ничего не сбрасывает. Он только помечает данные к сбросу (как устаревшие). Периодически флашер (он работает параллельно) проверяет, какие данные помечены устаревшими и сбрасывает их на диск. У него своя настройка периодичности "vm.dirty_writeback_centisecs". Из коробки 5 секунд, но можно и час поставить. Тогда данные будут сбрасываться каждый час, а не когда там "vm.dirty_expire_centisecs" что-то пометил. Второй "vm.dirty_ratio" вообще с флашем не связан. Он определяет максимальный размер буфера. Когда мы добираемся до него - запись становится синхронной постоянно блокируясь пока диск что-то пишет. Флашинг начинается сильно раньше этого и его контролирует "vm.dirty_background_ratio". И он не может быть больше половины "vm.dirty_ratio". Т.е. флашинг начинается не тогда, когды мы вбрали весь буфер, а сильно заранее, где-то при заполнении на половину или даже ещё раньше.

Коллега ниже верно подметил, комменты актуализируются с другой скоростью относительно кода. Иными словами, я могу понять любой Go-код кроме того, в котором комментарий вводит в заблуждение.

Спасибо за статью.

Ничего маргинального в понимании ненужности комментариев в Go нет. Роб Пайк много лет на своих лекциях повторяет: "Комментарий никогда не должен отвечать, "что?" делает код. Если вам приходится писать такой комментарий - код плох и его надо переписать. Комментарий может отвечать только на вопрос "почему?" т.е. иногда нужно указать причину того, что код делает именно это (совместимость с каким-то хитрым API или легаси, неочевидные особенности работы железа, хитрая оптимизация и т.д.)". Отсюда и вытекает упомянутый идеоматичный нейминг (e.g. namespace.New), код сам описывает что делает.

На первый взгляд логично и обосновано, но только на первый. Если внимательно посмотреть на рынок вакансий, то видно, что спрос на middle+/senior огромный, а на jun/jun+ его нет вообще. У этого могут быть разные причины, но я почти уверен, основная - "набрали с софтскилами, а инженерные задачи решать некому", вот и бегают, ищут профи.

Долина Кремниевая, там полупроводники производят (они являются по сути кусками кремния). Если безграмотным англоязычным ещё можно простить (у них эти 2 слова отличаются всего на 1 букву при написании, и ещё меньше при произношении), то на русскоязычном ресурсе - нет ?‍♂️

Т.е. променяют родную, понятную и прозрачную юрисдикцию и премиальный рынок на сотрудничество с полубезумными царьками из диких нищих бантустанов? Это же гарантированое разорение уже в среднесрочной перспективе. И эти ребята прекрасно всё просчитали, потому и не делают такое.

Это то, как мы в Go делаем decoupling. Есть конечно те, кто по привычке с условных шарпов делают инстанс интерфейса и таскают его туда-сюда, но они обычно профнепригодны.

Хороший пример в стдлиб bufio.Scanner (https://pkg.go.dev/bufio#NewScanner). Конструктор принимает reader, и сканер может работать хоть поверх файла, хоть поверх stdout, хоть поверх http request body, да хоть поверх обычной строки, из которой можно сделать reader с помощью пакета strings.

В итоге мы никак не зависим от конкретной реализации reader и буквально можем переехать на другой 1-2 строками кода. Это правило работает и с бизнес-кодом. Хотим сменить логгер или базу на другую? - Отлично, меняем строку импорта на другую реализацию + меняем строку инициализации логгера или базы и передаём уже другую реализацию интерфейса в конструктор. Кто-то скажет DI для бедных. Так и есть ?

Боюсь, всё немного сложнее. Вообще, 40 часов в неделю откуда взялись? От монотонной, простой (относительно), нетворческой смены рабочего на заводе. Нам, программистам, особенно тем, кто что-то серьёзное делает положено по 4 часа в день работать. Многие, кстати, так и делают, а остальные 4 часа "работают". И да, я понимаю, что после смены на заводе руки и ноги отваливаются. Но тело восстанавливается за ночь, а ум - скорее нет, чем да. Отсюда и выгорания.

Вы посмотрели кто авторы Go? Если Роб Пайк и Кен Томпсон не умеют « в разработку языка» , то может подскажете кто умеет?

Я нигде этого не писал, совсем. "Достижения" в моём сообщении потому и в кавычках, что я их таковыми не считаю (как и Пайк, чьи статьи и книжки я читал ещё для Си, который он предпочитал в эпоху до Go). Вы не в ту сторону тут воюете.

Зачем вам интерфейсы в HTTP сервисе, в части которая отвечает за обработку запросов?

Я нигде этого не писал, совсем. Они не нужны в обработке запросов, они нужны в конструкторе сервиса.

У вас точно в фильтре стоит "показывать статьи с рейтингом -50"?) Не думаю, что он будет выше. Аргументы в духе "так написан net/http и он работает хорошо (в общем случае)", "любой кусок легко протестировать", "мы ни разу не теряем информацию о типе (типобезопасность)" никогда не помогают, и меня всегда сливают. Дело в отношении к привычным паттернам и анти-паттернам, первые считаются обязательными априори (но неприменимы к Go), а вторые порой применять надо (хоть и осторожно). Это связано с тем, что авторы по сути наплевали на десятилетия развития ЯП и "переизобрели" что-то заново, откинув многие "достижения" (например исключения и наследование, которое сильно повлияло на полиморфизм, а значит и на внутреннее устройство типов).

1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность