- 1
- 2
DECLARE @SysDatoFull datetime
SET @SysDatoFull = CAST(YEAR(getdate()) as varchar) + RIGHT('00'+CAST(MONTH(getdate()) as varchar), 2) + RIGHT('00'+CAST(DAY(getdate()) as varchar), 2)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−116
DECLARE @SysDatoFull datetime
SET @SysDatoFull = CAST(YEAR(getdate()) as varchar) + RIGHT('00'+CAST(MONTH(getdate()) as varchar), 2) + RIGHT('00'+CAST(DAY(getdate()) as varchar), 2)
SQL, даты... nuff said
Вспомнился http://govnokod.ru/9211. Может есть где-то специальное учебное заведение, где обучают таким техникам?
+70
if (s.startsWith("job."))
{
s = s.trim().replaceFirst("job\\.", "");
String name = s.split("\\.")[0];
String paramName = s.split("\\.")[1];
// Ещё немного говнокода, не сильно интересного
}
+68
public abstract class AbstractJob implements Job
{
private static ConcurrentHashMap<String, Boolean> mutexes = new ConcurrentHashMap<String, Boolean>();
public abstract void job(JobExecutionContext jec, Logger logger) throws JobExecutionException;
public void execute(JobExecutionContext jec) throws JobExecutionException
{
Logger logger = LoggerLocator.getLogger(this.getClass().getSimpleName());
if (mutexes.containsKey(this.getClass().getSimpleName()))
{
logger.info("Job "+jec.getJobDetail().getName()+" already running");
}
else
{
try
{
mutexes.put(this.getClass().getSimpleName(), true);
job(jec, logger);
}
finally
{
mutexes.remove(this.getClass().getSimpleName());
}
}
}
}
Race condition и передача логгера в параметрах очень порадовали. А ведь вместо написания кривого велосипеда можно было просто @DisallowConcurrentExecution
+76
public static void main(String[] args) {
List<String> parameters = new ArrayList<String>();
if (args.length > 1) {
int count = 0;
for (String arg : args) {
if (count == 0) {
count++;
continue;
}
parameters.add(arg);
}
}
...
Ах Индия, Индия...
(все имена переменных изменены, все совпадения - исключительно случайны)
+117
public class Foo {
public Foo() {
System.out.println("constructing foo: " + this);
throw new RuntimeException();
}
public void doEvil() {
System.out.println("Evil!Evil!Evil");
}
}
public class MyFoo extends Foo {
public static Foo x;
@Override
protected void finalize() throws Throwable {
x = this;
}
}
try {
Foo x = new MyFoo();
} catch(Exception e) {
System.out.println(""+e);
}
System.gc();
System.runFinalization();
System.out.println("MyFoo instance: " + MyFoo.x);
MyFoo.x.doEvil();
Вот так бесстрашные хакеры получают доступ к методу экземпляра объекта, конструктор которого выбрасывает исключение, а потом жалуются, что, мол, Java - решето.
А теперь вопрос на засыпку: как сделать то же самое, не используя finalize и gc?
+54
//Вычисляем предыдущий месяц
$bdate = q1("SELECT '$cdate' - INTERVAL 1 MONTH");
+113
#include <stdio.h>
int main()
{
void say_hello()
{
puts("Hello govnokod!");
}
say_hello();
return 0;
}
http://ideone.com/QZipp
+156
var renderHours = function(s){
var html = '<ul>';
var json = Ext.decode(s);
for(i in json)
if(typeof json[i].from_d != 'undefined')
html += '<li>с <b>'
+ hours[json[i].from_d][1]
+ '</b> - по <b>'
+ hours[json[i].to_d][1]
+ '</b> ('
+ json[i].from_h +':'+ json[i].from_m +'-'
+json[i].to_h +':'+ json[i].to_m +')</li>';
return html+'</ul>';
};
Вот такое попалось
+56
<html>
<head>
<style>
body{
background-color: #3366CC; /* Цвет фона веб-страницы */
}
</style>
</head>
<body>
<?php
/*error_reporting(E_ALL);*/
class Mirror{
public $sizeX;
public $sizeY;
public $filenameI;
public $filenameO;
public $red;
public $green;
public $blue;
public $alpha;
function __construct($f){
$this->filenameI=$f.".png";
$this->filenameO=$f."2.png";
$size=getimagesize($this->filenameI);
$this->sizeX=$size[0];
$this->sizeY=$size[1];
}
function saveImg(){
if(!file_exists($this->filenameO)){
$xx=$this->sizeX;
$yy=($this->sizeY)*2;
$im = imagecreatetruecolor($xx, $yy);
imageAlphaBlending($im, false);
imageSaveAlpha($im, true);
for($x=0;$x<$xx;$x++){
for($y=0;$y<$yy;$y++){
$r=$this->red[$x][$y];
$g=$this->green[$x][$y];
$b=$this->blue[$x][$y];
$alph=$this->alpha[$x][$y];
$color=ImageColorAllocateAlpha($im, $r, $g, $b, $alph);
imagesetpixel($im, $x, $y, $color);
}
}
imagepng($im, $this->filenameO);
imagedestroy($im);
}
echo "<img src=\"".$this->filenameI."\" /><hr>\n";
echo "<img src=\"".$this->filenameO."\" /><br>\n";
}
function loadImg(){
$im = imagecreatefrompng($this->filenameI);
for($x=0;$x<$this->sizeX;$x++){
for($y=0;$y<$this->sizeY;$y++){
$rgb = imagecolorat($im, $x, $y);
$color=imagecolorsforindex($im, $rgb);
$this->red[$x][$y]=$color['red'];
$this->green[$x][$y]=$color['green'];
$this->blue[$x][$y]=$color['blue'];
$this->alpha[$x][$y]=$color['alpha'];
}
}
imagedestroy($im);
}
function createMirror(){
if(!file_exists($this->filenameO)){
$yy=($this->sizeY*2);
for($x=0;$x<$this->sizeX;$x++){
$alph=0;
for($y=$this->sizeY;$y<$yy;$y++){
if($alph<126){
$alph++;
}
$this->red[$x][$y]=$this->red[$x][$this->sizeY-($y-$this->sizeY)-1];
$this->green[$x][$y]=$this->green[$x][$this->sizeY-($y-$this->sizeY)-1];
$this->blue[$x][$y]=$this->blue[$x][$this->sizeY-($y-$this->sizeY)-1];
$this->alpha[$x][$y]=$alph+$this->alpha[$x][$this->sizeY-($y-$this->sizeY)-1];
if($this->alpha[$x][$y]>127) $this->alpha[$x][$y]=127;
}
}
}
}
}
$filename="alpha";
$mirror=new Mirror($filename);
$mirror->loadImg();
$mirror->createMirror();
$mirror->saveImg();
?>
</body>
</html>
Делал для одного сайта зеркальное отражение картинки (photoshop использовать не умеем-с). Почему-то сервер часто падал.
Как оно работает, можно посмотреть здесь http://xcont.com/perc/newperceptron/cell/mirror.php
+99
// Получение имени выполняемого метода, вызывать можно только из Published-методов класса.
// Для обычных методов: FindClassMethodNames(ClassType()), для статических методов FindClassMethodNames(self).
{$optimization OFF}
function FindClassMethodNames(obj: TClass): string;
var _AdrPtr: Pointer;
begin
asm
mov eax, obj
mov edx, dword ptr [esp + 272]
push ebx
push esi
push edi
push $7FFFFFFF
xor edi, edi
jmp @@haveVMT
@@outer:
mov eax, dword ptr [eax]
@@haveVMT:
mov esi, dword ptr [eax].vmtMethodTable
test esi, esi
je @@parent
movzx ecx, word ptr [esi]
add esi, 2
@@inner:
pop ebx
push edx
sub edx, dword ptr [esi + 2]
jl @@no1
cmp edx, ebx
jg @@no1
mov ebx, edx
mov edx, dword ptr [esi + 2]
mov edi, edx
@@no1:
pop edx
push ebx
movzx ebx, word ptr [esi]
add esi, ebx
dec ecx
jnz @@inner
@@parent:
mov eax, dword ptr [eax].vmtParent
test eax, eax
jne @@outer
mov _AdrPtr, edi
pop edi
pop esi
pop ebx
end;
Result := obj.MethodName(_AdrPtr);
end;
{$optimization ON}
// пример использования
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FindClassMethodNames(ClassType()));
end;
А есть нормальный способ получить имя выполняемого метода, и строку кода заодно?