Pull to refresh
1
0
Send message

Углекислый газ на МКС

Reading time13 min
Views60K
В октябре на МКС была установлена новая (принципиально) система регенерации воздуха, которая повысит замкнутость воздушного цикла вдвое.

Реактор Сабатье, вид сверху и снизу

Однако если с технологическим прогрессом все будет хорошо, то этот вариант просуществует недолго, — и нас ждет откат к системе предыдущего типа. А вот если прогресс будет буксовать, то новая система станет золотым стандартом на десятилетия.
Почему все так перепуталось?
Total votes 141: ↑141 and ↓0+141
Comments125

Забытая история ООП

Reading time14 min
Views41K
Большинство парадигм программирования, которые мы используем сегодня, были впервые математически изучены в 1930-х годах с использованием идей лямбда-исчисления и машины Тьюринга, которые представляют собой варианты модели универсальных вычислений (это формализованные системы, которые могут выполнять вычисления общего назначения). Тезис Чёрча-Тьюринга показал, что лямбда-исчисление и машины Тьюринга функционально эквивалентны. А именно, речь идёт о том, что всё, что можно вычислить с использованием машины Тьюринга, можно вычислить и с использованием лямбда-исчисления, и наоборот.


Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments24

Как LIGO может увидеть гравитационные волны, если в ОТО свет растягивается вместе с пространством?

Reading time6 min
Views28K

Как же LIGO может регистрировать гравитационные волны, если они растягивают свет вместе с пространством между зеркалами?



Image credit: www.ligo.caltech.edu

Этот вопрос непременно возникает, когда заходит разговор о детектировании гравитационных волн (ГВ). Обычно аргумент приводят такой: мы знаем, что есть гравитационное красное смещение, т.е. гравитация растягивает длины волн. Разумно предположить, что в LIGO свет тоже будет растягиваться, и длины волн, которые мы используем как «линейку» для измерения расстояния между зеркалами, растянутся в той же мере, что и само расстояние. Как же можно тогда пользоваться интерферометром для измерения гравитационных волн?

Представим возможные ответы на него:

  1. ГВ не влияют на свет, так что вопрос не имеет смысла.
  2. ГВ растягивают длину волны света, но очень слабо, так что мы не замечаем.
  3. Это не имеет значения, принцип детектирования не чувствителен к длине волны.
  4. Детекторы на самом деле и не работают.

Какой же из них верен?
Total votes 57: ↑56 and ↓1+55
Comments146

Монетизация пользовательских данных vs Реклама в приложении: за и против

Reading time5 min
Views6.2K
В 2018 году рынок мобильных приложений продолжил расти не только благодаря пользователям, которые не выпускают телефон из рук 24/7, но и благодаря рекламодателям, которые дорвались до рекламы внутри приложений. Поскольку вовлеченность аудитории здесь несравненно выше, стоимость показа рекламы в приложениях увеличилась, что привело к эволюции способов монетизации бесплатных приложений.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments6

Миграция схемы базы данных без даунтайма для postgresql на примере django

Reading time10 min
Views15K

Введение


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


Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.


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


Перед тем как пойти дальше позволю себе сделать следующие предположения.


Можно разделить логику работы с базой данных большинства приложений на 3 части:


  1. Миграции — изменение схемы базы данных (таблиц), предположим мы всегда запускаем их в один поток.
  2. Бизнес логика — непосредственная работа с данными (в пользовательских таблицах), работает с одними и теми же данными постоянно и конкурентно.
  3. Миграции данных — не изменяют схемы данных, работают по сути как бизнес логика, по умолчанию, когда будем говорить про бизнес логику, будем также подразумевать и миграции данных.

Даунтайм — это состояние, когда часть нашей бизнес логики не доступна/падает/грузится на заметное для пользователя время, предположим это пару секунд.


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

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments5

Обзор бесплатных 2D САПР

Reading time8 min
Views128K
В сфере автоматизации проектирования с каждым годом всё сильнее укрепляют свои позиции параметрические трёхмерные САПР. Полезность такого подхода в инженерном деле сейчас не вызывает сомнений, и сфера применения такого подхода обширна.

Тем не менее, в инженерном деле остаётся место и для традиционного двумерного проектирования, и для этого есть соответствующие инструменты.

image
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments91

Текстовый редактор — это вам не высшая математика, тут думать надо

Reading time17 min
Views96K
Современные текстовые редакторы умеют не только бибикать и не давать выйти из программы. Оказывается, внутри них кипит очень сложный метаболизм. Хотите узнать, какие ухищрения предпринимаются для быстрого пересчета координат, как к тексту приделываются стили, фолдинги и софтврапы и как это всё обновляется, при чем тут функциональные структуры данных и очереди с приоритетами, а также как обманывать пользователя — добро пожаловать под кат!



В основе статьи — доклад Алексея Кудрявцева с Joker 2017. Алексей уже лет 10 пишет Intellij IDEA в JetBrains. Под катом вы найдете видео и текстовую расшифровку доклада.
Читать дальше →
Total votes 208: ↑206 and ↓2+204
Comments189

Intel ME Manufacturing Mode — скрытая угроза, или что стоит за уязвимостью CVE-2018-4251 в MacBook

Reading time9 min
Views24K


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

Примером может служить технология Intel Management Engine (Intel ME), а также ее версии для серверных (Intel SPS) и мобильных (Intel TXE) платформ (подробнее об этой технологии см. [5], [6]. В этой статье мы расскажем, как используя недокументированные команды (если термин «документированный» вообще применим к Intel ME), можно перезаписать память SPI flash и реализовать самый страшный сценарий — локальную эксплуатацию уязвимости в ME (INTEL-SA-00086). Корнем данной проблемы оказался недокументированный режим работы Intel ME — Manufacturing Mode.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments46

Что за ерунда происходит с рейтингами популярности языков программирования?

Reading time3 min
Views68K


Я сегодня изучал индекс TIOBE, как делаю часто, и как часто делает большинство из тех профессиональных программистов, которых я знаю. Он претендует на измерение популярности языков программирования в мире, а его график изменения популярности со временем рассказывает простую историю: Java и C с незапамятных времён остаются королями языков с большим отрывом.

Но, погодите-ка, давайте не так быстро. Конкурирующий список PYPL Index (PopularitY of Programming Languages) говорит, что королями являются Python и Java, а C (учитываемый, внезапно, совместно с C++) находится где-то в глубине списка. Что происходит?

Просто у двух этих списков очень разные методологии подсчётов. Однако их объединяет одно – спорность их методологий, если учитывать, что их целью является измерение популярности языков программирования. TIOBE измеряет просто количество запросов в поисковике. PYPL измеряет, как часто люди гуглят обучающие материалы по тому или иному языку.
Читать дальше →
Total votes 39: ↑31 and ↓8+23
Comments282

Проектирование типами: Как сделать некорректные состояния невыразимыми

Reading time4 min
Views6.6K

Представляю вашему вниманию перевод статьи Scott Wlaschin "Designing with types: Making illegal states unrepresentable".


В этой статье мы рассмотрим ключевое преимущество F# — возможность "сделать некорректные состояния невыразимыми" при помощи системы типов (фраза заимствована у Yaron Minsky).


Рассмотрим тип Contact. В результате проведённого рефакторинга он сильно упростился:


type Contact = 
    {
    Name: Name;
    EmailContactInfo: EmailContactInfo;
    PostalContactInfo: PostalContactInfo;
    }

Теперь предположим, что существует простое бизнес-правило: "Контакт должен содержать адрес электронной почты или почтовый адрес". Соответствует ли наш тип этому правилу?


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


Кажется, ответ очевиден — сделать адреса необязательными, например, так:


type Contact = 
    {
    Name: PersonalName;
    EmailContactInfo: EmailContactInfo option;
    PostalContactInfo: PostalContactInfo option;
    }

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


Как же решить эту задачу?

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments27

Дела подводные — для роботов

Reading time17 min
Views26K

Intro


Поверхность планеты примерно на 71% покрыта океанами (порядка 361 млн. км²). Площадь РФ примерно 17 млн. км. Глубина океанов неравномерна, выделяют следующие зоны:

Шельф (shelf — полка) — глубина до 200—500 м;
Континентальный склон — глубина до 3500 м;
Океанское ложе — глубина до 6000 м;
Глубоководные желоба — глубина ниже 6000 м.

Средняя глубина также отличается:

Атлантический — 3600 м
Индийский — 3890 м
Северный ледовитый — 1225 м
Тихий — 4250 м

image

Зачем человек лезет под воду?
Total votes 54: ↑54 and ↓0+54
Comments40

Планшет в качестве второго экрана под linux

Reading time5 min
Views91K


Решил попробовать для расширения рабочего пространства, сенсорного ввода и удаленного управления использовать планшет как дополнительный экран к своему ноутбуку c Linux.
Нашлось 2 способа сделать это. Чем и делюсь.
Читать дальше →
Total votes 115: ↑109 and ↓6+103
Comments48
12 ...
12

Information

Rating
4,140-th
Registered
Activity