Архив

Борьба с телефонным спамом

Свой первый телефонный номер я приобрел примерно в 2002 году, может раньше, но точно не позже. Тогда Мегафон только появился на рынке и заходил он сразу с козырей предлагая тариф "безлимит за $25". Номер я купил в ближайшей палатке и пользовался им примерно до 2012 года. Примерно в 2012 году, когда начали появляться новые форматы сим карт я с горечью осознал, что номер зарегестрирован на незнакомого мне человека и переоформить на себя его уже не получится. Я реально сделал очень много попыток, пытался договориться с сотрудниками и знакомыми которые имеют отношение к Мегафону, но все разводили руками. В какой-то момент я даже рассматривал вариант устройства на работу в салон связи, чтобы получить доступ к исправлению информации и уволиться, но там не сразу эти доступы давали, и я решил забить.

spam 80 lvl

В итоге пришлось оформлять новый контракт, т.к. старая сим карта не подходила к новым телефонам, да и выглядела так что вот-вот развалится. Поэтому в момент покупки iphone 5 я купил новый номер. Старый отключать не стал и поддерживал его в живом состояние еще несколько лет, чтобы убедиться что звонки/смс/оповещения на него больше не приходят. В какой-то момент я отпустил его, да и к тому времени я им уже не пользовался.

Читать далее

macOS: Предотвращение оглушения

За компьютером я сижу в наушниках. Наушники подключены к внешней звуковой карте "Sound Blaster Omni" и в этом конфиге громкость наушников в 20% является достаточной, а громкость выше 40% процентов уже слишком громкой.

когда забыл убавить громкость

Изначально я решил этот вопрос простым скриптом login.sh который выполняется при входе в систему:

#!/bin/bash

osascript -e 'set volume 1'

При входе звук сбрасывается в минимальное значение, а его делаю громче когда мне нужно. Жил я с такой системой много лет, пока не начал использвать iPad в качестве второго монитора. Для подключения iPad у меня стоит программа Duet и либо с ней проблемы, либо с системой из-за переодического подключения/отключения мониторов, но, временами, громкость звука стала подниматься до 90%-100%.

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

Так вот, дабы не оглохнуть раньше времени, пришлось добавить "бота" в систему который каждые несколько секунд проверяет громкость звука и если она выше положенной, то возвращает её на допустимый уровень.

~/Library/LaunchAgents/com.local.volumelevel.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.volumelevel</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/osascript</string>
        <string>-e</string>
        <string>if (output volume of (get volume settings)) > 25 then set volume output volume 25</string>
    </array>
    <key>StartInterval</key>
    <integer>10</integer>
</dict>
</plist>

Нативный обработчик Apple Script, запускается каждые 10 секунд и выполняет команду

if (output volume of (get volume settings)) > 25 then set volume output volume 25

Все. Теперь не оглохну.


Будильник из Banana Pi (Raspberry Pi)

Скопирую сюда статью которую писал в 2014 году на geektimes, про то как я будильник из микрокомпьютера делал.


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

  1. Уметь играть интернет-радио в качестве будильника.
  2. Работать по Wi-Fi (wpa2, “N” режим, желательно уметь без wps).
  3. Желательно уметь показывать время и работать как часы.
  4. Желательно иметь возможность настройки через телефон или компьютер.

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

Читать далее

Wunder digest

Для ведения личных дел я пробовал использовать различные менеджеры заданий, но всегда возвращаюсь на wunderlist. Он меня жутко раздражает своим интерфейсом и отсутствием нужных мне функций, поэтому раз в год я закипаю и пытаюсь мигрировать в другой продукт, несколько дней настраиваю все под себя, устанавливаю мобильный клиент, красиво веду задания, а потом запал проходит, я начинаю замечать недостатки и возвращаюсь туда откуда начинал.

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

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

wunder digest

https://github.com/Rpsl/wundrelist-digest

Читать далее

И трех лет не прошло

pelican is good

Не был уверен что это когда-нибудь случится, но, иногда, от скуки, я заставлял себя реанимировать этот блог. В данный момент я полностью отказался от wordpress и переехал на генератор статических блогов. Pelican, если кому интересно.

Почему не wordpress?

Это долгая история.

Если начинать сначала, то этот блог был на Wordpress еще 2006 году, как раз в те времена, когда блоги уже были популярны, но LiveJournal уже начинал умирать. Несколько раз платформа менялась. Помню как-то психанул и полностью переехал на Movable Type, это такая блог платформа на перле. В ней была админка, а весь контент она так-же генерировала в статические файлы. Но Movable Type оказался ошибкой и я вернулся на Wordpress спустя некоторое время.

Менялись домены, менялось оформление, блог кое-как работал.

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

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

Читать далее

Leprosorium++

Некоторое время назад, примерно в мае, Jovan, Vicont и прочие веселые ребята выкатили новую версию Лепрозория и всё было замечательно, кроме отвалившихся юзерскрипт плагинов.

Я очень привык к расшринию Lepra+, которое добавляет удобную кнопочки в браузер и включает в себя различные скрипты. Первым делом я полез патчить исходники, но просидев ночь понял что гораздо проще будет написать всё заново, тем более что технологии уже ушли вперед и можно сделать расшриние сразу для всех браузеров, а не ограничивать себя Google Chrome.

leprosorium++

С выбором платформы проблем не было, еще давно когда я работал в Корпорации ГУРУ мне довелось познакомиться с платформой Kango, что занятно, её авторы тоже Леперы.

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

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

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

Всех энтузиастов приглашаю в репозиторий, а так же рекомендую познакомиться с Kango.

https://github.com/Rpsl/leprosorium/issues


Turboloader - автоматическое скачивание сериалов

Я уже несколько раз упоминал что у меня в шкафу живет старенький nas, я его использую для всего, и торренты он качает и бэкапы на него делаются и просто хранилище всякой-всячины. Так вот, уже около года он у меня и новые серии с Turbofilm.tv скачивает, раскладывает по папкам, отправляет на почту сообщение о том что серия скачалась.

turbofilm_m

Изначально я не напрягался, а смотрел серии прямо на сайте через встроенный броузер playstation или apple tv, но бродилки там ущербные и работают совсем не так как все привыкли.

После очередного апдейта на турбофильме они просто перестали логиниться, т.к. у них форма была на js и тэг a был без аттрибута href, хромы и файрфоксы такое кушают на ура, а эти скромники отказываются. Так как сериалы мне все равно смотреть хотелось, я решил что нужно это исправлять. Сначала пошел по пути легкого сопротивления и сделал на другом сайте простую кнопку, по нажатию которой отправлялся хитрый POST запрос и меня логинило на сайте, но все равно навигация превращалась в ад.

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

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

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

Turboloader - скачать на гитхаб

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

Пример конфигурации описан на гитхабе. Только я вас прошу, не ставьте проверку часто, а то нас всех выпилят и останемся без сериалов.


Про сервис

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

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

apple product

Вот например мне нравится мой провайдер интернета, onlime.ru. Я к нему подключился году в 2007, когда он еще не был онлаймом, а был НКС (Национальные кабельные сети) или что-то в этом духе. Мне нравится им пользоваться, честно.

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

Серьезно за все эти годы интернет не работал несколько раз. Мне нравится заходить в личный кабинет раз в год, узнавать что мой тарифный план устарел и за эти деньги я могу перейти на более выгодный тариф. Они сами подписали меня на программу лояльности и у меня есть куча бонусных баллов, которые я могу потратить на всякие фичи.

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

google product

Мне нравится мой хостинг, firstvds.ru, я знаю что они являются реcселерами от хетзнера, но мне не жалко переплачивать им чуть-чуть денег и иметь взамен возможность платить любым удобным мне способом и общаться с их сотрудниками на родном языке.

Мне нравится, что когда в полночь я случайно запустил update-lilo и он попытался перепрошить загрузочный сектор на жестком диске, то я написал об этом в поддержку, они через 15 минут отреагировали на мою заявку, сами подключили KVM и под присмотром произвели тестирование и перезагрузку сервера.

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

Раньше мне очень нравился Альфа-Банк, потому что они были удобными и приветливыми. Мне хотелось пользоваться их услугами и рекомендовать его друзьям. Сейчас они продолжают предоставлять отличный сервис, но как только ты сталкиваешься с их сотрудниками хочется застрелиться, потому что терпеть это невыносимо.

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

Как можно доверять свои деньги компании которая может без спроса поменять ваш контактный email и секретное слово, а ее сотрудники обманным путем навязывают дополнительные услуги.

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

your company product

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

Тут можно приводить еще очень много примеров, но смысл от этого не будет меняться.

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


Странности с Google Chrome

В последнее время замечаю, что Chrome периодически не правильно показывает страницу. Причем это явно не косяк верстки, а именно как будто видео карта глючит. Такое ломанное изображение, после совершения ajax действий над dom деревом, как только подводишь мышку к этому месту все становится хорошо. Компьютер его перерисовывает.

Сделать скриншот не получается, т.к. при этом все исправляется, но я попытался изобразить на картинке как это выглядит.

chrome broken

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

$('#tab_content' ).height( $('#tab_content' ).height()+1 );

Может сталкивался кто? Подскажите куда копать.


Как стать "Rock Star" программистом

Вот несколько советов:

  • Найдите хорошего руководителя который будет критиковать ваш код, пусть он научит вас решать проблемы на собственном примере. Вы поймете что выросли, когда сможете оспорить его мнение правильными аргументами.
  • Всегда увеличивайте сложность и масштабы проблем которые пытаетесь решать. Запомните что у большинства людей нет 20-летнего опыта, у них есть один год опыта повторяющийся 20 раз. Не становитесь таким.
  • Заботьтесь о таких вещах как документация, имена методов и функций, покрывайте код тестами. Ваш код должен выглядеть профессионально и доступно, ведь с ним будут работать и другие люди.
  • Изучайте все доступные библиотеки и модули, даже если они не требуются сейчас, вы все равно должны знать об их существование. Если вам приходится работать с незнакомыми компонентами — старайтесь полностью разобраться с их назначением.
  • Если вы что-то не понимаете, то это должно стать стимулом пойти и разобраться в этом. Всегда погружайтесь глубоко.
  • Используйте лучшую IDE для вашего языка, максимально изучите ее и выучите все хоткеи. Хорошая IDE очень сильно ускорит вас.
  • Когда вы сталкиваетесь с новой проблемой, например вы никогда не работали с SOAP/XML, прежде чем начинать программировать почитайте что пишут в интернете на эту тему. Это поможет вам понять как другие люди решают задачи и с какими проблемами сталкиваются.
  • Семь раз отмерь, один раз отрежь.
  • Не забывайте что вы делаете продукт которым будут пользоваться другие. Постоянно общайтесь с заказчиками, следите за их ожиданиями, убеждайтесь что они знают чем вы занимаетесь и вы понимаете чего они хотят.

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