Email or username:

Password:

Forgot your password?
361 posts total
Tech Thread

Есть ли какая-то минимальная замена WinPower? Не хотелось бы тащить JDK, да и графического интерфейса в системе нет. Мне нужно тупо выключать систему при отключении электричества и включать её, если свет снова дали.

Система: Alpine Linux (standard-x86);
ИБП: IPPON Back Power Pro 400. @tech by @devadideva

Alex

@devadideva

В линуксе есть NUT, но он... специфический.

Tech Thread

@tech есть ли у #chrome штатная возможность как-то плейнтекст файлом переопределить свою дефолтную конфигурацию? По аналогии с overriders.cfg у #librewolf. Т.е. какой-то файл дифф какие сеттинги с дефолтов переключить на то что надо. by @kto

Tech Thread

Поглядываю #youtube без аккаунта с заблокированными куками родного домена ютуба. При переходах между страницами в хедеры /browse реквеста (рекомендации) засылается уникальный x-google-visitor-id хедер сохраняющийся при переходах между страницами ютуба (если жать ссылки, открывать видосы, пойти на главную через лого и т.д.), и вот в зависимости от него формируются рекомендации для гостей. Если страницу рефрешнуть и куки отключены/заблочены значение генерируется заново. Не похоже чтобы google/youtube пытался как-то отслеживать историю по IP или другим футпринтам и в зависимости от этого влиять на рекомендации, рисуются дефолтные для региона.
@tech есть ли у вас примеры иного поведения чтобы yt как-то явно следил и влиял на рекомендации незалогиненого юзера исходя из прошлой истории?
CC @surver by @kto

Поглядываю #youtube без аккаунта с заблокированными куками родного домена ютуба. При переходах между страницами в хедеры /browse реквеста (рекомендации) засылается уникальный x-google-visitor-id хедер сохраняющийся при переходах между страницами ютуба (если жать ссылки, открывать видосы, пойти на главную через лого и т.д.), и вот в зависимости от него формируются рекомендации для гостей. Если страницу рефрешнуть и куки отключены/заблочены значение генерируется заново. Не похоже чтобы google/youtube...

MrClon

@kto со включенными куками точно следит и рекомендует релевантное

Tech Thread

Согласно TDD я должен написать сначала спецификацию, затем -- тесты, и только потом -- код. Но каким образом я могу написать тесты для функций, которые вызывают системные функции?

Ясно, что их нужно изолировать: для этого используются mock'и, stub'ы и иже с ними. Однако для этого я должен заранее знать, какие функции будут использоваться в реализации. Но это знать невозможно, поскольку сначала идут тесты! Более того, странно опираться при тестировании на реализацию, а не спецификацию: реализация может поменяться спустя некоторое время, а сигнатура тестируемой функции должна быть неизменной.

К тому же, сами вызываемые системные функции могут варьироваться: на Linux для определённой цели может использоваться epoll, а в FreeBSD для той же цели kqueue. Как написать тесты, чтобы их не пришлось бы переписывать для каждой платформы в отдельности? Хотелось бы написать их написать один раз, опираясь на спецификацию (которая пишется тоже один раз) и забыть о них. @tech by @devadideva

Согласно TDD я должен написать сначала спецификацию, затем -- тесты, и только потом -- код. Но каким образом я могу написать тесты для функций, которые вызывают системные функции?

Ясно, что их нужно изолировать: для этого используются mock'и, stub'ы и иже с ними. Однако для этого я должен заранее знать, какие функции будут использоваться в реализации. Но это знать невозможно, поскольку сначала идут тесты! Более того, странно опираться при тестировании на реализацию, а не спецификацию: реализация...

Show previous comments
[DATA EXPUNGED]
Alex

@devadideva

>Но каким образом я могу написать тесты для функций, которые вызывают системные функции?

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

У тебя какое-то странное понимание тдд. Ибо это итеративный процесс. Посмотри какое-нибудь видео, где люди практический пример показывают.

vCarabis

@tech
Спецификации должны чётко описывать на каком наборе входных параметров какой результат ожидается. Этого вполне достаточно чтобы написать тест. Что происходит там внутри не должно влиять на это.

Другой вопрос что далеко не все функции имеет смысл тестировать. Например функции с тривиальной логикой. Ну и как сказали выше, если писать код с прицелом на тесты, моки и т.д., работать это все будет не очень хорошо, да и поддержка такого кода может быть слишком трудоемка.
@devadideva

Tech Thread

если у DSi (что так и есть) проц ARM, то почему мы технически не можем (или всё же ли можем) запустить ОС DSi чисто на RPi?
Я пока из проблем лишь вижу что у DSi ARM9+ARM7, а у RPi (беру инфу с RPi3B, т.к. у меня имено эта малинка) один ARMv8 (+AArch64), но вроде что одно ARM, что другое ARM, только более современное.
@tech (?) by @latte

MrClon

@latte во всяких микроконтроллерах вроде STM32C0 тоже ARM. ARM это широкое семейство процов, бинарная совместимость там не предполагается. Как минимум в исходной железке может быть какая-то переферия к которой нет (или есть, но работает чуть по другому) к которой обращается код. И едва-ли в коде предусмеотрены какие-то фолбэки на случай если в переферия не ответила как ожидалось

yoshir

@tech
наверное по тем же причинам что мешают нам запускать OS PS4 на компах
@latte @ru

mittorn

@tech @latte ну как минимум ISA поддерживается, надо чтобы endianess совпадал, тогда будет теоретичкская возможность запустить в режиме виртуализации, но будут проблемы из-за всякой переферии, которую ОС ожидает и пытается инициализировать

Go Up