Умер Никлаус Вирт

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

if (a = b) {}

И это выпол­нит­ся! Так как здесь = рас­смат­ри­ва­ет­ся как опе­ра­тор при­сво­е­ния, и соот­вет­ствен­но, воз­вра­ща­ет-то он True, пото­му что при­сво­е­ние про­изо­шло успеш­но! А на Пас­ка­ле = это опе­ра­тор срав­не­ния внут­ри If, а при­сво­е­ние дела­ет­ся как a := b

Ну, а на сях при­шлось опе­ра­тор срав­не­ния делать == , что неред­ко при­во­ди­ло к ляпам. Про Джа­вас­крипт с его раз­но­об­ра­зи­ем =, ==, и аж === даже начи­нать не буду. В топ­ку, сра­зу.

Но, навер­ное, глав­ная заслу­га Вир­та это даже не язык Пас­каль. А в том, что уси­ли­я­ми Вир­та и Дейкс­т­ры был убит опе­ра­тор GoTo. Ну, в язы­ках высо­ко­го уров­ня. Так-то все эти if и while, и про­чие for ком­пи­ли­ру­ют­ся-то в ассем­бле­ров­ский JMP всё рав­но.

Пусть он обре­тет покой.

АйТишный Йумар

В любой сфе­ре есть свой про­фес­си­о­наль­ный юмор. АйТи не исклю­че­ние. Увы, шут­ки пой­мут не все.

Я бы рас­ска­зал вам шут­ку про UDP, но, боюсь, не дой­дёт.

–Хочешь шут­ку про UDP?
–Да ну нафиг, три раза повто­рять при­дёт­ся.

TCP захо­дит в бар и обра­ща­ет­ся к бар­ме­ну:
–Я хочу пива.
–Ты хочешь пива?
–Да, я хочу пива.

Типов людей в мире все­го 10. Одни пони­ма­ют дво­ич­ную запись, а дру­гие нет.

–Из-за кови­да мы пере­де­ла­ли все наши при­ло­же­ния для рабо­ты с UDP вме­сто TCP.
–Поче­му?
–Что­бы избе­гать руко­по­жа­тий.

И послед­няя, люби­мая, но, увы, рабо­та­ю­щая толь­ко по-англий­ски из-за игры слов.

A SQL query walks into a bar and and sees two tables. He walks up to them and says, «Do you mind if I join you?»

Объ­яс­не­ния для тех, кто не понял.
Continue reading «АйТиш­ный Йумар»

Не прошло и нескольких часов…

…как оче­ред­ную дырень в том же самом, уже набив­шем оско­ми­ну, спе­ку­ля­тив­ном выпол­не­нии кода, в оче­ред­ной раз нашли уже в про­цес­со­рах Интел серии Core, от 6‑го до 11-го поко­ле­ния. Окре­сти­ли Downfall.

Може­те озна­ко­мить­ся по ссыл­ке. В этот раз кра­дут дан­ные, исполь­зуя спе­ку­ля­тив­ную пере­сыл­ку дан­ных в век­тор­ной инструк­ции Gather (часть рас­ши­ре­ния AVX2/AVX512, ЕМНИП).

Я же гово­рил — это музы­ка будет веч­ной, пока от спе­ку­ля­тив­но­го испол­не­ния не отка­жут­ся совсем. А не отка­жут­ся от него мини­мум пока ско­рость опе­ра­тив­ной памя­ти не вырас­тет на несколь­ко поряд­ков. А это про­изой­дёт… даже не знаю, когда. Может быть, и нико­гда.

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

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

А вот кому жар­ко? А жар­ко про­вай­де­рам, напри­мер, облач­ных ресур­сов. Арен­ду­ешь ты, такой кра­си­вый, у них часть вычис­ли­тель­но­го узла. Какой ты на этой части узла будешь запус­кать код — одно­му Гефе­сту извест­но. У про­вай­де­ра нет ника­ко­го кон­тро­ля над тво­им кодом. А если ты запу­стишь код, вору­ю­щий дан­ные у сосе­да, с кото­рым вы дели­те вычис­ли­тель­ный узел, что тогда будет? AWS, Azure и про­чие очень мно­го денег и уси­лий тра­тят на обес­пе­че­ние без­опас­но­сти одно­го жиль­ца, от дру­го­го жиль­ца. И откры­тие вот таких вот дыр им здо­ро­вья… ох, не при­бав­ля­ет.

Карманный Скайнет

По навод­ке ув. ny-quant. На видео­кар­те я запу­стить не смог, пото­му что у меня лап­ки. С фор­ком GPT4AllGPU поче­му-то надо при­став­лять отдель­ную модель LLaMa, кото­рую надо ска­чи­вать само­му, и я не смог разо­брать­ся, какую. Поэто­му запу­стил на про­цес­со­ре.

С тру­дом, надо ска­зать, запу­стил. У меня восемь пень­ков i7 деся­то­го поко­ле­ния и 64 гек­та­ра памя­ти:

Ответ на про­стой вопрос (как луч­ше все­го гла­дить кош­ку) зани­ма­ет мину­ту-две. А вот кре­а­тив­ная дея­тель­ность (напи­ши мне поэ­му про сисад­ми­на) уже йок, может пили­кать минут десять и боль­ше.

Запус­каю через тре­тий питон внут­ри WSL2.

Уста­но­вить:

pip3 install nomic

Потом в интер­ак­тив­ном python3:

from nomic.gpt4all import GPT4All (в пер­вый раз зани­ма­ет очень мно­го вре­ме­ни, ска­чи­ва­ет натре­ни­ро­ван­ную модель)
m = GPT4All()
m.open()
m.prompt(«Write me a short story about a kitten»)

Я нари­со­вал про­стей­ший код что­бы общать­ся. Увы, грё­ба­ное фор­ма­ти­ро­ва­ние навер­ня­ка похо­ро­нит отсту­пы:

#!/usr/bin/python3
from nomic.gpt4all import GPT4All
m=GPT4All()
m.open()
while(True):
prompt = input("Please ask me something or say STOP to quit: ")
if (prompt == "STOP"):
break
else:
response = m.prompt(prompt)
print(response)

Поиг­ра­юсь, но ресур­со­ём­кость, конеч­но, ахо­вая.

Update: барах­ло пол­ное. ЧатЖПТ хотя бы пра­виль­но на про­стые вопро­сы отве­чал. Этот даже не зна­ет, как запу­стить внеш­нюю про­грам­му с ука­за­ни­ем пара­мет­ров из скрип­та на Пау­эр­Шел­ле.

Адобе Светлячок

Ув. dibr выска­зал­ся, мол, в послед­нее вре­мя систе­мы ИИ вдруг полез­ли как чор­ти­ки из таба­кер­ки. Выка­ти­ли DALL‑E и как пло­ти­ну про­рва­ло — тут же появил­ся Миджёр­ни, Стей­бл Диф­фью­жен и про­чая. Появил­ся ChatGPT и ОПА — тут же выско­чил Мик­ро­софт со сво­им робо­том-гово­рил­кой, Гугл под­су­е­тил­ся.

И это дей­стви­тель­но так. По-мое­му, внут­ри тех­но­ло­ги­че­ских ком­па­ний назре­ла какая-то кри­ти­че­ская мас­са нара­бо­ток на ней­рон­ных сетях, сей­час она рва­ну­ла и мы наблю­да­ем этот ядер­ный взрыв и раз­лёт оскол­ков.

И гово­рил­ки теперь могут дей­стви­тель­но мно­гое. Напри­мер, у меня был вопрос в обла­сти IT как сде­лать одну вещь на Пау­эр­Шел­ле. Я дол­го и без­успеш­но искал ответ в интер­не­тах, и никак не мог най­ти. Сотруд­ник надо­умил — «спро­си у ChatGPT!» И дей­стви­тель­но, спро­сил — и мне тут же дали 100% рабо­чее реше­ние. Робот-гово­рил­ка во мно­го раз кру­че поис­ко­вых систем.

Что до нали­чия тут како­го-то разу­ма… доро­гие мои чита­те­ли, я не вижу тут разу­ма. Есть такая вещь — цепь Мар­ко­ва. Её при­ду­мал выда­ю­щий­ся рус­ский мате­ма­тик Андрей Андре­евич Мар­ков-стар­ший. Что это такое? Ну, дета­ли мож­но най­ти хоть в Вики­пе­дии, но вот на про­стом при­ме­ре мож­но взять любое сло­во. После­до­ва­тель­ность букв в нём неслу­чай­на. Напри­мер, после соглас­ных чаще идёт глас­ная, чем соглас­ная. И все эти веро­ят­но­сти мож­но вычис­лить, после чего напи­сать гене­ра­тор слов, где веро­ят­ность воз­ник­но­ве­ния одной бук­вы после дру­гой будет сов­па­дать с наши­ми изыс­ка­ни­я­ми. К сло­ву ска­жу, что цепи Мар­ко­ва широ­ко упо­треб­ля­ют­ся для взло­ма паро­лей, так как паро­ли, создан­ные чело­ве­ком, тоже под­чи­ня­ют­ся опре­де­лён­ным зако­нам.

Все эти робо­ты-гово­рил­ки — это МЕГА-натре­ни­ро­ван­ные МЕГА-слож­ные МЕГА-гене­ра­то­ры МЕГА-цепей Мар­ко­ва, их более рас­ши­рен­но­го вари­ан­та, в кото­рых не бук­вы, а сло­ва зави­сят друг от дру­га, от их после­до­ва­тель­но­сти в пред­ло­же­нии, и от дру­гих пред­ло­же­ний. Это, без­услов­но, очень кру­то, и дей­стви­тель­но заслу­жи­ва­ет похвал, но это не дела­ет систе­му разум­ной. Во вся­ком слу­чае, ПОКА, на теку­щий момент.

Ска­жу толь­ко, что на мой взгляд, нали­чие разу­ма пред­по­ла­га­ет нали­чие созна­ния, но что такое созна­ние, опре­де­ле­ние я дать уже не возь­мусь, кро­ме как через рево­лю­ци­он­ное чутьё, а по-дру­го­му я не дорос ишшо.

Всё это была при­сказ­ка.

Хотел я поде­лить­ся ещё одним инстру­мен­том для созда­ния «кар­ти­нок из тек­ста», Адо­бе Файр­флай (Свет­ля­чок), кото­рый сей­час про­хо­дит бета-тести­ро­ва­ние. Так как я рисо­вать не умею от сло­ва «совсем», к моим кри­вым рукам при­хо­дит­ся при­став­лять робо­та, нехай рису­ет за меня.

Ска­жу вот что. Как насто­я­ще­му худож­ни­ку, так и худож­ни­ку, воору­жён­но­му ИИ, про­ще все­го рисо­вать то, чего нет. Как гла­сит древ­няя леген­да, рисо­вать демо­на про­ще, чем соба­ку — ибо демон есть суще­ство вооб­ра­жа­е­мое, каким ты его видишь — таким он и есть. А как выгля­дят соба­ки, зна­ют все, и нари­со­вать её так, что­бы было понят­но, что это соба­ка — уже непро­сто. Даёшь зада­чу ИИ нари­со­вать ино­пла­нет­ный корабль — оно рису­ет. И хрен при­де­рёшь­ся, ты что ли, сам его видел, что­бы ска­зать, что «непо­хо­же»? А вот дать зада­чу рисо­вать что есть, осо­бен­но людей — и на выхо­де полу­ча­ет­ся настоль­ко забо­ри­стая пур­га, что ника­ких гри­бов с кета­ми­ном не надо.

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

«Кра­си­вая улы­ба­ю­ща­я­ся ази­ат­ская моло­дая жен­щи­на, оде­тая в пла­тье в крас­ную кле­точ­ку, соби­ра­ет све­тя­щи­е­ся цве­ты на зака­те в лесу»:

Через откро­вен­ную жопь тут сде­ла­на толь­ко одна деталь — рука­ва на пла­тье не сов­па­да­ют, они раз­ные. И ворот­ник какой-то стран­ный. Но вы погля­ди­те на этот свет! И как хоро­шо он пока­зан — как закат­ный, так и свет от цве­тов! Я впе­чат­лён, серьёз­но.

И ещё одна. Вот тут уже есть серьёз­ные арте­фак­ты — паль­цы, арте­фак­ты на пла­тье. Но очень недур­но, на мой взгляд. Если не с колёс пуб­ли­ко­вать, а хотя бы дора­бо­тать в Шопе — вполне норм!

Свет отра­бо­тан отлич­но. Реко­мен­дую.

Кро­ме того, когда Свет­ляч­ка нако­нец допи­лят, его кар­тин­ки с гаран­ти­ей не будут нару­шать ничей копи­райт — Адо­бе кля­нёт­ся-божит­ся, что тре­ни­ро­вал ней­ро­се­ти на сво­их соб­ствен­ных сто­ко­вых кар­тин­ках (кото­рых у него до пупа) и на кар­тин­ках с откры­тым копи­рай­том. Учи­ты­вая нали­чие уже суще­ству­ю­щи­ей тол­пы судеб­ных исков, кому-то может быть кри­тич­но.

Лопух, а не дальнобойщик

Целую неде­лю зани­мал­ся сво­им полу­при­це­пом: докра­ши­вал, дова­ри­вал, досвер­ли­вал и допа­и­вал. Нако­нец-то почти всё доде­лал — за одним неболь­шим, но очень непри­ят­ным исклю­че­ни­ем.

При­це­пы поло­же­но не толь­ко надёж­но сцеп­лять с тяга­чом, но и под­клю­чать на них све­то­тех­ни­ку: стоп-сиг­на­лы, габа­ри­ты, пово­рот­ни­ки, и про­чая. На боль­шин­стве стан­дарт­ных аме­ри­кан­ских полу­при­це­пов исполь­зу­ет­ся плос­кий четы­рёх­кон­такт­ный разъ­ём (flat four plug): мас­са, левый пово­рот­ник, пра­вый, габа­ри­ты. А где стоп-сиг­нал? Стоп сиг­нал — оба пово­рот­ни­ка вклю­ча­ют­ся сра­зу. Так что стан­дарт­ный аме­ри­кан­ский полу­при­цеп пока­зы­ва­ет пово­рот одним из стоп-сиг­на­лов. А фонарь зад­не­го хода тут отсут­ству­ет как класс.

На моём пика­пе семи­кон­такт­ный разъ­ём. Ну, я поду­мал, что он более про­дви­ну­тый, раз­лы­сил лоб и уста­но­вил в полу­при­цеп зад­ние фона­ри с при­це­па как у боль­ших боро­да­тых даль­но­бой­щи­ков. Что­бы, пони­ма­ешь, и фонарь зад­не­го хода был и пово­рот­ни­ки были ж0лтенькие — так в моём пони­ма­нии эсте­тич­нее и пра­виль­нее, чем сто­па­ми сиг­на­лить. И уго­дил в фига­чеч­ную — ибо три допол­ни­тель­ных кон­так­та добав­ля­ют толь­ко лиш­ний про­вод с +12 (вклю­чать, напри­мер, в бук­си­ру­е­мом доме на колё­сах свет), кон­такт для элек­тро­ме­ха­ни­че­ских тор­мо­зов и фонарь зад­не­го хода. А выде­лен­ных пово­рот­ни­ков там как не было, так и нет.

Очень обид­но ста­ло, в первую оче­редь — на себя. При­це­пил сей­час так, что­бы сиг­на­лить сто­па­ми, а пово­рот­ни­ки у меня сей­час так, полу­ча­ют­ся… для мебе­ли.

Одна­ко быст­ро выяс­ни­лось, что не я один такой. И что, ока­зы­ва­ет­ся есть такая шту­ка, кото­рая из двух про­во­дов для пово­рот­ни­ко­в/стоп-сиг­на­лов дела­ет три — два пово­рот­ни­ка плюс стоп-сиг­нал. Но она сто­ит денег, во-вто­рых, боит­ся вла­ги, а в‑третьих, в интер­не­тах пишут, что у неё внут­ре… нет, не неон­ка, а обыч­ное реле, и что она из-за это­го очень пло­хо рабо­та­ет со све­то­ди­о­да­ми — надо нагру­зоч­ные рези­сто­ры вешать.

Я начал думать, и в прин­ци­пе-то не долж­но же быть так слож­но — нель­зя ли тут обой­тись тупо логи­че­ски­ми эле­мен­та­ми XOR и AND с обвяз­кой? AND — если оба пово­рот­ни­ка вклю­че­ны, то это не пово­рот­ни­ки, а сто­пы. А если толь­ко один (XOR) — то пово­рот­ник.

Но тут же осо­знал, что не полу­чит­ся — а как быть, если при тор­мо­же­нии вклю­чить пово­рот­ник? Тогда ведь во вре­мя отклю­че­нии при мига­нии одно­го из пово­рот­ни­ков XOR решит, что он один такой вклю­чён — и зажжёт пово­рот­ник про­ти­во­по­лож­ный, потен­ци­аль­но созда­вая нехо­ро­шую ситу­а­цию на доро­ге. И что теперь? Мик­ро­кон­трол­лер, что ли, туда запи­хи­вать, с отсле­жи­ва­ни­ем состо­я­ний? «А пять секунд назад нача­ли тор­мо­же­ние, зна­чит, теперь пре­ры­ва­ние одно­го рас­смат­ри­вать как пово­рот­ник»? Нет, я могу, конеч­но, но… блин.

Мне даже инте­рес­но ста­ло, а как же в кон­вер­те­ре они эту про­бле­му реши­ли. Неуже­ли там мик­ро­кон­трол­лер? Что-то я недо­пет­ри­ваю, долж­но всё быть про­ще.

PS: Рос­кош­ное соче­та­ние тегов, рас­кош­ное. Люб­лю, когда так полу­ча­ет­ся — сра­зу мно­го все­го.
PPS: Инте­рес­но, мож­но ли моди­фи­ци­ро­вать разъ­ём так, что­бы сто­пы не посы­лать на пово­рот­ни­ки? Тогда я бы сто­пы брал с кон­так­та для элек­тро­ме­ха­ни­че­ских тор­мо­зов.

PZEM-004

У меня дома с элек­три­че­ством как-то не очень в послед­нее вре­мя. Отку­да-то при­ле­та­ет очень мно­го гар­мо­ник, а один из моих бес­пе­ре­бой­ни­ков часто щёл­ка­ет релюш­ка­ми.

Решил поме­рять, как у меня вооб­ще с напря­же­ни­ем, может быть дей­стви­тель­но часто про­па­да­ет? Дол­го чесал репу, думал поку­пать транс­фор­ма­тор для двер­ных звон­ков, делать раз­вяз­ку… но всё ока­за­лось про­ще. По сове­ту ув. ua9uqb купил пла­ту серии PZEM-004, где всё это уже было.

Пла­ту раз­ра­ба­ты­ва­ли и дела­ли китай­цы, но я был очень при­ят­но удив­лён её про­ду­ман­но­стью.

Осно­вой пла­ты явля­ет­ся какая-то ИС V9881D, на кото­рую я схо­ду не нашёл ника­кой доку­мен­та­ции. Пред­по­ло­жу, что это какая-то китай­ская схе­ма для элек­три­че­ских счёт­чи­ков.

Вид пла­ты свер­ху:

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

Сни­зу пла­та тоже сде­ла­на хоро­шо. Пур­пур­нень­ким я обвёл кон­такт, куда под­во­дит­ся фаза. Меж­ду ней и нулём тоже сде­лан вырез, и зем­ля­ной поли­гон отде­лён от неё почти­тель­ным рас­сто­я­ни­ем:

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

Кто-то под­цеп­ля­ет­ся к ней через арду­и­но и про­чие мик­ро­кон­трол­ле­ры, но я посту­пил про­ще — при­об­рёл с ней в ком­плек­те шну­рок USB-serial, и под­це­пил к ста­рень­ко­му нет­бу­ку под Убун­той Мейт. Если таки йох­нет, то не жал­ко.

За что мы любим язык про­грам­ми­ро­ва­ния Питон? Не за косо­ру­кий син­так­сис и не за неудоб­ство дебаг­гин­га. Мы любим язык про­грам­ми­ро­ва­ния Питон за то, что для него есть туе­ва хуча биб­лио­тек, спо­соб­ных решать самые раз­ные про­бле­мы. В том чис­ле — и биб­лио­те­ка с обще­ни­ем с моду­ля­ми PZEM-004, modbus-tk, вот так, напри­мер.

Поэто­му вся про­грам­ма сво­дит­ся к деся­ти строч­кам кода, выво­дя­щим всё в файл CSV, кото­рый затем мож­но скор­мить чему угод­но, хоть эксе­лю. Счи­ты­вать пока­за­ния моду­ля полу­ча­ет­ся при­мер­но два раза в секун­ду, так что за три дня я насо­би­рал ста­ти­сти­ки аж на сто два­дцать мега­байт. Эксель и Пау­эр Би-Ай дол­го крях­те­ли, но визу­а­ли­зи­ро­вать всё это так и не смог­ли — у меня кон­чи­лось тер­пе­ние.

Опять же, дру­зья, за что мы любим Питон? За то, что там есть plotly и pandas, при помо­щи кото­рых в три строч­ки мож­но визу­а­ли­зи­ро­вать хоть чор­та бри­то­го, хоть лысо­го, хоть боро­да­то­го.

Полу­чи­лось, в общем, не очень инте­рес­но — напря­же­ние дер­жа­лось очень непло­хо, от 119.0 вольт до 122.3. Ну, отри­ца­тель­ный резуль­тат — тоже резуль­тат. Зна­чит, не в элек­три­че­стве было дело. Бес­пе­ре­бой­ник такой. Надо будет его заме­нить, пока он мне бата­рей­ку не испор­тил.

А модуль PZEM-004 крайне реко­мен­дую, полез­ный.

Pwn2Own

Есть такая заба­ва у хаке­ров, что-то типа Олим­пи­а­ды, назы­ва­ет­ся Pwn2Own. Соби­ра­ют­ся раз­ные коман­ды, озву­чи­ва­ют­ся цели, напри­мер, «Лома­ем защи­ту Вор­да» или «Хака­ем аутен­ти­фи­ка­цию у Мик­ро­софт Тимз». Коман­ды затем под­пи­сы­ва­ют­ся выпол­нить раз­лич­но­го рода зада­чи, и по обще­му коли­че­ству задач и их слож­но­сти полу­ча­ют­ся очки и зара­ба­ты­ва­ют­ся места в общем зачё­те. Так­же коман­ды полу­ча­ют непло­хие денеж­ные при­зы — ибо кон­то­ры обыч­но пла­тят несколь­ко десят­ков тысяч дол­ла­ров за обна­ру­жен­ные дыры.

Луч­шей коман­дой ста­ли STAR Labs — меж­ду­на­род­ная коман­да хаке­ров с основ­ном из ази­ат­ских стран (Корея, Вьет­нам, и.д.). Но лич­но мне инте­рес­нее не то, кто луч­ший хакер — очень талант­ли­вых людей доволь­но мно­го, и ази­а­тов, и бра­зиль­цев, и аме­ри­кан­цев, и рус­ских. Инте­рес­нее то, какие цели хаке­ры выбра­ли для сво­ей олим­пи­а­ды, а какие были либо не в их обла­сти ком­пе­тен­ции либо были посчи­та­ны слиш­ком слож­ны­ми.

Лиде­ром по взло­ман­но­сти ока­зал­ся пол­но­стью про­пат­чен­ный теле­фон Сам­сунг S22 на ОС Андро­ид (гы-гы-гы). Его взло­ма­ли в пер­вый же день, а на тре­тий день состя­за­ния его взло­ма­ли все­го за 55 секунд, что ста­ло новым рекор­дом состя­за­ния Pwn2Own. Исполь­зо­ва­лась дыра в недо­ста­точ­но хоро­шей вали­да­ции вво­да (блин, до сих пор? в 2022 году? рех­нуть­ся). Вооб­ще этот несчаст­ный теле­фон сум­мар­но изна­си­ло­ва­ли раз десять. Жди­те обнов­ле­ний от Сам­сун­га.

А зна­е­те, какие теле­фо­ны ни одна коман­да не взя­лась ломать?

Гугл Пик­сель и Эппл айФон.

О чем это гово­рит? Да о том, блин, о чём я уже сколь­ко раз писал в этой стен­га­зе­те — когда одна и та же кон­то­ра дела­ет и само желе­зо теле­фо­на, и она же пишет к нему ОС — полу­ча­ет­ся намно­го более непро­би­ва­е­мая и намно­го менее глюч­ная плат­фор­ма, чем когда одни шлё­па­ют желе­зо, а дру­гие рису­ют к нему опе­ра­ци­он­ку. Когда «айн фир­ма, айн бет­рибс­си­стем, айн теле­фон» — воз­ни­ка­ет некая синер­гия, недо­ступ­ная про­сто сбо­ри­щу смеж­ни­ков.

Делай­те выво­ды. Сам­сун­гу пла­мен­ный при­вет в оче­ред­ной раз.

https://www.zerodayinitiative.com/blog/2022/5/18/pwn2own-vancouver-2022-the-results

Производительность PowerShell

Слу­шай­те, поче­му встро­ен­ные в шелл объ­ек­ты дан­ных име­ют такую жут­кую про­из­во­ди­тель­ность?

Вот создал я дина­мицц­кий мас­сив:

$array = @()

И после это­го я добав­ляю в него запи­си:

$array += $record

Как толь­ко коли­че­ство запи­сей в нём ста­но­вит­ся более при­мер­но двух тысяч, оно начи­на­ет про­сто ДИЧАЙШЕ тор­мо­зить. measure-command гово­рит, что на каж­дую опе­ра­цию ухо­дит аж до 10 мил­ли­се­кунд! Что, кажет­ся быст­ро? Создать мас­сив из 50 тысяч запи­сей (по совре­мен­ным мер­кам — это вооб­ще ни о чём) потре­бу­ет почти деся­ти минут вре­ме­ни.

Хоро­шо хоть, что шелл уме­ет в исполь­зо­ва­ние дотне­тов­ских объ­ек­тов:

$array = [System.Collections.ArrayList]::new()

После чего $array.Add($record) на 50 кило­за­пи­сей уле­та­ет по тру­бам про­цес­со­ра про­сто со сви­стом.

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

Искусственный Шишкин

Я все­гда очень любил кар­ти­ны Шиш­ки­на. Все они по-сво­е­му пре­крас­ны, и тени­стые «Пей­заж с охот­ни­ком», «Лес вече­ром» и свет­лые, воз­душ­ные, про­зрач­ные «Рожь» или «Пол­день».

Но увы, Аллах обде­лил меня талан­том худож­ни­ка. Вер­нее, ска­жем так — он обде­лил меня спо­соб­но­стью полу­чать удо­воль­ствие от про­цес­са рисо­ва­ния. Никто из нас не уме­ет писать кар­ти­ны от рож­де­ния. Но те, кто ЛЮБЯТ рисо­вать, и полу­ча­ют от это­го удо­воль­ствие, НЕ МОГУТ НЕ рисо­вать, и рано или позд­но, посто­ян­но прак­ти­ку­ясь, могут раз­вить нешу­точ­ный дар живо­пис­ца.

Это спра­вед­ли­во для любой обла­сти чело­ве­че­ской дея­тель­но­сти. Вот я полу­чаю удо­воль­ствие от игра­ния с ком­пью­те­ра­ми — ну, вот я этим и зани­ма­юсь, а так как мне этот про­цесс инте­ре­сен, то я прак­ти­ку­юсь в этом посто­ян­но, и посте­пен­но научил­ся вся­ко­му. То же самое мож­но ска­зать про кого угод­но. Писа­те­ли не могут не писать, пев­цы не могут не петь, гита­ри­сты не могут не играть на гита­ре, и так далее.

Ну, а меня от про­цес­са рисо­ва­ния не прёт, поэто­му рисо­вать я так нико­гда и не научил­ся.

Зато зна­е­те кто научил­ся рисо­вать? Иску­ствен­ный интел­лект! Эти самые ней­ро­се­ти, в кото­рые я уже дав­но без­на­дёж­но влю­бил­ся с того вре­ме­ни, когда создал свою первую сеть и научил её вся­ко­му. Совре­мен­ная тех­ни­ка дошла до того, что ей мож­но ска­зать при­мер­но вот так: а здесь пусть будет лес, кустар­ник, и что­бы реч­ка была, а на гори­зон­те — что­бы горы. И что­бы солн­це, песо­чек, и облач­ка. И пред­став­ля­е­те себе — оно таки рису­ет.

Вот что у меня полу­чи­лось все­го после 15 минут пры­га­ния по кноп­кам в про­грам­ме NVidia Canvas:

Чо, кру­то??? Не, ну, понят­но, что не Шиш­кин. Но для меня, для кото­ро­го «пал­ка-пал­ка-огу­ре­чик» это круп­ное дости­же­ние, это про­сто охре­нен­но. Ну, и оле­ня спра­ва я в Фото­шо­пе вкле­ил.

Конеч­но, вид­но, что лесо­ку­стар­ник рисо­ван как бы пат­тер­на­ми, взя­ты­ми из фото­гра­фий, на кото­рых эти сети тре­ни­ро­ва­ли. Но думаю, что это дело нажив­ное — NVidia Canvas сей­час толь­ко в бета-вер­сии, и её ещё допи­лят.

А как выгля­де­ло то, что делал я, ука­зы­вая сети «а вот тут лес, а вот тут реч­ка»? А вот так:

Про­грам­ма NVidia Canvas рас­про­стра­ня­ет­ся бес­плат­но, но име­ет нешу­точ­ные систем­ные тре­бо­ва­ния. Пона­до­бит­ся видео­кар­та не ниже NVidia RTX. Я как раз сего­дня про­ап­грей­дил­ся на RTX 3080, и немед­лен­но нажи­вил! Кому бы спа­си­бо ска­зать, что грё­ба­ный бит­ко­ин рух­нул, и крип­то­пи­да­ра­сы пере­ста­ли отры­вать видео­кар­ты с рука­ми?

Кста­ти, инте­рес­ный пра­во­вой вопрос — а КОМУ в дан­ном слу­чае при­над­ле­жит копи­райт на эту кар­ти­ну? Мне? Или про­грам­ме NVidia Canvas? А где нахо­дит­ся эта тон­кая грань? А когда ИИ будет обла­дать всё боль­шей и боль­шей авто­ном­но­стью, куда она сдви­нет­ся? А какие вооб­ще у нас пра­ва будут даны пол­но­му ИИ?

И вот уже на нас лас­ко­во смот­рит ста­ри­на Филип К. Дик, в обним­ку с Риком Декар­дом. За что мы любим науч­ную фан­та­сти­ку? Не толь­ко за то, что «там кру­то и про робо­тов». А в первую оче­редь за то, что имен­но фан­та­сты зада­ют вопро­сы, до кото­рых чело­ве­че­ство ещё не доду­ма­лось. А рано или позд­но на них при­дёт­ся отве­чать. Как уже сей­час при­хо­дит­ся отве­чать на вопро­сы «кого будет давить насмерть робот-авто­мо­биль, если столк­но­ве­ние неиз­беж­но?» Одно­го ребён­ка или десять бабу­шек?