Вчера столкнулся с ещё одной странностью в guile. При использовании библиотеки sxml для парсинга xml, соотвественно, всё кажется нормальным, пока парсинг идёт в одном потоке. Но как только потоков несколько, то сразу начинается веселье - xml не парсятся, жалуются на отсутствие нужных закрывающих тегов и прочая ерунда, которая говорит о том, что входные данные неправильные. Это в версии 2.0. Версию 2.2 не проверял из-за того, что её как-то геморнее устанавливать и непонятно надо ли. Пришлось на процесс парсинга делать мютекс и захватывать его на время парсинга. Но что-то какое ощущение, что поделка сугубо студенческая.
пятница, 5 апреля 2019 г.
среда, 27 февраля 2019 г.
Если хочется какой-то вменяемой разработки на схеме, то лучше брать Racket. Он значительно удобнее и проще. Опыт использования guile показал мне только боль и печаль. Причём сам он неплох, но нужно использовать свежие версии, а свежих версий в Debian Stable нет. Там 2.0 только. А в 2.0 guile, грёбаный стыд, нельзя сделать https запрос. И с 2.0 версией не работает емаксовый плагин. :( В общем, кто будет что начинать на схеме - только Racket. Там всё более развито. А если так смотреть, то вместо схемы лучше взять Common Lisp. Он как-то ближе и проще. :)
понедельник, 8 августа 2016 г.
пятница, 5 августа 2016 г.
четверг, 4 августа 2016 г.
Продолжаем наблюдать за твитами ICFPC-2016
Смотрим, что нам пришло:
->>>+++++>>+>+>> +>++>+>+[+++[>++ ++++++#<->>+ >[-]>.-#[>>>>>>[ +<]>--#]#>--.->- --..>#>->#.->--> ++++.+++>.[-]<<< <[.<]>[>]<[.<]<<.->
Кто-то комментирует, говорит, похоже на оригами. В общем, это программа на языке Brainfuck, которая выводит следующее:
В общем, орги продолжают намекать.Hello, fold/unfold!
Ярлыки:
brainfuck,
icfpc,
icfpc 2016,
icfpc-2016,
skobochka,
twitter
ICFPC-2016, меньше 12 часов до старта
В общем, осталось времени до старта совсем чуть-чуть, расчехляемся потихоньку. Ну и заодно смотрим, что нам там пишут организаторы. А пишут следующее (последние три записи):
Это на руби. Выводит следующую последовательность:1.upto(99){|_|puts'FizzBuzz '[o=_**4%-15,o+13]||_}
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz => 1
Смысл в том, что выводятся числа от 1 до 99 и там, где число делится на 3, пишут Fizz, где на 5, пишут Buzz, а где и на 3, и на 5 - FizzBuzz. В общем, такая шляпа широко используется в качестве тестового задания и даже приводят почему именно оно так хорошо раскрывает потенциал программиста. Правда, я не понял. :) Точнее, задача позволит отсеить откровенного непрограммиста.
Так же это детская игра считалочка, когда детки садятся в круг и считают. По тем же правилам, что выше описано. Кто ошибся, вылетает. Ну и в конце останется только один. :)
Далее что мы имеем? Имеем некий запрос - Закидывание забутонами. Забутон это такой стул без ног. Которым кидают в сумоиста, который по рангу сильнее, но проиграл. Такие вот японские забавы. У моря живут, помидоров и яиц дефицит.
И третий пост - "Check or Fold?" Термины check и fold относятся к покеру. Check - пропуск хода, fold - сброс карт.
Итого в конце останется только один! Победитель. Вероятно, всё будет в форме игры. То есть решения будут соревноваться друг с другом. Без рейтинговой таблицы. Возможно, что-то будет похожим на карты. И проигравшего закидают тухлыми яйцами. Простите, забутонами. В общем, сидим, ждём.
И да, самый главый момент. В этом году наша команда выступает на хаскеле. Я его всю неделю учил. Не скажу, что понравился, но и не скажу, что прям сильно не понравился. Ясно, что в ICFPC и иже с ним далеко не язык определяет победу. Так что начало в 03 утра по Мск. Ждём. :)
Ярлыки:
common lisp,
haskell,
icfpc,
icfpc 2016,
icfpc-2016,
lisp
среда, 27 июля 2016 г.
Не стартует OpenVPN на Debian 8 (jessie)
В общем, казалось бы, всё сделал хорошо, конфиги переписал, ключи положил. Перезапускаю сервис openvpn и тишина. Интерфейсы не создаются, в логах только запись о перезапуске...
Но я то уже опытный, я помню, что в Debian 8 по сравнению с Debian 7 может быть всё иначе. В общем, проблема заключается в том, что по умолчанию OpenVPN не производит автостарт конфигов в папке. Вместо этого там крутой такой механизм через systemd, чтобы иметь возможность запускать несколько разных соединений. Хорошо и функционально, не спорю. Но слегонца непрактично, особенно учитывая предыдущий совершенно другой опыт.
В общем, лечится просто (если мы не хотим заморачиваться с тонкой настройкой) - в файле /etc/default/openvpn находим строчку:
И раскомментируем её. Ну а далее стандартные шаманства:#AUTOSTART="all"
systemctl daemon-reload
service openvpn restartИ всё. В общем, памятка. Надеюсь, не пригодится. :)
Ярлыки:
autostart,
debian,
debian 7,
debian 8,
debian jessie,
debian wheezy,
jessie,
openvpn,
wheezy
Подписаться на:
Сообщения (Atom)
