- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Rectangle {
id: round
height: ~~(parent.height / 2)
width: height
anchors.centerIn: parent
color: "blue"
radius: width / 2 - 1 // Радиус скругления углов
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Rectangle {
id: round
height: ~~(parent.height / 2)
width: height
anchors.centerIn: parent
color: "blue"
radius: width / 2 - 1 // Радиус скругления углов
}
QML.
Мне кажется, что каждый раз, когда я использую элемент Rectangle, чтобы нарисовать кружок, кому-то где-то приходится приваривать к верхнему днищу бака треугольное отверстие диаметром три на четыре...
Алсо, оператор хвостик (чтобы избежать субпиксельной границы).
−2
// Подгрузка аватаров пользователей.
Bmp:=TBitMap.Create; // Нет более изящного спооба узнать тип изображения, не колупаясь в заголовках. Расширение файлов картинок зачастую фиктивное.
try // Зная, что ава может быть только двух типов - jpg и png, я решил пойти конём.
Bmp.PixelFormat:=pf32Bit;
Bmp.Width:=16;
Bmp.Height:=16;
ImgConv:=True;
Png:=TPngObject.Create;
try
try
Comm.RawAvatar.Position:=0;
Png.LoadFromStream(Comm.RawAvatar);
Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect, Png);
except
ImgConv:=False; // Ошибка конвертирования. Не совпал формат - идем дальше, пробуем jpg...
end;
finally
Png.Free; // нет смысла раскручивать стек, ибо исключение в любом случае отловится try..except
end;
if not ImgConv then
begin
Jpg:=TJPEGImage.Create;
try
try
Comm.RawAvatar.Position:=0;
Jpg.LoadFromStream(Comm.RawAvatar);
Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect, Jpg);
except
end;
finally
Jpg.Free;
end;
end;
CommentList.Items[I].ImageIndex:=Images.AddMasked(Bmp, clWhite);
finally
Bmp.Free;
end;
end;
"Тут всюду густая вонь, то жаркая и приятная, то теплая и противная, но одинаково волнующая, особая, пароходная, мешающаяся с морской свежестью"
@ Бунин.
Теперь минусатор умеет подгружать авы.
https://dropmefiles.com/USQKW
0
https://twitter.com/RCS/status/1452367702727831565
Ай, Молодца !!!
+1
Давайте займёмся анальным сексом.
.
0
public function StartDataCache($TTL=false, $uniq_str=false, $initdir=false, $vars=Array(), $basedir = "cache")
{
$narg = func_num_args();
if($narg<=0)
return $this->cache->startDataCache();
if($narg<=1)
return $this->cache->startDataCache($TTL);
if($narg<=2)
return $this->cache->startDataCache($TTL, $uniq_str);
if($narg<=3)
return $this->cache->startDataCache($TTL, $uniq_str, $initdir);
return $this->cache->startDataCache($TTL, $uniq_str, $initdir, $vars, $basedir);
}
0
<!DOCTYPE html>
<html lang="ru">
<heaad><title>calculator Protestant of sins [beta]</title></head><body><script>
let m = ["сколько Вам лет [в годах]?","мало!","всего наилучшего тебе",0,16668,"сколько вы отдыхаете? [в часах]","у вас накопилось :"," грехов! "];
var x="Этот супер калькулятор поможет тебе подсчитать количество нажитых тобой - за твои годы Грехов!\n Не бойся, смелее вводи свои данные в последующие окошки, и получай результат!\nне переживай, если у тебя получится болше одного миллиона - то это в пределах нормы, если больше то надо делать обряд!";
try{function b(e) {let l=d(c(m[e]));e==0?x=l:0;return l};
function c(a) {return prompt(a)}
function d(d) {if(d<=2){alert(m[1]);d(c(m[0]))}else{return d;}}
if(confirm(x)){let s=0x1E32F50*b(0);let a=x*0x16D*0x18-b(5);alert(m[6]+`${s-a-m[4]-Math.PI}`+m[7])}else{alert(m[2])}}catch(x){alert("©by den")};
</script></body></html>
Hello народ))
Уверен вы ещё не встречали такого супер калькулятора!
Чую даже без запуска вы поймёте что это полное Г
0
Автомобиль-русофоб
https://habr.com/ru/post/572984/
Я нашел статью про Насру (formerly Gologub).
0
// В одном файле
// Getting gif by url
const getGifUrl = (searchQuery, gifRating) => {
const fullUrl = `${giphyUrl}${giphyApiKey}&tag=${searchQuery}&rating=${gifRating}`;
let gifSource;
let girSourceOriginal;
fetch(fullUrl).then(response => {
return response.json();
}, networkError => {
console.log(networkError);
}).then(jsonResponse => {
if (!jsonResponse)
gifSource = '';
else {
gifSource = jsonResponse.data.images.preview_gif.url;
gifSoucreOriginal = jsonResponse.data.image_original_url;
}
renderGif(gifSource, gifSoucreOriginal);
});
};
// Где-то в другом файле
// incapsulating image
const incapsulateImage = (gifUrl, gifUrlOriginal) => {
// creating gif preview tile
const image = document.createElement('img');
image.src = gifUrl;
// create link to the original gif
const linkOriginal = document.createElement('a');
linkOriginal.href = gifUrlOriginal;
// incapsulating gif tile into link
linkOriginal.appendChild(image);
// create container-tile
const tile = document.createElement('div');
tile.className = "container-tile";
// incapsulating linked gif into tile
tile.appendChild(linkOriginal);
return tile;
}
// Rendering one gif image
const renderGif = (gifUrl, gifUrlOriginal) => {
if (gifUrl) {
const imageTile = incapsulateImage(gifUrl, gifUrlOriginal);
$gifContainer.append(imageTile);
} else if (!$gifContainer.html()) {
const notFoundHeading = document.createElement('h1');
notFoundHeading.innerHTML = NOT_FOUND_TEXT;
$gifContainer.append(notFoundHeading);
}
};
const render = () => {
// Rendering whole block of gifs
const renderContainer = (searchQuery, gifCount, gifRating) => {
for (let i = 0; i < gifCount; i++) {
getGifUrl(searchQuery, gifRating);
const heading = $gifContainer.find('h1');
if (heading && heading.text() == NOT_FOUND_TEXT) {
break;
}
}
}
// ...Сетап всяких обработчиков событий на элементы...
}
Когда толком не знал про промисы (а уж тем более про модули), городил такую дичь.
0
def generate_words(sample, phonemes, num=10):
global words, yd
gen = True
parens = 0
r = random.random()
word = ""
i = 0
while i < int(num):
for j in range(0, len(sample)):
if sample[j] == '(':
if gen:
gen = (random.randint(0,1) == 0)
if not gen:
parens += 1
elif sample[j] == ')':
if not gen:
parens -= 1
if parens == 0:
gen = True
elif sample[j] in phonemes.keys():
for n, phtype in enumerate(phonemes.keys()):
if gen and phtype == sample[j]:
#k = random.choice(phonemes[phtype])
n = yd.randomGen(phonemeRanks[phtype])
k = phonemes[phtype][n]
word += k
elif gen:
word += sample[j]
if (not word in words) and (not isExceptional(word)):
words.append(word)
i += 1
word = ""
# ...
"""parsing sound changes rule with the notation X>Y/Z, where X is a set of source phonemes
Y - a set of resulting phonemes, Z - a positional condition (optional)"""
def parsePhNotation(inline):
rule = inline.split('>')
if (not len(rule) == 2):
return []
source = rule[0].split(',')
final = rule[1].split('/')
result = final[0].split(',')
posCond = []
rule = []
if (len(final) > 2):
return False
elif (len(final) == 2):
posCond = final[1].split('_')
if (not len(posCond) == 2):
return []
posCond[0] = posCond[0].split('#')
posCond[1] = posCond[1].split('#')
if (len(posCond[0]) == 2) and len(posCond[0][0]) > 0:
return []
elif len(posCond[0]) == 2:
rule.append(" "+posCond[0][1])
else:
rule.append(posCond[0][0])
if (len(posCond[1]) == 2) and len(posCond[1][1]) > 0:
return []
rule.append(posCond[1][0])
if len(posCond[1]) == 2:
rule[1] += " "
rule[0] = rule[0].split(",")
rule[1] = rule[1].split(",")
final = []
if len(source) > len(result):
for i in range(len(result)-1, len(source)-1):
result.append("")
elif len(source) < len(result):
for i in range(len(source)-1, len(result)-1):
source.append("")
final.append(source)
final.append(result)
if (len(rule)>0):
final.append(rule)
return final
Рекурсивный спуск, автомат с магазинной памятью, top-down parsing, bottom-up parsing? Не, не слышал. В свое время время делал вот такие самопальные алгоритмы для рандомной генерации слов по фонетическим шаблонам (типа "CV(C)", "VC" и т.д.) и фонетического преобразования слов и при попытке починить чета наступал на новые баги, т.к. не до конца понимал как вообще парсятся компьютерные языки.
+1
$txtdd = $DI_Date;
$DI_Date = explode(".",$DI_Date);
$DI_YY = $DI_Date[2];
$DI_LYY = $DI_YY;
$DI_NYY = $DI_YY;
$MY = $DI_Date[1].".".$DI_Date[2];
$DI_MM = $DI_Date[1]-1;
$DI_LMM = $DI_MM-1;
if ($DI_LMM<0) $DI_LMM = 11;
$DI_NMM = $DI_MM+1;
if ($DI_NMM>11) $DI_NMM = 0;
if ($DI_MM==0) $DI_LYY = $DI_YY-1;
if ($DI_MM==11) $DI_NYY = $DI_YY+1;
$DI_DD = 1;
$lastM = $DI_MM;
$yy = $DI_YY;
if ($lastM<1) {
$lastM = 12+$lastM;
$yy = $yy - 1;
}
$lastM = $DI_DD.".".$lastM.".".$yy;
$nextM = $DI_MM+2;
$yy = $DI_YY;
if ($nextM>12) {
$nextM = $nextM-12;
$yy = $yy + 1;
}
$nextM = $DI_DD.".".$nextM.".".$yy;
$lastY = $DI_DD.".".($DI_MM+1).".".($DI_YY-1);
$nextY = $DI_DD.".".($DI_MM+1).".".($DI_YY+1);