Ctrl + ↑ Позднее

Спам «Кукурузы»

Банковская карта «Кукуруза» постоянно шлёт спам. Ссылка «отписаться» не работает, жал уже раз 10. Папка «спам» в почте — не выход: не люблю, когда там есть непрочитанные сообщения.

В самом письме помимо «отписаться» предлагают написать в техподдержку. Жму ссылку и попадаю на сайт «Евросети»! Почему письмо «Кукурузы» приводит в «Евросеть»? Ну да, они родственники, но ведь у каждого свой сайт. И что, мне писать в техподдержку «Евросети», чтобы они отписали меня от спама «Кукурузы»? Написать всегда успею, а пока поразбираюсь ещё.

Какой у меня пароль от «Евросети»? Никакого, я там не зарегистрирован! «Восстановить пароль» по этой же причине не работает (и даже не сообщает, что я не зарегистрирован).

А какая у меня почта в «Кукурузе»? Другая, не та, на которую идёт спам! Вообще, почты как таковой в «Кукурузе» нет. Логин — штрих-код карты. Есть почта, на которую присылать ответ техподдержки, но её можно менять. И, раз она не совпадаёт, изучаем интерфейс дальше... «Меню»→«Подать заявление»: «Необходимо перейти в старый кабинет».

Сколько лет назад они переписали личный кабинет? Год? Два? Я уже забыл, что старый вообще существовал, а они до сих пор не доделали новый! Переходим.

Красота-то какая! И ведь всё равно веб-два-нольненько, но гораздо приятнее нового. Надо бы осмотреться... «Ещё»→«Уведомления». Вот оно! Та самая почта, на которую приходит спам! И поставлен флажок! И его можно снять! Только сначала эту почту надо активировать.

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

Обновление 07.07.2017: нет, не перестал. Зато предложили сменить пароль. Так что теперь я зарегистрирован в «Евросети» (при этом она знала полностью ФИО и номер карты, но не номер телефона и дату рождения, и эти данные я так и не ввёл). Так что ещё раз пробую отписаться.

Обновление 13.07.2017: и снова не перестал. А что, если сначала подписаться? И указать в личном кабинете телефон, а то он красным светится? А после этого отписаться?

Обновление 20.07.2017: и снова не перестал. Написал через форму обратной связи, ссылка на которую содержится в каждом письме (http://euroset.ru/novosibirsk/feedback/): «Прошу отписать меня от рассылки „Кукурузы“. Также сообщаю, что другие способы отписки опробованы мною многократно, и они не работают. Если интересно, подробности по ссылке http://www.caesarion.ru/blog/all/spam-kukuruzy/». Чтобы повысить вероятность успеха, заменил слова ‘требую’ и ‘спам’ на эвфемизмы-канцеляризмы ‘прошу’ и ‘рассылка’.

Обновление 20.08.2017: спама больше не было. Но и ответа тоже, а обещали в течение 24 часов.

2017  

= и ==

В «Паскале» «=» — это сравнение, а присваивание — это «:=». «Паскаль» я изучал в школе и первом семестре университета. Во втором «Паскаль» сменился на «Си». В «Си» «=» — это присваивание, а сравнение — это «==».

Сначала я часто ошибался: писал if (a = 5) вместо if (a == 5).

Потом мне посоветовали, и я стал писать if (5 == a): если по ошибке поставить присваивание, получим ошибку времени компиляции.

Прошло десять лет. Я иногда программирую, но в целом не работаю программистом. Месяцами не смотрю на код ни на каком языке. И теперь конструкция if (5 == a) кажется мне безумно некрасивой; теперь я всегда пишу if (a == 5) и, что самое интересное, никогда не ошибаюсь.

А студентам теперь уже я советую if (5 == a).

Не помню, как я отношусь к «ПХП» с его «===» (сравнение с учётом типа). Давно не писал на нём.

2017  

Русские не читают инструкций

Говорят, что русские читают инструкции не перед использованием, а после того, как сломали.

Всегда считал это глупостью (в лучшем случае — несмешной шуткой). И лишь сейчас, в 29 лет, я осознал рациональную сторону такого поведения.

Инструкция на водонагреватель «Polaris» «Aqua»: «просверлите отверстия под анкерные болты диаметром 12 мм и глубиной 80 мм ... При установке анкерных болтов должны быть задействованы все точки крепления, предусмотренные конструкцией водонагревателя. Не допускается подвеска прибора на два анкерных болта, если конструкцией предусмотрены четыре точки крепления». Конструкцией предусмотрены 4 точки крепления. В комплекте 2 анкера. Диаметром 16 мм.

«Введите сумму, кратную 500 рублям. Максимум 300 рублей за операцию». Ввожу 10 000. Получаю 10 тысячных банкнот.

2017  

«Эгея»

Версия 3118

Запись можно вернуть в черновики (жать на «корзину»), а потом восстановить, включая комментарии. Но время публикации будет новое, как будто раньше ничего не было.

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

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

Посмотрим, осталась ли проблема с РСС (многократный приход одного и того же).

Версия 2858

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

Есть сохранение по Ctrl+S, хорошо.

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

Идентефикатором для РСС является адрес заметки. Поэтому при изменении содержания или времени РСС не перезагрузит заметку. А при редактировании адреса продублирует и не поймёт, что она уже была. Все старые адреса движок запоминает, делает перенаправление на последний. При попытке использовать занятый адрес (в том числе при создании новой записи) сам редактирует. Неплохо.

2017   блог   эгея

Список записей в блоге

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

2017  

Подключение мобильного кондиционера

Правило 1: если есть хоть малейшая возможность — откажитесь от мобильного кондиционера! Лучше всего система кондиционирования, объединённая с системой вентиляции; неплохой вариант — сплит-система (формально в Новосибирске нужно разрешение, чтобы повесить внешний блок на фасад; фактически по состоянию на 2017 год мне известны многократные случаи самовольной установки и неизвестно о последствиях). Мобильный кондиционер — это шумно, очень шумно по сравнению даже с сильным вентилятором. А мобильность вступает в противоречие с эффективностью: чтобы добиться паспортного охлаждения, придётся так хорошо уплотнить все места соединений и теплоизолировать трубу, что прибор станет стационарным. Конечно, на зиму можно всё разобрать. Но вот «включили в розетку, кинули трубу в форточку или щель балконной двери» — это неправда. Если охлаждать вообще и будет, то весьма неэффективно.

Итак, есть Electrolux EACM-15 CL/N3 Loft, диаметр воздуховода 125 мм. Есть подоконник. Есть отверстие в окне. Прошлым летом на этом же месте стоял другой мобильный кондиционер. Что может быть проще?

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

Панель вставили. Сделали как в прошлом году: два пластмассовых уголка, между ними труба. Проблема: дует из всех щелей. А воздухозаборник расположен прямо над выхлопом. Кстати, у предыдущего концидионера этот вопрос был продуман: там воздухозаборник располагался на боковой стенке. Обмотал всё малярным скотчем. Дуть перестало. Зато появился дребезг. Периодический. Как будто вибрирует телефон. И распространяется он, очевидно, не по воздуху. Потому что этот дребезг было слышно в другом конце квартиры при наличии других шумов.

Заменил пластиковую трубу на гибкую алюминиевую, чтобы развязать кондиционер от окна. Обмотал скотчем с армирующей сеткой. Красота! Не дует, не дребезжит. Красота продолжалась менее суток. Температура воздуха — более 60 °Ц. Клей расплавился.

Дал скотчу второй шанс, только другому — алюминиевому. Он, вроде, как раз для герметизации вентиляции используется. Результат прежний.

Скотч — это полбеды. Проблема ещё и в том, что даже герметичная труба всё равно нагревает комнату. Надо бы её теплоизолировать. В качестве быстрого решения обернул вспененным полиэтиленом. А скотчу дал ещё шанс, просто наклеил его побольше.

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

Ещё пришлось прижать съёмную решётку воздухозаборника скотчем (малярным), чтобы не вибрировала.

2017  

Назад в «Оперу»

Много лет моим веб-браузером была «Опера». После прекращения разработки 12-й версии перешёл на «Хром». Недавно прочитал, что новая «Опера», наконец, стала более-менее. Просто ради интереса пытаюсь перейти на неё.

+

Работает выделение текста внутри ссылки. Правда, в целом выделение работает не так хорошо, как в старой «Опере». Но по сравнению с «Хромом» это очень хорошо.
Работают кое-какие хромовские расширения.
Все закладки, куки, пароли можно импортировать из «Хрома». Из других браузеров не тестировал.
Окно не закрывается при закрытии всех вкладок.
Можно выбрать порядок смены вкладок как в старой «Опере». А можно как в «Хроме». Но хотелось бы переключаться побыстрее.
Назад по Ctrl+←, как в старой «Опере».
Некоторые сайты корректнее сохраняются в PDF из диалога печати.
Встроенная РСС-читалка. Как в старой «Опере»: добавить поток можно через знчок в адресной строке (парсится тег link rel=«alternate» type=«application/rss+xml»). Есть оповещение о новых сообщениях. При этом список подписок синхронизируется (в старой «Опере» читалка была локальная).
Можно удалять записи автозаполнения.

Тормозит и ест память, как «Хром».
Эта ваша хвалёная турба что-то не особо работает. Вот «Фригейт» не подводит.
Расширения сами не устанавливаются, надо на каждой копии браузера вручную.
Встроенная РСС-читалка абсолютно бесполезна: сообщения не делятся на прочитанные/непрочитанные, длинные показываются не полностью, не поддерживается никакое форматирование текста. Я уж молчу о более тонких настройках, таких как интервал проверки. Нельзя даже скопировать адрес потока, хотя он отображается по ховеру, то есть даже в качестве списка подписок читалка бесполезна. Ну, если всё, что вам нужно от читалки — видеть все обновления подряд, чтобы перейти по каждому, не читая в самой читалке, то вас она устроит.

Мои настройки (версия 46)

+ Синхронизация. Выбрать всё.
− Все закладки с экспресс-панели (Ctrl+Shift+B, Speed Dial, Ctrl+A, Delete).
Настройки (Alt+P): ЛНУ: показывать дополнительные/Show advanced settings.
Основные/Basic:
Блокировка рекламы: включить все списки (из языковых достаточно для русского языка), обновить.
Папка загрузки.
− Фоновые рисунки.
Управление боковой панелью: включить всё (если позволяет высота экрана). Войти.
Браузер:
Поиск — «Яндекс»
В первый раз можно импортировать закладки-настройки (из «Хрома» импортируются даже пароли!).
Язык интерфейса — английский UK.
− показывать предпросмотр вкладок.
− жесты мышью.
+ Показывать доступные источники новостей в адресной строке (это они так РСС обозвали).
Возможно, отключить переключение вкладок в порядке просмотра.
Сайты — хорошо.
Приватность и безопасность — хорошо.

Расширения

Расширения «Хрома».
Расширения «Оперы».
Многие расширения нужно включить через (Ctrl+Shift+E).
Download Chrome Extension — это нужно, чтобы устанавливать из магазина «Хрома».
FriGate
«Где посылка?». Уведомления отключить на сайте.
«Почта» из «Элементов „Яндекса“». Настройки: убрать оповещения о новых (но не убирать количество новых в самом значке).
InoReader Companion.
«Google Hangouts». С версии браузера 47 (август 2017) работает как положено. А раньше было так: это расширение умеет только показывать входящие сообщения в виде всплывающих окон и число новых сообщений в своём значке, причём для этого браузер должен быть запущен. Оперное расширение «Messenger for Google™ Hangouts» ставить не надо, так как его функционал сводится к открытию сайта https://hangouts.google.com/. Итак, чтобы полноценно пользоваться «Хэнгаутсом»: 1) держим браузер открытым; 2) создаём закладку на сайт; 3) ставим официальное приложение, чтобы сразу видеть новые сообщения. Если вам не нужны новые сообщения, достаточно только закладки. После открытия диалога его можно открыть в новом окне, но при этом не стоит закрывать общую вкладку — она должна быть открыта, чтобы приходили новые сообщения.
adblockplus

Назад в «Хром»

25.09.2017. Возвращаюсь к «Хрому», потому что:

  • Самое главное — «Опера» хоть и хранит пароли, но что-то не очень синхронизирует их, хотя я вошёл. Особенно обидно, когда не очень-то нужно, но хочется залогиниться на сайт с телефона, которым я точно недавно пользовался с ПК. Если бы было действительно нужно, было бы не так обидно вводить пароль вручную.
  • «Опера» не синхронизирует расширения. Да, это нужно редко, при установке операционной системы, но тем приятнее, что «Хром» это делает. Он тоже неидеален: настройки расширений локальные (например, своя блокировка рекламы или свои сайты «Фригейта»). Но хотя бы так.
  • «Хэнгаутс» хоть и заработал в «Опере», это всё равно какой-то костыль. Он открывается в отдельном окне, а ссылки из него — в основном.
  • Встроенный «Вотсап» какой-то неполноценный, мало того, что для залогинивания требуется смартфон, так ещё и для работы тоже! Ну, да, изначально в «Хроме» и такого нет, но есть расширение.
  • Жрёт память и тормозит не хуже «Хрома», так в чём тогда смысл?
  • Хоть в «Опере» и есть свой блокировщик рекламы, всё равно без «Адблокплюса» плохо. А раз всё равно его ставить, зачем встроенный?
  • Дублирует закладки, сделанные на мобильном устройстве.
2017  

Atmel AVR 8-bit: пишем бутлоадер

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

Эта запись — конспект того, как делал я.

Задача: написать бутлоадер для ATmega16, занимающий 512 слов. Микроконтроллер соединяется с компьютером через USART, есть возможность выполнить сброс, сигнал break при нормальной работе не используется, миллисекундная задержка при включении неважна.

Решение: при включении питания управление передаётся на бутлоадер (BOOTRST = 0). После выполнения всяких инициализаций (портов) он читает ножку Rx. Если там отсутствует break более определённого времени, управление передаётся основной программе (jmp 0). Если присутствует, ждём снятия и переходим к циклу общения с компьютером по USART...

Соответственно, извне это выглядит следующим образом: если хотим шить, нужно подать на USART break и перезагрузить прибор (включить питание или замкнуть ножку /RESET на землю). Если же break не подавать, то всё влияние бутлоадера проявляется лишь в том, что после сброса требуется дополнительное время (для человека пренебрежимо малое) на запуск устройства. И, ясное дело, в том, что основная прошивка должна быть короче, чем вся флешка.

Реализованы следующие команды:

  • Пинг
  • Запись страницы из адресного пространства основной программы (сам бутлоадер перезаписать нельзя — защита от дурака)
  • Чтение любой страницы
  • Сброс (передача управления основной программе — jmp 0)

Кроме того, по выделенному адресу расположена 64-байтная строка — версия бутлоадера. Компьютер может достать её с помощью команды чтения страницы.

Настройки Atmel Studio 7.0:
Проект C exe.
Toolchain
Optimization = None
Memory settings (в словах):
.text=начало секции бутлоадера (в соответствии с фьюз-битами)
.version=в конце секции бутлоадера, чтобы вместилась соответствующая строка
Device ...

Для ATmega32(A):
.text=0x3e00
.version=0x3fe0

Для ATmega16(A):
.text=0x1e00
.version=0x1fe0

В обоих случаях весь бутлоадер занимает 512 слов, а версия — 64 байта.

В целом проект написан на Си, но именно функции, связанные с чтением/записью страниц, — на ассемблере.

Для компьютера было написано 2 разных прошивальщика: на Java 6 (консольная программа) и на LabWindows/CVI 2013 (GUI).

На этом пока всё...

2017   Atmel AVR

Atmel AVR 8-bit: локбиты и фьюзбайты

Эта запись — краткий конспект, а не полное руководство.

Сленг: Lock bits = локбиты = локи. Fuse bytes (bits) = фьюзбайты (биты) = фьюзы.

1 = unprogrammed = неустановленный = незаписанный = выключенный = отключенный = снятый = зелёный Off = флажок снят
0 = programmed = установленный = записанный = включенный = красный On = флажок стоит

Локи можно устанавливать. Единственный способ снять (причём все одновременно, то есть по умолчанию они все сняты) — команда chip erase. Нужны для секретности (чтобы нельзя было прочитать прошивку).

Фьюзы можно как устанавливать, так и снимать; по умолчанию они не все 1; команда chip erase не влияет. Нужны для всяких настроек, связанных с аппаратным обеспечением конечного устройства (например, тактовая частота), поэтому обновление прошивки, как правило, не требует их изменения.

Локбиты

Похоже, они одинаковы вообще для всех AVR 8-бит. Проверено для ATmega16A, ATmega32, ATmega1284P.

7
6
5 BLB12
4 BLB11
3 BLB02
2 BLB01
1 LB2
0 LB1

BLB — Boot Lock bits, влияют, в частности, на возможность самомодификации кода бутлоадером. LB — Lock bits, влияют на возможность программирования программатором.

Если без тонкостей, то получается так:
Boot Lock Bit0 Protection Modes (Application Section):
11 = бутлоадер может писать и читать Application Section
10 = бутлоадер может только читать Application Section

Boot Lock Bit1 Protection Modes (Boot Loader Section):
11 = бутлоадер может писать и читать Boot Loader Section
10 = бутлоадер может только читать Boot Loader Section

LB:
11 = ограничений нет
10 = программатор может только читать flash, eeprom, fuse
00 = программатор не может даже читать flash, eeprom, fuse

Итого:
0xff = никакой защиты
BLB11 = 0 (0xef) — только защита бутлоадера от самопереписывания

Фьюзбайты

Для ATmega16A и ATmega32.

Старший фьюзбайт:

7 OCDEN Enable OCD
6 JTAGEN Enable JTAG
5 SPIEN Enable SPI Serial Program and Data Downloading
4 CKOPT Oscillator options
3 EESAVE EEPROM memory is preserved through the Chip Erase
2 BOOTSZ1 Select Boot Size
1 BOOTSZ0 Select Boot Size
0 BOOTRST Select reset vector

Младший фьюзбайт:

7 BODLEVEL Brown-out Detector trigger level
6 BODEN Brown-out Detector enable
5 SUT1 Select start-up time
4 SUT0 Select start-up time
3 CKSEL3 Select Clock source
2 CKSEL2 Select Clock source
1 CKSEL1 Select Clock source
0 CKSEL0 Select Clock source

Биты программаторов и отладчиков:
OCDEN — включить On-chip Debug. У меня отладчика нет, так что оставлю 1.
JTAGEN — аналогично для JTAG. У меня JTAG нет, а лишаться части ножек не хочу, так что переключу на 1.
SPIEN — аналогично для последовательного программатора. Имеется защита от дурака: при использовании последовательного программатора выключить этот бит невозможно.

Биты частоты и включения:
CKOPT, SUT, CKSEL — из значения зависят друг от друга, так что просто читайте раздел System Clock and Clock Options.

EESAVE — не стирать EEPROM командой Chip Erase.

Для бутлоадера:
BOOTRST — с какого адреса начинать исполнение программы после сброса. Обычно, если бутлоадера нет, то с нулевого (бит снят), если есть, то в соответствии с битами BOOTSZ (бит установлен). Они определяют длину бутлоадера с конца адресного пространства. В словах:

ATmega16A ATmega32
11 128 256
10 256 512
01 512 1024
00 1024 2048

Сброс при просадке напряжения:
BODEN — если включить, то низкое напряжение питания приведёт к сбросу. Полезно при использовании бутлоадера, чтобы избежать ошибок записи. Но увеличивает энергопотребление во всех режимах.
BODLEVEL — уровень срабатывания Brown-out Detector (если BODEN установлен): 1 = 4 В (для нормального напряжения 5 В), 0 = 2,7 В (для нормального напряжения 3,3 В).

The default (10011001, 11100001) clock source setting is therefore the 1 MHz Internal RC Oscillator with longest startup time.

2017   Atmel AVR

Всё подряд — 2017

Иногда хуже — лучше

  1. Когда-то сайт youtube был очень медленным (имеется в виду среднее время загрузки страницы), и его переписали. В результате он стал ещё медленнее. Оказалось, что сам по себе движок заработал быстрее, что привлекло на сайт людей с медленным интернетом, которые раньше им вообще не могли пользоваться. То есть разработчики на самом деле всё правильно сделали. Неверной была изначальная формулировка цели.
  2. Почему многие программисты лучше всего работают по ночам? Одна из причин — усталость. Программирование — занятие довольно скучное, не требующее от мозга максимальный отдачи. Днём, на пике трудоспособности, мозг ищет дополнительных занятий, и находит их в виде таких развлечений, как чтение и общение по интернету. Но программирование требует сосредоточенности, нельзя 5 минут читать анекдоты, а 5 минут эффективно программировать. Ночью у мозга не остаётся сил на дополнительные задачи, и он, уставший, полностью отдаётся работе. Источник: https://habrahabr.ru/post/135090/
  3. Уменьшение калорийности может привести к увеличению веса. И наоборот. А может не привести.

Техническая неграмотность в угоду красоте языка

«Ток идёт по наименьшему сопротивлению». Ток идёт везде. Даже через изоляцию. По наименьшему сопротивлению идёт бо́льшая часть тока. В некоторых задачах остальным током можно пренебречь. В некоторых нельзя.

«Число пи равно 3,14». Число пи примерно равно 3,14. А ещё оно примерно равно 3. А если стоит задача округлять до ближайшего целого вверх, то 4. А если обрезать после 6 знаков после запятой, то 3,141592. А если не обрезать, а округлить, то 3,141593. Всё это приближённые значения, и каждое из них адекватно своей задаче, и ни одному из них число пи не равно.

«Автомат ограничивает ток. УЗО ограничивает ток утечки». В принципе существуют автоматические выключатели с ограничением тока, но, если говорить о бытовых, то ток они ограничивают разве что собственным сопротивлением порядка 10 мОм. При 230 В получается 23 кА. На 3 порядка больше, чем номинал самого устройства. На самом деле АВ и УЗО ограничивают время. Время протекания тока.

С чего начинается дискриминация

С чего начинается дискриминация? http://ilyabirman.ru/meanwhile/all/monument-valley-2/ «самая прекрасная компьютерная игра в мире». Даже не по ходу записи, а лишь при переходе по ссылке становится понятно, что единственным компьютером, на котором работает эта игра, является «Айфон». http://ilyabirman.ru/meanwhile/all/resize-window-applescript/ «Разумеется, встроенными средствами компьютера». Далее становится понятно, что под компьютером имеется в виду «Мак». Последний абзац: «Пользуйтесь компьютером для автоматизации всего. Его специально для этого придумали». Тут ещё был вариант написать что-то в духе «пишите в комментариях, как добиться этого на других операционных системах». Но нет. Абзац продолжается словами «Я это ещё писал тысячу лет назад, когда можно было только дебильным Эплскриптом пользоваться, а сейчас там уже Джаваскрипт работает».
:’’21.06.2017’’

USB 2.0 и 3.0

Утверждается, что USB 3.0 обратно совместим с 2.0. На самом деле вилку 3.0 A надо вставлять в розетку 2.0 A не до конца.

Ctrl + ↓ Ранее