Pull to refresh
-2
0

.NET-разработчик

Send message

Метод улитки: как я начал писать лучшую в мире книгу про финансы, и зачем нам нужен капитал

Reading time12 min
Views12K

В июле 2021 года в моей жизни произошло два важных события: я переехал на Кипр и начал писать книгу про личные финансы и инвестиции. Естественно, в моей голове она представлялась будущей лучшей в мире книгой по теме (ну а иначе – зачем вообще садиться ее писать?).

Читать далее
Total votes 53: ↑36 and ↓17+19
Comments24

Моя реализация «умного дома»

Reading time7 min
Views276K
Полтора года назад я писал статью о разработке своей собственной шины «CLUNET» для соединения устройств в «умном доме». Многие просят рассказать о том, что же у меня получилось в итоге, что я сейчас и попытаюсь сделать.

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



Вся идея держится на трёх китах:

  • Децентрализация — вся система функционирует без какого-либо главного модуля;
  • Простота — минимум компонентов и лёгкость подключения;
  • Дешевизна — себестоимость устройства легко уложить в 100 рублей.

Читать дальше →
Total votes 212: ↑207 and ↓5+202
Comments95

Вторая жизнь старых стрелочных индикаторов

Reading time2 min
Views196K
Как-то попались мне в руки старые стрелочные индикаторы уровня от старого магнитофона, и я решил вдохнуть в них новую жизнь, сделав из них «хардварные виджеты» для отображения загрузки процессора и оперативной памяти компьютера.

image
Читать дальше →
Total votes 255: ↑251 and ↓4+247
Comments48

Всем лучшим учителям посвящаетя…

Reading time8 min
Views3.9K
Я вырос в небольшой городке Алтайского края на берегу реки Бия, недалеко от того места, где она сливается с Катунью. Городок этот, в сущности, ничем не отличался от сотен других крошечных городов — бывших дореволюционных уездных центров, разросшихся однотипными блочными пятиэтажками в советскую эпоху вокруг какого-нибудь НИИ или «городообразующего предприятия». Таких щедро раскидано по просторам Нашей Необъятной.

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

image
Это мы с друзьями по дороге из школы в далеком не то 84м не то 85м году.

А еще в нашей окраине, там где дорога сразу после автобусной остановки разветвлялась и одной своей веткой уходила в сторону школы и потом через площадь с кинотеатром и спортивным комплексом Заря в направлении «лодочной», а другой упиралась в проходную местного химического НИИ, там, на развилке, спиной в лес стоял Купол. Мы называли его Купол в соответствии с его очевидными архитектурными особенностями, а так, для всех остальных это был Планетарий или Дом Детского Творчества имени Савченко.

image
Бийский Дом Детского Творчества имени Савченко Я.Ф.
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments16

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

Reading time6 min
Views15K
Каждому разработчику знакома ситуация, когда реализация новой возможности в системе занимает большое количество времени, но релиз уже близко, а тимлид или менеджер проекта пятый раз за день задают уже надоевший вопрос: “Ну когда будет готово?”. И тогда встает непростой выбор — сделать все правильно и не уложиться в сроки релиза или реализовать минимально работающий, но не идеальный с точки зрения технического решения, функционал. Очевидно, что в большинстве случаев будет выбран второй вариант, так как релиз и предоставление результата клиентам здесь и сейчас важнее чистоты кода и архитектуры системы. Но проходит несколько месяцев, и вот уже старое не идеальное техническое решение мешает реализации другого функционала. И дальше такие решения будут накапливаться в огромный ком. Разбираясь с этой проблемой, очень важно сделать правильные выводы и выбрать нужное решение. От этого решения будет зависеть дальнейшая судьба всего проекта. В данной статье мы постараемся разобраться с природой технического долга и посоветовать пути его устранения.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments11

SOLID

Reading time5 min
Views269K
SOLID критикует тот, кто думает, что действительно понимает ООП
© Куряшкин Виктор

Я знаком с принципами SOLID уже 6 лет, но только в последний год осознал, что они означают. В этой статье я дам простое объяснение этим принципам. Расскажу о минимальных требованиях к языку программирования для их реализации. Дам ссылки на материалы, которые помогли мне разобраться.

Читать дальше →
Total votes 53: ↑35 and ↓18+17
Comments163

Сколько английских слов надо выучить для свободного общения и чтения статей? (спойлер: 3000)

Reading time4 min
Views78K


Словарный запас – один из основных компонентов, на котором строится программа обучения иностранному языку. Грамматика, аудирование, говорение – все эти аспекты так или иначе его используют. Но слов в языке очень много (в английском – более миллиона). Какие из них необходимо выучить и можно ли оптимизировать их запоминание?
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments106

Сборка мусора и время жизни объектов

Reading time4 min
Views15K
Казалось бы, простой вопрос: может ли среда CLR вызвать финализатор объекта, когда экземплярный метод не завершил свое исполнение?

Другими словами, возможно ли в следующем случае увидеть «Finalizing instance.» до «Finished doing something.»?

internal class GcIsWeird
{
    ~GcIsWeird()
    {
        Console.WriteLine("Finalizing instance.");
    }

    public int data = 42;

    public void DoSomething()
    {
        Console.WriteLine("Doing something. The answer is ... " + data);
        // Some other code...
        Console.WriteLine("Finished doing something.");
    }
}

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments24

Регрессионные тесты на утечки памяти, или как написать memory profiler для .NET приложений

Reading time8 min
Views9.8K

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


Автоматизированное регрессионное тестирование ошибок уже давно стало мейнстримом индустрии разработки качественного ПО. Такие тесты помогают не допустить попадание ошибки к пользователю, а также по горячим следам разобраться, какое изменение в коде привело к ошибке, тем самым минимизировав время ее исправления.


Почему бы нам не применить такой же подход к утечкам памяти?


Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments12

10 приставок, которые так и не увидели мир

Reading time6 min
Views19K


Прошло четыре десятилетия с того момента, как первая игровая консоль Magnavox Odyssey взволновала мир развлекательной электроники. Неудивительно, что в столь разнообразной истории развития игровых приставок были и такие, которые так и не вышли на рынок, а остались только в планах. 10 таких игровых консолей навсегда остались лишь затерявшимся оборудованием, никогда не украшавшим полки магазинов. Данная статья — адаптивный перевод, дополненный интересными на наш взгляд фактами.
Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments2

Самосборный компьютер на базе 486

Reading time2 min
Views33K

Приветствую, в прошлом посте я писал, что ищу 486 процессор для будущих проектов. Практически на следующий день со мной связался Александр с ником «alexzar76». Абсолютно безвозмездно он предложил мне материнскую плату на 3 сокете и два разных процессора под него. Через некоторое время я получил их. Спасибо, Александр! Этот пост стал возможен благодаря ему.
Total votes 46: ↑32 and ↓14+18
Comments79

Эх, кувалдушка, ухнем: как в «Салюте-7» сделали ненаучную фантастику вместо исторического кино

Reading time13 min
Views76K
В резко-критическом отзыве на весенний трейлер фильма «Салют-7» я совершенно искренне написал, что хотел бы ошибиться в своих ожиданиях и чтобы кино в итоге получилось хорошим. Увы, досмотреть фильм я смог только потому, что уже в первой его половине переключил восприятие с режима «историческое кино» на «ненаучная фантастика». Вкусы — дело личное, кому-то картина возможно и понравится. В любом случае, разнообразные ошибки и неточности — отличный повод поговорить о том, что на самом деле происходило в истории, и как работала показанная на экране техника. И под занавес хочется рассказать, каким бы на мой взгляд был идеальный фильм по этим событиям.


Кадр из фильма
Читать дальше →
Total votes 165: ↑162 and ↓3+159
Comments302

Существует ли идеальный планировщик личных задач? Разработка модульного планировщика

Reading time5 min
Views19K

Некоторое время назад, я, как активный пользователь планировщиков личных задач, открыл для себя один значительный недостаток – несмотря на их несчётное количество, невозможно найти «тот самый», который удовлетворял бы тебя по всем пунктам.


Нет, само по себе это абсолютно нормально, так как программу разрабатывал один или несколько разработчиков, которые в итоге пришли к своему пониманию того, “как пользователю будет лучше”. Да и к тому же, невозможно в одной программе уместить всё, что теоретически может захотеть сферический пользователь в вакууме. Или возможно?




Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments54

Ванечка

Reading time5 min
Views35K
Привет. Это — очередная фантазия на тему нашего не самого светлого будущего.

Если два года назад актуальной темой была блокировка торрент-трекеров, то теперь проблемой стала ст. 148 УК РФ.

Этот тест носит художественный характер и не ставит целью оскорбить чьи-либо чувства.

Посвящается здравому смыслу.




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

На экране давно знакомый персонаж – монах Феофан, старик с длинной бородой, посохом и огромным золотым крестом на груди, поучал хулиганов, помогал животным и хвалил послушных детей за добрые поступки. В этой серии Феофан объяснял, как важно при посещении церкви рассказывать священникам о плохих книгах, которые могут прятать у себя родители. Например, мультяшный герой утверждал, что не только за чтение, но просто за хранение трудов по физике, биологии или, не приведи Господь, философии, вся семья будет гореть в Геенне Огненной, что подкреплялось язычками пламени за спиной монаха. Ваня любил этот мультик, за его просмотром время летело незаметно. Он слышал, что у других детей есть доступ и к другим каналам, но сам он в это не верил, да и свой планшет показывать кому-то из сверстников служители церкви строго-настрого запрещали. Ваня был послушным мальчиком и верил священнослужителям.
Читать дальше →
Total votes 63: ↑53 and ↓10+43
Comments313

У вас есть право на анонимность. Часть 1. Введение и мировая практика

Reading time6 min
Views48K
image
Право на анонимность уже стало мировым стандартом для обеспечения фундаментальных прав человека и гражданина в цифровую эпоху, прежде всего – права на свободу выражения мнения и права на тайну частной жизни / прайваси.

Так что же такое «право на анонимность», если мы говорим про интернет-пространство:

✓ Право на анонимный сёрфинг (поиск информации в сети) и анонимную отправку личных сообщений (e-mail, мессенджеры)

Анонимное соединение — это главное субъективное право, необходимое любому пользователю Интернета. Анонимным соединением считается соединение с сервером назначения, когда этот сервер не имеет возможности ни установить происхождение (IP-адрес/местонахождение) этого соединения, ни присвоить ему какой-либо идентификатор.

Пользователи должны иметь право на анонимный поиск информации в интернете, в том числе скрывать свои IP-адреса и отправлять сообщения анонимно. Осенью 2016 года Европейский суд справедливости (European Court of Justice) рассмотрел запрос немецкого Федерального Суда, связанного с иском представителя немецкой Пиратской партии к федеральному правительству. Жалоба была подана немецким гражданином в отношении хранения на правительственных сайтах динамических IP адресов после того, как пользователь покидает сайт. Европейский суд в своем решении признал динамический адреса (как и ранее статические адреса) персональными данными и указал, что операторы не имеют права сохранять динамические IP-адреса, кроме как для защиты от кибератак.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments185

Модели памяти, лежащие в основе языков программирования

Reading time24 min
Views30K
Предлагаем вашему вниманию перевод статьи, посвящённой рассмотрению используемых в программировании моделей памяти.

Сегодня в программировании доминируют шесть основных моделей памяти (не путать с моделями памяти Intel 8086). Три из них проистекают из трех исторически наиболее важных языков программирования 1950-х годов — COBOL, LISP и FORTRAN, а остальные связаны с тремя исторически важными системами хранения данных: магнитная лента, иерархическая файловая система в Unix-стиле и реляционная база данных.

Эти модели на гораздо более глубоком уровне, чем синтаксис или даже система типов, определяют, что наши языки программирования могут или не могут делать. Давайте подробно рассмотрим эти модели, а затем обсудим некоторые возможные альтернативы и причины, почему они могут быть интересны.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments13

Программисты не могут написать алгоритмы без помощи: ещё раз про интервью

Reading time3 min
Views61K
Дэвид Хэнссон, создатель Ruby on Rails, признался в своём твиттере, что не написал бы сортировку пузырьком на доске. Дэвид подсматривает код в интернете всё время:

image
Читать дальше →
Total votes 83: ↑71 and ↓12+59
Comments687

Генерирование полигональных карт для игр

Reading time24 min
Views57K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Total votes 100: ↑99 and ↓1+98
Comments11

Руководство по созданию механических щупальцев в домашних условиях: часть 1

Reading time6 min
Views37K


Как же нам не любить аниматронику? Отогните силиконовую кожу любой куклы, и вам откроется скопление мехатронной магии, дающей ей жизнь на большом экране. Я искал в интернете хорошие вводные материалы на эту тему, но нашёл лишь один – обучающие видео от Стэна Уинстона. Уже через 30 секунд я почувствовал, как щупальца пробуждают мои самые низменные позывы к постройке осязаемых вещей. Я запал, я просто обязан был построить одну такую штучку… или несколько. И вот, как можно создать вполне реальное аниматронное щупальце.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments36

SHENZHEN I/O — новый симулятор программирования микроконтроллеров

Reading time6 min
Views87K


Как многие из нас хотели быть инженерами-схемотехниками, но не стали ими? Я не говорю о программистах, строителях и прочих специальностях. Многие мечтали паять платы, ходили в радиокружки и курочили домашнюю аппаратуру (получая после этого ремня от отца, само собой) в попытке понять, как она работает? Если не каждый первый, то уверен, многие.

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

В этой публикации я предлагаю вам познакомиться с новой игрой, вышедшей в ранний доступ в Steam 6 октября этого года. Встречайте, инди-симулятор создания цепей и простых устройств — SHENZHEN I/O.

В Steam игра находится в разделе «симуляторы» и идет с пометками «инди», «логические игры» и «ранний доступ», и все они являются абсолютной правдой.
Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments34

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity