You are viewing _adept_

dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Recent Entries 
Что можно найти в этом журнале:


  1. Баечки из жизни IT-специалистов
  2. Рассказы о мобильной связи. Мне можно задавать вопросы о мобильной связи, и я постараюсь на них ответить.
  3. Зарисовки о жизни в Англии
  4. Конкурсы-загадки для IT-шников и не только
  5. Рассказы об участии в конкурсах ICFPC



Если вы хотите прочесть пару записей разных стилей и жанров "на пробу", то можете попробовать: отчет про ICFPC-2006, первоапрельскую шутку про тотальное прослушивание компьютеров через излучение от витой пары и про телепузиков.

Подзамочных записей практически не делаю - смело подписывайтесь внешними RSS-агрегаторами. Если вы хотите читать не все мои посты, а только их часть - можете подписаться на feed, содержащий только посты с тэгом GSM или на feed, содержащий только истории.

Механизм friend-ов в LJ я рассматриваю исключительно как техническое средство удобно читать журналы тех, кого мне интересно читать.

Недавно один мой коллега Н принес на работу головоломку Bedlam cube. А другой мой коллега Д заинтересовался и стал его складывать.

Головоломка, надо сказать, действительно непростая, и Д мучался с ней больше недели. В конце-концов у него получился аккуратный кубик с небольшой дыркой, и еще одна деталь, которую надо было когда-то раньше засунуть внутрь, а теперь уже даже и непонятно, что с ней делать.Read more...Collapse )
Обращаюсь за помощью к коллективному разуму.

Есть у меня NAS с RAID-ом. На нем - ~400 Gb Ценных Данных. Хочется их на куда-то сбекапить off-site, на случай непредвиденных обстоятельств - если вдруг RAID накроется целиком и сразу весь.

Хочется, чтобы:
1)Лить бэкап можно было прямо с NAS-а (а там - linux и ARM), то если либо по rsync, либо по ftp/ssl или sft, либо еще что-то подобное, и уж точно не какой-то GUI-клиент.
2)Все, что я лью туда, должно быть зашифровано (допустим, каким-то симметричным алогоритмом с большим ключом).
3)Версионированиие и прочие модные штуки (доступ с мобилки, шаринг файлов, фото-альбомы(!)) - не нужны.
4)Супер-пупер надежность с 29-ю девятками после запятой - тоже не нужна. Мне нужна разумная страховка на случай, если с моей стороны случится что-то маловероятное, а не основное средство для бэкапа. Для меня будет достаточно, если они скажут "извини, тут с вот этим файлом беда вышла - надо перезалить".
5)Инкрементальные бэкапы - обязательны

Вроде ж не много хочу, да? И вот что выяснилось ...Collapse )
Вот они, родимые.

Мы - на позорном 131 месте. Где-то за 20 минут до финиша, когда мои товарищи по команде вырубались после бессонной ночи, возник вопрос - какой же солвер сдавать в качестве финального?

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

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

На мелких картах второй тред успевал перебрать все (или почти все) и выбраться из практически любой ловушки. На больших же картах он рисковал со временем пожрать всю память и быть убитым OutOfMemory Killer-ом (который живет в ядре linux). Если бы это произошло, то мы бы на такой карте не набрали ничего. Осознание этой засады пришло слишком поздно, и сделать какой-то монитор/ограничитель мы уже не успевали.

Забоявшись out of memory, я убедил полусонных Женю и Ваню, что сдавать надо первый вариант. В результате мы вылетели в первом раунде.

Второй вариант набрал бы как минимум 7200 очков (я запускал его на оценочных картах с лимитом в 30 секунд, а за 150, думаю, он мог бы набрать и больше) и мы были бы где-то в районе 50-60 месте. Ну, как известно, если бы да кабы ... :) Мораль придумайте сами.

Посмотрим, что будет в следующем году.

Обязательное вступление: что это вообще такое?


Каждый год случается международная конференция ICFP - International Conference on Functional Programming. К этой конференции приурочен програмерский конкурс под названием ICFPC. Несмотря на название конференции, участвовать в контесте может любой желающий, и пользоваться можно любыми языками, не только функциональными, кроме того - участники могут объединяться в команды. ICFPC отличается от соревнований типа ACM и topcoder тем, что он менее "заточен" под какие-то конкретные языки или наборы навыков, а задачи в нем прикольные и позволяют получить удовольствие не только от победы, но и от участия.

Я стараюсь принимать участие во всех ICFPC, и о том, как это было в прошлые годы, можно почитать в этом журнале по тэгу icfpc.

Подготовка


В этом году я заранее вписал даты в календарик, взял на работе отгул, и договорился с Женей antilamer и Ваней _navi_ о том, что мы будем выступать одной командой и писать на Haskell.

Моя жена собиралась где-то в это же время поехать с детьми на историческую родину, и мы подгадали поездку так, что на время ICFPC я остался один-совсем-один. Если быть точным, за 4 часа до старта я был в аэропорту и провожал их на самолет, и вернулся домой за 5 минут до начала.

Подготовка, таким образом, свелась к заливанию ssh-ключей на bitbucket (где у нас был git-репозиторий) и обмену контактами с остальными участниками команды :)

Старт и условие

Read more...Collapse )
Дискуссии про то, что можно, а что нельзя сделать определенным техническими средствами очень часто скатываются в унылый срач, в котором стороны по кругу повторяют одно и то же из-за того, что:
1)Технические проблемы обсуждаются на уровне самой простой возможной реализации
2)Фичи и возможности обсуждаются на уровне навороченного сервиса или коммерческого продукта
3)Разрыв в сложности и требованиях к качеству между (1) и (2) одной из сторон напрочь игнорируются.

Чем меньше человек шарит в обсуждаемом, тем больший разрыв между (1) и (2) у него получается, и тем охотнее он его игнорирует.Напрмер, СМС для оповещения населения ...Collapse )
В твиттере smart_haos пишет (после недавнего наводнения в Кубани): "У сотовых операторов есть информация по координатам абонентов. Почему МЧС не умеет использовать этот ресурс для адресных оповещений?"

1)Потому, что SMS - негарантированный сервис. Ни скорость доставки, ни сама доставка - не гарантированы. То, что обычно все доходит быстро - это, грубо говоря, просто "везет". Пока не начались перегрузки сети, например.Read more...Collapse )
Работа моя нынешняя пригласила Саймона Пейтона-Джонса (того самого) прийти и рассказать нам что-то интересное.

Он согласился и пришел, рассказывал вариации на тему побега из башни из слоновой кости (кто не видел - пролистайте хоть слайды, они ржачные). Т.к. аудитория наполовину состояла из caml-программистов, позубоскалили на тему eager и lazy evaluation, и т.д. и т.п.

В процессе я узнал, что (извините за пиджин рашн):Read more...Collapse )
В продолжение вчерашней дискуссии.

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

Расскажите мне пожалуйста, что с этими текстами делать потом? (напомню, что мы говорим про Кровавый Режим, который надеется получить с этого какой-то профит).Read more...Collapse )
Забавно наблюдать, как люди стартуют с посылки "Кровавый Режим удаленно включает телефон и СЛУШАЕТ", а когда им начинают задавать вопросы, это превращается в "Ну, может и не включает удаленно, но уж точно внедряет в телефон ЧТО-ТО, чтобы он сам потом включался и передавал".Read more...Collapse )
Некая мадам olga_andronova (говорят, даже технический редактор где-то там) рассказала, как ей кровавый режим Путина удаленно включал телефон в летящем самолете(!): http://olga-andronova.livejournal.com/170052.html

Кто-то в комментах дал ей ссылку на мой ЖЖ, меня тут же записали в проплаченных прихвостней пресловутого режима, и пошло-поехало. В комментариях там также можно наблюдать:Read more...Collapse )
21st-Jun-2012 04:57 pm - ICFPC-2012
А кто что себе думает про ICFPC-2012? Кто собирается участвовать? На чем писать? Я в этом году твердо намерен не пропустить мероприятие - кто хочет объединить усилия?

UPD: договорился с _navi_ и antilamer.
1st-Jun-2012 11:04 pm - Because fsck you, that's why
Знаете, есть такая игра, в которой ведущий описывает какую-то невероятную ситуацию, а все игроки пытаются разобраться, в чем же дело, задавая вопросы, на которые можно отвечать только "да" или "нет"?

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

В этом объяснении есть только один скользкий момент: реально ли, чтобы вертолет вот так зачерпнул пловца? Как только вы допустили для себя, что это реально, все остальное уже не вызывает никаких вопросов. Все хмыкают: "ну, дела!" и переходят к следующей загадке. А теперь представьте ...Collapse )
Я внезапно понял, что сегодня я обязательно должен рассказать вам про Одну Футболку.

Когда-то - неважно, когда - я регулярно наведывался в компанию К. Атмосфера там была демократичная, в костюмах с галстуками мало кто ходил. Словом, типичная IT-шная лавочка.

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

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

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

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

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

True story. Чем все в конце-концов закончилось, не знаю. Думаю, футболка разлезлась на тряпочки в конце-концов.
Вот еще прибежало в почте: "Часто в шпионских фильмах агенты ФБР делают прослушку и ждут две минуты, после чего находят адрес человека, а если звонок срывается, то не могут найти.

Это кажется очень нелогичным, не могли бы вы дать комментарий специалиста?
"

Мне это тоже кажется нелогичным.Read more...Collapse )
В комментариях к соседней записи опять стала муссироваться тема записи всех звонков без разбора, и мне захотелось сделать короткое резюме.Зачем оператору писать все разговоры, если денег ему дадут и так?Collapse )
И снова мне пишет Олег: Как понимать тогда: Директиву Евросоюза №2006/24/ЕС «О сохранении данных, создаваемых или обрабатываемых при оказании услуг связи», телефонные компании обязаны хранить не менее полугода все записи всех телефонных разговоров, всех SMS, а также местоположение звонившего начиная с 15 сентября 2007 года." ?

И еще. Что же тогда перехватывает АНБ, Эшелон, ОСНАЗ (станция слежения на Кубе) и пр. ?

Read more...Collapse )
Эх, давно я не брал в руки шашки и не писал про GSM. А тут как раз в комментариях на pro-gsm.info мне пишет некто Олег: Имеются в продаже так называемые репитеры для организации мобильной связи в местах плохого приема сигнала. Фактически это маленькая базовая станция (промежуточная), которая сама связывается с БС оператора и поддерживает связь с другими мобильными телефонами в радиусе ее действия. Эта БС имеет приемную и передающую часть. Если поднять ее мощность настолько, что ей телефон будет давать предпочтение, то через нее можно запустить работу интересующего абонента. Правда, необходимо находиться в непосредственной близости от жертвы. Возможно ли такое ?

Он же: IMSI перехватываемой SIM-карты можно при желании узнать запустив репитер и анализируя полученные IMSI в процессе некоторого времени слежения.

И вот что я хочу по этому поводу сказать.Read more...Collapse )
Я тут читал залежи в google reader и наткнулся на пост, озаглавленный "Окно в закабаленный мир". В нем были описаны какие-то жуткие ужасы о том, как сетапить окружение для разработки на Haskell, и я хотел бы рассказать, как это делал я. Писать буду только про Linux, т.к. с Windows у меня никакого опыта нет.
Read more...Collapse )
Давеча пришлось мне заниматься софтверной паталогоанатомией. То есть, делать вскрытие чужой программе (с исходниками на OCaml), чтобы понять, почему она сдохла. Программа представляла собой узкоспециализированный diff, читающий и сравнивающий массивы сложных структур данных. Читать данные программа могла кучей способов - по сети, из файла, из базы, ...

И вот ВНЕЗАПНО нашелся такой набор данных (из примерно несколько сотен тысяч элементов), который при сравнении с самим собой из двух разных источников давал неожиданый результат: "вот эти два элемента отличаются. Вот вам первый: ..., а вот второй: ....". При этом распечатанные структуры данных выглядели совершенно идентично.

Read more...Collapse )
This page was loaded May 25th 2013, 12:27 pm GMT.