Чинил ноутбук

Мой рабо­чий ноут­бук поче­му-то недав­но пере­ко­сил­ся — посре­ди кла­ви­а­ту­ры вырос холм. Разо­брал. Внут­ри ноут­бу­ка ока­за­лась бом­ба. Почти не шучу.

Спа­си­бо пла­сти­ко­вой обо­лоч­ке бата­рей­ки — она таки уло­ви­ла всю дрянь, кото­рая реши­ла отту­да вылить­ся. Вот радо­сти бы было, если бы оно про­тек­ло мне на руки или колен­ки. И заго­ре­лось бы, до кучи.

Netgear

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

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

К тому же были тут недав­но нехо­ро­шие ново­сти про их про­дук­цию:

https://www.tomsguide.com/news/netgear-router-admin-hack
https://www.pcmag.com/news/79-netgear-routers-vulnerable-to-serious-security-flaw

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

Чего буду поку­пать на заме­ну — пока не знаю. На Цис­ку у меня бюд­же­та нет — там самая дешё­вая точ­ка досту­па две­сти дол­ла­ров сто­ит. Изу­чаю вопрос. Если не Цис­ку, то, навер­ное, Линк­сис (Цис­ка им вла­де­ет). Ну или Юби­ку­и­ти.

Как ФБР ловило твиттер-хакеров

Если инте­рес­но читать про кибер-без­опас­ность, реко­мен­дую к про­чте­нию (англ):

https://www.zdnet.com/article/how-the-fbi-tracked-down-the-twitter-hackers/

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

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

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

Но быст­ро сра­бо­та­ли, молод­цы.

Замена экрана на планшете

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

Купил экран на заме­ну, поку­рил ютуб. Ока­за­лось совсем неслож­но. Акку­рат­но про­гре­ва­ем паяль­ным феном (я настро­ил его на мини­маль­ную тем­пе­ра­ту­ру в 100 гра­ду­сов Цель­сия) по пери­мет­ру, это раз­мяг­ча­ет двух­сто­рон­ний скотч, на кото­рый экран и при­кле­ен. Акку­рат­но под­цеп­ля­ем, жела­тель­но неме­тал­ли­че­ским инстру­мен­том, и сни­ма­ем экран.

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

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

Фигня этот ваш АМД

Делал копию блю­ре­ев­ско­го дис­ка, что­бы мож­но было на теле­ви­зо­ре филь­мы смот­реть. Я не могу ска­зать, что у меня очень ста­рый ком­пью­тер, всё же i7 чет­вёр­то­го поко­ле­ния, 4.2ГГц, четы­ре ядра, но фильм он пере­ко­ди­ру­ет в x264 со ско­ро­стью в сред­нем око­ло 8 кад­ров в секун­ду. Смот­рю, ока­зы­ва­ет­ся в моём люби­мом коде­ре «Хенд­б­рейк» уже дав­но есть под­держ­ка GPU (у меня тоже не шиб­ко рос­кош­ная видео­кар­та NVidia GTX 1070). Обно­вил Хендр­бейк, вру­бил — мать чест­ная, две­сти кад­ров в секун­ду. При этом видео­кар­та нагру­жа­ет­ся все­го на 23%, затык не в ней, а в том, что видео­кар­та исполь­зу­ет­ся толь­ко для коди­ро­ва­ния видео. Для всех осталь­ных задач, типа деко­ди­ро­ва­ния исход­но­го мате­ри­а­ла, пере­ко­ди­ро­ва­ния зву­ка, его мик­ши­ро­ва­ния, и т.д. — исполь­зу­ет­ся по-преж­не­му цен­траль­ный про­цес­сор, и он про­сто не успе­ва­ет под­тас­ки­вать дан­ные.

Сто­ит ли гово­рить, что после таких опы­тов я стал с ещё боль­шим недо­уме­ни­ем смот­реть на все эти мега-муль­ти-ядер­ные деск­топ­ные про­цес­со­ры от АМД? Ну на кой хер они? Ну вот был бы у меня АМД с 32 ядра­ми. Ну, коди­ро­вал бы он в 8 раз быст­рее. И чего? Это 64 кад­ра в секун­ду. А тут две­сти! На видео­кар­тах мож­но постро­ить ЗНАЧИТЕЛЬНО более мощ­ную чис­ло­дро­бил­ку, чем на этом недо­ра­зу­ме­нии. При­чём видео­карт мож­но взять не одну. И полу­чит­ся это суще­ствен­но дешев­ле. Фиг­ня этот ваш АМД. То ли дело НВи­дия.

Искуственный интеллект

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

Но для того, что­бы научить ней­ро­сеть чему угод­но, для нача­ла надо сде­лать набор дан­ных для обу­че­ния. В слу­чае с игра­ми, соот­вет­ствен­но, это будут пар­тии раз­лич­ных игр. Для нача­ла я выбрал что-нибудь попро­ще: кре­сти­ки-ноли­ки. Бла­го ПОЛНОЕ дере­во реше­ний для этой игры очень неболь­шое. Чисто тео­ре­ти­че­ски там 9! игр (око­ло 360 000), в реаль­но­сти намно­го мень­ше: не все игры идут 9 шагов, мно­гие явля­ют­ся отра­же­ни­я­ми дру­гих игр, раз­вёр­ну­тых на 90, 180, и 270 гра­ду­сов. И так далее.

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

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

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

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

Вооб­ще, если есть воз­мож­ность стро­ить игро­вое дере­во — луч­ше стро­ить игро­вое дере­во. Такие про­грам­мы будут играть в игру луч­ше, чем ней­ро­се­ти (кото­рые по сути толь­ко рас­по­зна­ют пат­тер­ны и реа­ги­ру­ют на них). Но игро­вое дере­во стро­ить воз­мож­но дале­ко не все­гда. Ска­жем, Го не под­да­ва­лось, поэто­му нор­маль­но играть ком­пью­тер в Го нако­нец-то научи­лись имен­но, что через ней­ро­се­ти. Пото­му что игро­вое дере­во для шах­мат — 10E120 (чис­ло Шен­но­на), а игро­вое дере­во для Го — 1.74E172! Но даже Го мерк­нет перед огро­мен­ным дере­вом крайне (на пер­вый взгляд) про­стой игры Стра­те­го, чей раз­мер состав­ля­ет 10E535!!! Неуди­ви­тель­но, что ком­пью­тер игра­ет в Стра­те­го крайне сла­бо. Может быть, имен­но что ней­ро­се­ти научат­ся. В лоб, через постро­е­ние дере­ва — путь тупи­ко­вый.

Нейронные сети

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

А теперь дви­жок ней­рон­ных сетей не надо писать само­му. Сна­ча­ла появи­лась Caffe (я исполь­зо­вал её для одно­го из про­ек­тов в уни­вер­си­те­те по поис­ку изоб­ра­же­ний), а потом Гугл открыл свой TensorFlow для всех. Но даже TensorFlow был ОЧЕНЬ непрост в исполь­зо­ва­нии. А теперь выяс­ни­лось, что для TensorFlow напи­са­ли кучу вме­ня­е­мых биб­лио­тек, и созда­ние ней­рон­ных сетей ста­ло очень неслож­ным заня­ти­ем.

Их несколь­ко, но боль­ше все­го мне понра­ви­лась биб­лио­те­ка keras. И дело не сколь­ко в том, какая она хоро­шая, а в том, что для неё боль­ше все­го доку­мен­та­ции 🙂 В про­шлый раз, когда я щупал ней­рон­ные сети, я исполь­зо­вал биб­лио­те­ку TF-Slim. Доку­мен­та­ции для неё, мож­но ска­зать, не было. При­шлось хакать исход­ни­ки при­ме­ров, что­бы полу­чить что-то своё.

Но оце­ни­те, как это теперь про­сто!

Вот, напри­мер, Питон­ный код для созда­ния про­стой ней­рон­ной сети из двух вход­ных ней­ро­нов, 16 скры­тых, и 3 выход­ных. На вхо­де еди­нич­ки и ноли­ки, пред­став­ля­ю­щие собой True и False, и три выход­ных ней­ро­на, один выда­ёт резуль­тат логи­че­ской опе­ра­ции XOR, вто­рой AND, тре­тий OR. Тре­ни­ру­ет­ся сеть мень­ше, чем за 1000 эпох (если уве­ли­чить коли­че­ство ней­ро­нов в скры­том слое, то ещё быст­рее).

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

model = tf.keras.Sequential()
model.add(layers.Dense(16, activation=‘relu’))
model.add(layers.Dense(3))
model.compile(optimizer=‘adam’, loss=‘mean_squared_error’, metrics=[‘binary_accuracy’])

data = np.array([[0,0],[0,1],[1,0],[1,1]], «float32»)
labels = np.array([[0,0,0],[1,0,1],[1,0,1],[0,1,1]], «float32»)

model.fit(data, labels, epochs=1000)

print(model.predict(data).round())

Эле­мен­тар­щи­на же!

Оста­лось понять, чего при­коль­но­го теперь мож­но с этим сде­лать 🙂 Навер­ное, ниче­го — что­бы сде­лать что-то при­коль­ное, надо поста­вить зада­чу и дать ввод­ные 🙂 Раз­ве что сде­лать ней­рон­ную сеть и запу­стить её наобо­рот, в гене­ра­тив­ном режи­ме, пред­ва­ри­тель­но скор­мив ей, напри­мер, музы­ку Моцар­та в фор­ма­те MIDI 🙂 Кста­ти, вполне реаль­ная вещь, вот чувак кор­мил сеть Бахом: https://www.youtube.com/watch?v=SacogDL_4JU

Блютусное

Хозяй­ке на замет­ку. Если ваш лап­топ с деся­той вен­дой вро­де бы под­клю­ча­ет­ся к блю­тус­ным колон­кам, но в пане­ли управ­ле­ни­ем зву­ком эти колон­ки пока­зы­ва­ют­ся как «disconnected» пото­му что индус­ские дол­бо­про­грам­ме­ры в оче­ред­ной раз что-то сло­ма­ли в ОС, попро­буй­те выне­сти колон­ки из систе­мы КЕМ, и доба­вить сле­ду­ю­щий клю­чик в реестр из команд­ной стро­ки:

reg add HKLM\SYSTEM\ControlSet001\Control\Bluetooth\Audio\AVRCP\CT /v DisableAbsoluteVolume /t REG_DWORD /d 1 /f

Види­мо, по умол­ча­нию вен­да чего-то там пыта­ет­ся сде­лать с колон­ка­ми, но наты­ка­ет­ся на непо­ни­ма­ние, и мар­ки­ру­ет колон­ки как «отклю­чен­ные». А этот клю­чик, насколь­ко понял, отклю­ча­ет эту функ­ци­о­наль­ность.

Чего-то мне в послед­нее вре­мя всё боль­ше и боль­ше хочет­ся на Мак. Игр вот под ним толь­ко мало, а для рабо­ты всё, что надо, есть. Мел­ко­мяг­кие даже RDP кли­ент с под­держ­кой смарт-карт (это к вопро­су, поче­му я кате­го­ри­че­ски не могу рабо­тать под ентим вашим недо­ра­зу­ме­ни­ем под име­нем «Линупс», поми­мо мно­гих про­чих при­чин) свар­га­ни­ли для Маков.

Пропал Калабуховский дом

Каб­здец мое­му анти­ви­ру­су. Симан­тек был куп­лен Брод­ко­мом и раз­де­лён на две части, а суще­ству­ю­щих поль­зо­ва­те­лей — без тру­сов на мороз.

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

Бит­де­фен­дер какой-нибудь, что ли. Все осталь­ное как-то доро­го­ва­то, и отзы­вы не очень лест­ные.

Избыточная точность

Таб­лич­ка в бли­жай­шей забе­га­лов­ке Panera:

Не про­ве­рял, но чует моё сисад­мин­ское серд­це, что врут. Эту вер­сию вай­фая сей­час хер най­дёшь. Ско­рее все­го, там N или в край­нем слу­чае G.