Pull to refresh
242
2.3
Anton Fedorov @datacompboy

Программист / сисадмин (Sr. SRE)

Send message

Как я oauth proxy навайбокодил

Level of difficultyEasy
Reading time8 min
Views2.2K

Чем хорош TRMNL — так это возможностью выводить что-то своё за считанные минуты.

Но сервер позволяет только простые GET и POST запросы, то есть в лоб OAuth2 не реализуешь. Оно и понятно: они не очень хотят хранить данные авторизации для всех.

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

Только повайбкодить придётся

TRMNL своими руками

Level of difficultyEasy
Reading time4 min
Views4.9K

Недавно на хабре упоминались http://usetrmnl.com/ и я не удержался. Вот только не удержался не только я, и у них бэклог на еще месяца полтора... Но есть выход!

самопал!

Литкод изи — это просто

Level of difficultyEasy
Reading time6 min
Views12K

Задумывались ли вы, где можно применить навык решения задачек а-ля литкод изи? Я встречаюсь с ними частенько, главное просто присмотреться.

Например, на Linked.in недавно ввели "игры". Я как-то глянул на них на послеобеденном кофе.

Пусть оно само

KatWalk C2: ч.5: Учимся разбирать ARM в Ghidra (aka оверклокинг и багфиксинг)

Level of difficultyMedium
Reading time23 min
Views3.1K

"Что б они ни делали -- не идут дела. Видимо в прошивке багов дофига". Как я напомнил в прошлой статье (где я подготовил утилиты для перепрошивки сенсоров) -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

Её исходный ресивер обновляет сенсоры с частотой в 86Гц, тогда как технически возможно разогнать до 133 Гц, получив ощутимо ниже задержки, но связь была нестабильной.

Давайте начнём погружение в сенсоры -- посмотрим, что за игра ghidra_11.0_PUBLIC установлена у меня в C:\Games, заглянем одним глазком в саму прошивку и поковыряемся там грязными патчиками, да исправим race condition плюс выкинем немного отладочных глюков. В общем, готовимся к погружению. В этот раз -- всё серьёзно.

Ныряем

Замена мотора на дорожке LifeSpan Fitness TR5000

Level of difficultyEasy
Reading time4 min
Views2.7K

Несколько внеочередная заметка... Со времён Короны я работаю дома на подстольной дорожке. Когда я искал что же купить, я наткнулся на небольшой местный магазинчик FitOffice, где выбор был TR1200 или TR5000. По отзывам обе хороши, но одна требует регулярного смазывания и предполагает использование на несколько часов в день -- а вторая не требует смазывания и подходит для ходьбы хоть весь день. Жена настояла на второй :)

Если вкратце, то за 4 года использования, я находил на ней всего около 10 тысяч км, но она начала шуметь до невозможности -- по замерам телефона более 60 дБ на 5км/ч, да еще с жуткой высокочастотной составляющей, которая делала шум еще хуже. Ну то есть я мог за ней работать (стол экранировал от прямого шума), но шум рядом с ней становился отвратительным.

Официальный суппорт по почте сказал мне "это нормально" -- а FitOffice сказали что это похоже на проблему мотора -- аналогично высказался кто-то на reddit, да и на мой слух звучало как проблема какого-то из подшипников. В качестве простой меры мне предложили поменять щётки мотора, эту инструкцию я нашел (осторожно: видео). Но щетки оказались почти не израсходованными (меньше 1мм съелось), и на звук замена не повлияла. Осталась опция только замены мотора.

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

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

Изучить процедуру

KatWalk C2: ч.4: поиграемся с прошивкой

Level of difficultyMedium
Reading time13 min
Views1.2K

Для тех, кто только подключился -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

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

Давайте что-нибудь в нём пропатчим!

KatWalk C2: ч.3: отрезаем провода

Level of difficultyMedium
Reading time28 min
Views2.6K

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

Теперь познакомимся с Bluetooth LE и узнаем, почему приходится писать свой приёмник а не просто полагаться на операционную систему.

Кабель? Нет, спасибо. Но как?

KatWalk C2: ч2, подслушаем, подсмотрим и разнюхаем или как общаться с незнакомым железом на незнакомом языке

Level of difficultyMedium
Reading time27 min
Views1.2K

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

Однако, получение данных требует постоянно висящего приложения (на C#), и надо понять что же конкретно оно делает.

Давайте разберёмся как общаться с железом и избавимся от балласта!.. Переписав на Kotlin. Почему Kotlin? Потому что я на нем никогда еще не писал.

Погружаемся

Играем с KAT Walk C2. (часть 1: собственно, играем)

Level of difficultyMedium
Reading time22 min
Views3.8K

У меня есть дурная привычка: я играю в игры. Впрочем, понятие "играю в игры" довольно своеобразное.

Уже несколько лет как я обзавелся VR платформой от KAT VR. Согласно её внутренней статистики, я прошел на ней около 30 километров и сделал 40к шагов. Статистика, конечно, врёт и сильно, было гораздо, гораздо больше. Однако же да, на ней я играл гораздо меньше времени чем с ней.

Впрочем, обо всём по порядку.

TechArena Ireland: как готовился хакатон

Level of difficultyMedium
Reading time11 min
Views675

На прошлых выходных (23-24 сентября) Huawei проводил хакатон TechArena Ireland в Дублине. Несколько сотен зарегистрировались, больше сотни пришло. Организация потребовала немало времени и сил на подготовку места, рекламы, и прочего. (Я не буду перечислять в переводе всех пострадавших :) Они все упомянуты в англоязычном посте на LinkedIn и Medium.)

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

Читать далее

Создание своей эргономичной клавиатуры, ч4: делаем корпус (пришло время бутербродов)

Reading time10 min
Views6.2K

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

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

Читать далее

Создание своей эргономичной клавиатуры, часть 3: оживляем её

Reading time13 min
Views17K

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

лудим, паяем, прошиваем

Создание своей эргономичной клавиатуры (часть 2: определяемся с железом)

Reading time12 min
Views14K

Раскладку создали, теперь надо ее превратить в нечто материальное.

Мне нужна низкопрофильная клавиатура. Насколько низким должен быть профиль? Какие свичи дадут приятный тактильный отклик? Есть ли подходящие крышки? Какой процессор? Плата или навесной монтаж? И как вообще нарисовать печатную плату?

Никакой интриги

Создание своей эргономичной клавиатуры (часть 1: создание раскладки)

Reading time6 min
Views12K

Всякий, кто работает за компьютером, каждый рабочий день касается клавиатуры. (И мыши, разумеется). Мы меняемся -- и предпочтения как и на что нажимать тоже меняются со временем.

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

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

Привыкание к разломанной потребовало времени -- и я всё еще не полностью адаптировался... -- в основном из-за моего навыка печати. Как я уже писал, я самоучка, и средние столбцы общие для обеих рук. Я могу нажать "y" как левой так и правой рукой, то же с другими средними кнопками -- в итоге я часто жал вместо "y" -- "t" или "n" вместо "b". Так же неприятно ткнуть в пустое место клавиатуры вместо нажатия на "7". Заметив эту проблему, я попытался найти клавиатуру у которых средние столбцы продублированы, но таких клавиатур на рынке просто нет. После изучения доступного инструментария я понял, что создание клавиатуры своей мечты гораздо проще чем я думал. А если можно -- почему бы и не попробовать? Будет весело!

Читать далее

Гигиена удалённой работы или о пользе телепатии

Reading time4 min
Views16K

Приходилось ли вам запинаться в работе? Вот берёте таск: зафигачить красивый отсчитыватель времени "До конца супер предложения осталось всегда 2 часа". Открываете редактор… и щёлк: а как делать-то? Вроде я что-то слышал, что мы лэндинги начали на Vue делать. Или тут еще реакт?


Хорошо, когда вы в опенспейсе сидите через два стола. Всегда можно встать, и тихо спросить соседа "Напомни, мы Vue для всех теперь берём?". Хуже, если ТЛ в другом часовом поясе. Тот же вопрос — но ответ завтра. А если он закрутился, то послезавтра. И всё, вместо 1 минуты — двое суток задержки.


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

А в конце статьи -- сюрприз

What to think during NALSD interview

Reading time7 min
Views9.5K
There are a lot of posts about what a typical coding interview at Google looks like. But, while not as widely described and discussed, there is also quite often a system design interview. For an SRE position it’s NALSD: non-abstract large system design. The key difference between SWE and SRE interviews consists in these two letters: NA.

So, what is the difference? How to be prepared for this interview? Let’s be non-abstract, and use an example. To be more non-abstract, let’s take something from the material world, such that you won’t be asked the exact same thing at the real interview (at least, not at the Google interview) :)

So, let’s design a public library system. For the paper books, like you have seen everywhere around. The whole text below was written all at once within around one hour, to roughly show you the areas that you should be able to cover / touch during the interview. Please excuse some disorder, that’s how I think (therefore I am).
Read more →

О чем думать на NALSD собеседовании

Reading time6 min
Views13K
Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE и SRE именно в этих буковках “NA”.

В чем же отличие, и как подготовиться к нему? Давайте разберём на примере. В качестве примера возьмём что-то весьма материальное, что-то такое, что точно никто никогда не спросит на реальном собеседовании (в гугл) :)

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

Как собеседует Google: чему быть, чего не миновать

Reading time6 min
Views75K
В последние недели участилась волна статей на хабре о том, как проводятся собеседования.

Google ищет инженеров постоянно. Как SRE, могу точно сказать, что вы нужны в наших рядах. Печеньки на мини кухнях и кофе в кофемашинах ждут вас. Всего-то нужно пройти собеседование. Это сложно, но реально — когда-то я уже описывал свою историю как соискателя, а сейчас уже в числе прочего занимаюсь и проведением собеседований. Так что сейчас я расскажу, как мы проводим собеседования с инженерами.

Нет, я не стал рекрутером. Процесс собеседования предполагает сперва разговор с рекрутером. Это общая беседа “что-куда-зачем” (то есть описание процесса для вашего конкретного случая) и тот самый всеми любимый скрининг из опросника с несколькими вариантами ответов. Скрининг мне в своё время показался весьма базовым, подозреваю, что вы отвечали на такие вопросы уже сотню раз. Затем собеседования будут проводиться уже инженерами — вашими будущими коллегами (близкими или далёкими, это уже как получится, наша планета весьма небольшая).

Читать дальше →

Кэши для «чайников»

Reading time12 min
Views38K
Кэш глазами «чайника»:


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

Давайте прокрутим полный оборот ситуаций.

Tl;dr: добавляя в архитектуру кэш важно явно осознавать, что кэш может быть средством дестабилизации системы под нагрузкой. Смотрите конец статьи.
Читать дальше →

Всё на своих местах

Reading time3 min
Views7.3K
TL;DR: В ближайшее время можно будет оставлять комментарии на YouTube без Google+ аккаунта.

Когда мы запускали Google+, мы хотели помочь пользователям искать, делиться и знакомиться среди всех наших продуктов так же, как это делают люди в обычной жизни. В некоторых случаях это получилось, а некоторые решения следует пересматривать. Так что, в ближайшие месяцы мы запустим несколько важных обновлений. Вот чего следует ждать:
Читать дальше →

Information

Rating
1,233-rd
Location
Zürich, Zürich, Швейцария
Date of birth
Registered
Activity

Specialization

Specialist
Lead