Как стать автором
Обновить
35
0
Петр Осетров @ParadoxFilm

Software Engineer

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

Dhaf — сделать свой веб-сервис отказоустойчивым доступно для каждого

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

Здравствуйте, уважаемые читатели.

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

Читать далее
Всего голосов 12: ↑11 и ↓1+15
Комментарии4

ASP.NET Razor: решение некоторых проблем с архитектурой для модели представления

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

image


Введение


Здравствуйте, коллеги!
Сегодня хочу поделиться с вами своим опытом разработки архитектуры View Model в рамках разработки веб-приложений на платформе ASP.NET, используя шаблонизатор Razor.
Описываемые в данной статье технические реализации подходят для всех актуальных на текущей момент версий ASP. NET (MVC 5, Core, etc). Сама статья предназначена для читателей, которые, по меньшей мере, уже имели опыт работы под данным стеком. Также стоит отметить, что в рамках данной мы не рассматриваем саму пользу View Model и её гипотетическое применение (предполагается, что читатель уже знаком с данными вещами), обсуждаем непосредственно реализацию.


Задача


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

Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии71

Интерполяционный многочлен на произвольных функциях

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

Введение


Приветствую, уважаемые читатели! Сегодня предлагаю поразмышлять о следующей задачке:

Дано $n$ пар точек на плоскости $(x_1;y_1),...,(x_n;y_n)$. Все $x_i$ различны. Необходимо найти многочлен $M(x)$ такой, что $M(x_i)=y_i$, где $i\in\{1,...,n\}$

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

«Почему окольными путями?» — спросите вы. Ответ традиционный: это статья является продолжением серии статей дилетантского характера про математику, целью которых является популяризация математического мира.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии9

Russian Minesweeper — мультиплеерная версия игры «Сапёр»

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

Здравствуйте, уважаемые читатели. Искренне надеюсь, что среди читателей Хабра найдутся любители такой замечательной игры как «Сапёр».

Если верно помню, то впервые эта игра появилась на операционной системе Windows 3.1 ещё в далеком 1994-ом году. В то время эта игра позиционировалась как средство для обучения использованию компьютерной мыши и в целом графическому интерфейсу ОС. Выглядела она примерно так:

image

Принцип игры согласно Wikipedia
Плоское или объёмное игровое поле разделено на смежные ячейки (квадраты, шестиугольники, кубы и т. п.), некоторые из которых «заминированы»; количество «заминированных» ячеек известно. Целью игры является открытие всех ячеек, не содержащих мины.
Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает. Мины расставляются после первого хода, поэтому проиграть на первом же ходу невозможно. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано» (в каждом варианте игры соседство определяется по-своему); используя эти числа, игрок пытается рассчитать расположение мин, однако иногда даже в середине и в конце игры некоторые ячейки всё же приходится открывать наугад. Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры. «Заминированные» ячейки игрок может пометить, чтобы случайно не открыть их. Открыв все «не заминированные» ячейки, игрок выигрывает.

Однако, время идет, популярность сапера падает, и хочется внести новую жизнь и краски в эту игру. Именно так и родилась мультиплеерная версия игры, именованная как "Russian Minesweeper", которая представляет собой браузерную онлайн игру. Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии49

Решение линейных диофантовых уравнений с любым числом неизвестных

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

Здравствуйте, уважаемые читатели! Продолжаю серию дилетантских статей о математике.


Сегодня предлагаю поразмышлять над некоторой интересной математической задачкой.
А именно, давайте-ка для разминки решим следующее линейной уравнение:

$5a+8b+3c+2d = 17$


«Чего сложного?» — спросите вы. Действительно, лишь одно уравнение и целых четыре неизвестных. Следовательно, три переменных есть свободные, а последняя зависит от оных. Так давайте выразим скорее! Например, через переменную $a$, тогда множество решений следующее:

$ \begin{cases}\displaystyle{ a= \frac{17-8b-3c-2d}{5}\\ b,c,d\in\mathbb{R} } \end{cases} $


где $\mathbb{R}$ — множество любых действительных чисел.

Что же, решение действительно оказалось слишком тривиальным. Тогда будем нашу задачу усложнять и делать её более интересной.

Вспомним про линейные уравнения с целыми коэффициентами и целыми корнями, которые, собственно, являются разновидностью диофантовых уравнений. Конкретно — наложим на наше уравнение соответствующие ограничение на целочисленность коэффициентов и корней. Коэффициенты при неизвестных у нас и так целые ($5; 8; 3; 2; 17$), а вот сами неизвестные необходимо ограничить следующим:

$ a,b,c,d \in \mathbb{Z} $


где $\mathbb{Z}$ — множество целых чисел.

Теперь решение, полученное в начале статьи, «не проканает», так как мы рискуем получить $a$ как рациональное (дробное) число. Так как же решить это уравнение исключительно в целых числах?

Заинтересовавшихся решением данной задачи прошу под кат.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии11

Немного о приватности реальных Git-репозиториев

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

Введение


Здравствуйте, уважаемые читатели. Сегодня на повестке дня у нас небольшое тестирование —
первых ≈100 тысяч по популярности сайтов в интернете (ранжирование на основе статистики посещаемости с Alexa Rank). Стоит отметить, что оное тестирование будет достаточно узконаправленным, а именно — проверим каждый сайт на предмет существования и открытости Git-репозитория без аутентификации прямо из веба по url-адресу искомого. Напомню, что такая брешь в безопасности зачастую позволяет прочитать актуальные исходные коды на сервере, получить чувствительную информацию (файлы конфигов, структуру системы и т.д.) и, в последствии, получить определенного рода права на сервере. Рай для различного рода негодяев, да и только :)
Совершенно аналогичную проверку я делал для себя порядка 100 дней назад, и сегодня мы сделаем это ещё раз, посмотрим что изменилось и что с этим делать.
Разумеется, использовать будем список сайтов, полученный в рамках первого тестирования.
Для заинтересовавшихся милости прошу под кат.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии36

Алгоритм нахождения эквивалентных точек оси абсцисс функции многочлена

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


Уважаемые хабровчане, приветствую! Продолжаем цикл околоматематических статей, предыдущая расположена тут. Напомню, что я лишь дилетант математики, занимающийся её морально-эстетической стороной, и мои идеи могут показаться вам неинтересными/бесполезными/etc. Итак:

Для начала верным шагом будет введение аксиоматики на счет термина «эквивалентности» в данном контексте:

  • Если некоторая координата оси абсцисс image из числового множества удовлетворяет следующему условию:

    image

    То считается, что image (то есть image эквивалентна image)

Такая аксиоматика в рамках этой статьи удобства ради, и, строго говоря, не совсем корректна.

И сразу бы неплохо ответить на традиционный вопрос: «извините, а зачем это надо?». Отвечаю — как минимум, для поиска остальных корней уравнения многочлена (перейдя от уравнения к функции), зная лишь один корень. А также многообразие менее очевидных вещей. Сейчас мы и займемся разрешением этой задачи, а затем приведем алгоритм в общем виде. Для заинтересовавшихся милости прошу под кат.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии27

Решение квадратных уравнений через производные

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

Здравствуйте, уважаемые читатели. После прочтения статьи у вас, вероятно, возникнет закономерный вопрос: «А зачем, собственно, это надо?». В силу этого сперва считаю необходимым заблаговременно сообщить, что искомый метод решения квадратных уравнений представлен скорее с морально-эстетической стороны математики, нежели со стороны практического сухого применения. Также заранее извиняюсь перед теми читателями, которые посчитают мои дилетантские изречения неприемлемыми. Итак, начнем забивать гвозди микроскопом.

Имеем алгебраическое уравнение второй степени (оно же квадратное) в общем виде:

image

Перейдем от квадратного уравнения к квадратичной функции:

image

Где, очевидно, необходимо найти такие значения аргумента image функции, в которых оная возвратила бы ноль.

Кажется, нужно просто решить квадратное уравнение с помощью теоремы Виета или через дискриминант. Но мы ведь собрались здесь не для этого. Давайте-ка лучше возьмем производную!
Читать дальше →
Всего голосов 56: ↑36 и ↓20+16
Комментарии25

Информация

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