Книжная полка :: «Не прислоняться» Рублев М.

Просматривая ленту инстаграмма, увидела у друга и товарища скриншот одной из страниц книжки. Прочитала эту страничку и подумала — а не залипнуть ли на всю книжку целиком. Тем более, почитать про подземку из уст машиниста метро будет весьма полезно (вспоминая наш проект Метро-информер), да и просто интересно.

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

Из некоторых подробностей стало ясно почему машинисты говорят эту нам всем знакомую фразу «Побыстрее проводим высадку и посадку». Наша подземка на каждый день составляет график движения поездов, который расчитывается исходя из количества пассажиров в определенное время суток. Статистика эта собрается годами. Раньше эти графики были на бумаге, теперь же в электронке. Посмотреть как они выглядят еще в бумаге и подробнее о них можно в музее метро. А еще там можно посмотреть срез тормозной системы и посидеть в кабине машиниста. Так вот, фраза эта означает, что движение на ветке выбилось из графика, и подгоняя пассажиров есть шанс догнать этот график. И одной из причин выхода из графика, является как раз что пассажиры держат двери вагона.

Про ЧП довольно занимательно было почитать, а точнее про действия машиниста в таких ситуациях. Оказывается на выход из такой ситуации в большинстве случаев отводится 5 минут. Но наблюдая статистику собранную от Метро-информера заметно, что в эти цифры крайне редко укладываются.

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

Смс-информер о поломках метро

С разной переодичностью наш общественный транспорт, а именно метро ломается по разным причинам — люди падают на рельсы, горит проводка и много чего еще плохого. Бывает, что о поломке узнаем или непосредственно дойдя до толпы народу, из-за чего получается лишняя трата времени и возможность потолкаться или от СМИ. Чтобы избежать попадания в такие ситуации dcoder_mm и я сделали смс информер о поломках метро. Мы оба живем в Москве, потому детектируем поломки только столичного метро.

Детектируем поломки при помощи твиттера. Всетаки сначала такая информация попадает именно в него, а потом только в СМИ и то не всегда. Анализируем поток твитов с тегом #метро, среди которых выбираем твиты, которые попадают под фильтр, например: ремонт, чп, неполадки. Помимо таких филтьтров так же выделяем твиты, в которых указана станция метро или ветка.

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

Будильник с google

Буду как всегда не многословна. Наклепала будильник на баше.

Что умеет — вещает голосом гугла погоду с рамблера. У них там всякие милые фразочки проскальзывают, в духе «не забудьте шарф», «одевайтесь теплее». Милота.
И еще грепает по твиттеру сообщения с чп в метро и если находит оповестит меня с утра об этом. Будет лишний повод дома остаться.

Работает на mplayer. А живет эта конструкция на одноплатнике.

Состоит из 2 скриптов. 1 парсит и читает погоду, другой парсит метро, в крон нужно оба.

скрипт для погоды и чтения
#!/bin/bash

n=`curl http://weather.rambler.ru/ | cat -n | grep "dayName: 'сегодня'" | awk '{print $1}'`;
let "n = $n - 1";
txt=`curl http://weather.rambler.ru/ | cat -n | sed -n "$n,135 p"`

day=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "^day:" | awk '{print $2}'`
month=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "month:" | awk '{print $2}' | sed -e "s;';;g;/^$/d"`
dayname=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "weekday:" | awk '{print $2}' | sed -e "s;';;g;/^$/d"`
description=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "description:" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }'`
wet=`echo $txt | tr "{" "\n" | grep Ветер | sed -e 's;.*speed: ;;g' | awk '{print $1}' | head -1`
toolTip=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "toolTip" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }' | tr "\n" " " | sed -e 's;.*\.;;g'`
toolTip1=`echo $txt | tr "," "\n" | awk '{ sub($1." ",""); print $0 }' | grep -E "toolTip" | sed -e "s;';;g;/^$/d" | awk '{ sub($1." ",""); print $0 }' | tr "\n" " " | sed -e 's;\..*;;g'`
if [ "$dayname" == "пн" ]
then
dayname="понедельник"
fi

if [ "$dayname" == "вт" ]
then
dayname="вторник"
fi

if [ "$dayname" == "ср" ]
then
dayname="среда"
fi

if [ "$dayname" == "чт" ]
then
dayname="четверг"
fi

if [ "$dayname" == "пт" ]
then
dayname="пятница"
fi

if [ "$dayname" == "сб" ]
then
dayname="суббота"
fi

if [ "$dayname" == "вс" ]
then
dayname="воскресенье"
fi
min=`echo $txt | tr "}" "\n" | cat -n | grep " t: {" | tr "," "\n" | grep min | sed -e 's;.*min:;;g'`
max=`echo $txt | tr "}" "\n" | cat -n | grep " t: {" | tr "," "\n" | grep max | awk '{print $3}'`

count=`cat ~/weather/metro.info | sort | uniq | wc -l`

mplayer ~/weather /1.mp3
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=сегодня $dayname, $day $month"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=ожидается температура от $min до $max, Ветер $wet м/с."
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$description"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$toolTip1"
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=$toolTip"
mplayer /root/weather/1.mp3
if [ "$count" -ge "5" ]
then
mplayer "http://translate.google.com/translate_tts?tl=ru&ie=UTF-8&q=метро сломалось, смотри тви"
mplayer ~/weather/1.mp3
fi

:>~/weather/metro.info

Скрипт для метро. Большая и страшная регулярка.

#!/bin/bash

curl -ssl "https://twitter.com/search?f=realtime&q=%23%D0%BC%D0%B5%D1%82%D1%80%D0%BE&src=typd" | grep -E -o "js-tweet-text tweet-text.*< \/p>" | sed -e 's;[>< \"=-]; ;g;s;js tweet text tweet text lang ru data aria label part 0;;g;s;/a;;g;s;\/\(a\|p\); ;g;s;\(.span\|.strong\|class\|twitter\|timeline\|link\|js display url\|invisible|\tco ellipsis\|href\|nofollow\|dir\|ltr\|data\|expanded\|url\|invisible\|tco\|ellipsis\|google&amp\;utm_medium\|banner&amp\;utm_campaign\|business_news\|target\|_blank\|title\|atreply\|pretty\|&nbsp\;\|rel\|s\|?utm_source\|draggable\|false\|alt\|aria\|label\|u\|hidden\|pre\|embedded|\true\|b\|a\|qery\|orce\|hahtag_click\|hahtag\|j\|nav\|emedded\|tre\|&qot\;\|emedded\|tre\|rc\|hh\|qery\|orce\|hhtg_click\|hhtg\|img\);;g;s; ; ;g;s;&#10\; ;;g;s;&qot\;;;g;s;emedded;;g;s;tre;;g;s; \/ ;;g;s;hhtg_click hhtg;;g;s;hh;;g;s;qery oe;;g;s;\/tg\/[a-zA-Z]*;;g;s;tweet;;g;s;text;;g;s;lng;;g;s;nd;;g;s;prt;;g;s;#;;g;s;http://intgrm.com\s\/[a-zA-Z0-9]*\/;;g;s; http://intgrm.com;;g;s;http:// intgrm.com \/;;g;s;%[a-zA-Z0-9%]*?;;g;s; *; ;g' | grep -E -i "жертв|авари|ЧП|чп|неполадки|перебои|ликвидаци|интервал|светофор|стрелка|катастрофа|час пик|перекрыт|остановлен|интервал|не ходят|ремонт|приостановлено|сбой|неисправ|сломался поезд|бомб|взрыв|теракт|затруднен|приостанов" >> ~/weather/metro.info

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