Уровень жизни
Jan. 26th, 2016 01:25 pm[Poll #2034674]
Опрос намеренно субъективный, тем не менее, под уровнем жизни я в первую очередь понимаю уровень потребления. Не столько в деньгах, сколько в общем объёме и качестве приобретённых услуг.
Год начался по-високосному.
Для начала, у меня посреди зимы в зверскую сушь и морозяку (на улице –25, дома +25) зазеленела моя новогодняя ёлка, с верхушки. И, похоже, собирается цвести дальше вниз. Это вот называется “апикальный рост”:
Ёлка у меня в горшке, примерно по пояс, Picea glauca conica, живая. Что зацвела – странно, эти ёлки очень капризные и не любят ни тепло, ни сухой воздух.
Два года назад у меня была такая же, правда, совсем маленькая, на подоконнике стояла – и засохла за пару месяцев. Интересно, что будет с этой.
Яваскриптовое опенсорц комьюнити внезапно тоже зимой “расцвело”. Я ожидал примерно чего-то такого в 2016, но не подряд, и не таких масштабов:
Эзотерические названия вполне закономерны, приличные JS-компиляторы уже давно ворочают минимум двумя уровнями intermedite representation и некоторые механики, скромно рисуемые вот на таких схемках как Bailout – чистый хак и магия.
То, что MSFT выложила свой JS-энджин в опенсорц для меня полная неожиданность. Там у них какой-то совсем тектонический сдвиг.
А вот то, что Oracle сделает в какой-то момент нормальную JS-машину я предполагал, но совершенно из сторонних соображений. Дело в том, что HotSpot вырос из компилятора Smalltalk’а под названием Strongtalk. Который придумал чувак по имени Ларс Бак 20 лет назад.
Он же, неожиданно, придумал Google V8 – самый быстрый JS-компилятор до недавнего времени. Все основные идеи в V8 – родом из Strongtalk’а. Раз эти идеи породили отличный JS-компилятор в одном месте, странно было бы, если б они не выросли во что-то похожее где-то ещё.
Конвергентная эволюция, да. Нисколько не удивлюсь, если найду в Чакре в том месте, что изображено загнутой стрелкой Bailout, те же идеи, кстати.
Апикальный рост начинается примерно одновременно сразу в нескольких местах, ога )
Недавно MongoDB выкатили третью версию – ну и решили всему миру расхвастаться, что теперь монго всех быстрей.
http://www.mongodb.com/blog/post/high-performance-benchmarking-mongodb-and-nosql-systems
Интересно в этой публикации что она – враньё. Ребята из монго озвезденели настолько, что решили себя посравнивать с Couchbase (не путать с CouchDB). И получилось у них, что монго типа быстрее раз в 25.
Любому, кто своими руками сравнивал монго и couchbase (как я), понятно, что это полная херня – потому что монго с любыми ухищрениями многократно медленней.
Вообще, в моей картине мира монго – довольно посредственная поделка для XXI века (скэйлится шардами и через жопу, мап-редьюс дико тормозной, блокировки при записи), а после этой публикации оказалось, что они ещё и вруны.
Couchbase не замедлил ответить.
MongoDB performs well when it 1) is limited to a single node, 2) doesn’t store a lot of data, and 3) doesn’t support a lot of users. This is a sweet spot for MongoDB.
http://blog.couchbase.com/mongodb-rules-single-node-deployments
Тут в цитате всё правда. Монго это такая БД, для тех кто уже не хочет MySQL, а хочет по-модному, чтобы JSON – но при этом с запросами, похожими на SQL. Правда, даже в этом случае Postgre куда лучше подходит, чем Монго.
Реальная картинка сравнения Couchbase и Mongo выглядит примерно так:
А если начать сравнивать по чуть более сложным запросам, чем ключ-значение, совсем чтоб по честному – получится разница иногда в несколько порядков.
---
Мораль у басни простая. Видите тесты, где что-то посредственное внезапно стало круче рынка в энцать раз – проверяйте. Скорее всего окажется, что это фуфел.
MEAN – это Mongo DB + express.js + angular.js + node.js. Это такой новый LAMP – и он сыграет такую же роль в развитии небольших интерактивных многопользовательских проектов и особенно сервисов, как в своё время “сыграл” LAMP при взрывном росте количества небольших сайтов.
С одной стороны, это здорово. Я наблюдаю огромное количество проектов на этой связке. С другой стороны, уже вполне начало проявляться то, чем грешил LAMP – попытка натянуть простую, но неподходящую архитектуру на сложный проект.
Хороший пример LAMP – Битрикс, который умеет всё, но ничего не умеет хорошо и быстро. Когда Битрикс был маленький, он был быстрый (хотя и дырявый). А потом стала ограничивать платформа – потому что иногда нужна быстрая key-value БД, а у тебя под рукой только MySQL. Потому что для организации расширяемой бизнес-логики по-хорошему язык должен поддерживать функции как объекты первого класса – а php это заумел только с 5.3 (медленно и через жопу). Потому что апач – это приемлемо для “классического” около-REST веб-сервера, но совсем плохо для организации IM-обмена. Ну итд.
Ровно то же самое будет происходить с MEAN. Покомпонентно в нём два слабых звена – Angular и Mongo. Разбираю.
Это прекрасная NoSQL БД, когда у проекта нет дизайна. Не от русского слова “дизайн”, а от английского “design”. Ну то-есть нужна какая-то БД. Когда заранее неизвестно, что точно от БД требуется, но хорошо бы, чтобы БД умела всё, мало ли что понадобится. MongoDB (как и MySQL) такая и есть.
Зато Монго очень проста для понимания человеку, пересаживающемуся с SQL. Проще всего Монго воспринимать как такую SQL-таблицу, в которой колонки заранее не приколочены. Всё остальное очень похоже на SQL.
Всё, что нужно знать про Angular – это то, что если вы писали на php например<div>Width = <?php echo (width/2.54); ?>см</div>
, с помощью Angular вы будете писать<div>Width = { {someObj.width/2.54;}}см</div>
.
Оно имеет все те же родовые травмы, что и php – фрагментарность, недекларативность и “размазанность” кода, который затруднительно разделять на независимые компоненты.
Зато оно позволяет очень быстро делать простые какие-то проекты с несложным интерактивом.
UPD. После написания поста в ЖЖ вскрылась уязвимость. Код Angular выше исполнялся и заменялся на null, пришлось вставить пробел между { и {. Таким образом мы имеем явную проблему с Angular – типа XSS. Пусть оно называется XSAS – cross site angular scripting. Чёто не особо улыбается проверять юзеринпуты на то, могут ли они быть Angular-кодом.
В любом случае MEAN – это отличная альтернатива LAMP. Уже вовсю появляются хостинги под него (Nodejitsu, Heroku), codebase под js растёт бешенными темпами, оно всё модульное и легко настраивается.
Но это неуниверсальное решение для небольших проектов.
Тут вот в Казани 737 разбился. И начались, конечно, спекуляции, что возраст, дескать, у самолёта, что вы хотите – старое корыто.
Оно действительно старое корыто, но тут есть нюанс. Сам по себе возраст самолёта, в чистом виде, не главное для безопасности. Лететь на старом унитазе неприятно каэш, но не более. По идее.
Например, у нас есть два лайнера – один выполняет по одному 6-часовому рейсу в день, а второй – по четыре часовых рейса. И даже если оба были выпущены в один день и не отлетали назначенные на конструкции ресурс, второй будет изношен существенно сильней, чем первый.
Каждый взлёт – это наддув кабины (искусственное повышение давления, чтобы пассажиры и экипаж на высоте 10км дышать могли). Наддув не безобидная для конструкции операция – на высоте 10км внешнее давление всего 1/4 от давления на поверхности, а в салоне – 3/4 от нормального. Итого, если посчитать для 737-800, разрывающее усилие составит порядка 2 тонн (3.76м × 40м × пи × 50000Па, получим силу в ньютонах). Сосредоточенные мгновенные усилия могут быть кратно выше.
Это не мелочи, Comet 1 с квадратными окнами буквально распадались в воздухе на куски из-за неучёта усталости металла при проектировании. По уголкам окошек металл рвался, как бумага.
Теперь посадка. Это выпуск механизации, серьёзная нагрузка на шасси и силовой каркас, знакопеременные нагрузки на подвески и крыло при реверсе и тд.
В 737 порядка 3000000 (3 миллиона) деталей в общей сложности. Понятно, что процедуры проверки техсостояния очень хорошо отработаны, но просто невозможно в такой системе проверить всё.
Так вот про казанский 737 можно две вещи сказать – во-первых, он старое корыто, во-вторых, эксплуатировали его в хвост и в гриву. Плюс посадили в него пилотами дядечек с очень небольшим налётом – ну и когда что-то в старом корыте пошло не так, они погубили себя, пассажиров и лайнер.
Будут валить на пилотов каэш, хотя по-хорошему тут надо за яйца вешать собственников и менджемент.