Как стать автором
Обновить
2
0

Фотограф-любитель, фронтенд тимлид

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

Параллельное программирование в Python при помощи multiprocessing и shared array

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

Введение.


Python замечательный язык. Связка Python + NumPy + Matplotlib, на мой взгляд, сейчас одна из лучших для научных расчётов и быстрого прототипирования алгоритмов. Но у каждого инструмента есть свои светлые и тёмные стороны. Одной из самых дискутируемых особенностей Python является GIL – Global Interpreter Lock. Я бы отнёс эту особенность к тёмной стороне инструмента. Хотя многие со мной не согласятся.

Если кратко, то GIL не позволяет в одном интерпретаторе Python эффективно использовать больше одного потока. Защитники GIL утверждают, что однопоточные программы при наличии GIL работают намного эффективнее. Но наличие GIL означает, что параллельные вычисления с использованием множества потоков и общей памяти невозможны. А это достаточно сильное ограничения в современном многоядерном мире.

Один из способов преодоления GIL при помощи потоков на C++ был недавно рассмотрен в статье: Использование Python в многопоточном приложении на C++. Я же хочу рассмотреть другой способ преодоления ограничений GIL, основанный на multiprocessing и shared array. На мой взгляд, этот способ позволяет достаточно просто и эффективно использовать процессы и разделяемую память для прозрачного параллельного программирования в стиле множества потоков и общей памяти.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии15

Исследование процессора и его функциональная симуляция

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


Наверное каждый программист ASM / C / C++ когда-то задумывался о написании своей собственной операционной системы.

И наверное каждый разработчик Verilog / VHDL для ПЛИС когда нибудь задумывался о создании своего процессора.

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

Я решил поизучать ARM совместимый процессор AMBER. Его исходники есть на http://opencores.org.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии18

USB TV-тюнеры на rtl2832 — или как услышать в радиоэфире все за 600 рублей

Время на прочтение5 мин
Количество просмотров502K
Давно я собирался купить какой-нибуть универсальный радиоприемник/радиосканер, чтобы полазить по эфиру, послушать о чем говорят ночью матёрые и бородатые радиолюбители…

До недавнего времени, это удовольствие обходилось от 300$ и до бесконечности. Ну а с переходом гос.органов (и России и за бугром) на цифровую (но пока еще не зашифрованную) связь APCO P25 стоимость удовлетворения нездорового любопытства стала ещё выше.

Год назад все изменилось — умельцы выяснили, что многие из продающихся у нас китайских USB TV-тюнеров за 600 рублей — фактически являются универсальным радиоприёмником, на который без каких-либо доработок можно послушать практически все-что угодно в диапазоне 50-900Мгц (если повезет — до 2200Мгц, но там голосом особо ничего не передают): переговоры самолётов с диспетчерами, строителей, такси, жучки в вашей квартире и многое другое.

Под катом я расскажу что и где покупать, как подключить и настраивать, ну и наконец — что можно послушать.
Читать дальше →
Всего голосов 144: ↑137 и ↓7+130
Комментарии147

Плейн- и радарспоттинг, или я болен авиацией

Время на прочтение7 мин
Количество просмотров78K
Я болен авиацией. Да, именно так и никак иначе. На моем ноутбуке хранится куча мануалов к различным самолётам от Boeing и Airbus, пособия по радиообмену, фильмы по авиационной тематике. Помимо всего этого я слушаю авиадиапазон с помощью портативной радиостанции (которая, кстати, не имеет возможности передавать на этих частотах, только слушать!). И плюс ко всему я регулярно, раз или два в месяц выбираюсь к аэропорту Шереметьево и фотографирую самолёты, заходящие на посадку. В этом посте я расскажу, как докатился до такой жизни. Может быть кто-то из вас, уважаемые читатели, тоже заболеет авиацией.
Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 201: ↑193 и ↓8+185
Комментарии84

Обучение программированию через игру или как быстро собрать весь мёд

Время на прочтение5 мин
Количество просмотров44K
Несколько лет назад я начал преподавать свой любимый язык python школьникам. И возникла такая задача: рассказать про объектную модель, но что бы это было не скучно и как можно нагляднее. И тут меня не сразу, но осенило — пчёлы!

Отчего пчёлы и как самому ими порулить
Всего голосов 35: ↑30 и ↓5+25
Комментарии31

Сам себе сотовый роуминг. Создание GSM гейта на asterisk + донгл от сотового оператора

Время на прочтение7 мин
Количество просмотров154K
Случилось так, что езжу я в командировки и отпуски не настолько часто чтобы пользоваться какой-то международной телефонией или виртуальным провайдером, но и не настолько редко чтобы вообще не забивать себе этим голову и пользоваться роумингом не заморачиваясь на расходах.
Езжу я не в те страны и не так надолго чтобы покупать симку местного оператора, зато в те страны где вай-фай есть почти везде.
Так уж вышло что в последнее время я плотно познакомился с программной АТС asterisk и перед очередной поездкой подумал о том как было бы классно воткнуть свою сим-карту в качестве входящего транка в asterisk, стоящий в остающейся позади снежной Москве, а самому цепляться к нему sip-клиентом по интернету. Это же и сам звони не хочу, был бы интернет, и звонки принимай на свой же номер, что важно для тех у кого много контактов (всех не оповестишь, да и половина забудет) — сотовый-то с сим-картой фактически стоит в домашнем регионе.

Как это реализуется — под катом.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии26

Проблемы удаленной работы дома и пути их решения

Время на прочтение6 мин
Количество просмотров217K
Стоит мне где-то упомянуть, что работаю дома, как в ответ зачастую слышатся завистливо-шутливые реплики в духе «хорошо тебе, сидишь дома, ничего не делаешь и деньги получаешь». В зависимости от настроения и собеседника, приходится либо отшучиваться, либо в сотый раз пояснять, что работаю я не меньше офисных собратьев и что проблем в удаленной работе хватает. В данной статье, как раз, хотелось бы коснуться тех из них, с которыми мне довелось столкнуться в своей практике и поделиться способами их решения.

Некоторые из перечисленных ниже моментов могут показаться очевидными и банальными, некоторые работают для меня, но не будут работать для других, однако, я все же надеюсь, что мой опыт кому-то пригодится. Особенно, конечно, начинающим фрилансерам и людям, которые думают таковыми стать.

Здесь не затронуты непосредственно «бизнес-вопросы»: способы поиска заказчиков, работы с ними, ценообразование и тому подобное. Акцент – на то, как организовать свою работу дома, побороть лень и не потерять при этом физическое и душевное здоровье.

Читать дальше →
Всего голосов 170: ↑160 и ↓10+150
Комментарии144

«Мнемотехника» и «изучение иностранного языка» несовместимые понятия?! Давайте разберемся

Время на прочтение13 мин
Количество просмотров283K
Здравствуйте, Уважаемые Хабрапользователи!



На написание данной публикации меня сподвигло возмущение от прочитанной недавно статьи одного хабраюзера, утверждающего, что мнемотехника «очень хороший способ запоминания информации, совершенно не подходящий для изучения иностранных слов». Я с этим высказыванием в корне не согласен, а потому, хотелось бы доказать обратное.
Если вам интересно, как использовать мнемотехнику для запоминания иностранных слов, то добро пожаловать под кат.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии26

Как я решил потихоньку учить питон, а попал в дебри CS188.1x Artificial Intelligence

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

Привет Хабр, или введение


image

Расскажу свою небольшую предысторию.

Как то в очередной раз надоело ковырять очередной контроллер, схему и pcb, и удрученный средней по рынку зарплатой рядового электронщика решил — хочу опять в программисты.

Не могу сказать, что я уже был в программистах, но образование получил 3 года назад по специальности «Информационные системы и технологии» в Военмехе. А судьба занесла в схемотехники-электронщики еще во времена универа. Раньше спасали частые командировки на объекты (пока молод и холост — интересно), а последний год все окончательно надоело.
Читая Хабр, выбрал себе Python.
Читать дальше →
Всего голосов 68: ↑59 и ↓9+50
Комментарии30

RFID-метка на простой логике

Время на прочтение25 мин
Количество просмотров204K
Объявлено новое соревнование 7400, и нужно сделать что-то новое. Нельзя ударить в грязь лицом после победы в прошлом году ;)

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

Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
Много текста и картинок
Всего голосов 158: ↑156 и ↓2+154
Комментарии31

Прошиваем AVR вручную

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

Картинка для привлечения внимания — xkcd

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

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

Как же прошить МК фактически голыми руками?
Читать дальше →
Всего голосов 171: ↑170 и ↓1+169
Комментарии66

О развязке питания с примерами

Время на прочтение8 мин
Количество просмотров180K
Когда я участвовал в проведении конкурса 7400, я понял, что многим из представленных логических схем для надежной работы не хватает простейших защитных элементов. Одним из самых часто встречающихся недостатков конструкции было отсутствие блокировочных емкостей. Позже, прочитав статью о законе Мёрфи, я решил немного написать о развязке и блокировочных конденсаторах.
Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии25

Создание двухсторонней платы (видео)

Время на прочтение1 мин
Количество просмотров43K
Привет хабр!

Думаю, что технология ЛУТ не является ни для кого секретом. Редкий радиоэлектронный блог обходится без статьи о том, как заутюжить печатную плату. Но тема создания двухсторонних плат почему-то освещается гораздо реже. Хотя они становятся все более востребованы: мы используем микросхемы в мелких и многоногих корпусах, и стараемся уменьшить размеры платы.

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


Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии47

Как убрать КАПС из меню Visual Studio 2012 RC

Время на прочтение1 мин
Количество просмотров12K
Недавно была выпущена Visual Studio 2012 RC, в которой, наравне с многочисленными изменениями интерфейса, было представлено главное меню с элементами набранными капсом. Не всем это пришлось по душе (хотя, лично мне нравится, тут можно почитать где и когда применим капс). Ниже представлен способ приведения меню в старое состояние



Для возврата старого меню внесите следующие изменения в реестр Windows:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General\SuppressUppercaseConversion
REG_DWORD value: 1


Скачать новую версию Visual Studio 2012 RC можно по специальному короткому адресу vs11.ru. Приятной разработки!
Всего голосов 97: ↑69 и ↓28+41
Комментарии58

Нейронные сети для чайников. Сеть Кохонена

Время на прочтение3 мин
Количество просмотров347K
В статье Нейросети для чайников. Начало автор Paul_Smith доступно показал насколько просто создать нейронную сеть для распознования картинок. Но есть одно но — то что он описал нейронной сетью не является. Перед его следующей статьей хочу рассказать вам как решить ту же задачу, но с использованием нейронной сети Кохонена.

Итак, распознавать мы будем цифры, написанные белым по черному, такие как эти:
image image image image image image
Читать дальше →
Всего голосов 107: ↑101 и ↓6+95
Комментарии61

Нейросети для чайников. Часть 2 — Перцептрон

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

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

Язык программирования, на этот раз — C#.
Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 97: ↑86 и ↓11+75
Комментарии41

Нейросети для чайников. Начало

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


Так получилось, что в университете тема нейросетей успешно прошла мимо моей специальности, несмотря на огромный интерес с моей стороны. Попытки самообразования несколько раз разбивались невежественным челом о несокрушимые стены цитадели науки в облике непонятных «с наскока» терминов и путанных объяснений сухим языком вузовских учебников.

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

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 258: ↑226 и ↓32+194
Комментарии91

Единственный способ

Время на прочтение4 мин
Количество просмотров71K
Ральф вошел в помещение ангара №1 в 8:30 утра, как делал это ежедневно уже несколько лет. Его взгляд сразу же устремился к центру зала, где на постаменте, окруженный множеством приборов и паутиной кабелей, находился смысл его работы. Собственно говоря, не только его — миллионов людей по всему миру. Первый инопланетный корабль. Полтора десятилетия назад он совершил аварийную посадку и был частично поврежден, оставив, однако, весьма много материала для изучения. Настоящим чудом стало то, что политики и учёные после этого события не переругались, а смогли организовать эффективное изучение свалившегося с небес подарка. На реверс-инжиниринг корабля были брошены лучшие умы планеты. Ральф, возглавляющий группу изучения приборов связи, стоял в ангаре и в который раз любовался стремительной, похожей на стрелу в полёте, формой корабля. Он вспоминал всё, что случилось за последние годы.
Читать дальше →
Всего голосов 341: ↑305 и ↓36+269
Комментарии127

Простой блог-сервис на основе Dropbox

Время на прочтение1 мин
Количество просмотров1K
Запустился, правда, в стадии ранней бета-версии (создатель пишет «super-beta»), сервис http://scriptogr.am, основным предназначением которого является возможность быстрого создания блога (пока без ничего лишнего вроде рекламы), хостингом для которого будет являться dropbox-аккаунт. Все довольно просто:
  • Требуется позволить сервису получить доступ к учетной записи на Dropbox, в котором он аккуратно создаст свою папку scriptogram, а в ней папку posts — там и будут храниться собственно markdown-файлы, представляющие из себя будущие записи в блоге.
  • Затем в админке надо как-то назвать блог и получить тем самым адрес http://scriptogr.am/username; прямо после можно начать блог крайне простым текстовым редактором, который предлагает сервис. Редактор позволяет создать markdown-файл, поместив его в dropbox-аккаунт или отредактировать существующий.
  • Следующий шаг — синхронизация между DropBox и scriptogr.am (кнопку для этого сложно не найти), после которой на http://scriptogr.am/username новый блог и будет, собственно, доступным. Вполне допустимо загрузить предварительно подготовленные md-файлы и синхронизировать их аналогично.
Взыскательные пользователи могут отредактировать CSS-стили или HTML-код блога, который, тем не менее, и по умолчанию выглядит довольно неплохо — вот так выглядит официальный блог проекта.
Всего голосов 31: ↑24 и ↓7+17
Комментарии18

Знакомство с мнемоникой

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

Доброго времени суток! Сразу оговорюсь, что цель этой статьи — познакомить и, возможно, заинтересовать вас такой штукой, как мнемоника. Мнемоника — наука о запоминании. То бишь совокупность способов и уловок, которые помогут вам запомнить большие объёмы информации в правильной последовательности (Например, 100 случайных слов (чисел) можно запомнить последовательно с интервалом в среднем в 6 секунд). Некоторые умудряются запомнить несколько тысяч цифр после числа Пи. Так же мнемотехника помогает в освоении иностранного языка ). Но нам пока рано об этом думать. Вы спросите:«Зачем мне ета ваша мнемоника?». Я отвечу: вы можете использовать её не только как хобби (от простого облегчения жизни, до того, что можете удивлять друзей, предложив с ними поочерёдно запомнить N информации поочерёдно), но и участвовать в соревнованиях (да-да, есть соревнования по запоминанию, где участвуют не прирождённые гении, а люди, натренировавшие себе память).
Читать дальше →
Всего голосов 214: ↑193 и ↓21+172
Комментарии70

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность