Как стать автором
Обновить
2
0
Александр @Fitbie

.NET developer.

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

Настройка на роутерах Keenetic отдельной WiFi сети с внешним подключением через WireGuard

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров42K

В последнее время  удручающе регулярно прилетали вопросы из серии "что сделать, чтобы Youtube на (не-шибко) умном телевизоре опять заработал?". Если ограничиться сугубо техническими аспектами возникшей неурядицы, то на достаточно широко распространённых домашних роутерах Keenetic есть возможность порешать проблему мышкой-менюшкой.

В общем-то вся инструкция сводится к фразе "поднимите с роутера WireGuard соединение КУДА_НИБУДЬ и настройке отдельную WiFi сеть с этим WireGuard как внешним соединением", но зачастую спрашивающие хотели бы видеть скучную пошаговую инструкцию.

Чтобы не плодить сущности – подготовил статейку с пошаговой инструкцией.

Читать далее
Всего голосов 27: ↑27 и ↓0+34
Комментарии68

Подборка игр с низкоуровневым программированием

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров32K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности
Всего голосов 65: ↑64 и ↓1+77
Комментарии26

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Время на прочтение14 мин
Количество просмотров1.4M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии61

Как составить резюме, чтобы его точно открыл HR. Метод бутерброда

Время на прочтение5 мин
Количество просмотров19K

Всем привет! Я Аня Шабаева, HRG в AGIMA. Как-то я уже обсуждала с вами, стоит ли делать тестовое задание. Сегодня хочу рассказать, как дойти до этапа с тестовым. Как сделать свое резюме запоминающимся? Как правильно показать свои навыки, чтобы получить должность мечты? Наливайте чаёк и давайте разбираться. 

Читать далее
Всего голосов 36: ↑29 и ↓7+22
Комментарии30

Beyond URL and URN

Время на прочтение4 мин
Количество просмотров16K

Рыская по интернетам, зашел на страницу про URI и спустя несколько часов осознал, как мало я знал об этом монстре. Признаюсь, до этого я думал, что URI это либо URL, либо URN. Но это не так! Есть и другие варианты идентификации ресурса в сети.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии3

System.IO.Pipelines — малоизвестный инструмент для любителей высокой производительности

Время на прочтение14 мин
Количество просмотров28K
Здравствуй, читатель. Прошло уже достаточно много времени с момента выхода .NET Core 2.1. И такие крутые нововведения, как Span и Memory, уже рассмотрены весьма широко, про них можно достаточно много прочитать, посмотреть и услышать. Однако, к сожалению, библиотека под названием System.IO.Pipelines не удостоилась такого же внимания. Почти все, что есть по этой теме — единственный пост, который многие перевели и разместили у себя. Информации должно быть однозначно больше, чтобы интересующиеся могли взглянуть на технологию с разных углов.


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

Повышаем производительность C# кода с помощью Span<T> и Memory<T>

Время на прочтение16 мин
Количество просмотров18K

Эта статья познакомит вас с новыми типами, представленными в C# 7.2: Span и Memory. Я подробно разберу Span<T> и Memory<T> и покажу, как работать с ними в C#.

Читать далее
Всего голосов 17: ↑12 и ↓5+9
Комментарии6

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

Время на прочтение13 мин
Количество просмотров114K
   Недавно в московском Политехническом музее стенд вычислительной техники серьезно обновился — компания Intel разместила там свой стенд, который получил название "От песка до процессора". Отныне этот стенд станет неотъемлемой частью школьных экскурсий, но даже взрослым я советую не откладывать посещение заведения на срок более пяти лет – к 2016 году компания Intel планирует серьёзно «проапгрейдить» музей, чтобы он смог войти в десятку лучших музеев науки в мире!

image

   К этому событию был приурочен одноименный цикл лекций из трех частей. Две лекции уже прошло — их содержание вы сможете найти под катом. Ну а если вас все это заинтересует, то еще успеете посетить третюю лекцию, информация о которой находится в конце поста.
Читать дальше →
Всего голосов 200: ↑164 и ↓36+128
Комментарии81

От песка до процессора

Время на прочтение9 мин
Количество просмотров384K
Сложно в это поверить, но современный процессор является самым сложным готовым продуктом на Земле – а ведь, казалось бы, чего сложного в этом куске железа?

image

Как и обещал – подробный рассказ о том, как делают процессоры… начиная с песка. Все, что вы хотели знать, но боялись спросить )

Читать дальше →
Всего голосов 321: ↑289 и ↓32+257
Комментарии154

Как применять IDisposable и финализаторы: 3 простых правила

Время на прочтение7 мин
Количество просмотров62K

От переводчика


После рассказа об утечке памяти и правильной реализации событий размещаю еще один перевод понравившейся мне статьи на тему управления памятью. Я видел несколько разных реализаций Dispose паттерна, иногда они даже противоречили друг другу. В этой статье автор представил хорошее и четкое разъяснение, когда следует реализовывать интерфейс IDisposable, когда финализаторы, а когда — все вместе.
И когда же?
Всего голосов 45: ↑35 и ↓10+25
Комментарии24

Самый простой и подробный гайд по конкурентным коллекциям в C#

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров23K


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

Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом.

В рамках статьи я попробую объяснить System.Collections.Concurrent настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута тема сравнения с неизменяемыми (immutable) и замороженными (frozen) коллекциями.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+60
Комментарии26

Интероперабельность с нативным кодом через платформу .NET

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.1K

Привет, Хабр!

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

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

В основе интероперабельности лежит взаимодействие управляемого кода. Управляемый код исполняется под управлением CLR — виртуальной машины .NET, которая обеспечивает такие возможности, как сборка мусора, безопасность типов и другие виды абстракции. А вот нативный код компилируется напрямую в машинный код, специфичный для конкретной платформы, и исполняется ОС без промежуточных слоев, что обеспечивает высокую производительность и прямой доступ к ресурсам системы...

Читать далее
Всего голосов 15: ↑13 и ↓2+16
Комментарии1

Сравнение сборщиков мусора в Unity и .NET

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.1K

В этой статье я хотел бы рассказать о различиях между сборкой мусора в Unity (IL2CPP) и .NET. Несмотря на то что IL2CPP существует более 10 лет, я до сих пор встречаю недоумение, когда беседа заходит на тему Garbage Collector (GC) касательно Unity. Считать реализацию GC в .NET, ровно как и в JVM, единственным существующим решением — не верно. А тем более принимать такую реализации как "по умолчанию" используемую в Unity — есть заблуждение. Надеюсь эта статья будет полезной, даст верное понимание и устранит заблуждения. Ну а в конце статьи затронем грядущие серьезные изменения в Unity.

Читать далее
Всего голосов 18: ↑18 и ↓0+21
Комментарии8

Отправляем GC в отпуск и создаем эксзепляры классов .NET сами

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7K

Придерживаясь великой цитаты "правила созданы для того, чтобы их нарушать", давайте нарушим какие-то основополагающие правила CLR. Как на счет того, чтобы послать GC с его работой в отставку и самим заняться размещением в памяти экземпляров классов? Заодно разберемся, как все это работает где-то там под капотом CLR.

Читать далее
Всего голосов 38: ↑37 и ↓1+45
Комментарии32

Деплой .NET приложений для самых маленьких. Часть 0

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров9.9K

Давным-давно, когда Linux был ещё на ядре 2.6, а PHP5 был глотком свежего воздуха, я впервые заинтересовался миром веб-технологий. Читал учебники, статьи, зависал на форумах, но все равно мало мог понять как код, который я вижу на экране, превращается в волшебные сайты с кнопками, формами и анимациями. Узнал про LAMP и его аналоги для Windows, узнал, что, оказывается, есть хостинги, где такие сайты размещаются. Как только появился внешний интернет без трафика, я поспешил перенести свои локальные поделия во внешний мир, попутно узнав про замечательный протокол FTP. Просто мир волшебных открытий был для меня, особенно когда узнал, что не нужно писать свой форум с нуля, а можно использовать что-то из phpBB, vBulletin и других уже готовых движков.

И когда я много лет спустя переключился в мир .NET, перечисленные ранее умения сыграли со мной злую шутку – я долго не мог понять, как мне найти хостинг для .NET приложений. Почему все известные мне хостинги с лёгкостью предоставляли возможность развернуть PHP приложения, причём даже предлагая какие-то предустановленные версии CMS, но днём с огнём не сыщешь хостинг под .NET. Мое непонимание принципа развертывания приложений усугубляли статьи, которые предлагали их размещать в подходящих сервисах типа Heroku, Digital Ocean или Azure – ведь это так просто и дешево…

Поэтому предлагаю максимально подробно рассмотреть вопрос публикации .NET приложений в арендованном VPS.

Читать далее
Всего голосов 26: ↑22 и ↓4+26
Комментарии31

Недостаточно знать, что такое Mutex, Semaphore и async/await. Надо знать всё, начиная с квантов

Время на прочтение3 мин
Количество просмотров14K

Совсем скоро, 29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. На этот раз — по теме многопоточки и конкурентности. Мы уже писали об этом пару раз на Хабре, но сегодня есть отдельный повод для этого: на семинаре настоящий эксклюзив. Будет описана работа гибридного примитива синхронизации: Monitor. Да, всем привычная вещица достойна отдельного доклада. Ведь он в своей работе учитывает и частоту процессора и количество ядер, учитывает lock convoy/starvation и вообще, очень сложен.


А в конце статьи развлечения ради предложу пройти парочку QUIZов по многопоточке.


Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии9

Оцениваем сложность алгоритмов на C# по памяти и времени с примерами

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров8K

Продолжаем говорить о производительности и оптимизации кода. Сегодня поговорим о том, как и зачем оценивать сложность алгоритмов,  а также наглядно покажем, как эта сложность влияет на производительность кода.

Читать далее
Всего голосов 9: ↑6 и ↓3+4
Комментарии20

[DotNetBook] Структура экземпляров типов и VMT

Время на прочтение14 мин
Количество просмотров13K
С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом.

Вся книга будет доступна на GitHub: CLR Book. Так что Issues и Pull Requests приветствуются :)

Это — выжимка из главы про структуру типов и их VMT.

Структура объектов в памяти


До сих, говоря про разницу между значимыми и ссылочными типами, мы затрагивали эту тему с высоты конечного разработчика. Т.е. мы не смотрели на то как они в реальности устроены на уровне CLR, как сделаны те или иные механики внутри каждого из них. Мы смотрели фактически на конечный результат. Однако, чтобы понимать суть вещей глубже и чтобы отбросить в сторону последние оставшиеся мысли о какой-либо магии, происходящей внутри CLR стоит заглянуть в самые ее потроха.

Примечание


Глава, опубликованная на Хабре не обновляется и возможно, уже несколько устарела. А потому, прошу обратиться за более свежим текстом к оригиналу:




Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии3

Популярные заблуждения о C#

Время на прочтение11 мин
Количество просмотров70K

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

Читать далее
Всего голосов 74: ↑71 и ↓3+87
Комментарии63

Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.8K

Если вы C# разработчик, то наверняка вам знаком класс Dictionary. В качестве значений вы, скорее всего, использовали классы. Но что если я скажу, что в Dictionary можно использовать структуры? Не стоит бояться того, что структуры копируются при передаче в метод или возврате из него. Есть способ этого избежать, и это работает быстро.

Узнать как
Всего голосов 14: ↑12 и ↓2+11
Комментарии21
1

Информация

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

Специализация

Backend Developer
C#
.NET
Git
SQL
SOLID
OOP
UML
Unity3d