?

Log in

No account? Create an account

Предыдущие 15

22 июл, 2019

Инфраструктура Python

В ноябре 2017 я начал собирать в виде IPython Notebook сниппеты работы с разными полезными для исследовательского программирования библиотеками Python, регулярно используя их как шпаргалку. Потом структурировал, разбил на главы, и обнаружил, что получается что-то похожее на книгу. Увы, спустя некоторое время времени на этот проект перестало хватать, особенно на полировку, поэтому готовыми к бета-ридингу можно назвать только главы 1,2,6,7,8,9,10, остальное на стадии жесткого черновика. Надеюсь, оно будет полезно кому-нибудь и в таком виде.

1. Введение в язык Python
2. Строки, даты, коллекции
3. Взаимодействие с системой
4. Источники данных
5. Богатый вывод
6. Веб
7. Математика, численные вычисления
8. CAS
9. Графы
10. Визуализация
11. Машинное обучение
12. Медиа
13. GUI
14. CTF
15. 3D графика

Патчи/ревью/предложения можно писать в комменты (анонимусы разрешены).

3 апр, 2019

Ежегодных контестов псто 2019

Google Code Jam
В качестве решений принимается код программы на C, C++, Python, Java, Bash, Go, добавили C#, Haskell, Javascript, PHP и Ruby.

5 апр 23:00 UTCКвал (27 часов), проходят все, набравшие 30+ баллов
13 апр 01:00
28 апр 16:00
4 май 09:00
Раунд 1A, 1B, 1C (2.5h), проходят по 1500 из каждого
18 май 14:00Раунд 2, проходит 1000 и получают футболки
8 июн 14:00Раунд 3, проходит 25
9 авгФинал (Калифорния), призы $15k-$2k-$1k


TopCoder Open
Для популяризации SRM добавили достаточно запутанные правила, по которым можно пройти в Раунд 4 или даже сразу в финал, участвуя (не обязательно побеждая) только в них. Аналогичная схема с региональными контестами и Online Wildcard.

20 апр 16:00 UTC
1 май 11:00 UTC
Раунд 1A, 1B, до 2500 участников в каждом, проходит по 750 + топ250 по рейтингу
23 май 01:00
4 июн 15:00
Раунд 2A, 2B, проходит по 200
6 июл 16:00
19 июл 01:00
Раунд 3A, 3B, проходит по 40 (было 50), футболки всем ненулевым участникам
3 авг 16:00Раунд 4, проходит 10
TBDOnline Wildcard, проходит 2
TBDФинал, призы $10k-$1.5k-$0.5k


Facebook Hacker Cup
Скопипастил правила, так что это не точно.

14 июн 17:00 UTCКвал, 72ч, проходят все, решившие хотя бы одну задачу
29 июн 17:00Раунд 1, 24ч, проходят все с 30+ баллами
13 июл 17:00Раунд 2, 3ч, топ500 получает футболки, топ200 проходит
27 июл 17:00Раунд 3, 3ч, топ25 проходит
октФинал



Не анонсированы: Ya.Algo, Internet Problem Solving Contest, Russian Code Cup/Mail.Ru Cup
Метки:

27 дек, 2018

ДР / С НГ-2019!

Как обычно, 27 декабря в комментариях все прогрессивное человечество поздравляет меня с днюхой или хотя бы ставит +1 :-)

  • продолжил повелевать с товарищами CTFы, с 9 контестами из 10 учитываемых ~350 место на ctftime;
  • немного гайдил падаванов, втч написал и выложил теормин по STL для СП (раз, два);
  • первый раз себе что-то сломал (лодыжку);
  • болел за OpenAI;
  • моя команда заняла 12-е место на IPSC :-).

фильмы Твое имя, Счастливого дня смерти, Суперсемейка 2
игры Witcher 3, Tropico 3, Surviving Mars, Star Trek: Elite Force 1-2, Two Point Hospital
книги Пратчетт, Томин, Фейнман. КЭД
контесты NeoQuest, TCO, FBHC
альбомами порадовали Therion, Amaranthe, Эпидемия, Sirenia, Poets of the Fall, Visions of Atlantis


Всех с Новым Годом! :-)
Какой город вы бы назвали идеальным? Реально существующий? По каким характеристикам?
Метки:

20 дек, 2018

Как правильно сдавать сессию 2

Реанимировал в память о.

https://sharpden.github.io/mmheroes/

Серверных скриптов github не дает, так что без топа. В остальном без изменений.

Всем, кому актуально, удачно сдать!

7 ноя, 2018

(без темы)

4 сент, 2018

Что поботать перед Всероссом

Я пропарсил результаты прошлого регионального этапа ВОШ в Московской области, чтобы убедиться, что ФТЛ — лучшее место для падаванов (да). Среди прочих любопытных статистик я решил посчитать, по каким предметам победители региона, проходящие на Всеросс, еще имеют призеров или победителей.

Это можно трактовать как «чтобы выйти на Всеросс по предмету А, поботайте предмет Б». Может показаться, что такое совмещение пойдет не на пользу предмету А. Однако, в то время как только 20% призеров-и-выше выходят на Всеросс, среди совместителей таких уже 30-35%, с незначительным снижением в 11-м классе, когда накал конкуренции достигает максимума.



Спекуляции под катомСвернуть )

А еще сегодня все прогрессивное человечество поздравляет меня с миллиардом прожитых секунд.

18 авг, 2018

Канцтовары для универа

Грядущему Дню знаний посвящается.

Принтер, флэшка (папки с именами "номер семестра. Предмет"), мобильник с хорошей камерой
    стоит фотографировать все сдаваемые работы
А4, файлы, папка с держателем для файлов
одна тетрадь на кольцах с бумагой в точку (или неяркую клетку), лучше А4; запасные блоки; разделители; подписываемые прозрачные цветные клейкие закладки
     как только тетрадей становится ДВЕ, это убивает 2/3 преимуществ
     оптимальнее всего писать строчки высотой в одну клетку, делать кратные клетке отступы outliner-style
     используйте повсюду одни и те же сокращения, матнотацию вместо слов где можно
     подписывайте нумерацию и даты лекций-семинаров
черные гелевые ручки (например, Pilot G-Tec-C 0.4 или тоньше), как можно больше; штрих; красная и зеленая гелевая ручка для акцентов, проверки
степлер+скобки, скрепки
механический карандаш, ластик
     линейка не нужна, длинное подчеркивание это плохо, схемы и чертежи в конспектах гораздо быстрее делать ручкой от руки после небольшой практики

Если учебник есть на либгене, в бумажном виде он вам не нужен

Иногда полезны: ножницы, скотч

Если специальность про черчение или биомед, есть дополнительные потребности вроде тубусов или цветных карандашей.

3 июл, 2018

Теормин по STL для СП, часть 2/2

Это продолжение части 1.

ПродолжениеСвернуть )

Теормин по STL для СП, часть 1/2

Это теоретический минимум по STL для занимающихся спортивным программированием, подмножество возможностей стандартной библиотеки C++, полезных для решения алгоритмических задач. Группировка преимущественно по заголовку и контексту использования. Почти все упоминаемые имена лежат в пространстве имен std, для него и только для него  следует использовать после #include

using namespace std;



<iostream>, <iomanip>
    cout, cin, while (cin >> ...)
    getline, while+getline, getline после cin
    <iomanip>: fixed, setprecision, setw, setfill, hex/dec
    <iomanip>: noskipws/skipws
    cin/cout.tie(0); cin/cout.sync_with_stdio(false); endl vs '\n'
<cstdio>: printf/scanf для жирных инпутов
<vector>
    clean != empty
    begin, end, rbegin, rend
    push_back, pop_back, emplace_back, front, back
    insert
    size, resize, capacity, reserve, swap hack/shrink_to_fit
    vector<bool>
<string>
    string(10, ' '), std::string("a") + "b"
    length/size, substr
    push_back
    to_string, stoi
    find, rfind, find_*_of, string::npos
<sstream>: stringstream ss("str"), ss.str()
<cctype>
    isalpha, isalnum, isblank, isdigit, islower, isupper, isxdigit
    tolower, toupper, использование совместно с transform
<deque>
<queue>: priority_queue
<tuple>: pair, make_pair, .first/.second; tuple, make_tuple, get<#>();
Лексикографическое сравнение
<map>, <set>
    map, сортированность ключей
    [key]= vs at, for (auto kv : mapa) { }
    count, erase
    set, insert
<unordered_set>, <unordered_map>
    std::hash<T>::operator()
<algorithm>
    min, max, minmax, max_element, min_element
    sort, предикат с tie, stable_sort, is_sorted
    sort/iota + next_permutation
    unique/remove/remove_if + .erase
    reverse
    fill, copy, copy_n, <iterator>: back_inserter, istream_iterator
    most vexing parse
    find, find_if, count, count_if
    search
    includes, set_union, set_intersection, set_difference, set_symmetric_difference
    lower_bound/upper_bound
<iterator>: begin(cont), end(cont), size(cont)
<numeric>: accumulate, partial_sum, iota
<cmath>
    hypot, atan2, pi = atan(1) * 4
    round, floor, ceil
    abs
<complex>
<limits>: numeric_limits<int>::max()
<random>
<utility>: swap
<bitset>
<chrono>: std::chrono::high_resolution_clock::now()
<functional>
Compiler-specific: __builtin_popcount, __builtin_clz, __builtin_ctz, __gcd, __int128


Объяснения к каждому пункту под катом. Соавтор — udpn. Большинство примеров кода любезно предоставлены Evil_Stivie.

Еще вас могут заинтересовать:
Лексика решений TopCoder
Гримуар C++


РазвернутоСвернуть )

Продолжение в части 2.

28 май, 2018

Постсофт

Постсофт — программное обеспечение, в котором нежелательный код исполняется дольше желательного.

10 фев, 2018

Ежегодных контестов псто 2018

Ya.Algo

11 фев 20:00 МСК
Разминочный раунд (1 ч 40 мин), проходят все, решившие хотя бы одну задачу
17 фев 00:00Квал (1 ч 40 мин виртуально из 48 часов), проходят все, решившие хотя бы одну задачу
3 мар 10:00
13 мар 21:00
8 апр 15:00
Раунды 1, 2, 3 (1 ч 40 мин), по баллам гран-при 30 и минимальному занятому месту: лучшие 256 (в прошлом году было 512) получают футболки, лучшие 25 проходят
5 мар 10:00
2 апр 10:00
Оптимизационный трек, раунды 1, 2 (по 7 дней), одна оптимизационная задача, 128 футболок, призы 100-70-50 круб
16 мар 19:00Machine Learning трек (31 день), 128 футболок, призы 100-70-50 круб
19 майФинал (СПб), призы 300-150-90 круб


VK Cup
Для участников 14-23 лет.

24 фев 18:35 МСК
2 мар 18:35 МСК
Квал 1, 2 (сутки), проходят по 500
10 мар 18:35Раунд 1 (2 ч), проходят 400
17 мар 18:35Уайлд-кард раунд 1 (2 ч), проходит еще 50
24 мар 18:35Раунд 2 (2 ч), проходят 100
19 апр 18:35Уайлд-кард раунд 2 (неделя), проходит еще 20
29 апр 18:35Раунд 3 (2 ч), проходят 20
TBDФинал


Google Code Jam
Вместо сабмита выходного файла с этого года в качестве решений принимается код программы на C, C++, Python, Java, Bash или Go.

6 апр 23:00 UTCКвал (27 часов), проходят все, набравшие некоторое количество баллов
14 апр 01:00
29 апр 16:00
5 май 09:00
Раунд 1A, 1B, 1C (2.5h), проходят по 1500 (было 1000) из каждого
19 май 14:00Раунд 2, проходит 1000 (было 500) и получают футболки
9 июн 14:00Раунд 3, проходит 25
10 авгФинал (Торонто), призы $15k-$2k-$1k


TopCoder Open
Из первых двух раундов убрали субраунд C.

22 апр 04:00 МСК
3 май 14:00 МСК
Квал 1A, 1B, до 2500 участников в каждом, проходит по 750 + топ250 по рейтингу
2 июн 19:00
14 июн 18:00
Раунд 2A, 2B, проходит по 200 (было 40)
7 июл 19:00
20 июл 04:00
Раунд 3A, 3B, проходит по 50 (было 5), футболки всем участникам
28 июл 19:00Раунд 4, проходит 14
25 авг 19:00Online Wildcard, проходит 2
Для прохода в Wildcard, надо войти в топ10 на одном из региональных онсайтов, которые TBD
TBDФинал, призы $10k-$1.5k-$0.5k


Facebook Hacker Cup

6 июл 17:00 UTCКвал, 72ч, проходят все, решившие хотя бы одну задачу
21 июл 17:00 UTCРаунд 1, 24ч, проходят все с 35+ баллами
4 авг 17:00 UTCРаунд 2, 3ч, топ500 получает футболки, топ200 проходит
18 авг 17:00 UTCРаунд 3, 3ч, топ25 проходит
25-27 октФинал


ICFPC: 20 июл 16:00 UTC

Internet Problem Solving Contest: 6 окт 15:00 UTC

Russian Code Cup Mail.Ru Cup
Похоже, Mail.Ru стало не по карману проведение традиционно одного из самых интересных (благодаря питерским проблемсеттерам) ежегодных контестов, но из них сумели выбить урезанную версию на платформе Codeforces, без финала и со 100 футболками вместо 600. 6 победителей считаются по сумме «гран-при 100» баллов за 2 лучших раунда из 3 открытых rated раундов.

18 окт 19:35 МСК
10 ноя 17:35
25 ноя 19:35
Раунд 1, 2, 3 (2 ч 30 мин)
Метки:

27 дек, 2017

ДР / С НГ-2018!

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

  • Почти целый год трудился на благо Музея и мало писал в ЖЖ;
  • повелевал с товарищами CTFы, почти обеспечив себе топ-500 по итогам года, написал по этому делу гайд; по остальным дисциплинам триатлона хорошей компании не было и уровень снизился;
  • немного прокачал английский и сдал TOEFL на 102/120;
  • приняли в EPFL, но без финансирования, так что мой PhD опять откладывается;
  • обновил ноутбук до зверь-машины MSI Stealth Pro GS73VR 7RF;
  • побывал на органном концерте Баха;
  • принял в дар кубик Рубика dayan и, наконец-то, запомнил алгоритм сборки.


фильмы Открытая книга (1977), Пассажиры, Джон Уик
Как «Укрощение огня» программное произведение инженерного пафоса, так «Открытая книга» программное произведение медико-биологического пафоса.
игры Mass Effect Andromeda, Stellaris
книги Уоттс. Эхопраксия, Пратчетт. Плоский мир
контесты IPSC, Ya.Algo, picoCTF, DEF CON CTF Quals, H4ck1t CTF
альбомами порадовали Ayreon, Edenbridge, Amberian Dawn


Всех с Новым Годом! :-)
Что бы вы хотели изучить в наступающем году?
Метки:

29 ноя, 2017

Гайд по триатлону: CTF, часть 2/2

Это продолжение поста об ABCTF.

Write-upСвернуть )
Метки:

Гайд по триатлону: CTF, часть 1/2

В этом посте я расскажу про одну из дисциплин триатлона — соревнования по информационной безопасности CTF. CTF расшифровывается как Capture The Flag. Изначально соревнования такого рода представляли собой противоборство двух команд, каждая из которых пыталась взломать сервера другой и не допустить взлома своих, поддерживая, тем не менее, их доступность. Этот формат многим (включая меня) не нравится. Я предпочитаю формат Jeopardy, похожий на одноименную игру («Своя игра»): задачи различной стоимости разделены на несколько категорий, а положение команды вычисляется из суммы стоимостей решённых задач.

Традиционными категориями являются Cryptography, Web hack, Reversing, Forensics. В последнее время всё чаще на соревнованиях встречаются новые категории: Algorithms, похожая на алгоритмическое спортивное программирование, и Reconnaissance, про разведку по открытым источникам в интернете.

В процессе решения задачи, будь то взлом криптоалгоритма, реверсинг какого-нибудь запутанного бинарника или поиск нужного аккаунта в сети, участники находят флаги — короткие опознаваемые строки. Они отправляются автоматическому чекеру в качестве решения. Например, на описываемом контесте флаги имели вид abctf{s0m3th1ng_s1m1l4r}.

Чтобы проиллюстрировать, какого рода бывают задачи, я написал разбор (обычно называемый write-up) соревнования ABCTF, прошедшего в июле 2016. Оно ориентировано на школьников, не так давно интересующихся информационной безопасностью, поэтому значительная часть задач имеет образовательную ценность для новичков. К сожалению, сейчас сайт соревнования и многие из ссылок не работают.

Если вы заинтересовались темой, почитайте учебник от UFO CTF.
Список предстоящих соревнований


Write-upСвернуть )

Разбор категорий Reconaissance, Programming, Web Exploitation, Reverse Engineering, Binary Exploitation в следующем посте
Метки:

7 ноя, 2017

(без темы)

Предыдущие 15