- 1
IT Оффтоп #206
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #206
#176: https://govnokod.ru/28703 https://govnokod.xyz/_28703
#177: https://govnokod.ru/28709 https://govnokod.xyz/_28709
#178: https://govnokod.ru/28716 https://govnokod.xyz/_28716
#179: https://govnokod.ru/28726 https://govnokod.xyz/_28726
#180: https://govnokod.ru/28734 https://govnokod.xyz/_28734
#181: https://govnokod.ru/28739 https://govnokod.xyz/_28739
#182: https://govnokod.ru/28749 https://govnokod.xyz/_28749
#183: https://govnokod.ru/28777 https://govnokod.xyz/_28777
#184: https://govnokod.ru/28790 https://govnokod.xyz/_28790
#185: https://govnokod.ru/28794 https://govnokod.xyz/_28794
#186: https://govnokod.ru/28815 https://govnokod.xyz/_28815
#187: https://govnokod.ru/28833 https://govnokod.xyz/_28833
#188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
#189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
#190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
#191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
#192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
#193: https://govnokod.ru/28911 https://govnokod.xyz/_28911
#194: https://govnokod.ru/28914 https://govnokod.xyz/_28914
#195: https://govnokod.ru/28917 https://govnokod.xyz/_28917
#196: https://govnokod.ru/28925 https://govnokod.xyz/_28925
#197: https://govnokod.ru/28935 https://govnokod.xyz/_28935
#198: https://govnokod.ru/28938 https://govnokod.xyz/_28938
#199: https://govnokod.ru/28942 https://govnokod.xyz/_28942
#200: https://govnokod.ru/28945 https://govnokod.xyz/_28945
#201: https://govnokod.ru/28948 https://govnokod.xyz/_28948
#202: https://govnokod.ru/28951 https://govnokod.xyz/_28951
#203: https://govnokod.ru/28954 https://govnokod.xyz/_28954
#204: https://govnokod.ru/28971 https://govnokod.xyz/_28971
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
+2
toBin =: >@{:@((<.@%&2@>@{.;(1&-@=&0@>@{.#|~&2@>@{.),>@{:)^:_@;&a:)
toBin 1024
1 0 0 0 0 0 0 0 0 0 0
toBin 111
1 1 0 1 1 1 1
toBin 14
1 1 1 0
toBin 4
1 0 0
Продолжаем нечеловеческие эксперименты в области нетрадиционного программирования
+1
Щас продукты перетекают в сервисы, разработка ПО делится на фронт и бэк, всякие аджайлоскрамы со спринтами,
ретро и бэклог-ревью, автотесты, проверить работает ли код можно на лету.
А как выглядела работа у разработчиков ПО в начале 10-х, 00-х, 90-х?
Как контролировали выполнение задач?
Насколько часто переключались на проверку работоспособности кода?
Как тестили приложения с GUI (десктоп, игры всякие)?
Какие задачи давали на техническом интервью кандидатам?
0
Как слышно из новостей, сейчас вся Украина замерла в ожидании открытия некой невъебенной национальной социальной сети от какой-то
хитрожопой дамы, решившей попилить бабло на горячей теме. Помпезный лендинг с формой подписки расположен по адресу: http://esvoe.com/
Путём нехитрого перебора доменов первого уровня был установлен адрес тестового сайта: http://esvoe.com.ua/
В общем, использоваться будет готовый говнодвижок "Socialite" (увидеть можно в директории "/public/"), листинг корневых сайтов виден
всем желающим, а при тестировании используются такие нехитрые ники, как "Твоя мамка".
Порядком подзаебла тема "моих", "национальных", "монетизированных" и тому подобных "социальных сетей". Смысла тягаться с "ВКонтакте"
и "Facebook" нет как по причине необоримой узнаваемости данных брендов, так и по причине того, что мощность их дата-центров в охулиарды
раз превышает мощность обоссаного VDS-а за какие-нибудь псят гривенок. Все, очевидно, забыли о быстром взлёте школьной поделки "Друзi"
на nulled-версии "Vii Engine" до уровня в сто тысяч зарегистрированных пользователей и о последующем молниеносном скатывании в кучу
бегемотьего навоза. Также никого ничему не научила история с белорусским клоном "ВКонтакте", "VSeti.By", на который в последние годы
всем было похуй.
А чего стоят дешёвые приманки в стиле "платим рупь за пост"...
+126
-- Алгебраический тип-сумма Масть («перечисление»).
-- Значением типа Масть может быть одно из указанных справа
-- (или Пики, или Трефы, или Бубны, или Червы).
-- «Масть» здесь выступает конструктором _типа_,
-- а «Пики», «Трефы» и т.д. — конструкторами _данных_.
data Масть = Пики | Трефы | Бубны | Червы
-- необязательное автоматическое выведение экземпляров классов,
-- позволяющее преобразовывать значения в строки (функцией show из Show)
-- и обратно (функцией read из Read), а также сравнивать их между собой
-- (функциями классов Eq и Ord).
deriving (Show, Read, Eq, Ord)
-- Алгебраический тип-сумма Достоинство
data Достоинство = Семёрка | Восьмёрка | Девятка | Десятка
| Валет | Дама | Король | Туз
deriving (Show, Read, Eq, Ord)
-- Алгебраический тип-произведение Карта («тип-кортеж»).
-- Значения типа Карта — комбинации значений типов Достоинство и Масть,
-- объединённые конструктором данных К.
-- Часто имена конструктора данных и конструктора типа совпадают.
data Карта = К Достоинство Масть
deriving (Show, Read, Eq, Ord)
-- Синоним списка значений типа Карта.
type Рука = [Карта]
-- Функция, определяющая, есть ли в руке марьяж (король и дама одной масти).
естьМарьяж :: Рука -> Bool
естьМарьяж карты =
-- достаточно найти марьяж хотя бы одной масти
any (естьМарьяжМасти) [Пики, Трефы, Бубны, Червы]
where
-- проверить, есть ли и дама, и король заданной масти м в руке
естьМарьяжМасти м = (К Дама м) `elem` карты && (К Король м) `elem` карты
-- примеры раздач
рука = [ К Дама Трефы, К Семёрка Червы, К Король Трефы, К Туз Бубны ]
рука_без_марьяжа = [ К Десятка Пики, К Король Пики, К Дама Червы ]
main = do
проверить рука
проверить рука_без_марьяжа
проверить [] -- пустая раздача
where
проверить кк = putStrLn ( (show кк) ++ " -> " ++ (show (естьМарьяж кк)) )
-- Вывод:
-- [К Дама Трефы,К Семёрка Червы,К Король Трефы,К Туз Бубны] -> True
-- [К Десятка Пики,К Король Пики,К Дама Червы] -> False
-- [] -> False
Рука без макияжа
0
Пиздец-оффтоп #104
#74: https://govnokod.ru/28699 https://govnokod.xyz/_28699
#75: https://govnokod.ru/28705 https://govnokod.xyz/_28705
#76: https://govnokod.ru/28712 https://govnokod.xyz/_28712
#77: https://govnokod.ru/28722 https://govnokod.xyz/_28722
#78: https://govnokod.ru/28730 https://govnokod.xyz/_28730
#79: https://govnokod.ru/28736 https://govnokod.xyz/_28736
#80: https://govnokod.ru/28740 https://govnokod.xyz/_28740
#81: https://govnokod.ru/28750 https://govnokod.xyz/_28750
#82: https://govnokod.ru/28779 https://govnokod.xyz/_28779
#83: https://govnokod.ru/28788 https://govnokod.xyz/_28788
#84: https://govnokod.ru/28795 https://govnokod.xyz/_28795
#85: https://govnokod.ru/28808 https://govnokod.xyz/_28808
#86: (vanished) https://govnokod.xyz/_28814
#87: https://govnokod.ru/28817 https://govnokod.xyz/_28817
#88: https://govnokod.ru/28836 https://govnokod.xyz/_28836
#89: https://govnokod.ru/28843 https://govnokod.xyz/_28843
#90: https://govnokod.ru/28874 https://govnokod.xyz/_28874
#91: https://govnokod.ru/28880 https://govnokod.xyz/_28880
#92: https://govnokod.ru/28884 https://govnokod.xyz/_28884
#93: https://govnokod.ru/28889 https://govnokod.xyz/_28889
#94: https://govnokod.ru/28895 https://govnokod.xyz/_28895
#95: https://govnokod.ru/28904 https://govnokod.xyz/_28904
#96: https://govnokod.ru/28912 https://govnokod.xyz/_28912
#97: https://govnokod.ru/28918 https://govnokod.xyz/_28918
#98: https://govnokod.ru/28932 https://govnokod.xyz/_28932
#99: https://govnokod.ru/28936 https://govnokod.xyz/_28936
#100: https://govnokod.ru/28940 https://govnokod.xyz/_28940
#101: https://govnokod.ru/28949 https://govnokod.xyz/_28949
#102: https://govnokod.ru/28978 https://govnokod.xyz/_28978
#103: https://govnokod.ru/28982 https://govnokod.xyz/_28982
+147
-
+170.2
// для увеличения быстродействия - если проверка успешна - выходим из цикла,
// не проверяя остальные условия.
do
{
if (is_numeric($variable))
{
// do smth
break;
}
if (is_null($variable))
{
// do smth
break;
}
// еще несколько ифоф
$variable = '\'ERROR_TYPE\'';
}
while(false);
прикольно конечно) но чел походу не знал про switch-case
+132
struct ass {
void (*func)(const char *, void *);
void *data;
} asses[] = {
{ NULL, NULL },
/* Тут типа scanf */
{ NULL, NULL },
};
while (getopt_long_only(argc, argv, "", long_options, &option_index) != -1) {
if (option_index < 0)
return 1;
struct ass *derp = &asses[option_index];
if (derp->func != NULL)
derp->func(optarg, derp->data);
}
Правим код начальника.
+1
https://sun1-28.userapi.com/c854224/v854224060/1a2490/7JEShAFqoEU.jpg
Сишник половину из этого увидит логичным.
А JS макаки без должного математического образования не знают даже, как правильно проверять на эквивалентность floating point numbers.