Pull to refresh
22
1.5
Send message

Красота замыканий

Reading time14 min
Views24K

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

Большинство статей о замыканиях написаны с точки зрения функциональных языков, поскольку именно они, как правило, могут похвастаться лучшей поддержкой замыканий. Однако именно поэтому я счел полезным написать статью о том, как они проявляются в более традиционных объектно-ориентированных языках. Скорее всего, если вы пишете на функциональном языке, вы уже знаете о них все, что вам нужно. В этой статье речь пойдет о C# (версии 1, 2 и 3) и Java (до версии 7).

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments44

Ускоряем программу для 50-летнего процессора на 180000%

Level of difficultyHard
Reading time36 min
Views45K

В прошлом году я написал программу, вычисляющую 255 цифр числа π на самом первом микропроцессоре от Intel - 4004. В той статье я упоминал рекорд ENIAC'a - 2035 цифр [^1], но побить его не смог. Настало время закрыть гештальт. В этот раз возьмём одного из преемников от Intel - 4040.

Читать далее
Total votes 289: ↑287 and ↓2+285
Comments41

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Level of difficultyEasy
Reading time8 min
Views11K

В последние лет 5 стали популярны «бумер-шутеры». Шутливое название по мотивам мемов про так называемых бумеров и зумеров относит нас к олдскульным шутерам от первого лица. И хоть жанр на пике популярности, а отдельные его представители крайне восхваляются игроками и прессой, у меня есть альтернативное мнение насчёт таких игр: не все они так хороши, как о них говорят.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments29

Оцифровка звука FPGA платой MCY316

Level of difficultyMedium
Reading time6 min
Views2.7K
image

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

В этой статье я расскажу о захвате звукового сигнала платой FPGA MCY316. Захват сигнала это только первый этап перед обработкой. Получим сигнал и передадим эти данные в ПК. Если всё получится, то в следующих работах добавим в ПЛИС цифровой фильтр
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments6

Assembler для Windows в Visual Studio

Reading time12 min
Views22K

В этой статье я покажу как написать приложение для windows на ассемблере. В качестве IDE будет привычная многим Visual Studio 2019 со своими привычными плюшками - подсветка кода, отладка и привычный просмотр локальных переменных и регистров. Собирать приложение будет MASM, а значит, у нас будут и масмовские плюшки. Это будет полноценное оконное приложение с меню, иконкой, отрисовкой, выводом текста и обработкой мыши с клавиатурой.

Читать далее
Total votes 74: ↑74 and ↓0+74
Comments86

Простой комплект для изучения сантиметровых радиоволн (СВЧ)

Level of difficultyEasy
Reading time6 min
Views14K

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

Читать далее
Total votes 125: ↑124 and ↓1+123
Comments21

Миссия выполнима: УКВ ЧМ супергетеродин на дискретных компонентах

Level of difficultyMedium
Reading time11 min
Views8.4K


Давным-давно, когда деревья были зелеными и высокими, радиоприёмники собирали не на интегральных микросхемах, а на дискретных, то есть отдельных транзисторах. Такие решения занимают больше места и потребляют больше энергии, зато очень наглядны для понимания принципов работы.

И если средневолновый транзисторный супергетеродин — вещь обычная, которую многие из нас помнят с детства, а некоторые даже собирали своими руками, то ультракоротковолновые, они же FM-радиоприёмники, чаще строили и продолжают строить на микросхемах. (Если не считать ламповых и транзисторных радиол и многодиапазонных приёмников с УКВ модулем).

Такой УКВ супергетеродин я сегодня соберу. Без микросхем, на 12 транзисторах, 6 из которых задействованы в радиотракте, и ещё 6 в усилителе звуковой частоты. А ещё поговорим о структуре сигнала ЧМ радиостанции и способах его детектирования.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments18

Высокодоступные кластеры PostgreSQL с Patroni: Ваша очередь протестировать сценарии отказов

Level of difficultyEasy
Reading time15 min
Views11K

Пару недель назад (перевод статьи от 2021 г.) мы с Джобином (Jobin) сделали небольшую презентацию в рамках Percona Live Online с названием, подобным теме этой статьи: "PostgreSQL HA с Patroni: Сценарии отказов и способы восстановления кластера после них". Мы развернули 3-узловую среду PostgreSQL на имеющемся у нас оборудовании и решили "ломать" ее различными способами: отключали от интернета и электропитания кабели, “убивали” основные процессы, пытаясь насытить процессоры. Всё это происходило при постоянной записи и чтении данных из PostgreSQL. Идея заключалась в том, чтобы посмотреть, как Patroni справится с отказами и будет управлять кластером, продолжая обеспечивать работу. Это была интересная демонстрация!

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments7

6-шаговая коммутация BLDC моторов

Level of difficultyMedium
Reading time19 min
Views15K

В нашем проекте контроллера сервоприводов применяется чип семейства Renesas Synergy S5D9. Чип содержит периферийный блок специально предназначенный для 6-шагового управления. Попробую показать как этот блок применить для управления BLDC мотором и какие грабли разложены на пути.

Читать далее
Total votes 28: ↑27 and ↓1+26
Comments20

А давайте добывать электричество из соли? А давайте: самодельный пьезокристалл

Reading time7 min
Views12K
Картинка Freepik

В нашей жизни достаточно широко используются элементы на базе пьезоэлектрического эффекта. Без них невозможно представить себе современные мобильные телефоны (микрофоны и динамики), разнообразные тензодатчики (датчики давления) и даже генераторы электричества (например, в зажигалках). Мы же, в свою очередь, зададимся таким странным вопросом: а реально ли создать подобный пьезоэлемент самостоятельно?
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments9

Межкластерная репликация Apache Kafka между тремя дата-центрами

Reading time10 min
Views15K

Я Роман Ананьев, NoSQL/Kafka-инженер в Авито. В этом материале расскажу, как мы попробовали использовать брокер сообщений Apache Kafka в трёх дата-центрах и что из этого получилось.

Сначала пробегусь по архитектуре Kafka, потому что она играет роль в репликации между кластерами. Затем коснусь самих способов репликации и расскажу о двух инструментах для неё: MirrorMaker и uReplicator. Основная часть статьи — про нашу реализацию Kafka cluster federation и то, как Kafka размазана на несколько дата-центров.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments7

Расчет импульсного трансформатора для двухтактного преобразователя и согласующих устройств

Reading time12 min
Views36K

Несколько лет назад мне потребовалось рассчитать импульсный трансформатор для УЗИ сварочной установки. В инженерном ремесле всегда бывает избыток вопросов и недостаток готовых рецептов. Поэтому пришлось немного поработать и написать этот реферат.

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments7

Псориаз: что бывает при слишком быстрой регенерации

Reading time6 min
Views23K

При псориазе страдает верхний слой — эпидермис. Именно в этой зоне формируются патологические элементы в виде папул и гиперкератотических бляшек.

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

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

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

Disclaimer: часть фото я положу под спойлер, если вдруг кого-то такое может тревожить.
Читать дальше →
Total votes 71: ↑61 and ↓10+51
Comments40

Железа и баек ностальгии пост

Reading time8 min
Views34K
Ходил я тут как-то по нашему складу, искал одну железку для заказчика. Смотрю, знакомая старая железяка — кэш.

image
Точнее, это ячейка хайэндового дискового массива, представляющая нечто вроде оперативной памяти, но в центре архитектуры Симметрикса

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

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

Подстава заключалась только в том, что при втыкании диска в слот горячей замены массив не ворчал на него, а говорил: «О, новый жёсткий диск» и молча его форматировал, и начинал в него что-то писать.

Всего заказчик успел попробовать около 20 рекомбинаций из 200 дисков, из которых девять пришлось на установку новых дисков с данными в слоты горячей замены.
Читать дальше →
Total votes 185: ↑185 and ↓0+185
Comments89

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views452K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments38

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views25K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее
Total votes 40: ↑40 and ↓0+40
Comments5

Читаем статьи с Хабра с помощью Slack-бота

Reading time6 min
Views2.9K

Привет, Хабр! Сегодня расскажу, как на хакатоне для студентов SkillFactory я сделал Slack-бота, который оповещает студентов разных курсов о выходе статей на Хабре по интересующей их тематике. На КДПВ вы видите тестирование внедрённого бота; ссылку на его код вы найдёте в конце статьи.

Читать далее
Total votes 19: ↑16 and ↓3+13
Comments3

Энергонезависимое решение

Reading time10 min
Views121K


Понедельник. Постановка задачи


Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
Читать дальше →
Total votes 371: ↑359 and ↓12+347
Comments149

DBA: прибираем «мертвые души»

Reading time4 min
Views11K

Иногда при выполнении длительных или плохо написанных запросов в PostgreSQL происходят разные неприятные вещи типа внезапного сбоя процесса или краша всего сервера.

В таких случаях на носителе могут остаться "мертвые души" - файлы (иногда совсем немаленькие, а вполне сравнимые по объему со всей остальной базой), которые были созданы во время работы процесса в качестве временного хранилища промежуточных данных.

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

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments3

Самодельный ламповый стереофонический усилитель из доступных деталей

Reading time28 min
Views98K

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

Читать далее
Total votes 62: ↑62 and ↓0+62
Comments73

Information

Rating
1,176-th
Registered
Activity