Famabara

Посты пользователя: dima: страница 6


Российское кресло

недавно
Купили жене кресло в обычном оффлайн магазине. Привезли домой, собрали, всё хорошо.
Смотрим на коробке документ, а там адрес изготовителя - Россия, Белгородская область, город Шебекино.
Показать полностью...
+3
9

Ботанический сад осенью

недавно
Осень - прекрасное время, чтобы сходить в ботанический сад.

Вечерние лучи красиво подсвечивают коричневые стволы сосен.
Чертополох.
Показать полностью...
+4
20

Собаководы, как же вы надоели

недавно
В Ростове-на-Дону в центре отремонтировали территорию перед Музыкальным театром, сделали клумбы с подсветкой и капельным поливом, плюс несколько хороших фонтанов. И эту местность уже облюбовали собаководы! Играет классическая музыка, на струи фонтанов проецируется балет, а рядом уже половина гранитных углов обоссана псинами. Это даже не парк, по факту это часть здания, под всеми этими клумбами и фонтанами находится парковка театра.
Когда мы там были, работник театра в микрофон делала объявление, что с собаками вход воспрещён. Но собаководам плевать, им если любимая псина не обоссала угол - день прошёл зря.
+2
71

Прошёл The Excavation of Hob's Barrow

недавно
Периодически играю в квесты на компе, как в старые, так и в новые. Из новых вот на днях прошёл The Excavation of Hob's Barrow. Игра вышла при поддержке Wadjet Eye Games, а я эту студию уважаю за серию Blackwell. Я в принципе прошёл почти все квесты от Wadjet Eye Games, поэтому пропустить The Excavation of Hob's Barrow не мог.
Игра требует серьёзного знания английского языка. Очень много мудрёных речевых оборотов, а русского перевода нет, это нужно иметь в виду.
Показать полностью...
+2
7

Что гложет Гилберта Грейпа

недавно
Посмотрел "Что гложет Гилберта Грейпа" 1993 года. В главных ролях очень молодые Джонни Депп и Леонардо Ди Каприо.
Леонардо Ди Каприо так вообще выглядит как ребёнок, хотя актёру уже было 18 лет.
Показать полностью...
+2
15

"Мечтать" и "присниться" по-английски

недавно
Глагол "to dream" в английском языке совершенно дурацкий, потому что переводится одновременно как "мечтать" и как "присниться". Похоже, давным-давно кто-то почему-то решил, что это одно и то же, но это абсолютно не одно и то же.

"Мне приснилась поездка в Австралию" и "я мечтаю о поездке в Австралию" - это абсолютно разные вещи. Не всё, что снится, является сокровенной мечтой. Иногда снится вообще то, чего не хочется или вообще галиматья какая-то может присниться.

Как нам Гугл переведёт?
Гугл сам не может определиться - мечтал или просто приснилось.
+3
80

Кого хотела убить сватья баба Бабариха?

недавно
У меня младший сын обожает "Сказку о царе Салтане" Пушкина.
Я когда ему читаю вот эти строки:
А ткачиха с поварихой,
С сватьей бабой Бабарихой,
Не хотят его пустить
Чудный остров навестить.
аж интонация меняется в духе "ах какие они негодяйки".

Я никогда не задумывался, кто такая Бабариха. А оказывается, Бабариха - это бабушка (!) царя Гвидона:
Ни гугу — но Бабариха,
Усмехнувшись, говорит:
...
Молвить можно справедливо,
Это диво, так уж диво».
Гости умные молчат:
Спорить с бабой не хотят.
Чуду царь Салтан дивится —
А царевич хоть и злится,
Но жалеет он очей
Старой бабушки своей:
Он над ней жужжит, кружится —
Прямо на нос к ней садится,
Нос ужалил богатырь:
На носу вскочил волдырь

Пушкин прямым текстом говорит, что это бабушка князя Гвидона. Получается, родная бабушка приказала бросить внука в "бездну вод", по факту обрекала на смерть. А в конце сказки добрый царь Салтан пожалел всех негодяев, которые хотели его сына убить.

Вопрос только: Бабариха - это мать "царицы молодой" или мать Салтана? Что так, что так - дичь какая-то получается. В первом случае она хотела убить свою дочь и внука, во втором случае - убить свою невестку и опять же внука.
+2
47

Фотозаметки о Нью-Йорке: часть 2

недавно
Первая часть: https://famabara.com/posts/120

Пешеходная арка в Централ-парке:
Вид на 10-е авеню.
Показать полностью...
+3
14

Ростовский зоопарк становится лучше

недавно
Был с сыном в ростовском зоопарке, там появился новый вольер, где можно смотреть на козлов сверху.
Такой же подход в московском зоопарке. Очень удобно посетителям.
Животные как на ладони.
Показать полностью...
+2
6

Что-то слышал о Prodigy

недавно
Сижу на работе, работаю работу, общаюсь с молодым коллегой о музыке, кто что слушал/слушает и прочее.
Сказал ему о Prodigy.
Он отвечает:
- А, да, слышал о такой группе.
У меня глаза округлились.
Да, у нас разница поколений, 15 лет почти, но если мне скажут про Beatles или Modern Talking, я буду прекрасно понимать о чем речь.

The Prodigy - это веха. Prodigy значимы для музыки так же, как значимы Deep Purple или Майкл Джексон.
+3
128

Фотозаметки о Нью-Йорке: часть 1

недавно
Детализированность отделки некоторых зданий просто поражает.
Мы уже привыкли, что дорожки в парках обычно из тротуарной плитки. А вот в Нью-Йорке это может быть обычный асфальт.
Показать полностью...
+3
16

Эффективность использования всех ядер процессора в NodeJS с помощью cluster

недавно
Для повышения производительности приложений на NodeJS во всех материалах рекомендуется использовать нодовский встроенный модуль cluster. Все статьи повторяют одно и то же, что и так написано в документации.
Вот официальный пример из доки:
import cluster from 'node:cluster';
import http from 'node:http';
import { availableParallelism } from 'node:os';
import process from 'node:process';

const numCPUs = availableParallelism();

if (cluster.isPrimary) {
  console.log(`Primary ${process.pid} is running`);

  // Fork workers.
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });
} else {
  // Workers can share any TCP connection
  // In this case it is an HTTP server
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

  console.log(`Worker ${process.pid} started`);
}
А теперь поделюсь своими исследованиями и расскажу, что не так в этом примере и как это можно улучшить.

Во-первых, некорректен нейминг переменной numCPUs. На моём компьютере, на котором тестировал производительность, стоит процессор Intel i7-13700, в нём всего 16 ядер. Сайт Intel так и пишет:
Показать полностью...
+3
23

Может ли россиянин позволить себе квартиру в Москве?

недавно
Согласно данным Росстата в 2023 году среднемесячная номинальная начисленная заработная плата работников в Москве была 138882 рублей.

Для сравнения:
Ростовская область - 52100 руб.
Краснодарский край - 58256 руб.
Волгоградская область - 51833 руб.
Средняя по всей России - 74854 руб.

Согласно данным Циана в 2023 года стоимость среднего московского квадратного метра в новостройке была 291000 рублей.

Теперь предположим, что у нас семья из 4 человек - мама, папа, двое детей. Оба родителя работают (хотя часто один не работает, но, ладно, пусть работают оба). Такая семья должна жить в человеческих условиях, а не в однушках или в "студиях", прости-господи. Адекватная (!) минимальная площадь квартиры должна быть от 60 м2 для 4 человек, т.е. каждому хотя бы по 15 м2.

Таким образом, чтобы купить такую квартиру им нужно 60 * 2910000 = 17,46 млн рублей.

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

Ростовская область: 17460000 / (52100 * 2) = 167 месяцев = 13,9 лет.
Краснодарский край: 17460000 / (58256 * 2) = 150 месяцев = 12,5 лет.
Волгоградская область: 17460000 / (51833 * 2) = 168 месяцев = 14 лет.
"Средняя" Россия: 17460000 / (74854 * 2) = 116 месяцев = 9,7 лет.
Москва: 17460000 / (138882 * 2) = 63 месяца = 5,2 лет.

Разумеется, это нереалистично-оптимистичные подсчёты. Людям надо чем-то питаться, им придётся платить за электричество и проезд в общественном транспорте все эти годы. Поэтому все эти числа можно смело умножать на 2. Те, у кого есть дети, знают насколько "бьёт" по карману содержание детей.

По факту получается, что рядовой российской семье квартира в Москве никогда не светит. В противном родителям придётся более 20 лет работать, чтобы уже ближе к старости получить эти убогие 60 квадратных метров в муравейнике.

Квартиры в Москве доступны... только москвичам. Какой-то заколдованный круг.
+6
262

Ford Focus 3: не заводится, делает чик-чик-чик, когда пытаешься завести

недавно
Пишу, может кому поможет.
Дано авто: Форд Фокус 3 2013 года выпуска (дорестайлинговая версия), двигатель 1,6 л, 125 лс.
Сажусь в машину, завожу ключом, но машина лишь издаёт "чик-чик-чик" и гаснет экран. Сразу мысль на аккумулятор - я его не менял с момента покупки авто, а уже прошло 11 лет. Вообще, это мегарекорд для обычного автомобильного аккумулятора, обычно они 3-7 лет служат.

Нахожу на Авито объявление "прикурить/заменить" аккум. Звоню, выбираю аккум, через полчаса приезжает человек, меняет аккумулятор. Делов на 10 минут.

Кстати, на ютубе есть ролик, где человек на Фокусе 3 меняет аккумулятор и сначала снимают плюсовую клемму. Так вот это небезопасно, может долбануть током!

Вообще, до этого у меня был Ford Focus 2 и там была похожая проблема на пробеге в 100 тысяч, только машина делала при повороте ключа не "чик-чик-чик", а "пзиууу" и тоже не заводилась. Там проблема оказалась в бендиксе стартера. Но в нынешней проблеме обошлось минимальными трудностями, а я терпеть не могу по автосервисам ездить и тратить на них своё время.

Человек, который менял на моём Форде АКБ тоже удивился, когда узнал, что батарея родная за более чем 11 лет, в его опыте это тоже рекорд службы. На российских фордах тогда ставили вроде бы немецкие Варты, как теперь видно очень хорошая фирма оказалась.

Любопытно, что у меня даже в ключе стоит до сих пор родная батарейка. Разобрал ключ - CR 2032 3V Panasonic. Во раньше качество делали!
+3
67

Стоит ли идти в Исторический музей на Красной площади

недавно
Государственный исторический музей - замечательное место, обязательно стоит пойти.
Есть масса интересных исторических экспонатов.

Личный автомобиль Ленина? Пожалуйста!
Бивни мамонта с берегов Енисея.
Показать полностью...
+3
20

Передача по ссылке и передача по значению в JavaScript

недавно
Насколько хорошо вы знаете JavaScript?
Как в JS передаются значения - по ссылке или по значению? Не спешите, подумайте даже если вы "мидл" или синьор-помидор.
let str1 = 'Famabara';
let str2 = str1; // Тут копия или новая строка?

let obj1 = { name: 'Famabara' };
let obj2 = obj1; // Тут копия или новый объект?

Можете в опросе ответить:
Как передаются значения при присвоении в переменную или в свойство объекта?
Теперь посмотрим, что нам говорит learn.javascript.ru - очень популярный в рунете учебник JavaScript:
А теперь давайте запустим в NodeJS такой код:
const arr = [];

for (let i = 0; i < 1200200; i++) {
  arr.push('0123456789'.repeat(1000 * 1000));
}

while (true) {
}

После запуска смотриим программой top потребление ресурсов:
39858 dima      20   0 2026180   1,0g  37824 R 100,0   3,2   0:21.44 node 
На моей Кубунте сожрано 1 Гб оперативки. Ух ты.

Теперь изменим немного код:
const arr = [];
const text = '0123456789'.repeat(1000 * 1000);

for (let i = 0; i < 1200200; i++) {
  arr.push(text);
}

while (true) {
}

Смотрим ещё раз через top:
40267 dima      20   0 1066148  73796  37440 R  99,7   0,2   0:12.27 node

Программа потребила всего 73 Мб вместо 1 Гб. Согласно популярной теории о копировании примитивов такого быть не должно. ;)

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

Кстати, на ноде в Windows 10 аналогичное поведение - около 1 Гб потребление против менее 100.

Ну, а теперь главный секрет! :)
В JavaScript всё передаётся/копируется по ссылке!
Показать полностью...
+4
35

Популярность Vue.js в 2024

недавно
Это перевод моего англоязычного поста - https://famabara.com/posts/108

Попытаюсь измерить попурлярность Vue.JS. Я очень люблю этот фреймворк, поэтому всецело за его популяризацию :)

Сначала давайте посмотри на статистику скачиваний на NPM.
Сейчас и год назад:
vue - 4,868,119 - 3,746,361
@angular/core - 3,416,382 - 3,015,855
react - 23,763,131 - 20,548,838

Как видно, по абсолютным значенияем React на первом месте. Ну, а VueJS занимает только второе место.

А теперь посмотрим на относительный рост в процентах по отношению к прошлому году.
vue +29,9%
angular +13,3%
react +15,6%
Ура! Популярность Вью растёт быстрее, чем у остальных из "большой троицы".

Ну а теперь пройдусь по сайтам из топа Гугла и посмотрим, какие там используются фреймворки.
В качесте тестового запроса взял англоязычный запрос "rent car".
Юзал Wappalyzer - это расширение для браузера, чтобы детектить используемые технологии.

Вот список сайтов; NF - означает "нет фреймворка из большой троицы".
rentalcars.com - NF
enterprise.com - NF
kayak.com - React
avis.com - NF (есть старый AngularJS)
localrent.com - Vue
hertz.com - NF (есть старый BackboneJS)
sixt.com - React
budget.com - NF (есть старый AngularJS)
zipcar.com - NF
turo.com - React
autoeurope.eu - NF
alamo.com - React
rent.toyota.co.jp - NF
booking.com - React
costcotravel.com - React
borent.nl - NF
europcar.com - Vue
turo.com - React
vipcars.com - NF
skyscanner.net - React
tripadvisor.com - NF
timescar-rental.com - NF
klook.com - Vue
wiberrentacar.com - Vue
uber.com - NF
dollar.com - React
edreams.com - Vue
nationalcar.com - NF
thrifty.com - NF

Ну что, всё очень неплохо для Vue.JS! Он постепенно захватывает англоязычные сайты.
Показать полностью...
+4
50

Мел Брукс получил почётный Оскар

недавно
Мел Брукс один из моих любимых режиссёров, очень нравятся его пародии. Оказывается, в этом году он получил почётный Оскар - "Премия за выдающиеся заслуги в кинематографе". Это как бы отдельная премия вне "текущего сезона", ею награждают видных кинодеятелей.
Автор фото: KEVIN WINTER/GETTY

Оскар вполне заслуженный, он классный пародийный режиссёр.

Мы с женой очень любим пересматривать "Дракула: Мёртвый и довольный" (Dracula: Dead and Loving It). Комедия особенно хороша в переводе Сербина.
Показать полностью...
+2
21

Как я сражался на сервере с вирусом-криптомайнером, маскирующимся под PostgreSQL

недавно
Целая детективная история разыгралась на моём сервере.

Дано: небольшой арендуемый у хостера сервер с Debian 12 и последней PostgreSQL 16. Постгрес стоит без всяких докеров.

Месяц назад начал тормозить сервак. Думаю, что за ерунда, захожу по SSH, ввожу:
top
и вверху поверх всякой мелочи вижу это:
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
2251 postgres  20   0 2445140   2,3g      4 S 400,7  14,7   6:20.66 kswapd0
Жрёт все ресурсы, процессор загружен полностью.
Зарождается слабая мысль о криптомайнерах, но пока не понимаю, как вирус проник на сервер. Пароль у рута сложный, да и тут про постгрес написано.

В общем, думаю - ну, заглючил PostgreSQL, наверное. Убиваю процесс и перезагружаю сервак (это всегда полезно):
kill 2251
reboot
Захожу по SSH снова - чисто. Ну, думаю, всё ок.

Потом опять тормоза через некоторое время. Смотрю - эта хрень опять запущена. И странно как-то всё, причём тут юзер postgres?

Полез гуглить. Про этот kswapd и нагрузку на проц много разрозненных сообщений. Народ про него пишет и 2013, и в 2017, а у меня вообще-то 2024 на дворе, а ведь в те годы не было ещё криптовалют.
Может это не криптомайнер, а что-то другое?
Пытаюсь понять, кто запускает процесс. Делаю:
ls -l /proc/2251/exe
выводит:
lrwxrwxrwx 1 postgres postgres 0 июл 23 13:12 /proc/2251/exe -> /var/lib/postgresql/.configrc5/a/kswapd0
Такс... Находится в каталоге postgresql. А вдруг это важная часть сервера базы данных? Названо ведь так "по-умному" - configrc5.

Решаю просто переименовать каталог:
kill 2251
cd /var/lib/postgresql
mv .configrc5 _renamed_.configrc5
reboot
После этого всё хорошо... но только пару недель :)

Через эти пару недель опять веселуха с загрузкой всех ядер процессора.
Смотрю - каталог снова создан. Значит точно криптовалютный вирус. Но как зараза проникла на сервер?

Наконец-то до моей глупой головы дошло посмотреть логи SSH:
journalctl -t sshd
Опытные линуксоиды знают, что так смотреть не имеет смысла. Там толпы кул-хацкеров пытаются подключиться к серверу, но обламываются.
Фильтрую только логи успешного входа по SSH:
journalctl -t sshd --since "2024-08-01" --until "2024-08-16 10:00:00" | grep "Accepted "
И там среди моих заходов вижу эту падлюку:
Jul 06 11:40:07 debian sshd[589266]: Accepted password for postgres from 103.94.113.2 port 33482 ssh2
Jul 10 08:18:00 debian sshd[723300]: Accepted publickey for postgres from 162.217.64.26 port 60366 ssh2: RSA SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw
Aug 02 07:45:44 debian sshd[258599]: Accepted publickey for postgres from 206.189.36.236 port 47140 ssh2: RSA SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw
Aug 02 07:50:53 debian sshd[258915]: Accepted publickey for postgres from 157.245.42.37 port 50478 ssh2: RSA SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw
Aug 14 10:23:08 debian sshd[99132]: Accepted publickey for postgres from 82.165.79.77 port 40086 ssh2: RSA SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw
Aug 14 10:47:37 debian sshd[99723]: Accepted publickey for postgres from 103.146.52.138 port 55110 ssh2: RSA SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw
Ёлы-палы! Сначала чувак вошёл по паролю, а потом уже входил по ключу.

Ради интереса проверил айпишники:
103.94.113.2 - India
162.217.64.26 - USA
206.189.36.236 - Singapore
103.146.52.138 - Hong Kong
Целый ботнет. Или VPN-ы. Не знаю, да и это не важно.

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

Срочно меняю пароль юзеру postgres:
passwd postgres
и ставлю запрет входа SSH для определённых юзеров:
nano /etc/ssh/sshd_config
DenyUsers postgres no-reply blah
В идеале, конечно вообще всем запретить, а оставить только для разрешённых.

Перезагружаем SSH демона:
systemctl restart sshd

Кстати, это зараза прописала SSH-ключ в:
/var/lib/postgresql/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr
Разумеется это надо сразу удалять.
Показать полностью...
+3
49

Vue.js popularity in 2024

недавно
Let's try to measure the popularity of Vue.JS. I really like this framework and I am a supporter of its popularization.

First, let's look at the download statistics on NPM.
Now vs year ago:
vue - 4,868,119 - 3,746,361
@angular/core - 3,416,382 - 3,015,855
react - 23,763,131 - 20,548,838

As you can see, React is in the first place in absolute values. And VueJS is only in second place.

And now let's look at the percentage growth relative to last year's values.
vue +29,9%
angular +13,3%
react +15,6%
Hurray! Vue's popularity is growing faster than any of the three!
And now let's go through the sites from the top of Google and see what JS frameworks are used there.

For example, let's take the search query "rent car".
To understand which libraries each site uses, I used Wappalyzer browser extension.
Websites from search results; NF means "there is no framework from the big three".
rentalcars.com - NF
enterprise.com - NF
kayak.com - React
avis.com - NF (old AngularJS)
localrent.com - Vue
hertz.com - NF (old BackboneJS)
sixt.com - React
budget.com - NF (old AngularJS)
zipcar.com - NF
turo.com - React
autoeurope.eu - NF
alamo.com - React
rent.toyota.co.jp - NF
booking.com - React
costcotravel.com - React
borent.nl - NF
europcar.com - Vue
turo.com - React
vipcars.com - NF
skyscanner.net - React
tripadvisor.com - NF
timescar-rental.com - NF
klook.com - Vue
wiberrentacar.com - Vue
uber.com - NF
dollar.com - React
edreams.com - Vue
nationalcar.com - NF
thrifty.com - NF

As you can see, Vue is actively moving forward!
Показать полностью...
+2
34