Pull to refresh
0
0
Владимир @kBaHt

User

Send message

Внутри материнской платы: анализ технологий, лежащих в основе компонентов ПК

Reading time15 min
Views52K

Сейчас уже едва ли не у каждого дома, на работе или на учебе есть свой настольный ПК. Кто-то использует его для составления налоговых деклараций, кто-то для гейминга, а кто-то и сам собирает компьютеры. Но насколько хорошо вы знакомы с компонентами, что находятся внутри ПК? Возьмем, к примеру, скромную материнскую плату: она ​​сидит себе там, внутри, тихо поддерживает все в рабочем состоянии и редко получает столько же внимания, как, скажем, процессор или видеокарта.

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

Читать далее
Total votes 29: ↑28 and ↓1+32
Comments22

Программист учится рисовать. Дневник Емели

Reading time16 min
Views35K
Так получилось, что моим основным хобби на лихой 2020-й год стало освоение ремесла рисования.

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

spoiler
В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

image
Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
Читать дальше →
Total votes 105: ↑104 and ↓1+142
Comments123

Да ты гонишь! Почему на одних конфигурациях оперативка разгоняется выше, чем на других

Reading time10 min
Views34K


Разгон памяти, дело добровольное. Как понять, от чего зависит разгон памяти, какие есть тонкости в подборе комплектующих и как «прогнать» память, чтобы было за нее не стыдно!
Изучение, анализ и подбор – три составляющих успеха в разгоне памяти. Чтобы начать разгонять память без погружения в пучины технических знаний, необязательно быть специалистом. Половина успеха зависит от платформы, вторая часть – это правильный выбор ранговости, количество модулей и частот памяти Kingston и HyperX.
Total votes 25: ↑25 and ↓0+25
Comments38

В чём состоит задача фолдинга белков? Краткое пояснение

Reading time5 min
Views6.1K

Белок бактерии Staphylococcus aureus

В конце ноября команда Google DeepMind объявила о том, что её система глубокого обучения AlphaFold достигла небывалых уровней точности в решении задачи фолдинга белков – трудной проблемы из области вычислительной биохимии.

В чём состоит эта проблема и почему её так трудно решить?

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

Часть цепочки может свернуться в плотную спираль, "α-спираль". Другая часть может согнуться туда и обратно, сформировав широкую плоскую фигуру, "β-лист":
Читать дальше →
Total votes 16: ↑15 and ↓1+19
Comments5

Почему Вселенная левосторонняя?

Reading time8 min
Views25K


В нашей Вселенной отражение левой руки кажется правой рукой. Большая часть законов природы симметрична относительно зеркальных отражений и подчиняется тем же самым законам – за исключением слабого взаимодействия. По какой-то причине слабо взаимодействуют только левосторонние частицы, но не правосторонние.

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

Но почему? Откуда у Вселенной такое качество, и почему оно проявляется только в случае слабого взаимодействия? Ведь сильное, электромагнитное и гравитационное взаимодействия идеально симметричны относительно левосторонних и правосторонних конфигураций. Этот факт в науке был проверен на множестве опытов, а для ещё более глубокой его проверки уже готовятся новые эксперименты. И хотя он хорошо описывается физикой Стандартной модели, никто не знает, почему Вселенная так устроена. Вот, что нам пока известно.
Читать дальше →
Total votes 28: ↑27 and ↓1+37
Comments72

Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

Reading time70 min
Views382K
В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


Неожиданное открытие


За прошедшие несколько веков произошел настоящий прорыв в наших знаниях о принципах работы окружающего нас мира. Но несмотря на это, у нас все еще нет фундаментальной теории физики, и мы все так же не имеем ответа на вопрос о том, как именно работает наша Вселенная. Я занимаюсь этой темой уже порядка 50-и лет, но только в последние несколько месяцев все кусочки пазла наконец-то начали складываться вместе. И получающаяся картина оказалась гораздо прекрасней, чем все, что я только мог себе представить.
Читать дальше →
Total votes 243: ↑238 and ↓5+307
Comments459

Spring transaction management. Isolation and propagation

Reading time3 min
Views27K

Introduction


In my opinion transaction management is a really important topic for each backend developer. In general, people don’t pay attention to it while using Spring framework.


But I think, it is important to know how to use transactions properly. Because sometimes can happen that there was an exception thrown inside your method, but transaction was not rolled back and it is not clear why? Or some other “strange” cases.

Read more →
Total votes 6: ↑6 and ↓0+6
Comments0

Что такое тензорные ядра: вычисления со смешанной точностью

Reading time10 min
Views67K
image

В течение последних трёх лет Nvidia создавала графические чипы, в которых помимо обычных ядер, используемых для шейдеров, устанавливались дополнительные. Эти ядра, называемые тензорными, уже есть в тысячах настольных PC, ноутбуков, рабочих станций и дата-центров по всему миру. Но что же они делают и для чего применяются? Нужны ли они вообще в графических картах?

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

Краткий урок математики


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

Иногда эти числа необходимо группировать, потому что они обладают определённым значением друг для друга. Например, когда чип обрабатывает данные для рендеринга графики, он может иметь дело с отдельными целочисленными значениями (допустим, +2 или +115) в качестве коэффициента масштабирования или с группой чисел с плавающей точкой (+0.1, -0.5, +0.6) в качестве координат точки в 3D-пространстве. Во втором случае для позиции точки требуются все три элемента данных.

Тензор — это математический объект, описывающий соотношения между другими математическими объектами, связанными друг с другом. Обычно они отображаются в виде массива чисел, размерность которого показана ниже.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments26

Project Panama: как сделать Java «ближе к железу»?

Reading time28 min
Views13K
В феврале в нашей новосибирской Точке кипения прошел тринадцатый митап JUGNsk, где Владимир Иванов, ведущий инженер Oracle из группы разработки виртуальной Java-машины HotSpot, рассказал, что сейчас приходит на смену JNI при взаимодействии Java-кода с native-кодом. Читайте далее о FFI (Foreign Function Interface), jextract, Memory Access API и Foreign ABI (Application Binary Interface).



Статья подготовлена по мотивам доклада, видеозапись которого с сессией вопросов-ответов можно найти тут. Это не просто расшифровка, а доработанная самим Владимиром версия исходного материала.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments1

10 советов схемотехнику

Reading time20 min
Views119K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Total votes 158: ↑156 and ↓2+208
Comments245

Принципы SOLID в картинках

Reading time4 min
Views449K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

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

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

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

Ну, приступим.
Читать дальше →
Total votes 57: ↑52 and ↓5+54
Comments26

Варим байткод на кухне JVM

Reading time8 min
Views15K
Меня зовут Александр Коцюруба, я руковожу разработкой внутренних сервисов в компании ДомКлик. Многим разработчикам, пишущим на Java, с опытом приходит понимание внутреннего устройства JVM. Чтобы облегчить этот путь Java-самурая, я решил простым языком изложить основы виртуальной машины Java (JVM) и работы с байткодом.

Что такое таинственный байткод и где он обитает?

Постараюсь ответить на этот вопрос на примере приготовления солений.


Читать дальше →
Total votes 33: ↑30 and ↓3+33
Comments0

Современные архитектуры фронт-энда (часть 2)

Reading time8 min
Views15K
image

Вторая часть статьи "Contemporary Front-end Architectures", в которой рассмотрены архитектуры фронт-энда с точки зрения распределения потоков данных. Начало здесь
Читать дальше →
Total votes 10: ↑8 and ↓2+8
Comments1

Артикли в английском: безжалостная война правил и исключений

Reading time21 min
Views70K


В русском языке есть такие сложные грамматические понятия как род и падеж существительных. Даже нам, носителям языка, порой бывает сложно. А что уже говорить об иностранцах, изучающих русский?

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

Нет смысла писать ещё одну статью о базовых правилах употребления артиклей в английском. Сегодня я расскажу о правилах и о способах их нарушить.
Читать дальше →
Total votes 34: ↑32 and ↓2+38
Comments69

Книга «Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin's Creed и дальше»

Reading time10 min
Views7.5K
image Привет, Хаброжители! Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн — это симулятор мечты, набор правил, благодаря которым игра оживает.

Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира!

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

Тайнан Сильвестр занимается геймдизайном больше 15 лет. За это время он успел поработать как над инди-проектами, так и над студийным блокбастером BioShock Infinite, но больше всего он известен благодаря RimWorld.
Читать дальше →
Total votes 12: ↑11 and ↓1+14
Comments6

Разработка белков в облаке с помощью Python и Transcriptic или Как создать любой белок за $360

Reading time57 min
Views15K
Что, если у вас идея для классного, полезного белка, и вы хотите получить его в реальности? Например, хотите создать вакцину против H. pylori (как словенская команда на iGEM 2008), создав гибридный белок, который сочетает фрагменты флагеллина E. coli, стимулирующие иммунный ответ с обычным флагеллином H. pylori?

Дизайн гибридного флагеллина вакцины против H. pylori, представленный командой Словении на iGEM 2008

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

В этой статье я покажу код Python от идеи белка до его экспрессии в бактериальной клетке, не прикасаясь к пипетке и не разговаривая ни с одним человеком. Общая стоимость составит всего несколько сотен долларов! Используя терминологию Виджая Панде из A16Z, это Биология 2.0.
Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments20

Эволюция переключения контекста x86 в Linux

Reading time43 min
Views26K


В прошлые выходные, изучая интересные факты об аппаратном переключателе контекста 80386, я вдруг вспомнил, что первые версии ядра Linux полагались именно на него. И я погрузился в код, который не видел уже много лет. Сейчас я решил описать это чудесное путешествие по истории Linux. Я покажу все самородки и забавные артефакты, которые нашёл по пути.

Задача: проследить, как изменялось переключение контекста в ядре Linux от первой (0.01) до последней версии LTS (4.14.67), с особым акцентом на первую и последнюю версии.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments9

Как не мусорить в Java

Reading time10 min
Views23K

Существует популярное заблуждение о том, что если не нравится garbage collection, то надо писать не на Java, а на C/C++. Последние три года я занимался написанием low latency кода на Java для торговли валютой, и мне приходилось всячески избегать создания лишних объектов. В итоге я сформулировал для себя несколько простых правил, как свести аллокации в Java если не до нуля, то до некого разумного минимума, не прибегая к ручному управлению памятью. Возможно, кому-то из сообщества это тоже будет полезно.

Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments61

Моки, стабы и шпионы в Spock Framework

Reading time7 min
Views24K

Spock предоставляет 3 мощных (но разных по сути) инструмента, упрощающих написание тестов: Mock, Stub и Spy.



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


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


Такие изолированные тесты менее подвержены проблемам при изменении внутренних деталей реализации зависимостей.


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

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

Пишем свой язык программирования, часть 3: Архитектура транслятора. Разбор языковых структур и математических выражений

Reading time6 min
Views12K
image

Введение


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

Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи:

Часть 1: пишем языковую ВМ
Часть 2: промежуточное представление программ

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

Также мне стоит разместить сразу ссылку на статью о проекте, который был написан мной ранее и на основе которого идет весь этот разбор полётов: Клац сюды. С ним пожалуй стоит ознакомиться первым делом.

И немного о проекте:

Небольшой сайт проекта
GitHub репозиторий

Ну и также скажу сразу, что все написано на Object Pascal, а именно — на FPC.

Итак, начнем.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments22
1

Information

Rating
Does not participate
Location
Якутск, Саха (Якутия), Россия
Date of birth
Registered
Activity