Pull to refresh
31
Karma
0
Rating
Валентин Саров @qyk

Разработчик

Мои размышления про экранную клавиатуру для Flipper Zero под экранчик 128х64 пикселя

Abnormal programmingInterfacesManufacture and development of electronics

Недавно я увидел пост с приглашением разработчиков в проект Flipper Zero и подал заявку. Меня добавили в репозиторий с прошивкой и я стал много думать над юзабилити устройства. Приснилось, что мне надо отсканировать кучу ключей-брелков от разных подъездов. Во сне были разные люди, квартиры, дождь, и почему-то мне дали целую горсть этих желтых кругляшей, отличающихся друг от друга только количеством грязи на них. И естественно, чтобы как-то совладать с этим беспорядком, я решил внести все эти ключи во Flipper Zero.

Прямо во сне, я заносил новые идентификаторы и все они добавлялись в менюшку как «Ключ», что делало действо еще бессмысленней. Получился большой список, состоящий только из слова «Ключ». Подумалось, что надо переписать прошивку. И тут как раз преимущество сна — все задуманное сбывается одномоментно. Ключи стали добавляться с рандомным суффиксом как «Ключ 74», а следом за ним мог добавиться «Ключ 22». Номер именно рандомный, не путать с контрольными суммами или хешами. В принципе, если есть хорошая память, то можно запомнить, что «Ключ 22» от Ленина 54, а «Ключ 74» от Пушкина 29. Подумалось, что неплохо бы как-то редактировать номера, прямо на Флиппере, прямо в списке ключей: у нас же свободны кнопки влево-вправо, пусть они инкрементируют/декрементируют номер! А длинное удержание вызовет вызов полноценной клавиатуры! Но стоп, какую клавиатуру рисовать? Стандартную Qwerty с переключением на Йцукен? Русифицированную Яверты? У нас же экран всего 128х64 пикселя, к тому же в него надо как-то запихнуть еще вывод набираемого! Как все это уместить? Неужели вводить текст Азбукой Морзе?
Читать дальше →
Total votes 75: ↑74 and ↓1 +73
Views16.5K
Comments 67

News

Show more

Как я вижу идеальный браузер

FirefoxWebsite developmentGoogle ChromeBrowsersSoftware
В последнее время появилось много статей о недостатках современного софта, при этом никто не пробует предложить свои решения, чтобы поменять ситуацию. Эта статья — ответ на некоторые статьи об этом, равно как и о мечтах о идеальном браузере. Как можно было бы переработать браузер, его UI, методы взаимодействия с сайтами, улучшить протоколы и пользовательский опыт в целом. Если у вас есть какие-то, пусть даже самые смелые мысли по этому поводу, то предлагаюсь обсудить их и быть может заложить основы для создания идеального браузера. В конечном счете, рано или поздно это нужно будет сделать, так как ситуация на рынке браузеров на данный момент совсем не радостная. И не проблема, что другие браузеры очень сложны и их сложно догнать — мы можем пойти по своему пути, реализовывать только необходимые части стандартов, при этом можем вводить свои нестандартные расширения. Не надо бежать за другими, пусть другие бегут за нами. Пусть наш браузер будет создан для людей, а не во имя коммерческих интересов корпораций добра и странных консорциумов, от которых давно нет никакой пользы.



Что же должно быть в идеальном браузере?



Читать дальше →
Total votes 78: ↑54 and ↓24 +30
Views34.3K
Comments 155

За что я не люблю современный веб

Website developmentBrowsers
Recovery mode


Самый первый этап в работе с вебом — отправка данных в ваше серверное приложение. И если парсинг десятка мелких строк можно доверить фреймворку, то как быть с загрузкой файлов?

Возьмем для примера PHP, хотя описанное справедливо и для 99% остальных языков и технологий. Допустим, мы хотим позволить пользователю загружать картинки на сайт, для этого делаем формочку с полем типа file и… Внешне все очень просто, всего-то изменилось несколько байт в форме и в коде, зато теперь вместо текста из форм можно работать с файлами! Но не всё так просто, вашему файлу надо сначала осесть где-то в /tmp/, пока запрос не придет полностью, ваш скрипт просто не получит управления и вы ничего не сможете с этим сделать. К примеру, вместо картинки, пользователь загрузил exe-файл, но вы узнаете об этом только после того, как загрузка будет окончательно завершена. Тем самым, злоумышленник на некоторое время может забить вам канал и время вашей дисковой подсистемы, делая вид, что загружает полезные файлы, а вы об этом даже не узнаете. Если перед сервером приложений стоит кеширующий сервер, то ситуация еще хуже: к примеру, nginx создает временные файлы, т.е. сначала запрос от пользователя осядет на диске, как только он завершится, то файл перечитывается и быстро отдается серверу приложений (в нашем случае php), где он сохраняется на диск ЕЩЕ раз. Итого тройное использование диска, даже если пользователю надо просто вывести сообщение «ты забыл ввести капчу».
Читать дальше →
Total votes 53: ↑10 and ↓43 -33
Views9K
Comments 17

Information

Rating
5,765-th
Registered
Activity