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

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

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

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

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

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

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

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

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

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

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

Посмотрим, что будет в следующем году.
dastapov: (Default)

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


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

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

Подготовка


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

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

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

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

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

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

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

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

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

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

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

Кто-то в комментах дал ей ссылку на мой ЖЖ, меня тут же записали в проплаченных прихвостней пресловутого режима, и пошло-поехало. В комментариях там также можно наблюдать:Read more... )

ICFPC-2012

2012-06-21 04:57 pm
dastapov: (Default)
А кто что себе думает про ICFPC-2012? Кто собирается участвовать? На чем писать? Я в этом году твердо намерен не пропустить мероприятие - кто хочет объединить усилия?

UPD: договорился с [livejournal.com profile] _navi_ и [livejournal.com profile] antilamer.
dastapov: (Default)
Знаете, есть такая игра, в которой ведущий описывает какую-то невероятную ситуацию, а все игроки пытаются разобраться, в чем же дело, задавая вопросы, на которые можно отвечать только "да" или "нет"?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Read more... )
dastapov: (Default)
Отсюда: The ICFP Programming Contest dates have been announced. The contest will run from Friday 13 July 12:00 GMT to Monday 16 July 12:00 GMT.

0x22

2012-03-09 08:23 am
dastapov: (Default)
socket()
bind()
listen()
accept(hb2u)


:)
dastapov: (Default)
СЯУ, что sqlite обладает двумя совершенно очаровательными "фичами":
1)Когда ты бэкапишь базу, "CREATE VIEW" выписываются в порядке, в котором они создавались.

Казалось бы - ну и что? Теперь представим, что у тебя была вот такая база:Дальше явно будет интересно не всем )
dastapov: (Default)
В пол-четвертого ночи, а затем - спустя еще десять минут ко мне пришли две SMS-ки с паролями от liqpay (это все продолжение вчерашней истории). Я думаю, можно не рассказывать, как сильно я им обрадовался.

Зато теперь я понимаю, как оно, похоже, устроено внутри, и что происходило вчера.Как не надо строить системы массового обслуживания )
dastapov: (Default)
UPD: продолжение истории

Что называется, я просто оставлю это здесь. В назидание потомкам, которые решат, что  "Flight into any destination, to buy a ticket on Aerosvit Airlines website" - это приглашение быстро и беспроблемно купить билетики на aerosvit.com.

После выбора рейса и заполнения сведений о пассажирах вам предлагают купить билет, оплатив его карточкой или webmoney(?!). Надо бы насторожиться прямо тут же. Но я попробовал оплатить. С "системой" liqpay я до этого дела не имел, но надо было насторожится второй раз при виде логотипа ПриватБанка в углу. Логотип я, увы, сразу не опознал, а дальше произошло вот что. После ввода всех необходимых для проведения платежа реквизитов мне сказали: "сейчас мы вам пришлем на телефончик пароль и все будет ОК". Проходит 10, 15, 20 минут - пароля нет. Я за это время успел сходить к двум конкурентам Аэросвита, выбрать и купить билет на обратный рейс(!). Ради интереса жму на кнопку послать пароль повторно. О! Пришел! Увы, "ваш пароль - неверный". Дальше можно давить на кнопку "выслать пароль" хоть до посинения, пароли будут приходить по одному и по два, и ни один не будет подходить.

А билеты-то уже почти в кармане. Жму "help" и попадаю в чат. Нет, не так - в ЧАТ!
Чат - под кат )
dastapov: (Default)
Давным-давно в компании М жил да был сервер. И было у него три сына два админа. Оба, что характерно, умных.

А на сервере жили-были процессы. Их там было много - с десяток, а может даже два. Все они были однотипными, и представляли из себя что-то вроде workflow processor-ов. Что именно они делали - не суть важно, так как история совсем не про это.

А история - про странную чертовщину, которая творилась с этими процессами.Read more... )
dastapov: (Default)
Сегодня по пути на работу я посмотрел доклад Karsten Nohl и Sylvain Munaut с 27-го Chaos Communication Congress, также известного как 27C3 (да, я в курсе, что он был чуть ли не год тому назад, но мне было не до грибов :). Видео можно найти тут по словам "wideband GSM sniffing".

Заметки, сделанные в процессе просмотра )
dastapov: (Default)
Наконец, теперь можно написать про ocamlbuild.

Казалось бы, ocamlbuild весь из себя красив и пушист, и в простом
случае можно сказать "ocamlbuild main.native" и в две секунды получить
работающий бинарник - чего еще желать простому разработчику?.Read more... )
dastapov: (Default)
Последняя серия про ocamldep, и потом я перейду к ocamlbuild.Read more... )
dastapov: (Default)
Как я уже говорил,
ocamldep делает слишком много допущений и пытается быть хитрее, чем на
самом деле нужно. А получается только хуже ... )
dastapov: (Default)
Это вторая часть рассказа про компиляцию окамл, в которой, как в сказке - чем дальше, чем страшнее.

Итак, мы с вами выяснили, что без топологической сортировки по зависимостям проект на ocaml не собрать. А чтобы эту сортировку выполнить, надо сначала вычислить, что от чего зависит.Read more... )
dastapov: (Default)
Сегодня я хочу прервать долгую тишину в эфире и написать объективное и непредвзятое сравнение отсталого и отстойного компилятора ocaml с современными и прогрессивными компиляторами для всех остальных языков.Дальше интересно для любителей ФП и прочих извращенцев )

Profile

dastapov: (Default)
Dmitry Astapov

July 2018

M T W T F S S
      1
2345678
9101112131415
16171819 202122
2324 25 26272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags