- 1
if (string.IsNullOrEmpty(email) != false)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+118
if (string.IsNullOrEmpty(email) != false)
+145
if (OnCreated != null)
{foreach (EventHandler<CreatedEventArgs> handler in OnCreated.GetInvocationList())
{
handler(this, args);
}
}
+121
if (OnCreated != null)
{foreach (EventHandler<CreatedEventArgs> handler in OnCreated.GetInvocationList())
{
handler(this, args);
}
}
человек слышал про GetInvocationList но когда его надо применять не понял - зато можно написать 4 строки вместо одной.
В данном случае аналогом будет простой вызов OnCreated().
+113
[Localizable(false)]
internal abstract class ClassAIndex : IDisposable
{
public static ClassAIndex Run()
{
ClassBIndex index = new ClassBIndex();
index.initialize();
return index;
}
// еще методы - абстрактные
}
internal class ClassBIndex : ClassAIndex
{
// тут имплементация
}
я заменил названия у ClassA &B. Надо ли упомянать что другого наследника от ClassA нет и не предвидится?
Ну а localizable атрибут со значением по умолчанию у простого класса (не Component) это уже на сладкое.
+127
#include <stdio.h>
#include <math.h>
double math_average (double values[2][3], int rows);
double dispers (double values[2][3], int rows);
void main() {
int rows = 2;
double values[2][3] = {(1,2),(2,4), (4,8)};
double av = math_average (values, rows);
double di = dispers (values, rows);
}
/* **********************************************
Srednee Arifmeticheskoe
@values[][0]: vremya otpravki paketa;
@values[][1]: vremya priema paketa
@values[][2]: raznitsa vremeni priema i otpravki
@rows: kolichestvo strok
********************************************** */
double math_average (double* values[2][3], int rows){
int count = rows;
double sum = 0;
while (count){
*values[count][2] = *values[count][0] - *values[count][1];
sum += *values[count][2];
count--;
}
return (sum / rows);
}
/* ***********************************
Dispersiya
D= sqrt (sum((sr_arifm - a[i])^2))
@values[][0]: vremya otpravki paketa;
@values[][1]: vremya priema paketa
@values[][2]: raznitsa vremeni priema i otpravki
@rows_sum: kolichestvo strok
*/
double dispers (double* values[2][3], int rows){
int count = rows;
double sum = 0;
double math_av = math_average(values, rows);
for (int i = 0; i < count; i++){
sum += pow((math_av - *values[i][2]), 2);
}
return (sqrt(sum));
}
+97
program Project42;
{$APPTYPE CONSOLE}
uses
SysUtils, Math;
const
Radix = 10;
function čòũʼnť(N: Integer): Integer;
begin
Result := 0;
while N > 0 do
begin
N := N div Radix;
Inc(Result);
end;
end;
function count(N: Integer): Integer;
begin
// Result := Ceil(LogN(Radix, N)); { slow! }
Result := Ceil(Log10(N));
end;
function rdtsc: Int64;
asm
rdtsc
end;
var
I: Integer;
t0: Int64;
const
N = 100500;
begin
try
Assert((count(42) = čòũʼnť(42)) and (count(100500) = čòũʼnť(100500)));
t0 := rdtsc;
for I := 1 to N do
čòũʼnť(Random(MaxInt + 1));
Writeln('naïve: ', rdtsc - t0, ' ticks');
t0 := rdtsc;
for I := 1 to N do
count(Random(MaxInt + 1));
Writeln('prőper: ', rdtsc - t0, ' ticks');
Writeln(StringOfChar('-', 42));
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
if DebugHook <> 0 then
begin
Write('any big key to exit...');
Readln;
end;
end.
{ http://imgs.xkcd.com/comics/haiku_proof.png :-P }
матан > метан
O(1) > O(N)
логарифм > байтоёбства с делением
+161
$(document).ready(function () {
$("#GridView1 INPUT[type='checkbox']").click(
function () {
var colIndex = $(this).parent().parent().prevAll().length;
$('.' + $(this).parent().attr("class") + ' input[type="checkbox"]').each(function () {
if ($(this).parent().parent().prevAll().length == colIndex)
$(this).attr('checked', false);
});
$(this).attr('checked', true);
});
});
взаимоисключающие чекбоксы в колонках таблицы
+141
<input type="hidden" id="id1" name="id1" value="someVal" readonly="readonly" style="background-color:Transparent;border:none;" />
Стилизованный readonly hidden
+147
var n = Math.abs(((date2 - date1) / 86400000) + 1);
var frac = n - Math.floor(n);
if (frac > 0.5) {
n = Math.ceil(n);
} else if (frac < 0.5 && frac.toPrecision(2) != 0) {
n = Math.floor(n);
n--;
}
n++;
Мой говнокод.
Задача: найти количество дней между двумя датами, включая сами эти даты. Время в датах сброшено в 0
Фишка в том "(date2 - date1) / 86400000) + 1", не работает когда есть перевод часов между двумя датами.
И вот такое говно я написал, которое по некоторым дням НЕ РАБОТАЕТ.
переписал вот так:
var n = Math.abs(date2 - date1);
n /= 3600000;
var mod = n % 24;
if (mod == 23) {
n++;
} else if (mod == 1) {
n--;
}
n /= 24;
n++;
теперь не важно сколько переводов часов прошло между датами: 0, 1, 2 или 5.
По поводу говнокода:
За такой frac на авторе надо зарабатывать фраг!
Oleg_quadro: автор, убей себя головой о клаву:
Oleg_quadro: "vb fgrbfvgr bgfvrt rtuijnikjikni56trg5rt6g45t6rgyh hnjunh ujuuuuuuuuuuuuuuuuuuuy"
−196
....
SELECT * BULK COLLECT INTO dbg FROM debug_codes;
FOR i IN 1..dbg.COUNT LOOP
....
PL/SQL
Вся таблица запихивается в коллекцию.
2 миллиона строк — серверу плохо, скрипт работает около 8 часов.
после исправления (в коллекцию вставляются строки пачками по 10 000 штук) стал работать полчаса.