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

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

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

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

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

2.00

3 отзыва

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

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

2


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

2022-08-03 16:37:32 У мака есть очень удобная встроенная запись экрана — и скриншоты, и видео. Настолько удобная, что я никогда даже и не искал альтернатив, всегда ее хватало.

И что вы думаете? В одном из последних апдейтов ее испортили так, что она теперь начинает писать через три-четыре секунды после нажатия кнопки.

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

И вот выходит апдейт и теперь чтобы раздуплиться ей нужно три секунды. Бесполезно спрашивать зачем, потому что ответ очевидно «незачем», мы знаем, что это тупая бессмысленная работа, возможно, результат ошибки.

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

Джонатан Блоу недавно ругался на нотификации в Стиме и сказал такую фразу «если Valve хочет, чтобы Стим мне нравился, пусть они починят нотификации, а не заставляют это делать вручную меня. Но это при условии, что они все еще сохранили достаточно контроля над ситуацией, чтобы это сделать».

Так вот, мы как раз и вошли в мир, где у больших компаний пропал контроль над собственными продуктами — они могут делать инкрементальные изменения поверх, но не могут всерьез чинить или передылвать то, на чем они стали популярными. Просто отсутствует экспертиза, а сложность выросла настолько, что никакими вменяемыми путями этот корабль уже не повернуть. Никто не в состоянии всерьез написать новый браузер или переписать старые панели управления под новый дизайн. Работает — не трогай, но беда в том, что трогать не получается, даже если от этого зависела бы судьба компании.
10.2K viewsNikita Prokopov, 13:37
Открыть/Комментировать
2022-08-02 17:54:24 Чем дальше, тем меньше понимаю компьютеры. Становлюсь дедом, да. Айфон-виджет, который показывает события календаря на неделю, до сих пор не может найти событие, которое я добавил сегодня утром. В календаре даже есть. В виджете — нет.

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

Но календарь??? Это же всякие бизнес-чуваки должны прям серьезно на это полагаться, как он может не работать? Прикинь пропустить встречу, потому что посмотрел в виджет и там было пусто?

Например, я могу попросить жену, чтобы она напомнила через неделю, что я записан к врачу, и если она вспомнит и будет рядом, это, в принципе, немного увеличит мои шансы не забыть. Но не доведет их до 100%. Поэтому, блин, мы и пользуемся внешними инструментами! Потому что они что-то нам там гарантируют, потому что на них можно положиться.

А компьютеры все больше идут в сторону каких-то вероятностных моделей: может напомнят, может покажут, может не забудут. Положил файл в iCloud, он с 50% вероятностью удалится с локального диска. Открыл вкладку на мобиле? Она с какой-то вероятностью засинкается на комп. Настроил нотификацию по месту, она может выскочит, а может и нет. Я уж не говорю про всякие фотки, которые придут хрен знает когда и хорошо если вообще придут. В чем прикол?

Качественный скачок полезности начинается именно там, когда на вещь можно положиться и выкинуть ее из головы на 100%. Я чем дальше, тем больше начинаю скучать не по умным, а по тупым инструментам, модель работы которых я могу себе представить и которые работают как часы за секунды. Положил файл — через три секунды он есть на всех твоих синхронизируемых серверах. А не вот это вот «ждал полдня, пока облака договорятся». У компьютера не должно быть дел более важных, чем то, о чем я его явно попросил. Eventual Consistency хорошо только для данных, которые никто не видит, а то, что я ввожу руками, должно быть immediately consistent.
14.1K viewsNikita Prokopov, 14:54
Открыть/Комментировать
2022-06-24 17:40:29 Решил на днях потестить ClojureScript компилятор. А ему нужен какой-то JS движок. Ну, думаю, возьму JavaScript Core, его вроде даже ставить особо не надо (хрома у меня нет).

Гуглю, мне говорят: поищи в /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc

Ну я ищу. И что? Нету. А где есть? А вот тут рядом: /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Helpers/jsc

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

Как по-вашему, стало лучше? Логичнее? Стоило изменение всех тех человеко-лет, которые программисты по всему миру потратят, чтобы продраться через устаревшие только в этом году ответы и либо догадаться, либо найти новые?

Другой случай — homebrew. У меня там лежит Fira Code, но не в самом репоизтории, а в некотором соседнем, называемом cask. И раз в год мне кто-то приходит в issues, чтобы сообщить, что «концепция опять поменялась» и старая shell-команда не работает и писать теперь надо по-новому.

Показательнее всего, конечно, пример Майкрософта, которые перекладывали Visual Studio в разные папки столько раз, что в конце концов им пришлось написать утилиту, которая знает как ее правильно искать.

Никто не умеет в обратную совместимость, а между тем это страшная сила. Потому что подобные изменения в 99% случаев — мелкая вкусовщина, которая и секунды замешательства не стоит.
2.2K viewsNikita Prokopov, 14:40
Открыть/Комментировать
2022-06-23 17:07:40 Смотрел сейчас интервью, где «директор Яндекса по взаимодействию с разработчиками» закапывает компанию еще глубже, и там промелькнуло — совсем не по основной теме — забавное наблюдение.

Он говорит: «хуже всего менеджеры, которые когда-то давно были программистами и которые считают оценки текущих программистов завышенными. “Да я это на ПХП за два часа в свое время сделал бы”, “компилировать джаваскрипт — зачем, это же интерпретируемый язык” и т.п. Такие менеджеры не понимают, что ситуация изменилась, что технологии изменились».

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

И никто об этом не говорит. Вообще удивительно даже, как при всей предполагаемой склонности программистов к «точным наукам» и «инженерному подходу» никому в голову не приходит замерять какие-то объективные показатели типа скорости работы команды или там приложения и задуматься: а че все так плохо-то стало? Куда мы свернули?
5.1K viewsNikita Prokopov, 14:07
Открыть/Комментировать
2022-06-22 20:40:05 В прошлом посте я наехал на С++, но на самом деле почти то же самое могу и про JS рассказать. Вот ровно та же ситуация: вроде бы язык развивается, толпы народу на нем пишут, и каждый раз думаешь: ну что такого может случиться? Напишу пару экранов кода, поди не сломается.

Конечно, сломается. То array-like объект подсунут вместо массива и он печально далеко пройдет от места создания, то массивы сравнить нельзя, то мап нормальных нет и люди складывают в объекты, забывая, что там уже лежат дефолтные поля, то нормальные мапы добавят, но теперь они не сериализуются, то переменная в лямбду по ссылке захватывается, то for итерирует по индексам вместо значений, то сортировка переводит каждый int в строку, то DOM.

Все это мелочи, конечно, но из мелочей и складывается впечатление. Садишься программировать, а в итоге едешь как на велосипеде с квадратными колесами — тук-тук-тук, тук-тук-тук. А что вы хотели от языка, где даже стандарты не смогли нормально назвать и каждого двойное название, отличающаеся на единицу (ES2015 == ES6, ES2016 == ES7 и т.д.). Ой, в примере в скобках надо было тройное равно, ну вы поняли.

Как говорил Конфуций: если тебя просят писать на JavaScript — отруби себе пальцы.
5.2K viewsNikita Prokopov, 17:40
Открыть/Комментировать
2022-06-21 17:24:14 В универе нас сначала учили C++, а когда перешли на Java, мне казалось, что она какая-то ненастоящая: многие вопросы уже решены, сложности упрощены, в чем прикол, в чем состоит работа тогда, если не надо помнить пять видов наследования и шесть видов конструкторов? Любой дурак так может! Потом, конечно, устроился я именно на Java и простоту эту научился ценить.

И вот как-то собеседовали мы чувака, лайв кодинг на языке по его выбору, и он выбрал C++. Надо сказать, что к тому времени у меня уже сложился образ гиперсложности и низкоуровневости вокруг системных языков, который подтверждался и кандидатами, выбиравшими C. Говоришь им — напишите функцию, которая переворачивает строку, а они «а кто ее выделяет, а кто освобождает, а что такое строка» и думаешь ну все, началось.

Так вот, пришел чувак с С++, я уже готов к этим всем вопросам из мира байтоебства, а он вместо этого хоп, хоп, в пять строчек все написал, да еще у него все там автоматически выделяется, копируется и освобождается, все на STL да без единого указателя. Фига себе! — подумал я, но брать мы его конечно не стали. Может и взяли, конечно, я не помню уже, это и не релевантно. Релевантно то, что у меня промелькнула тогда мысль — а может, там в С++ все не так уж и плохо, как об этом рассказывают? Может, жить можно? Вот вроде все симпатичненько и высокоуровнево.

Промотайте еще лет пять, и вот я наконец добрался до С++ сам. Сел писать обертку вокруг Skia, заодно и код самой Skia почитал, и сам для JNI пописал. И вот что имею сказать:

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

Так вот, проблема в С++ в том, что он генерирует стабильный и неиссякаемый поток мелких неожиданных проблем. Вроде садишься и думаешь — ну понятно, тут сделаю так и так, вроде все просто, цель видна, дорога прямая. Начинаешь — и тут же спотыкаешься и ломаешь себе ногу.

Причем, что интересно, эти проблемы всегда разные и всегда в неожиданных местах. То бинарную совместимость сломают. То линковка от порядка зависит. То шаблон не работает. То память прозевал. То система сборки. То Виндоус. Все время что-то разное, и все время непредвиденное, и все время вроде и не сломанное прям совсем, а где-то процентов на 20%, так, чтобы опытные говорили «чинить не стоит», а новички где-нибудь да и споткнулись. Ну как новички — Гугл тоже не блещет, а у них эта кодбаза на полмира раскатана.

Как пистолет в штанах, короче. Вроде и носить можно, но чисто статистичкески каждый рано или поздно яйца себе отстрелит.
5.6K viewsNikita Prokopov, 14:24
Открыть/Комментировать
2022-06-20 17:18:41 Почему, кстати, на маках (да и вообще нигде на десктопах) до сих пор нет пуш-нотификаций? Офигенная же идея — приложение не запущено, а новости приходят. Вместо этого в Notification Center складываются оповещения от приложений, которые и так запущены и сами могут их показать. Мне, например, в Слаке пишут раз в месяц, не держать же его открытым ради этого каждый день.

И как раз тот самый случай, когда централизация Эпла была бы уместна — делать такое самому бессмысленно, потому что Эпл тут же украдет идею и отожмет рынок, да и интегрироваться с чем-то стандартным для ОС будут куда охотнее, потому что на это можно будет рассчитывать.
5.3K viewsNikita Prokopov, 14:18
Открыть/Комментировать
2022-06-18 21:20:48 Обожаю, когда в компьютере появляются сообщения со словами «кажется» или «возможно». «Возможно, нужно будет перезагрузиться». «Кажется, что-то пошло не так». «Где-то произошла ошибка».

Это компьютер, алло, на 100% детерменистичная машина. Наверное, можно разобраться и узнать точно, да?

Причем этим грешат не только разработчики, которые вынуждены работать в обход, допустим, кривых или неполных АПИ. Этим грешат и вендоры: Майкрософт, Эпл в собственных операционках, которые они на 100% контролируют. Я установил ваш апдейт с вашего же сайта на вашу же операционку, надо перезагружаться или нет? «Возможно».

Все это в тему того, что мы давно живем на руинах куда более могущественной цивилизации, знания которой безвозвратно утеряны и все что нам остается это может быть где-то красочку подновить.
6.9K viewsNikita Prokopov, 18:20
Открыть/Комментировать
2022-06-17 15:01:26 Не могу с истории с Эплом и Stage Manager на айпаде. Если коротко — Stage Manager это возможность открыть до восьми приложений в трех группах и переключаться между ними. Ну а драма в том, что Эпл сделал эту возможность только для самых новых айпадов на M1, а всех остальных побрил. Да, такие условия, надеемся на понимание.

Скандал, собственно, в том, что какие-то люди пытаются найти этому рациональное объяснение. И у них не получается. А не получается потому, что это очевидно произвольно искуственно введенное ограничение, противоречащее любому здравому смыслу.

«На всех других айпадах эта фича тормозит» — да, но с чего бы? Айпад и мобилки вообще уже давно не сильно ограниченные компьютеры, мой айфон помощнее многих ноутов будет. «У старых айпадов меньше оперативки» — ну да, ну для этого своп и придумали. «Своп не везде есть» — но все-таки на старых айпадах он есть, а stage менеджера — нет (UPD: третье, пятое поколения и Эйр это все самые последние, оказывается. Драма в том, что на M1 не везде есть своп! Ну и еще в том, что почему он, собственно, не везде есть?) Плюс, ну не каждое же приложение по 4 гига отжирает, может я календарь с почтой хочу рядом запускать? Ну и опять же — если они у вас по 4 гига отжирают, то может их починить надо?

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

Поэтому и вводятся странные «ограничения» — только последний айпад (так и быть, разрешим вам его купить вместо такого же прекрасного и дорогого, но прошлогоднего), только 8 приложений. Откуда эта цифра вообще? Почему 8? Восемь CAD-ов и Фотошопов и восемь чат-клиентов и календарей это две огромные разницы по ресурсам. Если ты можешь восемь CAD-ов, то наверное ты можешь сто приложений погоды?

Это я все к тому, что если вам казалось, что в компьютерах есть какой-то прогресс, что мы все куда-то движемся, то нет, мы изобретаем возможности, которые компьютеры умели 30 лет назад, искуственно ограничиваем их доступность и продаем как «продвинутые» фичи каждый год заново. В железе прогресс да, огромный. А вот в софте какой-то день сурка.
3.5K viewsNikita Prokopov, edited  12:01
Открыть/Комментировать
2022-06-16 15:20:14 Купил умный телевизор, подключил к нему плейстейшн, чтобы играть в Dead Cells. Захожу в настройки, а там — хотите «умное соединение» (или как-то так)? Допустим, хочу. В плейстейшне то же самое. Допустим тоже хочу.

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

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

Интересно, кстати, поэтому ни PS, ни яблочная приставка не выключаются по-настоящему, а всегда в полусне? Потому что с телевизорами не смогли нормально договориться?

Мораль простая. Сложные схемы не работают. Два умных устройства вместе тупее, чем одно. Да, даже в 2022 и даже в топовом ценовом сегменте. Компьютеры были ошибкой, сингулярность наступила и она мне не нравится. Но зато рано или поздно мы все умрем. Хорошего дня!
4.5K viewsNikita Prokopov, edited  12:20
Открыть/Комментировать