Виджет часов и погоды на телефоне настроен так, чтобы включать второй блок часов и погоды в путешествиях. Например, ты выехал в другой часовой пояс и другой климат, но все еще хочешь иногда смотреть на погоду и время в своем родном городе. Это прикольно.
Но конкретно мой виджет от Huawei сделан с ошибкой, он включает вторые часы, даже если ты просто перешёл в другой микрорайон. Видимо, у него в коде нет информации о разрешении, с которым позиционный модуль докладывает о смене "региона" пребывания.
В итоге выходишь из дома, а телефон тебе такой СЧАСТЛИВОГО ПУТЕШЕСТВИЯ ЧЕЛОВЕК, ВОТ ТЕБЕ ПОГОДА И ВРЕМЯ В ТВОЕМ НОВОМ ЧАСОВОМ ПОЯСЕ, СЧАСТЛИВО ПОНЕЖИТЬСЯ В АБСОЛЮТНО ДРУГОМ КЛИМАТЕ, И ВООБЩЕ ТЫ МОЛОДЕЦ ТАК ЧАСТО ПУТЕШЕСТВУЕШЬ, СЕЙЧАС ЕЩЕ РОУМИНГ ВКЛЮЧУ, СМОТРИ НЕ СЛОВИ ДЖЕТЛАГ.
Но конкретно мой виджет от Huawei сделан с ошибкой, он включает вторые часы, даже если ты просто перешёл в другой микрорайон. Видимо, у него в коде нет информации о разрешении, с которым позиционный модуль докладывает о смене "региона" пребывания.
В итоге выходишь из дома, а телефон тебе такой СЧАСТЛИВОГО ПУТЕШЕСТВИЯ ЧЕЛОВЕК, ВОТ ТЕБЕ ПОГОДА И ВРЕМЯ В ТВОЕМ НОВОМ ЧАСОВОМ ПОЯСЕ, СЧАСТЛИВО ПОНЕЖИТЬСЯ В АБСОЛЮТНО ДРУГОМ КЛИМАТЕ, И ВООБЩЕ ТЫ МОЛОДЕЦ ТАК ЧАСТО ПУТЕШЕСТВУЕШЬ, СЕЙЧАС ЕЩЕ РОУМИНГ ВКЛЮЧУ, СМОТРИ НЕ СЛОВИ ДЖЕТЛАГ.
🤣16😁8
Я всегда был уверен, что системы рекомендаций работают так плохо, потому что это слишком сложная задача. Владельцы площадок бьются с алгоритмами, машинным обучением, деревьями решений и взвешенными суммами, но получается всё равно херня, и человеку могут рекомендовать нерелевантный бред (и, что ещё хуже — не рекомендовать интересный для него контент).
Кажется, хорошо работают только рекомендации на Ютубе, но этому есть объяснение: контент на Ютубе более длительный и дорогой. Его сложнее производить, он выходит реже. Качественный ролик на Ютубе не будет говном практически независимо от темы, на которую он снят. А ещё меньшее число объёмных роликов проще кластеризовать и можно предлагать пользователю в небольших количествах.
Но если мы откроем YouTube Shorts (это очередной аналог тиктока с короткими вертикальными видео), то заметим, что качество рекомендаций упало сразу на два порядка: какие-то тупые попсовые шутки, "удивительные" факты из жизни, завлекающие отрывки из фильмов "код смотри в телеграм-канале", озвучка анекдотов и прочий мусор. Алгоритмы уже совсем не справляются с тем, чтобы предложить что-то годное, не говоря уже о релевантности конкретно мне, хотя история моих просмотров и вкусов Ютубу, очевидно, известна.
Тем не менее, иногда разработчики могут не только не уметь, но и не хотеть писать нормальные рекомендации. Вот ВК предложил мне BadComedian в блоке "Интересные авторы". Оставим в стороне, что Бэдкомендиан это ютубер, и у него в ВК в лучшем случае будут репосты ссылок на Ютуб. Но мне предлагают не паблик, а личную страницу.... на которой не было записей с сентября 2021 года. Нет совершенно никакого смысла быть подписанным на личную страницу Бэдкомедиана сейчас. Кажется, единственный критерий, на котором основывались эти рекомендации: общее число подписчиков.
Как должны работать рекомендации на самом деле? Алгоритмически я бы оценивал частоту постов (кстати, чрезмерно частые это тоже плохо, должно работать в минус), оценивал бы, является пост просто публикацией внешней ссылки на другой ресурс, является ли репостом паблика, и смотрел бы, сколько прошло времени с последней записи на странице автора. Наверное, в качестве коэффициента с небольшим весом можно добавить ещё объём контента в посте и активность людей (лайки + комментарии). Причём, делается это достаточно просто, никакой ML не нужен. Даже такая оценка, не берущая в расчёт тематику страницы, всё равно лучше, чем "Просто покажем людей, на которых когда-то подписалось куча народу, и им до сих пор лень отписаться после прекращения активности автора".
По крайней мере теперь меня не удивляет, что хвалёные Клипы постоянно подсовывают мне какой-то подростковый шлак вместо крутых видео с полётами на FPV-квадрокоптерах. YouTube Shorts по крайней мере пару раз такие вещи предлагал, а вот Клипы вообще ни разу (станицу Клипов я не открываю, разумеется, но в ленте новостей встречаются блоки с автовоспроизведением).
Кстати, на скрине есть второй автор — Стас "Ай как просто". Его банят на Ютубе за критику западной модели текущих событий, и он пишет: "Буду создавать каналы-однодневки, куда деваться". То есть у него даже мысли не возникает, что какая-то ещё площадка может служить его целям. Ну с таким отношением других площадок к рекомендациям — понятно.
#web
Кажется, хорошо работают только рекомендации на Ютубе, но этому есть объяснение: контент на Ютубе более длительный и дорогой. Его сложнее производить, он выходит реже. Качественный ролик на Ютубе не будет говном практически независимо от темы, на которую он снят. А ещё меньшее число объёмных роликов проще кластеризовать и можно предлагать пользователю в небольших количествах.
Но если мы откроем YouTube Shorts (это очередной аналог тиктока с короткими вертикальными видео), то заметим, что качество рекомендаций упало сразу на два порядка: какие-то тупые попсовые шутки, "удивительные" факты из жизни, завлекающие отрывки из фильмов "код смотри в телеграм-канале", озвучка анекдотов и прочий мусор. Алгоритмы уже совсем не справляются с тем, чтобы предложить что-то годное, не говоря уже о релевантности конкретно мне, хотя история моих просмотров и вкусов Ютубу, очевидно, известна.
Тем не менее, иногда разработчики могут не только не уметь, но и не хотеть писать нормальные рекомендации. Вот ВК предложил мне BadComedian в блоке "Интересные авторы". Оставим в стороне, что Бэдкомендиан это ютубер, и у него в ВК в лучшем случае будут репосты ссылок на Ютуб. Но мне предлагают не паблик, а личную страницу.... на которой не было записей с сентября 2021 года. Нет совершенно никакого смысла быть подписанным на личную страницу Бэдкомедиана сейчас. Кажется, единственный критерий, на котором основывались эти рекомендации: общее число подписчиков.
Как должны работать рекомендации на самом деле? Алгоритмически я бы оценивал частоту постов (кстати, чрезмерно частые это тоже плохо, должно работать в минус), оценивал бы, является пост просто публикацией внешней ссылки на другой ресурс, является ли репостом паблика, и смотрел бы, сколько прошло времени с последней записи на странице автора. Наверное, в качестве коэффициента с небольшим весом можно добавить ещё объём контента в посте и активность людей (лайки + комментарии). Причём, делается это достаточно просто, никакой ML не нужен. Даже такая оценка, не берущая в расчёт тематику страницы, всё равно лучше, чем "Просто покажем людей, на которых когда-то подписалось куча народу, и им до сих пор лень отписаться после прекращения активности автора".
По крайней мере теперь меня не удивляет, что хвалёные Клипы постоянно подсовывают мне какой-то подростковый шлак вместо крутых видео с полётами на FPV-квадрокоптерах. YouTube Shorts по крайней мере пару раз такие вещи предлагал, а вот Клипы вообще ни разу (станицу Клипов я не открываю, разумеется, но в ленте новостей встречаются блоки с автовоспроизведением).
Кстати, на скрине есть второй автор — Стас "Ай как просто". Его банят на Ютубе за критику западной модели текущих событий, и он пишет: "Буду создавать каналы-однодневки, куда деваться". То есть у него даже мысли не возникает, что какая-то ещё площадка может служить его целям. Ну с таким отношением других площадок к рекомендациям — понятно.
#web
🤔2👍1
Марта Уэллс: "Отказ всех систем", "Искусственное состояние" и другие книги серии, я закончил на "Сетевой эффект" (больше на русском нет).
Очень странные впечатления: серия получила кучу престижных наград, и о ней много положительных отзывов, но персонально про себя я бы сказал, что мне скорее не понравилось, и рекомендовать бы не стал. Хотя и бросить желания не было.
Далёкое будущее, корпоративная антиутопия (мегакорпорации стали де-факто государствами), аугментация, человечество давно расселилось по другим мирам. Главный герой — искусственно созданный киборг, предоставляемый в аренду страховой компанией для защиты людей, например, в условиях работы на незаселённых планетах с потенциально враждебной фауной. Повествование ведётся от его лица. Изначально в этих киборгов встраивают специальный управляющий модуль, который причиняет боль органической части при неповиновении и других нарушениях (то есть фактически он раб). Но именно главный герой этот модуль взламывает, получает свободу воли, и не нападает на людей, как можно было бы подумать, а пытается интегрироваться в человеческое общество.
Завязка довольно банальная. К тому же, каких-то уникальных идей или необычных поворотов в сюжете особо нет. Повествование строится вокруг эмоций, исследования взаимоотношений (как людей между собой, так и людей с машинами и машин между собой). Поскольку события передаются от первого лица, мы "слышим" мысли героя, и они, на мой субъективный взгляд, переполнены эмоциями, зачастую противоречащими последующим действиям и решениям. У меня даже есть полушутливая гипотеза, что автор-женщина просто перенесла на бумагу образ мышления женщин.
По сюжету обычно происходит какая-то беда, из которой главный герой всех спасает, но попутно кто-то ещё и спасает его. Впрочем, не сказать, что это как-то скучно или избито — сами истории вполне захватывающие, следить за развитием интересно. И всё-таки, это какая-то нестандартная фантастика. Основные события как бы понижены в значимости: герой не сталкивается с по-настоящему серьёзными внешними трудностями, он легко взламывает абсолютно все внешние системы, выдерживает десятки попаданий из ракетницы, а между миссиями может полностью восстанавливаться в супер продвинутом роботизированном космическом корабле, с которым дружит.
Автор явно хотела рассказать об эмоциональном становлении, поиске себя, доверии и контакте с другими, но почему-то выбрала для этого сеттинг войны киборгов в космосе. Имеет право, и, возможно, у неё даже получилось хорошо, просто эта книга совсем не для меня, и конкретно мои ожидания скорее не оправдались.
#fiction
Очень странные впечатления: серия получила кучу престижных наград, и о ней много положительных отзывов, но персонально про себя я бы сказал, что мне скорее не понравилось, и рекомендовать бы не стал. Хотя и бросить желания не было.
Далёкое будущее, корпоративная антиутопия (мегакорпорации стали де-факто государствами), аугментация, человечество давно расселилось по другим мирам. Главный герой — искусственно созданный киборг, предоставляемый в аренду страховой компанией для защиты людей, например, в условиях работы на незаселённых планетах с потенциально враждебной фауной. Повествование ведётся от его лица. Изначально в этих киборгов встраивают специальный управляющий модуль, который причиняет боль органической части при неповиновении и других нарушениях (то есть фактически он раб). Но именно главный герой этот модуль взламывает, получает свободу воли, и не нападает на людей, как можно было бы подумать, а пытается интегрироваться в человеческое общество.
Завязка довольно банальная. К тому же, каких-то уникальных идей или необычных поворотов в сюжете особо нет. Повествование строится вокруг эмоций, исследования взаимоотношений (как людей между собой, так и людей с машинами и машин между собой). Поскольку события передаются от первого лица, мы "слышим" мысли героя, и они, на мой субъективный взгляд, переполнены эмоциями, зачастую противоречащими последующим действиям и решениям. У меня даже есть полушутливая гипотеза, что автор-женщина просто перенесла на бумагу образ мышления женщин.
По сюжету обычно происходит какая-то беда, из которой главный герой всех спасает, но попутно кто-то ещё и спасает его. Впрочем, не сказать, что это как-то скучно или избито — сами истории вполне захватывающие, следить за развитием интересно. И всё-таки, это какая-то нестандартная фантастика. Основные события как бы понижены в значимости: герой не сталкивается с по-настоящему серьёзными внешними трудностями, он легко взламывает абсолютно все внешние системы, выдерживает десятки попаданий из ракетницы, а между миссиями может полностью восстанавливаться в супер продвинутом роботизированном космическом корабле, с которым дружит.
Автор явно хотела рассказать об эмоциональном становлении, поиске себя, доверии и контакте с другими, но почему-то выбрала для этого сеттинг войны киборгов в космосе. Имеет право, и, возможно, у неё даже получилось хорошо, просто эта книга совсем не для меня, и конкретно мои ожидания скорее не оправдались.
#fiction
👍2
Поставили индукционную плиту. Технология существует уже очень давно, но дошли почему-то до неё только сейчас (а зря, нужно было раньше).
Во-первых, работает на магии. Даже диплом технического вуза не позволяет мне полностью избавиться от вау-эффекта, когда ты ставишь посуду на плиту, никакая конфорка под ней не зажигается, но при этом сама посуда совершенно магически начинает нагреваться целиком.
Во-вторых, когда ты видишь, как трёхлитровая кастрюля воды доходит до кипения за 5 минут, а не за 20, то хочется очень громко крикнуть голосом Джесси Пинкмана: "Science, bitch!".
Вообще, больше всего поражают как раз вещи, которые ломают привычные представления. Смартфон сложнее, чем индукционная плита, но маленькая коробочка с экраном у меня была ещё в глубоком детстве — тетрис. И не сказать, что смартфон нарушил какой-то обыденный паттерн из устройства мира вокруг — та же коробочка, чуть более цветная.
А вот плита совсем другое дело. Она работает не так, как обычная. Да, есть микроволновка, у неё похожий принцип, но там продукт лежит внутри, а ситуация "Положить вещь в закрытый ящик, и она там нагреется" — довольно привычна. Плита же на индукции воспринимается, как что-то из космоса. Очень круто, советую всем, у кого, как у и нас, годами не доходили руки апгрейднуться.
#life
Во-первых, работает на магии. Даже диплом технического вуза не позволяет мне полностью избавиться от вау-эффекта, когда ты ставишь посуду на плиту, никакая конфорка под ней не зажигается, но при этом сама посуда совершенно магически начинает нагреваться целиком.
Во-вторых, когда ты видишь, как трёхлитровая кастрюля воды доходит до кипения за 5 минут, а не за 20, то хочется очень громко крикнуть голосом Джесси Пинкмана: "Science, bitch!".
Вообще, больше всего поражают как раз вещи, которые ломают привычные представления. Смартфон сложнее, чем индукционная плита, но маленькая коробочка с экраном у меня была ещё в глубоком детстве — тетрис. И не сказать, что смартфон нарушил какой-то обыденный паттерн из устройства мира вокруг — та же коробочка, чуть более цветная.
А вот плита совсем другое дело. Она работает не так, как обычная. Да, есть микроволновка, у неё похожий принцип, но там продукт лежит внутри, а ситуация "Положить вещь в закрытый ящик, и она там нагреется" — довольно привычна. Плита же на индукции воспринимается, как что-то из космоса. Очень круто, советую всем, у кого, как у и нас, годами не доходили руки апгрейднуться.
#life
👍21🔥4😁1
It's alive!
Любопытно наблюдать, как видеокарты растут с каждым поколением. Когда-то видеокарта занимала одну секцию на задней панели корпуса, потом две, сейчас вот три. Еще в комплекте и с корпусом и с видеокартой идет дополнительная поддержка для свисающего края (на фото не видно, но она там есть).
Понятно, что и по размерам и по цене видеокарта это давно уже 60-70% от всего компьютера. Техника эволюционирует в соответствии с потребностями людей, и вот так оказалось, что выводить красивую картинку (кодировать видео, выполнять параллельные вычисления итд) мы хотим чаще всего.
Windows 11 при установке в какой-то момент блокирует продвижение дальше, пока не подключишься к интернету, и нет никаких штатных опций от этого отказаться. При этом, например, в моем случае подключиться можно было только после установки драйверов на материнку, которые, разумеется, нельзя поставить, пока не завершится установка винды. К счастью, в интернете есть инструкция, рассказывающая о последовательности нажатий клавиш и ввода команд, позволяющих этот блок преодолеть и продолжить установку Windows. И ведь какой-то менеджер там у них это придумал. До чего нужно ненавидеть своих пользователей.
Рад, что решил взять Full Tower, а не Midi, хотя говорят, дескать, это не модно :) Некоторые компоненты было очень тяжело впихнуть, не из-за того, что они не влезали, а потому что трудно подлезть. Ну и для всех проводов за задней стенкой место нашлось едва-едва. Но корпус очень удобный, многие вещи продуманы хорошо, есть посадочные гнезда для всего необходимого.
Первый мой системник без HDD и с водяным охлаждением. Пока ничего не пробовал, переношу данные. Ну, в добрый путь.
Любопытно наблюдать, как видеокарты растут с каждым поколением. Когда-то видеокарта занимала одну секцию на задней панели корпуса, потом две, сейчас вот три. Еще в комплекте и с корпусом и с видеокартой идет дополнительная поддержка для свисающего края (на фото не видно, но она там есть).
Понятно, что и по размерам и по цене видеокарта это давно уже 60-70% от всего компьютера. Техника эволюционирует в соответствии с потребностями людей, и вот так оказалось, что выводить красивую картинку (кодировать видео, выполнять параллельные вычисления итд) мы хотим чаще всего.
Windows 11 при установке в какой-то момент блокирует продвижение дальше, пока не подключишься к интернету, и нет никаких штатных опций от этого отказаться. При этом, например, в моем случае подключиться можно было только после установки драйверов на материнку, которые, разумеется, нельзя поставить, пока не завершится установка винды. К счастью, в интернете есть инструкция, рассказывающая о последовательности нажатий клавиш и ввода команд, позволяющих этот блок преодолеть и продолжить установку Windows. И ведь какой-то менеджер там у них это придумал. До чего нужно ненавидеть своих пользователей.
Рад, что решил взять Full Tower, а не Midi, хотя говорят, дескать, это не модно :) Некоторые компоненты было очень тяжело впихнуть, не из-за того, что они не влезали, а потому что трудно подлезть. Ну и для всех проводов за задней стенкой место нашлось едва-едва. Но корпус очень удобный, многие вещи продуманы хорошо, есть посадочные гнезда для всего необходимого.
Первый мой системник без HDD и с водяным охлаждением. Пока ничего не пробовал, переношу данные. Ну, в добрый путь.
🔥13👍6🤬1🤩1
Мне тут показали очень крутую математическую модель свободного рынка, основанную на научной работе аж 2002 года. Называется Yard-sale model и показывает, почему свободный рынок тяготеет к тому, чтобы создавать небольшое количество сверхбогатых людей, оставляя основную массу относительно бедными.
Фокус в том, что получение дохода это в общем случае риск: вложение денег или эквивалента денег в обмен на возможность их преумножить. Модель базируется на постулате, что люди готовы рисковать в среднем лишь некоторым процентом своего текущего имущества, и как только одни становятся чуть богаче других (не важно, случайно ли, или потому что они, например, умнее), то их способности по риску тоже возрастают, что мгновенно разбалансирует систему: в случае "выигрыша" более бедный человек получает меньше в абсолютных числах, в случае "проигрыша" богатый теряет меньше в относительных числах. Это приводит к лавинообразному росту разрыва между богатыми и бедными.
Мысль не новая: богатые богатеют, бедные беднеют, об этом уже столетиями говорят. Но важная черта конкретно этой модели в том, что она не предполагает, будто бы богатые каким-то образом воруют деньги, эксплуатируют бедных или что там ещё приписывают. В рамках Yard-sale model само по себе устройство свободного рынка органически и неизбежно приводит к такому разрыву, даже если все его участники полностью равны и в своих способностях и в уровне везения.
По ссылке упрощённое объяснение модели с интересными симуляциями, в которых можно понажимать кнопки и посмотреть, к каким результатам это приводит.
Любопытно, что там же и приводится способ борьбы с такой проблемой: если брать со всех "налог", пропорциональный объёму имущества, и поровну раздавать его участникам заново, то степень разрыва значительно уменьшается. Даже если брать совершенно незначительную долю, например половину процента, на большом количестве повторений отличие в разрыве между бедными и богатыми колоссальное.
Да, это выглядит как какой-то своеобразный коммунизм с госрегулированием, и, разумеется, реальный мир устроен сложнее. Но это всё-таки некоторый дополнительный аргумент в спорах с фанатами капитализма и свободного рынка.
Фокус в том, что получение дохода это в общем случае риск: вложение денег или эквивалента денег в обмен на возможность их преумножить. Модель базируется на постулате, что люди готовы рисковать в среднем лишь некоторым процентом своего текущего имущества, и как только одни становятся чуть богаче других (не важно, случайно ли, или потому что они, например, умнее), то их способности по риску тоже возрастают, что мгновенно разбалансирует систему: в случае "выигрыша" более бедный человек получает меньше в абсолютных числах, в случае "проигрыша" богатый теряет меньше в относительных числах. Это приводит к лавинообразному росту разрыва между богатыми и бедными.
Мысль не новая: богатые богатеют, бедные беднеют, об этом уже столетиями говорят. Но важная черта конкретно этой модели в том, что она не предполагает, будто бы богатые каким-то образом воруют деньги, эксплуатируют бедных или что там ещё приписывают. В рамках Yard-sale model само по себе устройство свободного рынка органически и неизбежно приводит к такому разрыву, даже если все его участники полностью равны и в своих способностях и в уровне везения.
По ссылке упрощённое объяснение модели с интересными симуляциями, в которых можно понажимать кнопки и посмотреть, к каким результатам это приводит.
Любопытно, что там же и приводится способ борьбы с такой проблемой: если брать со всех "налог", пропорциональный объёму имущества, и поровну раздавать его участникам заново, то степень разрыва значительно уменьшается. Даже если брать совершенно незначительную долю, например половину процента, на большом количестве повторений отличие в разрыве между бедными и богатыми колоссальное.
Да, это выглядит как какой-то своеобразный коммунизм с госрегулированием, и, разумеется, реальный мир устроен сложнее. Но это всё-таки некоторый дополнительный аргумент в спорах с фанатами капитализма и свободного рынка.
👍13🤔4
Вот вам ещё чуть-чуть про лицензионный софт. Microsoft Office запрещает ставить две свои разные версии на один компьютер: установщик специально при старте читает, есть ли уже в системе офис, и не даёт продолжить, если есть. Например, нельзя установить Office 2016 и Office 365: если поставить сначала любой из них, установка второго уже не запустится.
Зачем мне две версии? Потому что лицензия. Я давно ещё купил себе личную лицензию на Office 365, из которой использую Word, Excel, Outlook. Но на работе у нас применяется Skype For Business для звонков. Он тоже лицензионный. Проблема в том, что он распространяется только в корпоративной лицензии Microsoft Exchange, а наша рабочая корпоративная лицензия не подразумевает остальной пакет (Word, Excel и т.д.).
В итоге, если я ставлю что-то под рабочий аккаунт, у меня там нет Word и Excel, а если под ставлю под личный — нет Exchange, который позволяет зайти в Skype For Business. И параллельно работает это только в том случае, если использовать принципиально две разные версии офиса, разных лет выпуска. Но вот они то совместно и не ставятся. Microsoft почему-то не предположили, что часть их программ человек может использовать для личных нужд по персональной лицензии, а другую часть будет предоставлять работодатель по корпоративной.
Впрочем, выход есть: запустить два установщика одновременно. Каждый из них прописывает себя в системе по окончании установки, а проверяет наличие соседа в начале. Если запустить сразу оба, оба и установятся, потому что к моменту запуска никто не будет знать о втором.
Удобство за твои деньги!
Зачем мне две версии? Потому что лицензия. Я давно ещё купил себе личную лицензию на Office 365, из которой использую Word, Excel, Outlook. Но на работе у нас применяется Skype For Business для звонков. Он тоже лицензионный. Проблема в том, что он распространяется только в корпоративной лицензии Microsoft Exchange, а наша рабочая корпоративная лицензия не подразумевает остальной пакет (Word, Excel и т.д.).
В итоге, если я ставлю что-то под рабочий аккаунт, у меня там нет Word и Excel, а если под ставлю под личный — нет Exchange, который позволяет зайти в Skype For Business. И параллельно работает это только в том случае, если использовать принципиально две разные версии офиса, разных лет выпуска. Но вот они то совместно и не ставятся. Microsoft почему-то не предположили, что часть их программ человек может использовать для личных нужд по персональной лицензии, а другую часть будет предоставлять работодатель по корпоративной.
Впрочем, выход есть: запустить два установщика одновременно. Каждый из них прописывает себя в системе по окончании установки, а проверяет наличие соседа в начале. Если запустить сразу оба, оба и установятся, потому что к моменту запуска никто не будет знать о втором.
Удобство за твои деньги!
😁30🤡10🤔3
Графика в видеоиграх выглядит, как мультфильм, и отличается от графики в реальном мире либо на фотографии. Причина этого такая: чтобы нарисовать картинку, нам нужно знать, в каких местах какое количество света и цвета. Но свет в реальности — очень сложная фигня, и по факту он отражается от всего подряд, в том числе от незеркальных и неметаллических поверхностей. Ярким летним днём у вас в квартире светло даже там, куда не доходят напрямую солнечные лучи через окна.
Трёхмерные мультики и компьютерные эффекты в кинофильмах мы уже научились делать похожими на фотографию, потому что там у нас на каждый кадр есть сколько угодно времени: можно очень подробно обсчитать сцену и определить, как и где расположен свет. Пусть вывод одного кадра займёт час процессорного времени (а рендерят мультики и фильмы на фермах), не страшно, зато красиво выходит.
С играми всё хуже: получать картинку нужно сразу. В игре компьютер не знает заранее, в какую сторону я повернусь и на что посмотрю, поэтому нужно уметь вычислять внешний вид изображения на основе геометрии трёхмерной сцены. И делать это для комфортной игры как минимум 60 раз в секунду. Поэтому такое вычисление производят очень приблизительно, чтобы было быстро. Это смотрится неплохо, и мы способны узнать в игре человека, оружие, машину, но всё равно любым невооружённым глазом такое легко отличить от реальности.
С развитием технологий и увеличением мощности видеокарт получил распространение метод трассировки лучей: из "глаз" игрока испускается невидимый луч, рассчитываются его отражения и преломления от всех поверхностей на некоторую глубину, а потом смотрят, попал ли этот луч в источник света. Зная его траекторию, мы можем "вернуть" в виртуальную камеру правильное количество света и правильный цвет. Понятно, что таких лучей должно быть очень много, и вот тут современные видеокарты с их параллельными вычислениями уже начинают неплохо себя показывать.
Я попробовал Portal with RTX, его можно бесплатно скачать в Стиме, если у вас есть базовый Portal. Да, игра 15-летней давности, как её ни причёсывай, совсем круто не будет. Тем не менее, специалисты из Nvidia поработали над освещением, и местами очень приятно наблюдать, как картинка начинает выглядеть более правильно с точки зрения реальной физики. Массового внедрения технологии, видимо, не стоит ожидать, пока половина геймеров не обзаведутся топовыми видеокартами. И в целом графика впечатляет меньше, чем демка Матрицы. Но всё равно крайне любопытно.
#games
Трёхмерные мультики и компьютерные эффекты в кинофильмах мы уже научились делать похожими на фотографию, потому что там у нас на каждый кадр есть сколько угодно времени: можно очень подробно обсчитать сцену и определить, как и где расположен свет. Пусть вывод одного кадра займёт час процессорного времени (а рендерят мультики и фильмы на фермах), не страшно, зато красиво выходит.
С играми всё хуже: получать картинку нужно сразу. В игре компьютер не знает заранее, в какую сторону я повернусь и на что посмотрю, поэтому нужно уметь вычислять внешний вид изображения на основе геометрии трёхмерной сцены. И делать это для комфортной игры как минимум 60 раз в секунду. Поэтому такое вычисление производят очень приблизительно, чтобы было быстро. Это смотрится неплохо, и мы способны узнать в игре человека, оружие, машину, но всё равно любым невооружённым глазом такое легко отличить от реальности.
С развитием технологий и увеличением мощности видеокарт получил распространение метод трассировки лучей: из "глаз" игрока испускается невидимый луч, рассчитываются его отражения и преломления от всех поверхностей на некоторую глубину, а потом смотрят, попал ли этот луч в источник света. Зная его траекторию, мы можем "вернуть" в виртуальную камеру правильное количество света и правильный цвет. Понятно, что таких лучей должно быть очень много, и вот тут современные видеокарты с их параллельными вычислениями уже начинают неплохо себя показывать.
Я попробовал Portal with RTX, его можно бесплатно скачать в Стиме, если у вас есть базовый Portal. Да, игра 15-летней давности, как её ни причёсывай, совсем круто не будет. Тем не менее, специалисты из Nvidia поработали над освещением, и местами очень приятно наблюдать, как картинка начинает выглядеть более правильно с точки зрения реальной физики. Массового внедрения технологии, видимо, не стоит ожидать, пока половина геймеров не обзаведутся топовыми видеокартами. И в целом графика впечатляет меньше, чем демка Матрицы. Но всё равно крайне любопытно.
#games
👍4❤3🤬1🤡1
В фильме-сказке "Морозко" 1964 года есть эпизод, как Иван по очереди с Бабой-Ягой отдают команды Избушке, чтобы она поворачивалась в разные стороны. Иван подсматривает протокол взаимодействия: топнуть ногой и сказать нужную фразу. После чего он может отворачивать Избушку от себя, хотя Баба-Яга пытается повернуть её к нему.
Этот момент учит нас важности авторизации. Система должна точно понимать, кому из пользователей какие действия разрешены. Потому что протокол передачи данных зачастую публичен. Даже если ваш открытый метод WebAPI имеет длинный адрес, и о нём никто не знает, кроме вас, всё равно это небезопасно — пользователя нужно авторизовывать.
Чуть позже в фильме Настенька касается посоха Морозко и падает в вечный сон, хотя сам Морозко орудует этим посохом свободно. Это аутентификация — проверка подлинности личности. Справедливости ради, Морозко напрямую рассказывал об этом Настеньке ранее по сюжету: "Кто до посоха моего коснётся — никогда не проснётся". Впрочем, админу не следует оставлять торчащими наружу системы, которые могут заблокировать пользователя перманентно.
Этот момент учит нас важности авторизации. Система должна точно понимать, кому из пользователей какие действия разрешены. Потому что протокол передачи данных зачастую публичен. Даже если ваш открытый метод WebAPI имеет длинный адрес, и о нём никто не знает, кроме вас, всё равно это небезопасно — пользователя нужно авторизовывать.
Чуть позже в фильме Настенька касается посоха Морозко и падает в вечный сон, хотя сам Морозко орудует этим посохом свободно. Это аутентификация — проверка подлинности личности. Справедливости ради, Морозко напрямую рассказывал об этом Настеньке ранее по сюжету: "Кто до посоха моего коснётся — никогда не проснётся". Впрочем, админу не следует оставлять торчащими наружу системы, которые могут заблокировать пользователя перманентно.
👍16😁14🔥6🎉1
Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий
Object
, к полям которого нужно было обращаться ["по_строковому_имени"]
. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него."Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
👍17🔥1🤔1
Есть такое приложение с фотофильтрами VSCO. Сами фильтры в нём значительно лучше, чем во всяких инстаграмах и других соцсетях — не такие резкие, с интересными трансформациями цветов и светотени. Подбирали их явно люди со вкусом. Ещё в приложении редактор, позволяющий регулировать отдельные параметры. Тут всё банально: контраст, цветовой баланс, осветление/затемнение итд.
Так вот, я пользуюсь VSCO много лет, и с удивлением наблюдаю, как в каждой новой версии часть функциональности делают платной. Сначала там было доступно множество фильтров и абсолютно все крутилки в редакторе. Потом потихоньку часть фильтров стали делать платными. Потом усложнили навигацию, затруднив быстрый выбор именно бесплатных фильтров. А с недавнего времени опции редактора тоже убирают.
Это удивительно: скажем, регулировка освещённости и теней всегда была бесплатная, но в последних версиях она под замком и требует подписку. То есть авторы приложения как бы наказывают пользователей за обновление — те, кто оставил старую версию, получают бесплатно функцию, а обновившимся только за деньги.
Я знаю, что многие люди вообще ругают разного рода обновления приложений: типа всё поменяли, опять новый дизайн и т.д. Но всё-таки принципиальная разница в том, что приложения крайне редко закрывают в новых версиях функции, которые были доступны в старых (если только функция не вообще полностью удалена из системы). Если вам в принципе приходится прятать за пейволл что-то прежде бесплатное, то это явные признаки неудачной бизнес-модели.
Короче, подскажите хороший бесплатный фоторедактор для Android :) Без всякой херни типа стикеров и рамок. Нужны простые ползунки, типа Lightroom на минималках.
Так вот, я пользуюсь VSCO много лет, и с удивлением наблюдаю, как в каждой новой версии часть функциональности делают платной. Сначала там было доступно множество фильтров и абсолютно все крутилки в редакторе. Потом потихоньку часть фильтров стали делать платными. Потом усложнили навигацию, затруднив быстрый выбор именно бесплатных фильтров. А с недавнего времени опции редактора тоже убирают.
Это удивительно: скажем, регулировка освещённости и теней всегда была бесплатная, но в последних версиях она под замком и требует подписку. То есть авторы приложения как бы наказывают пользователей за обновление — те, кто оставил старую версию, получают бесплатно функцию, а обновившимся только за деньги.
Я знаю, что многие люди вообще ругают разного рода обновления приложений: типа всё поменяли, опять новый дизайн и т.д. Но всё-таки принципиальная разница в том, что приложения крайне редко закрывают в новых версиях функции, которые были доступны в старых (если только функция не вообще полностью удалена из системы). Если вам в принципе приходится прятать за пейволл что-то прежде бесплатное, то это явные признаки неудачной бизнес-модели.
Короче, подскажите хороший бесплатный фоторедактор для Android :) Без всякой херни типа стикеров и рамок. Нужны простые ползунки, типа Lightroom на минималках.
👍5