Кто там говорил про "документацию на типах"?
replace :: Text -> Text -> Text -> Text
Приехал монитор -- и конечно же я посеял свой HDMI-шнурок и теперь, наверное, его отдельно придётся искать/покупать.
MongoDB в ваших банкоматах
«Новый вид преступления с банковскими карточками выглядит так: в банкомат вставляется карточка с носителем вируса, запрашиваются деньги, а в конце операции, когда деньги подались в отделение, но еще не выехали из банкомата, операцию прерывают. Затем мошенники раздвигают «шторку» банкомата и достают пинцетом деньги. При этом банкомат фиксирует, что сумма не была выдана, а деньги со счета не списаны», — рассказала «Вестям» представитель пресс-службы киевской милиции Юлия Шевчук. Так, недавно в Святошинском районе задержали мужчину, который совершил ряд краж из банкоматов таким способом. «Это 38-летний киевлянин-самоучка, владеет хорошими техническими знаниями, пробует все появившиеся новинки. Раньше он с помощью скиммера считывал информацию с карт и снимал деньги. Сейчас решил, что новый способ кражи более безопасный», — уточнила Шевчук.
Набрал git diff commit1..commit2 перепутав очерёдность историческую (commit1 позже commit2) в общем проекте где модели лежат, в результате гит мне показал всё "наоборот" (вместо изменений их полную противоположность).
Я читал и долго возмущался, как эти козлы накоммитили изменений, полностью отменяющих мои. Потом даже уже смирился, т.к. мелочи это всё и решил что не буду подымать шум из-за этого. Короче на ровном месте устроил себе истерик.
ппц трагедия
@Singularity: *Украина *Россия
(15:33:30) juick@juick.com: Private message from @ugnich:
Рекомендую воздержаться от постов на политические темы, иначе ваш
аккаунт будет удален.
Круто.
Ватники которые регулярно постят новости про укров и хунту
пожаловались не меня администрации.
#2725648 (8 replies) http://juick.com/2725648
Блять, ну реально ж jQuery какой-то
countQuartilesMap :: HashMap UnixTime ReportHourRow
-> HashMap QuartileNumber Integer
countQuartilesMap hm =
H.fromListWith (+)
(hm ^.. traverse . rhQuartiles . to H.toList . traverse)
Для тех, кому интересно -- у первой мапы берёт значения, у каждого берёт "поле" rhQuartiles, значение превращает в список пар ключ-значение (H.toList), потом делает concat (из [[a]] в [a]). Ну и поверху создаётся ключ-значение, дубликаты значений складываются.
Охуенно // надеюсь работает
Кароч, и правда я был лохом, вместо собственных операторов и прочей позорной хуйни переписал с использованием Either'ов и её монадно-апликативнофункторности-хуюрности и стало шелковистее.
Код в студию! http://i.imgur.com/R8jtqYJ.png
А вообще -- у меня на работе случился пиздец, после которого прочая ебля с JS -- просто сказка. После очередного большого рефакторинга нашего JS-кода перестала работать одна херня. Долго копался в лапше (кстати, риспект файрфоксовым ЖС-утилитам, очень хороши уже стали) этого кода, оказалось -- есть функция
function calculate_threshold(config, playtime, contentLength) {
return config.playtime_threshold !== null ? (playtime / 1000 >= config.playtime_threshold) : true;
}
И есть вызывающий её код:
threshold = calculate_threshold(playtime, contentLength);
Казалось бы -- ну обычное дело для скриптовых языков такой хуйнёй страдать. Но! Какой-нибудь питон сразу же взвыл бы, кинул Exception и так далее, и ошибка бы моментально была исправлена. Здесь же вот что происходит: код работает тихонько дальше (вызывать с недостаточным кол-вом аргументов -- нормально). Внутри вот этого calculate_threshold в config поступает число (playtime вместо config получается), и наш любимый джаваскрипт от "config.playtime_threshold" вместо ещё одного взрыва и эксепшна возвращяет undefined
.
Короче именно тот случай, когда потеряли несколько дней данных из-за вот этой вот хуйни.
// уже точу свой WebStorm, эту почему-то он ошибку не видит, зато нашёл кучу других
Вынес себе мозг вот этим http://i.imgur.com/SCEVIgn.png
Долго не думал почему этот splice не так работает, оказалось он, с одной стороны, отрезает внутри объекта кусок, с другой -- оставшийся кусок возвращает. Не делайте так, кароч.
var files = ["report-adgroup-273-jq.json",
"report-adgroup-273-raw-processed-jq.json"];
var datas = {};
var filesLeft = files.length;
files.forEach(function(file) {
$.getJSON(file, {}, function(d) {
datas[file] = d;
filesLeft -= 1;
if (filesLeft == 0) {
drawReport(datas);
}
});
});
Обосрался (это было рекламой к ролику) https://www.youtube.com/watch?v=-3mVZZYLuIQ&feature=trueview-instream