Инфраструктура 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 графика

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

UPD: Поменял ссылки на nbviewer, работает лучше. Гитхаб здесь.

Ежегодных контестов псто 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

ДР / С НГ-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


Всех с Новым Годом! :-)
Какой город вы бы назвали идеальным? Реально существующий? По каким характеристикам?
  • Current Music
    Therion — [Beloved Antichrist #29] Resurrection
  • Tags

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

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

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



Collapse )

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

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

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

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

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

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

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

Теормин по 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++


Collapse )

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