Получи случайную криптовалюту за регистрацию!

Стой под стрелой

Логотип телеграм канала @nikitonsky_pub — Стой под стрелой С
Логотип телеграм канала @nikitonsky_pub — Стой под стрелой
Адрес канала: @nikitonsky_pub
Категории: Новости и СМИ
Язык: Русский
Количество подписчиков: 9.12K
Описание канала:

Ведет @nikitonsky. Рекламы нет

Рейтинги и Отзывы

2.00

3 отзыва

Оценить канал nikitonsky_pub и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

2


Последние сообщения 7

2022-05-02 19:09:34 В комментах к предыдущему посту пожаловались на Питон. Причем не на сам язык, а на полузакрутую модель контрибуции: коммитеры работают над чем им хочется, а патчи от коммьюнити могут лежать годами.

Вот пример жалобы (случай из Твиттера):

> [...] what shall I do next after I've submitted a PR to asyncio in CPython? Neither the PR nor BPO has been receiving any feedback for days. It doesn't feel encouraging for a me as a contributer.

На что ему ответили:

> There's well over a 1,000 PRs open now and realistically only around 30 people who actively contribute. As I told you elsewhere, most of them only contribute to their particular area of interest or expertise. Sorry we cannot provide the level of encouragement you expect.

На что автор первого твита предложил контрибуторам пошевелиться:

> I don't understand. 1000 PRs surely means more than 30 contributors. If you mean 30 Core Developers then maybe (I don't know) it would be helpful to encourage CDs to review others' contributions more instead of just having fun with the most popular language's codebase?

Про ситуацию когда-то хорошо высказался Нил Гейман. Там кто-то ныл по поводу того, что Джордж Р. Р. Мартин не пишет продолжение Игры престолов, а вместо этого занимается своими делами. Вот цитата Геймана:

> George R.R. Martin is not your bitch.

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

Тут можно очень долго и со всех сторон обсасывать ситуацию, но все сводится к очень простой истине: нет, совсем ничего. Вот ни капельки. Да, даже тот факт, что вы сегодня можете Питон скачать, не гарантирует что он завтра не исчезнет. Или не закроется. Или не перестанет развиваться.

Все, что мы имеем сегодня как опен сорс — абсолютный жест доброй воли, удачно сложившиеся обстоятельства, аттракцион невиданной щедрости. И НИЧЕГО КРОМЕ. Пользоваться можно, хотеть чего-то тоже можно, а вот требовать — нет. Совсем нет.

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

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

Что же касается BDFL (Benevolent dictator for life), когда все решения по языку принимаются одним человеком или узкой группой лиц, то — во-первых — имеют полное право (см. выше).

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

В Кложе похожая ситуация, и я тоже как-то ждал пять лет (не метафора и не преувеличение), чтобы мой тривиальный патч залили в ядро. Все понимаю, никаких претензий.

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

Вы хотите чувства не задеть или результат хороший получить? Лично я за результат, даже если это значит что на мои пул-реквесты будут класть хуй длиной в пять лет. Мне-то все равно, я Кложей каждый день пользуюсь и нахваливаю. Да и у Питона дела хорошо.

А вот у чувака в твиттере пока никак. Он, кстати, сам себя называет Free/Libre and Open Source Software advocate. Ну, с такими адвокатами и прокурор не нужен, как говорится.
3.3K viewsNikita Prokopov, 16:09
Открыть/Комментировать
2022-04-29 14:47:12 — Поймите: стандарт языка — это пустой чердак, куда можно набить все, что угодно. С++ так и делает: тащит туда нужное и ненужное. И наконец наступает момент, когда самую необходимую вещь туда уже не запихнешь. Или она запрятана так далеко, что ее не достанешь. Clojure делает по-другому. В ее чердаке только необходимые инструменты. Их немного, они в идеальном порядке и всегда под рукой. А лишнего хлама там не нужно.

— Move semantics, по-вашему, хлам?!

— Хорошо. Допустим, копировать объекты не всегда эффективно.

— То есть... то есть... как — допустим?

— Копировать объекты не всегда эффективно. Но в Clojure-то это мне не пригодится!


Темы для постов закончились, накидайте хот тейков что ли, чтобы было что разоблачать.
3.6K viewsNikita Prokopov, 11:47
Открыть/Комментировать
2022-04-28 15:23:12 Ultimate дед post

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

Во-первых, в интернете было очень мало народу и он был никому не нужен. Поэтому его никто не пытался захватить, и строился он по принципу «open protocols/bring your own implmenetation». Запилить RFC считалось почетно, а запилить стартап — тогда и слова-то такого никто не знал.

Сейчас же каждый первый первым делом стремится свои данные спрятать, сторонние клиенты запретить, а свои собственные делать на отъебись, в качестве одолжения.

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

И вообще программы в коробках рулили — их можно было хотя бы потрогать, на полку поставить. Киоски с дисками манили своим разнообразием. А сейчас киоски исчезли, а на полку что поставишь? Ключ распечатанный?

В-третьих, я мог запускать на своем компьютере что угодно. Хочу — игру, хочу — вирус, хочу — часы с кукушкой, хочу — дефрагментацию. Сейчас на это нужно благословение Эпла или Гугла, например. А они очень не любят, когда люди что-то интересное делают.

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

В-пятых, интерфейсы оптимизировались под компактность. Места и так было мало (640×480 вполне себе стандартное разрешение), так что приходилось ужиматься. И получалось! В сорок пикселей, которые сейчас тратятся на паддинг вокруг кнопки, в моем детстве умещалось целое диалоговое окно!

В-шестых, спеки! Да, раньше спеки компа что-то реально значили. 386 был совсем не то же, что 486. Riva TNT2 радикально отличалась от GeForce 256. И вот эти подписи на дисках с играми, какой ускоритель им нужен и какой проц — они были реально требованиями. И мегабайты занимаемого места приходилось высчитывать.

Сейчас же сотня-другая свободных гигов подразумевается тупо по дефолту, а требования в Стиме пишут больше тупо по-инерции. 3Гц, они и так везде 3Гц. А с Маками еще удобнее — купил Мак и сразу знаешь, что на нем тупо ни одна игра или не запустится, или не потянет. Удобно!

В-седьмых, компьютеры не использовались, чтобы рекламировать еще больше компьютеров. А сейчас открываешь Пуск или Settings и там реклама — ну что это такое? Телевизор какой-то, ей богу. (В телевизорах, кстати, теперь тоже компьютер, и это еще хуже, чем реклама по первому каналу).

В-восьмых, программы хранили данные в файлах. Эти файлы можно было организовывать, пересылать, удалять, редактировать, открывать другими программами. Даже программы были для этого специальные — файловые менеджеры. А сейчас стартап закрылся — попрощайся со своими данными. Вместо файлов может забрать ветку.

В-девятых, можно было работать оффлайн! Вместо гугла — компакт-диски с MSDN, которые легко можно было взять с собой в поездку куда угодно. Компьютер, правда, взять было сложнее.

В-десятых, я мог писать программы! Казалось бы, ну что плохого в программировании-то может быть? Это не наркотики и не порно (хотя в порно я тоже не понимаю, что плохого). И тем не менее, посчитайте, сколько редакторов кода в Аппсторе. Ноль. Чукча не писатель.

В-одинадцатых, аппов тоже никаких не было. Были про-гра-ммы. Программы. Потому что их программировали программисты. Программировали, понимаете?

А сейчас аппы лепят все кому не лень после двух часов курсов на Ютубе. Даже полная форма слова — аппликейшн — слишком длинная оказалась. В наше время программист легко мог в уме легко 256 символов пути держать, а сегодняшних только на три буквы хватает.

Короче, охуенное было время. А щас противно прям. Митинги, спринты, энгейжмент. Саасы. Тьфу.

Ну хотя бы иконки научились рисовать более-менее, и то хлеб.
3.3K viewsNikita Prokopov, 12:23
Открыть/Комментировать
2022-04-27 15:24:24 Когда я учился в школе, нам показали Линукс. Объяснили про юзеров, группы, пермишны, и мне тогда показалось это все круто и «по-профессиональному». Вот как работают настоящие программисты! Сам я к тому моменту разве что в Виндоус 95 все что можно было прокликал.

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

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

Потом я много раз страдал из-за идиотских проблем с пермишнами. Монтировал сетевые папки — айдишники юзеров брались с удаленной машины, но интерпретировались как локальные юзеры. Офигеть защита, да? Запускал сервисы, которые писали или читали не из-под того пользователя. Копировал по sftp/scp/ansible и получал фигню не там и не так, как нужно. Форматировал флешки под ext3 и копировал туда файлы с правами. Вставлял чужие жесткие диски.

И знаете что я думаю? Думаю, идея, что в одной папке могут лежать файлы с разными правами — довольно бестолковая. Вот просто низачем не нужно, чтобы рядом оказались rw-rw-rw- tonsky и r---w---x transmission.

Права нужно назначать по префиксу пути. Все, что в /home/tonsky имет абсолютно одинаковые права. Включая все подпапки. Пока не указано обратное. И если я изменю права на /home/tonsky, это автоматически применится ко всему, что лежит под ним.

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

Ну и Линукс — профессиональная среда только в том смысле, что она де-факто используется для зарабатывания денег программистами. А не в том, что там что-то хорошо или правильно сделано.
4.1K viewsNikita Prokopov, 12:24
Открыть/Комментировать
2022-04-26 15:59:06 Иногда я жалею, что развитие компьютеров пошло не тем путем, которым могло бы. Одна из таких деталей — различение папок и файлов.

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

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

Все это, конечно, неудобно, поэтому возникла целая индустрия архиваторов: способ взять папку и сделать из нее файл. Множество программ изобретали с нуля способы упаковать в один файл несколько файлов. Условный docx, jar и почти все игры. В исполняемые файлы тоже умеют засовывать другие файлы, нужные во время исполнения. Все это ТОЛЬКО ради того, чтобы на выходе не дай бог не получилась папка.

А ведь насколько круче было бы, если бы вместо доморощенного архива, тупо склеивающего файлы в непрозрачный формат, я мог бы просто зайти внутрь файла файловым менеджером и посмотреть, что там лежит!

Делать с этим, наверное, уже что-то поздно. Но может быть рано или поздно компьютеры переизобретут, и этот человек совершенно случайно прочитает этот пост и сделает все правильно. Пишу это для тебя!
3.9K viewsNikita Prokopov, edited  12:59
Открыть/Комментировать
2022-04-25 16:28:36 Некто protopop поделился в Твиттере, что Эпл собирается удалить его приложение из апстора, потому что он не обновлял его два года.

ДВА ГОДА!

Я телефоны обновляю реже! То есть покупаешь телефон, гоняешь с ним, у него даже батарейка не сильно просела, а приложения уже протухли. Ну, по версии Эпла.

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

Если думаете что это тривиальная задача, то вот кейс:

> Boss wants to change our iOS game icon. Changing icon requires a new build. A new build requires iPhone X support. iPhone X build target requires Xcode 9. Xcode 9 requires macOS 10.12. OS update breaks old Unity3D. Upgrading Unity breaks build.

Нужно бежать, чтобы оставаться на месте. Индустрия молодых, блин.

А, еще сто баксов в год платить Эплу (!) просто за необходимость (!!) это делать. Платить Эплу за то, что ты делаешь их телефон хоть сколько-нибудь полезным.

Мотивация Эпла понятна — старые приложения новые телефоны не продадут, потому что они не такие раздутые и не так сильно тормозят.

А пользователи проиграют.

Ну и какое будущее мы таким образом построим? Будущее золотых рыбок, которые не верят, что два года назад люди тоже могли делать что-то полезное.

Представьте, если бы сегодня нельзя было посмотреть, скажем, Паразитов? Или там Avengers: Endgame? А что, три года прошло, фильмы не обновлялись, пора бы уже и римейки снимать.

Мысль о том, что программа может быть закончена, тоже какая-то слишком радикальная. В смысле ты написал код и пошел работать над чем-то другим? А кто будет код ворошить? Байты же гниют снизу! Будь добр, сиди и обслуживай!

Короче, не удивляйтесь, когда я в плотники уйду.
3.6K viewsNikita Prokopov, 13:28
Открыть/Комментировать
2022-04-22 14:19:52 Коллега из кремниевого бангалора написал в твиттере:

> Видит бог я не хотел этого делать, но я расчехлил свой отчёт по коммитам по всем сотрудникам. Трое прямо крепко чиллят. Очень крепко.

И какова же была реакция общественности? Общественность пришла в УЖАС.

> Важно же не сколько количество сколько качество

> А сколько коммитов в день норма?

> Нууу по количеству коммитов судить не стоит

> Ну чиллят и чиллят, тебе то что, больше всех надо людей заебать?

> Может ты сначала процессы наладишь в команде, а потом будешь вопросы задавать?

> Так основная метрика не коммиты, а задачи

> Команда должна хотеть сделать продукт и иметь ограничения по бюджету и времени. А за комитами подглядывать - дело последнее.

> Просмотр комитов и оргвыводы из этого - это, в некотором роде, акция устрашения

> Ну и норм. Нафига им жопу рвать-то собсено ?

> может у них доступа в джиру не было, не могли задачу в работу взять

> Щас эти трое напишут скрипт с автокоммитами и статистика подправится

> Даёшь имитирование бурной деятельности!

> Xsolla 2.0?

> Могу делать 500 коммитов в день. Сколько заплатите?

> насрать, пока команда тащит. А когда не тащит — сама разберётся

> Если бы Маяковскому платили за строчки кода...

> Вот еблан иксольный. Созвоны с контрагентами не в счёт. Чтение и написание документации не в счёт. Ручное тестирование не в счёт. Ожидание доступов не в счёт. Ожидание решения начальства не в счёт. Нагрузочное тестирование не в счёт. Только количество строчек считается.

Очень поучительное чтение, короче. Как будто люди боятся объективно посмотреть на себя в зеркало. И мысль о том, что их заметят, объективно оценят и спросят с них результат вызывает у них ужас.

На всякий случай, речь была не о «уволить за отсутствие коммитов». А то вы мне тут сейчас накомментируте. Речь была про «использовать отчет, чтобы помочь найти проблемные ситуации и дальше уже разбираться». Некоторые ситуации могут вполне себе иметь объяснение — этого тоже никто не отрицал.

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

А если результата нет, то наверное и зарплаты ты не заслуживаешь. Ну или «зарплата пропорциональна результату». А не цвету глаз, количеству митингов или там личным качествам. Господи, такая простая мысль, даже формулировать ее стыдно.

И тем не менее, люди находят мысль «зарплата за результат» вопиющей. По их мнению, видимо, хорошие трудовые отношения — это приятная атмосфера в команде и чувство безопасности, а не продукт. Работодатель должен тебе все, а ты не должен ему ничего. Работа опционально, по настронию. Вот до чего доводят эти ваши софт скиллы!

UPD: Уточняю для тех, кто плохо читает. Речь не о том, что «количество коммитов — крайняя и единственная метрика» и по ней что-то определяется. Это вообще не метрика, перечитайте.

Речь о том, что в большой компании есть люди, которые вообще ничего не делают и получают зарплату. Не коммиты не делают, а вообще ничего.

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

Почему плохо попытаться найти бездельников и исправить ситуацию? Никто не предлагает привязывать зп к коммитам, на всякий случай, еще раз для тупых.
3.1K viewsNikita Prokopov, edited  11:19
Открыть/Комментировать
2022-04-21 13:30:35 Главное качество программиста? Понимание, где провести границу. Какие проблемы решить, а какие оставить пользователю вашей библиотеки/продукта. Да, у пользователей тоже есть руки и они умеют ими пользоваться.

Давайте с примером. Плагины для Clojure REPL, например, могут стартовать REPL за тебя. Но зачем? Я могу это сделать и сам, и я гораздо лучше сделаю это сам.

Плагины же начинают выкатывать требования: файл положи туда, проекты только одного типа, фичи не поддерживаем и т.п.

Причем плагину это не нужно — все, что ему нужно, это номер порта. Мне это не нужно — как я уже сказал, никто лучше меня проект не запустит. Так что это фича ни для кого, а мешается всем.

Почему? Потому что она решена не там, где нужно. Кто-то позаботился о том, что не является его проблемой.

То же самое в каких-нибудь библиотеках. Вроде по логике должна принимать мапу с конфигом на вход — зашибись. Но вместо этого принимает путь до файла, из которого она этот конфиг считает. Чувак, если мне нужно из файла считать, а сам его считаю, распаршу и тебе отдам. Ровно как и из сети, и из памяти, и из пользовательского ввода на форме.

Дайте мне инструменты, а я их скомбинирую. И не надо помогать, все равно вы все неправильно сделаете, а страдать будем вместе. Самый бесячий софт — тот, который пытается помогать там, где это не нужно.
3.5K viewsNikita Prokopov, 10:30
Открыть/Комментировать
2022-04-20 15:04:32 Всегда удивляют высказывания вроде «напишу утром, вдруг он уже спит». Коммуникация же асинхронная, какая разница?

Рассудить можно очень просто. Можешь ли ты в момент отправки знать, где находится человек, чем занят, может ли прочитать, удобно ли отвечать? Очевидно, нет.

Поэтому смысл гадать? Отвечает за получение сообщений тот, кто их получает. Удобно — ответит. Неудобно — не ответит. Спит? Уберет телефон. На митинге? Отключит нотификации.

Как вообще может быть иначе?

Кстати, ждать, что вам моментально ответят, тоже не нужно. По той же причине.
3.9K viewsNikita Prokopov, 12:04
Открыть/Комментировать
2022-04-19 15:04:36 Когда-то прочитал интересное объяснение, почему программисты так любят переписывать все с нуля. Или начинать новые проекты, не закончив старые.

Дело в том, что когда ты думаешь «вот бы сделать то же самое, но с чистого листа», ты сравниваешь существующую сейчас систему, со всеми ее проблемами, шероховатостями, компромиссами, с системой несуществующей.

Понятно, что у несуществующей будет преимущество: она идеальна. Ты представляешь только ее плюсы, а минусы никто специально не закладывает. Минусы получаются от столкновения с реальностью.

Это очень красивое объяснение, и очень похоже на правду. Полезно держать его в голове постоянно.

Внимательный читатель вроде тебя может заметить, что я и сам люблю многие вещи делать с нуля. У меня свой шрифт, своя цветовая схема, свой плагин для Кложи, своя раскладка, своя БД, своя i18n библиотека, свои скрипты для сборки, свой реакт-фреймворк и скоро будет свой UI-фреймворк. Короче, я только и делаю, что пишу все с нуля.

Нет ли тут противоречия? Мне кажется нет. У меня простое правило: если я что-то делаю, у меня всегда должен быть максимально конкретный ответ на вопрос, чем это будет отличаться от существующего.

Давайте прям по пунктам, чтобы были конкретные примеры:

- Fira Code: лигатуры + Fira Mono в основе
- Цветовая схема Alabaster: не подсвечивать все
- Плагин для Clojure: инлайн-eval, корректная подсветка, отсутствие paredit, nREPL
- Раскладка: пунктуация в Ру/En на одних и тех же местах
- Скрипты для сборки: скорость сборки

И так далее. Это единственный рецепт, который я знаю от Not Invented Here синдрома. Всегда знать, что именно ты делаешь и в чем конкретно твой вклад.

Мне всегда было жалко ребят, которые садились с мыслью «сейчас мы напишем новый Notion» или там «свою систему авторизации», а на вопрос «чем это будет отличаться» не могли ничего внятного ответить. Ну как же, это же мы, у нас получится по-другому, вдруг будет лучше. Скорее всего, в такой ситуации никаких реальных предпосылок к тому, что получится лучше, не было и нет. Если бы они были, то мы бы о них точно услышали.

Так что пишите и изобретайте колесо сколько угодно — я только за! Но всегда умейте отвечать на вопрос, чем оно отличается от уже существующих.
4.1K viewsNikita Prokopov, 12:04
Открыть/Комментировать