Как стать автором
Обновить
59
Карма
0
Рейтинг
Иван Михейкин @diafour

Программист

  • Публикации
  • Комментарии

Скромный NAS для дома

Компьютерное железоСофт
Из песочницы
Это очередная статья о сборке очередного NAS для домашнего использования. Что побудило меня написать её? Начиная собирать себе NAS, я перечитал все нагугленные статьи, в которых люди рассказывали, как выбирали и собирали хранилища для себя. Благодаря этим статьям, я избежал некоторых ошибок при выборе железа и ПО. Собрал с первого раза конфигурацию, которая полностью меня устраивает по сей день. Поэтому уверен, кому-то моя статья может пригодиться.

Правда, надо сказать, что по профессии я системный администратор и это наложило на конфигурацию определённые требования, а на статью — подробность в описаниях с иллюстрациями на ~2 Мб. Так что да, NAS собирал сам. Но без фанатизма. В статье я не ограничился описанием железа, а рассказал ещё как использую получившуюся машину. Всем интересующимся добро пожаловать под кат!


В жизни каждого айтишника наступает момент, когда в корпусе кончается место под диски
Читать дальше →
Всего голосов 38: ↑21 и ↓17 +4
Просмотры148.7K
Комментарии 103

Новости

Показать еще

Самодельный спектрометр с высоким разрешением

Научно-популярноеНанотехнологииФизикаDIY или Сделай самХимия
Tutorial

Хорошее разрешение достижимо

В интернете много публикаций о том, как используя DVD-R диск и смартфон можно собрать спектрометр, однако характеристики таких устройств не позволяют проводить точные измерения. Мне же удалось сделать прибор с разрешением 0,3 нм.

Читать дальше
Всего голосов 139: ↑139 и ↓0 +139
Просмотры20.8K
Комментарии 73

SHISHUA: самый быстрый в мире генератор псевдослучайных чисел

Блог компании Mail.ru GroupСовершенный кодАлгоритмыCRust
Перевод

Полгода назад мне захотелось создать лучший генератор псевдослучайных чисел (ГПСЧ) с какой-нибудь необычной архитектурой. Я думал, что начало будет лёгким, а по мере работы задача станет медленно усложняться. И думал, смогу ли я научиться всему достаточно быстро, чтобы справиться с самым сложным.

К моему удивлению, сложность возрастала не линейно. Побайтовое тестирование по критерию хи-квадрат оказалось очень трудным! Позднее столь же трудно было пройти тесты diehard. Я опубликовал текущие результаты, чтобы понять, какие ещё трудности меня ожидают. Однако тест PractRand в тот раз пройти не удалось.

Затем было очень трудно прохождение теста BigCrush.

Затем было очень трудно передавать 32 тебибайта данных при прохождении PractRand. Скорость стала проблемой. Мало было создать конструкцию, генерирующей десять мегабайтов в секунду, потому что прохождение PractRand заняло бы месяц. Но должен признаться, что пройти этот тест со скоростью гигабайт в секунду было очень трудно.
Читать дальше →
Всего голосов 89: ↑87 и ↓2 +85
Просмотры14.2K
Комментарии 16

Сравнение скорости работы языков программирования на примере решения задачи обучения нейронной сети

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

Цель работы


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

Железо и ОС


Для тестирования по Ubuntu и Windows ( ноутбук DELL Inspiron-7577):

RAM: 16Gb

CPU: Intel Core i7-7700HQ @ 8x 3.8GHz


рис. 1 (вывод команды screenfetch на ноутбуке DELL Inspiron-7577 под ОС Ubuntu)
Читать дальше →
Всего голосов 38: ↑12 и ↓26 -14
Просмотры15.4K
Комментарии 36

Уровни изолированности транзакций для самых маленьких

MySQLPostgreSQLПрограммированиеSQLАдминистрирование баз данных


Сегодня хотел бы довести крайне интересный, но часто покрытый тайнами для обычных смертных программистов раздел базы данных (БД) — уровни изолированности транзакций. Как показывает практика, многие люди, связанные с IT, в частности с работой с БД, слабо понимают зачем нужны эти уровни и как их можно использовать себе во благо.

Немного теории


Сами транзакции особых объяснений не требуют, транзакция — это N (N≥1) запросов к БД, которые выполнятся успешно все вместе или не выполнятся вовсе. Изолированность же транзакции показывает то, насколько сильно влияют друг на друга параллельно выполняющиеся транзакции.
Выбирая уровень транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Стоит отметить, что самую высокую скорость выполнения и самую низкую согласованность имеет уровень read uncommitted. Самую низкую скорость выполнения и самую высокую согласованность — serializable.
Читать дальше →
Всего голосов 42: ↑36 и ↓6 +30
Просмотры63.6K
Комментарии 16

Хотите вечных светодиодов? Расчехляйте паяльники и напильники. Или домашнее освещение самодельщика

DIY или Сделай сам


Когда-то давным давно, когда я еще учился в школе, а на дворе был конец перестройки, мой дядя (заронивший в меня интерес к электронике) припер домой сумку вынесенного через проходную завода добра. Собственно, такие сумки он приносил домой вполне регулярно, пополняя запасы, хранившиеся в диване. Диван этот, как вы догадываетесь, манил, и иногда в отсутствии дяди я в него заглядывал с восторгом. Но кое-что из этой сумки в диван не попало, а попало в мои руки. Дядя мне вручил пачку — штук десять — макетных плат, и новенькую нераспечатанную коробку дефицитных, да и не дешевых в то время светодиодов. Причем светодиоды были не простые: вместо привычной маркировки АЛ-что-то там на коробке стоял код из четырех цифр, как я понял — они были экспериментальные. И они были яркие. По сравнению с привычными АЛ307 или АЛ310 — просто ослепительные. И их к тому же было много — штук 50.

Идея «куда это богатство применить» возникла моментально: светодиоды были распаяны на одной из макетниц — сколько влезло (влезли не все), и из них вышел великолепный красный фонарь для печати фотографий, который абсолютно не засвечивал фотобумагу даже в упор. Правда, тут же я узнал о том, что «светодиоды не греются» — это вранье, так что ток пришлось снизить вдвое, с 10 мА на светодиод до 5. А еще через полгода успешной эксплуатации узнал и о том, что «светодиоды не перегорают» — это тоже неправда: первый светодиод в сборке погас, оказался пробит. А со временем и весь фонарь пришел в негодность.

И вот сейчас я снова слышу из каждого утюга про «вечные» светодиодные лампочки, а дома за неполный год перехода на светодиодные лампы перегорела уже третья по счету.
Читать дальше →
Всего голосов 100: ↑94 и ↓6 +88
Просмотры201.8K
Комментарии 265

Опусы про Его Величество Клей. Часть первая — вводная

Научно-популярное3D-принтерыDIY или Сделай самЛайфхаки для гиковХимия
Tutorial
Есть такие области знания, которые «аршином общим не измерить...». В принципе, в моей «домашней» области, коллоидной химии, под такое направление можно спокойно помещать любое фундаментальное понятие, будь-то адсорбция (с адсорбентами) или адгезия (с клеями). Честно говоря, мысль написать про клей у меня не возникала. Но когда читатели в каждой теме, связанной с полимерами начинают просить рассказать про клеи — об этом поневоле задумаешся (ну и хочется конечно же отпарировать на «все надо клеить суперклеем»). Адгезия и клеи — очень обширная тема, поэтому я все-таки решил за нее взяться, но разбить повествование на несколько частей. Сегодня первая часть — вводно-информационная. Чтобы узнать за счет чего клей клеит, какие бывают клеи и какой клей лучше подходит для склеивания _____ (вписать нужное), традиционно идем под кат (и кладем в закладки).

Читать дальше →
Всего голосов 166: ↑163 и ↓3 +160
Просмотры55.1K
Комментарии 155

Выбор телевизора себе, любимому, с позиции науки, а не рекламы

Анализ и проектирование системМониторы и ТВУмный домЛайфхаки для гиковИнженерные системы

Всем привет.

На написание этой небольшой статьи меня натолкнул спор касательно выбора телевизора.

Сейчас в этой области — равно как в «мегапикселях для камер» — царит маркетинговая вакханалия в погоне за разрешениями: HD Ready давно сменились на Full HD, а уже становятся всё более популярными 4К и даже 8К.

Давайте разберёмся — а что нам реально-то нужно?
Читать дальше →
Всего голосов 142: ↑124 и ↓18 +106
Просмотры108.6K
Комментарии 346

Фильтр Калмана — Введение

ПрограммированиеАлгоритмы
Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.

Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), но у этих статей довольно большой порог вхождения, остается много туманных мест, хотя на самом деле это очень ясный и прозрачный алгоритм. Я попробую рассказать о нем простым языком, с постепенным нарастанием сложности.
Читать дальше →
Всего голосов 157: ↑151 и ↓6 +145
Просмотры224.2K
Комментарии 50

Визуализация времени возрождения Рошана

C++Разработка игрРеверс-инжиниринг
Из песочницы
В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2.

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



Disclaimer: Автор не несет ответственности за применение вами знаний полученных в данной статье или ущерб в результате их использования. Вся информация здесь изложена только в познавательных целях. Особенно для компаний разрабатывающих MOBA, чтобы помочь им бороться с читерами. И, естественно, автор статьи ботовод, читер и всегда им был.
Читать дальше →
Всего голосов 134: ↑133 и ↓1 +132
Просмотры43K
Комментарии 22

Как я создаю базу данных для своих приложений

JavaРазработка под AndroidSQLite
Tutorial
Recovery mode
Всем привет! Меня зовут Олег и я программист-любитель под Android. Любитель потому что в данный момент я зарабатываю деньги программированием в совсем другом направлении. А это хобби, которому я посвящаю свое свободное время. К сожалению у меня нет знакомых программистов под Android и все свои базовые знания я черпаю либо из книг, либо из интернета. Во всех тех книжках и статьях в интернете, которые я читал, созданию базы данных для приложения отводится крайне мало места и по сути все описание сводится к созданию класса являющегося наследником SQLiteOpenHelper и последующему внедрению SQL кода в Java код. Если не считать, что мы получаем плохо читаемый код (а если в нашем приложении появляется больше 10 таблиц, то вспоминать все эти взаимосвязи между таблицами тот еще ад), то в принципе жить можно конечно, но как-то совершенно не хочется.
Забыл сказать самое главное, можно сказать что это моя проба пера тут. И так поехали.
Читать дальше →
Всего голосов 27: ↑20 и ↓7 +13
Просмотры106.8K
Комментарии 83

Делаем современное веб-приложение с нуля

Разработка веб-сайтовPythonПрограммированиеReactJSFlask
Tutorial
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →
Всего голосов 64: ↑56 и ↓8 +48
Просмотры102.2K
Комментарии 123

Неожиданная эффективность квазислучайных последовательностей

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


Рисунок 1. Сравнение различных квазислучайных последовательностей с низким расхождением. Заметьте, что предлагаемая мной $R$-последовательность создаёт более равномерно распределённые точки, чем все остальные методы. Более того, все остальные методы требуют тщательного подбора базовых параметров, а в случае неправильного подбора приводят к вырожденности (например справа вверху)

Рассматриваемые в статье темы

  • Последовательности с низким расхождением в одном измерении
  • Методы с низким расхождением в двух измерениях
  • Расстояние упаковки
  • Множества с многоклассовым низким расхождением
  • Квазислучайные последовательности на поверхности сферы
  • Квазипериодический тайлинг плоскости
  • Маски дизеринга в компьютерной графике

Какое-то время назад этот пост был выложен на главной странице Hacker News. Можете прочитать там его обсуждение.
Читать дальше →
Всего голосов 90: ↑90 и ↓0 +90
Просмотры18.6K
Комментарии 7

Красивые точные часы из старого смартфона

СхемотехникаСмартфоныЭнергия и элементы питанияDIY или Сделай самЛайфхаки для гиков
Из песочницы


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

Я расскажу о некоторых выясненных особенностях сихронизации времени в ОС Андроид, а также о разных электрических хитростях в системе питания смартфона. Опишу пример схемы на несложных аналоговых компонентах, которая осуществляет автоматическое резервное питание. И конечно речь будет о программной части андроид – как и с помощью чего можно самому сделать из смартфона красивые часы на любой вкус.
Читать дальше →
Всего голосов 150: ↑147 и ↓3 +144
Просмотры69.1K
Комментарии 133

Kubernetes 1.10: обзор основных новшеств

Блог компании ФлантСистемное администрированиеDevOpsKubernetes
В конце марта состоялся релиз Kubernetes 1.10. Поддерживая нашу традицию рассказывать подробности о наиболее значимых изменениях в очередном релизе Kubernetes, публикуем этот обзор, подготовленный на основе CHANGELOG-1.10, а также многочисленных issues, pull requests и design proposals. Итак, что же нового приносит K8s 1.10?

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

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

Блог компании Mail.ru GroupВысокая производительностьJavaScriptАнализ и проектирование системReactJS
Перевод
Tutorial

image


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

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

Вопросы для собеседования бэкенд-разработчика

Разработка веб-сайтовПрограммированиеСерверная оптимизацияАдминистрирование баз данныхКарьера в IT-индустрии
Перевод
Этот список появился как личная памятка по темам, которые я обсуждал с коллегами и друзьями и в которых хотел разобраться поглубже…

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

В этом репозитории собран ряд вопросов, связанных с серверной частью, которые можно использовать при проверке потенциальных кандидатов. Ни в коем случае не рекомендуется задавать все вопросы одному кандидату: это займет несколько часов и вообще не имеет смысла, потому что они охватывают слишком широкий спектр тем. Никто не может знать всего. Выберите наиболее актуальный раздел и самые интересные вопросы, чтобы развернуть беседу.
Читать дальше →
Всего голосов 83: ↑61 и ↓22 +39
Просмотры146.9K
Комментарии 274

Как это работает: Деревья Меркла в биткойн сети

Блог компании Bitfury GroupДецентрализованные сетиИнформационная безопасностьКриптографияАлгоритмы
Узлы в блокчейн-сети анонимны и работают в условиях отсутствия доверия. В этой ситуации встает проблема верификации данных: как проверить, что в блоке записаны корректные транзакции? Для оценки каждого блока понадобится большое количество времени и вычислительных ресурсов. Решить проблему и упростить процесс помогают деревья Меркла.

Что это такое, как используется, какие существуют альтернативы — расскажем далее.

Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры25.2K
Комментарии 18

Блокчейн 101: книги, исследования и статьи по теме

Блог компании Bitfury GroupПлатежные системыЗанимательные задачкиПрограммированиеЧитальный зал
Мы подготовили дайджест из 30 полезных материалов о блокчейне: это книги, статьи, видео для тех, кто «что-то слышал, но хочет лучше разобраться в теме». Этот список мы формировали на основе собственных материалов и исследований, а также рекомендаций резидентов платформ Hacker News, Quora, Reddit.

Как устроены смарт-контракты, как объяснить концепцию биткойна ребенку и (самое интересное) как сделать свой собственный блокчейн — обо всем под катом.

Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Просмотры35.1K
Комментарии 4

Сборка и дeплой приложений в Kubernetes с помощью dapp и GitLab CI

Блог компании ФлантСистемное администрированиеСистемы сборкиDevOpsKubernetes
Tutorial


В предыдущих статьях о dapp было рассказано про сборку приложений и про запуск в Minikube. При этом dapp запускался локально на машине разработчика. Однако инструмент задумывался для поддержки процессов непрерывной интеграции (CI) и сами мы используем его в основном в связке с GitLab. Чем dapp помогает в процессах CI/CD?
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры19.8K
Комментарии 4

Информация

В рейтинге
3,406-й
Откуда
Россия
Работает в
Зарегистрирован
Активность