Pull to refresh
0
0
Send message

Реализация FizzBuzz на FPGA

Reading time13 min
Views17K
Недавно я увлёкся программированием FPGA и решил, что будет интересно реализовать на FPGA алгоритм игры FizzBuzz. FPGA (программируемая пользователем вентильная матрица) — интересная микросхема. Она программируется на выполнение произвольной цифровой логики. Можно сконструировать сложную схему, не прокладывая физические каналы между отдельными вентилями и триггерами. Микросхема способна превратиться во что угодно, от логического анализатора до микропроцессора и видеогенератора.

Тест FizzBuzz — написать программку, которая выдаёт числа от 1 до 100, где кратные трём заменяются словом “Fizz”, кратные пяти — словом “Buzz”, а кратные пятнадцати — “FizzBuzz”. Поскольку такая программа реализуется в нескольких строчках кода, то её часто задают на собеседованиях чтобы отсеять тех, кто вообще не умеет программировать.


Плата Mojo FPGA, подключенная к порту serial-to-USB. Большой чип на плате — это Spartan 6 FPGA

Реализация FizzBuzz в цифровой логике, а не в коде, довольно бессмысленна, но показалась мне хорошим примером для обучения.1 Для этого проекта я использовал простую плату разработки Mojo V3 FPGA для начинающих. На ней установлен FPGA семейства Xilinx Spartan 6. Это один из самых маленьких FPGA, но у него 9000 логических ячеек и 11 000 триггеров — так что малыш на многое способен.
Читать дальше →

Авторизация пользователя на вашем сайте через Telegram для Django

Reading time8 min
Views45K

Привет! 6 февраля Telegram ввел возможность добавлять на свой сайт виджет для авторизации пользователя через его аккаунт в Telegram. Виджеты по виду реализации на сервере делятся на два вида — обработать данные пользователя «здесь и сейчас» в JavaScript или же перенаправить данные в параметрах URL на указанный адрес. Также саму кнопку можно настроить внешне: изменять размер, закругление углов, отключать и включать фотографию.

Материал — руководство по настройке авторизации пользователя через Telegram-аккаунт на вашем сайте с помощью пакета django-telegram-login.
Читать дальше →

Как сделать ваш код в 80 раз быстрее

Reading time6 min
Views31K
Всем бобра!

У нас стартует третий набор на курс «Разработчик Python», а значит, что впереди и открытый урок, которые у нас частично замещают староформатные дни открытых дверей и где можно ознакомиться с интересным материалом от наших преподавателей, и то, что мы нашли очередной интересный материальчик. На этот раз по ускорению «змеиного» кода.

Поехали.

PyPy способен ускорить код в 2 раза, что радует очень многих людей. Хочу поделиться короткой, личной историей, доказывающей, что PyPy способен на большее.

ДИСКЛЕЙМЕР: это не чудодейственное средство на все случаи жизни, да, сработало конкретно в этом случае, но может оказаться не таким эффективным во многих других. Однако метод все равно интересный. Более того, шаги, описанные здесь, я применял во время разработки в том же порядке, что делает статью жизненным примером оптимизации PyPy.

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

Читать дальше →

Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф

Reading time11 min
Views30K

Однажды я наткнулся на интерактивную карту lastfm и решил обязательно сделать подобный проект для фильмов. Под катом история о том, как собрать данные, построить граф и создать своё интерактивное демо на примере данных с кинопоиска и imdb. Мы рассмотрим фреймворк для скрапинга Scrapy, пробежимся по методам визуализации больших графов и разберёмся с инструментами для интерактивного отображения больших графов в браузере.

Читать дальше →

How-to: Разворачиваем Oracle Real Application Cluster 11g на VirtualBox

Reading time21 min
Views39K


1. Предыстория


Наша компания занимается серийным выпуском техники сугубо мирного назначения и вся сопутствующая информация с производства пишется в БД Oracle, которая располагается на виртуальном сервере под управлением VMware ESX. И вроде бы все налажено, конвейер работает, данные пишутся, идет отгрузка готовой продукции.

Но стойка, на которой кроме сервера БД, базируется еще куча каких-то непонятных серверов, имеет удивительное свойство иногда падать. Да и с самой БД в один прекрасный момент может произойти все, что угодно. Конечно, первым делом на ум приходит грамотная организация резервного копирования БД или создание спапшотов VMware. Однако, все эти действия, в случае отказа оборудования, не позволяют обеспечить непрерывную работу БД и всего конвейера соответственно. В общем, захотелось опробовать другие решения.

Когда в IT-отделе в очередной раз проводилось собрание по данной проблеме, было решено опробовать идею поднять Oracle Real Application Cluster и развернуть на нем производственную БД. Проблема заключалась лишь в том, что никто на тот момент не знал, как это делается.

Пред тем, как закупать железо и разворачивать новые сервера, было решено опробовать выбранную технологию локально, используя VM VirtualBox. После нескольких недель, плавно перешедших в месяцы, поиска и переваривания необходимой как воздух информации, кластер наконец-то был запущен, и можно было приступать к первым тестам. И так, всем, кто хочет поднять n-нодовый (n>=2) кластер, добро пожаловать под кат.
Читать дальше →

Oracle – табличные конвейерные функции

Reading time3 min
Views53K
В промышленных системах часто требуется выполнить преобразования данных с использованием pl/sql кода с возможностью обращения к этим данным в sql запросе. Для этого в oracle используются табличные функции.
Читать дальше →

Пора. Обновление до Oracle Database 12

Reading time8 min
Views22K

Почему пора?


Время летит быстро, и для пользователей Oracle Database 11.2, не говоря уже о более ранних версиях, настало время обновления. 31 января 2015 года закончился период Premier Support базы Oracle Database 11.2. Это значит, что если вы, например, запланируете обновление аппаратного сервера, то на нем придется установить новую версию операционной системы, т.к. драйверы для прежней версии уже недоступны, а новая операционная система уже не сертифицирована под версию 11.2.

Читать дальше →

Установка 1C Fresh с нуля используя Linux и PostgreSQL

Reading time18 min
Views56K
В этой статье с картинками Кнопка расскажет о том как развернуть свой собственный фреш с блэкджеком PostgreSQL и Linux. Надеемся, что она поможет тем, кто пытается установить у себя 1С Fresh и немного потонул в объемах официальной документации. При развертывании мы будем максимально использовать свободное ПО.


Читать дальше →

Создание игр на Python 3 и Pygame: Часть 4

Reading time6 min
Views48K
image

Это четвёртая из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame. В третьей части мы углубились в сердце Breakout и узнали, как обрабатывать события, познакомились с основным классом Breakout и увидели, как перемещать разные игровые объекты.

(Остальные части туториала: первая, вторая, третья, пятая.)

В этой части мы узнаем, как распознавать коллизии и что случается, когда мяч ударяется об разные объекты: ракетку, кирпичи, стены, потолок и пол. Наконец, мы рассмотрим важную тему пользовательского интерфейса и в частности то, как создать меню из собственных кнопок.
Читать дальше →

В команде нет автотестеров – что делать?

Reading time4 min
Views12K
Некоторые из вас, возможно, слышали, что в первую неделю декабря по всей России прошла образовательная акция “Час кода": для школьников 5-11 классов проводили открытые уроки, на которых показывали, что программировать это просто и увлекательно и каждый может этому научиться.



Мы в Acronis решили поделиться собственным опытом: как мы пробуем обучать программированию наших сотрудников, не отрывая их от работы.
Читать дальше →

Оптические волокна. Классификация

Reading time4 min
Views174K
Оптические волокно стандарт де-факто при построении магистральных сетей связи. Протяженность волоконно-оптических линий связи в России у крупных операторов связи достигает > 50 тыс.км.
Благодаря волокну мы имеем все те преимущества в связи, которых не было раньше.
Вот и попробуем рассмотреть виновника торжества — оптическое волокно.

В статье попробую написать просто о оптических волокнах, без математических выкладок и с простыми человеческими объяснениями.

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

Читать дальше →

Основы Fibre Channel

Reading time11 min
Views185K
Продолжаю вещать на тему прояснения основных представлений об FC SAN. В комментариях к первому посту меня попрекнули тем, что копнул недостаточно глубоко. В частности — мало сказал о непосредственно FC и ничего о BB credits, IP и multipathing. Multipathing и IP — темы для отдельных публикаций, а про FC, пожалуй, продолжу. Или начну, как посмотреть.

Для начала, небольшое терминологическое отступление (навеянное опять же комментарием к предыдущему посту).

Fibre or Fiber?: Изначально технология Fibre Channel предполагала поддержку только волоконно-оптических линий (fiber optic). Однако, когда добавилась поддержка меди, было принято решение название в принципе сохранить, но для отсылки на стандарт использовать британское слово Fibre. Американское Fiber сохраняется преимущественно для отсылки на оптоволокно.
Оригинал
Fibre Channel was originally designed to support fiber optic cabling only. When copper support was added, the committee decided to keep the name in principle, but to use the UK English spelling (Fibre) when referring to the standard. The US English spelling (Fiber) is retained when referring generically to fiber optics and cabling.
IBM Redbook «Introduction to SAN and System Networking»

Начало


По аналогии с сетевой моделью OSI, Fibre Channel состоит из пяти уровней. Каждый уровень обеспечивает определённый набор функций.


Читать дальше →

Полупроводниковая электроника

Reading time30 min
Views385K


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



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





Иллюстраций: 34, символов: 51 609.



Читать дальше →

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 1

Reading time9 min
Views31K
Часть 2
Часть 3
Часть 4

Учитывая, возросший интерес сообщества к Asterisk решил внести и свою лепту и рассказать о построении голосовых меню с использованием синтеза и распознавания речи.

Статья рассчитана на специалистов, имеющих опыт работы с построением IVR в Asterisk и имеющих представление о системах голосового самообслуживания.

СГС (системы голосового самообслуживания) значительно расширяют возможности по созданию голосовых приложений и позволяют пользователю получать информацию и заказывать услуги самостоятельно, без участия оператора. Это может быть маршрутизация вызовов, запрос и выдача информации по расписанию авиарейсов, состояние банковского счета, заказ такси, запись на прием к врачу и пр.
Распознавание позволяет отказаться от линейных меню, создаваемых с помощью DTMF, разговаривать с системой человеческим языком и легко создавать меню с множественным выбором.
Синтез значительно упрощает работу с динамически меняющейся информацией и большими объемами текстовых данных.


Читать дальше →

Безлимитное распознавание речи. Или как я перевожу в боте голосовые сообщения в текст

Reading time5 min
Views47K
Привет, Хабр. Обычно я пишу программы для неговорящих людей, но решил удариться в крайности и сделать продукт для говорящих людей. Я хочу рассказать о разработке бота для VK, который переводит пересланные ему голосовые сообщения в текст. Сначала я использовал Yandex SpeechKit, но потом уперся в дневной лимит распознаваемых единиц и перешел на wit.ai, об этом и хочу рассказать, а также о фреймворке для создания ботов vk с помощью node.js, болтовне гугловского dialogflow.

Обложка статьи на которой показан скришот сайта wit.ai
Читать дальше →

Новогодние подарки, часть вторая: Spectre

Reading time11 min
Views73K
Часть первая: Meltdown.

Несмотря на всю мощь уязвимости Meltdown, принесённое этим Новым годом счастье не было бы полным, если бы не вторая часть открытия, не ограничивающаяся процессорами Intel — Spectre.

Если говорить очень-очень коротко, то Spectre — принципиально схожая с Meltdown уязвимость процессоров в том смысле, что она тоже представляет собой аппаратную особенность и эксплуатирует непрямые каналы утечки данных. Spectre сложнее в практической реализации, но зато она не ограничивается процессорами Intel, а распространяется — хоть и с нюансами — на все современные процессоры, имеющие кэш и механизм предсказания переходов. То есть, на все современные процессоры.

Строго говоря, Spectre не является одной уязвимостью — уже на старте заявлены два различных механизма (CVE-2017-5753 и CVE-2017-5715), а авторы отмечают, что может быть ещё и много менее очевидных вариантов.

В основе своей Spectre похожа на Meltdown, так как также базируется на том факте, что в ходе спекулятивного выполнения кода процессор может выполнить инструкции, которые он не стал бы выполнять при условии строго последовательного (неспекулятивного) вычисления, и, хотя в дальнейшем результат их выполнения отбрасывается, его отпечаток остаётся в процессорном кэше и может быть использован.
Читать дальше →

Новогодние подарки, часть первая: Meltdown

Reading time13 min
Views104K
Да, я знаю, что это уже третий материал на GT/HH по данной проблеме.

Однако, к сожалению, до сих пор я не встречал хорошего русскоязычного материала — да в общем и с англоязычными, чего уж тут греха таить, та же проблема, там тоже многих журналистов изнасиловали учёные — в котором внятно раскладывалось бы по полочкам, что именно произошло 3 января 2018 года, и как мы будем с этим жить дальше.

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

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

К счастью, подвержены они ей в разной степени. К несчастью, самый серьёзный удар пришёлся на самые распространённые процессоры — Intel, причём затронул он абсолютно все выпускающиеся и практически все эксплуатируемые (единственным исключением являются старые Atom, выпущенные до 2013 года) процессоры этой компании.
Читать дальше →

Как я парсил Хабр, часть 1: тренды

Reading time6 min
Views23K

Когда был доеден новогодний оливье, мне стало нечего делать, и я решил скачать себе на компьютер все статьи с Хабрахабра (и смежных платформ) и поисследовать.


Получилось несколько интересных сюжетов. Первый из них — это развитие формата и тематики статей за 12 лет существования сайта. Например, достаточно показательна динамика некоторых тем. Продолжение — под катом.


Читать дальше →

Как дешево напечатать книгу в Linux

Reading time3 min
Views26K
Думаю, почти каждый сталкивался с проблемой печати больших pdf файлов. Недавно и мне пришлось напечатать мануал в 600 страниц. Так как документ целиком состоит из текста не очень то хотелось печатать все 300 листов а4. В поисках решения наткнулся на статью от rapkasta.

Вот так я и набрел на замечательный пакет psutils, вот только способ брошюрирования меня не обрадовал. Слишком много работы. А мне ленивому хочется автоматики, вдруг в дальнейшем пригодится.
Читать дальше →

Нехватка оперативной памяти в Linux на рабочем ПК: оптимизация и действия при зависании

Reading time5 min
Views90K
На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

System Administration, Database Administrator
Lead
From 350,000 ₽
Oracle DBA
Oracle administration
Linux administration