Обновить
49
2.6

Люблю делать UI и офисные приложения

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

Навеяно сегодняшней статьёй «История: как Microsoft шесть раз отказывалась от виджетов, но потом возвращала их».

Понятно, что Майкрософт просто хочет содрать с бедолаги, купившего (тем более, скачавшего) винды, 33 шкуры. И поэтому делает как бы виджеты, но они все должны вести туда, куда хочет Майкрософт. В Copilot, MSN и тому подобные места. Но давайте помечтаем, что могла бы сделать Майкрософт, если бы по-настоящему хотела сделать своим юзерам удобно.

  1. Виджет это приложение, точка Приложения бывают хорошие, годные и злые, вредные. Любое приложение может сломать ваш компьютер, украсть данные и деньги. Ответственность делится так: автор приложения прилагает все усилия, чтобы приложение не делало ничего плохого. Юзер прилагает все усилия, чтобы не ставить подозрительные приложения хрен пойми откуда. Если вам кажется, что это наивно, вспомните, что именно эта схема действует на PC прямо сейчас. На Github'е @dartraiden выложил драйвер (даже не простое приложение!), который позволяет использовать недорогие карты для майнинга вместо видеокарт (за 10-15% от цены последних) и написал: «Если вы мне не доверяете, вот инструкция, как собрать драйвер самому». Спасибо, но что-то не хочется )). Собирать драйвер самому. Я доверяю автору проекта! А ещё — авторам редактора Notepad++, браузера Firefox, файлового менеджера FAR (который почти в каждой сессии просит права админа, потому что я захожу им в системные папки) и многим другим авторам приложений.

  2. Любое приложение может зарегистрировать себя в качестве виджета. Такая технология у Майкрософт уже есть, и называется ActiveX. Она до сих прекрасно работает (в день, когда сломается ActiveX, я перейду на Линукс, потому что только старые приложения меня под виндой и держат).

    Суть технологии в том, что у вас есть файл .dll, который регистрируется стандартной командой regsvr32 в той папке, где лежит (при переносе в другую папку его надо перерегистрировать). Чтобы не заставлять пользователя вручную выполнять эту команду, её обычно выполняет инсталлятор. (Или просто сам вызывает регистрирующую функцию из этой .dll — ходил анекдот про авторов инсталлятора, которые «сделали ядро в новой версии на X килобайт меньше, включив в него облегчённую версию regsvr32», потому что не знали азов программирования под Windows).

    Этот файл просто создаёт маленькое окошко (говоря техническим языком, window handle), может быть написан на C или Rust, занимать килобайты и работать со скоростью света.

    Всё, что вам нужно — дополнительно записывать при регистрации идентификатор своего ActiveX-компонента в ветку реестра с виджетами.

    Чтобы было проще создавать виджеты на HTML/CSS/JS, Майкрософт мог бы добавить новый тип проекта в Visual Studio: HTML Widget. Он брал бы файлы .html/.css/.js, метаданные и запаковывал бы в ActiveX-компонент вместе с WebView2 (браузерным окном). И ваш виджет отображался бы при помощи Chromium, как это делает приложение (не виджет) Steam, но весил бы, в отличие от Steam, ровно столько, сколько весят картинки и текст.

    Разумеется, ничто не мешало бы создать виджет на C#, Qt, Delphi, на базе своей версии Chromium (как это делает Steam), на базе Gecko, на базе чего угодно.

  3. Будучи хозяйкой бала, Windows предлагала бы юзеру зарегистрированные виджеты перетаскивать из палитры виджетов в следующие места: а) рабочий стол, б) панель задач, в) меню «Пуск». Разумеется, любой виджет обязан был бы имплементировать помимо стандартных интерфейсов ActiveX-компонента специальный интерфейс IAmWidget и через него рассказывать о своих требованиях. Так что виджет, которому нужна минимальная площадь 512x512 пикселей, можно было бы создать только на рабочем столе.

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

Теги:
0
Комментарии0

Хочу поделиться маленьким хинтом с теми айтишниками, которые делают своими руками не только компьютерные приспособы, но и банальный ремонт, в частности канализацию. Долго думал, постить или нет, поскольку хинт из разряда «шуруп молотком не забиваем», но увидев, как плюсуют ругательные отзывы на трубы в онлайновых магазинах («Я такой труба шатал — уплотнители текут!»), решил, что кто-то, возможно, и не знает. Я сам пришёл к этому путём экспериментов, и жаль, что мне никто не рассказал.

Итак, речь идёт о семействе типовых полипропиленовых канализационных труб (в нашей рознице они диаметром 50мм). В семейство входят как сами трубы, так и всяческое углы, отводы, тройники и прочее добро, из которого прикольно делать беговую трассу для развлечения хомяка. Люди же, которые используют трубы по более скучному назначению (отводить воды), вскоре выясняют, что…

При усаживание труб друг в друга, деформируется резинка (без того стоЯщая волной) и пропадает герметичность стыка. Хотя использую при монтаже Сантехническую смазку, усаживаем прокручивая, а не вдавливаем. В общем сами трубы хороши, плотные, пластик достаточно толстый, но вот эти прокладки... Уплотнители текут!!!111 [куча лайков]

Решение просто, как и всё гениальное:

  1. Наматываем на крайние несколько сантиметров «папы» пару-тройку слоёв изоленты, чтобы получить мягкий деформирующийся уплотнитель.

  2. Вставляем «папу» в «маму».

  3. На «маму» (с самого края) надеваем червячный хомут. Затягиваем его простой отвёрткой даже в самых труднодоступных местах, типа угла за унитазом.

Вот он, хранитель трубных соединений.
Вот он, хранитель трубных соединений.

У стандартной пятидесятимиллиметровой трубы наружный диаметр у края составляет ~55мм. Это значит, что хомут нужен с диапазоном 40-60мм. Его цена составляет примерно 40% от цены метровой трубы. Это очень немного за радость собрать герметичное соединение, которое даже не надо проверять, подкладывая газетку и зорко высматривая на ней капли. Собрал и забыл.

Дополнительный плюс — соединение получится жёстким, так что если конструировать сложную гидротехническую систему с кучей тентаклей, она будет оставаться монолитной при отсоединении (например, для профилактической прочистки).

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии40

После выхода Firefox 136 оказалось, что разработчики значительно испортили переработали стартовую страницу (about:newtab). В комментарии к новости о релизе я уже поделился своим решением, но по мере того, как подмечал новые детали, решил завести под это дело отдельный пост и время от времени допиливать его. Коротко о том, что мы исправляем: сетку с шорткатами сделали слишком узкой, слишком высокой, а при наведении курсора подпись «прыгает».

Прежде всего, для этой задачи не помогут аддоны типа Stylus, потому что по соображениям безопасности им запрещён доступ к стилизации внутренних страниц. Нам понадобится папка chrome в профиле FF. Под Windows это \AppData\Roaming\Mozilla\Firefox\Profiles\profile\chrome. Если вы хотите подправить что-то в интерфейсе (стилизовать тулбар, например), создайте там файл с именем userChrome.css. Например, так можно удалить недавно появившуюся кнопку для показа всех вкладок:

#alltabs-button
{
display: none !important;
}

Но нам нужно поменять содержимое стартовой страницы, поэтому создадим в той же папке файл userContent.css.

Сетка стала узкой и высокой, потому что кто-то из дизайнеров поменял местами промежуток по горизонтали (20px → 0) и вертикали (0 → 20px). Будем надеяться, что хоть сознательно.

Вернём всё как было (ну, или можете установить свои значения):

ul.top-sites-list
{
column-gap: 20px !important;
row-gap: 0 !important;
}

Длинные заголовки при наведении мыши прыгают потому, что включается (при наведении, да!) режим переноса по словам. Пожалуйста, никогда так не делайте в пользовательских интерфейсах. Я не страдаю эпилепсией, но даже меня затошнило. Что уж говорить о более сенситивных личностях.

Исправляем:

.top-sites-list .top-site-outer .title .title-label
{
white-space: nowrap !important;

-webkit-line-clamp: none !important;
}

Ну и, наконец, шорткат можно сделать чуть побольше. Размеры его элементов рассчитываются на основе переменной, которая имеет значение 32px. Если добавить 4 пикселя, шорткат будет выглядеть, КМК, поприятнее:

:root
{
--size-item-large: 36px !important;
}

P.S. Пользуясь случаем, хочу попросить рекомендаций: чем вы пользуетесь в качестве главной страницы? Чтобы там были шорткаты (с полноценными preview, которые зачем-то убрала Мозилла), погода, калькулятор и что-нибудь ещё? Думаю, не запилить ли свой аддон со всем этим блэкджеком.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

После сегодняшних новостей (Контрибьютор C++ забанен за использование слова «question» в названии своей статьи) попытался представить, как бы выглядели мемуары виновника торжества.

Если лень читать (новости, не мемуары):

  • Автор текстов, статей и постов по имени Эндрю Томазос написал для комитета WG21, занимающегося развитием C++, статью «Вопрос UB» (UB — неопределённое поведение, жупел мира C++).

  • Кто-то углядел в названии аллюзии на окончательное решение кое-чьего вопроса, и Эндрю попросили статью переименовать. Эндрю написал, что ничего такого он в виду не имел, и переименовывать статью не стал. За этого его выгнали из комитета.

  • Анонимный комментатор на Reddit написал, что, во-первых, его не выгоняли, просто организация, которую он представлял в комитете, попросила её больше не представлять в комитете. Во-вторых, дело не в названии, просто свои статьи он писал при помощи Chat-GPT, не давал запретить использование Chat-GPT, и вообще, контрибьютор был сасайный (sucky). Так что, в-третьих, правильно его выгнали за название.

  • Эндрю ответил, отвергнув все обвинения в использовании Chat-GPT, и началась ДРАМА.

Теги:
Всего голосов 8: ↑5 и ↓3+4
Комментарии0

Информация

В рейтинге
1 365-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Разработчик приложений
HTML
CSS
JavaScript
Windows API
C++
UI/UX дизайн
Разработка интерфейсов
Дизайн продукта
Adobe Photoshop
Проектирование интерфейсов