Category: архитектура

Category was added automatically. Read all entries about "архитектура".

Book

Хвалёный AWS

https://aws.amazon.com/blogs/compute/nodejs-packages-in-lambda/

Короче говоря, в 2015 году архитекторы AWS рекомендовали устанавливать ноду... из сорцов. Они там ебанулись все, что ли?

ТруЪ-способ - это пекедж. Преимущества? Нуу, я думаю интеграция с dnf update --security всё перебивает. Интересно, как они в условиях отсутствия репы следят, чтобы рантаймы AWS Lambda для ноды обновлялись оперативно.
Book

Продолжение эпопеи с переездом

С подключением ADSL в результате Кларо так и не приехал, так что я подключился помимо говнопровайдера ещё и к основному конкуренту Кларо - Альтису. По слухам Альтис хуёвый, а по цене два в сумме как одна оптика от Кларо на прошлом месте, так что пусть пока будет. Альтис тупо поставил 4G модем стационарный с 10 мбитами анлимитом и RJ11 для "стационарного" телефона. Причём они меряли сигнал по углам квартиры и там не было достаточного качества, так что был вариант подключаться на 3. Но потом потестили в середине квартиры, и там оказалось норм. Максвелл переворачивается в могиле, но вот уже N дней работает и 10 мбит выдаёт, чудесно. Железка от Хуавэй. Я как-то видел рекламу Хуавэя на испанском, так знаєте куме як вони наш Хуавей називають? Уавэи. С ударением на А.

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

Во-первых в квартире до этого, по рассказам доминиканского аналога "дворника", не жили 6 лет, так что надо было её привести в какой-то жилой вид, как минимум поменять краны и покрасить стены, и это делалось чрезвычайно медленно даже по доминиканским меркам. Ввиду того что на прошлом месте я закончил проживать депозит, а квартира была открытой, пришлось тупо въехать и поменять замки, и прокатило.

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

В-третьих, условия, согласованные с агентом, не были внесены в контракт.

В-четвёртых, часть пунктов согласованных с агентом оказались невыполнимыми, и пришлось пересогласовать объём услуг и цену.

В-пятых, образовался треугольник из хозяина, администратора и агента, причём администратор обвинил агента в том, что он спиздил деньги, а агент обвинил администратора в том, что он неправильно ему описал условия сдачи, что привело к путанице. Так что пришлось устраивать чуть ли не очные ставки.

В-шестых, администратор хочет чтобы деньги платили ему на счёт, а в контракте получателем указан хозяин, который со слов администратора живёт в США, а со слов агента выходит что он с ним то ли что-то обсуждал то ли встречался лично. Отправка третьим лицам это обычная практика тут, но на фоне общего пиздеца хорошо бы получить от нотариуса контакт хозяина и убедиться что администратор авторизован администрировать.
Book

Your Computer is Not A Fast PDP-11

https://queue.acm.org/detail.cfm?id=3212479

C Is Not a Low-level Language
Your computer is not a fast PDP-11.

Наконец-то кто-то это озвучил.

Собственно 2 очевидных пункта:
- сишная вм - это таргет для оптимизации дизайна проца в 2019 - в процессоры влито бабло, чтобы они быстро исполняли сишный код
- сишная вм плохо покрывает архитектуру и instruction set

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

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

Вопрос, какие можно для этого было бы поставить эксперименты - мысленные, для начала.

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

Ну и надо знакомиться с VTune и https://software.intel.com/en-us/articles/intel-sdm :)
Book

Сколько стоят сервера?

Если ориентироваться на ценовой диапазон SuperMicro и ниже, то как вообще понять сколько стоят сервера? У меня из требований - только стойка и 128+гб рам, там всё равно перл на одном ядре 3% жрёт, но дебильная архитектура, хотим не переписывать, а заткнуть большим количеством ОЗУ, в текущий сервер Х-летней давности больше 8 гб не лезет.

Пока нашёл только Dell PowerEdge R620 двухсокетный с 128 гб, максимум 768, за $4k. Есть какие-то онлайн-конфигураторы вменяемые, чтобы можно было свистоперделки вроде топовых MP-процов и винтов отключить? Есть ли вообще односокетные матери для 1U с 128 гб?
Book

Жопоболь: ППКС

http://thesz.livejournal.com/1456181.html

> Удивление от проблем с производительностью вычисления среднего
> арифметического односвязного списка может возникнуть только у неопытного человека
> Скачайте симулятор Cell BE и попробуйте написать среднее
> арифметическое односвязного списка, чтобы задействовать все ядра.

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

Ещё Пролог есть. Там надо знать алгоритм поиска, чтобы знать, что можно спрашивать, что нельзя. А ещё cut расставлять (!).

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

Лагос - не Нигерия

Тёма тут опубликовал фотоотчёт о Лагосе. Забавно, что почти всё, что он снял, отсутствует за пределами нигерийского МКАДа. Ниже список столичных элитных объектов, попавших в кадр

- POS-терминал
- кран
- дома выше 4 этажей
- такси
- дорожные знаки, светофоры и пешеходные переходы
- городские автобусы и маршрутки (только межгород)
- автобусные остановки
- подсолнечное масло. Чёрные канистры из-под масла для воды есть, но основная масса - жёлтые и либо из-под пальмового масла, либо из-под непонятной субстанции vegetable oil (из чего его делают - неизвестно)
- названия улиц (указатели правда встречаются, но адресами никто не пользуется и на визитках вместо или в дополнение к адресу пишут в духе "в таком-то районе напротив такой-то мечети")
- таксофоны
Book

Проблема передачи полиморфных функций аргументами

Дано:
  • функция size :: a -> Int, делающая то же самое, что встроенный в С++ полиморфный оператор sizeof (но для нас важно только что она полиморфна).
  • функция g f x = 1 + f x
Выражение g size 49090 понятно возвращает 5 на архитектуре х86. Внимание вопрос: как его компилировать?

Лобовое решение - g(&size, 49090). Но оно понятно не проходит, так как непонятно, какой из инстансов size выбрать. Рядовой Вася если будет писать вручную понятно напишет g(&size<int>, 49090). Значит, так и должен поступать компилятор HN0 - ведь он симулирует Васю. Подстановка типов пока не реализована в HN0 но принципиально возможна и не сильно сложна.

Но вопрос, есть ли обходные пути? Прошлую проблему мы обошли по сути отказом от boost::function.

Значит, надо изменить определение size (поменяв библиотеку), определение g и вызов g (поменяв генератор кода). Но как? В С++ есть способ передавать полиморфные значения - это через нешаблонную структуру с шаблонным содержимым. Именно так передаются аллокаторы (и потом ребиндятся).
struct size_impl {
template <typename T> int operator()(T t) { }
}
Таким образом, можно попробовать передавать g(size_impl(), 5) и избежать явного позора указания параметров шаблона. Но это временная мера конечно, т.к. человеки так не делают. Да и не факт что получится сделать чтобы deduce работал и в таких случаях. Да и у нас все равно есть elist/nil/[] - полиморфная константа