Такты, стеки, два колеса
1.35K subscribers
487 photos
26 videos
4 files
342 links
О технологиях, научной фантастике, программировании и схемах.

Навигация по каналу: https://t.me/clockstackwheels/3

Чат канала: https://t.me/joinchat/VNhNF1NF70dkFgUX
Download Telegram
Попробовал Github Copilot. Это проект, в рамках которого Гитхаб обучил нейросеть на миллионах строк программного кода, загруженного людьми, и теперь она вроде как способна предлагать автоматическое дополнение к тому, что вы пишете.

В теории, если вы напишете название функции, например public int Fibonacci(int n), то она сразу предложит вам автоматически подставить всё остальное.

Конкретно с этим примером система действительно справляется, но в целом впечатления у меня от неё смешанные, и на мой взгляд она пока что не стоит тех $10 в месяц, которые за неё просят после тестового двухмесячного периода.

Я уже писал ранее о своём отношении к нейросетям. В задачах дополнения данных они работают средненько: значимый процент решений будет с ошибками. Вот и здесь — сначала я подумал, что Copilot сможет за меня копипастить популярные однотипные куски кода из интернета. Например, я не помню алгоритм Вагнера-Фишера, постоянно его копирую из своих других проектов, часть из которых выложена на Github и наверняка была передана в обучение Copilot. Я предложил нейросетям мне этот алгоритм написать, они написали что-то отдалённо похожее. Внешне выглядело убедительно и даже компилировалось, но работало неправильно, и при ближайшем рассмотрении оказалось, что там просто случайно надёрганные строчки из настоящего алгоритма. Некоторые проверки по 2 раза, а часть нужной логики упущено совсем. Об оформлении кода вообще говорить не стоит: пока всё, что мне выдавалось, оформлено плохо, и на ревью я бы написал разработчику несколько замечаний.

Однако, в других местах работает, как задумано. Если у вас есть дуальные функции, оно умеет предлагать дописать остаток (пример на скриншоте ниже). Но из того, что я попробовал, только процентов 20 случаев реально были полезны. Остальные 80% или вообще неверный код, или правильный, но такой неаккуратный, что лучше самому написать.

Есть ещё проблема: массовый копипаст довольно опасен, потому что легко пропустить какую-то мелочь. В идеале нужно весь вставленный код проверять построчно, но по когнитивной нагрузке это близко к тому, чтобы создать его самостоятельно. И человеческое внимание совершенно точно будет расслабляться и размываться при работе с такими средствами автодополнения, а, значит, неизбежны ошибки. На месте чувствительной к багам энтерпрайз-разработки я бы вообще запрещал бы своим сотрудникам применять Copilot.

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

#dev
🤔5👍3🤯1
Яндекс выложил в открытый доступ нейросеть YaLM 100B, которая может псевдоразумно отвечать на вопросы и вести беседу. К сожалению, попробовать её лично я не могу, потому что для запуска нужно около 200+ гигабайт видеопамяти, это приличная такая майнинг-ферма. Но по скриншотам она действительно хорошо работает. Хотя про GPT-3 тоже так говорили, а на деле очень так себе.

А ещё неделю назад по сети ходила новость о том, что один из разработчиков в Google пообщался с их нейросетью и увидел в ней признаки разума. Вплоть до того, что нанял юриста защищать интересы нейросети! Его в итоге отправили в оплачиваемый принудительный отпуск, подлечиться, наверное.

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

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

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

Что еще посмотреть по теме:
«Теорема о бесконечном количестве обезъян»;
И очень крутой фантастический рассказ Хорхе Луиса Борхеса «Вавилонская библиотека». В Библиотеке точно будет книга, которая станет буквально с вами разговаривать: вы задаёте вопрос (любой), переворачиваете страницу и видите там ответ на него, будто бы от разумного существа.

#dev #fiction
👍81
Хочу немного похвалить Copilot — у него обнаружилась удивительно неплохая способность писать комментарии к коду!

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

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

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

#dev
🔥17👍5
Когда я впервые наткнулся на чит-коды в игре, мне было, кажется, лет 10-11. Я играл тогда в Quake II на самом первом семейном компьютере, и кто-то из старших друзей рассказал мне, что можно нажать кнопку с буквой Ё и ввести GOD, тогда не будешь умирать от выстрелов врагов.

Я попробовал и удивился. «Почему авторы игры сделали такой простой способ выиграть?» — подумал тогда я. «Почему код это простое слово, а не какая-то длинная цифробуквенная комбинация, которую держат в секрете? Неужели авторы игры не хотели, чтобы игроки не узнали о существовании этого кода? Ведь тогда очень легко выиграть в эту игру, и все будут использовать код!»

Я разумом не очень понимал тогда, что, в общем-то, суть игры как раз в создании для самого себя некоторых сложностей. С моей детской точки зрения игра была внешней средой, которая создаёт сложности, а я их должен преодолеть. Я не понимал, что разработчики без проблем могли сделать в игре кнопку «Выиграть», и её никто бы не нажимал, потому что люди играют в игры не для этого. Вообще, хороший баланс между сложностью и интересностью это как раз-таки отдельная не слишком простая задача в разработке игр.

Я быстро узнал ещё про коды NOCLIP (проходить сквозь стены) и GIVE ALL (всё оружие). Я посмотрел всё оружие в игре, побегал по уже открытым уровням и забросил игру. Так я Quake II в своей жизни и не прошёл, хотя он мне тогда очень нравился, и вообще это была чуть ли не единственная игра на компьютере. И я не понимал, почему его бросил, а понял уже потом, через много лет.

Подозреваю, в жизни что-то похожее: нужен баланс между сложностью и интересностью. Если вам сложно, вы выживаете и каждый день сражаетесь за существование, то жить вам тяжело и не слишком приятно. Но и если всё легко, вы не сталкиваетесь ни с какими серьёзными проблемами, у вас есть всё желаемое по волшебству — жить тоже не будет слишком интересно, по крайней мере, в перспективе.

P.S. Там вроде как давно уже выпустили Quake II RTX с обновлённой графикой. Надо бы, наверное, скачать заценить, как время будет. И читы не вводить ни в коем случае.

#games
👍17😢2
Понадобилось залить в iPad фильмы для офлайн-просмотра. На iOS для такого есть специальные секции памяти у отдельных приложений. Например, для фильмов можно скачать приложение VLC, которое читает большинство форматов, и загрузить прямо в память ему эти фильмы через компьютер по проводу.

Однако, для этого нужен iTunes. Если вести список худших изобретений Apple, то в нём, наряду с портом зарядки Magic Mouse и монобровью на телефонах, точно будет эта отрыжка пьяных программистов. В интернете давно стала притчей во языцех неадекватная работа iTunes и нелепые случайные ошибки, которые он выдаёт.

В среднем путь достижения цели при работе с "тунцом" обычно выглядит как-то так: Установить iTunes — Попробовать подключить айфон — Переустановить iTunes — Почистить такую-то папку и такую-то папку — Почитать решения в интернете — Переустановить драйвера — Выдернуть айфон —Вставить в другой USB порт — Станцевать голым при полной Луне —Помолиться всем богам — ... — С некоторой вероятностью то, что нужно, заработает.

У меня айфоны и айпады были с фиксированной периодичностью где-то с 2008 года, и абсолютно всегда с iTunes происходили систематические проблемы. Шли годы, менялись и версии iOS и версии самого iTunes, менялись операционные системы компьютера (MacOS, Windows), а внезапные непредсказуемые отказы iTunes устойчиво сохранялись.

На Android эта проблема решена уже два столетия. Там просто универсальный протокол доступа к памяти: ты открываешь телефон на компьютере, как папку, заливаешь туда фильмы, и приложение VLC на этом телефоне может фильмы читать. Всё.

Но у Apple... Я не знаю, обычно такое мракобесие прикрывают как бы заботой о безопасности. Но я, честно говоря, сегодня был готов ставить любой софт и давать любые разрешения, только чтобы iTunes увидел, наконец, мой iPad. Это максимально далёкий от безопасности эффект.

В итоге так и не вышло, я забил и воспользовался функцией Яндекс.Диска "Сохранить в офлайн". Да, в современном мире иногда действительно быстрее передать через интернет файл между устройствами, которые лежат рядом. Но теперь айпад качает 40 гигов уже скачанных на компьютер фильмов просто из-за прекрасной заботы о пользователях со стороны Apple.

#gadgets
😁7🤯4😱3👍2
Сегодня целый день был на офлайн-части конференции #DotNext для разработчиков под платформу .NET. Посетил две лекции, два круглых стола (это такое обсуждение несколькими экспертами на сцене, как подкаст, но вживую), поучаствовал во всех активностях, позадавал вопросы и обсудил со спикерами и другими участниками ряд проблем.

Вроде всё на месте, но я понял вот что: для меня было мало точек приложения внимания в ширину, однако избыток приложения внимания в глубину. Возможно, я сам себя не слишком правильно настроил. Лето, жара, скоро отпуск: кажется, я ошибочно ожидал чего-то более казуального от мероприятия. Могу сказать, что в своё время посещение TechTrain принесло мне суммарно больше удовольствия, хотя там билеты на порядок дешевле, и выставка в целом более лёгкая и менее тематическая.

Здесь же было хорошее глубокое погружение в тему, но горизонтально мне не хватило разнообразия: мало стендов (два), мало пространства по выбору лекций (в каждый момент шло две лекции в двух залах, выбор всегда из двух).

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

Второй стенд от Промсвязьбанка предлагал телеграм-бота с разными заданиями. Я, кстати, Промсвязьбанку писал недавно квиз на Хабр. Они активно хантят народ. Задания были нормальные: там и коммуникация с другими участниками, и ответы на вопросы, и всякое решение задачек. Но разрыв по очкам между точками получения призов такой большой, что всю вторую половину игры я буквально вёл впустую.

Из минусов организации отмечу два момента:

1. Офлайн-участников было не очень много, а онлайн-участников существенно больше. Поэтому даже офлайн-участникам предлагалось задавать вопросы спикерам с помощью чатов в Телеграме. Это не только создавало миллион чатов (по каждому докладу свой чат, потому что Телега не умеет в комнаты), но и было неудобно в процессе — ссылка на чат показывалась только в самом начале доклада, если не успел, а вопрос возник по ходу лекции, то найти ссылку проблематично. И вообще, я считаю, что правильно было бы дискриминировать онлайн-участников. Они меньше заплатили за билет, они поленились приехать. Но их удобство в итоге было приоритетным над удобством офлайн-участников просто из-за количества.

2. Дискуссии пересекались по времени с другими лекциями и с обедом. В итоге нельзя было полноценно пообсуждать что-то со спикером, не опоздав куда-то дальше. А на обед я вообще попал тогда, когда почти всё уже съели.

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

#dev
5👍2🔥1
Одна из лучших фантастических вселенных это Звёздные Войны. В ней одни из самых знаковых персонажей это джедаи. А среди джедаев один из самых интересных — Оби Ван Кеноби. Надо же было сольный высокобюджетный сериал про него сделать таким пресным... Все моменты, ради которых стоит смотреть 6 часовых эпизодов, можно уложить в трёхминутный ролик на Ютубе. И 90% хронометража там будет занимать пафосный синтетический голос Дарта Вейдера.

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

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

Но это меня удивляет, и есть подозрение, что дело не в расизме. Актриса совсем неубедительно играет, а её персонаж написан плохо и вшит в повествование белыми нитками. Я могу легко допустить, что люди ругались именно на это, и цвет кожи здесь был вообще не при делах. Трудно представить, чтобы фанаты Звёздных Войн написали Сэму Джексону оскорбления из-за того, что его персонаж Мейс Винду — чернокожий. Вероятнее всего, Мозез Ингрэм просто не слишком хорошая актриса. Но современная американская повестка позволяет на любые претензии кидать клич "Это потому что я черная, а вы расисты". Если чернокожий врач плохо лечит пациентов, то они расисты. Если чернокожий программист пишет кривой код, тоже наверняка пользователи расисты, раз у них программа не работает. Так и живут.

#fiction
👍7🤔2
В Петербурге будут расширять зону платных парковок. С 1 июля добавят 56 новых улиц, затем с 1 сентября ещё столько же, и до конца года хотят плюс 153 улицы. Пока всё в центре, причем, даже не включают Ваську, Горьковскую, Петроградку (хотя уж там сам бог велел разобраться с парковками).

Как автомобилист :) я категорически поддерживаю эту инициативу и, на мой взгляд, платные парковки на обычных улицах нужно вводить вообще по всему городу. Ранее я уже писал, что не так редко встречается проблема, когда водители банально не могут разъехаться из-за припаркованных авто на узкой улице, и вынуждены подвергать себя, автомобиль и окружающих людей дополнительной опасности, например, сдавая задним ходом продолжительное время. Не знаю как в центре, но на окраине эта проблема достаточно систематическая.

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

Уже писал ранее о том, насколько по Москве комфортно гулять из-за отсутствия стояночной свалки вокруг. Хочется верить, что в Петербурге мы движемся к чему-то такому.

#life
👍10😱3
На днях предъявили обвинение разработчику, который создавал и продавал бота для игры в World of Tanks. Собираются его посадить на 1.5 года.

Программист из Екатеринбурга Андрей Кирсанов несколько лет назад написал бота, который сканирует экран и сам двигает мышкой так, чтобы целиться вместо игрока и увеличивать шансы попадания в уязвимые части брони в игре World of Tanks. Компания Wargaming обратилась в МВД, произвели контрольную закупку и установили, что продаётся якобы вредоносный софт. Начался суд, прокуратура предлагает посадить.

Сходу кажется, что бот для игры не подходит под определение вредоносного софта: он не внедряется в память другой программы, не ворует деньги, не взламывает никакие пароли. Судят по статье 273 УК РФ за создание программы для «несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации».

Но в комментариях на Хабре справедливо заметили, что информация о пользовательском вводе — это тоже информация, а бот её подделывает. Причем, читеры наносят ущерб внутренней экономике игры, а, значит, создают косвенные убытки для компании: игроки менее охотно захотят платить в игре, если в ней они постоянно проигрывают. В Корее, например, есть вполне официальная статья за читы. Они там помешаны на киберспорте, для них видеоигры это часть национальной идентичности, так что использование читов вполне серьёзно приравнивается к использованию допинга на крупных спортивных состязаниях, и может даже уголовно наказываться.

То есть, вот непонятно. Вроде бы это всё игрушки и звучит смешно. А вроде бы всё сходится: подделка данных есть, экономический ущерб есть, да и вообще вред для большого количества людей. В 2022 странно было бы всерьёз считать игры какой-то несерьёзной детской забавой, не влияющей на рынок и взаимоотношения взрослых людей.

#games
🤔3👍2🔥2
Хотел сделать большое видео об этом, но пора признаться себе, что у меня никогда не будет на него времени (чтобы сделать качественно и интересно). Поэтому расскажу вам так. Уже второй сезон езжу вот на такой технике: трицикл Can-Am Spyder 2008 года. Решение его купить основывалось на трёх пунктах.

1. Очень давно присматривался и хотел попробовать
2. Никогда не езжу в городе и вообще не использую мотоцикл как транспорт, а только как средство для удовольствия в свободных от пробок местах
3. Катать жену более безопасным образом :)

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

Дело только в том, что мотоцикл это не способ передвижения. Я писал об этом давно, ещё когда ездил на двухколёсной технике. Для перемещения своего тела из точки А в точку Б крайне непрактично использовать транспорт, который наиболее опасен именно в плотном потоке машин, требует специальной одежды и обуви, не позволяет с собой взять много вещей, одинаково плох и в дождь и в жару.

Мотоцикл это средство для катания ради кайфа. Ты выбираешь под это время и место. И вот тут трицикл показывает себя хорошо: проходимость в пробках не важна, потому что ты в любом случае не выбрал бы пробки. Вообще, по секрету вам скажу, мотоциклисты не испытывают удовольствия от необходимости протискиваться между рядами. Это довольно стрессово — тебе приходится постоянно следить, чтобы и тебя никто не прижал, и ты никому зеркало не снёс. Рука устаёт от работы сцепления и тормоза. Толкотня, выхлопы, агрессивные взбешённые из-за долгого стояния водители. А если у тебя не компактный городской нейкед, а широкий павер-круизер или Голда, тебе порой вообще лучше занимать в пробке машиноместо и стоять вместе со всеми. В каком-то смысле даже лучше, если у тебя нет выбора "стоять в пробке или пытаться тесниться с опасностью и стрессом для себя".

Зато, если ты выезжаешь ранним утром или поздним вечером на кольцевую, ЗСД, в область и в другие подобные места, чтобы прокатиться с ветерком, либо едешь в дальняк — вот здесь у трицикла есть ряд серьёзных преимуществ. Самое главное это безопасность: тебе не страшны ямы, колдобины, рельсы, разметка и скользкая дорога. У тебя нет опасности завалиться на бок, словить вобблинг или боковой ветер. Как следствие, ты можешь ездить, например, в обычной обуви и относительно простой плотной одежде. Поездки в дождь, если уж пришлось, тоже существенно проще.

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

Ну и много мелочей сверху: больше вещей с собой везёшь (спереди багажник под крышкой), на пересечённой местности не страшно завалиться на грязи, меньше устаёшь сам (не нужно держать равновесие корпусом), легче ездить вдвоём с кем-то и т.д.

Скоро собираюсь в средний дальняк (до этого ездил в маленький), буду вам рассказывать по пути.

#moto #hobby
🔥8👍2🤔1
Собираю тут дрон в путешествие, примерил крепление для GoPro. На простых FPV-дронах присутствие GoPro — обычное явление. Курсовая камера обычно не слишком высокого качества, и для окончательного видео ведут запись отдельно. Но зачем это на DJI, у которого и так камера с хорошими характеристиками?

Всё дело в стабилизации. С одной стороны, у GoPro на борту алгоритм Hypersmooth, который неплох, но не превосходит бортовой же алгоритм, встроенный в DJI. По крайней мере, разница совершенно точно не стоит добавочных 200 грамм веса и добавочных денег на покупку GoPro.

Но всё меняется, когда речь заходит о постобработке. GoPro пишет данные с гироскопа, синхронизированные с видеорядом, то есть угол наклона и другие движения можно вычислять не с помощью анализа изображения, а просто знать действительные значения в момент съёмки. Это позволило им выпустить программу ReelSteady, которая стабилизирует, как боженька. Ничто даже близко не подобралось к ней. Результат стабилизации невероятно офигенный и на три головы превосходит абсолютно все другие решения на рынке. Из-за этого многие владельцы DJI FPV, как и я, прикручивают на свой дрон GoPro, жертвуя маневренностью и полетным временем (а в случае аварии ещё и дополнительными деньгами).

Очень странно, что компания DJI сама не сделала ничего подобного: гироскоп в системе есть, алгоритм стабилизации известен — да, существует опенсорсная альтернатива ReelSteady под названием GyroFlow, работает ничуть не хуже. Но факт остаётся фактом: стабилизация на основе гиро-данных на световые годы впереди всего остального. Она, конечно, требует изрядных вычислительных ресурсов и не может быть произведена прямо на борту дрона или экшен-камеры. Даже мощный компьютер справляется не в реальном времени. Тем не менее, для получения действительно качественного результата это всё оправдано.

Я пока ни разу не пробовал сам летать с GoPro. Если не убьюсь о первую же скалу в Карелии, вы сможете увидеть результат через пару недель.

#gadgets #drone
👍12🤔1
350 километров в день — хорошее расстояние для путешествия на мотоциклах, если вы не только непрерывно едете, но ещё и останавливаетесь в разных местах погулять-посмотреть. Причем, разные места могут быть как большим городом со знаковым туристическим местом, так и красивым полем посреди безлюдных пространств.

Позабавило, что в крепости Орешек отдельно берут плату за трансфер на остров и отдельно за, собственно, посещение крепости, но по билетам это не очевидно. То есть вас высаживают на остров, на котором буквально с самого берега находится крепость. Хочешь внутрь — плати. Не хочешь — ну, значит, ты заплатил за то, чтобы постоять на причале.

При этом, запрещено летать. Лучше бы продавали билеты на запуск коптера.

Дороги в Карелии отличные, и машин мало. По крайней мере, в этой части Карелии. Дальше, вроде как, всё хуже и хуже, ну, скоро увидим.

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

#travel
👍11