Страница №2
28 October 2018, 18:16 MSK
Из сложившейся в стране ситуации у петербуржцев
есть три выхода: Торфяновка, Брусничное и Светогорск
Народное творчество
Первая часть тут.
На машине (или автобусе) в Страну тысячи озёр из России можно въехать через 3 пропускных пункта (МАПП). Обычно я въезжаю и выезжаю через Брусничное, но в этот раз изменил маршрут и объехал все три.
IMG_4268
23 October 2018, 18:50 MSK
Сейчас середина осени, и скоро наступят холода. В этой заметке я расскажу, каким образом можно просто и быстро автоматизировать отопление обычными радиаторами в квартире или доме и получить возможность изменять температуру в комнате с айфона, айпада или макбука.
В результате получится настоящий климат-контроль в доме: можно задать необходимую температуру воздуха в помещении с помощью телефона (в том числе удалённо или по расписанию), а ваш радиатор будет её поддерживать на нужном уровне. Для этого будем использовать специальный термостат (в народе называемый термостатической головкой).
Вот так выглядит конечный результат:
термостатическая головка Eve Thermo
14 October 2018, 16:15 MSK
Питерская народная забава — сгонять в Финляндию туда-обратно одним днём.
IMG_3139
16 August 2018, 01:45 MSK
Продолжаем рассказывать общественности о том, как операторы сотовой связи зарабатывают деньги мошенническим образом.
Исторически у меня несколько симок для разных нужд в Мегафоне. Недавно я заметил, что на одной из них начали утекать деньги, хотя симка лежит в ящике около полугода и временно не используется.
Идём в личный кабинет и смотрим расходы по номеру:
megagavno
WTF? Каким-то образом оказались подключены две платные услуги, за 2.5 руб. / сутки и 30 руб. / месяц.
Удивительно. Ещё раз: симка с осени 2017-ого лежит в ящике. В колл-центре сказали, что обе услуги подключены в июне. Интересно, кем? Сотрудники, разумеется, информацией не обладают. Абсурдности ситуации добавляет тот факт, что в июле я звонил в колл-центр и интересовался, какие платные услуги подключены на всех моих номерах (полезно проделывать это пару раз в год), и про эти услуги никто даже не заикался.
Дальше — ещё смешнее. В колл-центре прошу отключить злосчастные опции и вернуть деньги. SMS XXS отключили, а вот Персональный бюджет не могут. «Почему?» — спросите вы. Оказывается, эта опция только для корпоративных клиентов. Сотрудник переводит вызов в колл-центр для корпоративщиков, но там мне тоже помочь не могут, потому что, ВНИМАНИЕ, номер зарегистрирован на физическое лицо. На этом моменте уже начинает подгорать.
Мегафон, вы вообще в адеквате? Дело не в 30-ти рублях, мне просто интересно, как такое может быть?! На номере, который зарегистрирован на физ. лицо, подключена услуга только для юр. лиц, и никто не может мне её отключить! При этом совершенно не понятно, кто и как её подключил, но деньги за неё стабильно продолжают списывать.
UPD: отключили только после личного визита в салон с паспортом.
10 August 2018, 16:39 MSK
Самая большая глупость на свете — голосовые сообщения в мессенджерах. Люди, которые отправляют голосовые сообщения вместо текстовых, часто не задумываются о неудобствах для собеседников. К сожалению, последнее время лично у меня участились голосовые сообщения от совершенно разных людей, что и вынудило меня написать этот пост.
Во-первых, прочитать текст занимает в несколько раз меньше времени, чем прослушать аудиозапись.
Во-вторых, написанное текстом сообщение потом легко найти в истории обычным поиском, а голосовое нельзя.
В-третьих, прослушать голосовое сообщение сложнее, если ты на улице или не один в помещении, и практически нереально, если ты на встрече, в кино и т.д.
Отправляя очередной раз кому-нибудь голосовое сообщение вместо того, чтобы набрать текст, помните, что ваш собеседник, скорее всего, тихо вас ненавидит.
11 July 2018, 20:13 MSK
Итак, снова пост про Телеграм. Я уже рассказывал, как отправлять сообщения от имени бота (в том числе, через прокси) и как сделать бота, который умеет принимать сообщения.
Отправлять сообщения в Телеграм от бота очень просто, но есть крайне неудобная проблема: из-за ограничений Telegram Bot API бот не может писать первым. То есть, сначала пользователь, которому вы собрались что-нибудь отправить, должен первым написать вашему боту любое сообщение. Это ограничение вполне разумно и предотвращает спам сообщениями от ботов, но очень мешает честным людям. Например, отправлять сервисные сообщения с информацией о заказе в интернет-магазине.
Решение этой проблемы только одно: не использовать ботов. Придётся всё делать с обычного аккаунта.
Копаться в подробностях телеграмовского протокола MTProto не нужно, как оказалось, всё уже сделано до нас. Для PHP существует чудесная библиотека MadelineProto. Её мы и будем использовать, ниже пошаговая инструкция.
8 July 2018, 03:20 MSK
Последнее время я увлекаюсь системами умного дома и хотел бы поделиться накопившимся опытом. В серии постов на эту тему я расскажу как о попытке сделать свою систему с нуля, так и о готовых решениях.
smart-home
Педантичный читатель обязательно придерётся к термину «умный дом». Конечно, правильнее называть это домашней автоматизацией, но я позволю себе использовать хоть и неверную, но устоявшуюся формулировку.
Сейчас на рынке присутствует очень много разрозненных решений. Ради эксперимента мне захотелось попробовать сделать что-нибудь самому.
Хороший проект всегда начинается с требований к конечному результату, вот мои:
  1. Нафиг километры проводов. У меня в квартире сделан ремонт, поэтому заново штробить стены желания совсем нет. Пусть умный дом будет обмениваться данными по радио-каналу.
  2. Нафиг бредовые идеи. Встроить айпад с интерфейсом в стену? Отправлять данные на народный мониторинг? Ну уж нет, спасибо, обойдёмся без этого.
  3. Нафиг пульты. Пульты всегда теряются и ломаются. Лучший пульт — тот, который всегда с тобой. Это телефон или часы (привет, Сири!). Также не забудем оставить классические элементы управления (настенный выключатель, ггг) для менее продвинутых домочадцев.
Теперь подумаем над архитектурой. Философия моего умного дома будет такой (привет, Юникс!):
Одно устройство должно делать только одну вещь, но должно делать её хорошо.
Такой подход лаконичен и позволяет не смешивать всё в одну кучу, не усложнять архитектуру системы, превращая устройства в многофункциональные комбайны.
2 July 2018, 00:16 MSK
Когда я был студентом и любил спорить с преподавателями, мой научный руководитель всегда просил меня не делать преждевременный рефакторинг кода. Потому что отрефакторить работающий код можно за конечное число шагов, а сколько времени займёт превращение неработающей, но отрефакторенной программы в работающую — неизвестно. Спустя годы я понял, что это работает не только в программировании, но и в жизни.
5 June 2018, 18:22 MSK
Я уже писал о том, как отправить сообщение из PHP в Телеграм и как сделать своего Телеграм-бота, принимающего сообщения. Тема оказалась довольно популярной, но в связи с известными событиями у некоторых пользователей всё же могут возникать трудности. Недавно мне написал один их моих читателей и пожаловался, что мой скрипт из предыдущего поста у него на хостинге не работает.
Если вы не читали предыдущий пост по теме, сначала рекомендую прочитать его: https://kirkizh.ru/2018/04/telegram-php/.
Для решения этой проблемы проще всего использовать прокси сервер. Учтите, что прокся нужна обычная (HTTP/SOCKS), не специфичная телеграмовская (MTProxy).
Итак, новый код:
<?php
// сюда нужно вписать токен вашего бота define('TELEGRAM_TOKEN', '999999999:XXXXXXXXXXXXXXXXXXXXXXXXXXXX');
// сюда нужно вписать ваш внутренний айдишник define('TELEGRAM_CHATID', '99999999');
message_to_telegram('Привет!');
function message_to_telegram($text) {     $ch = curl_init();     curl_setopt_array(         $ch,         array(             CURLOPT_URL => 'https://api.telegram.org/bot' . TELEGRAM_TOKEN . '/sendMessage',             CURLOPT_POST => TRUE,             CURLOPT_RETURNTRANSFER => TRUE,             CURLOPT_TIMEOUT => 10,             CURLOPT_POSTFIELDS => array(                 'chat_id' => TELEGRAM_CHATID,                 'text' => $text,             ),             CURLOPT_PROXY => 'host:port',             CURLOPT_PROXYUSERPWD => 'login:password',             CURLOPT_PROXYTYPE => CURLPROXY_HTTP,             CURLOPT_PROXYAUTH => CURLAUTH_BASIC,         )     );     curl_exec($ch); }
Чтобы всё заработало, вам нужно прописать настройки вашей прокси:
  • CURLOPT_PROXY — адрес и порт, например, 127.0.0.1:3128;
  • CURLOPT_PROXYUSERPWD — логин и пароль, разделённые двоеточием;
  • CURLOPT_PROXYTYPE — тип прокси, одна из следующих констант: CURLPROXY_HTTP, CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A или CURLPROXY_SOCKS5_HOSTNAME;
  • CURLOPT_PROXYAUTH — метод авторизации, одна из следующих констант: CURLAUTH_BASIC и CURLAUTH_NTLM.
Если вы не знаете тип прокси и/или метод авторизации, попробуйте подобрать их методом перебора.
UPD: вот список рабочих прокси на 2 сентября 2018: 5.9.253.151:1080, 5.9.253.151:1081, 5.9.253.151:1082. Логин sensey, пароль sensey.
30 May 2018, 22:33 MSK
На днях я столкнулся с неочевидной проблемой с моим макбуком. Очередное обновление макоси, ничего необычного. Обновление скачалось, попросило перезагрузку, я согласился, но мак перезагружаться не хотел. Вместо этого показывал чёрный экран и курсор мыши. Я принудительно выключил/включил компьютер кнопкой питания и повторил процесс. Неудачно. Также оказалось, что простые перезагрузка/выключения мака перестали работать, симптомы те же.
Обычно при проблемах с маком рекомендуют сбросить SMC и сбросить NVRAM. Не помогло. Я позвонил в службу поддержки Эппл, те развели руками и посоветовали переустановить OS X. Переустаналивать систему мне не хотелось. Перезагружать компьютер всё время хард резетом и оставлять его без обновлений тоже.
Я перепробовал кучу разных вариантов, но всё тщетно. Уже отчаявшись найти простое решение проблемы, я заглянул в консоль и увидел там кучу ошибок, возникавших каждую секунду:
LaunchServices: Database mapping failed with result -10813, retries = 2
Очевидно, была какая-то связь. В рунете решение проблемы мне найти не удалось, но долгое гугление привело меня на форум Эппл. Оказалось, что проблема в фигне, которая называется Launch Services. Иногда ломается их база данных, и её необходимо пересоздать. Для этого необходимо открыть программу Terminal и выполнить две команды:
sudo mkdir /private/var/db/lsd
sudo /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -seed -lint -r -f -v -dump -domain local -domain system -domain user -domain network
В процессе вас попросят ввести пароль пользователя, потому что эти команды выполняются от имени администратора. В результате будет пересоздана БД служб запуска, и макось начнёт нормально перезагружаться и выключаться.