User
Windows воспринимает Dvorak, как QWERTY. Исправляем сие недоразумение
Каждый, кто создавал кастомную не-QWERTY раскладку клавиатуры через Microsoft Keyboard Layout Creator (MSKLC), обнаружил, что в процессе работы во множестве программ (включая все программы в .NET) горячие клавиши находятся на тех же местах, что и раньше у QWERTY-раскладки (Ctrl+C
, Ctrl+V
всё там же; для пользователя Dvorak это теперь Ctrl+J
и Ctrl+K
, соответственно).
В этой ситуации разработчики приложений ни в чём ни виноваты, дело в особенности работы MSKLC, которая не меняет расположение виртуальных клавиш. Под катом разберёмся, как устроен .klc-файл и как его отредактировать, чтобы всё встало на свои места.
Китайские LEGO-совместимые робототехнические конструкторы. На чем можно учить, когда нет официальных наборов
Мы решили посмотреть, что же доступно из робототехнических конструкторов, совместимых с LEGO, на любимой многими китайской торговой площадке. И если выбор клонов и оригинальных аналогов LEGO System и Technic большой и достойного качества, то вот найти замену тому же EV3, становится не так просто. Но выход есть.
Обзор паттернов хранения деревьев в реляционных БД
Всем привет! Меня зовут Пантелеев Александр и я бекенд разработчик в компании Bimeister. Постараюсь описать исчерпывающе, кратко и понятно суть основных паттернов хранения деревьев в реляционных базах данных. Надеюсь, что статья будет полезна тем, кто до сего момента не сталкивался с такими паттернами, и станет отправной точкой в их понимании.
Создание .NET библиотеки от А до Я
Думаете о создании .NET библиотеки, но не знаете, в какую сторону двигаться? Уже разрабатываете нечто подобное, но хочется открыть для себя что-то новое? Ищете варианты расширить автоматизацию? Не знаете, что делать с пользователями?
Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.
Идеальное Vue приложение на Typescript
Пока Vue3 официально еще не вышел, а продакшене в основном 2 версия - я хочу поговорить о типизации и том, что она все еще не идеальна во Vue. И сегодня мы попробуем создать идеальное приложение с типизацией на typescript сделав упор на code style, пропагандируя vue style guide и прочие обычно не значащие вещи, которые были придуманы умными людьми!
Бесплатное решение для создания программного гибрида SSD и HDD на домашнем ПК Windows Tiered Storage Spaces
Привет, Хабр! Уже много лет я читаю замечательные посты, и, кажется, наконец нашел чем сам могу поделиться с сообществом.
Сегодня я хотел бы рассказать про создание программного гибридного локального диска SSD и HDD на настольной версии Windows и его тестирование. Впервые я заинтересовался этой технологией когда купил себе новый процессор от Ryzen и прочитал статью про AMD StoreMI, но к сожалению поддержка данного продукта прекратилась, а покупать FuzeDrive или PrimoCache не хотелось.
Атопический дерматит (нейродермит): что сломалось и как лечить
Одно из возможных проявлений атопического дерматита
Знаете, чему учат студентов-медиков, когда они в первый раз попадают на курацию по кожно-венерологическим заболеваниям? Правильно общаться с пациентом и корректно его осматривать. Типичный студент, увидевший кожу с неприглядными корочками или покраснениями, сразу отодвигается на полтора метра и делает круглые глаза. А потом чуть ли не палочкой пытается тыкать в пациента, стараясь не приближаться. Людей это расстраивает, особенно с учётом того, что большинство пациентов там вовсе не болеет чем-то страшным и заразным.
Часто попадаются довольно неприятно выглядящие хронические заболевания, которые радикально не лечатся, но поддаются контролю при правильном подходе. Псориаз или атопический дерматит очень сложно лечить из-за двух причин:
- Базовая причина связана с генетическими дефектами, которые мы пока не можем чинить, несмотря на все успехи генотерапии.
- Есть куча непонятных факторов, которые могут запускать этот процесс.
В итоге можно попытаться загнать заболевание в постоянную ремиссию. Сегодня мы поговорим:
- Что это за патология, с которой сталкивается около 20 % людей.
- Что ломается в организме у атопиков.
- Как это связано с аллергией.
- Что лучше мазать на кожу.
- Почему антидепрессанты могут сильно помочь.
Под катом будет несколько фотографий повреждённой кожи, но не ужас-ужас, как вы и просили.
Рабочее место на 0,5 м2
С апреля работаю дома. Другие домашние тоже на удаленке. Жена и дети конечно сразу заняли лучшие места, а мне показали пальцем на балкон, который не утеплен, и еще сказали не мешаться.
Мыкался я мыкался я с ноутбукам по углам, потом еще системник привезли с работы, диктатора или компромиссника включать не стал (ну, что по очереди), вижу, итак им сложно и учиться и работать, и смирившись со своей участью пошел к балкону.
Конечно на холодный балкон я не полез, а вот пол квадратного метра перед ним нашел. Вернее пространство глубиной 30 см. и шириной 90 см. Взял ручку и нарисовал вот это:
Сравнение производительности инструментов обхода блокировок\VPN
Оставим тему эффективности, с точки зрения обхода DPI\вайтлистов\блеклистов для другого случая, и просто сравним производительность популярных инструментов обхода блокировок.
Внимание: В статье под спойлерами будет много картинок.
9 хитростей для работы с Visual Studio Code
Лабиринты: классификация, генерирование, поиск решений
В этом классическом посте подробно рассказывается о самых популярных способах создания и прохождения лабиринтов. Статья разделена на четыре части: классификация, алгоритмы генерации, алгоритмы решения лабиринтов и другие операции с лабиринтами.
Классификация лабиринтов
Лабиринты в целом (а значит, и алгоритмы для их создания) можно разбить по семи различным классификациям: размерности, гиперразмерности, топологии, тесселяции, маршрутизации, текстуре и приоритету. Лабиринт может использовать по одному элементу из каждого класса в любом сочетании.
Эффективная генерация числа в заданном интервале
В подавляющем большинстве моих постов о генерации случайных чисел рассматривались в основном свойства различных схем генерации. Это может оказаться неожиданным, но производительность алгоритма рандомизации может зависеть не от выбранной схемы генерации, а от других факторов. В этом посте (на который меня вдохновила превосходная статья Дэниела Лемира) мы исследуем основные причины снижения производительности генерации случайных чисел, которые часто перевешивают производительность движка ГПСЧ.
Представьте такую ситуацию:
В качестве домашнего задания Хуан и Саша реализуют одинаковый рандомизированный алгоритм на C++, который будет выполняться на одном университетском компьютере и с одним набором данных. Их код почти идентичен и отличается только в генерации случайных чисел. Хуан торопится на свои занятия по музыке, поэтому просто выбрал вихрь Мерсенна. Саша, с другой стороны, потратил несколько лишних часов на исследования. Саша провёл бенчмарки нескольких самых быстрых ГПСЧ, о которых недавно узнал из соцсетей, и выбрал наиболее быстрый. При встрече Саше не терпелось похвастаться, и он спросил Хуана: «Какой ГПСЧ ты использовал?»
«Лично я просто взял вихрь Мерсенна — он встроен в язык и вроде неплохо работает».
«Ха!», — ответил Саша. «Я использовал
jsf32
. Он намного быстрее, чем старый и медленный вихрь Мерсенна! Моя программа выполняется за 3 минуты 15 секунд!».«Хм, неплохо, а моя справляется меньше, чем за минуту», — говорит Хуан и пожимает плечами. «Ну ладно, мне пора на концерт. Пойдёшь со мной?»
«Нет», — отвечает Саша. «Мне… эээ… нужно снова взглянуть на свой код».
Эта неловкая вымышленная ситуация не особо и вымышлена; она основана на реальных результатах. Если ваш рандомизированный алгоритм выполняется не так быстро, как хотелось бы, и узким местом похоже является генерация случайных чисел, то, как это ни странно, проблема может быть и не в генераторе случайных чисел!
.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 1
Вторая часть доступна здесь
Необходимость делать что-то асинхронно, не дожидаясь результат здесь и сейчас, или разделять большую работу между несколькими выполняющими ее единицами была и до появления компьютеров. С их появлением такая необходимость стала очень ощутимой. Сейчас, в 2019, набирая эту статью на ноутбуке с 8 ядерным процессором Intel Core, на котором параллельно этому работает не одна сотня процессов, а потоков и того больше. Рядом, лежит уже немного потрепанный, купленный пару лет назад телефон, у него на борту 8 ядерный процессор. На тематических ресурсах полно статей и видео, где их авторы восхищаются флагманскими смартфонами этого года куда ставят 16ти-ядерные процессоры. MS Azure предоставляет менее чем за 20$/час виртуальную машину со 128 ядерным процессором и 2 TB RAM. К сожалению невозможно извлечь максимум и обуздать эту мощь не умея управлять взаимодействием потоков.
Смотрим торенты на смарт ТВ без смс и регистрации
Решил поделиться одним из способов, как можно посмотреть Ваш любимый фильм/сериал, в хорошем качестве, не посещая всякие стремные сайты, которые так хотят чтобы вы поиграли в казино.
Сразу оговорюсь, я ни в коем случае не призываю Вас использовать пиратский контент. Пиратство это зло. Всегда покупайте лицензионный контент.
Ну, а для тех кто хочет посмотреть торрент, не защищенный авторским правом, на своём смарт телевизоре, не дожидаясь скачивания, ниже интересный способ.
Процедурная генерация подземелий в roguelike
Процедурно генерируемые карты — базовая особенность roguelike. Для жанра, который почти является синонимом понятия «случайность» (и на то есть причины), рандомизированные карты стали простейшим способом демонстрации его ключевого элемента, потому что они влияют на многие аспекты геймплея — от стратегии исследования и тактического позиционирования до расположения предметов и врагов.
Заметьте — в советах по прохождению стратегических игр обычно описываются ключевые точки на общей карте боя и объясняется, что в них нужно делать — следуя указанной последовательности шагов, вы можете выигрывать каждый раз. Разумеется, игроки могут получать удовольствие от попыток решить головоломку, но какой бы увлекательной ни была игра, интерес пропадает после нахождения всех решений.
Поэтому рандомизированные карты обеспечивают нам бесконечную реиграбельность, каждый раз ставя перед нами разные задачи. Кроме того, удовольствие усиливается тем, что прогресс игрока зависит от его собственного навыка, а не от проб и ошибок. Схема каждой новой карты на 100% неизвестна, что тоже добавляет напряжённости процессу её изучения.
Конечно же, преимущества процедурных карт бессмысленны без большой вариативности механик и контента — однообразный hack-and-slash здесь не подойдёт. Поэтому все roguelike, выдержавшие испытание временем, имеют глубокий геймплей.
Этот пост является результатом моей работы над генерацией карт для Cogmind.
Наш опыт создания редактора блок-схем для веб приложения
К любой компании, которая занимается инструментами для разработчиков, рано или поздно приходит делегация клиентов. Со словами «программистов нет, задачи простые, нужен визуальный редактор». Автоматикой телефонных и видеозвонков мы занимаемся уже много лет, кому и зачем звонит робот хорошо себе представляем, VueJS любим, голова не болит. Почему бы не сделать? Под катом — закулисье и техническая сторона того, что маркетинг красиво назвал «Smartcalls».
Теория игр: принятие решений с примерами на Kotlin
ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core
Привет! Сегодня я выпустил новую версию ThinkingHome.Migrator — инструмента для версионной миграции схемы базы данных под платформу .NET Core.
Пакеты опубликованы в NuGet, написана подробная документация. Вы уже можете пользоваться новеньким мигратором, а я расскажу, как он появился, почему у него номер версии 3.0.0 (хотя это первый релиз) и зачем он нужен, когда есть EF Migrations и FluentMigrator.
Искусственный интеллект и нейросети для .NET-разработчиков
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. В этой статье рассказывается, как .NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на .NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Прототипом статьи послужил доклад Дмитрия Сошникова на конференции DotNext 2017 Moscow. Дмитрий — технологический евангелист компании Майкрософт, занимается популяризацией современных технологий разработки программного обеспечения среди начинающих разработчиков. Специализируется в области интернета вещей, в разработке универсальных приложений Windows, в области функционального программирования и на платформе .NET (F#, Roslyn). Лично провел несколько десятков хакатонов по всей России, помогал многим студенческим стартапам начать свои проекты в различных областях. Доцент, к.ф.-м.н., ведет занятия в МФТИ и МАИ, член Российской ассоциации искусственного интеллекта, летом — ведущий кафедры компьютерных технологий детского лагеря ЮНИО-Р.
Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p.
Information
- Rating
- 2,340-th
- Location
- Волжский (Волгоградская обл.), Волгоградская обл., Россия
- Date of birth
- Registered
- Activity