- 1
eval( array.join('+') );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
eval( array.join('+') );
Конечно, я понимаю что всякие Haskel там, то, сё...
+175
with Ada.Integer_Text_Io, Ada.Text_Io;
use Ada.Integer_Text_Io, Ada.Text_Io;
procedure Test is
v : Long_Float := 26.0;
v1 : float := 26.0;
begin
while (v<27.0) loop
Put_Line("Value = " & Long_Float'image(v));
v:=v+0.2;
end loop;
while (v1<27.0) loop
Put_Line("Value = " & float'image(v1));
v1:=v1+0.2;
end loop;
end;
ideone.com/pXIhvY
Безопасный военный язык, да.
+132
main = do
print [1 .. 9]
print [1, 3 .. 9]
print [1, 3 .. 10]
print [26.0, 26.2 .. 27.0]
print [25.5..30.0]
print [25, 25 .. 25]
В хаскеле сломан генератор списков. :(
http://ideone.com/AvBSuz
+91
public static
String readFile(String file) {
return Read.file( Reflection.getCallerClass(2), file,"\n");
}
public static
String readFile(Class c, String file, final String lineBreaker) {
return Read.stream(c.getResourceAsStream(file),lineBreaker);
}
Я уже как-то раз наступил на эту хрень.
Но ничё - сегодня снова вот решил написать - удобно ведь.
−82
{-# LANGUAGE ExistentialQuantification,
DeriveDataTypeable,
PatternSignatures #-}
import Data.Typeable
import Control.Concurrent
import Control.Concurrent.MVar
import Control.Concurrent.Chan
-- Core data types
data Message = forall t . Typeable t => Message t | StopMessage
deriving Typeable
data Handler = forall t . Typeable t => Handler (t -> IO ())
-- Worker thread
data Worker = Worker (Chan Message) (MVar ())
workerThread :: [Handler] -> Chan Message -> MVar () -> IO ()
workerThread handlers chan finish = loop where
loop = do
message <- readChan chan
case message of
StopMessage -> putMVar finish ()
Message val -> do
foldr (tryHandler val) (putStrLn "Unhandled message") handlers
loop
tryHandler val (Handler h) rest = maybe rest h (cast val)
startWorker :: [Handler] -> IO Worker
startWorker handlers = do
chan <- newChan
finish <- newEmptyMVar
forkIO (workerThread handlers chan finish)
return $ Worker chan finish
send :: Typeable m => Worker -> m -> IO ()
send (Worker chan _) message = do
writeChan chan $ Message message
stopWorker :: Worker -> IO ()
stopWorker (Worker chan finish) = do
writeChan chan $ StopMessage
takeMVar finish
-- Some tests
data Test = Test Bool String deriving Typeable
intHandler :: Int -> IO ()
intHandler val = putStrLn $ "Int: " ++ show (val * 2)
strHandler :: String -> IO ()
strHandler val = putStrLn $ "String: " ++ reverse val
testHandler :: Test -> IO ()
testHandler (Test b s) = putStrLn $ "Test: " ++ show b ++ " " ++ show s
main = do
w <- startWorker [
Handler intHandler,
Handler (\(val::Char) -> putStrLn $ "Char: " ++ show val),
Handler strHandler,
Handler testHandler]
send w (5::Int)
send w False
send w 'a'
send w "foo"
send w (Test True "bar")
stopWorker w
putStrLn "Finished!"
Вот такая вот портянка была написана под влиянием дискуссии с HaskellGovno http://govnokod.ru/11968, и недавней его просьбой рассказать об общении потоков в хаскеле.
Код запускает тред, в который можно передавать различные сообщения (ограничение только одно - тип сообщения должен быть инстансом тайпкласса Typeable). В треде исполняются указанные хендлеры, каждый из которых ловит свой тип сообщений.
P.S. Для неимеющих хаскеля, но желающих посмотреть на работу кода: http://ideone.com/OMVamc.
+25
template <typename T> struct Pool { static std::vector<T> data; };
std::vector<tbphys::Body> Pool<tbphys::Body>::data;
std::vector<Ball> Pool<Ball> ::data;
std::vector<Wall> Pool<Wall> ::data;
std::vector<Bat> Pool<Bat> ::data;
std::vector<Brick> Pool<Brick> ::data;
template <typename T, typename U> struct List
{
typedef T Head;
typedef U Tail;
};
struct End {};
typedef List<tbphys::Body, List<Brick, List<Bat, List<Ball, List<Wall, End> > > > > Components;
typedef List<Brick, List<Bat, List<Ball, List<Wall, End> > > > DrawableComponents;
typedef List<Brick, List<Ball, List<Bat, End> > > MovableComponents;
const size_t badindex = size_t(-1);
struct GameBody
{
size_t self,body,bat,brick,wall,ball;
template <typename T> size_t& IndexOf ();
template <> size_t& IndexOf <tbphys::Body> () {return body;}
template <> size_t& IndexOf <Bat > () {return bat;}
template <> size_t& IndexOf <Brick> () {return brick;}
template <> size_t& IndexOf <Wall > () {return wall;}
template <> size_t& IndexOf <Ball > () {return ball;}
template <typename T>
T& AddComponent ()
{
size_t index = Pool<T>::data.size();
Pool<T>::data.resize(index+1);
T& result = Pool<T>::data[index];
result.hostIndex = self;
IndexOf<T>() = index;
return result;
}
template <typename T> void SetBadIndex ()
{
IndexOf<T::Head> () = badindex;
SetBadIndex<T::Tail> ();
}
template <> void SetBadIndex <End> () {}
};
Сколько тут говнопаттернов крестоблядского крестоязыка?
−153
class ProblemsController < ApplicationController
MAX_TAGS_PER_PROBLEM = 5
def self.MAX_TAGS_PER_PROBLEM
MAX_TAGS_PER_PROBLEM
end
end
+73
public String getText()
{
// don't ask me what these charset tricks mean :)
String str = null;
try
{
str = new String(doc.getText(0, doc.getLength()).getBytes("Cp1252"), "Cp1251");
}
catch(Exception e)
{
// Leave str as null
}
return str;
}
...
+59
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"],
"ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"],
"PROPERTY_CODE" => $arParams["LIST_PROPERTY_CODE"],
"META_KEYWORDS" => $arParams["LIST_META_KEYWORDS"],
"META_DESCRIPTION" => $arParams["LIST_META_DESCRIPTION"],
"BROWSER_TITLE" => $arParams["LIST_BROWSER_TITLE"],
"INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"],
"BASKET_URL" => $arParams["BASKET_URL"],
"ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
"PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
"SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
"FILTER_NAME" => $arParams["FILTER_NAME"],
"DISPLAY_PANEL" => $arParams["DISPLAY_PANEL"],
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_FILTER" => $arParams["CACHE_FILTER"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"SET_TITLE" => $arParams["SET_TITLE"],
"SET_STATUS_404" => $arParams["SET_STATUS_404"],
"DISPLAY_COMPARE" => $arParams["USE_COMPARE"],
"PAGE_ELEMENT_COUNT" => $arParams["PAGE_ELEMENT_COUNT"],
"LINE_ELEMENT_COUNT" => $arParams["LINE_ELEMENT_COUNT"],
"PRICE_CODE" => $arParams["PRICE_CODE"],
"USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
"SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],
Очень ценные данные. Сразу как-то подозрительно, когда видишь в cms такое. Ну это ж божественная суть битрикса...
+117
class traffic {
function traffic() {
global $mosConfig_live_site;
$remhost = @$_SERVER['REMOTE_HOST'];
if (strpos($remhost,".") != false) { $remhost = strtok($remhost,"."); }
$remhost = strtoupper($remhost);
$mb = @$_COOKIE['mb'];
//if ($mb == -1 || $mb == 0) { return; }
if (isset($mb)) {
if ($mb < 300) { $colormb = "green"; }
else { $colormb = "red"; }
$t =<<<TXT
<center><b>
<font size="4" style="line-height: 40px"><font color="$colormb"><p>eto prosto tak</p> $mb </font> </font>
<br><font size="2" color="blue" style="line-height: 20px">$remhost</font></br></b></center>
<font color="brown" size="1" style="line-height: 8px">* -01:00</font>
TXT;
echo $t ;
echo @$_SERVER['HTTP_USER_AGENT'];
return;
}
$headers = apache_request_headers(); //
if (!isset($headers['Authorization'])) { //
header('HTTP/1.0 401 Unauthorized'); //
header('WWW-Authenticate: NTLM'); // - NTLM
return; } //
//
if (substr($headers['Authorization'],0,5) == 'NTLM ') { // , NTLM-
$chain = base64_decode(substr($headers['Authorization'],5)); //
switch (ord($chain{8})) { //
case 3: // 5 - type-3
foreach (array('LM_resp','NT_resp','domain','user','host') as $k=>$v) {
extract(unpack('vlength/voffset',substr($chain,$k*8+14,4)));
$val = substr($chain,$offset,$length);
//echo "$v: ".($k<2 ? hex_dump($val) : iconv('UTF-16LE','CP1251',$val))."<br>\r\n";
switch ($k) {
case 2:
$domain = iconv('UTF-16LE','CP1251',$val);
case 3:
$username = iconv('UTF-16LE','CP1251',$val);
//case 4:
// $hostname = iconv('UTF-16LE','CP1251',$val);
}
}
$sdlt = fopen("http://sdlt/sdlt.php?username=".$username."&domainname=".$domain."&key=4125896370","r");
$str = fscanf($sdlt,"%s");
fclose($sdlt);
list($mb) = $str;
if ($mb == -1) { return; }
setcookie("mb",$mb,time()+64800);
if ($mb < 300) { $colormb = "green"; }
else { $colormb = "red"; }
$t =<<<TXT
<center><b> -<br> :<br>
<font size="4" style="line-height: 40px"><font color="$colormb"><p>privet ilya!!!!!!!!!!!!!!!!!!!!!! </p> $mb </font><font color="brown">*</font></font><br>
<font style="line-height: 24px"> :</font><br>
<font size="1" color="blue" style="line-height: 20px">$remhost ($domain - $username)</font><br></b></center>
<font color="brown" size="1" style="line-height: 8px">* - 01:00</font>
TXT;
echo $t;
return;
case 1: // 3
//if (ord($chain{13}) == 0xB2 || ord($chain{13}) == 0x8201) { // NTLM 0xb2 13 type-1:
$chain = "NTLMSSP\x00".//
"\x02" /* */ ."\x00\x00\x00\x00\x00\x00\x00".
"\x28\x00" /* */ ."\x00\x00".
"\x01\xB2" /* */ ."\x00\x00".
"\x00\x02\x02\x02\x00\x00\x00\x00". // nonce
"\x00\x00\x00\x00\x00\x00\x00\x00";
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: NTLM '.base64_encode($chain)); // type-2
return;// }
}
}
}
}
}
$traffic=new traffic();
безжалостный и беспощадный ООП в php