- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
$zak=$row['content'];
$ret=$ret.'<td>';
$p_ret=array();
$t_zak=explode('{',$zak);
$t_c=count($t_zak)-2;
//------------------------------------------
for($t_i=0;$t_i<$t_c;$t_i++){
$zak=$t_zak;
$zak=explode('}',$zak[$t_i+2]);
$zak=explode(';',$zak[0]);
$p_zak=array();
$c=(int)floor(count($zak)/2);
$c=(int)($c*2);
for($i=0;$i<$c;$i=$i+2){
$temp=explode(':',$zak[$i]);
$ind=str_replace('"','',$temp[count($temp)-1]);
$temp=explode(':',$zak[$i+1]);
$val=str_replace('"','',$temp[count($temp)-1]);
$p_zak[$ind]=$val;
}
$p_zak['id']=(int)$p_zak['id'];
//[count] => 3 [id] => 21 [name] => Стул [price] => 213454
$p_ret[]='<a href="[[~'.$p_zak['id'].']]">'.$p_zak['name'].'</a> '.$p_zak['count'].' шт.';
После модернизации одного из Интернет магазинов сломался личный кабинет ( MODX Revolution, Shopkeeper ).
Начал изучать и понял, что прошлый программист изобрел заново unserialize.
guest 14.06.2013 20:11 # +2
myaut 14.06.2013 23:49 # +3
Тут я полагаю, это медицинский термин, а не предмет мебели?
Rostov114 15.06.2013 01:33 # 0
И к магазину ни какого отношения не имеет.
myaut 15.06.2013 22:07 # +1
guest 15.06.2013 01:30 # +1
eth0 15.06.2013 21:43 # +1
Автор кода просто альтернативно одарённый, не обязательно мудак. Одна основная претензия - кодингстиль "вырвиглазный трындец".
Vizer 19.06.2013 17:56 # 0
bormand 19.06.2013 18:26 # 0
P.S. Пробелов еще не хватает перед скобками и между for'ами и скобками: P.P.S. И подчеркивания между однобуквенными словами в t_i и t_c бесят ;)
superhackkiller1997 19.06.2013 18:31 # +1
Хочется взять и поржать над питухом.
TarasB 19.06.2013 18:53 # 0
Фараоны пишут с лисповыми скобками:
superhackkiller1997 19.06.2013 19:19 # +1
А вообще и указатели не юзают только питухи. И не осилили нормально запятую тоже питхи. И питуш int* s_arr тоже питухи, ибо люди пишут int * s_arr, int *s_arr; на худой конец.
Вобщем код питушня, ах да, а ещё обрамление скобками тела из одной строки - питушня.
У меня такое чувство, что из вас, питухов, никто не осилил синтаксис и его семантику.
TarasB 19.06.2013 19:35 # 0
Зато пустых строк нету.
> Тогда уж пиши без переносов
Не, тут вся фишка в том, что заголовки и тела на разных строках. Если не смотреть на правый край, то код выглядит, как питоний. В этом есть своя красота.
> А вообще и указатели не юзают только питухи.
Скорее наоборот, указатели - это чисто сишная питушня. И они - главная проблема сишки по оптимизации.
> а ещё обрамление скобками тела из одной строки - питушня.
Это не питушня, это дальновидность.
superhackkiller1997 19.06.2013 19:57 # 0
Это строки не пустые - они делят блоки на подблоки.
>Не, тут вся фишка в том, что заголовки и тела на разных строках. Если не смотреть на правый край, то код выглядит, как питоний. В этом есть своя красота.
Для меня лисп и питон уродливая питушня.
>Скорее наоборот, указатели - это чисто сишная питушня.
Ок. Я гвоорю только о сишке.
>И они - главная проблема сишки по оптимизации.
Нет, не проблема. Просто подход у питух-оптимизаторов к питушне. Надо изначально всё затачивать над указатели, и писать так, чтобы не скрывать указатели в указателях за указателями под указателями.
TarasB 19.06.2013 20:21 # +1
superhackkiller1997 19.06.2013 20:36 # 0
Если ты хочешь идти дальше - то это уже ммапирование на уровне процессора и ручной кеш.
ДА нет никаких параметров в функции - запомни это. есть инлайн и регистры. Передаются только указатели с тоннами данных.
TarasB 19.06.2013 20:40 # +1
Правильно, но сишка не умеет передавать инты как inout, если я хочу написать функцию, которая будет менять инт, то я этот инт должен передавать ей по питухоуказателю, и после этого надеяться на милость компилятора.
superhackkiller1997 19.06.2013 20:50 # 0
Можешь возвращать структуру - гцц вернёт из функции 2-3регистра.
Вобщем вся ваша С++ питушня не нужна, ибо конпелятор умеет всё это делать сам.
TarasB 19.06.2013 20:56 # +1
Вот-вот
> но это тебе не паскаль - это гцц умеет.
Тем не менее то, что ради этого компилятору приходится корячиться - это серьёзный недостаток сишки. Идеология сишки - это быть как можно ближе к железу, а не писать питушню и молиться на оптимизации компилятора, а с передачей указателя и отсутствием inout именно это и происходит.
сравни:
void inc (int inout a) { ++a;}
как данные пришли в a, так они в том же a и вернутся, при этом чтобы сделать a синонимом какого-нибудь регистра, компилятору требуется намного меньше думать, чем для питухоуказателей.
superhackkiller1997 19.06.2013 21:56 # 0
void inc(int alias a) { ++a;}, либо void inc(int a) {++a;} bind(inc.a/inc::a, i); inc() - будет увеличивать i.
Поэтому в нормальных ЯП надо уходить от всяких-там автоматичесикх определялок и юзать inline void f();, а тупо void f(); и думать "а заинлайнит он или нет", так же для рекурсивных функций - юзать recusive или что-то типа этого.
В сишке над этим уже думают - всякие restrict и прочее.
Lure Of Chaos 19.06.2013 22:24 # 0
имхо, эти твои алиасы и бинды не нужны, указатели тут даже реализуют идею более ясно - в первом случае звездочка вместо ключевого слова, во втором - не надо ничего отдельно биндить
superhackkiller1997 20.06.2013 06:05 # +1
Алиас явно и чётко показывает идею - входящий елемент - есть алиас исходящего, как ссылка в путих С++. А с указателем ты такую фигню не сделаешь - только указатель на указатель.
Аналогов биндов вообще нет, кроме того, что я наваял в первой портянке. Либо юзать структуры и питухуказатели, но это слишком тормазная питушня.
Поэтому алиасы и указатели совершенно разные вещи, а бинды и кастыли со структурами - тоже разные вещи, ибо кастыли со структурами - питушня.
Lure Of Chaos 20.06.2013 08:55 # +2
TarasB 20.06.2013 09:36 # +2
И да, микрооптимизации хоть и грязная работа, но кто-то таки должен ими заниматься.
superhackkiller1997 20.06.2013 09:46 # +1
Сейчас плюсы неимеют никакого отношения к Сишке и тем плюсам, что были раньше, а мифы питушки до сих пор юзают. Да, относительно жабы у плюсов ещё есть перфоманс, ибо конпелятор намного сильнее жабаговна. Нет гц и всяких питушней и стл пишут сишники, а её оптимизации заложены в конпелятор.
Т.е. конпелятор просто научили идеально понимать и оптимизировать стл-портянки, и то в давольно простых случаях.
Реально слить плюсы может любой ЯП с нормальным кодогеной и идеологией запила близкой к железу.
LispGovno 20.06.2013 13:06 # 0
> адский код скомпилировался оптимальнее крестового
Зашли ссылку? Ада оптимальнее сишечки?
bormand 20.06.2013 13:31 # +2
Ну где-то в недрах ГК есть и тред, в котором прога на хаскеле порвала сишную по всем параметрам ;) Но это все-таки не от того, что хаскель оказался так крут, это просто сишный алгоритм был туповат...
superhackkiller1997 20.06.2013 09:55 # 0
Писать касты на 20строк, вместо кастой в систайле - тебе тоже не лень. Писать классы на сотни строк ради того, чтобы прибиндить к функциям пару параметров. Это всё дешевле человеческого времени, а вот:
Писать inline, alias(оба слова пишутся за секунда) - это дорого. С учётом того, что нормальный человек пишет 400-500символов в минуту - это строк 50 в минуту - это 3к строк в час - это 10+к строк за смену. Но реально из анскильных питухов пишет за еду ну тысячу строк в день - это максимум и то это невероятно. Реально сотня-другаяа.
И ты пологаешь, что твой перфоманс( которого у заедушных питухов нет и их время ничего не стоит, ибо они делат то, что ничего не стоит) ограничен словом alias? И это тратит твоё время?
Это тоже самое, что говорить, что слова тратят твоё время - вон ты же написал "наносекунды", почему не нс? Ко-ко-ко.
Какие нахрен человекодни. 95% питухов бесполезны и я клал на их человекодни, ибо они бездарные рабы. Написание кода у нормального человека не ограничено производительностью его печати.
inkanus-gray 20.06.2013 10:09 # 0
superhackkiller1997 20.06.2013 12:52 # 0
Для анскильных питухов инлайн - оптимизация, как для анскильных питухов оптимизация выражений - лишь оптимизация. Для пацанов - это кодогинератор, а для питухов - для питухов всё птихи, ибо они анскильны тотально.
LispGovno 20.06.2013 13:10 # 0
Можно поподробнее? Это не сишный стандарт, а гнутое расширение? Что делает?
superhackkiller1997 20.06.2013 13:32 # −1
Это если не уходить от того, что аргумент в функции - копия. Можной уйти и ввести слово copy void f(int copy i) { ++i;} - эта функция не будет иметь смысла, а void f(int i) { ++i;} - тубет иметь смысл.
И т.п.
LispGovno 20.06.2013 16:04 # +4
Блин, походивши на говнокод, я уже начинаю сомневаться, что это не правильно. Скоро буду даже питушки писать вместо петушков.
TarasB 20.06.2013 09:33 # +2
inkanus-gray 20.06.2013 10:15 # +1
Сишники возмутятся, вспомнив, что у них есть амперсанд. Однако, это такой же синтаксический сахар, как слово var в Паскале: тоже передаётся указатель, только явно указывать разыменование его в теле функции не надо, поскольку компилятор это сделает за программиста.
Итого: передачи по значению в обратную сторону ни в Си, ни в Паскале нет.
bormand 20.06.2013 10:18 # +1
Ну в сишке структура в ретурне может оптимизнуться в нечто подобное. А вот в паскале насколько помню запись вернуть нельзя.
inkanus-gray 20.06.2013 10:27 # 0
В ISO 7185 ограничений на типы возвращаемых значений я не нашёл.
TarasB 20.06.2013 10:19 # 0
Это уже особенность реализации. А кто берёт указатели на var-параметры, тот сам себе виноват.
anonimb84a2f6fd141 21.06.2013 03:47 # −5
Lure Of Chaos 19.06.2013 21:15 # 0
вот здесь даже соглашусь.