- 1
- 2
- 3
- 4
- 5
- 6
void sleep_in_qt_ms(unsigned millisec) {
QMutex foo;
foo.lock();
foo.try_lock(millisec);
foo.unlock();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+24
void sleep_in_qt_ms(unsigned millisec) {
QMutex foo;
foo.lock();
foo.try_lock(millisec);
foo.unlock();
}
sleep в Qt - что, серьезно, чтоли?
особенно порадовало: Warning: Destroying a locked mutex may result in undefined behavior.
действительно, накой нам деструкторы?
+66
// генрация паролей
function generatePassword($l = 8) {
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
$password = '';
while (strlen($password)<$l) {
srand(make_seed());
$rnd = rand(0, count($le)-1);
$password.=$le[$rnd];
}
return $password;
}
Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!
+998
private static int[] p = {
151,160,137,91,90,15,
131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,
190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,
88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166,
77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,
102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196,
135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123,
5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,
223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9,
129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228,
251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107,
49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254,
138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180};
Заполнение массива случайными числами от 0 до 360
−113
var _str = ""
var _a_=""
_a_ = KID_DANGER_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_DANGER_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
_a_ = KID_EAT_pos.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_;_a_ = KID_EAT_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
_a_ = KID_PLAY_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_PLAY_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
_a_ = KID_WASH_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_WASH_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
_a_ = KID_SLEEP_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_SLEEP_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
_a_ = KID_EDU_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_EDU_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KID_STREET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_STREET_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KID_CLEAN_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_CLEAN_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KID_GARBAGE_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_GARBAGE_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KID_TOILET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_TOILET_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KID_HEALTH_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_HEALTH_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = KAT_event_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KAT_event_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = DOG_event_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = DOG_event_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = FISH_event_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = FISH_event_cnt.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_
_a_ = BIRD_event_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = BIRD_event_cnt.toString(16);if (_a_.length <2) { _str+="0" }; _str += _a_
Эмм, работа со строками...
+146
я придумал отличную идею для нового языка программирования.
это будут смешанные присваивания.
можно будет писать например так:
x <- y (тоже самое что и x = y)
или
x -> y ( y = x)
также обмен значений:
x <-> y
паралельное присваивание (для обоих видов):
a,b,c -> x,y,z (x = a,y =b, z =c)
множественное присваивание:
a -> b -> c ( b = a, c = a)
a <- b <- c ( a = b, b = c)
и их комбинации
x, y, z <- a,b,c <- i,j,k <- 1,2,3 -> d,e,f
правда круто?
Последняя строчка кода как мне кажется будет пользоваться бешеной популярностью.
Постоянно похожий код приходится писать.
+67
Corpus edimus, sanguis bibumus!
+153
function checkTags(object, numberOfTags) {
var tags = object.value.split(",");
var k = tags.length;
var tmp = new Array();
for (var i = 0; i < k; ++i) {
var temp = tags[i].replace(/(^\s+)|(\s+$)/g, '');
temp = temp.replace(/[\s]{2,}/g, ' ');
if (temp != '') { // отсеиваем пустые
temp = temp.toLowerCase(); // переводим в нижний регистр
// Первую букву в верхний регистр(захотелось мне так!!!)
temp = temp.match(/(.{1})/g);
temp[0] = temp[0].toUpperCase();
temp = temp.join("");
if (tmp.length > 0 && in_array(temp, tmp)) { // отсеиваем повторяющиеся
continue;
}
tmp.push(temp);
if (tmp.length == numberOfTags) { // отсеиваем те что превышат лимит
break;
}
}
}
tags = tmp;
$('entryTagsLeft').innerHTML = numberOfTags - tags.length;
object.value = tags.join(', ');
}
Функция для проверки меток вводимых пользователем. Убираем лишние пробелы, переводить все символы в нижний регистр, переводит первую букву в верхний, удаляет повторы, отсеивает лишние метки(лимит на количество меток нужен так как они добавляются в цикле) в случае использования
0
import std.stdio;
interface Pethu {
final void Say() {
writeln("Hrueeee");
}
}
void SayTwice(Pethu pethu) {
pethu.Say();
pethu.Say();
}
class PethuImpl : Pethu { }
void main() {
auto pethu = new PethuImpl();
pethu.SayTwice();
}
+1
(set-logic UF)
; https://smtlib.cs.uiowa.edu/logics.shtml
; UF for the extension allowing free sort and function symbols
(set-option :produce-proofs true)
(declare-sort M_wff)
; AND2
(declare-fun M_a2 (M_wff M_wff) M_wff)
; AND3
(declare-fun M_a3 (M_wff M_wff M_wff) M_wff)
; (AND2 a b) <=> (AND2 b a)
(assert
(forall ( (a M_wff) (b M_wff) )
(=
(M_a2 a b)
(M_a2 b a)
)
)
)
; (AND2 a a) <=> a
(assert
(forall ( (a M_wff) )
(=
(M_a2 a a)
a
)
)
)
; (AND2 a (AND2 b c)) <=> (AND3 a b c)
(assert
(forall ( (a M_wff) (b M_wff) (c M_wff) )
(=
(M_a2 a (M_a2 b c))
(M_a3 a b c)
)
)
)
; (AND3 a b c) <=> (AND3 b a c)
(assert
(forall ( (a M_wff) (b M_wff) (c M_wff) )
(=
(M_a3 a b c)
(M_a3 b a c)
)
)
)
; IMPL - implication
(declare-fun M_impl (M_wff M_wff) M_wff)
; http://us.metamath.org/ileuni/ax-1.html
; Axiom Simp
; (IMPL a (IMPL b a)) <=> (AND2 a b)
(assert
(forall ( (a M_wff) (b M_wff) )
(=
(M_impl a (M_impl b a))
(M_a2 a b)
)
)
)
...
Весь код не влазит.
https://rise4fun.com/Z3/GnfIH
https://paste.debian.net/hidden/38ef8493/ (запасная ссылка)
Переписывал Metamath на язык из SMT солверов https://smtlib.cs.uiowa.edu/language.shtml
Z3 даже умеет доказывать какую-то питушню там.
+4
int main()
{
using Human = NamedTuple<
Field<"name", std::string>,
Field<"age", int>
>;
using User = NamedTuple<
Field<"login", std::string>,
Field<"password", std::string>
>;
Human vasya{ "Vasya", 16 };
vasya.get<"age">() = 17;
User user{ "xXxBaCRHxXx", "p4ssword" };
auto vasyaMerged = mergeNamedTuples(vasya, user);
std::cout << vasyaMerged.get<"name">() << " is " << vasyaMerged.get<"age">() << " years old!" << std::endl;
std::cout << "Login is " << vasyaMerged.get<"login">() << " and password is " << vasyaMerged.get<"password">() << std::endl;
}
Как похорошел C++ при C++20!
https://wandbox.org/permlink/llpXuy7IOSugtxHo