Войдите или зарегистрируйтесь
Вы сможете писать комментарии и посты, ставить лайки и другое
Поиск
Тёмная тема

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


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

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

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

Передача по ссылке и передача по значению в 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
142

Популярность 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
75

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

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

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

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

Как я сражался на сервере с вирусом-криптомайнером, маскирующимся под 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
87

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
40

Яндекс Карты удобнее Google Maps

Попользовавшись мобильными Яндекс Картами, а потом перейдя на Гугл Карты, понимаешь насколько у Яндекса удобнее интерфейс.
Показать полностью...
+2
38

Риэлторы и застройщики врут о количестве комнат в квартирах

Как же надоели застройщики и риэлтеры, которые врут в своих объявлениях и рекламе. Написано - трёхкомнатная квартира, открываешь страницу, а там двушка. Или пишут двухкомнатная - а там однушка с кухней 15 м2. И вот эта кухня - это типа ещё одна комната по логике этих риэлтеров. Сволочи, задолбали.

Ну почему людей за идиотов держат? Это же только оттлалкивает людей. У покупателей есть голова на плечах, покупатель видит, что кухня - это кухня и никакой дополнительной комнаты нет. Что мешает тогда все кладовки и ванные комнаты записать в обычные комнаты? Теперь это не санузел, теперь это ванная-кабинет! 2 м2 ванная комната и аж 3 м2 кабинет!!!

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

Компания MR Rroup. Выбираю трёшки:
Показывает двушку вместо трёшки:
Показать полностью...
+2
34

Кассы в фастфудных

Как хорошо, что современные фастфудные заведения имеют кассы самообслуживания.
Их всегда много, хватает на всех, очереди бывают крайне редко.

Ещё десять лет назад очень утомляли очереди на обычные кассы. Работало максимум два-три кассира, каждый заказ занимал много времени, особенно если много позиций. А теперь потыкал пальцем, оплатил картой и жди, когда твой номер появится на экране.

А на обычных кассах уже и кассиров часто нет, ибо не нужно никому:
Показать полностью...
+3
27

Очередной старинный дом сгорел в Ростов-на-Дону

Старинное здание находится по адресу Серафимовича, 54. Это был доходный дом Ботвинникова, построен в 1910 году. Сегодня , 4 августа 2024 он сгорел.
Воду льют напором с нескольких шлангов. Что не уничтожено пожаром, будет уничтожено водой и дальше плесенью.
Показать полностью...
+2
32

Смотреть шортсы Ютуба как обычные Youtube-видео

А вы знали, что можно смотреть шортсы Youtube как обычные видео? Т.е. будет обычный функционал проигрывателя и т.п.

Вот например ссылка на короткое видео:
https://www.youtube.com/shorts/2vGr1VifPyg

В этой ссылке есть id ролика - это "2vGr1VifPyg".
Вставляем эту ссылку в "обычный" ютубовский формат урла:
https://www.youtube.com/watch?v=2vGr1VifPyg
Вуаля, это теперь просто ролик на Youtube.

По факту получается, что технически шортс - это совершенно обычное видео, просто с другим оформлением.
+3
151

Пандорум (2009) - интересные факты о фильме

Кино и сериалы
Специально для Famabara перевожу с IMDB интересные факты о фильме "Пандорум" - их почему-то никто ещё не переводил на русский. Сразу предупреждаю - есть небольшие спойлеры.
Фильм должен был быть трилогией, но, увы, не получилось - мало заработано с билетов в кинотеатрах, а продюсеры такое не любят, даже если фильм потом получил хорошие оценки зрителей.
Показать полностью...
+3
120

Пляж Сады морей в Геленджике 2024 - отзыв и обзор

Пляж Сады морей считается одним из лучших пляжей в Геленджике. В принципе, я с этим согласен. Говорю как "обычный" человек, который не покупает за много денег лежак. На российском Черном море лежаки и зонты стоят каких-то неадекватных денег, поэтому большинство из них пустуют.
Количество платных лежаков в Геленджике, конечно, многовато. Перебор, раньше их было меньше. Хотя в сочинском Адлере с этим ещё хуже, мы там даже как-то ругались с хамовитыми владельцами этих лежаков. Но "обычного" места хватает; правда, если отдыхающих будет больше, то уже по головам будут ходить. Тут ещё дома на Крымской в ЖК Черноморский построили, стало ещё больше людей, а пляж Сады Морей не резиновый.
Показать полностью...
+3
194

Сириус проектировали кретины

Если ваша цель - получить тепловой удар, то добро пожаловать в сочинский Сириус.
Для отдыхающих вообще нет тени. Сириус не идёт ни в какое сравнение с Геленджиком, где вся набережная засажена пышными соснами. В Сириусе подобие тени есть в "старых" кварталах. Но в новых просто ад:
Показать полностью...
+3
31

Может ли трава расти в тени под деревьями?

Да, если её поливать:
+2
69

Деревянные окна - редкий гость

Гулял по городу, заметил многоквартирный дом, у которого было много деревянных окон.
Деревянные окна, конечно, выглядят красивее пластиковых, но проигрывают по другим параметрам (если сравнивать обычные "старые" деревянные окна).

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

Насколько хорошо вы знаете Москву

Как называлась в царское время улица Новый Арбат?
В каком году были открыты первые станции Московского метрополитена?
Если ехать по Кутузовскому проспекту в сторону Кремля, то попадёшь на...
Храм Василия Блаженного также называется...
Кто был первым мэром Москвы в 1991 году?
Показать полностью...
+3
30

Как запустить Elasticsearch из-под рута

Elasticsearch не разрешает запускать себя из-под пользователя root, это намеренно сделанное ограничение. Если нужно оставаться под рутом по тем или иным причинам, а запустить Elasticsearch нужно, то есть обходное решение.

Нужно создать пользователя, например, назвав его elastic:
useradd elastic

Далее делаем этого юзера владельцем каталога c Эластиком:
chown -R elastic:elastic ./elasticsearch-8.14.3

И наконец используем программу runuser для запуска Elasticsearch из-под другого юзера:
runuser -u elastic -- /elasticsearch-8.14.3/bin/elasticsearch -d -p pid.txt

Эластиксёрч будет запущен, рут-юзер сможет к нему подключаться.

Напоминаю, что runuser может использоваться только root-пользователем.
+2
149

Пустая набережная дождливым днём

Затяжной дождь имеет свои плюсы. Это редкая возможность увидеть пустую набережную Ростов-на-Дону - почти без людей в середине дня.
Очень уютно
Показать полностью...
+3
36

Прибыльность Telegram

Павел Дуров с своем телеграме писал, что в телеге в 2024 году было 900 млн человек.
Также он писал, что платных подписчиков Telegram Premium около 5 млн человек.
5/900 * 100% = 0,55%

Это менее 1 процента. Много это или мало? Мне кажется, на самом деле, много. Ведь функционал обычного телеграма хорош и без платной подписки.

Опять же, возможно, Павлу надо вспомнить про эластичность спроса и снизить цену. Иногда незначительное снижение цены может вызвать значительный рост спроса.

Не думаю, что Telegram бедствует. Кроме премиум-подписки, там и обычная реклама есть.
+3
74