Как стать автором
Обновить
61
Карма
0
Рейтинг

Open source contributor

  • Подписчики 57
  • Подписки 3
  • Публикации
  • Комментарии

48 полноценных бесплатных книг для программистов (happy developer's day)

Open source *Программирование *.NET *Читальный зал DevOps *
Tutorial

Привет, Хабр! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию. Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг: .NET, Алгоритмы, Android, iOS, Angular, C, C++, C#, JS, Linux, Python. В целом, найдется почти любая тема, которая приходит в голову.

Дисклеймер. Все эти книги взяты с одного ресурса, который существует за счет донейшенов. Получить книги можно без осуществления донейшенов, ресурс полностью бесплатный, пожертвования опциональны. Все книги написаны на основе контента со StackOverflow и являются код-ориентированными. Книги со временем обновляются. По ссылкам -- книги, актуальные на 15.09.2021.

Читать далее
Всего голосов 100: ↑99 и ↓1 +98
Просмотры 63K
Комментарии 55

WPF, UWP, WinUI, MAUI, Windows App SDK

.NET *Разработка под Windows *

Человека далёкого от клиентской разработки на Windows все эти термины определённо путают. И даже среди MS-сообщества регулярно возникают споры жив UWP или мёртв. Причем главный вопрос в этом споре - а что же такое UWP?

Вот уже года 3 Microsoft проводит "рефакторинг" в своём "королевстве".  Несколько устав видеть одни и те же споры в твиттере, и оставлять одни и те же комментарии на хабре, я решил расписать как же многочисленные UI-фреймворки MS соотносятся между собой. Кто из них больше мёртв. Возможно, кому-то это поможет в выборе технологии для будущего проекта.

Читать далее
Всего голосов 32: ↑31 и ↓1 +30
Просмотры 10K
Комментарии 40

Королевские рефакторинги с Roslyn

.NET *Проектирование и рефакторинг *

Всем привет! Давно хотел написать эту статью, но материал всё никак не собирался: всё-таки рефакторинг - не на каждый день развлечение. Особенно если крупный. Речь пойдёт о том, как можно использовать Roslyn для лечения разной боли в шарповом коде. Если по центру вашего проекта возвышается огромная куча неудобного легаси и вам страшно на неё смотреть - добро пожаловать под кат. Возможно, мой материал позволит взглянуть на проблему с другого ракурса и понять, что не всё так печально. По идее сам подход может быть применим к любому языку, экосистема которого включает в себя тулинг для компилятора. Но это не точно. Однако, я расскажу всё, что знаю на двух примерах из реальной жизни.

Под кат
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 9.2K
Комментарии 5

Создание пакета NuGet для библиотеки с платформозависимым API

Программирование *.NET *
Из песочницы
Tutorial

Когда речь заходит о создании .NET библиотеки, части API которой являются платформозависимыми, приходится думать, как всё это оформить в NuGet пакет, да так, чтобы установленная из пакета библиотека работала в разных сценариях (.NET Framework, .NET Core, self-contained app и т.д.). К сожалению, в сети сложно найти инструкцию, которая бы шаг за шагом показывала, как выполнить эту задачу. Данная статья призвана быть такой инструкцией.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 2.2K
Комментарии 15

Как уменьшить размер приложения на C#, которое независимо от среды?

.NET *C# *
Из песочницы

В этой статье поделюсь опытом, как уменьшить размер приложения, написанное на C# и независящее от сборки, в 2 – 4 раза.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 8.7K
Комментарии 26

Студенты, лабы и python: обработка данных

Python *Математика *Визуализация данных Учебный процесс в IT Физика
Tutorial

В своей предыдущей заметке на тему обработки данных лабораторных работ я написал об использовании пакета gnuplot – простого и мощного инструмента для решения подобных задач и графического представления результатов. Однако довольно распространённым является мнение, что студенты, которым я советовал использовать gnuplot, вероятно, изучают программирование и способы визуализации данных, и что для них более естественным и полезным будет практическое применение уже полученных навыков в этой сфере. В этом коротком тексте мы рассмотрим применение python с использованием библиотек scipy для обработки данных и matplotlib для представления результатов.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 2.9K
Комментарии 2

Посмотрим на девочек? Или ml.net в работе

.NET *Машинное обучение *

К сожалению, мир машинного обучения принадлежит python.

Он давно закрепился, как рабочий язык для Data Silence, с чем Microsoft решила поспорить. Так появился ML.NET, кросс-платформенная и открытая система машинного обучения для разработчиков .NET.

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

Ознакомиться
Всего голосов 39: ↑35 и ↓4 +31
Просмотры 61K
Комментарии 62

Делаем вечную лампочку

Блог компании LampTest Гаджеты
На упаковках светодиодных ламп указывают срок службы 30, 40 или 50 тысяч часов, но многие лампочки не живут и года.

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

Читать дальше →
Всего голосов 243: ↑238 и ↓5 +233
Просмотры 273K
Комментарии 361

Сижу за решеткой в темнице сырой

Занимательные задачки Математика *
image

Ребят, не ждите тут каких-то выдающихся математических красот или полезных в жизни алгоритмов. Пишу просто из чистого спортивного интереса. Меня заинтересовала задачка опубликованная вот здесь, с которой американские зэки коротают свои огромные срока. Судя по комментариям к статье, она уже вызвала определённый интерес и у сообщества. Понимаю что поступаю не очень хорошо, надо было дать время народу ещё подумать самостоятельно. Однако каюсь, грешен, не могу удержаться. И выкладываю сюда своё решение. Кому интересно, добро пожаловать под кат. Если хотите ещё немного подумать самостоятельно, лучше пока не читайте.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 5.9K
Комментарии 11

Книга «Паттерны проектирования для C# и платформы .NET Core»

Блог компании Издательский дом «Питер» .NET *C# *Профессиональная литература
image Привет, Хаброжители! Паттерны проектирования — удобный прием программирования для решения рутинных задач разработки ПО. Грамотное использование паттернов позволяет добиться соответствия любым требованиям и снизить расходы. В этой книге описаны эффективные способы применения паттернов проектирования с учётом специфики языка C# и платформы .NET Core.

Кроме знакомых паттернов проектирования из книги «Банды четырех» вы изучите основы объектно-ориентированного программирования и принципов SOLID. Затем узнаете о функциональных, реактивных и конкурентных паттернах, с помощью которых будете работать с потоками и корутинами. Заключительная часть содержит паттерны для работы с микросервисными, бессерверными и облачно-ориентированными приложениями. Вы также узнаете, как сделать выбор архитектуры, например микросервисной или MVC.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 9.3K
Комментарии 5

Реализация локализации при помощи Source code generators

.NET *C# *
Из песочницы

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

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

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 2K
Комментарии 5

Blazor: Server и WebAssembly одновременно в одном приложении

.NET *C# *WebAssembly *


ASP.NET Core Blazor — это разработанная Microsoft веб-платформа, предназначенная для запуска на стороне клиента в браузере на основе WebAssembly (Blazor WebAssembly) или на стороне сервера в ASP.NET Core (Blazor Server), но две эти модели нельзя использовать одновременно. Подробнее о моделях размещения написано в документации.


В статье я расскажу о том, как


  • запустить Server и WebAssembly одновременно в одном приложении,
  • переключаться с Server на WebAssembly без перезагрузки приложения,
  • реализовать универсальный механизм аутентификации,
  • синхронизировать состояние Server и WebAssembly с помощью gRPC.

TL;DR:


Gif с демонстрацией полученного результата


Пример доступен на github.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 7.6K
Комментарии 9

Стероидный велосипед: векторная алгебра, на ассемблере, в Delphi

Высокая производительность *Assembler *Delphi *Математика *
Tutorial

Некоторое время назад понадобилось мне в одной Delphi-шной программе много посчитать, но расчеты шли как-то подозрительно долго. Переписывать около 100 kLOC не хотелось- особенно из-за наличия большого количества форм, но предыдущий мой опыт показывал, что если код расчетов перекомпилировать в Lazarus'е (с FPC3.0.4)- то скорость счета возрастает до 2-х раз, и поэтому было очевидно, что конкретно в данном случае компилятор Embarcadero (разных версий) сильно несилен, и надо его менять. С другой стороны, IDE от Embarcadero для рисования GUI- вне конкуренции, а их компилятор на редкость быстрый (оно и понятно- быстро+плохо, или медленно+хорошо). Но ведь вкус кактуса неимоверно притягателен. Профайлинг подручными средствами (tinyprofiler) во всех случаях показывал, что основное время (90%) занимают операции векторной алгебры над большими массивами чисел, а быстрый тест производительности этих процедур показал, что на операциях с этой алгеброй общая "пропускная способность" имевшегося математического ядра составляет для операций типа умножения векторов и скалярных произведений- ~4 ГБ/с, для умножения вектора на матрицу- 1,5-2 ГБ/с, а вот для операций обращения матрицы- проседает до 360 МБ/с (на Core I5 4460 и на Xeon 2660V2, DDR3-1866). Внутре рядом с неонкой используются только 3-х и 4-х мерные вектора и матрицы. В голову пришла мысль, что 4х4 матрица- должна целиком влезать в SSE-регистры процессора и для нее SIMD- очень желательны, а в компилятор Delphi SIMD не завезли, кажется не завезут, и вообще- дальше нижней половины XMM0 не используют. В итоге нарисовалась очень простая задача- реализовать быструю векторную алгебру в минимальном объеме для 3D/4D векторов своими руками- то есть, соорудить стероидный велосипед, о котором в заголовке написано.

И вот здесь мой навык гуглинга дал сбой- мне предлагали купить проприетарные библиотеки, в которых все уже есть, или примеры векторных операций с FP32 на SSE, но нужного FP64 - нету! Под катом- как на SSE руками сделать операцию с вектором для расчетов какой-нибудь физики и вывернуть матрицу наизнанку.

Поиграемся с XMM-регистрами?...
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 4.8K
Комментарии 33

Многопоточность на низком уровне

Блог компании JUG Ru Group Программирование *.NET *C# *Параллельное программирование *

Очень часто при обсуждении многопоточности на платформе .NET говорят о таких вещах, как детали реализации механизма async/await, Task Asynchronous Pattern, deadlock, а также разбирают System.Threading. Все эти вещи можно назвать высокоуровневыми (относительно темы хабрапоста). Но что же происходит на уровне железа и ядра системы (в нашем случае — Windows Kernel)?


На конференции DotNext 2016 Moscow Гаэл Фретёр, основатель и главный инженер компании PostSharp, рассказал о том, как в .NET реализована многопоточность на уровне железа и взаимодействия с ядром операционной системы. Несмотря на то, что прошло уже пять лет, мы считаем, что никогда не поздно поделиться хардкорным докладом. Гаэл представил нам хорошую базу по работе процессора и атомнарным примитивам.



Вот репозиторий с примерами из доклада. А под катом — перевод доклада и видео. Далее повествование будет от лица спикера.

Всего голосов 42: ↑41 и ↓1 +40
Просмотры 26K
Комментарии 16

Модели памяти C++ и CLR

Блог компании JUG Ru Group .NET *C++ *C# *Параллельное программирование *

Это расшифровка-перевод доклада Саши Гольдштейна, признанного лучшим на конференции DotNext 2016 Piter. С годами этот доклад стал лишь актуальнее прежнего: появление Mac на ARM-процессорах — еще один пример, почему разработчикам сегодня нужно думать не только о x86-архитектуре.



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


То, что подходит процессорам Intel на архитектурах x86 и x86-64, может не подойти другой архитектуре. Как только вы перенесете свой код на другой процессор, например, на ARM для iPhone и Android, есть вероятность, что он перестанет работать как надо. Проблемы могут быть как очевидными (воспроизводиться с первого-второго раза), так и не очень (возникать только раз в миллион итераций). Вполне вероятно, что такие баги могут добраться до продакшна. Сегодня .NET и, конечно, C++ можно использовать не только на Windows и Intel, но и на других платформах, так что доклад будет полезен многим разработчикам.


Дисклеймер: статья предназначена для продвинутых читателей. Смотрите на свой страх и риск. За частое упоминание барьеров памяти и изменения порядка исполнения инструкций она получила возрастное ограничение 18+.
Читать дальше →
Всего голосов 72: ↑71 и ↓1 +70
Просмотры 21K
Комментарии 4

Решение уравнения тетраэдра доказано спустя десятки лет после компьютерного поиска

Блог компании Timeweb Математика *Научно-популярное
Перевод
Как четыре математика решили вопрос о базовых геометрических фигурах, создав полный список тетраэдров с рациональными углами при помощи методов теории чисел.

Все 59 тетраэдров с рациональными двугранными углами можно рассмотреть с разных сторон по ссылке.

Тетраэдр — это простейшая трехмерная фигура с плоскими сторонами. Его основные свойства озадачивали пытливые умы еще во времена Платона и Аристотеля. А в ноябре 2020 было опубликовано окончательное доказательство, в котором достоверно идентифицированы все существующие особые тетраэдры. В этой работе математики отвечают на вопрос о древней фигуре благодаря передовым технологиям, которые дают возможность использовать новый метод поиска решений определенных уравнений.
Читать дальше →
Всего голосов 23: ↑18 и ↓5 +13
Просмотры 8.6K
Комментарии 14

У кого трава зеленее и код лучше? Сравнение жизни программистов из Японии с их собратьями из Германии и Америки

IT-эмиграция Карьера в IT-индустрии
Перевод
Я проработал в сфере IT около 25 лет, из которых 12 лет был в Японии, 5 лет в США и около 8 лет в Германии, где и тружусь на данный момент в качестве System Operations Engineer. Поскольку все это у меня прошло в рамках одной компании, я не могу сравнить свой опыт с работой в других корпорациях или сферах разработки, но попробую рассказать о разнице в работе в разных странах. Думаю, эта информация будет полезна для тех, кто собирается стать разработчиком либо искать работу в другой стране. Дисклеймер: вся информация строго субъективна, просьба близко к сердцу не воспринимать.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 15K
Комментарии 20

Простейший голосовой помощник на Python

Python *


Для создания голосового помощника не нужно обладать большими знаниями в программировании, главное понимать каким функционалом он должен владеть. Многие компании создают их на первой линии связи с клиентом для удобства, оптимизации рабочих процессов и наилучшей классификации звонков. В данной статье представлена программа, которая может стать основой для Вашего собственного чат-бота, а если точнее – голосового помощника для распознавания голоса и последующего выполнения команд. С ее помощью мы сможем понять принцип работы наиболее часто встречаемых голосовых помощников.
Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры 8.8K
Комментарии 9

История и анализ одной из причин кризиса современной физики

Научно-популярное Физика
Из песочницы

1. Введение


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

Скажите, пожалуйста:

  1. Кризис в современной физике продолжается? Он имеет место даже сейчас или же он уже был давно и успешно преодолен, а ученые продвигаются вперед к новым знаниям?
  2. Имеет ли место сегодня «правильный» путь развития науки (без кризиса) или же современная теоретическая физика это не наука, а иллюзия по справедливому замечанию Маху (фантастика или лженаука)?
  3. Чтобы устранить кризис необходимо выполнить следующие условия:

    • Во-первых, необходимо выяснить подлинные причины, которые привели к кризису.
    • Во-вторых, нужно не только устранить причины, нужно исправить ошибки, спровоцированные кризисом.

В современных научных критических публикациях нет убедительного описания основных причин кризиса. Некоторые ученые пишут, например, об ограниченности классических теорий, поскольку они, опираясь на классические теории, не смогли дать объяснение новым экспериментальным открытиям. Высказывается мысль о слабом владении философией (теорией познания научной истины).
Читать дальше →
Всего голосов 44: ↑8 и ↓36 -28
Просмотры 6.3K
Комментарии 59

Обзор python-пакета yadirstat — самый простой способ получить статистику из API Яндекс Директ

Python *API *Яндекс API *Контекстная реклама
Tutorial
Здравствуйте, мне приходится собирать статистику из Яндекс Директ и, чтобы упростить работу, я опубликовал свой python-пакет, с помощью которого это можно делать очень просто.

Сначала вам следует получить токен для своего аккаунта (подробнее тут)

Пакет yadirstat уже опубликован на pypi — вы сможете установить его с помощью pip

pip install yadirstat

Пакет позволяет получить следующую статистику:

  • Статистика по кампаниям
  • Статистика по условиям показов (например, ключевые слова и аудитории)
  • Статистика по поисковым запросам
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 3.1K
Комментарии 6

Информация

В рейтинге
4,578-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность