Pull to refresh
134
-0.6
Михаил Бусырев @Aquahawk

инженер

Send message

А вы забыли взять "забыли" в кавычки ;)

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

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

я вот такое https://habr.com/ru/articles/549102/ себе собрал. прошло 2 года по 15 часов в сутки, это больше 11 тыс часов. Ни один светодиод из 1200 не сгорел.

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

В счастливую и спокойную жизнь с персональным облаком. Гитлаб (поменяю на gitea скоро) у меня свой. Syncthing вообще божественная штука. У меня есть и vpn на свой сервер и там smaba. Но с Syncthing всё вообще божественно. Мне не нужен никакой интерфейс. Оно синхронизирует файлы. И просто делает это надёжно. Я сделал фотку, она сразу сама улетела на сервак. Сделалась аудиозапись разговора - улетела. Поправил заметку в obsidian, оно автоматом синканулось на всех моих устройствах. И самое главное что это полностью и надёжно работает без интернета. Это не онлайн доступ, это физические копии. Я бываю в местах без интеренета. Зато какой кайф работать в поезде или самолёте, никаких проблем, всё просто синканётся как надо. Папка музыки телефона у меня синканута на десктоп, я просто положу туда mp3 и оно за пару минут просто приедет в эту папку в телефоне. Пароли тоже в шифрованы и пошарены правильно. Вся инфраструктура отвязана от левых зависимостей и работает по прямому белому статическому ip, мне не нужен DNS, не нужен внешний релей, вообще ничего не нужно, мой сервер и мои данные которыми я владею, которые я бекаплю и которые у меня никто не отберёт.

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

Как же хорошо от мысли, что SOLID, REST и GRASP - это проблема PHP. "Правильные" языки эта детская болячка обошла, и на "правильном" собеседовании эти вопросы стараются дипломатично обходить.

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

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

место.

Чувствуется ваше желание выдать желаемое за действительное.

Мой совет - завязывайте с двачем - 2022 год на дворе, пора идти дальше.

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

Я представляю уровень собеседований с вами.

Я вижу, что у вас богатое воображение, но боюсь, что оно ведет вас по пути желаемого, а не действительного.

Не удивительно, что вы не смогли найти нормальное место работы с достойной оплатой. Язык тут вообще ни при чём.

Да послушайте же, у меня было много мест работы на PHP, я их как-то находил. Но мне надоел процесс найма и люди в этом стэке. И сменив стэк, я увидел, что бывает и лучше. Об этом и статья.

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

А торговать с плечом 100 ещё выгоднее в моменте. На всём свои риски. Если что и акционер и держатель облигаций роснано и ипотекобетонщик, в одном лице.

Странно что не упомянут Рэпер Сява (лурка), который появился куда раньше и к хардбассу отношения не имеет (впрочем рэпом тоже это не особо назовешь)

Для того чтобы не пропихивать сертификат в систему каждый раз, есть magisk модуль https://github.com/NVISOsecurity/MagiskTrustUserCerts

А вообще я всё тоже самое делаю на железном девайсе. В виртуалку установлен kali linux, эта виртуалка прописана дефолт гейтвеем для мобилы и там уже mitmproxy в режиме transparent proxy https://docs.mitmproxy.org/stable/howto-transparent/

PS: за SSLUnpinning спасибо, для apple есть https://github.com/nabla-c0d3/ssl-kill-switch2 а для андроида не знал

Да ни на сколько. Каждый раз удивляюсь тому что на такие колебания на рынке люди образщают внимание, даже на этом графике видно что оно уже падало с такой скоросью в марте. Рынок очень волатилен и такие всполохи - мелочь обсолютная. Я бы уже 10 раз поседел если бы смотрел на подобные колебания каждой бумаги в свём портфеле.

Работа с Canvas
по-настоящему мучительна
Как-то портировал на JS древнюю DOS-демку, где ASCII-символами выводился вращающийся 3D-куб. Демка работала на 386 процессоре и демонстрировала неплохую производительность, а код её довольно прост и понятен. Поэтому я думал, что уж с современными-то технологиями проблем не возникнет. Ага, щаз!
Первые грабли заботливо подстерегли меня уже на этапе загрузки кастомного шрифта в Canvas. Видите ли, разработчики браузеров, чтобы порадовать пользователей, однажды собрались и решили: «а давайте мы сделаем загрузку всех ресурсов асинхронной, а надёжного способа отследить её завершения не дадим».
И вроде у нас есть document.fonts.load(), которая возвращает промис, и есть document.fonts.ready, и даже есть FontFace API, вот только 100% гарантию загрузки шрифта даёт лишь последнее, которое к сожалению не на всех мобильных браузерах поддерживается. Знаете, как подгорает, когда промис раскрывается в «loaded», а на самом деле шрифт ни хрена не подгружен, потому что какой-то особо умный оптимизатор мобильных браузерных движков додумался втыкать системный шрифт-плейсхолдер и делать вид, будто всё прогрузилось, а тем временем в фоне заканчивать загрузку…
Далее текст этим самым шрифтом надо вывести на экран. И тут вторые грабли: оно всё мыльное! Текст выглядит на редкость мутным и размытым. Почему? А оказывается, что пиксели Canvas не отображаются на пиксели экрана один в один, о нет! У нас тут запросто одному пикселю Canvas может соответствовать нецелое число экранных пикселей. Решению данной проблемки посвящены целые треды на том же SO, и там целые простыни кода, чтоб оно хоть как-то работало хотя бы на половине устройств. Просто, блин, вывод текста!
Ладно, с этим тоже разобрались. Буквы наконец-то выглядят чётко. Теперь надо вывести 80x25 символов, каждый своего цвета и со своим фоном, как в древней консоли. Выводим… и получаем 5 FPS на мобильных девайсах и 15 FPS на десктопе. Мало того, FPS ещё и нестабилен — периодически случаются фризы. Да как так-то?! Это, блин, на 386 проце работало!
А проблема называется «смена состояния контекста». Каждый символ же надо выводить своим цветом. И вот если всё выводить только чёрным, то FPS более-менее, а каждый раз менять стиль — дорого и затратно. Мало того, оказывается, что и вообще рендер текста на Canvas довольно затратная операция.
Первое, что приходит на ум — рендерим весь набор ASCII-символов однократно, а потом просто копируем как спрайты. drawImage() специально создана для копирования фрагментов изображения, используем, и…
И FPS падает до 0.5 даже на десктопе. Вдруг оказывается, что Chrome-движок не использует GPU при копировании с одного Canvas'а на этот же самый Canvas! И нам нужно создать второй canvas, рендерить на нём и копировать с него, если мы хотим получить ускорение.
На этом со скоростью рендера текста хоть как-то разобрались. Осталось подобрать размер шрифта так, чтобы наши 80x25 символов как раз вписались в экран. И тут на нас набрасываются очередные грабли под названием measureText(), которая отлично замеряет ширину строки, но не высоту. Высоту придётся мерить как-то иначе, вручную сканируя пиксели…
Кстати, ещё одна миленькая традиция современных браузеров — прятание ошибок. Если что-то не поддерживается, оно скорее всего просто проигнорируется, и у вас нет способа узнать, отработала ли соответствующая функция (сами функции canvas не возвращают никаких кодов ошибок, обратной связи нет).
Вот честное слово, проще писать демки на ассемблере для NES, чем под то издевательство над разработчиком, которое нам дали в современных браузерах. Всё очень хрупкое, ненадёжное, с массой побочных эффектов и постоянным «сваливанием» в тормоза от любого чиха.
Нет не правильно. Выписку из ЕГРН, внезапно может предоставить только ЕГРН.
Насколько же отвратительно и ужасно сделан www.npmtrends.com
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity