Pull to refresh
57
2.1

Programmer

Send message

На этот манускрипт еще не пробовали ИИ натравить?

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

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

Поэтому, лично для меня понятным было бы акцентирование внимания на том, что ускорение абсолютно. Оно не привязано к каким-то точкам отсчета, галактикам и прочему, оно просто абсолютно (как если бы был некий абсолютный "эфир", но не для движения как такового, а для его производной - ускорения). И движущийся близнец не просто движется, а ускоряется.

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

Как ни странно, но да, бабло это единственный способ победить зло. Поэтому я рад что хотя-бы некоторые компании остаются, хотя-бы некоторые связи с глобальным миром не рвутся. Рвать то большого ума не надо, а вот восстанавливать - очень непросто.

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

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

Не отличается: вот пример, обращение к локальной переменной (аргументу функции) и к полю соврешенно одинаковое (хотя мы знаем что на низком уровне в первом случае работа через указатель this, во втором - просто доступ к стеку). Чтобы отличить, нужно смотреть место объявления. А это может быть где-то далеко в коде (хорошо современные IDE выводят подсказки по наведению мыши на переменную).

class Foo {
  int x;
  void bar(int y) {
    x = 10;
    y = 10;
  }
}

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

Тут интересно другое. ЧД - это такой идеальный шарик. А при слиянии на очень короткий промежуток времени мы получаем "кривую" ЧД, не в форме шара. Можно даже пофантазировать о более сложных конфигурациях слияния, когда некая сверхцивилизация ради безумного эксперимента одномоментно сливает сотни и тысячи черных дыр, к примеру в форме сферы, образуя на короткое время некую область нормального пространства внутри сплошного кокона из черных дыр, Что будет с таким пространством?

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

Вообще существуют два подхода: высокоуровневый и низкоуровневый. При высокоуровневом нам все равно как хранится объект - по значению или по ссылке, мы абстрагируемся от способа хранения и работаем просто с объектами. Так устроены Java и C#. Единый синтаксис доступа, никаких звездочек и стрелочек - только прямой доступ и доступ к полям через точку. Наверное, для специальных операций (таких как манипуляции с самими указателями, а не с объектами) можно придумать специальный синтаксис, или даже специальные встроенные в язык функции.

Второй подход - низкоуровневый, в нем в программе явно задается способ хранения объекта. Лучший представитель этого подхода - язык Си. Явные указатели, явное разыменование, явное взятие адреса, всё тоже просто и понятно, но явно. Иногда чуть больше звездочек, но это цена явности и прозрачности кода. В Rust тоже вроде бы все кодируется в явном виде. Где-то рядом Go, хотя там чуть срезали некоторые некритические углы.

А иногда делаются попытки совместить. Как в С++, где есть и явные указатели, и неявные ссылки. Иногда это удобно, иногда кажется избыточным. Посмотрите еще как забавно и в то же время мозгодробительно сделано в языке CForAll - они в дополнение к сишным указателям взяли концепцию ссылок из с++ и вывернули ее наизнанку, построив аналогию указателей на указатели.

int x,
*p1 = &x, **p2 = &p1, ***p3 = &p2,
&r1 = x, &&r2 = r1, &&&r3 = r2;
***p3 = 3;  // change x
r3 = 3;     // change x, ***r3
**p3 = ...; // change p1
&r3 = ...;  // change r1, (&*)**r3, 1 cancellation
*p3 = ...;  // change p2
&&r3 = ...; // change r2, (&(&*)*)*r3, 2 cancellations
&&&r3 = p3; // change r3 to p3, (&(&(&*)*)*)r3, 3 cancellations

ИМХО, пример того, когда сделали чисто для языковой симметрии в ущерб читаемости и практической применимости. Я считаю, что указатель и ссылка, при всей внутренней схожести, на уровне языкового дизайна все-же разные конструкции: указатель - мощный низкоуровневый инструмент для построения явных связей на уровне адресов; ссылка - высокоуровневая абстракция, предназначенная как раз для того чтобы уйти от адресов, явных размыменований и прочего.

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

То есть по сути это вывод типов. Но тип строится из того, что возвращает функция. И тип, как я понимаю, номинативный, а не структурный. Интересная фича.

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

А можно здесь поподробнее?

Да, это очень интересный проект! Мне кажется что в гравитационном спектре скрывается немало тайн и загадок Вселенной:)

А возможно ли в перспективе создание "антенной решетки" из таких интерферометров, чтобы не просто регистрировать события, а именно видеть гравитацию, как матрица фотокамеры видит электомагнитное излучение?

 чтобы при объединении в ячейки с одинаково заряженными чёрными дырами их электромагнитное отталкивание компенсировало гравитационное притяжение

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

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

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

А также политическую нейтральность этого места. 

Ну не знаю... судя по вики, место то еще.

a = "Hello, World" // > Hello, World, ему все равно на такие манипуляции

Это еще что. Вот например, если в Python написать

variable = 42

а затем

varibale = "Hello world"

то язык тоже все проглотит, но переменная variable останется равной 42! Потому что во второй строчке опечатка:) В Go оператор := предназначен специально для объявления переменной (введения нового имени), и такой ситуации просто не может возникнуть. В Python, как ни странно, оператор := тоже ввели, но у него другая семантика, причем на мой взгляд совершенно невразумительная. В этом месте питонисты наверняка скажут - ну и что, каждый язык уникален, художники авторы языка так видят и т.п. Но я не соглашусь: все-же во всем должен быть смысл. В Python := используется для создания и изменения переменных внутри выражений. Т.е. с одной стороны хорошо - в некоторых случаях код становится компактнее, удается избежать дублирования вычислений, но с другой, а что мешает использовать := не внутри, а просто для создания переменной? Ведь очевидно что это просто частный случай. А нельзя! Точно так же нельзя использовать обычное присваивание внутри выражений - оно может быть только на "верхнем уровне".

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

Не знал что DECT еще не ушел в прошлое... С другой стороны, если это более-менее распространенный стандарт, но почему модули DECT в смартфоны не ставят (по крайней мере массово)?

Все-же не раскрыта тема FAR vs TotalCommander. Я с уважением отношусь ко всем двухпанельным файловым менеждерам, но так сложилось что с Нортона перешал именно на Тотал (тогда еще Windows Commander) - наверное потому что он графический а не консольный. В графическом приложении чисто по ощущениям лучше интеграция с виндой - те же иконки, контекстное меню, перетаскивание, более плотная компоновка окна. Что касается плагинов, то они есть и для тотала, кроме того с некоторых пор пишу небольшие утилитки на Go и вешаю их на пользовательское меню.

Сама "консольность" это просто незаменимая фича если к системе есть удаленный доступ по ssh. Для линукса есть Midnight Commander, а вот для винды сама концепция такого доступа к сожалению не прижилась.

1
23 ...

Information

Rating
1,102-nd
Registered
Activity