- 1
- 2
- 3
- 4
- 5
- 6
- 7
switch ( keyStroke ) {
// Shift pressed
case 2228240: // IE
case 16:
that.hiddenMode = 1;
that.line.detach();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
switch ( keyStroke ) {
// Shift pressed
case 2228240: // IE
case 16:
that.hiddenMode = 1;
that.line.detach();
}
+154
// Цитата №1: массив регулярных выражений из введённых пользователем строк
var strings = what.filter(function(e){ return e.replace(/s+/g,'').length; }).map(function(e){ var re = new RegExp(e, 'g' + (ignoreCase ? 'i' : '')); return re; });
// Цитата №2: проверяется наличие введённых строк в тексте и выводит результаты
function processText(pid, cid, text){
if(strings.every(function(re){
return re.test(text);
})){
// совпало
// тут выводится информация о совпадении для поста/комментария
// кроме вывода в консоль побочных эффектов нет
....
}
}
// Цитата №3: запуск поиска
posts.forEach(function(post){
processText(post.id, null, post.author.name + ' ' + post.text);
processText(post.id, null, post.author.name + ' ' + post.description);
post.comments.forEach(function(comment){
processText(post.id, comment.id, comment.author.name + ' ' + comment.text);
});
});
Цитаты из скрипта поиска по ГК.
Казалось бы, write-only питушня, работает - не трогать. Но, прочитав, http://govnokod.ru/16577#comment246821, решил поискать упоминания доктора по званию. Открываю найденный пост X, а там не все упоминания найдены. Меняю список постов, в которых искать - для X меняется список найденных комментариев.
Откуда такая питушня? processText почти чистая, strings, posts не меняется. Может, вывод на консоль как-то влияет?
Все волосы на жопе вырвал пока нашел в чем ошибка.
Внимание, вопрос. В чем гавно? (c) ursus
+156
Generator.prototype.update = function () {
var t = this.timer++,
d = this.delay,
s = this.samples,
m = this.minDistance,
w = this.width,
h = this.height,
g = this.global,
c = this.cid,
ttl = this.ttl--,
l = s.length,
rand = Math.random,
floor = Math.floor,
x,
y,
r,
i,
j,
d2,
n;
if (ttl > 0) {
while (t > d) {
r = s[floor(rand() * l)].copy();
if (m) {
i = 1000;
while (i--) {
x = rand() * w - w * 0.5;
y = rand() * h - h * 0.5;
for (j in this) if (j instanceof Entity) {
n = this[i];
d2 = (x - n.x) * (x - n.x) + (y - n.y) * (y - n.y);
if (d2 * d2 > m) {
i = 0;
}
}
}
} else {
x = rand() * w - w * 0.5;
y = rand() * h - h * 0.5;
}
r.x = x;
r.y = y;
if (!g) {
r.parent = this;
}
this[c] = r;
this.cid = c += 1;
this.time = t -= d;
}
} else {
delete this.update;
}
};
асм-диалект яваскрипта
+124
// poor man's semaphore
while (self.fetching) {}
http://backgridjs.com/ref/extensions/select2-cell.html
+155
function showHelp() {
var $is_hidden = document.getElementById('help_btn').style.display == '' ? true : false;
document.getElementById('help_btn').style.display = $is_hidden ? 'none' : '';
document.getElementById('help_text').style.display = $is_hidden ? '' : 'none';
return false;
}
Больше тернарников богу тернарников!
http://83.102.180.29/ (заглушка "Билайна")
+157
function detect_overlap(l1,l2,r1,r2,t1,t2,b1,b2) {
if (b1<t2) { return false; }
if (t1>b2) { return false; }
if (r1<l2) { return false; }
if (l1>r2) { return false; }
return true;
}
+153
function parse(input) {
var options = arguments.length > 1 ? arguments[1] : {},
peg$FAILED = {},
peg$startRuleFunctions = { grammar: peg$parsegrammar },
peg$startRuleFunction = peg$parsegrammar,
peg$c0 = peg$FAILED,
peg$c1 = null,
peg$c2 = [],
peg$c3 = function(initializer, rules) {
. . .
peg$c142 = { type: "other", description: "whitespace" },
peg$c143 = /^[ \t\x0B\f\xA0\uFEFF\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]/,
peg$c144 = { type: "class", value: "[ \\t\\x0B\\f\\xA0\\uFEFF\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]", description: "[ \\t\\x0B\\f\\xA0\\uFEFF\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]" },
peg$currPos = 0,
peg$reportedPos = 0,
peg$cachedPos = 0,
peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },
peg$maxFailPos = 0,
peg$maxFailExpected = [],
peg$silentFails = 0,
peg$result;
. . . // + 3К строк бреда до конца функции
История моих мытарств и жалких метаний:
Меня попросило начальство радикально улучшить формат в котором приложение хранит данные. Думал я, думал, и решил, что YAML ка нельзя лучше подходит для задачи (нужно хранить описание слайдов презентации, т.е. много текста и довольно схематичная графика, все это желательно бы иметь возможность комфортно редактировать в текстовом виде, создавать заготовки и т.д.).
Шаг первый: поиск готового YAML парсера, врезультате обнаружились две штуки для АС3. Один - клон Ява парсера, в котором по класу на токен. Я не шучу. Проект заброшен 5 лет назад. Второй: заброшен 4 года назад, все в одном файле, парсится регулярками и магией, какие-то комментарии имеются, но они только свидетельствуют о несостоятельности писавшего коментарии.
Подумал: если нет нормального парсера, может есть генератор парсеров?
Шаг второй: поиск обнаружил одну попытку написать клон ANTLR, но очень ограниченную, и не работающую.
Думаю: ну бля, если все так херово, может с ж.скрипта портирую чего-нибудь простенькое, PEG как раз должен подойти.
И тут я нашел это.
+159
$(function () {
$('#Who').click(whoAre);
});
function whoAre() {
var who = document.getElementById('whoAreyou');
var value = who.style.display;
var aspnetRoles = document.getElementById('aspnetRoles');
if (value == "none") {
who.style.display = "block";
aspnetRoles[0].value = "Агент";
aspnetRoles[1].value = "Арендодатель";
aspnetRoles[0].text = "Агент";
aspnetRoles[1].text = "Арендодатель";
} else {
who.style.display = "none";
aspnetRoles[0].value = "Moderator";
aspnetRoles[1].value = "Moderator";
aspnetRoles[0].text = "Moderator";
aspnetRoles[1].text = "Moderator";
}
}
меняет элементы, option
+154
if (d_min < 0) {
// push out by normal * |d_min|
x = x - d_min * T[t_min];
y = y - d_min * T[t_min + 1];
y = z - d_min * T[t_min + 2];
Сука, блядь, пиздец, два часа убил.
+155
const WCT_SYMBOLS = new Buffer('ABCDEFGO'); /*задаём строку для поиска
в ней символов*/
const WCT_LENGTH = 3;
const fs = require('fs');
/*функция для перевода целой части числа из 10-й в любую сс*/
function Cel(number, c, out, offset, length){
var pos = offset + length - 1;
number |= 0; /*берём целую часть от числа*/
do {
out[pos--] = WCT_SYMBOLS[number % c | 0]; /*повторяем пока число не будет равно нулю берём целую часть при
делении числа на основание и берём остаток + 1 от деления целой части на 16, записываем
результат посимвольно в строку out*/
number = number / c | 0;
} while (number != 0);
while(pos >= offset)
out[pos--] = WCT_SYMBOLS[0];
}
(function wctEditor() {
const argv = process.argv;
if(argv.length < 4) {
console.log('Not enough parameters!');
process.exit(1);
}
const input = argv[2], output = argv[3];
if(!fs.existsSync(input)) {
console.log('File not exist!');
process.exit(2);
}
const BUFFER_SIZE = 1024;
const f1 = fs.openSync(input, 'r');
const f2 = fs.openSync(output, 'w');
const I = new Buffer(BUFFER_SIZE);
const O = new Buffer(WCT_LENGTH * BUFFER_SIZE);
while(1) {
var readBytes = fs.readSync(f1, I, 0, I.length, null);
if(!readBytes) break;
for(var i=0; i<readBytes; ++i)
Cel(I[0], WCT_SYMBOLS.length, O, i * WCT_LENGTH, WCT_LENGTH);
fs.writeSync(f2, O, 0, readBytes * WCT_LENGTH, null);
}
fs.closeSync(f1);
fs.closeSync(f2);
})();
/* TODO -oUser -cConsole Main : Insert code here */
По следам http://programmersforum.ru/showthread.php?t=264223. Ну тормозит же!
Я долго боролся с собой, и всё же от авторского стиля остались только комментарии и имена f1, f2 и I...
WCT editor: теперь и под Node.