Ну это просто. Загружаешь MONS на 58500, запускаешь его. вбиваешь загрузчик кода Elite, он с адреса 5B00, длину блока указываешь так, чтобы MONS не перетереть. Потом переходишь на 7CB7, это точка входа в игру. И жмешь комбинацию клавиш для показа листинга. Вуаля — на экране исходник.
Поделюсь трюком, который я вычитал в исходниках Elite для zx spectrum: быстрое умножение двух однобайтных чисел. ab = (a^2 + b^2 - (a-b)^2)/2
Эта формула элементарно выводится из школьного разложения квадрата разности. Т.е. можно быстро и точно умножать однобайтные числа, используя таблицу квадратов (512 байт)
вышло недопонимание между программистом и менеджментом — программист вышел на работу без ведома менеджмента. Поэтому не было ни рабочего места, ни понимания у бухгалтерии.
менеджмент решил, что программист ему все-таки не нужен и решил проблему, просто послав человека.
Единственное, чего я не понимаю, что помешало оплатить отработанное время? Не разорились бы как-нибудь. А на 100 тыс в месяц миддлу работу можно найти в Москве без особых проблем.
У clojure есть один фатальный недостаток по сравнению с другими ФП языками — слабая типизация. Имхо, мощная система типов обязательна для ФП языков, когда назначение чистой функции можно описать через ее сигнатуру (типы параметров и возвращаемого значения).
В deutsche bank вот так:
associate(джунор-миддл), associate vice president(сеньор-лид), vice president(менеджер команды или отдела), director(менеджер отдела или филиала), managing director(менеджер филиала, топ-менеджер)
К тому же, важно не название должности, а наполнение.
Как писали выше, регистрация ИП в РФ значительно проще и выгоднее по деньгам.
Я так понял, автор открыл аналог нашего ООО и платит сам себе зарплату — но это же очень затратно, стоит ли имидж таких платежей?
Чем яваскрипт похож на скалу: и там, и там половину языка лучше просто не использовать. Но в скале хотя бы не получится использовать ненужные фичи нечаянно.
Ну да, с такой флешкой ключи от кошелька украдут не сразу, а только когда вставишь её в компьютер. А бумажка, кстати, очень надежный носитель — кража со взломом намного менее вероятна, чем троян.
Да, общая память как "выжившая" массовая архитектура. Что поделаешь — она наиболее удобна для программирования. Но у каждого ядра есть собственный кеш и в рамках него они работают независимо (почти). Алгоритм синхронизации кешей L1 весьма сложен, как и модель многопоточности процессора, см. memory fences и x86 fence instructions.
Про обращение к устройствам через память — да, но запись в память идет же мимо процессора и асинхронно? В отличие от старого подхода через порты ввода-вывода, потребляющие цпу.
Надеюсь, это удовлетворит всех. И любителей статической типизации, и скриптописателей, и разработчиков больших систем, и хипстеров от программирования.
Поправьте меня, если я неправ, но у предлагаемого решения ровно одно преимущество перед своим протоколом, завернутым в TLS: более быстрое установление соединения.
Спасибо за адекватную статью. Попробую объяснить, почему я когда-то ушел со спринга и добровольно не вернусь.
— конфигурация что xml, что аннотациями реализуется приличным количеством кода. Таким образом, нет простого способа понять, какие аннотации куда можно вешать и как оно работает. Документация — это хорошо, но она не покрывает все случаи, а вручную курить несколько тысяч строк кода разнообразных бинов и расширений спринга — накладно. Конфигурация через банальные билдеры значительно удобнее — автокомплит, проверка на этапе комппиляции, простая реализация.
— инициализация spring-beans по дизайну однопоточна. Поэтому большие приложения на спринге стартуют существенное количество времени и ускорить процесс непросто. На дворе 21 век — если приложение в дев-режиме стартует больше трех секунд, то это негодное приложение.
— в спринге «умеем всё из коробки» имеет неприглядную обратную сторону — длиннющие стектрейсы в spring mvc и очень большие проблемы при желании сделать что-то нестандартное. Приходится лезть в конфигурационный код (да-да, тот самый, который обрабатывает аннотации и читает красивый XML) и надеяться, что у нужного бина разработчики нужный метод сделали protected, а не private.
Тогда вот вам в ту же копилку:
— написать двоичный поиск по массиву
— написать любой алгоритм сортировки массива
— найти максимальную глубину двоичного дерева
— написать итератор, который получает итератор целых чисел и возвращает только четные числа
— найти кратчайший путь между двумя точками в квадратном массиве NхN
Ну это просто. Загружаешь MONS на 58500, запускаешь его. вбиваешь загрузчик кода Elite, он с адреса 5B00, длину блока указываешь так, чтобы MONS не перетереть. Потом переходишь на 7CB7, это точка входа в игру. И жмешь комбинацию клавиш для показа листинга. Вуаля — на экране исходник.
20 лет прошло, до сих пор помню :-)
Шикарно!
Поделюсь трюком, который я вычитал в исходниках Elite для zx spectrum: быстрое умножение двух однобайтных чисел.
ab = (a^2 + b^2 - (a-b)^2)/2Эта формула элементарно выводится из школьного разложения квадрата разности. Т.е. можно быстро и точно умножать однобайтные числа, используя таблицу квадратов (512 байт)
Насколько я понял ситуацию:
Единственное, чего я не понимаю, что помешало оплатить отработанное время? Не разорились бы как-нибудь. А на 100 тыс в месяц миддлу работу можно найти в Москве без особых проблем.
У clojure есть один фатальный недостаток по сравнению с другими ФП языками — слабая типизация. Имхо, мощная система типов обязательна для ФП языков, когда назначение чистой функции можно описать через ее сигнатуру (типы параметров и возвращаемого значения).
В deutsche bank вот так:
associate(джунор-миддл), associate vice president(сеньор-лид), vice president(менеджер команды или отдела), director(менеджер отдела или филиала), managing director(менеджер филиала, топ-менеджер)
К тому же, важно не название должности, а наполнение.
Как писали выше, регистрация ИП в РФ значительно проще и выгоднее по деньгам.
Я так понял, автор открыл аналог нашего ООО и платит сам себе зарплату — но это же очень затратно, стоит ли имидж таких платежей?
это был просто список проблемных операторов))) Вот пример:
Что делает эта функция? Какие типы данных может вернуть эта функция? Я бы сказал, что ответ непрост и не тривиален.
Почему же — почти все примеры про применение самых обыкновенных операций (+![]) к неожиданным типам.
Чем яваскрипт похож на скалу: и там, и там половину языка лучше просто не использовать. Но в скале хотя бы не получится использовать ненужные фичи нечаянно.
Вот образы Docker для впн, с инструкцией, работают давно и стабильно
OpenVPN (для компа):
https://github.com/scf37/docker-openvpn
L2TP/IpSec (для домашнего роутера):
https://github.com/scf37/docker-l2tp
Да, общая память как "выжившая" массовая архитектура. Что поделаешь — она наиболее удобна для программирования. Но у каждого ядра есть собственный кеш и в рамках него они работают независимо (почти). Алгоритм синхронизации кешей L1 весьма сложен, как и модель многопоточности процессора, см. memory fences и x86 fence instructions.
Про обращение к устройствам через память — да, но запись в память идет же мимо процессора и асинхронно? В отличие от старого подхода через порты ввода-вывода, потребляющие цпу.
Многопоточность в рамках одной ЭВМ очень даже есть. Многоядерные процессоры, устройства на общей шине, DMA...
nodejs — это современная альтернатива питону.
Надеюсь, это удовлетворит всех. И любителей статической типизации, и скриптописателей, и разработчиков больших систем, и хипстеров от программирования.
— конфигурация что xml, что аннотациями реализуется приличным количеством кода. Таким образом, нет простого способа понять, какие аннотации куда можно вешать и как оно работает. Документация — это хорошо, но она не покрывает все случаи, а вручную курить несколько тысяч строк кода разнообразных бинов и расширений спринга — накладно. Конфигурация через банальные билдеры значительно удобнее — автокомплит, проверка на этапе комппиляции, простая реализация.
— инициализация spring-beans по дизайну однопоточна. Поэтому большие приложения на спринге стартуют существенное количество времени и ускорить процесс непросто. На дворе 21 век — если приложение в дев-режиме стартует больше трех секунд, то это негодное приложение.
— в спринге «умеем всё из коробки» имеет неприглядную обратную сторону — длиннющие стектрейсы в spring mvc и очень большие проблемы при желании сделать что-то нестандартное. Приходится лезть в конфигурационный код (да-да, тот самый, который обрабатывает аннотации и читает красивый XML) и надеяться, что у нужного бина разработчики нужный метод сделали protected, а не private.
— написать двоичный поиск по массиву
— написать любой алгоритм сортировки массива
— найти максимальную глубину двоичного дерева
— написать итератор, который получает итератор целых чисел и возвращает только четные числа
— найти кратчайший путь между двумя точками в квадратном массиве NхN