85
Karma
0.6
Rating
Никита Цуканов @kekekeks

Гуру велосипедостроения

HTTP/3: разрушение основ и дивный новый мир

+1

WebGL как бы маловато для UI-тулкита. Контрольчики отрисовать не проблема, веселье начинается на тексте и его вводе. Причём у браузеров нет вообще никаких API для интеграции с системой ввода текста. Совсем. Можно более-менее работать только с европейскими локалями, где всё работает на раскладках клавиатуры.

Apple в 2019 году — это Linux в 2000 году

0

Используем логические "точки на дюймы". Пушто если верить EDID моего ноутбучного монитора, то физический DPI у меня будет


по-горизонтали 1920 / (34.4cm/2.54) = 141,767441860465
по-вертикали 1080 / (19.4cm/2.54) = 141,40206185567


Тем не менее система ведёт себя по-умолчанию так, как будто на экране 72 (или 96 если мерить виндовыми мерками) DPI.

Apple в 2019 году — это Linux в 2000 году

-1

В randr лежит информация из EDID, которую не переопределить нормально из гуя. Только QT_SCALE_FACTORS выставлять в переменных окружения, что мягко говоря не удобно и требует перелогина.

Apple в 2019 году — это Linux в 2000 году

+7

В реализации per-monitor DPI на X11 вообще ничего сложного нет. Мы это сделали без каких либо проблем в Avalonia UI, по примеру Qt анализируя DPI монитора и выбирая нужный либо автоматически, либо из переменной окружения. Единственное чего не хватает — общесистемного места с настройками.


Что мешает на уровне иксов оконному менеджеру рассылать окнам ClientMessage c новыми параметрами масштабирования — загадка. С получением текущих настроек — аналогично, шлём сообщение корневому окну, его перехватывает оконный менеджер и отвечает параметрами DPI. Особенно учитывая, что на винде примерно всё именно так и работает (WM_DPICHANGED), окна сами должны рисоваться с предложенным им системой DPI.


Так что "архитектурно невозможно" — это ложь, пиздёж и вейландолобби.

Apple в 2019 году — это Linux в 2000 году

+1

На самом деле в Qt оно прекрасно работает и на X11. Во всякие гетека нормальную поддержку per-monitor DPI не завозят исключительно из-за лобби этого самого вейланда.


Собственно на текущий момент единственная проблема нормально реализовать per-monitor DPI в тулкитах связана с отсутствием общесистемного места, где мониторам можно было бы настроить из DPI.

Суд ЕС выступил против cookies по умолчанию — предустановленных галочек быть не должно

-3

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

Суд ЕС выступил против cookies по умолчанию — предустановленных галочек быть не должно

-2

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

Суд ЕС выступил против cookies по умолчанию — предустановленных галочек быть не должно

0

Ну то есть теперь везде будет жирный неотключаемый баннер "Согласись на обработку ПД или уходи, потому что иначе мы тебя обслужить не можем". Чего добивались — совершенно неясно.

Microsoft выпускает клавиатуры с новыми клавишами — Office и Emoji

Как я ездил на финал конкурса «Цифровой прорыв»

-1

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

Как я ездил на финал конкурса «Цифровой прорыв»

+1
Как и ожидалось — фикция, с многомилионным бюджетом.

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


На нашем треке по софту для упрощения установки умного дома вполне законно взяла первое место команда, умудрившаяся за 3 дня сделать на Qt почти полноценную CAD-систему для проектирования такового.


То, что на флешках, а не например на дисках или перфокартах — действительно прорыв!

Мне на предзащите одна из команд пыталась впарить готовый код с гитхаба как свою собственную разработку. Так что сдача кода — вполне оправданный шаг.

Минимизация налогообложения для IT-бизнеса через IP box: сравнение юрисдикций

0
Почему вы считаете эти доходы пассивным?

Потому что надо читать не левые нагугленные статьи, а налоговый кодекс в действующей редакции. А именно ст. 309.1, где софт подпадает под


4) доходы от использования прав на объекты интеллектуальной собственности.

С заказной разработкой проблем особых нет, а вот SaaS можно и на п. 10 натянуть:


10) доходы от оказания консультационных, юридических, бухгалтерских, аудиторских, инжиниринговых, рекламных, маркетинговых услуг, услуг по обработке информации, а также от проведения научно-исследовательских и опытно-конструкторских работ;

Минимизация налогообложения для IT-бизнеса через IP box: сравнение юрисдикций

0

Договор об избежании двойного налогообложения позволяет вычесть налог, уже уплаченный в стране регистрации. Т. е. условно заработали $100, заплатили $4 налогов в стране регистрации, платим 13-4 = $9 уже в РФ. Причём не важно, была ли распределена прибыль в виде дивидендов. Если в конце года деньги остались на счету компании, акционеру всё равно придётся платить налог в РФ.

Минимизация налогообложения для IT-бизнеса через IP box: сравнение юрисдикций

0

Теперь учитываем, что основанием для необходимости платить в РФ налоги за КИК является пассивность дохода последних, получаем, что ставка получается та же самая, только больше телодвижений.

Монада «Maybe» через async/await в C# (без Task-oв!)

+3

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

Монада «Maybe» через async/await в C# (без Task-oв!)

+1

Что будет с using-ами внутри таких методов?
Условно


async MayBe<bool> WriteTo(string path)
{
      using(var f = File.OpenWrite(path);
     {
           f.Write(Header, 0, Header.Length);
           var data = await GetData();
           f.Write(data, 0, data);
     }
}

где GetData возвращает MayBe<byte[]>. Правильно ли я понимаю, что предложенное решение оставит метод в "подвешенном состоянии" и Dispose на файле не будет вызван?

C++ против C#

+3

0.8 ретроспективно назначили стабильным релизом, ввиду, как бы это сказать, стабильности и готовности к использованию на десктопах. Уже после публикации на хабре.


Версионирование пока так и будет в стиле 0.123.1 по требованиям SevVer, поскольку бинарной обратной совместимости между версиями в ближайшее время не планируется. Ну или перейдём на браузерную модель версионирования с новым мажорным релизом каждые несколько месяцев.

Сериализация и десериализация данных .NET Core vs Go

+16

Для сравнения сериализации JSON в Go и .NET в контексте веб-приложений вам сюда. Повторяемая методика тестирования и возможность любому желающему взять и улучшить решение на конкретном языке/технологии вызывают больше доверия к данным бенчмаркам за счёт исключения факторов ангажированности и/или кривых рук бенчмаркающего.


Собственно разница выходит не "12%", а меньше 2% (1,306,423 vs 1,286,433)

Для чего пригодится дефолтная реализация интерфейсов?

+2
В этом C# интерфейсы и расходятся с концепцией миксинов (насколько я их понимаю, миксины концептуально могут хранить состояние), но мы все ещё можем достичь изначальной цели

Вот это если что компилируется и работает:


using System;

interface IFoo
{
    protected class TraitState
    {
        public int Bar {get;set;}
        public int Bar2 {get;set;}
    }
    protected TraitState State {get;}
    public int Wat() => State.Bar + State.Bar2;
}

public class C : IFoo 
{
    IFoo.TraitState IFoo.State {get;} = new IFoo.TraitState();
}

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

Роскомнадзор объяснил блокировку математического форума

+4

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

Ричард М. Столлман уходит с руководящих должностей в Free Software Foundation

+3

Если верить вот этому:


A lot of people are acting like this is just about the Epstein comments. The MIT community was up in arms not just over that but at the mountain of shit Stallman has gotten away with over the last few decades, including crap like telling female researchers he'd kill himself unless they dated him, keeping a mattress in his office and inviting people to lay topless on it, defending pedophilia and child rape. He's been making women at MIT uncomfortable for years, and it just finally caught up with him. This Epstein shit is the tip of a sexist shitberg, and it finally capsized.
A whole lot of people sayin stuff like "VICE has misrepresented what he actually wrote in his email!" I mean, maybe you're right, but this latest controversy is like 1% of why he's finally being ousted.
Source: went to MIT, several of my female friends in CSAIL have been complaining about this for years.

то история с Эпштейном оказалась последней каплей и он до этого десятилетиями себя мягко говоря некорректно вёл.

Франция будет блокировать разработку Facebook Libra

+2

Ентот ваш ентернет по проводам идёт. А они идут по Франции и по Германии. Так что ежели надо будет, то никакого фейсобука не станет.

В Калифорнии водителей и курьеров сервисов вроде Uber, Lyft и Amazon признали сотрудниками, а не подрядчиками

В Калифорнии водителей и курьеров сервисов вроде Uber, Lyft и Amazon признали сотрудниками, а не подрядчиками

+3
Теперь нельзя: закон запрещает работать официально больше 48 часов в неделю

Вот как-нибудь обойдёмся на дорогах без спящих по 3 часа в сутки таксистов, спасибо.

Рассказ о том, как популярная JavaScript-библиотека начала выводить в терминал рекламу

+1

Самая популярная на текущий момент .NET-библиотека в своё время при установке/обновлении NuGet-пакета через PowerShell-скрипт открывала в Visual Studio вкладку со своим сайтом, где крутили рекламные баннеры. Ничто не ново под луной.

Сравнение потребления памяти различных GUI тулкитов

+13

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

Сравнение потребления памяти различных GUI тулкитов

Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо

0

Пушто
1) сделано левой ногой за два дня с целью проверки концепта и сбора граблей
2) Mono в режиме интерпретатора в целом весьма тормознутое


По результатам: инфраструктура для работы в WASM в дотнетах пока очень сырая, отладка отсутствует в принципе, стоит подождать ещё год перед очередной попыткой портирования.

Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо

+1

Silverlight-ом оно станет, когда будет что-то типа этого: http://testapp.keks-n.net/ (потыкайтесь для интереса инспектором). А пока это обычный веб-фреймворк.

Telegram наносит ответный удар DPI и блокировкам — Fake TLS

+13

Осталось догадаться, что надо научиться работать поверх вебсокета, тогда на хосте на все зондирующие запросы будет отвечать обычный nginx с обычным веб-сайтом. Причём для включения поддержки такой схемы на сервере достаточно обычного websockify.


Но это, видимо, слишком сложно.

Типизируйте уже наконец свой код

+3
Чем больше типов, вложенности и il кода, тем медленнее ПО, так как jit`у сложнее оптимизировать программу. Поэтому подобного рода строгая типизация приведет к серьезным тормозам в проекте.

В дотнете структура вида


struct Wrapper<T>
{
      public T Value {get; set;}
}

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


interface IFoo
{
      void Bar();
}
void Do(T x) where T : IFoo
{
     x.Bar();
}

чтобы избежать боксинга.

Как мы разработали устройство для контроля внимания водителей. Опыт Яндекс.Такси

0

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

Apple получила отказ в регистрации товарного знака дополненной реальности в России

0

Что характерно, Apple не пытается использовать свой товарный знак для торговли яблоками.

Геймификация против пропаганды: устойчивость к дезинформации можно развить с помощью простых игр

AvaloniaUI: особенности на примере MessageBox

+2

Чтобы его поставить в сам фреймворк, его нужно нормально сделать. В понятие "нормально" входит "кроссплатформенно". Те же мобильные платформы работают несколько иначе чем десктопные, да и пользователю лучше работать в этом плане с нативным интерфейсом. Так что как минимум необходимо задейтствовать NSAlert, UIAlert и AlertDialog, а апи самого мессаджбокса сделать таким, чтобы оно отражало и их особенности. До всего этого должны дойти руки.

AvaloniaUI: особенности на примере MessageBox

Перенос десктопных приложений на .NET Core

+1

У Uno есть очень интересная особенность: огромное количество типов из UWP там представляют из себя заглушки наподобие вот этой. А поскольку разрабатывать они предлагают с использованием штатных средств UWP, получаем NotImplementedException после уже после деплоя на устройство.


Что касается WASM, то оно там безбожно тормозит, что предсказуемо.

Правительство РФ предлагает Huawei использовать ОС «Аврора» (экс-Sailfish) для своих смартфонов

+6

Под Linux на ARM-то? Есть, отчего же не быть. CoreCLR дополнительно libicu и libunwind потребует, Mono вообще ничего не надо.


И вообще, я на N900 с Maemo (предшественница sailfish) цельнотянутый MonoDevelop запускал.


А поскольку там у них Wayland в качестве дисплейного сервера, то и AvaloniaUI не особо сложно будет завести.

Правительство РФ предлагает Huawei использовать ОС «Аврора» (экс-Sailfish) для своих смартфонов

+2
основное средство разработки ПО — C++

Основное средство разработки ПО — Qt и QML. То есть, берём какой-нибудь qmlnet и "основным средством" становится C#.

Vivaldi: Блокировка рекламы должна быть выбором пользователя

+7

Вы можете отключить блокировщик и любоваться рекламой, без которой сайт всё равно отказывается работать. Все счастливы.

1 There