Непонятная российская привычка

Гуг­ло­кар­ты посто­ян­но обнов­ля­ют покры­тие. Решил попу­те­ше­ство­вать по местам, где был в дет­стве, в част­ном сек­то­ре. Так ведь не уви­дел нихе­ра. Пото­му что вез­де, блин, где толь­ко мож­но, сде­лан двух­мет­ро­вый забор из проф­на­сти­ла, сквозь кото­рый не вид­но ниче­го. Вот едешь по ули­це как по под­зем­но­му тун­не­лю, и если бы не вер­хуш­ки дере­вьев и домов, ино­гда выгля­ды­ва­ю­щие из-за листов гоф­ри­ро­ван­ной ста­ли, так было бы пол­ное впе­чат­ле­ние. Зачем это? Поче­му? С какой целью? Это, при­чём, не совет­ская при­выч­ка. Забо­ры вокруг участ­ков, без­услов­но, неред­ко были, но они a. были низ­ки­ми b. были не сплош­ны­ми, сквозь них было вид­но: из раби­цы или тра­ди­ци­он­но — шта­кет­ник. Это какая-то новая при­выч­ка, и реши­тель­но непо­нят­но, отку­да она взя­лась. Могу пред­ло­жить толь­ко два вари­ан­та — либо в Рос­сии сверх­вы­со­кий уро­вень пре­ступ­но­сти, и сталь­ной забор есть спо­соб уве­ли­чить сохран­ность иму­ще­ства, либо это сверх­ком­пен­са­ция за совет­ское вре­мя, когда де-факто отсут­ство­ва­ла част­ная соб­ствен­ность. Так что теперь сра­зу же чело­век, как поку­па­ет зем­лю, её сра­зу ого­ра­жи­ва­ет, мол, МОЁ!!!

Меня пару раз род­ствен­ни­ки тоже спра­ши­ва­ли, мол, забор у тебя вокруг участ­ка есть? А нахре­на он мне? Ну, как, надо же забор — отве­ча­ют. Зачем? Вот зачем вокруг участ­ка нужен забор? Не, я пони­маю там, если на фер­ме надо сад от ско­ти­ны отго­ро­дить. Ну или ого­ро­дить зад­ний двор с бас­сей­ном для при­ват­но­сти. А вот так, вокруг все­го обыч­но­го жило­го участ­ка, накой? Внят­но так никто и не объ­яс­нил.

Охренеть год начался

Отец и дочь погиб­ли в авиа­ка­та­стро­фе неболь­шо­го част­но­го само­лё­та. Отца зва­ли Тай­лер Уокер. Это тот самый Тай­лер, с кото­рым мы охот­ни­чьий лабаз стро­и­ли. Не ска­жу, что мы были прям близ­ки­ми дру­зья­ми, но всё же. Семью жал­ко — дети оста­лись без отца, биз­нес без вла­дель­ца, дочь погиб­ла.

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

При­чи­ны ката­стро­фы пока неяс­ны, но судя по все­му, отказ дви­га­те­ля сра­зу после взлё­та. Очень хре­но­вая полом­ка — нет ни высо­ты, ни ско­ро­сти. Если тебя зовут Сал­лен­бер­гер, может, ты и поса­дишь само­лёт хоть на реч­ку. Но чаще слу­ча­ет­ся как в Пари­же с Кон­кор­дом, хло­бысь и всё.

Мелкоскоп

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

Вспом­нил дет­ство золо­тое, уро­ки при­ро­до­ве­де­ния. Набрал воду в бли­жай­шей луже, кап­нул на пред­мет­ные стёк­ла, сде­лал пре­па­рат. На радость детей, в луже ока­за­лась мас­са раз­но­об­раз­ных живот­ных! Не знаю, что за чер­вя­чок, не мик­ро­био­лог ни разу:

Нако­лен­ная съём­ка теле­фо­ном даёт туе­ву хучу хро­ма­ти­че­ских абер­ра­ций. Пере­вёл всё в ЧБ.

При­коль­ная игруш­ка, конеч­но. Для взрос­лых целей не очень годит­ся, прав­да — мне нуж­но что-то с уве­ли­че­ни­ем помень­ше, на мик­ро­схе­мы и на лез­вия гля­деть.

Пнём Линукс

Есть у меня флеш­ка на 128 гига­байт. Вин­да её фор­ма­ти­ру­ет NTFS при­мер­но секун­ды две. Та же самая флеш­ка, воткну­тая в Линук­со­вую маши­ну, фор­ма­ти­ру­ет­ся ext4 уже пол­ча­са. И кон­ца-края это­му про­цес­су не вид­но.

Совре­мен­ная, дру­же­ствен­ная поль­зо­ва­те­лю опе­ра­ци­он­ная систе­ма, да.

PS: Не гово­ря уже о том, что NTFS в сто раз кру­че ext4. На флеш­ке, прав­да, не так важ­но.

О теократии

Ну, вот при­мер­но так выгля­дит закон «Об оскорб­ле­нии чувств веру­ю­щих», воз­ве­дён­ный в абсо­лют:

Паки­стан­ский суд при­го­во­рил про­фес­со­ра к смерт­ной каз­ни за «анти-ислам­ское бого­хуль­ство».

В самом Коране, кста­ти, каз­ни за веро­от­ступ­ни­че­ство нет. Но она есть в Шари­а­те. Нико­гда, кста­ти, это­го не пони­мал в Исла­ме — как это так полу­ча­ет­ся, что сун­на (жиз­не­опи­са­ние) и таф­си­ры (тол­ко­ва­ния) почи­та­ют­ся наря­ду с самим сло­вом Про­ро­ка (да бла­го­сло­вит его Аллах и при­вет­ству­ет).

В хри­сти­ан­стве, прав­да, та же жопа. Хри­стос по очень мно­гим вопро­сам не выска­зы­вал­ся, одна­ко по ним выска­за­лись апо­сто­лы (напри­мер, Павел). И — смот­ри ж ты — сло­ва Пав­ла при­ни­ма­ют­ся, а тот факт, что Иисус ниче­го на эту тему не ска­зал (то-есть, види­мо, это было настоль­ко несу­ще­ствен­но, что всем долж­но быть похер), во вни­ма­ние не при­ни­ма­ет­ся. Нико­гда не пой­му, и вме­ня­е­мо­го объ­яс­не­ния не видел.

Доширак-бургер

О боги! Что это? Вот уж воис­ти­ну был прав Кар­лин — «Аме­ри­кан­цы сожрут реши­тель­но всё! Если вы зав­тра откро­е­те лавоч­ку по про­да­же жаре­ных ено­то­вых жоп на палоч­ке, люди их купят и съе­дят.»

Экий бардак

На про­сто­рах Юту­ба наткнул­ся на испы­та­ния вос­ста­нов­лен­но­го дви­га­те­ля от аме­ри­кан­ско­го тан­ка М4 «Шер­ман». Что мне пока­за­лось очень инте­рес­ным — так то, что этот дви­га­тель Кон­ти­нен­тал R‑975 явля­ет­ся звез­до­об­раз­ным! То-есть, это авиа­ци­он­ный дви­га­тель, кото­рый поста­ви­ли в этот танк. 9 цилин­дров, аж 16 лит­ров рабо­чий объ­ём. И, кста­ти, не толь­ко на «Шер­ман» его ста­ви­ли. Аме­ри­кан­ский истре­би­тель тан­ков М‑18 «Хелл­кет» тоже имел этот дви­га­тель. Всё это, конеч­но, было не от хоро­шей жиз­ни. Тан­ки тре­бо­ва­лись ПРЯМЩАС, а вот дви­га­те­лей для них раз­ра­бо­та­но не было. Взя­ли то, что уже было.

Но даль­ше было инте­рес­нее. Выяс­ни­лось, что на тан­ки «Шер­ман» раз­ных моди­фи­ка­ций ста­ви­лись аж 9 (девять!) раз­ных типов дви­га­те­лей. Аме­ри­кан­ские вой­ска пред­по­чи­та­ли ста­рый доб­рый Форд V8 GAA. Рус­ским постав­ля­ли тан­ки со сдво­ен­ным дизе­лем Дже­не­рал Моторс 6046, так как у СССР соляр­ки было хоть залей­ся, а вот высо­ко­ок­та­но­во­го бен­зи­на для авиа­ци­он­ных дви­га­те­лей — йок (совет­ские попыт­ки сде­лать дизель­ные само­лё­ты — это всё тоже отту­да, не от хоро­шей жиз­ни). Да, СССР вое­вал в том чис­ле и на аме­ри­кан­ских тан­ках, пред­ставь­те себе. Есть даже мему­а­ры — «Тан­кист на ‘ино­мар­ке’ », отлич­ные. Сдво­ен­ный дизель давал воз­мож­ность запу­стить толь­ко поло­ви­ну дви­га­те­ля, и тихо-тихо, на мяг­ких лапах, зай­ти в тыл к фаши­стам, а там уж дать им при­ку­рить. Пре­крас­ные мему­а­ры, с удо­воль­стви­ем про­чи­тал.

Имен­но с это­го дизе­ля «Дже­не­рал Моторз» СССР потом ско­пи­ро­вал дви­га­тель ЯАЗ-206.

Но самый сок инже­нер­ной мыс­ли постав­ля­ли в Бри­та­нию. Туда шли «Шер­ма­ны» с дви­га­те­лем «Край­слер» А57 муль­ти­банк. Кото­рый пред­став­лял собой ПЯТЬ РЯДНЫХ ШЕСТИЦИЛИНДРОВЫХ дви­га­те­лей, рас­по­ло­жен­ных вокруг колен­ва­ла в цен­тре. Ито­го в нём было 30 (ТРИДЦАТЬ!!!!) цилин­дров, общим объ­ё­мом 20.5 лит­ров. Веси­ла эта хрень — почти две с поло­ви­ной тон­ны, а «Край­слер» клял­ся-божил­ся, что зато даже при выхо­де 12 цилин­дров из строя танк сохра­нит бое­спо­соб­ность. «Кон­ти­нен­тал» весил все­го три­ста с неболь­шим кило­грамм, чисто для срав­не­ния, хотя спра­вед­ли­во­сти ради надо ска­зать, что Край­слер имел жид­кост­ное охла­жде­ние, так что две с поло­ви­ной тон­ны — это с ради­а­то­ром и про­чи­ми при­чин­да­ла­ми. Кон­ти­нен­тал же, как и поло­же­но авиа­ци­он­но­му дви­га­те­лю тех лет, охла­ждал­ся воз­ду­хом.

В‑общем, понят­но, что всё это было резуль­та­том попы­ток хоть как-то под­дер­жи­вать бое­спо­соб­ность, и было мерой вынуж­ден­ной. Но 9 настоль­ко раз­ных дви­га­те­лей в один и тот же танк… вот это да.

PHP порадовал

Нашёл ста­рень­кий при­мер, кото­рый, ока­зы­ва­ет­ся, до сих пор рабо­та­ет.

var_dump(md5(‘240610708’) == md5(‘QNKCDZO’));

Выда­ёт bool(true).

То-есть, MD5 хеши для строк ‘240610708’ и ‘QNKCDZO’ явля­ют­ся оди­на­ко­вы­ми (с точ­ки зре­ния PHP).

С нор­маль­ной точ­ки зре­ния хеши неоди­на­ко­вы. Пер­вый 0e462097431906509019562988736854, вто­рой — 0e830400451993494058024219903391.

Но. Опе­ра­тор срав­не­ния == в PHP может на ходу пре­об­ра­зо­вать тип дан­ных (type mangling). Эти стро­ки оно пере­де­лы­ва­ет в циф­ры в экс­по­нен­ци­аль­ной запи­си. Всё, что до ‘e’ — ман­тис­са, всё, что потом — поря­док. А так как ман­тис­са у нас 0, её мож­но умно­жать хоть на чёр­та лысо­го, она всё рав­но оста­нет­ся нулём. 0 == 0, есте­ствен­но, воз­вра­ща­ет­ся true.

Вот, что слу­ча­ет­ся, когда кто-то при­ду­мы­ва­ет свой язык про­грам­ми­ро­ва­ния с син­так­си­сом Си, но что-то запи­сан­ное этим син­так­си­сом, рабо­та­ет не как в Си.

В PHP дан­ная ошиб­ка про­грам­ми­ста (про­грам­ми­ста ли?) лечит­ся исполь­зо­ва­ни­ем спе­ци­аль­но­го опе­ра­то­ра срав­не­ния === вме­сто ==, т.е. стро­гим срав­ни­ва­ни­ем вме­сто обыч­но­го, без пре­об­ра­зо­ва­ния типов.

Вот имен­но поэто­му не сле­ду­ет учить­ся про­грам­ми­ро­ва­нию на язы­ках со сла­бой и дина­ми­че­ской типи­за­ци­ей дан­ных. На пито­нах, пер­лах и php мож­но, напри­мер, срав­нить «1» и 5. А Джа­ва неза­мед­ли­тель­но пошлёт погро­ми­ста нахер: не срав­ни­вай божий дар с яич­ни­цей. Плюс на Джа­ве то, что выгля­дит так как на Си, рабо­та­ет так же. Что, на мой взгляд, архи­вер­но.