- 1
- 2
А что Рутубом кто то пользуется ?
http://habrahabr.ru/company/rutube/blog/271143/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
А что Рутубом кто то пользуется ?
http://habrahabr.ru/company/rutube/blog/271143/
+2
#include <bits/stdc++.h>
using namespace std;
typedef long long ll ;
const int maxn = 100010 ;
int n , m;
struct node {
int x , y;
}p[10];
bool cmp(node a , node b)
{
if(a.x == b.x) return a .y < b.y ;
return a.x < b.x ;
}
int main()
{
scanf("%d",&n) ;
for(int i = 0 ;i<n ;i++){
scanf("%d%d",&p[i].x , &p[i].y) ;
}
sort(p,p+n ,cmp) ;
if(n==1){
printf("-1\n") ;
}
else if(n == 2){
if(p[0].x == p[1].x ||p[0].y == p[1].y){
printf("-1\n") ;
}
else{
printf("%d\n",abs( p[1].x - p[0].x) * abs(p[1].y - p[0].y)) ;
}
}
else if(n == 3){
if(p[0].x == p[1].x && p[1].x == p[2].x){
printf("-1\n") ;
}
else if(p[0].y == p[1].y && p[1].y == p[2].y){
printf("-1\n") ;
}
else if(p[0].x == p[1].x){
if(p[0].y == p[2].y){
printf("%d\n",abs(p[1].y - p[2].y) * abs(p[0].x - p[2].x)) ;
}
else if(p[1].y == p[2].y){
printf("%d\n",abs(p[0].y - p[2].y )*abs(p[0].x -p[2].x)) ;
}
else{
printf("-1\n") ;
}
}
else if(p[1].x == p[2].x){
if(p[0].y == p[1].y){
printf("%d\n",abs(p[0].y - p[2].y) * abs(p[0].x - p[2].x)) ;
}
else if(p[0].y == p[2].y){
printf("%d\n",abs(p[0].y - p[1].y )*abs(p[0].x -p[2].x)) ;
}
else{
printf("-1\n");
}
}
else{
printf("-1\n");
}
}
else {
if(p[0].x != p[1].x || p[2].x !=p[3].x ||p[1].y !=p[3].y ||p[0].y != p[2].y ){
printf("-1\n") ;
}
else{
int flag = 1;
for(int i = 0 ; i< 4;i++){
for(int j = i+1 ;j<4 ;j++){
for(int k = j+1 ;k<4;k++){
if(p[i].x == p[j].x && p[j].x == p[k].x){
printf("-1\n");
flag = 0;
break ;
}
else if(p[i].y == p[j].y && p[j].y == p[k].y){
printf("-1\n") ;
flag = 0;
break ;
}
}
if(!flag) break ;
}
if(!flag) break ;
}
if(flag){
printf("%d\n",abs(p[1].x - p[3].x) * abs(p[0].y - p[1].y)) ;
}
}
}
return 0;
}
олимпиадники такие олимпиадники
+2
#include <fstream>
#include <iostream>
#include <windows.h>
using namespace std;
void main()
ifstream in("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Right.txt");//Даётся файл, содержащий единицы и нули, 1 - человек есть, 0 - человека нет
in >> s1;
cout << "Содержимое файла Right.txt: " << endl << s1 << endl;
int CountRDoor = 0;
CountRDoor++;
}
cout << "Кол-во человек, прошедших через правую дверь = " << CountRDoor << endl;
cout << "________________________________________________________________________________"; //< Для более лёгкой навигации
//printf("%c", 7);
cout << endl;
char s2[4096];
ifstream in2("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Left.txt");
in2 >> s2;
in2.close();
cout << "Содержимое файла Left.txt: " << endl << s2 << endl;
int CountLDoor = 0;
int j = 1;
while (j != 4095)
{
if (s2[j] < s2[j + 1])
CountLDoor++;
j++;
}
cout << "Кол-во человек, прошедших через левую дверь = " << CountLDoor << endl;
cout << "________________________________________________________________________________";
//printf("%c", 7);
cout << endl;
char s3[4096];
ifstream in3("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Found.txt");
in3 >> s3;
in3.close();
cout << "Содержимое файла Found.txt: " << endl << s3 << endl;
int CountFound = 0;
int k = 1;
while (k != 4095)
{
if (s3[k] > s3[k + 1])
CountFound++;
k++;
}
cout << "Общее кол-во человек = " << CountFound << endl << "\a";
cout << "________________________________________________________________________________";
system("pause");
}
Универ, 1-й курс. Необходимо было написать программу, на вход которой даётся 2 файла, содержащих 1 и 0, и 1 файл, содержащий диапазон чисел от 1 до 9, показывающих кол-во человек в кадре абстрактной камеры одновременно. Местоположение каждого файла строго определено. И да, не пытайтесь вдуматься, что обозначают названия папок в путях, так как смысла там никакого нет)
+2
class/View.php
<?php
class View {
...
public function compile() {
$view_src = file_get_contents(VIEW_SRC_PATH . $this->full_name . EXT);
// echo
$view_src = preg_replace("/\{\{(\w+)\}\}/", "<?php echo \$$1; ?>", $view_src);
$view_src = preg_replace("/\{\{(\w+)\|(\w+)\}\}/", "<?php echo \$$1['$2']; ?>", $view_src);
$view_src = preg_replace("/\{\{(\w+)\.(\w+)\}\}/", "<?php echo \$$1->$2; ?>", $view_src);
// foreach
$view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$2 as \$$1): ?>", $view_src);
$view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\|(\w+)-->/", "<?php foreach(\$$2['$3'] as \$$1): ?>", $view_src);
$view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$2->$3 as \$$1): ?>", $view_src);
$view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$3->$4 as \$$1 => \$$2): ?>", $view_src);
$view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$3 as \$$1 => \$$2): ?>", $view_src);
$view_src = preg_replace("/<!--each-->/", "<?php endforeach; ?>", $view_src);
// switch
$view_src = preg_replace("/<!--select\s+(\w+)\.(\w+)-->\s*<!--when\s+(.+)-->/", "<?php switch(\$$1->$2): case $3: ?>", $view_src);
$view_src = preg_replace("/<!--when\s+(.+)-->/", "<?php break; ?><?php case $1: ?>", $view_src);
$view_src = preg_replace("/<!--otherwise-->/", "<?php break; ?><?php default: ?>", $view_src);
$view_src = preg_replace("/<!--select-->/", "<?php endswitch; ?>", $view_src);
if (!file_exists(VIEW_PATH . $this->path)) mkdir(VIEW_PATH . $this->path, 0777, true);
$fp = fopen(VIEW_PATH . $this->full_name . EXT, 'w');
fwrite($fp, $view_src);
fclose($fp);
}
...
?>
view-src/ShadeType.php
{{type.name}}
<!--each k d in type.diameters-->
<h1>{{k}}</h1>
<!--each s in d-->
<div>
{{s.bottom}} × {{s.top}} × {{s.height}}
<div>
<!--select s.mode-->
<!--when 'u'-->(на ушках)
<!--when 'p'-->(только подвес)
<!--otherwise-->
<!--select-->
</div>
</div>
<!--each-->
<!--each-->
view/ShadeType.php
<?php echo $type->name; ?>
<?php foreach($type->diameters as $k => $d): ?>
<h1><?php echo $k; ?></h1>
<?php foreach($d as $s): ?>
<div>
<?php echo $s->bottom; ?> × <?php echo $s->top; ?> × <?php echo $s->height; ?>
<div>
<?php switch($s->mode): case 'u': ?>(на ушках)
<?php break; ?><?php case 'p': ?>(только подвес)
<?php break; ?><?php default: ?>
<?php endswitch; ?>
</div>
</div>
<?php endforeach; ?>
<?php endforeach; ?>
На хостинге PHP 5.2, а старые версии фреймворков не хочется. Решил запилить свой.
+2
Как избавиться от говнокода?
Вот есть большой проект в большой корпорации. Ты приходишь и видишь, что архитектура говно, комментариев нет, стиль кода различается в разных частях одного файла, да и в остальных мелочах полный говнокод.
С другой стороны, нужно добавить много разных фич и пофиксить баги, все программисты и ты тоже активно заняты этим, вы приделываете новые костыли и заплатки.
Как с этим бороться? Убеждать менеджера, что вам нужно несколько недель, а то и месяцев на полный рефакторинг всего? Заниматься этим в свободное время? Забить и говнокодить дальше? Уйти в другое место (не факт ведь, что там будет лучше)?
+2
public function generateRequestXml()
{
echo "Start generate request xml\n";
$dt = date("c");
$output = "";
$output .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$output .= "\t<request>\n";
$output .= "\t<requestTime>" . $dt . "</requestTime>\n";
$output .= "\t<operatorName>ИМЯ</operatorName>\n";
$output .= "\t<inn>98989898989</inn>\n";
$output .= "\t<ogrn>998545454545</ogrn>\n";
$output .= "\t<email>[email protected]</email>\n";
$output .= "</request>";
if (!file_put_contents(self::REQUEST_FILE, $output))
return false;
}
SimpleXMLElement? Не, не слышал
+2
-- Hehehe
typeGroups ll = (\(t, tt) -> printf "\n~~~~~~~~~~~~~~~\n%s\n~~~~~~~~~~~~~~~\n%s" t (show tt)) >>= (nub . map (_measInfoId &&&(snd .unzip . M.toList . _measTypes)) . (>>= _measInfo) . (>>= _measData)) $ (concat `fmap` mapM (\file -> runX $ readXml file >>> parseFile)) ll
скрипт, высранный в спешке для обработки данных в одной задаче перерос в утилиту
+2
<?
$key = crc32("release") ^ 0x817990;
$header_bg = '#' . substr(base_convert(crc32($DBName) ^ $key, 10, 16), 0, 6);
?>
<div id="top_header" style="background:<?= $header_bg ?>">
На доменах с похожими названиями живут продакшн и версии для разработки. Заказчик путается при тестировании, а потом разрабы удивляются тестовым данным в рабочей базе.
Вот так была реализована цветовая дифференциация штанов сайтов в зависимости от имени БД. Подобрать им имя базы, которое даст коллизию, что ли...
+2
(function ($) {
Drupal.behaviors.kdating = {
attach: function (context, setting) {
var links = $('#field-slideshow-1-pager').find('a');
links.colorbox({ rel: 'gal' });
$.each(links, function (index, value) {
var val = $(value);
var href = val.find('img').attr('src');
var path = href.split('/'),
newPath = path[0] + '//'
+ path[2] + '/'
+ path[3] + '/'
+ path[4] + '/'
+ path[5] + '/'
+ path[9];
val.attr('href', newPath);
});
}
};
})(jQuery);
Парсим ссылки вместе
+2
if ($this->getShowTemplateHints()) {
echo <<<HTML
<div style="position:relative; border:1px dotted red; margin:6px 2px; padding:18px 2px 2px 2px; zoom:1;">
<div style="position:absolute; left:0; top:0; padding:2px 5px; background:red; color:white; font:normal 11px Arial;
text-align:left !important; z-index:998;" onmouseover="this.style.zIndex='999'"
onmouseout="this.style.zIndex='998'" title="{$fileName}">{$fileName}</div>
HTML;
if (self::$_showTemplateHintsBlocks) {
$thisClass = get_class($this);
echo <<<HTML
<div style="position:absolute; right:0; top:0; padding:2px 5px; background:red; color:blue; font:normal 11px Arial;
text-align:left !important; z-index:998;" onmouseover="this.style.zIndex='999'" onmouseout="this.style.zIndex='998'"
title="{$thisClass}">{$thisClass}</div>
HTML;
}
}
Правильная реализация hover эффекта. Яркости для картины добавляет то, что это все написано в блоке MVC модели и понятное дело, на живом проекте.