Возьмите любое старое устройство и попробуйте поработать на нём на тех версиях софта — реальность окажется не такой радужной, как запомнилась. Да, возможно оно откровенно не тормозило, но скорость реакции была совсем ужасной по современным меркам.
У меня как раз противоположное впечатление — под Windows скорость реакции интерфейса была существенно выше, а скорость работы — ниже. На 166 MHz вызов контекстного меню срабатывал молниеносно, а заливка выделенного пункта меню или отрисовка теней могла запаздывать — однако это не мешало выбрать нужный пункт. При изменении размеров окна (в тех случаях, когда было включено отображение содержимого при изменении размеров) его граница не отставала от курсора мыши, интерфейс был отзывчивым, а перерисовка окна (точнее, части (!) окна) была долгой. То же самое с перемещением окон. Да, во многих приложениях длительные операции выполнялись в одном потоке с message loop, приложение могло начать «лагать» — в какой-то момент побелеть, перестать обрабатывать ввод, а затем разморозиться и пачкой обработать всё, что успели натыкать, но в хорошо сделанном софте не было такого, чтобы текст отставал от курсора при наборе. В тех местах, где работать быстро на среднестатистическом железе было нельзя в принципе, предусматривали разного рода ухищрения либо практического характера (например, вместо редактирования текста с кучей эффектов in-place был отдельно режим ввода текста, а затем его отрисовка после подтверждения ввода), либо направленные на уменьшение субъективного времени ожидания (вроде анимированной рамки при zoom in/out в фотошопе вместо песочных часов).
Про современный веб лучше и не вспоминать, это уже просто дичь какая-то (ноутбук с Core i5)
Эти микропакеты — следствие отсутствия нормальной стандартной библиотеки и бардака в языке, когда даже простейшие операции вроде «является ли X объектом» требуют проверки кучи каких-то идиотских кейсов (а то и философских рассуждений что считать объектом).
А как насчёт такого isPromise — «это promise если там есть метод „then“, но вообще вам не надо знать, что это promise». Даже учитывая, что прошло 5 лет — вечность по меркам JS — но всё равно, WAT?
Переезд от jQuery к %любой_новый_модный_фреймворк% без боли невозможен потому, что на деле это означает, что нужно заново написать всё то, что писалось на jQuery десятилетиями, всю кашу из плагинов, которая писалось плохо и неправильно. Это долго и дорого, зачастую дешевле нанять команду JS-программистов, коих сейчас хоть отбавляй, и написать заново. Если конечно речь идёт не о сайтике, где из jQuery — $.ajax да галерея с каруселью (но тогда возникает вопрос, на кой там вообще нужен %любой_новый_модный_фреймворк%?).
Представьте себе некий визуальный аналог 1С на jQuery, активно использующий, например, www.jeasyui.com/documentation/index.php поверх какого-нибудь backbone, а то и без него. Это катастрофа, его невозможно переписать «по чуть-чуть» на ходу, разные компоненты наследуются и переиспользуются друг в друге, каждый экран такой системы — этакое подобие ExtJS для бедных. В таких случаях единственная надежда — если автор предоставляет drop-in замену (в случае с EasyUI появились версии под Angular/React/Vue, однако они уже скорее напоминают простой UI kit и не могут толком заменить оригинал).
Бывает информация, которая ценна, будучи свежей, а бывает наоборот — которая со временем обретает ценность. Например, посты про разного рода сталкинг, строительство метро, мостов или других инженерных проектов, развитие инфраструктуры городов. Спустя какое-то время такие места либо перестают существовать, либо меняются до неузнаваемости, но интернет всё помнит. Цифровая археология, в общем :)
Ваш сайт дублирует t.me/сабж/s на независимом адресе.
Этого недостаточно. Тщательно проставленные теги/навигация/поиск/индексация в гугле — всё это не появятся волшебным образом. Скорее имеет смысл обратный подход — публиковаться в «большом блоге», а кросспостить в мессенджеры/твиттер/инсту, этакая замена RSS. Наверняка существуют технические решения, боты, но это требует некоторых навыков, а главное времени и желания, которые есть не у всех, тем более когда вот она, большая и активная аудитория телеги, прямо здесь.
Вообще это печально. Не понимаю людей, которые ведут большие блоги и пишут «лонгриды» в телеге. Если взять какой-нибудь условный ЖЖ, то там и сейчас можно найти пост пятнадцатилетней давности, а худшее, что может с ним случиться — это битые ссылки. Блог в телеге — это Twitter, лента новостей, только ещё более замкнутая в своей экосистеме. Невозможно найти, нормально поделиться картинкой или ссылкой — всё только внутри мессенджера. Какая-то часть контента торчит наружу через t.me (но почему, например, у t.me/s/habr_com посты видно, а у t.me/s/EOS_RU нет?), где-то ссылки на telegra.ph, комментарии через какой-то comments.bot, всё это чёрт знает как перелинковано друг с другом через tg://resolve, t.me, tele.click, tlgg.ru и иже с ними (спасибо РКН). Я не хочу такой новый интернет.
Кернинг — это про разное расстояние до соседа в зависимости от того, какой символ идёт дальше. Расстояния между разными парами символов намеренно делаются неравномерным чтобы скомпенсировать разный визуальный «вес» пар и сделать строку текста более равномерной визуально. В моноширинном шрифте по понятным причинами это расстояние должно быть одинаковым, иначе разъедутся колонки.
Равномерное изменение расстояния между символами — это именно трекинг, в народе «межбуквенный интервал».
В моноширинном шрифте не может быть кернинга по определению. Это трекинг — равномерное изменение расстояния между символами, а кернинг — неравномерное, только для определённых пар символов (когда, например, ширина A + V != AV).
Проблема есть — это когда она стабильно воспроизводится при определённых действиях.
Это неверно, даже если проблема не воспроизводится стабильно при определённых действиях — это всё ещё проблема. Следуя вашей логике, race condition, например, — не проблема?
И да, у меня тоже «временный нестандартный сбой» — после обновления snapshot-сборки на экспресс-панели появилась папка «Vivaldi» (пустая о_0) и 2 закладки — vivaldi.com/bk/airbnb-com и www.youtube.com.
Я понимаю, что нестабильные сборки именно потому и называются нестабильными, но огорчает подход «УМВР, переустановите браузер».
– Страшноватые штуки эти гели. Ты знаешь, что один из них задушил кучу народа в Лондоне пару лет назад? Нет, серьезно. Он там управлял системой подземки – никаких нареканий, идеальный работник, а потом однажды эта штука просто забыла запустить вентиляторы, когда было надо. Поезд заезжает на пятнадцать метров под землю, пассажиры выходят, воздуха нет, бум!
Джоэл уже слышал эту историю. Коронная фраза как-то связана со сломанными часами, если он все помнит точно.
– Эти штуки вроде как учатся на собственном опыте, правильно? – продолжает Джарвис. – Ну и все думали, что зельц научился запускать вентиляторы по какому-то очевидному признаку. Жару тела, движению, уровню углекислого газа, ну ты понимаешь. В результате выяснилось, что эта хрень просто смотрела за часами на стене. Прибытие поезда совпадало с предсказуемым набором паттернов на цифровом дисплее, поэтому она включала вертушки, когда видела один из них.
– Ага. Точно. – Джоэл качает головой. – А какие-то вандалы часы разбили.
У меня как раз противоположное впечатление — под Windows скорость реакции интерфейса была существенно выше, а скорость работы — ниже. На 166 MHz вызов контекстного меню срабатывал молниеносно, а заливка выделенного пункта меню или отрисовка теней могла запаздывать — однако это не мешало выбрать нужный пункт. При изменении размеров окна (в тех случаях, когда было включено отображение содержимого при изменении размеров) его граница не отставала от курсора мыши, интерфейс был отзывчивым, а перерисовка окна (точнее, части (!) окна) была долгой. То же самое с перемещением окон. Да, во многих приложениях длительные операции выполнялись в одном потоке с message loop, приложение могло начать «лагать» — в какой-то момент побелеть, перестать обрабатывать ввод, а затем разморозиться и пачкой обработать всё, что успели натыкать, но в хорошо сделанном софте не было такого, чтобы текст отставал от курсора при наборе. В тех местах, где работать быстро на среднестатистическом железе было нельзя в принципе, предусматривали разного рода ухищрения либо практического характера (например, вместо редактирования текста с кучей эффектов in-place был отдельно режим ввода текста, а затем его отрисовка после подтверждения ввода), либо направленные на уменьшение субъективного времени ожидания (вроде анимированной рамки при zoom in/out в фотошопе вместо песочных часов).
Про современный веб лучше и не вспоминать, это уже просто дичь какая-то (ноутбук с Core i5)
> sudo apt install termplay
Reading package lists... Done
Building dependency tree
Reading state information... Done
No apt package "termplay", but there is a snap with that name.
Try "snap install termplay"
> sudo snap install termplay
> termplay ytdl https://www.youtube.com/watch?v=dQw4w9WgXcQ
Checking youtube-dl... FAILED
youtube-dl: No such file or directory (os error 2)
> sudo snap install youtube-dl
> termplay ytdl https://www.youtube.com/watch?v=dQw4w9WgXcQ
Checking youtube-dl... FAILED
youtube-dl: No such file or directory (os error 2)
> sudo snap remove youtube-dl && sudo apt install youtube-dl
> termplay ytdl https://www.youtube.com/watch?v=dQw4w9WgXcQ
Checking youtube-dl... FAILED
youtube-dl: No such file or directory (os error 2)
> sudo snap remove termplay
> sudo apt autoremove --purge snapd && rm -fr ~/snap
stackoverflow.com/a/8511332
А как насчёт такого isPromise — «это promise если там есть метод „then“, но вообще вам не надо знать, что это promise». Даже учитывая, что прошло 5 лет — вечность по меркам JS — но всё равно, WAT?
stackoverflow.com/a/27746324
(За 5 лет, кстати, существенно ничего не изменилось. Упомянутый пакет делает то же самое)
Бег по граблям как национальный вид спорта.
Это замечательно, заставляет людей собираться вместе с геймпадами перед теликом, аж олдскулы сводит.
(типичная партия в Lovers)
hstr — замена Ctrl+R для людей.
Представьте себе некий визуальный аналог 1С на jQuery, активно использующий, например, www.jeasyui.com/documentation/index.php поверх какого-нибудь backbone, а то и без него. Это катастрофа, его невозможно переписать «по чуть-чуть» на ходу, разные компоненты наследуются и переиспользуются друг в друге, каждый экран такой системы — этакое подобие ExtJS для бедных. В таких случаях единственная надежда — если автор предоставляет drop-in замену (в случае с EasyUI появились версии под Angular/React/Vue, однако они уже скорее напоминают простой UI kit и не могут толком заменить оригинал).
Метафора хороша :)
Побуду капитаном: http://ru.wikipedia.org/wiki/Уничтожение_воробьёв
— Что, братишка, не получается?
создаёт исчерпывающую имитацию отдельной установки выбранной версии
Бывает информация, которая ценна, будучи свежей, а бывает наоборот — которая со временем обретает ценность. Например, посты про разного рода сталкинг, строительство метро, мостов или других инженерных проектов, развитие инфраструктуры городов. Спустя какое-то время такие места либо перестают существовать, либо меняются до неузнаваемости, но интернет всё помнит. Цифровая археология, в общем :)
Этого недостаточно. Тщательно проставленные теги/навигация/поиск/индексация в гугле — всё это не появятся волшебным образом. Скорее имеет смысл обратный подход — публиковаться в «большом блоге», а кросспостить в мессенджеры/твиттер/инсту, этакая замена RSS. Наверняка существуют технические решения, боты, но это требует некоторых навыков, а главное времени и желания, которые есть не у всех, тем более когда вот она, большая и активная аудитория телеги, прямо здесь.
Равномерное изменение расстояния между символами — это именно трекинг, в народе «межбуквенный интервал».
github.com/Swordfish90/cool-retro-term
Мне вот не нравится, что десятка по ночам из спящего режима выходит.
Завершение работы системы с открытым приложением, в котором есть несохранённые данные.
И да, у меня тоже «временный нестандартный сбой» — после обновления snapshot-сборки на экспресс-панели появилась папка «Vivaldi» (пустая о_0) и 2 закладки — vivaldi.com/bk/airbnb-com и www.youtube.com.
Я понимаю, что нестабильные сборки именно потому и называются нестабильными, но огорчает подход «УМВР, переустановите браузер».
Обновление с 2.9.1719.3-1 до 2.10.1745.18-1
Джоэл уже слышал эту историю. Коронная фраза как-то связана со сломанными часами, если он все помнит точно.
– Эти штуки вроде как учатся на собственном опыте, правильно? – продолжает Джарвис. – Ну и все думали, что зельц научился запускать вентиляторы по какому-то очевидному признаку. Жару тела, движению, уровню углекислого газа, ну ты понимаешь. В результате выяснилось, что эта хрень просто смотрела за часами на стене. Прибытие поезда совпадало с предсказуемым набором паттернов на цифровом дисплее, поэтому она включала вертушки, когда видела один из них.
– Ага. Точно. – Джоэл качает головой. – А какие-то вандалы часы разбили.
(«Морские звёзды», Питер Уоттс)
Для JS тут на хабре тоже что-то подобное было.