Как стать автором
Обновить
15
0
Сергей @abcdsash

Пользователь

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

Вычисление логического выражения из строки в C# (.NET)

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

В этой статье я продемонстрирую, как динамически вычислять логические математические выражения из строк в C#, с высокой производительностью. Решение, реализованное с использованием библиотеки .NET MathEvaluator, поддерживает логические операции в различных математических контекстах, включая программирование, научные вычисления и C#. Кроме того, библиотека позволяет расширять эти контексты, а также добавлять пользовательские переменные и функции.

Возможность компиляции математических выражений из строк была добавлена в MathEvaluator 2.0

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии40

5 рандомных вопросов на собеседовании iOS разработчика

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

Всем привет!

Рассмотрим 5 вопросов, которые вам могут задать на собеседовании на позицию iOS разработчика. Скорее всего, это вопросы уровня Junior, но т.к. сейчас непонятно кто, что и у кого спрашивает, поэтому не будем разводить холивар :)

Вопрос №1: Можно ли создать необязательные методы в протоколах?

Ответ: Существует два способа создания необязательных методов для протоколов.

Читать далее
Всего голосов 5: ↑4 и ↓1+7
Комментарии10

Матрица Вандермонда

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

Александр Теофил Вандермонд (28 февраля 1735 - 1 января 1796) - французский музыкант и математик, известный благодаря своей работе в области высшей алгебры.

Главным увлечением Вандермонда длительное время была лишь музыка, но к 35-ти годам юный ученый обратился к математике. Первым делом он провел исследование симметрических функций и решения круговых полиномов, после чего выпустил три статьи: про задачу о ходе коня, про комбинаторику и про основы теории детерминантов. 

В честь Александра Теофила был назван специальный класс матриц - матрицы Вандермонда, о котором пойдет речь в данной статье. [1]

Читать далее
Всего голосов 11: ↑6 и ↓5+4
Комментарии7

Понятно про браузер: критические этапы рендеринга, аппаратное ускорение и оптимизации

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

В статье детально разобраны этапы браузерного рендеринга, от парсинга HTML до композиции, описана техническая работа на этапе лейаута, приведены практические советы по оптимизации, которые помогут выявлять и устранять узкие места в коде. Описана польза FLIP анимаций и дан пример ее реализации.

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

Чиним замедление YouTube на уровне роутера

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

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее
Всего голосов 360: ↑357 и ↓3+412
Комментарии1028

Логистика. Часть 7. Максимизация прибыли: как подход через теорему Байеса поможет авиакомпаниям разбогатеть

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

В бизнесе именно неопределенность стоит у истоков всех проблем по оптимизации, данные же расположились у истоков решений всех этих проблем. В эпоху расцвета анализа данных и искусственного интеллекта это уже не новость, а прописная истина. Тем не менее существует целый ряд проблем, где данных либо крайне мало, либо нет вовсе. Когда речь заходит о системах управления доходностью (RMS), всегда подразумевается B2C, где много клиентов, а значит должно быть много данных. А как при этом быть с B2B, где количество клиентов за год может запросто исчисляться десятками или даже единицами?

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

Расширенное пространство (часть II)

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

Ультраметрический сосед

В квантовых масштабах наш мир начинает меняться. Он начинает соприкасаться  с ультраметрическим пространством, которым он насквозь пронизан. В микромире деградирует монолитное, цельное пространство с непрерывной метрикой, и достаточно гладкими (регулярными) законами.   В наше пространство начинают врываться потоки энергий, реализуясь в виде виртуальных частиц, которые поставляются  ультраметрическим  пространством. В этом смысле ультраметрическое пространство напрямую олицетворяет вакуум Дирака. При рассмотрении  “планковских”   масштабов  теряется возможности нормально «работать» как с  малыми областями пространства, так и  с микро объектами подобных размеров в силу их не детерминировости и неопределенности  (отсутствуют свойства привычного  пространства, позволяющие фиксировать координаты этого объекта). На этих масштабах работает принцип  Гейзенберга. Обычно этот принцип объясняют тем, что вмешательство прибора измерения, существенно влияет на сам измеряемый процесс, поэтому нельзя одновременно выяснить координаты элементарных частиц и их скорости(точнее импульсы). На  дело не в точности и грубости приборов измерения, как принято говорить сейчас.  Теряются метрики и смысл измеряемых параметров. Области пространства превращаются в сети с квантами пространства в качестве узлов  и связывающими их петлями силовых линий. Что более существенно меняется геометрия и тем более топология пространства. Областями-дырками испещрено  все наше пространство,  наш мир всюду разрывной в каждой своей «планковской» области. Образно эта картина  представляется   в виде композиции  пограничных слоёв, разделяющим пространство нашего мира с архимедовой метрикой и ультраметрическое пространство с не архимедовой метрикой. «Планковские» масштабы - это области квантовых явлений, спиновых сетей с квантами пространства в узлах, и процессами , идущих в ультраметрическом пространстве и управляющими поведением квантовых явлений, в том числе появлением квантовых флуктуаций и  виртуальных частиц в нашем мире.

Читать далее
Всего голосов 7: ↑6 и ↓1+6
Комментарии7

Что такое PID 0

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

Как говорится, «не будите во мне ботана». Иногда кто-нибудь беспечно задаст мне, казалось бы, невинный вопрос — и я убиваю следующие несколько часов (в описываемом случае — дней), чтобы полноценно сформулировать ответ. Обычно всё это заканчивается с моей стороны очередной филиппикой на mastodon или в каком-нибудь приватном чате. Но на сей раз не буду этим ограничиваться и напишу целый пост.

Вот с какого невинного вопроса всё началось:

А почему UID начинаются с 0, но PID начинаются с 1?

Если совсем коротко: в Unix PID (идентификаторы процессов) начинаются именно с 0! PID 0 просто не отображаются в пользовательском пространстве через традиционные API.  PID 0 запускает ядро, а затем практически уходит на покой, только немного участвует в работе планировщика процессов и в управлении питанием. Кроме того, на просторах Интернета доминирует заблуждение о PID 0, всё из-за одного ошибочного утверждения в Википедии, которому уже 16 лет.

В заключении к посту я дам несколько расширенную версию этого короткого ответа, но если хотите до него дойти вместе со мной — давайте разберём достаточно длинную среднюю часть.

Но, конечно же, любой желающий может просто загуглить, что такое PID 0, верно? Зачем мне вообще всё это писать?

Читать далее
Всего голосов 89: ↑77 и ↓12+78
Комментарии18

SOLIDно знать…

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

SOLID. Принципы и Паттерны. Паттерны и Принципы.
Что может быть ближе друг другу чем эти субстанции ?! Эта статья проведет параллель между ними, она не собирается объяснить суть каждой, вместе или отдельно, а желает показать как одна другой помогает.
То есть, статья в некотором роде перекрестный бой между паттернами и SOLID принципами.

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

Преобразуем проект на Python в исполняемый файл .EXE

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

С помощью Auto PY to EXE можно с лёгкостью преобразовывать файлы .py в файлы .exe. Благодаря этому ваш проект на Python будет работать как десктопное приложение и вы сможете запускать приложение на других машинах без необходимости установки Python.

В этой статье я расскажу, как преобразовать проект на Python в исполняемый файл. Решение будет работать вне зависимости от количества файлов .py в приложении. Стоит учесть, что Auto PY to EXE работает только с Python 3.5 или выше.
Читать дальше →
Всего голосов 37: ↑22 и ↓15+15
Комментарии12

Побитовые операции: для чего нужны основы информатики Solidity-разработчику

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

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

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

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

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

Как заново реализовать тетрис

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


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

Вне всяких сомнений, я наработал массу опыта и знаний, выполняя все эти вещи самостоятельно. Поэтому, на мой взгляд, вполне целесообразно и далее так делать, то есть, попробовать выполнить какой-то проект, уже реализованный ранее. Всё это — именно с целью самообучения. На этот раз я взялся самостоятельно перепроектировать «Тетрис». Чтобы было ещё интереснее, я решил всё сделать на C.

На самом деле, это не первая моя игра на C – немного ранее я уже успел написать на С клон сапёра. В блоге также об этом не писал, но, может быть, напишу в будущем, так как проект получился очень интересным. Пожалуй, этот опыт пригодился мне в работе над «Тетрисом».
Читать дальше →
Всего голосов 35: ↑28 и ↓7+35
Комментарии32

NumPy для самых маленьких

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

Математика везде в нашей жизни, но в программировании, а особенно ML ее два раза больше. Обычно Питон берут в пример самого "научного" языка программирования из-за математических фреймворков. Как не Питон может помочь оперировать математическими абстракциями, некоторые из сферы ресерча пользуются исключительно питоном для всяких научных изысканий — сегодня мы поговорим про библиотеку NumPy и работу с массивами. 

Самая новичковая "библиотека" с примочками в виде SciPy и Matplotlib предназначена для работы с многомерными массивами. NumPy – основа для многих других библиотек для машинного обучения, таких как SciPy, Pandas, Scikit-learn и TensorFlow. 

Pandas, например, строится поверх NumPy и позволяет работать со структурами данных высокого уровня по типу DataFrame и Series. При помощи NumPy можно проводить преобразование категориальных данных в числовой формат, например, с использованием кодирования one-hot.

Читать далее
Всего голосов 20: ↑17 и ↓3+18
Комментарии2

Последнее издание культовой книги «Искусство схемотехники» стало доступно русскоязычным читателям

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

“Электронщики, как учит нас Парацельс, самозарождаются среди паяльников, радиодеталей, универсальных плат и проводов” (@teap0t)

Возможно, это действительно так, но без хорошей книги - учебника или справочника, которые служат катализатором, этот процесс может так и не завершиться. А лучшей книгой для начинающих разработчиков электронных схем и практически библией электронщиков последние сорок лет, считается "Искусство схемотехники" (англ. - The Art of Electronics) Пауля Хоровица и Уинфилда Хилла.

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

Pandas: от хаоса к красоте кода

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

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

Я собрала несколько советов и подводных камней, которых следует избегать, чтобы сделать код на pandas чистым. Надеюсь, вам они тоже будут полезны. Также я буду ссылаться на классическую книгу Роберта Мартина «Чистый код: создание, анализ и рефакторинг».

Погнали!
Всего голосов 7: ↑7 и ↓0+7
Комментарии15

Разница между pool.map и pool.map_async в Python

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

Еще одна статья-шпаргалка о модуле multiprocessing в Python, без воды, от новичка для новичков многопроцессорного программирования.

pool.map и pool.map_async являются методами модуля multiprocessing.Pool в Python, которые позволяют параллельно выполнять функции на нескольких процессах.

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

Глубокая Теория Связей 0.0.1

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

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

Именно над этим мы и работаем. Эта теория, если у нас всё получится, станет единой метатеорией всего.

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

Как и всё что мы делали до этого, теория связей публикуется и передаётся в общественное достояние и принадлежит человечеству. То есть именно тебе. У этого труда множество авторов, однако сам этот труд намного важнее конкретного авторства. И мы надеемся уже сегодня это сможет быть полезно каждому.

Мы приглашаем тебя стать частью этого увлекательного приключения.

Стать свидетелем рождения метатеории
Всего голосов 18: ↑15 и ↓3+14
Комментарии10

Индексация заработной платы: почему работодатель обязан повышать тебе зарплату

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

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

Читать далее
Всего голосов 98: ↑84 и ↓14+94
Комментарии287

Адаптация алгоритма Дейкстры для расчёта кратчайших путей в IP-сетях

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

Адаптация алгоритма Дейкстры для расчёта кратчайших путей в IP-сетях.

Для сетевиков, программистов и интересующихся.

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии8

SwiftUI уроки (часть 5)

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

ссылка на 4ю часть

Buttons, Labels, Gradients

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

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии4
1
23 ...

Информация

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