Как стать автором
Обновить
335
25.3
Юрий Панчул / Yuri Panchul @YuriPanchul

Проектировщик CPU, GPU, сетевых микросхем

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

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Как установить GOWIN EDA для запуска примеров Школы Синтеза

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

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

Чтобы справиться с данной проблемой, группа энтузиастов, под руководством Юрия Панчула, добавила поддержку множества плат и нескольких toolchain’ов от различных производителей FPGA.

В данном туториале, посвященном работе с FPGA от компании Gowin, я расскажу про то, как установить GOWIN EDA, о доступных платах и перефирии к ним и про работу со скриптами сборки примеров.

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

Почему B-деревья быстрые?

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

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

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее
Всего голосов 185: ↑184 и ↓1+183
Комментарии13

Не спеши, Маша! Разбор примеров из книги Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера

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

И вот, скачав бесплатную версию книги, я в который раз убедился, что как оно было этак 40-50 лет тому назад, так оно фактически и осталось. Но больше убило другое. В научном плане стало даже хуже. Теорию, судя по содержанию книги, нынче пролетают "по диагонали", что влечет за собой элементарные ошибки, характерные больше для студентов техникума, чем "вышки", на которых, судя по рекламе, эта книга рассчитана.

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

Итак, начнем...

Читать далее
Всего голосов 48: ↑45 и ↓3+42
Комментарии106

Алгоритмы не важны

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

Прошу простить заранее за несколько кликбейтный заголовок )

Не так давно писал в соцсетях хейт‑пост по поводу «алгоритмических секций» при приёме на работу в Яндекс.

Да и многие другие софтверные компании это практикуют и считают навыки написания алгоритмов — чуть ли не самым важным навыком для программистов.

И ставят данной компетенции очень высокий приоритет при приёме на работу.

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

Читать далее
Всего голосов 167: ↑133 и ↓34+99
Комментарии370

Алгоритмические собеседования нужны

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

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

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

Я утверждаю, что алгоритмические интервью - лучший вариант для ФААНГа из всех пока придуманных.

Читать далее
Всего голосов 77: ↑53 и ↓24+29
Комментарии147

Парсим строки с SMT-решателем

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

Этот пост о том, как можно решить задачу разбора строки по контектстно-свободной грамматике с помощью SMT-решателя. Здесь будет введение в тему, описание принципов работы и ссылка на github с работающей программой.

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

Делай нейминг как сеньор

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

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

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

Читать далее
Всего голосов 186: ↑184 и ↓2+182
Комментарии221

Made at Intel. Пировали, веселились…

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

Всем привет.

Хочу сообщить тем, кто волновался за мою судьбу после опуса о последних днях Интела в России на прошлой неделе, что у меня все хорошо. Я жив‑здоров и работаю все там же 😊. Про опус, однако, сказать того же не могу. Людям он неплохо зашел, а вот менеджмент (на обеих сторонах был не в восторге). Так что найти его теперь можно только у меня в телеге. Ну а я возвращаюсь к более ранним дням истории Интел в России. И речь у нас сегодня пойдет о нехитрых развлечениях командировочных.

Случай в «Главпивторге»

В июне 2010го приезжал в Россию ХрИстос Георгиопулос, Vice President of Developer Relations Division, к которой я тогда относился. Он был начальником моего начальника Пареша Паттани. Надо сказать, что мы тогда очень неплохо ладили и это наверно были мои самые счастливые времена в Интел. Христос был этническим греком, вполне православным и даже немного понимающим по‑русски. «Зовите меня просто ХристОс» — говорил он по‑нашему, чем приводил окружающую публику в неописуемый восторг. Так вот 13го июня случился у меня День Рождения. И я повел Христоса, Пареша и еще пару местных коллег в ресторан «Главпивторг» на Лубянке. В то время он мне очень нравился. Сидели — ели, выпивали и праздновали мои 34 (господи, как давно это было). Ну и в конце действа я привычно полез за карточкой чтобы расплатиться. И тут Христос в шутку шлепнул меня по рукам и сказал, что платить должен он, потому что он здесь старший. Я возразил, что не собираюсь вешать ужин на контору, расплачусь сам, потому что это мой день рождения и я сам всех сюда позвал. «Да ладно» — подмигнул Христос, — «Mother Intel заплатит. Все равно мы подарок тебе купить забыли». Так я усвоил, что за столом расплачивается старший по должности. И в принципе, это — правильно, потому что исключает всякие соблазны и лихоимства, когда подчиненный платит за начальника, а тот ему это одобряет. Но иногда случались в жизни исключения из этого правила.

Читать далее
Всего голосов 166: ↑151 и ↓15+136
Комментарии34

Made at Intel. «Советские газеты»

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

Я никак не могу допилить главу про покупки Интелом других компаний. :(  В последние недели, то вдохновения не хватает, то сил, то настроения, а то банально времени. Но книжка сама себя не напишет, а значит надо предпринимать какие-то усилия. Поэтому сегодня вашему вниманию предлагается коротенький опус, который позволит аффтару “размять руку”, а вам узнать кое-что из жизни больших корпораций.

— Никогда не читайте советских газет перед едой,- советовал профессор Преображенский.

— Так ведь других нет, Филипп Филиппович, - возражали ему.

— Тогда никаких не читайте.

Герою “Cобачьего сердца” вторил мой коллега Jim Curley (Кудрявый Джимми). “Никогда не читайте советских газет. Ни правды - в “Известиях”, ни известий - в “Правде”. Причем говорил он все это на чистом русском языке. Все-таки в советские времена учили в школах неплохо. Даже если это были американские разведшколы.

 Я, однако, сегодня о том, что корпоративные новости в сущности мало чем отличаются от советских газет. В бытность свою в Интел я дополнил булгаковский афоризм таким образом: "никогда не читайте корпоративных газет. А если читаете - сразу переходите в колонку некрологов. Только там вы, возможно, найдёте немного правды".  Organizational announcements в Интел - это настоящая кладезь информации. Как человек, который 20 лет внимательно читал "корпоративные некрологи" могу сказать, что там важно все  - кто, куда, когда, почему... Мало того, важно каким тоном написано и даже какими словами. Общих правил, в принципе нет. Но статистика говорит, что есть вероятностные законы.

Читать далее
Всего голосов 94: ↑91 и ↓3+88
Комментарии20

Что есть ЮАР прямо сейчас

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

Если долго, долго, долго,
Если долго по тропинке,
Если долго по дорожке
Топать, ехать и бежать,

То пожалуй, то конечно,
То наверно, верно, верно,
То возможно можно, можно,
Можно в Африку прийти!

Очень интересен тот факт, что я не вижу никаких свежих описаний ЮАР на Хабре. А зря. Возможно вам будет интересно это место. В нём есть множество недостатков, но наличествует множество достоинств. Возможно вам приглянется. За подробностями прошу под кат.

Под кат - это вот сюда вот.
Всего голосов 160: ↑153 и ↓7+146
Комментарии272

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Всего голосов 114: ↑107 и ↓7+100
Комментарии83

FPGA для программиста, конечные автоматы (verilog)

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

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


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

Например, очень популярной является работа: Clifford E. Cummings, The Fundamentals of Efficient Synthesizable Finite State Machine Design using NC-Verilog and BuildGates. Всякий раз, когда специалисты решают обсудить, как правильно писать конечные автоматы, кто-то обязательно достает эту публикацию.

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

В беседах с коллегами я понял, что споры о том, как надо писать конечные автоматы в 1 или 2, 3 always блока, связаны с разным представлением (осознанием) реализуемого алгоритма, разным типом мышления. Попробую показать это на примере.

Я полагаю, что эта статья не первая статья о FSM и Verilog в вашей жизни, поэтому я не буду объяснять ни что такое конечный автомат, ни как он описывается на Verilog, а перейду сразу к делу.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии27

Неизвестный UART: теория

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

Можно с уверенностью сказать, что с момента публикации первой версии стандарта RS‑232 в мае 1960 года и по настоящее время, было написано приблизительно 109 независимых реализаций UART на всём, чём угодно. Однако, подобно «Hello world» в мире прикладного ПО, а также мигания светодиодом — «Hello world» в мире цифровой электроники (сигнализирующий об успешной настройке оборудования и среды разработки) — процесс написания UART способен проиллюстрировать особенности языка или платформы, демонстрируя применение тех или иных синтаксических конструкций для решения практических, насущных и понятных проблем.

В данном цикле статей будет рассказано про написание модуля UART на SystemVerilog, про синтез данного модуля на различных платформах и про некоторые другие аспекты применения UART в ПЛИС. Но прежде, чем писать код, поговорим про сам протокол и про особенности аппаратной части вне контекста ПЛИС.

СТАРТ_БИТ
Всего голосов 91: ↑91 и ↓0+91
Комментарии33

Раскрываем секреты загрузочных ISO-образов

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


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Всего голосов 193: ↑193 и ↓0+193
Комментарии73

Dozen tricks with Linux shell which could save your time

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


  • First of all, you can read this article in russian here.

One evening, I was reading Mastering regular expressions by Jeffrey Friedl , I realized that even if you have all the documentation and a lot of experience, there could be a lot of tricks developed by different people and imprisoned for themselves. All people are different. And techniques that are obvious for certain people may not be obvious to others and look like some kind of weird magic to third person. By the way, I already described several such moments here (in russian) .

For the administrator or the user the command line is not only a tool that can do everything, but also a highly customized tool that could be develops forever. Recently there was a translated article about some useful tricks in CLI. But I feel that the translator do not have enough experience with CLI and didn't follow the tricks described, so many important things could be missed or misunderstood.

Under the cut — a dozen tricks in Linux shell from my personal experience.
Read more →
Всего голосов 16: ↑14 и ↓2+12
Комментарии0

Отладка интерфейса I2S

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

В этом тексте я написал про особенности интерфейса I2S и про то как можно тестировать и отлаживать интерфейс I2S.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии4

Знакомимся с OpenGL

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

OpenGL


Знакомство с OpenGL нужно начать с того, что OpenGL — это спецификация. Т.е. OpenGL лишь определяет набор обязательных возможностей. Реализация же зависит от конкретной платформы.
OpenGL является кроссплатформенным, независимым от языка программирования API для работы с графикой. OpenGL — низкоуровневый API, поэтому для работы с ним неплохо иметь некоторое представление о графике в целом и знать основы линейной алгебры.
Читать дальше →
Всего голосов 96: ↑81 и ↓15+66
Комментарии47

Задача про пьяницу

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

В книге «Пятьдесят занимательных вероятностных задач с решениями - Ф. Мостеллер» есть интересная задача про пьяницу, который с вероятностью p делает один шаг к обрыву и с вероятностью 1-p один шаг от обрыва. Пьяница стоит на расстоянии одного шага от обрыва. Что можно сказать про вероятность того, что он упадет?

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

River Raid на FPGA

Время на прочтение4 мин
Количество просмотров15K
Еще не делали River Raid на FPGA? Ок, тогда я сделаю.


Совсем недавно FPGA для меня был черным ящиком, а Verilog казался вообще магией — ну как можно написать программу, по которой построится схема на логических элементах? Изучить это я планировал давно, но без реальной железки даже не хотел начинать.
Всего голосов 51: ↑51 и ↓0+51
Комментарии34

Информация

В рейтинге
231-й
Откуда
Sunnyvale, California, США
Дата рождения
Зарегистрирован
Активность