Skip to content

Instantly share code, notes, and snippets.

View ulysses4ever's full-sized avatar
🐢

Artem Pelenitsyn ulysses4ever

🐢
View GitHub Profile
@ulysses4ever
ulysses4ever / parse-indent.hs
Created August 26, 2015 08:23
Parse indented text structure (algorithm thanks to http://stackoverflow.com/a/27217698/465100)
import Control.Applicative ((<$>))
data Cat = Cat String [Cat] deriving Show
indentLevel :: Int
indentLevel = 4 -- leading spaces
level :: String -> Int
level = (`div` indentLevel) . length . takeWhile (== ' ')
@ulysses4ever
ulysses4ever / LinqBegin60.hs
Created August 29, 2015 08:48
LinqBegin60 (from PT4) on Haskell
import Data.List
import Data.Ord (comparing)
import Data.Char (ord)
import Control.Applicative ((<$>))
equating f = \a b -> f a == f b
thenBy ord' = concat
. map (sortBy ord')
. groupBy (equating length)
#!/bin/bash
cd
mkdir site-repo.git
cd site-repo.git
git --bare init
cat << EOF > hooks/post-receive
#!/bin/bash
GIT_REPO=$HOME/site-repo.git
TMP_GIT_CLONE=$HOME/tmp/repo
@ulysses4ever
ulysses4ever / cs211-lecture-18
Created December 2, 2014 11:48
Примерный план лекции 18 по курсу CS211 (ФИИТ Мехмат ЮФУ) / рассказано не всё
## Роль итераторов стандартной библиотеки
Напомним код алгоритма `copy`
template<typename ItIn, typename ItOut>
void copy(ItIn b, ItIn e, ItOut b1)
{
while (b != e) {
*b1 = *b;
++b;

Гончаров Алексей

Читать невозможно, линии слишком длинные, учитесь писать не шире 80 символов, это широко принятый стандарт.

В replace_first_digit можно было бы обойтись без дополнительной перменной, она делает код длиннее. Двойные неравенства лучше оформлять следующим образом:

'0' <= *p && *p <= '9'
@ulysses4ever
ulysses4ever / formAdder.user.js
Last active October 25, 2015 20:16
Добавляем возможность подстановки пароля в форму логина СБРС мехмата ЮФУ
// ==UserScript==
// @name formAdder
// @description Добавляем возможность подстановки пароля в форму логина СБРС мехмата ЮФУ
// @author dummer <yadummer@gmail.com>, ulysses <ulysses4ever@gmail.com>
// @license MIT
// @version 1.3
// @include http://rating.mmcs.sfedu.ru/
// @include http://rating.mmcs.sfedu.ru/sign
// @include https://rating.mmcs.sfedu.ru/
// @include https://rating.mmcs.sfedu.ru/sign
@ulysses4ever
ulysses4ever / itp-card.md
Last active January 25, 2016 18:54
itp-card

Фамилия, Имя, Отчество
Пеленицын Артём Михайлович

Ученая степень, звание и должность, включая название кафедры
ассистент кафедры информатики и вычислительного эксперимента

Контактная информация (сайт, адрес электронной почты)
mmcs.sfedu.ru/~ulysses / apel@sfedu.ru.

Предлагаемая тематика

@ulysses4ever
ulysses4ever / tvrain.md
Last active January 30, 2016 09:50
Дождь, хит-парад

Указано время выхода премьеры программы. В течение недели каждая программа неоднократно повторяется. Есть программы со скользящим графиком (???).

Передача Время
BBC НА ДОЖДЕ по будням в 16:10 и в 19:45.
HARD DAY'S NIGHT по вторникам в 22.00.
БЕЛКОВСКИЙ НА ДОЖДЕ по вторникам в 20:00.
ВЕЧЕРНЕЕ ШОУ ЗДЕСЬ И СЕЙЧАС ежедневно с 21:00.
ВСЕ БЫЛО С ДМИТРИЕМ БЫКОВЫМ по пятницам.
ДЕНЬГИ ???
@ulysses4ever
ulysses4ever / cvs2brs.user.js
Last active December 23, 2016 17:50
Перенос данных из CVS-файла в СБРС мехмата ЮФУ
// ==UserScript==
// @name cvs2brs
// @description Перенос данных из CVS-файла в СБРС мехмата ЮФУ
// @author ulysses
// @license MIT
// @version 1.0
// @grant none
// @include https://grade.sfedu.ru/*
// ==/UserScript==
@ulysses4ever
ulysses4ever / TcEnv.hs
Last active March 10, 2018 19:08
GHC: Tc-less version of lookupGlobal
lookupGlobal :: HscEnv -> Name -> IO TyThing
-- This may look up an Id that one one has previously looked up.
-- If so, we are going to read its interface file, and add its bindings
-- to the ExternalPackageTable.
lookupGlobal hsc_env name
= do { -- Try local envt
let mod = icInteractiveModule (hsc_IC hsc_env)
dflags = hsc_dflags hsc_env
tcg_semantic_mod =
if thisPackage dflags == moduleUnitId mod