Как стать автором
Обновить
64
Карма
0
Рейтинг
Александр Плавин @chersanya

Исследователь

Определение физических констант с помощью STM32 и светодиода

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

Введение


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

Я уже давно хотел изучить микроконтроллеры и разобраться в программировании для них, вот и решил сделать такой эксперимент. Его результаты были успешно представлены в качестве вопроса по выбору на экзамене по физике пару недель назад.
Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Просмотры 30K
Комментарии 44

Haskell — невозможное возможно?

Haskell *Функциональное программирование *
Известно, что задача определения того, истинна ли некоторая функция Integer -> Bool хотя бы для одного числа вычислительно неразрешима. Однако, нечто, на первый взгляд кажущееся как раз таким оракулом (а именно, функцией (Integer -> Bool) -> Maybe Integer) будет описано в этой статье.

Для начала, зададим свой тип натуральных чисел, практически дословно следуя их обычному математическому определению (почему это нужно будет видно в дальнейшем):

data Nat = Zero | Succ Nat deriving (Eq, Ord, Show)

Другими словами, натуральное число — это либо ноль, либо некоторое натуральное число, увеличенное на единицу (Succ от слова successor).

Также, для удобства, определим основные операции (сложение, умножение, конвертация из Integer) над числами в таком представлении:

instance Num Nat where
    Zero + y = y
    Succ x + y = Succ (x + y)

    Zero * y = Zero
    Succ x * y = y + (x * y)

    fromInteger 0 = Zero
    fromInteger n = Succ (fromInteger (n-1))

Читать дальше →
Всего голосов 45: ↑40 и ↓5 +35
Просмотры 13K
Комментарии 28

Полезности Mercurial

Системы управления версиями *Mercurial *
Думаю, почти все читающие знают, что такое Mercurial — это распределённая система контроля версий, для исходного кода и других (преимущественно текстовых) файлов. Многие ей пользуются, и знают основные команды, как то удаление/добавление файлов, создание коммита и отправка локальных изменений в другие репозитории. Однако, Mercurial имеет множество не столь известных функций и команд, которые часто достаточно полезны и удобны. Некоторые из них можно использовать сразу после установки по-умолчанию, некоторые нужно включить в настройках, а для других может потребоваться скачать дополнительное расширение.

Краткий список того, о чём пойдёт речь в статье:

  • hg serve (hgweb) — встроенный веб-сервер
  • расширения pager, progress и color
  • hg [c]record — выбор отдельных изменений для коммита
  • revsets и filesets — поиск коммитов и файлов с запросами любой сложности
  • hg evolve — Changeset Evolution или же «изменяемая история»


logo
Узнать подробности...
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 36K
Комментарии 50

Визуализация статистики использования компьютера с R

Python *Data Mining *R *


Думаю, многим интересно (хотя бы из любопытства), как именно они используют свой компьютер: самые нажимаемые кнопки, пройденное мышью расстояние, среднее время работы и другую информацию. В этой статье я расскажу один из вариантов того, как можно собрать такую информацию и затем представить её в виде интерактивных графиков. Все описанные действия производились на ноутбуке с ОС Debian Wheezy, Python 2.7.3, R 2.15.
image
Подробнее, с картинками и ссылками
Всего голосов 45: ↑42 и ↓3 +39
Просмотры 21K
Комментарии 13

Изучение OpenCL на примере взлома паролей

Python *GPGPU *
Из песочницы

Вступление


Недавно, почитав различных статей и презентаций про GPGPU, я решил тоже попробовать для себя программирование под видеокарты. Фактически, выбор технологий в этой области не велик — сейчас живы и развиваются только CUDA (проприетарный стандарт nVidia) и OpenCL (свободный стандарт, работает на GPU от ATI, nVidia, а также на центральных процессорах). В связи с тем, что мой ноутбук располагает видеокартой ATI (Mobility Radeon 5650 HD), то выбор и вовсе свёлся к одному варианту — OpenCL. В этой статье речь пойдёт о процессе изучения OpenCL с нуля, а также о том, что из этого получилось.
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 9.4K
Комментарии 2

Информация

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