• Как я забросил игру спустя четыре года разработки
    0
    только локальный ко-оп

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


    • Металлизацию в щит!
    • А?
    • (хором) В ЩИИИИИИТ
    • Нееет!
    • Кудааааа?!
    • Ааааааа Т___Т
    • Нахрен в булаву-то?
    • Зато их две теперь :D
    • (хором) Рули!
    • Рулю
    • Да не сюда!
    • Я к выходу же
    • Ещё 2 зайца!
    • А поверните меня лазером вперёд :(
    • Сиди на булавах теперь
    • А я говорил надо было турбомармелад покупать
    • (хором) Рули!

    (типичная партия в Lovers)

  • Консольные утилиты Linux, которые смогут облегчить вам жизнь
    0

    hstr — замена Ctrl+R для людей.


  • Уйти от jQuery к Svelte, без боли
    0
    Переезд от jQuery к %любой_новый_модный_фреймворк% без боли невозможен потому, что на деле это означает, что нужно заново написать всё то, что писалось на jQuery десятилетиями, всю кашу из плагинов, которая писалось плохо и неправильно. Это долго и дорого, зачастую дешевле нанять команду JS-программистов, коих сейчас хоть отбавляй, и написать заново. Если конечно речь идёт не о сайтике, где из jQuery — $.ajax да галерея с каруселью (но тогда возникает вопрос, на кой там вообще нужен %любой_новый_модный_фреймворк%?).

    Представьте себе некий визуальный аналог 1С на jQuery, активно использующий, например, www.jeasyui.com/documentation/index.php поверх какого-нибудь backbone, а то и без него. Это катастрофа, его невозможно переписать «по чуть-чуть» на ходу, разные компоненты наследуются и переиспользуются друг в друге, каждый экран такой системы — этакое подобие ExtJS для бедных. В таких случаях единственная надежда — если автор предоставляет drop-in замену (в случае с EasyUI появились версии под Angular/React/Vue, однако они уже скорее напоминают простой UI kit и не могут толком заменить оригинал).
  • Как настроить китайский левитрон
    +1

    Метафора хороша :)


    Побуду капитаном: http://ru.wikipedia.org/wiki/Уничтожение_воробьёв

  • Зависимые типы в Haskell: почему это будущее разработки программного обеспечения
    +1
    … джазмен выкладывается на полную, одну, пьесу, вторую, третью… Один из братков подходит к сцене и сочувственно так:
    — Что, братишка, не получается?
  • Давайте быстрокодить как профессионалы
    0

    создаёт исчерпывающую имитацию отдельной установки выбранной версии


  • Как я делал поисковик для Telegram
    0
    А зачем он нужен? Ну вот так навскидку.

    Бывает информация, которая ценна, будучи свежей, а бывает наоборот — которая со временем обретает ценность. Например, посты про разного рода сталкинг, строительство метро, мостов или других инженерных проектов, развитие инфраструктуры городов. Спустя какое-то время такие места либо перестают существовать, либо меняются до неузнаваемости, но интернет всё помнит. Цифровая археология, в общем :)

    Ваш сайт дублирует t.me/сабж/s на независимом адресе.

    Этого недостаточно. Тщательно проставленные теги/навигация/поиск/индексация в гугле — всё это не появятся волшебным образом. Скорее имеет смысл обратный подход — публиковаться в «большом блоге», а кросспостить в мессенджеры/твиттер/инсту, этакая замена RSS. Наверняка существуют технические решения, боты, но это требует некоторых навыков, а главное времени и желания, которые есть не у всех, тем более когда вот она, большая и активная аудитория телеги, прямо здесь.
  • Как я делал поисковик для Telegram
    +8
    Вообще это печально. Не понимаю людей, которые ведут большие блоги и пишут «лонгриды» в телеге. Если взять какой-нибудь условный ЖЖ, то там и сейчас можно найти пост пятнадцатилетней давности, а худшее, что может с ним случиться — это битые ссылки. Блог в телеге — это 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 и иже с ними (спасибо РКН). Я не хочу такой новый интернет.
  • Выпущен «шрифт для разработчиков» JetBrains Mono
    +1
    Кернинг — это про разное расстояние до соседа в зависимости от того, какой символ идёт дальше. Расстояния между разными парами символов намеренно делаются неравномерным чтобы скомпенсировать разный визуальный «вес» пар и сделать строку текста более равномерной визуально. В моноширинном шрифте по понятным причинами это расстояние должно быть одинаковым, иначе разъедутся колонки.

    Равномерное изменение расстояния между символами — это именно трекинг, в народе «межбуквенный интервал».

    image
  • Выпущен «шрифт для разработчиков» JetBrains Mono
    +1
    В моноширинном шрифте не может быть кернинга по определению. Это трекинг — равномерное изменение расстояния между символами, а кернинг — неравномерное, только для определённых пар символов (когда, например, ширина A + V != AV).
  • Выпущен «шрифт для разработчиков» JetBrains Mono
    +1
    Курсuв прuкольныú, а вот лигатуры на моей системе страшненькие. Особенно мерзкие === !==, центральная палка на месте только при размерах 12 и 16 :(



    (с лигатурами дела обстоят получше у Liga Droid Sans Mono, а идеально - только у Fira Code)


  • В приложение Windows Terminal добавили ретро-режим в стиле CRT
    0
    Разве это «ретро-режим»? Вот это ретро-режим!

    image

    github.com/Swordfish90/cool-retro-term
  • Google будет поддерживать Chrome на Windows 7 как минимум до середины 2021 года
    +1

    Мне вот не нравится, что десятка по ночам из спящего режима выходит.

  • Модальные окна, которые мы заслужили
    0

    Завершение работы системы с открытым приложением, в котором есть несохранённые данные.

  • Результаты опроса про обновления
    0
    Проблема есть — это когда она стабильно воспроизводится при определённых действиях.
    Это неверно, даже если проблема не воспроизводится стабильно при определённых действиях — это всё ещё проблема. Следуя вашей логике, race condition, например, — не проблема?

    И да, у меня тоже «временный нестандартный сбой» — после обновления snapshot-сборки на экспресс-панели появилась папка «Vivaldi» (пустая о_0) и 2 закладки — vivaldi.com/bk/airbnb-com и www.youtube.com.



    Я понимаю, что нестабильные сборки именно потому и называются нестабильными, но огорчает подход «УМВР, переустановите браузер».

    Обновление с 2.9.1719.3-1 до 2.10.1745.18-1
  • Нейросети. Куда это все движется
    +7
    – Страшноватые штуки эти гели. Ты знаешь, что один из них задушил кучу народа в Лондоне пару лет назад? Нет, серьезно. Он там управлял системой подземки – никаких нареканий, идеальный работник, а потом однажды эта штука просто забыла запустить вентиляторы, когда было надо. Поезд заезжает на пятнадцать метров под землю, пассажиры выходят, воздуха нет, бум!
    Джоэл уже слышал эту историю. Коронная фраза как-то связана со сломанными часами, если он все помнит точно.
    – Эти штуки вроде как учатся на собственном опыте, правильно? – продолжает Джарвис. – Ну и все думали, что зельц научился запускать вентиляторы по какому-то очевидному признаку. Жару тела, движению, уровню углекислого газа, ну ты понимаешь. В результате выяснилось, что эта хрень просто смотрела за часами на стене. Прибытие поезда совпадало с предсказуемым набором паттернов на цифровом дисплее, поэтому она включала вертушки, когда видела один из них.
    – Ага. Точно. – Джоэл качает головой. – А какие-то вандалы часы разбили.

    («Морские звёзды», Питер Уоттс)
  • Заменяем Google Assistant на нейросеть Порфирьевич и троллим Алису
    +2
    Думаю, это действительно достаточно хорошо решается даже простыми эвристиками и NLP *pасчехляет pymorphy2*

    • Самая красивая женщина в мире показала фото в бикини и приспущенных шортах и попала на видео
    • Boeing рекордно провалился в борьбе с Airbus и был высмеян в соцсетях
    • В России ответили на территориальные претензии Эстонии и были высмеяны в соцсетях
    • ГИБДД изменит практическую часть экзамена на права и опозорится
    • Двое россиян прыгнули с парашютом с 24 этажа и были пристыжены
    • Норвежская биатлонистка объяснила традицию «сильно напиваться» в новогоднюю ночь и немедленно выпила
    • Депутат-единоросс расстрелял двух собак и был высмеян в соцсетях

    Код
    import pymorphy2
    import random
    from pymorphy2.tagset import OpencorporaTag as Tag
    
    class Inflectable: 
        def __init__(self, value, allowed_gramemmes=set()):
            self.value = value
            self.allowed_gramemmes = allowed_gramemmes
    
        def inflect(self, morph, grammemes):        
            if self.allowed_gramemmes:
                grammemes = grammemes.intersection(self.allowed_gramemmes)
            return morph.parse(self.value)[0].inflect(grammemes)
    
    headings = [
        'Самая красивая женщина в мире показала фото в бикини и приспущенных шортах',
        'Boeing рекордно провалился в борьбе с Airbus',
        'В России ответили на территориальные претензии Эстонии',
        'ГИБДД изменит практическую часть экзамена на права',
        'Двое россиян прыгнули с парашютом с 24 этажа',
        'Норвежская биатлонистка объяснила традицию «сильно напиваться» в новогоднюю ночь',
        'Депутат-единоросс расстрелял двух собак',    
    ]
    
    endings = [
        ("и", Inflectable("попал"), "на видео"),
        ("и", Inflectable("сгорел"), "от стыда"),
        ("и", Inflectable("опозорился")),
        ("и", Inflectable("был"), Inflectable("пристыжён", Tag.NUMBERS.union(Tag.GENDERS))),
        ("и", Inflectable("был"), Inflectable("высмеян", Tag.NUMBERS.union(Tag.GENDERS)), "в соцсетях"),
        ("и", "немедленно", Inflectable("выпил")),
    ]
    
    def guess_inflect(morph, words):
        for word in words:
            p = morph.parse(word)[0]
            if 'VERB' in p.tag:
                inflect = {p.tag.gender, p.tag.number, p.tag.tense, p.tag.person}
                inflect.remove(None)
                return inflect
    
    def inflect_ending(morph, words, inflect):
        result = []
        for word in words:
            if(isinstance(word, Inflectable)):
                result.append(word.inflect(morph, inflect).word)
            else:
                result.append(word)
        return ' '.join(result)
    
    
    morph = pymorphy2.MorphAnalyzer()
    for heading in headings:    
        inf = guess_inflect(morph, heading.split(' '))
        if not inf:
            continue
        ending = inflect_ending(morph, random.choice(endings), inf)
        print(heading + ' ' + ending)
    


    Для JS тут на хабре тоже что-то подобное было.
  • «Умные» тормоза Mazda3 срабатывают без причины из-за программной ошибки
    0
    Не смотря на то, что психологи гарантировали полную совместимость с бортовой системой, свою Дейв иногда ненавидел. Впрочем, он вообще не любил все эту электронную начинку, превративший автомобиль из образа жизни в средство передвижения. Но альтернативы уже не осталось – в 2024-м году, в Штатах приняли закон, запрещающий движение автомобилей без автоматизированных систем управления по смарт-трассам, а через десять лет после этого, обычных дорог в Америке уже не осталось. Дэйв невыносимо тосковал по обычному темно-серому асфальту, по ветру врывающемуся в открытое окно, по шуму покрышек, по реву двигателя… Но на смену асфальту пришло новое покрытие, продукт генной инженерии, которое выращивали прямо на предполагаемом участке шоссе. На смену открытым окнам пришли системы полного климат-контроля, изменяющие не только температуру и влажность в салоне, но и добавляющие различные запахи. Покрышки уже не шумели, как раньше, благодаря новому дорожному покрытию и усовершенствованному составу резины, ну а бензиновые (да и дизельные двигатели) уже давно практически исчезли с дорог. Теперь езда в машине – это просто перемещение из точки А в точку Б. Никакого удовольствия… Да, собственно, машиной теперь даже управлять не надо. За человека это делает компьютер, ориентируясь на маячки вдоль дороги и полос движения, спутниковую систему навигации и собственные датчики, определяющие расстояния до впереди идущих машин и препятствий. Теперь просто достаточно сказать, куда тебе нужно попасть, сесть в кресло и расслабиться.

    Морок — Забытое шоссе (2008)
  • Microsoft исправит баги поиска «Проводник» после праздников
    0
    Помнится в 7 и 8 была какая-то лажа с поиском "_". Если искать файлы по маске "*_new", то в результаты попадали также файлы файлы "*new" или что-то такое. Ещё вроде нельзя найти файлы "!*". Точно не припомню, но периодически на такое натыкаюсь.
  • Так ли хорош PocketBook?
    0

    — Стрелку с амперметра я уж лет 5 как открутил
    (На лабе)

  • Яндекс сильно обновил поиск. Новая версия называется «Вега»
    +1
    Гугл будет вести себя тем или иным образом в зависимости от локации, залогинены вы или нет, истории запросов с этого же IP или подсети, параметров A/B-тестирования и фазы луны. Подозреваю, что в моём случае ANA-50 имеет настолько высокий приоритет, потому что я часто ищу авиабилеты.



    Клик по «искать вместо этого» в данный момент времени в моём аккаунте всё ещё не убеждает гугл в серьёзности моих намерений:


    А при добавлении кавычек он, кажется, начинает злиться:


    В режиме инкогнито загружается совершенно другой гугл и запрос не исправляет, правда искомый результат на 9 месте, а при добавлении кавычек поднимается на 5.

    Да, ещё одно: обратите внимание, как меняется порядок соседних вкладок в зависимости от того, какую из них гугл посчитает более «релевантной запросу». Я так периодически тыкаю по ошибке в «Карты» вместо «Картинки», когда одна из них оказывается на месте другой.
  • Яндекс сильно обновил поиск. Новая версия называется «Вега»
    0
    Тут нахваливают результаты поиска Google, но по-моему, они стали совершенно неудовлетворительны, и особенно в мобильной версии. Например, вместо «ФТФ-50» (фотоаппарат) можно получить «Возможно, вы имели в виду: „ANA-50“» (нет, Google, я же поставил кавычки) и соответствующие бредовости кейворда результаты: авиарейс ANA NH 50 Саппоро – Токио, картинки с Аной из «50 оттенков серого», что-то связанное с «antinuclear factor» и полиартритом, журнальный стол журнальный Signal Ana 50x50x55. Однако в рекламных блоках сверху может быть «ФТФ-50» на каком-нибудь OLX, и ссылки «Вместе с „ANA-50“ часто ищут фотоаппарат момент цена». Из чего я делаю выводы, что какое-то понимание того, что же я на самом деле ищу, у гугла явно имеется. Дело усугубляется тем, что спустя 5 минут меня может перекинуть на другую соту и всё волшебным образом починится просто потому, что я вдруг оказался в соседнем районе города и там гугл слегка другой — ну это же дичь какая-то!

    На органику всем в гугле уже давно наплевать. Даже если у тебя оригинальный контент, кто-то может заабьюзить любовь гугла к «локальным» результатам и попасть выше — этим активно пользуются, например, создатели qaru.site. И даже если удалось попасть в топ органики, всё равно выше будут товарищи, которые массово скупают рекламу по твоим запросам или даже свежим новостям. И вот ты вынужден либо нести деньги гуглу, покупая места наверху, либо опять же нести деньги, но уже косвенно, сидя в AMP-карусели. Недавно как раз про это был пост на HN «Google is not a search engine, but an ad engine»

    Заголовок спойлера
    image

    Отдельные проклятия от меня поиску по изображениям. Если я загрузил фотку тарелки с креветками, я хочу получить то, что (пока ещё) делает Яндекс — сайты, где эта картинка встречается, в разных разрешениях, кадрированную или нет и т.п., а не «Запрос, который может быть связан с изображением», YouTube-ролики с рецептами, а внизу десяток бесполезных ссылок на pinterest.com по кейворду «seafood boil». Если мне нужны картинки по кейводру — я введу этот кейворд в поиске по картинкам или пойду в фотосток. Также Google отвратительно ищет лица, и это, похоже, сделано специально на фоне privacy-хайпа.

    (простите, наболело :)
  • (обновлено) Rambler Group просит Роспатент запретить МТС и «Яндекс» использовать товарные знаки со словом «Афиша»
    0
    Имеется в виду, что «директория» — структура ФС, а «папка» может быть абстракцией, например, сетевая папка, либо папка «панель управления»/папки внутри панели управления. Например, в спеках FAT32 (PDF), или ext4 вы не найдёте «folder» или «catalog», зато есть «directory».
  • Как я 12 лет создавал свой ЯП и компилятор к нему
    +2
    Компилятор, который может собрать сам себя — это конечно здорово, но что-то я опасаюсь за автора, уж больно напоминает смесь «Истории одного байта» и TempleOS.
  • (обновлено) Rambler Group просит Роспатент запретить МТС и «Яндекс» использовать товарные знаки со словом «Афиша»
    0
    sudo mkfldr foo
    cf foo
  • Как я нашел способ отследить всех водителей «Ситимобил»
    +2
    Повысили бы сложность незначительно. Собирать собственный андроид с пасьянсом и блудницами для отключения certificate pinning сегодня не обязательно, расковырять javax.net.ssl.SSLContext полгода назад можно было с помощью xposed-модуля github.com/Fuzion24/JustTrustMe, сейчас вроде работает Frida — например, gist.github.com/cubehouse/56797147b5cb22768b500f25d3888a22, для Magisk что-то ещё было.
  • Google избавился от www в адресной строке в версии Chrome 79
    +2

    Надеюсь, убрав http(s), они не запилят через десяток версий в результатах поиска новые модные ссылки аля amp://habr.com, которые будут отображаться как habr.com.

  • Тостер, Мой круг и Фрилансим становятся частью Хабра
    +4
    Действительно, спасибо за лого говорить юзернейму Pavel :) А вот и статья habr.com/ru/company/at_consulting/blog/278319

    image
  • Тостер, Мой круг и Фрилансим становятся частью Хабра
    +1
    deniskin Boomburum а откуда взялся мохнатый клубок, кстати?
  • По следам «Астротрекер за два вечера» — мой опыт
    +1
    Монтировка нужна прежде всего для накопления сигнала, который может быть даже ниже уровня шума. Если звезда уползёт с пикселя матрицы раньше, чем там накопится полезный сигнал, то решать цифровыми методами будет просто нечего. Поэтому 100 кадров с выдержкой 1 сек != 1 кадру с выдержкой 100 сек. А некоторые объекты — например, детали туманностей или галактик — и вовсе можно увидеть только при сьёмке на длинной выдержке с узкополосным фильтром вроде H-alpha, иначе видимый свет всё перекроет.

    Но иногда действительно используют деконволюцию, если нужно поправить расплывшиеся на пару пикселей звёзды.
  • Y-метод — действительно простой способ собрать кубик Рубика
    0
    • Поменять в пятнашках последние 2 цифры
    • Повернуть уголок в кубике Рубика
    • Переименовать .ssh в .shh
  • Как злоумышленники могут читать вашу переписку в Telegram. И как им в этом помешать
    +1

    Эта статья нужна только для одного — чтобы на неё могли ссылаться СМИ в статьях типа "Российские хакеры смогли взломать Telegram".

  • Half-Life: Alyx не изменила отношения Фила Спенсера к VR: новая XBox выйдет без поддержки виртуальной реальности
    0
    Ух ты, Infinadeck выглядит обнадёживающе. Конечно, дома такую штуку держать будет сложновато (хотя фанаты Pump It Up даже настоящие денс-пады умудряются втащить в хрущёвку), но для аркад прямо то, что надо.

    Заголовок спойлера
    image

    Всё ещё жду нейроинтерфейс :)
  • Half-Life: Alyx не изменила отношения Фила Спенсера к VR: новая XBox выйдет без поддержки виртуальной реальности
    0
    А что нужно, чтобы игра была бомбой по мнению окружающих?

    Руки с предплечьями. Инверсную кинематику уже изобрели, почему все поголовно VR игры до сих пор выглядят так, словно играешь Rayman'ом от первого лица?


    Ходить. Тут только телепорты и ходить руками. Из-за чего все VR-шутеры — тир на стероидах.

  • Ли Седоль уходит из большого го из-за AlphaGo. Как это понимать?
    0

    Красиво написано, прямо повеяло Нилом Стивенсоном :)

  • Боль в запястьях и компьютерные мышки
    0

    Обзавёлся Elecom Huge Trackball. Там шар и вправду "huge" и имеет неплохую инерцию — можно запускать курсор через 2 монитора. Очень рекомендую. Из минусов — мягкое покрытие быстро облезает.

  • Интересные новинки Vue 3
    –1
    Vue движется в сторону улучшения опыта разработчика

    Ну всё, очередной инструмент в экосистеме JS заговорил про "девелопер икспиренс", можно закапывать.

  • Канадская компания разработала материал, делающий вас невидимыми
    +1

    Канадская компания разработала рассеивающую плёнку для LCD-экранов.

  • Субпиксельный рендеринг произвольных векторных изображений (Haarmony LCD)
    0
    А, там Google, похоже, для всех патентов указывает состояние на сегодняшний день, что несколько вводит в заблуждение. Тем не менее, срок действия патентов действительно уже истёк.
  • Субпиксельный рендеринг произвольных векторных изображений (Haarmony LCD)