Pull to refresh
26
Karma
3.6
Rating
ionicman @ionicman

User

«Яндекс»: отсутствует угроза для данных пользователей или работоспособности платформы, утечка кодов была инсайдом

Ну как сказать - коды только утекли - сейчас действительно угрозы нет - так как они еще не проанализированы и эксплойты не написаны)

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Это если мы говорим про обращение к thrd-party сервисам, и при этом at хранится на клиенте в js.

А я говорил про авторизацию на своём собственном сервере с использованием ac/at. Получается что механизм этот ничем не лучше обычной сессии с кукой в httponly.

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

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Но по нему нельзя получить новый access token от нашего собственного сервера

Почему? Алисе ведь он продляет этот at, в чем проблема у Боба сделать тоже самое имея этот-же at?

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Есть клиент на нем access token, есть бэк, на нем refresh token, access token был уведен и в пределах его жизни Боб отлично работает с бэком, при его устаревании бэк продляет чей либо access token - Алисы или Боба, кто первый, после этого refresh token также перегенерируется и будет храниться на бэке - верно? Те узнать про компрометацию можно по невалидной паре at/rt и то, если она таки пройдет, а то если Алиса к бэку больше не обратится - то и детекта не будет.

В случае с кукой - при ее генерации она хранится и на клиенте и на сервере, при продлении она пересохраняется и при продлении также сравнивается что также даёт информацию о компрметации.

Или я что-то не так понял?

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Всегда было интересно, чем пара Access Token/Refresh Token безопаснее http-only куки, устанавливаемой на короткое время и продливаемой бэком? Точно также не даст CSRF, и точно также при угоне в течении ее жизни можно будет эксплойтить бэк. В чем принципиальная разница?

Кодогенератор Waffle++ для C++

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

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

Я правильно понимаю, что у нас есть некая шаблонная функция?

Ну для примера пусть будет minimum:

template <typename T> T minimum (const T &a, const T &b) {
  return a < b ? a : b;
}

Есть внешний файл, где она объявлена, допустим utils.cpp

Если понадобилось вызвать эту фю для какого-либо произвольного типа где-либо в другом файле, можно же сделать так:

#include "utils.cpp"
typedef unsigned int MYTYPE;
MYTYPE a = 5, b = 7;
cout << minimum( a, b );

Или я задачу не верно понял?

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

Или на примере того-же мока - напиши его один раз, вынеси в отдельный файл - и где надо - заинклюдь чтобы не было boilerpate-а.

Кодогенератор Waffle++ для C++

Можно вопрос от неспециалиста в C++?

А почему нельзя просто заинклюдить библиотеку и вызывать оттуда нужные фии?

Чем лучше писать какие-то сущности в комментариях, которые потом развернутся в код?

Прекращайте оправдываться

Я специально нанял человека из россии, решил молодому мальчику помочь.

Из начала повествования. А надо было собеседовать и проверять и не надо было тянуть - в этом и была ошибка.

А так да - наняли человека не подходящего под требования.

Еще раз - у миддла или сеньора данной ошибки по просту бы не было.

А "оправдывание" было как раз из-за того, что Василий был не из той категории, которая требовалась.

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

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

Вы думаете, миддлов и даже сеньоров мало, которые говорят «ничего не знаю, проблема где-то не в моём коде»?

Конечно такие есть - но они это делают, четко понимая зачем и почему.

Это - не психологическая защита, а расчет - и это, естественно, совершенно другое и для другого.

Прекращайте оправдываться

Но вроде как они же не джуна брали

Нигде про это не сказано, но из комментариев автора выходит, что брали вообще чтобы "помочь"...

и у него неплохое резюме

Когда резюме - пусть даже и не плохое - являлось гарантом чего-либо?

но 100% достоверно оценить компетенции специалиста просто по резюме и собеседованиям в принципе нереально

Естественно, но здесь даже попытку не сделали, зато повелись на слова "Я буду копать!"

а про то, что ныть «чужая библиотека виновата» — отстой

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

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

Прекращайте оправдываться

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

Из невменяемых плюс мануалы вы получите невменяемого минус мануалы и минус время.

Поставить на ноги? У вас богодельня или бизнес? Если первое - вопросов не имею. Если бизнес - то надо чётко понимать затраты и профиты от такого действа и благодарность тут не причём.

Прекращайте оправдываться

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

Прекращайте оправдываться

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

Если человек не может - его надо заменять. Это его факап, как программиста, а все остальное - ваш, как руководителя.

Прекращайте оправдываться

Я правильно понимаю, что ваша организация наняла молодого программиста, не проверив его компетенции и технологии, которыми он владеет, как и его опыт?

Вы поставили перед ним таску, которую он сделал исходя из своих компетенций и технологий, которыми он владеет?

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

Вопрос - а почему вы взяли вместо миддла или сеньора непонятно кого? Потому что он дешев?

Ну и кто тогда должен оправдываться?

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

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

P. S. и причём здесь платный NestJS?

Программный рендер в стиле игры Doom

Понял, а если blur наложить - шум не уменьшится?

Если кубики - как получаются внешние поверхности как полу-сферы?

Вообще, очень круто было бы увидеть что-то такое же как в этой статье.

Ибо сейчас все юзают шейдеры и не парятся, а вот на чистом си не найти.

Программный рендер в стиле игры Doom

А исходники где-то можно посмотреть? Особенно дыма.

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Но если проект за деньги, то пиши на эти деньги

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

Переиспользование универсального кода как раз и даёт возможность снизить стоимость разработки.

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Обычный антидребезг, схем много - простейшая кондер 100nf параллельно кнопке.

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

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

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

Зачем все подряд упаковывать в конечные автоматы?!

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

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Ну, надо начать просто - чем больше, тем лучше будет.

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

Использовать объекты, когда есть что-то повторяющиеся в системе (кнопки, например).

Использовать ссылки, вместо передачи по значению.

Ну и возможность выносить класс или набор классов, как отдельный файл с отдельным функционалом - это прямо киллерфича - глобал не загрязняется, а порождая тип, ну например OLED display( PORTA, PIN1) сразу понятно что куда почему + инициализация, если нужна.

Это вот прямо самое базовое.

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Раньше C++ не использовался ввиду того, что давал оверхэд при компиляции для микропррцессоров, сейчас компиляторы его практически не дают - разница может составлять совсем не много около - 0.2-0.5%

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

Но понятно, что при использовании C++, надо и метрологию его использовать, а не процедуры + вкоряченный класс)

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

Information

Rating
729-th
Registered
Activity