понедельник, 8 августа 2016 г.

Всё, наскладывались оригами

Три дня прошли, контест закончен. Всё круто, сейчас надо отдохнуть. :)

пятница, 5 августа 2016 г.

Лидерборд апдейт

Сейчас 8:48. Какие-то бомжи на первом месте в лидерборде.


четверг, 4 августа 2016 г.

Продолжаем наблюдать за твитами ICFPC-2016

Смотрим, что нам пришло:
->>>+++++>>+>+>> +>++>+>+[+++[>++ ++++++#<->>+ >[-]>.-#[>>>>>>[ +<]>--#]#>--.->- --..>#>->#.->--> ++++.+++>.[-]<<< <[.<]>[>]<[.<]<<.
Кто-то комментирует, говорит, похоже на оригами. В общем, это программа на языке Brainfuck, которая выводит следующее:
 Hello, fold/unfold!
В общем, орги продолжают намекать.

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 утра по Мск. Ждём. :)

среда, 27 июля 2016 г.

Не стартует OpenVPN на Debian 8 (jessie)

В общем, казалось бы, всё сделал хорошо, конфиги переписал, ключи положил. Перезапускаю сервис openvpn и тишина. Интерфейсы не создаются, в логах только запись о перезапуске...
Но я то уже опытный, я помню, что в Debian 8 по сравнению с Debian 7 может быть всё иначе. В общем, проблема заключается в том, что по умолчанию OpenVPN не производит автостарт конфигов в папке. Вместо этого там крутой такой механизм через systemd, чтобы иметь возможность запускать несколько разных соединений. Хорошо и функционально, не спорю. Но слегонца непрактично, особенно учитывая предыдущий совершенно другой опыт.
В общем, лечится просто (если мы не хотим заморачиваться с тонкой настройкой) - в файле /etc/default/openvpn находим строчку:
#AUTOSTART="all"
И раскомментируем её. Ну а далее стандартные шаманства:
systemctl daemon-reload 
service openvpn restart
 И всё. В общем, памятка. Надеюсь, не пригодится. :)

 

вторник, 26 июля 2016 г.

ICFPC-2016, вот он и пришёл

Причём пришёл совершенно нежданно и негаданно. Всё смотрел, ждал и ждал, а тут и бац, в скайпе вылавливают и сообщают. В общем, страница контеста. А вот ещё и их twitter. В общем, пока непонятно и никаких подсказок не увидел. Буду мониторить. А, да, начало то 5 августа в 03:00 по MSK. Это 00:00 по UTC. В общем, вот так вот.

пятница, 22 апреля 2016 г.

Тяжести разработки под Android и HTML5

Наконец-то опубликовали нашу простенькую игру Пузыри в гугл плей - (официальный пресс-релиз). Немножко под катом - игра основана на технологии HTML5, а в Javascript компилируется Clojurescript. Причём, использование ClojureScript открывает широкие возможности по написанию кода и отлаживанию его. Кстати, всё это работает и в браузере. В целом, в Android используется тот же браузер, но есть нюансы. Первый - этот браузер (системный WebView) везде разный и на что-то положиться особо нельзя. Да и более или менее приличный идёт только начиная с Android 5.0. Чтобы выйти из этой ситуации, в приложении тащим Chromium, который весит уже поболее. Хотя, в наше время это не так критично, но всё же. С другой стороны, я посмотрел, все так делают. Да и к этому нужно было прийти. Есть проекты типа cordova, которые бы позволили опубликовать это легко и удобно, но и там свои нюансы. Например с фуллскрином и сплешскрином. Из нормальных - coconjs, но он весь такой из себя облачный, что вносит свои неудобства. Ну и главный препон - это технологическое развитие. Я имею в виду всякие WebGL, с которыми всё быстре и которое нормально будет работоать с 5.0 Android. Хотя, терпимо работает и на 4.4. В общем, опубликовали, в итоге. :)