- 1
- 2
- 3
- 4
- 5
- 6
- 7
self.values.each do |v|
if v.is_a? Hash
v.recursively_symbolize_keys!
elsif v.is_a? Array
v.recursively_symbolize_keys!
end
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−108
self.values.each do |v|
if v.is_a? Hash
v.recursively_symbolize_keys!
elsif v.is_a? Array
v.recursively_symbolize_keys!
end
end
Замечательная логика из одного сниппета :)
+150
/* That revolting regular expression explained
/^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
\---/ \---/\-------------/ \-------/
| | | |
| | | The value
| | ~,|,^,$,* or =
| Attribute
Tag
*/
Это НЕ говонокод, просто коммент к регулярке, просто очень понравился и хотел показать...
Иногда регулярки очен запутанами бывает, и редактировать их турдно без нормальной комментов.
Нашел в shop-script
+151
char line[10];
cout<<"Press any key to exit"<<endl;
cin.getline(line,9);
Очередной перл из решений кандидатских задач.
Видимо в военное время количество символов, генерируемых одной клавишей, может достигать 9. :)
+129
#include <iostream>
#include <windows.h>
#include <pthread.h>
void * func_MyThread(void * args)
{
int S=0; //
int i;
int j;
int k;
pthread_t MyThread;
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (i=1; i <=8; i++)//
pthread_join(MyThread,NULL);
{
S +=i+1; //
}
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (j=4; j <=12; j++)//
pthread_join(MyThread,NULL);
{
S+=j; //
}
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (k=5; k<=20; k++)
pthread_join(MyThread,NULL);
{
S += k*(2*k-1);
}
{
std::cout <<"S= \t" <<S; //
return 0;//
}
студент решал задачу по распределенному программированию.
все очень серьезно.
+154
// $curr_page - старница, на который сейчас находимся
// $n_page - число страниц
// $count - обще число записей
// $param - site - страницы на сайте
// - adm - в админке
function genNumPage($curr_page, $n_page, $count, $param=null) {
$string = parse_url($_SERVER['REQUEST_URI']);
$query = '?'.$string['query'];
$num_page = ceil($count / $n_page);
if (isset($param)) $table = new my_Page("site/site_interface.html", "num_page");
else $table = new my_Page("interface/interface.html", "num_page");
if ($num_page < 2) return null;
for ($i = 1; $i <= $num_page; $i++) {
if ($i != $curr_page) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $href = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.$i, $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $href = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.$i, $query);
elseif ($string['query'] != '') $href = '?'.$string['query'].'&p='.$i;
else $href = '?p='.$i;
if ((!$param) || ($param == 'adm')) $str .= " <a href=".$string['host'].$string['path'].$href.">".$i."</a> ";
else $str .= " <a href=".$string['host'].$string['path'].$href.">".$i."</a> | ";
}
elseif ((!$param) || ($param == 'adm')) $str .= "<span>".$i."</span>";
else $str .= "<span>".$i."</span> | ";
}
if ($curr_page > 1) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $prev = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.($curr_page - 1), $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $prev = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.($curr_page - 1), $query);
elseif ($string['query'] != '') $prev = '?'.$string['query'].'&p='.($curr_page - 1);
else $prev = '?p='.($curr_page - 1);;
if ((!$param) || ($param == 'adm')) $prev = " <a href=".$string['host'].$string['path'].$prev." id=\"PrevLink\">←</a> ";
else $prev = " <a href=".$string['host'].$string['path'].$prev." id=\"PrevLink\">Предыдущая</a> ";
}
if ($curr_page < $num_page) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $next = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.($curr_page + 1), $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $next = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.($curr_page + 1), $query);
elseif ($string['query'] != '') $next = '?'.$string['query'].'&p='.($curr_page + 1);
else $next = '?p='.($curr_page + 1);;
if ((!$param) || ($param == 'adm')) $next = " <a href=".$string['host'].$string['path'].$next." id=\"NextLink\">→</a> ";
else $next = " <a href=".$string['host'].$string['path'].$next." id=\"NextLink\">Следующая</a> ";
}
$table->addValueArray(array(
"NUM" => $str,
"PREV" => $prev,
"NEXT" => $next
));
return $table->myReplace();
}
Генерирует номера страниц. Из одной CMS'ки.
+144
public class ВсеБудетХорошо : Exception
{
public ВсеБудетХорошо()
{
throw new ВсеБудетХорошо();
}
}
throw new ВсеБудетХорошо();
+161
function ss ($id){ // получить дату рождения по ИНН для украины
$result = array();
//sex
$result['sex'] = (substr($id,8,1) % 2) ? 'M' : 'F';
//birthdate
$days = substr($id,0,5);
$year = 1900; $day = 01; $month = 01;
while ($days > 0)
{
$daysInYear = (checkdate (02, 29, $year)) ? 366 : 365;
if ($days > $daysInYear)
{
$days -= $daysInYear;
$year ++;
}
else{
for ($daysInMonth = 31; !checkdate($month, $daysInMonth, $year); $daysInMonth–) ;
if ($days > $daysInMonth)
{
$days -= $daysInMonth;
$month ++;
}
else{
$day = $days;
$days = 0;
}
}
}
$result['year'] = $year;
$result['month'] = $month;
$result['day'] = $day;
return $result;
}
обходить каждый день начиная с 1900 это сила
быстрее было бы
$inn = '2322222222';
$inn = substr($inn,0,5);
$normal_date = date("d.m.Y", strtotime('01/01/1900 + ' . $inn . ' days - 1 days'));
+144
// Строк 50 кода
<style>
switch ($view_mod)
{
default :
echo ('
// Здесь для элементов разметки стили выводятся
');
break;
2 :
echo ('
// Соответственно здесь
');
break;
3 :
echo ('
// И здесь
');
break;
}
</style>
// Еще строк 250 кода
if (!isset ($color_theme)) then
{
$color_theme=$def_color_theme;
}
В универе учат в основном Delphi, решил, что надо самостоятельно хорошо изучить что-нить еще. Решил попробовать PHP и непривычно постоянно с одного языка на другой перескакивать. Блин, eб@нулся, пока нашел ошибки on lines: 18, 26 и 44...
−128
CREATE TABLE IF NOT EXISTS `ls_user` (
`user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_login` varchar(30) NOT NULL,
`user_password` varchar(50) NOT NULL,
`user_mail` varchar(50) NOT NULL,
`user_skill` float(9,3) unsigned NOT NULL DEFAULT '0.000',
`user_date_register` datetime NOT NULL,
`user_date_activate` datetime DEFAULT NULL,
`user_date_comment_last` datetime DEFAULT NULL,
`user_ip_register` varchar(20) NOT NULL,
`user_rating` float(9,3) NOT NULL DEFAULT '0.000',
`user_count_vote` int(11) unsigned NOT NULL DEFAULT '0',
`user_activate` tinyint(1) unsigned NOT NULL DEFAULT '0',
`user_activate_key` varchar(32) DEFAULT NULL,
`user_profile_name` varchar(50) DEFAULT NULL,
`user_profile_sex` enum('man','woman','other') NOT NULL DEFAULT 'other',
`user_profile_country` varchar(30) DEFAULT NULL,
`user_profile_region` varchar(30) DEFAULT NULL,
`user_profile_city` varchar(30) DEFAULT NULL,
`user_profile_birthday` datetime DEFAULT NULL,
`user_profile_site` varchar(200) DEFAULT NULL,
`user_profile_site_name` varchar(50) DEFAULT NULL,
`user_profile_icq` bigint(20) unsigned DEFAULT NULL,
`user_profile_about` text,
`user_profile_date` datetime DEFAULT NULL,
`user_profile_avatar` varchar(250) DEFAULT NULL,
`user_profile_foto` varchar(250) DEFAULT NULL,
`user_settings_notice_new_topic` tinyint(1) NOT NULL DEFAULT '1',
`user_settings_notice_new_comment` tinyint(1) NOT NULL DEFAULT '1',
`user_settings_notice_new_talk` tinyint(1) NOT NULL DEFAULT '1',
`user_settings_notice_reply_comment` tinyint(1) NOT NULL DEFAULT '1',
`user_settings_notice_new_friend` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_login` (`user_login`),
UNIQUE KEY `user_mail` (`user_mail`),
KEY `user_activate_key` (`user_activate_key`),
KEY `user_activate` (`user_activate`),
KEY `user_rating` (`user_rating`),
KEY `user_profile_sex` (`user_profile_sex`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[/code]
очень актуально смотрится эта таблица с приведённой выше. очень умно сделать таблицу "топик-стартер" и не выделить отдельно профиль пользователя. что чаще используется в выборке? =)
про миллионы пользователей и лайвстрит - не смешите, не верю (с)
загнётся до прихода в БД
дополнение к http://govnokod.ru/4203
выделил отдельным гауно-кодом из-за того, что комично смотрится вместе с указанной выше таблицей. ну и ограничение длины комментов есть. ярые искатели оптимизаций видимо идут мимо. очень актуально смотрится эта таблица с приведённой выше. очень умно сделать таблицу админов в один колумн и не выделить отдельно профиль пользователя. что чаще используется в выборке? =)
−83
#Access Point: MTS Internet GPRS
import gprsd
#импортируем класс GPRS-демона
import socket
import thread
import math
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
gs = gprsd.getConn()
#сокет с телефоном
ga = gprsd.getConnAddr()
#конечный адрес
s.connect(ga);
def thread_1():
global gs, s;
while 1:
for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
#выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
tmp = s.recv(8);
gs.send(tmp);
if tmp<8:
break;
def thread_2():
global gs, s;
while 1:
for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
#выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
tmp = gs.recv(8);
s.send(tmp);
if tmp<8:
break;
thread.start_new_thread(thread_1, ());
thread.start_new_thread(thread_2, ());
Скрипт МТС'ного инета