- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
public static function checkWriteToTorrentPath($path)
{
	if (file_put_contents($path.'file.txt', ' '))
	{
		unlink($path.'file.txt');
		return TRUE;
	}
	else
		return FALSE;
}Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
public static function checkWriteToTorrentPath($path)
{
	if (file_put_contents($path.'file.txt', ' '))
	{
		unlink($path.'file.txt');
		return TRUE;
	}
	else
		return FALSE;
}
            is_writable ? Не, не слышал!
https://github.com/ElizarovEugene/TorrentMonitor/blob/master/class/System.class.php#L48 Эпик!
        
+13
CompoundExpression*
CompoundExpression::newBinaryExpression(
	BasicBinaryOperation::Type operation,
	const Expression *x,
	const Expression *y
) {
	vector<Expression::const_pointer> params(2);
	params[0] = x;
	params[1] = y;
	
	// integer power optimization
	if (operation == BasicBinaryOperation::POWER) {
		if (y->isNumber()) {
			Number::const_pointer number_y = dynamic_cast<typeof number_y>(y);
			if (number_y != NULL && number_y->isIntegerNumber()) {
				IntegerNumber::const_pointer integer_y = dynamic_cast<typeof integer_y>(number_y);
				if (integer_y != NULL) {
					operation = BasicBinaryOperation::INT_POWER;
					return new CompoundExpression(BinaryOperation::getOperation(operation), params);
				}
			}
		}
	}
	
	// x^(y/n), where 'n' is odd integer
	// transform to '(x^y)^(1/n)'
	if (operation == BasicBinaryOperation::POWER) {
		if (y->isCompoundExpression()) {
			auto compoundExpressionY = dynamic_cast<CompoundExpression::const_pointer>(y);
			if (compoundExpressionY != NULL && compoundExpressionY->operation->isBinary()) {
				auto innerOperation = compoundExpressionY->operation;
				auto binaryOperation = dynamic_cast<BinaryOperation const *>(innerOperation);
				if (binaryOperation != NULL && binaryOperation->getType() == BasicBinaryOperation::DIVIDE) {
					Expression::const_pointer   numerator = compoundExpressionY->params[0];
					Expression::const_pointer denominator = compoundExpressionY->params[1];
					if (denominator->isNumber()) {
						auto numberDenominator = dynamic_cast<Number::const_pointer>(denominator);
						if (numberDenominator != NULL && numberDenominator->isIntegerNumber()) {
							auto integerDenominator = dynamic_cast<IntegerNumber::const_pointer>(numberDenominator);
							if (integerDenominator != NULL && (integerDenominator->intValue() % 2) != 0) {
								auto base = CompoundExpression::newBinaryExpression(BasicBinaryOperation::POWER, x, numerator);
								return CompoundExpression::newBinaryExpression(BasicBinaryOperation::NTH_ROOT, integerDenominator, base);
							}
						}
					}
				}
			}
		}
	}
	return new CompoundExpression(BinaryOperation::getOperation(operation), params);
}Моё. Потребовалось воткнуть оптимизацию арифметического выражения некоторого вида. В результате родился вот такой костыль.
−116
{ 
    NSString *xContent = myTextView.text;
    
    //temp file filename
    NSString *tmpFileName = @"test1.html";
    
    //temp dir
    NSString *tempDir = NSTemporaryDirectory();
    NSLog(@"tempDirectory: %@",tempDir);
    
    //create NSURL
    NSString *path4 = [tempDir stringByAppendingPathComponent:tmpFileName];
    NSURL* url = [NSURL fileURLWithPath:path4]; 
    
    //setup HTML file contents
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MathJax" ofType:@"js" inDirectory:@"mathjax-MathJax-v2.0"];
    NSLog(@"filePath = %@",filePath);
    
    //write to temp file "tempDir/tmpFileName", set MathJax JavaScript to use "filePath" as directory, add "xContent" as content of HTML file
    [self writeStringToFile:tempDir fileName:tmpFileName pathName:filePath content:xContent];
    
    NSURLRequest* req = [[NSURLRequest alloc] initWithURL:url]; 
    
    //original request to show MathJax stuffs
    [myWebView loadRequest:req];
}
 -(void)writeStringToFile:(NSString *)dir fileName:(NSString *)strFileName pathName:(NSString *)strPath content:(NSString *)strContent{
    
    NSString *path = [dir stringByAppendingPathComponent:strFileName];
    
    NSString *foo0 = @"<html><head><meta name='viewport' content='initial-scale=1.0' />"
"<script type='text/javascript' src='";
    
    NSString *foo1 = @"?config=TeX-AMS-MML_HTMLorMML-full'></script>"
    "</head>"
    "<body>";
    NSString *foo2 = @"</body></html>";
    NSString *fooFinal = [NSString stringWithFormat:@"%@%@%@%@%@",foo0,strPath,foo1,strContent,foo2];
    
    [fooFinal writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
            http://new2objectivec.blogspot.com/2012/03/tutorial-how-to-setup-mathjax-locally.html
Здорово, правда?
        
+151
if (anidub::$exucution)
		{
			//получаем страницу для парсинга
			$page = anidub::getContent($torrent_id, anidub::$sess_cookie);
			if ( ! empty($page))
			{
				//ищем на странице дату регистрации торрента
				if (preg_match("/<td width=\"\" class=\"heading\" valign=\"top\" align=\"right\">Добавлен<\/td><td valign=\"top\" align=\"left\">(.*)<\/td>/", $page, $array))
				{
					//проверяем удалось ли получить дату со страницы
					if (isset($array[1]))
					{
						//если дата не равна ничему
						if ( ! empty($array[1]))
						{
							//сбрасываем варнинг
							Database::clearWarnings($tracker);
							//приводим дату к общему виду
							$date = $array[1];
							$date_str = anidub::dateNumToString($array[1]);
							//если даты не совпадают, перекачиваем торрент
							if ($date != $timestamp)
							{
                                preg_match('/<a href=\"download\.php\?id=(\d{2,6})&name=(.*)\">/U', $page, $array);
                                $torrent_id = $array[1];
                                $torrent_id_name = $array[2];
								//сохраняем торрент в файл
								$torrent = anidub::getTorrent($torrent_id, $torrent_id_name, anidub::$sess_cookie);
								$client = ClientAdapterFactory::getStorage('file');
								$client->store($torrent, $id, $tracker, $name, $torrent_id, $timestamp);
								//обновляем время регистрации торрента в базе
								Database::setNewDate($id, $date);
								//отправляем уведомлении о новом торренте
								$message = $name.' обновлён.';
								Notification::sendNotification('notification', $date_str, $tracker, $message);
							}
						}
						else
						{
							//устанавливаем варнинг
							if (anidub::$warning == NULL)
							{
								anidub::$warning = TRUE;
								Errors::setWarnings($tracker, 'not_available');
							}
							//останавливаем процесс выполнения, т.к. не может работать без кук
							anidub::$exucution = FALSE;
						}
					}
					else
					{
						//устанавливаем варнинг
						if (anidub::$warning == NULL)
						{
							anidub::$warning = TRUE;
							Errors::setWarnings($tracker, 'not_available');
						}
						//останавливаем процесс выполнения, т.к. не может работать без кук
						anidub::$exucution = FALSE;
					}
				}
				else
				{
					//устанавливаем варнинг
					if (anidub::$warning == NULL)
					{
						anidub::$warning = TRUE;
						Errors::setWarnings($tracker, 'not_available');
					}
					//останавливаем процесс выполнения, т.к. не может работать без кук
					anidub::$exucution = FALSE;
				}
			}			
			else
			{
				//устанавливаем варнинг
				if (anidub::$warning == NULL)
				{
					anidub::$warning = TRUE;
					Errors::setWarnings($tracker, 'not_available');
				}
				//останавливаем процесс выполнения, т.к. не может работать без кук
				anidub::$exucution = FALSE;
			}
		}Классическая лесенка пыхомакаки.
+153
$object = __CLASS__;
self::$instance = new $object;
+149
preg_match_all('/<td class=\"f\">\n\t\t\t\t\n\t\t\t\t\t(.*)\n\t\t\t\t<\/td>/', $page, $section)
            https://github.com/ElizarovEugene/TorrentMonitor/blob/master/trackers/tfile.me.search.php#L34
ну и много всякой другой вкуснятины
        
+166
case OP_PSUM_ABS_DIFF:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PSADBW, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWB:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKLBW, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWW:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKLWD, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWD:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKLDQ, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWQ:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKLQDQ, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWPS:
x86_sse_alu_ps_reg_reg (code, X86_SSE_UNPCKL, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_LOWPD:
x86_sse_alu_pd_reg_reg (code, X86_SSE_UNPCKL, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHB:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKHBW, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHW:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKHWD, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHD:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKHDQ, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHQ:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PUNPCKHQDQ, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHPS:
x86_sse_alu_ps_reg_reg (code, X86_SSE_UNPCKH, ins->sreg1, ins->sreg2);
break;
case OP_UNPACK_HIGHPD:
x86_sse_alu_pd_reg_reg (code, X86_SSE_UNPCKH, ins->sreg1, ins->sreg2);
break;
case OP_PACKW:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PACKSSWB, ins->sreg1, ins->sreg2);
break;
case OP_PACKD:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PACKSSDW, ins->sreg1, ins->sreg2);
break;
case OP_PACKW_UN:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PACKUSWB, ins->sreg1, ins->sreg2);
break;
case OP_PACKD_UN:
x86_sse_alu_sse41_reg_reg (code, X86_SSE_PACKUSDW, ins->sreg1, ins->sreg2);
break;
case OP_PADDB_SAT_UN:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PADDUSB, ins->sreg1, ins->sreg2);
break;
case OP_PSUBB_SAT_UN:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PSUBUSB, ins->sreg1, ins->sreg2);
break;
case OP_PADDW_SAT_UN:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PADDUSW, ins->sreg1, ins->sreg2);
break;
case OP_PSUBW_SAT_UN:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PSUBUSW, ins->sreg1, ins->sreg2);
break;
case OP_PADDB_SAT:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PADDSB, ins->sreg1, ins->sreg2);
break;
case OP_PSUBB_SAT:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PSUBSB, ins->sreg1, ins->sreg2);
break;
case OP_PADDW_SAT:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PADDSW, ins->sreg1, ins->sreg2);
break;
case OP_PSUBW_SAT:
x86_sse_alu_pd_reg_reg (code, X86_SSE_PSUBSW, ins->sreg1, ins->sreg2);
break;https://github.com/mono/mono/blob/master/mono/mini/mini-x86.c#L2481
+133
while (Process.GetProcesses().Where(x => x.ProcessName == "FREngine").Count() >= 2)
{
 Thread.Sleep(5000);
}ждём-с
+156
if( SITE == 'http://dev.example.com' ) die( file_get_contents( 'http://www.example.com/error.php?error=xml' ) );
die( file_get_contents( SITE.'/error.php?error=xml' ) );некоторые 404-ую выводят вот так
+119
<button type="button"Пятница в моей голове...