Как стать автором
Обновить
12
0

Пользователь

Отправить сообщение

app.UseEndpoints(e => {}); - это что вообще?

Я имею в виду, я не вижу в этом вызове эндпоинтов, мы же передаём пустой делегат, правильно? А нет, оказывается, неправильно: это одно и то же:

app.MapGet("/", () => "Hello world");

app.UseEndpoints(e => e.MapGet("/", () => "Hello world"));

Или нет? Почему нужен пустой делегат?

я, вот, совершенно не вижу, как эта лишняя многословность, в данном случае, хотя бы читаемость улучшает.

Давайте посмотрим на этот пайплайн:

// ...
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Use<CustomMiddleware>();

app.Run();

Очевидно ли для вас, что здесь есть developer exception page и аутентификация? Точнее, может быть есть, а может и нет. Что сначала выполнится CustomMiddleware, а уж потом "/"? Что если вам не нужно настраивать CORS, то .UseAuthentication() можно не указывать, но если написали .UseCors(), то будьте добры, укажите и аутентификацию.

Принцип есть такой: явное лучше, чем неявное.

Я соглашусь с вашим коллегой, на комментарий которого вы отвечаете, что C# в какой-то момент свернул не туда. Посмотрите на Minimal API и скажите честно: оно точно надо было? У кого-то attention span короче 10 строчек? app.UseEndpoints(e => {}); - это что вообще? Почему нужен какой-то костыль, чтобы вся эта автоматическая магия не сломалась?

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

И Tailscale. Pick your poison, как говорится.

Тут недавно суд принял в качестве доказательства скриншот из бота по пробиву данных.

Да, конечно, она у вас на скриншоте:

Как вы сами и выяснили, приложения для одноразовых кодов существуют не только мобильные :)

Обходим обязательную привязку телефонного номера к своей учетной записи на GitHub

Ожидание: Github начал требовать номер телефона, находим уязвимость в интерфейсе или API и пропускаем шаг привязки телефона.

Реальность: ну обязательная привязка необязательная, просто кликните кномпочку с фактором не про номер телефона

Как это не встретишь? Торчащая редиска без аутентификации - это уже классика. Вот первая попавшаяся статья для понимания масштабов проблемы: В зоне доступа: Group-IB обнаружила в России 7 500 незащищенных баз данных / Хабр (habr.com)

Сервис "прикрывает" базу. Это backend приложение,

То есть вместо специально предназначенных инструментов (фаервола и аутентификации) использовать какие-то костыли?

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

А знаете, кем эти понятия придуманы? ;) Этими же бронзовыми игроками, которые думают, что снова проиграли исключительно по вине команды, ведь они-то лучше, им просто игра не даёт выиграть.

В HotS все эти мифы про elo hell давно развеяны. Можете посмотреть, например, серии Bronze to Grandmaster у FanHOTS. Их смысл в том, что если вы играете лучше бронзы, вы гарантированно из неё выйдете, каждый раз, каждый сезон, насколько бы на дне ваш аккаунт ни был. Вы не будете выигрывать каждую игру и вообще может придтись сыграть несколько сотен игр, но гарантированно.

Всё намного проще. РКН разломал пол-Рунета, но телеграм заблокировать так и не смог. Возникла неприятная ситуация: впервые кто-то успешно вставил слово поперёк. А что если другие тоже начнут думать, что можно побороться?

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

А у вас заговор какой-то. Если трафик так успешно дешифруется, то где массовые посадки администраторов неугодных каналов? Или каких-нибудь наркошопов. Это представьте сколько палок и звёзд на погонах. Зачем людей так убедительно просят разблокировывать телефоны и показывать подписки в телеграме, если якобы всё открыто и можно просто сделать выборку по трафику?

Представьте текст "Ваш аккаунт заблокирован" шрифтом комик-санс. Никто при всем желании не подумает, что это в самом деле от администрации.

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

А что плохого? Не у всех игрушек должен быть мудрёный геймплей или реиграбельность на тысячу часов, иногда просто хочется побыть котом и поглазеть на мир, спрятаться в коробке и найти пряжу для робота-бабушки :)

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

  • Сейчас у вас обоих похожий рейтинг

  • Вы оба находитесь не своём месте: ваш текущий рейтинг ниже реального, а рейтинг 30-процентного игрока выше реального

Сыграв достаточно игр, вы разойдётесь. Никто этого бедолагу не закидывает специально в команды с "винрейтом побольше", чтобы тех наказать за "много выигрываешь".

Очень много комментариев в духе "зачем мне эти ваши тайм зоны, у меня всегда UTC, мне timestamp (without time zone) - норм". Официальная вики постгреса однозначно не рекомендует так делать.

Подумайте насчёт NodaTime, библиотека разделяет "разные времена" по разным типам:

  • Время сообщения чата или создания поста - это Instant

  • Если нужно помнить время в часовом поясе, то это ZonedDateTime

  • Расписание соревнований - это LocalDateTime или даже LocalTime

Npgsql/EF Core библиотеку поддерживают.

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

Эти и другие важные новости читайте на Хабре.

К слову, методы get_MyInt/set_MyInt действительно генерятся:

foreach (var method in typeof(MyClass).GetMethods())
{
    Console.WriteLine(method.ToString());    
}

class MyClass
{
    public int MyInt { get; set; }
}

// Outputs
//     Int32 get_MyInt()
//     Void set_MyInt(Int32)        
//     System.Type GetType()        
//     System.String ToString()     
//     Boolean Equals(System.Object)
//     Int32 GetHashCode()

Но пользоваться напрямую ими нельзя, да и в autocomplete они скрыты:

var c = new MyClass();
c.set_MyInt(42); // Error CS0571 : 'MyClass.MyInt.set': cannot explicitly call operator or accessor

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность