Pull to refresh
4
0

Пользователь

Send message

Минисериал: троичный компьютер своими руками

Reading time7 min
Views34K

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


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


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

Программирование троичного вычислителя: играем с эмулятором

Reading time6 min
Views9.9K

Как я и говорил, я потихоньку строю очень простой, но функциональный и при этом бескомпромиссно троичный вычислитель, основанный на сбалансированной троичной системе счисления. В этой статье я описываю эмулятор моего вычислителя, который мне поможет в отладке железа. Если вам интересно, не стесняйтесь писать под него программы, я их обязательно запущу на настоящем железе как только оно будет готово! Это очень просто, Триадор понимает обычный очень примитивный императивный язык, схожий с ассемблером или brainfuck :)



— Жуткий кошмар! Нули и единицы повсюду. И кажется, я видел двойку.
— Это просто сон, Бендер. Двоек не бывает.

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

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

Биоразнообразие, возможно, развивалось по принципу игры камень-ножницы-бумага

Reading time12 min
Views3.6K

Недавние открытия добавляют веса свидетельствам того, что нетранзитивная конкуренция видов обогащает разнообразие природы



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

Пионер синтетической биологии в Калифорнийском университете в Сан-Диего (UCSD) Джефф Хэйсти всю свою 20-летнюю карьеру разрабатывал стратегии, делающие возможной совместную работу генетических схем у искусственно созданных бактерий. Но несколько лет назад Хэйсти пришлось признать, что даже ему не удаётся обмануть скромную бактерию Escherichia coli.
Читать дальше →

Анатомия программы в памяти

Reading time6 min
Views88K
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Читать дальше →

Омоложение клеток человека за счет их перепрограммирования

Reading time13 min
Views8.9K


Говорят, что жизнь это один сплошной процесс старения, который неминуемо заканчивается смертью. Это может звучать не очень оптимистично, но таковы законы природы. Старение и смерть являются одними из важнейших регуляторов популяции какого-либо вида на планете, а бессмертие в биологическом смысле этого слова существует только в книгах и кино. Та же ситуация обстоит и с «вечной» молодостью. В книгах у нас есть Дориан Грей — вечно молодой и красивый юноша с сильнейшей антипатией к определенному произведению изобразительного искусства; Эдвард Каллен — вечно молодой вампир с дефицитом витамина D и повышенной отражательной способностью кожи и т.д. В реальности же вечная или хотя бы продленная молодость недостижима. По крайней мере, если в процесс не вмешиваются ученые. Сегодня мы с вами познакомимся с исследованием, в котором ученые из Стэнфордского университета смогли достичь омоложения старых клеток человека за счет определенных белков, участвующих в процессе эмбрионального развития. Какие именно вещества использовались, насколько помолодели старые клетки и насколько продолжительным был эффект? Об этом мы узнаем из доклада исследовательской группы. Поехали.

Эксперименты с микроконтроллерами в Jupyter Notebook

Reading time12 min
Views13K

Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике.


Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического представления данных. Долгое время мы просто считали на нем, используя Python и математические библиотеки (numpy, SciPy, matplot и т.д.). Но оказывается данная среда не так проста и имеет гораздо больший потенциал. Очень неожиданно, но Jupyter позволяет легко манипулировать электронными устройствами на микроконтроллерах, может служить чем-то вроде REPL среды для МК только без слабенького MicroPython и внушительной поддержкой переферии чипа, причем все это почти из коробки.


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

Собираем 8-битный компьютер: как уменьшить количество микросхем до шести

Reading time5 min
Views24K

Сочетание старого трюка с кодированием цветов в NTSC и современного железа позволяет собрать на удивление работоспособную машину

В 8-битных системах есть что-то перманентно притягательное: вы можете собрать автономную систему, достаточно мощную, чтобы поддерживать адекватное взаимодействие с пользователем, но достаточно простую, чтобы собрать и запрограммировать её самостоятельно. Большинство современных 8-битных машин, созданных любителями, завязаны на классических процессорах, которые жили в золотой век домашних компьютеров 1980-х годов, когда в качестве дисплеев использовали миллионы телевизоров. Вначале была идея собрать свою машину на базе процессора Motorola 6809 из той же эпохи. Я пытался использовать как можно меньше микросхем, но несмотря на мои старания, мне всё ещё нужно было 13 дополнительных микросхем для работы с ОЗУ и последовательной передачи данных. Тогда я задумался: а что, если я использую более современный 8-битный процессор? Насколько сильно при этом я смогу снизить количество необходимых мне микросхем?
Читать дальше →

История жанра roguelike: от Rogue до Binding of Isaac

Reading time29 min
Views26K
image

Отдадим должное игре, ставшей прародительницей целого жанра. Имя ей Rogue.

Распространённость игр Roguelike росла на протяжении всех 40 лет существования жанра, даже несмотря на то, что в нём реализованы идеи, кажущиеся «анафемой» для популярности: высокая степень случайности, ASCII-графика, перманентная смерть (permadeath), огромная сложность и многое другое. Тем не менее, сегодня шагу нельзя ступить, не наткнувшись на игру, на которую по крайней мере не повлияли roguelike.

В духе историй об игровых жанрах (мы уже рассказывали о стратегиях реального времени [перевод], градостроительных играх, шутерах от первого лица [перевод], симуляторах [перевод: первая и вторая части], графических адвенчурах [перевод], гонках на картах и играх с открытым миром [перевод]) давайте теперь начнём разбираться, как мы к этому пришли и что это всё означает. Мы совершим экскурсию по дереву эволюции roguelike, начав с самой Rogue и пройдя весь путь до современных игр с «элементами roguelike».

Но для начала нам нужно ответить на важный вопрос.

Что такое «roguelike»?


Невозможно подобрать точное определение этому термину, кроме его буквального значения («игра наподобие Rogue»). Можно сказать, что roguelike — это путешествия по рандомизированным подземельям почти без сюжета или с полным его отсутствием; игрок сражается и с самим подземельем, и с монстрами внутри, бесконечно повторяя этот процесс, чтобы освоить схемы, содержание и системы, определяющие природу игры, пока не умрёт и не начнёт заново.

Но кое-кто пытался сузить это определение. Можно взять для примера «факторы высокого значения» Берлинской интерпретации, которые были приняты на Международной конференции по разработке roguelike 2008 года (International Roguelike Development Conference 2008). (Да, ежегодно проводится конференция для разработчиков roguelike, а также ещё одна для игроков.)
Читать дальше →

30+ парсеров для сбора данных с любого сайта

Reading time10 min
Views505K
30+ парсеров для сбора данных с любого сайта

Десктопные/облачные, платные/бесплатные, для SEO, для совместных покупок, для наполнения сайтов, для сбора цен… В обилии парсеров можно утонуть.


Мы разложили все по полочкам и собрали самые толковые инструменты парсинга — чтобы вы могли быстро и просто собрать открытую информацию с любого сайта.

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

45 youtube-каналов на английском языке для ИТ-специалистов

Reading time4 min
Views25K
Хотела узнать, что смотрят коллеги (кроме нетфликсов и амедиатек), провела опрос. Результат получился неожиданный. Я думала, ну, соберу каналов 10, которые смотрят все ИТ-специалисты. Не тут-то было! Во-первых, каналов получилось в 10 раз больше, чем я предполагала. Во-вторых, 80% из них — на английском языке. В-третьих, смотрят коллеги далеко не только каналы о программировании, но и о математике, науке, космосе, истории.
Вот вам подборка из 45 интересных, по мнению коллег из EPAM, youtube-каналов на английском языке.


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

13 инструментов для обработки текста в командной оболочке

Reading time17 min
Views115K
Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git, основы SQL, инструменты вроде Make, jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

Содержание


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

КЛЕТКА VII. Анализ Генетического кода II

Reading time14 min
Views4.5K

Иллюстрация melmagazine.com (Source)

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

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

В предлагаемой работе продолжим рассмотрение только одного частного вопроса — анализа кодов сообщений.
Читать дальше →

Математики доказали универсальный закон турбулентности

Reading time9 min
Views9.6K

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




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

Физические системы с таким бессистемным движением называют турбулентными. Из-за того, что их движение имеет одновременно столько характеристик, их очень сложно изучать математически. Сменится не одно поколение математиков до тех пор, пока исследователи научатся описывать бурную речку точными математическими выражениями.

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

Разбираемся с управлением памятью в современных языках программирования

Reading time7 min
Views75K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Demystifying memory management in modern programming languages» за авторством Deepu K Sasidharan.

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

Углублённое изучение концептов управления памятью позволяет писать более эффективное ПО, потому как стиль и практики кодирования оказывают большое влияние на принципы выделения памяти для нужд программы.
Читать дальше →

Как я самостоятельно выучил новый язык за 12 месяцев: тотальный гайд

Reading time31 min
Views164K
От А0 до B2 за год

Чуть больше года назад я был полностью монолингвом, говорящем только на английском, с нулевыми познаниями во французском языке. А спустя двенадцать месяцев, я с лёгкостью сдал международный экзамен DELF B2. Если вы не знаете, что значит «В2», посмотрите шкалу CEFR.

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

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

Не могу сказать, что полностью свободно говорю, но чтобы вы лучше понимали, каких результатов удалось достичь, приведу список того, что больше не вызывает у меня проблем:

  • Беседа на французском в течение нескольких часов;
  • Понимание различных видов французских СМИ (например, новости и видео на YouTube);
  • Чтение статей, написанных для носителей французского языка;
  • Построение мыслей на французском;

Конечно, я всё ещё очень далёк от уровня носителя. У меня точно есть слабые места, и я не могу выражаться на французском так же хорошо, как на английском. Тем не менее, я очень даже доволен своим уровнем владения французским и думаю, что многие изучающие язык тоже были бы довольны.
Читать дальше →

Bloody hell, или Как ругаться на английском, чтобы тебя приняли за культурного человека

Reading time6 min
Views118K
Ругательства — это неотъемлемая часть любого языка. И даже если вы не собираетесь их использовать в жизни, их нужно изучать и знать.

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


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

Reading time2 min
Views54K
Современные программисты — счастливчики: мы живём в мире, в котором исторические и оказавшие существенное влияние программы имеют открытый код, доступный для изучения. Однако, многие программисты только учатся, и изучают те программы, над которыми работают сами. У нас редко находится время для изучения исторических работ, и курсы программирования редко тратят время на такие вещи.

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

Элегантное асинхронное программирование с помощью промисов

Reading time18 min
Views14K
Доброго времени суток, друзья!

Промисы (обещания) — сравнительно новая особенность JavaScript, которая позволяет откладывать выполнение действия до завершения выполнения предыдущего действия или реагировать на неудачное выполнение действия. Это способствует правильному определению последовательности выполнения асинхронных операций. В данной статье рассматривается, как работают обещания, как они используются в Web API, и как можно написать собственное обещание.

Условия: базовая компьютерная грамотность, знание основ JS.
Задача: понять, что такое обещания и как они используются.
Читать дальше →

У отростков нейронов человека обнаружились неожиданные способности к вычислениям

Reading time8 min
Views15K

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



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

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

Самое новое из этих многочисленных свидетельств связано с открытием учёными нового типа электрического сигнала, проходящего по верхним уровням коры мозга человека. В лабораторных исследованиях и на моделях уже было показано, что крохотные отсеки дендритов, отростков нейронов коры мозга, сами по себе способны выполнять сложные операции из области математической логики. Однако теперь, судя по всему, оказывается, что отдельные отсеки дендритов могут также выполнять особую операцию – "исключающее ИЛИ" (XOR) – которая, как считалась ранее, недоступна для отдельных нейронов.
Читать дальше →

Домашний веб-сервер на солнечных батареях отработал 15 месяцев: аптайм 95,26%

Reading time10 min
Views26K

Первый прототип солнечного сервера с контроллером заряда. Фото: solar.lowtechmagazine.com

В сентябре 2018 году энтузиаст из Low-tech Magazine запустил проект «низкотехнологичного» веб-сервера. Задача была снизить энергопотребление настолько, чтобы домашнему self-hosted серверу хватало одной солнечной панели. Это непросто, ведь сайт должен работать 24 часа в сутки. Посмотрим, что получилось в итоге.

Можете зайти на сервер solar.lowtechmagazine.com, проверить текущее энергопотребление и уровень заряда аккумулятора. Сайт оптимизирован на минимальное количество запросов со страницы и минимальный трафик, так что должен выдержать скачок посещаемости с Хабра. По расчётам разработчика, расход энергии на одного уникального посетителя составляет 0,021 Вт⋅ч.
Читать дальше →

Information

Rating
7,242-nd
Registered
Activity