My Little Blog

 
Пузырьковая сортировка

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


Штош, я тоже написал. Сначала через два цикла for. Потом решил, что пойдет и комбинация while + for. Затем все же сделал через do + for, ибо один-то раз придется пройтись точно. Конечно, мысль о том, что не следует мучить массив столько раз, сколько в нем элементов, пришла сразу. Смотреть в логическое значение или счетчик? Счетчик нагляднее и дает больше контроля, но логическое логичнее. Внедрил и то, и другое. Разумеется, перебирать все элементы массива тоже не обязательно. При первом проходе достаточно количество проходов на единицу меньшее, чем количество элементов. При следующем переборе также следует уменьшить количество перебираемых элементов на один - ведь самое жирное складывается в конец. Так можно делать до конца работы сортировки. Под конец заделал версию с использованием метода map.


Замерил время выполнения всех вариантов. В map всегда перебираются все элементы, потому я не удивился тому факту, что в данном случае этот новомодный метод сосет у старого доброго for. Два for оказались самыми шустрыми. Впрочем, с do или while скорость почти такая же.


JavaScript:


function get_random_array(size = 40, min = -0, max = 666) {
return Array.from({length: size}, () => Math.floor(Math.random() * (max - min + 1)) + min);
} // конец get_random_array


function bubbles(array) {

console.time("bubbles");

console.log(`Длина массива: ${array.length}, исходный вид массива: ${array}`);

let length_i = array.length - 1;
let length_j = array.length - 1;
let counter;
let swap;

for (let i = 0; i < length_i; i++) {
swap = false;
counter = 0;
for (let j = 0; j < length_j; j++) {
	if (array[j] > array[j + 1]) {
		[array[j], array[j + 1]] = [array[j + 1], array[j]];
		swap = true;
		counter++;
	}
}
length_j--;
console.log(`В итерации ${i} сделано замен ${counter}; вид массива: ${array}`);
if (!swap) {
	console.log(`Сортировка окончена на итерации ${i}, отсортированный массив: ${array}`);
	break;
}
}

console.timeEnd("bubbles");

} // конец bubbles


bubbles(get_random_array(33, -94, 77));


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


Проблемы рекламы во время чумы

На самом деле сейчас очень непростая ситуация для тех, кто все еще имеет деньги и мотивацию рекламироваться. Очень уж специфическая ситуация. Легко попасть впросак.


Пара примеров.


  • Провал со старой рекламой. Старая реклама сейчас может звучать совсем иначе. Меня и раньше не вдохновляла реклама, в которой как о некоем преимуществе рассказывалось о том, что сосиски упаковывают люди руками. Вовсе ничего хорошего нет, если твою сосиску кто-то облапал руками (хорошо если относительно чистыми). Сейчас же эта реклама и вовсе выглядит нелепо. Больше покупателей будет у тех, кто заявит: «У нас вообще люди к товару не притрагиваются, полная стерильность и безопасность!»
  • Провал с ценовой политикой. Одна организация зазывает покупателей докризисными ценами. Вероятно, имеется в виду, что это что-то хорошее. Сейчас по понятными причинам цены падают, так что докризисные цены на самом деле не достоинство, а недостаток. Хвастать тем, что ты держишь цены обычного времени пока все остальные их снижают - странно.

Да, чем еще заниматься во время пандемии, как не анализом рекламных роликов? 🙂


Голос отдал

Пандемия очень положительно повлияла на успешность цифровизации. Вот уж хорошая иллюстрация пословицы «Не было бы счастья, да несчастье помогло». К подобным результатам без экстрима мы бы двигались еще несколько лет.


Я, как житель Москвы, на которой все время ставят эксперименты и тестируют технологии, получил возможность проголосовать через портал государственных услуг. Проголосовал. Никогда еще голосование не было таким простым и безопасным. Если это будет внедрено по всей стране - явка даже на самых неинтересных выборах будет солидной. Лентяи (а также люди, которые просто не любят тратить время зря) - счастливы.


Steam и выгода

Я не особенный фанат игр, но порой люблю погонять персонажа в RPG или заработать много денег в стратегии. Что в Steam можно поймать выгодные предложения - не новость вовсе. Зашел вот с намерением купить Fallout 4. Обнаружил кучу скидок на то, что давно приметил, да еще и дополнительную скидку 100 рублей. Купил набор из Fallout 4 и The Elder Scrolls V: Skyrim, The Witcher 3: Wild Hunt, Rise of the Tomb Raider, DOOM 2016 года. Потратил очень небольшую сумму. Хватит года на полтора неспешной игры.


Жду скидок на Tropico 6 еще. Как раз, вероятно, через пару лет подешевеет.


Стратегия: платить как можно меньше. Тактика: не покупать игры сразу, ждать несколько лет. Работает.


Княсимир: «Пытание»

Выгрузился таки в Я.Музыку (и, кажется, куда-то еще) старый альбом - первый полноценный из официально опубликованных в интернете. Пришлось его несколько переделать, и все же я допустил пару косяков. После публикации - не изменишь. Возможно ли персонажей объединить - неизвестно, так что артист получился de jure новый.


Обложку пришлось слепить за 5 минут из подножного материала, бо моя оригинальная красивая обложечка была сильно меньше требуемых зачем-то 3000 пикселей. Получился отстой, конечно.


На злую память.
Княсимир: «Пытание»


Вирус и бабло

Экономическая активность, конечно, упала в связи с пандемией. Некоторые бедолаги не могут заработать ни копейки. Кто-то просто полинял по бабкам, что всегда неприятно. Кому-то даже может показаться хорошей идеей именно во время чумы, когда денег особенно нет, сходить в работодателю и потребовать умолять улучшить условия работы. Конечно, результат будет немного предсказуем, но и понять смельчаков можно: именно когда доход скукоживается чувствуется острая необходимость его как-нибудь вернуть. Наверное, вариант «похныкать погромче, чтобы мне сделали хорошо» намертво зашит в нас с рождения до смерти.


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


Собственно, реалистичные варианты реакции на сложившуюся ситуацию такие.

  • Не делать ничего. Чем не вариант? Смирить душу, принять факт падения дохода, воздать хвалу работодателю за возможность зарабатывать что-то, успокоиться. Ждать улучшения экономической ситуации. Если есть много свободного времени - заниматься самообразованием с целью потом заняться более сложными и высокооплачиваемыми задачами.
  • Работать больше. Пойдет сдельщикам. Многие воспримут идею пахать больше за те же деньги как оскорбление. Штош, каждый сам выбирает свой путь.
  • Инвентаризировать ресурсы, ликвидировать глупые траты. Например, на походах в супермаркет можно неплохо сэкономить. Чем не дополнительный доход?

Как организовать дополнительную работу?

  • Работать не 8, а 9-10 часов в будние дни. Да, тяжело, но в тяжелые времена каждый дополнительный рубль дается тяжело. Это - норма.
  • Работать по выходным. Не полную смену, но на полдня выходить можно вполне.
  • Отпуск взять деньгами. Нет ничего бесполезнее нагревания своей туши возле лужи. Вместо этого вполне можно получить и отпускные, и обычную оплату за работу во время виртуального отпуска.

Где взять ресурсы на дополнительную работу?

  • Использовать время эффективнее. Кофий на завтрак? Свари во время ужина, поставь в холодильник перед сном, утром выпей. В магазин 2 раза в неделю? Делай 2 ходки раз в неделю, а еще лучше 4 ходки раз в 2 недели - на одном надевании штанов можно сэкономить. Сидишь в сортире с планшетом часами? Кончай это дело. Время тратится впустую в диких количествах, надо лишь внимательно посмотреть на свою жизнь.
  • Отказаться на время от некоторых развлечений. Три серии аниме в день? Пусть будет одна. Игры? Скукожь до пары часов в неделю по выходным.
  • Отдыхать эффективнее. Спать много. Хороший сон - залог успеха и выносливости. Для работы в усиленном режиме нужно больше сна.
  • Реорганизовать режим дня. Совам желательно вставать пораньше, часов в 12. Самые эффективные часы должны уходить на зарабатывание денег. Спать в это время - плохая идея с точки зрения дохода. Да, главный девиз чумного времени: «это временно, надо лишь потерпеть».

На чем проще всего сэкономить деньжат?

  • Перейти на более дешевую еду. Дешевле - не значит хуже. Говядина? Это круто, но пока бери свинину, а еще лучше курятину - вкусно и дешевле. Дорогую колу хлещешь? Бери дешевую газировку, нет разницы чем травиться. Полулитровые бутылки? Не нужны, брать следует бутыли по 2 литра, в разы дешевле получается. Доширак? Еда мажоров-богатеев, обычные макароны значительно дешевле.
  • Покупать только реально нужное. Перед каждой покупкой следует спросить у себя два раза: «эта фигня мне точно нужна?» Если есть сомнения - не брать. Бритву новую нужно бы? Поскребись старой пока или отрасти бороду. В сортире сгорела одна лампочка из трех? Двух вполне достаточно, не промажешь.
  • Использовать ЖКУ более эффективно. Если счетчики есть - самое время перестать лить воду и включать электроприборы зря.
  • Искать хорошие предложения / акции. Именно сейчас цены на разное ползут вниз: продавцы понимают, что у людей стало меньше денег. Можно обнаружить весьма привлекательные предложения. Нужно лишь чтобы было на что купить.
  • На улицу вылезать как можно реже. На масках, перчатках, антисептике, мыле, стиральном порошке и т. д. можно неплохо сэкономить.

Я лично комбинирую дзен принятия и работу в усиленном режиме. В месяце этом заработаю, похоже, меньше, нежели в прошлом, но на жизнь хватит вполне. И с отрицательным приростом дохода я еще непременно пободаюсь. :з


Морозов и Венесуэла

Во втором томе книги Николая Морозова «Христос» обнаружился непривычный вариант написания Венесуэлы: в виде «Венецуэлла». Интересно, однако.


Венецуэлла таки:
Морозов и Венесуэла


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


MDN и несуществующее

Только что обратил внимание на то, что в статьях Mozilla Developer Network встречается очень сомнительное решение следовать правилам человеческого языка, и заголовки начинать с заглавной буквы. В результате на свет появляются несуществующие сущности вроде метода Console.log(). Это таки фейл. Материалы про языки, чувствительные к регистру, должны содержать данные ровно в том регистре, в котором они существуют на самом деле.


Китайцы и спам

Моя не вполне репрезентативная, но весьма обширная выборка почтового спама международной направленности (английский язык) говорит предельно четко: лидеры среди спамеров - китайцы. Процентов эдак 90 спама - это какие-то китайские продукты от китайских производителей. СИЗы, конечно, сейчас часто предлагают.


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


Вирус и спамеры II

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


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


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