ibash.org.ru - Новый цитатник Рунета

Форум: О PHP 1 2 3 > [RSS]

Форум: Вход Регистрация Участники Поиск RSS

Eldor
25.10.2009 - 23:52

Везде, млин, где тема про PHP, то обязательно обкоментируют "быдлокодеры поналетели", "О, freshmeat для быдлокодеров" и так далее.
Давным-давно на канале #unix меня опустили когда я задал вопрос о настройке одного параметра в квартете FreBSD Apache MySQL PHP, причем отмазывались гентушники говоря "не туда пришел". Когда я намекнул, что, мол, моя ось немного более к месту чем ихняя, то они отмазались генеральным "еще один...". На следующий вопрос "что же использовать" мне сказали Дебиан, PostgreSQL, руби и еще какой-то сервер. Подумать головой что хостинг с этим делом найти очень проблематично и о том, что возможностей MySQL для создания не слишком проблематичных сайтов, вполне хватает, они не подумали.

Это прелюдия, теперь вопрос: Считается ли быдлокодером любой кодер на ПХП? (учитывая что этот кодер умеет работать с 3я самыми популярными фреймворками, имеет свой под GPL, знает как правельно использовать MVC при продумывании архитектуры сайта, знает как правильно использовать в ООП другие шаблоны проектирования (singleton, prototype), понимает как работает сервер, и так далее. Все перечеслять не буду ибо это бесполезно. Но самое главное он _не_хочет_ терять время на изучение других языков в этой же области т.к. он потеряет время(=деньги), которое мог бы потратить на самосовершенствования себя в пхп и компании(css, javascript и тд)).

Aelita
#51 - 29.11.2009 - 21:13

Преподы и не так могут извращаться((((

stroncium
#52 - 30.11.2009 - 01:41

#50
А \s ыув не умеет?

stroncium
#53 - 30.11.2009 - 01:41

*sed

naryl
#54 - 30.11.2009 - 01:49

Умеет

$ sed 's/\s//g' -i file.txt

ffct
#55 - 30.11.2009 - 03:07

пхп тхе онли труе

naryl
#56 - 30.11.2009 - 03:15

Сгинь, еретик. Нет языков, кроме Лиспа.

ffct
#57 - 30.11.2009 - 03:42

(оо (лисп (слишком суров и)) апасен)
у меня моск до сих пор после лаб по нему сломан

3132
#58 - 30.11.2009 - 04:46

(оо (лисп слишком (и суров (fix-grammar (апасен))))
fxd

naryl
#59 - 30.11.2009 - 08:04

(оо (слишком лисп (и суров (fix-grammar (апасен)))))
fixed

Eldor
#60 - 30.11.2009 - 21:07

А вообще идите на!

Вдкъы
#61 - 01.12.2009 - 01:17

С ником Елдор я бы вообще побоялся писать в этих интернетах

Shock
#62 - 01.12.2009 - 04:03

Aelita, задание достаточно примитивное. Если ты собираешься в дальнейшем этим заниматся, то неплохо бы знать самой, как это всё сделать
http://pastebin.ru/308754

Shock
#63 - 01.12.2009 - 04:04

за вопросами — в Джаббер (у меня в личке)

stroncium
#64 - 01.12.2009 - 04:28

+1

Aelita
#65 - 01.12.2009 - 07:02

Не спорю, примитив, но когда учишься с 9.40 до 7.20 вечера просто физически не остается сил(

Aelita
#66 - 01.12.2009 - 07:04

Шок, а тебе спасибо огромное. Вопросы будут, но ближе к выходным. Сейчас надо с практикой разобраться.
Препод по пхп зверь - маленький неудачник, который докапывается до любой мелочи(((

Shock
#67 - 01.12.2009 - 07:16

Чуть не забыл сказать: с русским текстом может быть неожиданное поведение. Лучше проверить. Для win-1251 исправлений будет мало, при желании использовать utf-8 надо будет провести значительный рефакторинг=)

У меня учёба на стационаре, полная занятость на работе + военная кафедра, потому что такое загруз я преставляю =)

Незачто.

На выходных я в инете не сижу практически, потому при желании позадавать вопросы лучше успеть до вечера пятницы.

Shock
#68 - 01.12.2009 - 07:18

> Препод по пхп зверь - маленький неудачник, который докапывается до любой мелочи(((
пох. пхп я знаю очень хорошо. вопрос останется только в :
1. сколько работы мы с тобой проделаем
2. сможешь ли ты защитить свою работу
3. не завалит ли он тебя за то, что ты сделала слишком хорошо

Iwan
#69 - 02.12.2009 - 23:36

>>Shock

Съебывайся с военной кафедры. Причем чем быстрее, тем лучше. После военных сборов экзамен не сдать тебе уже не дадут. Да и военник после этого уже хрен купишь.

ZL[]RD
#70 - 03.12.2009 - 00:46

Ну хз, со мной щаз работает реальный чел, этим летом он закончил вуз с военкафом. И друг учится там же, ходит на "войну". В чем подвох?

Shock
#71 - 03.12.2009 - 04:52

Iwan , не понял=)
> экзамен не сдать тебе уже не дадут.
какой экзамен?

Iwan
#72 - 03.12.2009 - 20:58

В конце военки после сборов будет итоговый экзамен.

>>ZL[]RD

А хрен его знает, в чем подвох. Там переуд был, когда закон еще не приняли, а на военку уже поступили, без подписания контракта.... Может с этим связано.

Who Yak
#73 - 07.12.2009 - 04:40

Eldor, не дели я зыки на быдлокодерские и небыдлокодерские. Дели программеров. О php, раз уж спросил, - большинство проектов, реализуемых на этом языке не предусматривают высокой сложности и професионализма. Но это самый удобный инструмент для генерации html, а в сочетании с другими средствами, такими, как ajax может быть очень мощным средством для веб-разработки.
Для извращенцев также существуют библиотеки php-qt и php-gtk, позволяющие писать гуёвые оконные приложения на похапэ. Но php скриптовый язык и не стоит об этом забывать.

>Для веб-разработки я бы порекомендовал *посмотреть* Java, TCL, D, Perl
Разве что посмотреть, perl отбрось сразу, php удобнее, по соотношению скорость разработки/скорость работы perl не стоит изучения для применения в веб-разработке. D слишком громоздкий язык для паутины. TCL замечательный язык, но веб, это не его. Java, скорее подойдёт как дополнительный инструмент, дополняющий основные, но не заменяющий их.

От себя бы порекомендовал Ruby. Фреймворк он рейлс, применяется в веб-разработке, кроме того руби очень логичный и, не знаю как сказать, целостный, наверное, язык, изучение которого полезно для улучшения стиля программирования, хотя можешь smalltalk выучить с той же целью.

ЗЫ Я думаю, что не нужно уточнять, что всё вышеизложенное, относительно Java, TCL, D, Perl, является моим личным мнением и не претендует на абсолютную истинность? Был бы рад прочитать переубеждения (или хотя бы попытки).

naryl
#74 - 07.12.2009 - 04:48

Все решают фреймворки. Java я предложил *посмотреть* как уже устоявшуюся систему, а D и TCL (и, раз уж на то пошло Лиспы) имеют достаточно мощное метапрограммирование, чтобы на них можно было любой фреймворк сделать достаточно удобным. C и C++ для этого, конечно же, не подходят.

> TCL замечательный язык, но веб, это не его.
Сейчас не пишут, но я этому объективных причин не вижу.

Who Yak
#75 - 07.12.2009 - 05:00

>объективных причин не вижу
пхп по своей структуре является логичным продолжением хтмл, "Что думаю, то и пишу". Именно поэтому пхп является более удобным средством для веба. Кстати, на с++ есть библиотека wt для написания веб-приложений, но я считаю, что это такое же извращение, как пхп-кьют или пхп-гтк.

Aelita
#76 - 07.12.2009 - 06:51

"Что думаю, то и пишу"
Не дай бог мне думать так -
preg_match_all('([\w\d-]+)', $line, $m);

)))))))))))))))))

Who Yak
#77 - 07.12.2009 - 07:56

Я подразумевал объявление переменных и их типов в любом месте кода.

Shock
#78 - 08.12.2009 - 05:59

> Не дай бог мне думать так -
> preg_match_all('([\w\d-]+)', $line, $m);
а почему бы и нет? тут написано "найти все (match all) куски (+) содержащие только буквы, цифры и тире (\w\d-) в строке $line и занести их в переменную $m". Тут как раз "думаю то, что и пишу" ;)

naryl
#79 - 08.12.2009 - 06:08

Нет, это не думаю что пишу. Вот (более-менее) думаю что пишу:

find -all -re "[\w\d-]+" in $line put-result-in m
Найти все вхождения регулярного выражения "[\w\d-]+" в строке line и поместить их в m

Могу продемонстирировать реализацию на TCL ;)

naryl
#80 - 08.12.2009 - 08:34

http://paste.tclers.tk/1891
Использование - в последних трёх строках.

Кому интересно - просто сохраните в файл и запустите tclsh.

Shock
#81 - 08.12.2009 - 16:43

и столько кода городить для того, чтобы написать одну функцию? ты подстраиваешь язык под себя. я тоже со свой оо-либой на пхп могу написать что-то типа
$m = $line->findAll("/[\w\d-]+/");

но вопрос же ж в другом.

naryl
#82 - 08.12.2009 - 16:49

Логично. Суть Лиспов и TCL в подстраивании языка под задачу, а не подстраивании решения задачи под язык, как в, например, PHP или C++.
И $m = $line->findAll("/[\w\d-]+/"); выглядит ещё менее похожим на мысль, чем preg_match_all('([\w\d-]+)', $line, $m);.

Shock
#83 - 08.12.2009 - 16:59

я подстроил мысль под язык. ты подстроил язык под мысль подстроенную под язык. вопрос был в следующем: пхп позволяет писать так, как ты думаешь. Аелита сказала, не дай бог думать так: preg_match_all('([\w\d-]+)', $line, $m); Я объяснил эту фразу. Но строка $m = $line->findAll("/[\w\d-]+/"); звучит вообще как "м - это в строке лайн все буквы, цифры и тире", что есть вполне так, как думает человек.

если ты хочешь сказать, что TCL ­­— это язык, в котором пишешь, как думаешь, то неужели это ты называешь "пишешь как думаешь"? ;)
# for {set i 0} {$i < [llength $args]} {incr i} {
# switch [lindex $args $i] {
# -all {set all true}
# -re {set pat [lindex $args $i+1]; incr i}
# -in {set input [lindex $args $i+1]; incr i}
# -put-result-in {set resvar [lindex $args $i+1]; incr i}
# default {error "Unknown arg: [lindex $args $i]"}
# }
# }

naryl
#84 - 08.12.2009 - 17:15

> я подстроил мысль под язык. ты подстроил язык под мысль подстроенную под язык.
Да, но в моём случае язык и исходная мысль оказались намного ближе друг к другу.

> Но строка $m = $line->findAll("/[\w\d-]+/"); звучит вообще как "м - это в строке лайн все буквы, цифры и тире", что есть вполне так, как думает человек.
По моему это больше звучит как "$m равно $line, стремящемуся к результату вызова функции findAll с аргументом "[\w\d-]+"". Фигня какая-то, учитывая что раньше или позже $m скорее всего будет равно чему-нибудь совершенно другому. Все эти скобочки, стрелочки и знаки равно делают язык дальше от мысли и ближе к математике. Иногда это не проблема, но данная задача ничего общего с математикой не имеет.

> если ты хочешь сказать, что TCL — это язык, в котором пишешь, как думаешь, то неужели это ты называешь "пишешь как думаешь"? ;)
В данной задаче я пишу
find -all -re "[\w\d-]+" in $line put-result-in m
Остальное - детали реализации. Держу пари, реализация findAll на PHP будет не лучше.

naryl
#85 - 08.12.2009 - 17:18

На всякий случай уточню, что минусы можно и убрать:
find all instances-of-regexp "[\w\d-]+" in $line and-put-result-in m
:o)

Shock
#86 - 08.12.2009 - 17:33

в твоём подходе куча проблем

ты взял одну идею и готов сделать всё, чтобы написать её как тебе кажется понятно (а на самом деле — близко к возможной реализации на твоём любимом языке). например, почему ты не решил сделать строку такой:
find all letters and digits in $line put result in m , ведь вот это будет действительно "пишу то, что думаю". а потому что это не реализуется на твоём языке программирования

проблема два. для того, чтобы написать одну понятную фразу необходимо написать страницу непонятного кода. а эта фраза — всего лишь базовая операция языка. покажи, как она будет выглядеть без всего этого лишнего кода? потому что на пхп я тоже могу сделать так:

_("find all words in $line and put result in ", $m);

но на самом деле то это только "интерфейс" одного примитивного действия, а код за ним стоит (и должен быть написан) вполне непонятный.

проблема три. я за 15 секунд написал этот код, а ты его писал 15 минут

проблема четыре. любой более среднестатистический пхп-программист поймёт строку preg_match_all('([\w\d-]+)', $line, $m); , а вот за строку "find -all -re "[\w\d-]+" in $line put-result-in m" в рабочем коде ТПЛ проклянёт тебя каждый, кто будет этот код поддерживать, потому что чтобы понять, как оно работает ­— необходимо разбираться в исходниках?

реализация файнд-алл типа такой:
public function findAll ($re) {
preg_match_all ($this->str, $re, $matches);
return $matches;
}

naryl
#87 - 08.12.2009 - 17:53

> например, почему ты не решил сделать строку такой:
> find all letters and digits in $line put result in m
Потому что мне кажется лишним отказываться от регулярных выражений. Да и "find all letters and digits" судя по всему будет делать немного не то же, что и "find -all "[\w\d-]+""

> а потому что это не реализуется на твоём языке программирования
Реализуется. Но регулярные выражения в данном случае сделают код намного более понятным. Попробуй описать словами именно его, а не что-то похожее.

> а эта фраза — всего лишь базовая операция языка. покажи, как она будет выглядеть без всего этого лишнего кода?
set m [regexp -all -inline {[\w\d-]+} $line]

> проблема три. я за 15 секунд написал этот код, а ты его писал 15 минут
Посмотрим, за сколько ты напишешь "_("find all words in $line and put result in ", $m);"

> проблема четыре. любой более среднестатистический пхп-программист
Вот здесь нужно определиться для кого мы пишем. Для среднестатистического программиста или для постороннего человека?

> а вот за строку "find -all -re "[\w\d-]+" in $line put-result-in m" в рабочем коде ТПЛ проклянёт тебя каждый, кто будет этот код поддерживать, потому что чтобы понять, как оно работает — необходимо разбираться в исходниках?
Зачем понимать *как* оно работает? Чтобы понять что оно делает достаточно документации, но даже она в данном случае лишняя, т.к. вызов вполне самодокументированный.

Если нужно чтобы *для среднестатистического программиста*, немного знакомого с синтаксисом была понятна и реализация и место вызова, могу посоветовать Common Lisp. Там есть, например, поучительная функция loop:
(loop for x in '(a b c d e)
for y from 1

when (> y 1)
do (format t ", ")

do (format t "~A" x)
)
Кто, не заглядывая в документацию, угадает что сделает этот цикл? :)
Кроме Shock'а, который заинтересован в том, чтобы *не* угадать :D

Shock
#88 - 08.12.2009 - 18:06

ну да, тебе то как прогеру понятно. я вот не понял и понт в том, что я не пойму специально — не засчитан, потому что я действительно не понял кое-что, хотя и прогер. а менее опытные товарищи — вообще не поймут.
а в пхп будет вот так:

foreach (array('a', 'b', 'c', 'd', 'e') as $key => $value) {
if ($key) echo ',';
echo $value;
}

куда изящнее, чем в лиспе

Shock
#89 - 08.12.2009 - 18:07

следует учесть, что понял код лиспа я после консультации в Джаббере.

Aelita
#90 - 08.12.2009 - 18:12

пипец... шок, как только будет время - доберусь до твоих лаб... у меня с модулем проблемы, меня валят, т.к. что ща как-то не особо до этого((((

Shock
#91 - 08.12.2009 - 18:19

Aelita, так смешно сказала, словно я сказал только что: "Аелита, как ты могла до сих пор не добраться до моих лаб! Я оскорблён!". =))
Конечно, когда надо будет — тогда и используй =)

naryl
#92 - 08.12.2009 - 18:21

Теперь чуть более общий случай:
(loop for x in '(a b c d e)
for y in '(q w e r t)
for i from 1

when (> i 1)
do (format t "; ")

do (format t "~d: ~A, ~A" i x y)
)
-> 1: A, Q; 2: B, W; 3: C, E; 4: D, R; 5: E, T
;)

naryl
#93 - 08.12.2009 - 18:26

Посмотрим, на каком языке раньше придётся прибегнуть к костылям. :D

unikoid
#94 - 08.12.2009 - 18:27

>И $m = $line->findAll("/[\w\d-]+/"); выглядит ещё менее похожим на мысль, чем preg_match_all('([\w\d-]+)', $line, $m);
Лично мне кажется наоборот (единственное, что надо знать, что делает операция ->).
Да, если код на лиспе из №87 действительно эквивалентен коду на РНР из №88, то ЛИСП - нифига не простой и понятный язык.

naryl
#95 - 08.12.2009 - 18:30

> Да, если код на лиспе из №87 действительно эквивалентен коду на РНР из №88, то ЛИСП - нифига не простой и понятный язык.
Такое заключение может сделать только человек, имеющий одинаковый опыт в них. Насколько я знаю, таких на этом форуме нет.

Shock
#96 - 08.12.2009 - 18:31

[17:25:36] <Shock> что если разная длина?
[17:26:37] <naryl> лишние элементы более длинного списка

$a1 = array('a', 'b', 'c', 'd', 'e');
$a2 = array('q', 'w', 'e', 'r', 't');

foreach ($a1 as $k => $v) {
if (!isset($a2[$k])) break;
if ($k) echo ';';
echo '$k: $v, $a2[$k]';
}

но подобные соревнования — глупость. потому что это всё-равно, что ты заставляешь меня подстроить один язык под идеологию и подход другого. (тем не менее, пхп достаточно гибок, чтобы не подвести меня =)).

более того — я не понимаю вообще — в чём вопрос?

Shock
#97 - 08.12.2009 - 18:32

> Да, если код на лиспе из №87 действительно эквивалентен коду на РНР из №88
unikoid, эквивалентен.

> Такое заключение может сделать только человек, имеющий одинаковый опыт в них. Насколько я знаю, таких на этом форуме нет.
есть. это те, кто не знает ни лисп ни пхп =)

unikoid
#98 - 08.12.2009 - 18:36

>(loop for x in '(a b c d e)
for y from 1

when (> y 1)
do (format t ", ")

do (format t "~A" x)
)
Кто, не заглядывая в документацию, угадает что сделает этот цикл?

Я понял, что это высказывание было призвано показать, насколько Лисп - интуитивно понятный и простой язык и было ориентированно на людей не знакомых с Лиспом. Возможно, я неправильно понял.
>Такое заключение может сделать только человек, имеющий одинаковый опыт в них.
Пока опыт и в том и в другом одинаково равен нулю =)

naryl
#99 - 08.12.2009 - 18:40

> [17:26:37] <naryl> лишние элементы более длинного списка
* игнорируются

> но подобные соревнования — глупость. потому что это всё-равно, что ты заставляешь меня подстроить один язык под идеологию и подход другого.
Так предлагай свои циклы ;)

> более того — я не понимаю вообще — в чём вопрос?
#93

> if (!isset($a2[$k])) break;
Прощаю. Просто циклы в этих языках себя немного по разному ведут.

1. При первом взгляде не видна связь a2 с этим циклом. В foreach (...) его нет, потом он *внезапно* появляется где-то в теле цикла.
2. Насколько я понял, индексы будут начинаться от 0. У меня - от 1. Просто сделай так же. Потом предложи свою задачку. ;)

naryl
#100 - 08.12.2009 - 18:44

А что будет если a1 окажется длиннее? segfault? =)
К списку вопросовСтраницы: 1 2 3 >

Быстрый ответ
Имя:      Пароль:    
Текст сообщения:

«ibash.org.ru — Новый цитатник Рунета» Почта вебмастера: imail@ibash.org.ru