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

Backend developer

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

можно использовать альтернативу — go-arch-lint

как автор тулзы, заодно порекламлю статью на хабре, как им пользоватся:
https://habr.com/ru/articles/751174/

PortProton основан на версии WINE от Valve (Proton) и ее модификациях (ProtonGE и ProtonLG).

А в чем особенность, кроме своего логотипа?

Возможно Илья решил что будет лучше если он останется и будет замедлять компанию внутри, чем вообще не будет это делать. Отсюда и переобувка в последний момент, типо сорян, быканул, был неправ.

Кажется что он инициировал увольнение Альтмана, чтобы компания в погоне за баблом не убила людей раньше времени, или экономику разных стран )

Одно из наиболее впечатляющих достижений в мире современного моддинга — Falskaar.

это вы ещё enderal forgotten stories не видели )

Кстати один из самых ярких вкладов в modmaking был редактор для warcraft 3. Огромное кол-во разных модов, которые стали в итоге отдельными играми или даже жанрами.

505 из 700 сотрудников написали письмо с требованием вернуть все обратно (в т.ч. CTO), иначе они тоже уйдут за ним. Майкрософт же уверен с радостью всех наймет в свой новый отдел.

Отличный пример как развалить компанию, потенциально размера с FAANG через пару лет, за один день. Сэм напрямую перейдет в microsoft, взяв с собой всю команду разработки (ну а кто захочет оставаться в тонущей лодке). Через неделю акции openAI упадут в 0 и компания закроется.

Выглядит скорее как плюс, получается каждая планета просто большой уровень 16х16 км или типо-того. Плюс в том, что такое будут делать скорее всего руками, пусть и тяп-ляп, но задники делают люди.

А если была бы вся планета, то смысл её исследовать, там везде одинаковый noise height map с рандомными натыканными объектами.

хм, получается они грузят себе в облако все условно приватные корпоративные данные? Звучит ещё менее безопасно, чем выполнение рандомного кода на компе конечного пользователя.

Я имею ввиду человеко-читаемый стек.

Предположим что нашу CLI тулзу эксплуатирует некий админ, который на сервере её запускает.

Если нормально оборачивать ошибки, то при запуске он увидит что-то такое:

"failed start: failed preload data: failed query data from db: port 5050 unreachable: connection refused"

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

если не оборачивать ошибку, всё что он увидет это "connection refused". Абсолютно бессмысленная ошибка, которая ничего не говорит.

Есть ещё вариант автоматического добавления стека в ошибку, это лучше чем ничего, но хуже чем нормальный враппинг, так как админ уже не сможет сам понять, и пойдет к разработчику спрашивать что именно произошло. Ошибка будет примерно такая:

connection refused at:
- db.go:14
- repository.go:32
- loader.go:68
- cache.go:16
- main.go::34

Лучше чем ничего, но хуже чем нормальная человеко-читаемая ошибка.

Предполагается что ошибки будут оборачиватся друг в друга, в общий стек.

// при ошибке будет: "b call failed: c call failed: bad connection"

func a() error {
  err := b()
  if err != nil {
    return fmt.Errorf("b call failed: %w", err)
  }
  return nil
}

func b() error {
  err := c()
  if err != nil {
    return fmt.Errorf("c call failed: %w", err)
  }
  return nil
}

func c() error {
  return errors.New("bad connection")
}

Я думаю компания в Армении не работает на рынок Армении, и сделана специально как конкуретное преимущество перед другими компаниями на международном рынке найма:

  • мы даем работу не в рублях

  • мы даем работу не в рф

Получается что в офере компания предлагает X, а после подписания договора, говорит либо бери Y, либо досвиданье.

Я в целом обе стороны понимаю. Одни переплачивают рублями за покупку ЗП в валюте, другие не понимают почему это за их счет должны решатся проблемы со нестабильным курсом рубля.

Могу только сказать, что по моему мнению, если компания хочет нанимать специалистов и конкурировать за них на международном рынке - это проблема компании что придется валюту покупать. Тут либо валюта, либо специалисты.

А собственно зачем?

В офисе это не нужно, там есть проводной интернет.

Дома избыточно - нужно специалную "лампочку" в каждую комнату вешать. Т.е покупать фактически вместо 1 роутера - 3 например.

А супер скорость в 224гб/с будет только до "роутера". Дальше сигнал идет по обычным проводам в ДЦ, и скорость там будет соответственно 1гб/с если повезет, либо ещё меньше, например 100мб/с, с ограничениями оплаченного тарифа.

Выглядит так, что штука на данный момент полезная только в очень узких и специфичных целях.

это не правда. Переменная класса может быть абстрактная (к примеру интерфейс). Вот тогда и будет у нас абстрактное программирование. Без всяких хаков можно писать сносный solid код на классах и ООП. Даже в том же go, где вообще нет классов, но есть некое подобие ОПП всё с той же целью - иметь возможность абстрактного программирования, внедрения зависимостей, интерфейсы и т.п.

В аргументы функции такое передавать не получится, что собственно и является смыслом существования классов.

Можно пример, как вы собираетесь писать код без абстракций? Разница классов и функций только в этом по сути.

К примеру есть у вас сервис, который из абстрактного репозитория получает данные (к примеру книги)

interface Library {
  getArticles(authorID int64) []Article
}

Можно ли заменить это на сигнатуру функции, к примеру: func (authorID int64) []Article? Конечно. Но функция сама по себе не чистая, ей для работы нужен какой-то коннекшен к базе. И где его взять?

Если прокидывать коннекшен прямо в аргументы вот так:

getArticles(conn redis.Client, authorID int64) []Article
                 ^

то мы имеем большую проблему. Код который будет вызывать эту функцию, тоже должен знать про хранилище (т.е про redis). Но зачем бизнес логике знать про это?

В классах мы можем без проблем разделить передачу аргументов на 2 разных штуки:

  • конструкторы (скрытую явно от остального кода)

  • функции (открытую, публичную часть)

Таким образом можно писать абстрактный код, чего невозможно сделать с использованием только функций.

Nice, а можно мне тоже кусочек yandex за халяву, чем я хуже этого чела из ВТБ.

Время относительно же. Для людей в корабле, которые летят скажем с 50% скорости света, нужно условно пару часов чтобы пролететь половину галактики. Другое дело, что для всего остального во вселенной пройдет пара миллионов лет, и возможно через минуту их полета, в окне станет темно, так как погаснут некоторые звезды.

При разгоне до 99.9% скорости света, можно за 1ms оказатся сразу вконце времени и на другом конце космоса в эру после черных дыр (если конечно предположить что наш корабль не развалился каким-то образом за эти триллиарды лет полета).

Скорее всего деформируются кости и тело. В космосе, без сил притяжения, начинается деградация мышц, так как нет давления атмосферы, спине не нужно держать тело ровно и т.п.

Через много поколений, люди в космосе будут очень слабыми по нашим меркам, вытянутыми, мб на 2-5 метра роста в среднем. После тысяч лет полета, им будет очень сложно находится на планете типо Земли, так как притяжений и атмосфера их прижмет к земле, а мышцы не будут развиты для сопротивления этому давлению.

Чтобы всё было ок, нужно сначала придумать искусственную гравитацию на корабле. (ну или очень быстрые перелеты, в 98% скорости света например).

Я не против рассматривать их

Такие новости дают возможность немного порофлить (коммент выше например хорош), ну и показывает дамп мнений it спецов на данный момент времени.

За обработку ошибок в rust и go обидно. Не понятно почему автор воспринимает возможные ошибки в программе, как "грязь", как будто там код подгадился:

И теперь тысячи — нет, уже миллионы — программистов в каждой первой функции пишут повторяющийся код, засоряющий пространство на экране

Если вы пишите что-то серьезное, где не хотелось бы терять данные пользователей просто так, то ошибки такая же важная часть кода, как и бизнес логика, и им нужна нормальная поддержка со стороны языка и синтаксиса.

Как исключения вам помогут? Максимум у вас код в проде упадет где-то, вы это залогируете из эксепшена, и потом в этом месте добавите логику для фикса бага. Но данные уже не вернуть.

В go/rust вы сразу знаете все места где у вас упадет код, и в зависимости от контекста и важности функции, сразу можете корректно обработать этот случай.

Не очень, в линукс можно разделить на 1, 2 или 3 виртуальных монитора (для всего софта и ос, они выглядят как реальные). Но при 3 мониторах, первый обычно широкий (21:9), а остальные 2 по бокам маленькие, на них особо ничего не сунешь. Но наверное стримить удобно будет. Если разделять на 2 монитора, то приходится голову крутить влево-вправо. + они очень широкие, 2 реальных не широких монитора намного удобнее.

Но играть на этом супер, мне нравится. В работе я делаю один виртуальный 21:9 монитор по центру, а слева-справа оставляю черные полосы.

1

Информация

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