All streams
Search
Write a publication
Pull to refresh
56
0
Alexander @speshuric

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

Send message
В конце 90-х HP, Canon и Epson давно уже были зубрами печати. И уже были готовы печатать с фотокачеством (но на тот момент еще дороже минилабов).
Например, вот Epson

Считать суперкомпьютер за один компьютер на уровне ОС не вполне честно. Там и RHEL заметно допилен и память неоднородна от слова "совсем", и FS совсем свои. А 32-сокетный монстр — это еще "почти честный" моносервер (Intel: Configure native 4- and 8-socket CPU configurations and extend to up to 32-socket systems via third-party OEM node controllers).

И что характерно, на самом деле многие скриптовые/высокоуровневые языки такими "битовыми" хаками особо не пооптимизируешь. Вот из того, что помню


  • SQL — за современный Postgres с Jit не скажу, но в MS SQL Server/MySQL/Oracle/PostgreSQL разница на уровне погрешности.
  • VB/VBS/VBA. Некоторые приемы работают, но только при строгой типизации. Variant или работа с COM мгновенно съедают разницу.
  • 1С — там арифметика на своём "особенном" числовом типе. Этот тип раз в 100 медленнее Int32. Сдвигов и битовой логики нет.
  • Powershell — с ним смешно. Я лет 6 назад с удивлением обнаружил, что типизированные переменные медленнее нетипизированных. Там просто при каждом присваивании для типизированных переменных происходит принудительное приведение к типу.
  • Bash, cmd — не найти разницу

Да и JS стал таким чувствительным к битовым хакам примерно с появлением "дерзкого" V8, потом остальные стараются догнать (кто не верит — ставьте виртуалку с IE6 и проверьте).

Все являются, конечно. Главная идея статьи (поста в блоге в оригинале) в последней фразе. Перефразируя "JS такой высокоуровневый, а битовые хаки для оптимизации все равно работают".

Пока не заглянул в MDN, не смог понять, что Math.clz32 возвращает количество лидирующих нулевых битов в 32-битном двоичном представлении числа.

Wormholes же в оригинале. И картинка намекает, а перевод не очень удачный. Wormholes в данном случае типа залез в чёрную дыру тут, а вылез в 100 млн парсеков (за 1000 лет до рождения). Червоточины, возможно, было бы точнее и понятнее

Ну для RSA нужны же простые примерно с половину ключа. Сейчас популярны RSA-2048/RSA-4096. Из-за того, что «плотность» простых убывает достаточно медленно, даже в диапазоне 2^1024...2^2048 можно просто взять случайное число и проверять каждое следующее на простоту. Проверку на простоту на практике делают вероятностным, но быстрым методом Миллера-Рабина.

В 94-99 гг прошлого века в Новосибирске (в отделении связи на ул. Ильича) были междугородние телефоны-автоматы, их жетоны были в виде пластиковых линз (примерно такие). Берется пластиковая бутылка от газировки, вырезается полоска длиной 15-20 см, шириной 5-8 мм. К одной стороне суперклеем или, например, 1,2-дихлорэтаном приклеивается жетон. В конце времени, положенного на жетон (зависело от региона) надо было вытащить линзу за полоску и снова вставить. Конструкция была не самой надёжной: была вероятность, что жетон оторвется, или что телефон переклинет, или звонок сорвётся, или снаружи манипуляции заметят. Но при тогдашней стоимости межгорода у студентов и школьников было весьма популярно.

Так есть коммерческие решения или пока не очень? Есть где почитать открытое?


Надежность это инженерный вопрос

Конечно. Но в итоге это вопрос бабла и окупаемости. У вояк нет явного вопроса окупаемости и им не нужны 99,99.

Современные системы управления легко парируют типичные природные явления.

Смотрите, в вашей трактовке неявно получается, что система посадки удовлетворяет таким условиям:


  • ЛА пустой массой 100-1000 кг или немного больше
  • Грузоподъёмностью 100+ кг
  • С посадкой и взлетом без пробега
  • Посадка на площадку не более 20*20 м (иначе это совсем не любая крыша) с точностью +-2 метра в автономном режиме
  • Все это хотя бы в условиях порывистого ветра 7-9 м/с (задачи "со звездочкой": сумерки/ночь, осадки, туман, температуры вне диапазона -35..+35, высота 3000 и более над уровнем моря, ветер 12-15+ м/с)
  • С гарантией сделать это без травм хотя бы 99,99% (иначе это голый экстрим и русская рулетка)

Без автопилота это примерно Robinson. Без надёжности четыре девятки, наверное, есть у вояк (БПЛА). С пробегом и с большей массой, наверное тоже реализуемо (самолёт, БПЛА). Но вот чтобы всё сразу — я очень сомневаюсь. Если есть примеры, было бы интересно почитать. Если вы сами можете сделать такую систему, то станете очень богатым и уважаемым — спасете тысячи жизней.

Сделать автопилот коптера как раз проще, чем автопилот автомобиля

Сделать автопилот для пятиминутных полётов с ценой ошибки в пару тысяч баксов (цена дрона) — да, дешевле. Собственно, поэтому они рассматриваются, как замена курьерам. Сделать автопилот, которому можно доверить тушку пакса, который не умеет садить ЛА — сложнее. И, да, сам полёт — относительно простая задача. Полноценная обработка посадки и взлёта (со всеми хитрыми случаями) — вот реальный челлендж.

Стойте-стойте. Вы тоже перешагнули более простые проблемы.


  • Что делать с погодой? Я не представляю себе 1-4-местный коптер (или коптероподобный ЛА), который можно относительно безопасно посадить хотя бы ветре при 7-9 м/с (автоматом или с существенной помощью автомата). Ветер — сиди, дождь — сиди, снег — сиди, мороз — сиди. Ах, да, и пока ЛА сидит, его нужно закрыть от влияния погоды.
  • Пропускная способность площадок приземления. В городе (провода/деревья/здания) нужны посадочные площадки. Мысленный эксперимент для жителей мегаполисов: представьте себе у дома и у работы площадку 50 * 50 или 100 * 100 метров (на меньшую коптер безопасно садить уже прямо сложно), а теперь прикиньте пропускную способность такой площадки у бизнес-центра (подсказка — один ЛА в минуту это примерно как у крупнейших аэропортов), теперь представьте час пик и АДОВУЮ работу диспетчерской системы. А теперь представьте, что в воздухе больше одного коптера с критически малым запасом топлива. Кто-то должен сесть, а другой может рухнуть.
  • У автопроизводителей начинает немного получаться автопилот на машине, там где вероятная цена ошибки сильно меньше. Чтобы сделать автопилот коптера, который хотя бы не убъёт пассажира нужно еще лет 10-20 после создания еще не созданного автопилота автомобиля. А если автопилот частичный, то пилоты сами себя поубивают.
за спиной не стоял менеджер и не спрашивал каждые 15 минут

По-разному было. И стоял, и кричал, и не один менеджер. Но я с такими "менеджерами" долго не работаю обычно. Оно того не стоит.


никто не дал бы времени

Дал бы. Если другого решения нет. С вашими гиговыми XML — если поток XML станет больше, чем может съесть система. Если нерешение проблемы = отзыв лицензии. Обычно получается объяснить, что время нужно. В общем, надо уметь его взять.


решалку СЛУ еще в колледже вполне успешно писал

Вопрос не в "решалке" (это и я в школе писал), она уже написана была, а в том, что матрица большая и в нескольких местах "неудобная" для Гауссо-подобных алгоритмов, плюс надо было не терять точность. В любом случае — это просто примеры.

Есть вероятность, что эти люди просто не увидели, что "графы, деревья и уникальные сортировки" и прочие "теоретические" вещи нужны.
Мне в своё время (лет 10-20 назад) понадобились:


  • Диофантовы уравнения и метод ветвей и границ в оптовой торговле фармацевтическими товарами
  • Реализовать хеш-таблицу и B+ tree в 1С: Бухгалтерии 7.7
  • Изучить как работает TCP в части three way handshake, модель состояний и работы с SN/ACK SN, чтобы сделать похожий сеансовый обмен между складами
  • Решить проблемы отсутствия string builder в 1С 8 (при огромном количестве конкатенаций)
  • Оптимизировать решение систем линейных уровнений в расчете себестоимости.

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

Пойду спрячусь обратно в простой и тупой хайлоадный бэкенд :)
Ну если с первым примером всё более-менее понятно, но пример `both` меня совсем удивляет.
Я не считаю это ошибкой, скорее демонстрацией мест, где достаточно сложно сориентироваться в «обычном тексте».

Меня смущает, что я не понимаю почему =1 в разных случаях в разные стороны. И если немного усложнить пример, то я вообще не понимаю что и как.


Вот, например, объясните мне вывод в классе both
data class aleph1 (val אאאאאא:String = "йцу")
data class aleph2 (val אאאאאא:Int = 123)
data class alpha (val αααααα:Int = 123)
data class both (val αααααα:Int = 123, val אאאאא:Int = 123, val אאאאאא:String = "йцу")

fun main(args: Array<String>) {

    println(aleph1())
    println(aleph2())
    println(alpha())
    println(both())

}

Вывод:


aleph1(אאאאאא=йцу)
aleph2(אאאאאא=123)
alpha(αααααα=123)
both(αααααα=123, אאאאא=123, אאאאאא=йцу)

В SQL:1999 в стандарт введены рекурсивные CTE и вообще-то даже стандартный стал полным по Тьюрингу. При этом аналогичные расширения уже были у некоторых вендоров (Oracle точно, и, кажется, IBM DB/2). При этом T-SQL, PL/SQL и многие другие "расширения" содержали циклы и процедуры (т.е. тоже Тьюринг-полные).
Так что этот аргумент не состоятелен.


"Вспомогательность" SQL тоже спорная.

Уже не должен, по идее.

Почему "уже"? Почему "не должен"?
Полный код:


fun main(args: Array<String>) {
    println(::main)
}

Код компилируется, работает. Вывод:


fun main(kotlin.Array<kotlin.String>): kotlin.Unit

Байткод показывается нормально.
Если его прогнать Show bytecode и Decompile, то там некомпилируемая шляпа:


   public static final void main(@NotNull String[] args) {
      Intrinsics.checkParameterIsNotNull(args, "args");
      <undefinedtype> var1 = null.INSTANCE;
      System.out.println(var1);
   }

Но это, пожалуй, простительно. Function references завязаны на reflection, а с ним в Котлине с всё непросто: приходится поддерживать и интероп с java, и js/native/ir, и котлиновые фичи (локальные функции, например). Это прослеживается и в трекере и в документации, особенно если посмотреть на JS.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity