Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

базовая литература по программированию

1635  1 2 3 4 5 6 7 8 9 10 все
Tomasson посетитель30.08.06 16:32
Tomasson
30.08.06 16:32 
Последний раз изменено 04.09.06 13:39 (Tomasson)
меня на днях спросили, могу ли я подсказать какие-то курсы по программированию.
Ответил, что я - самоучка и никакие курсы не посещал.
Посоветовал научиться программированию по книгам.
И вот возник вопрос: реально ли составить некий базовый список литературы для людей, которые хотят научиться программировать? Я исхожу из того, человеку программирование нужно как хобби и/или для каких-то своих проэктов (например, свой сайт или какие-то небольшие программки), а не как основная профессия (посмотрите на Murr'a и быстро передумайте;-))
У кого какие будут думки на этот счет?
Хотелось бы иметь именно базовый список, дабы не дать человеку утонуть в океане книг :-)
C++
--- Andrew Koenig *Intensivkurs C++. Schneller Einstieg über die Standardbibliothek* (http://www.amazon.de/Intensivkurs-Schneller-Einstieg-%fcber-Standardbibliothek/d...)
--- Heiko Kalista *C++ für Spieleprogrammierer* (http://www.amazon.de/C%2b%2b-f%fcr-Spieleprogrammierer-Heiko-Kalista/dp/34464033...)
Java
--- Christian Ullenboom *Java ist auch eine Insel* (http://www.galileocomputing.de/openbook/javainsel5/)
--- Guido Krüger *Handbuch der Java-Programmierung* (http://www.javabuch.de/)
C#
PHP
--- George Schlossnagle *Professionelle PHP 5-Programmierung* (http://www.amazon.de/Professionelle-5-Programmierung-Entwicklerleitfaden-gro%dfe...)
--- Котеров, Костарев *PHP 5. В подлиннике* (http://www.bhv.ru/books/book.php?id=6643)
--- Котеров *Самоучитель PHP 4* (http://www.zipsites.ru/books/php4/)
HTML
Javascript
XML
XSLT
--- Michael Fitzgerald *Learning XSLT* (http://www.amazon.com/Learning-XSLT-Michael-Fitzgerald/dp/0596003277)
--- Sal Mangano *XSLT Cookbook* (http://www.amazon.com/XSLT-Cookbook-Second-Cookbooks-OReilly/dp/0596009747)
--- Michael Kay *XSLT 2.0 Programmer's Reference* (http://www.amazon.com/XSLT-2-0-Programmers-Reference-Programmer/dp/0764569090)
#1 
  scorpi_ скептик30.08.06 17:11
NEW 30.08.06 17:11 
в ответ Tomasson 30.08.06 16:32
Смотря какому языку. Для С++ я тебе любой список выдам.
#2 
Tomasson посетитель30.08.06 18:53
Tomasson
NEW 30.08.06 18:53 
в ответ scorpi_ 30.08.06 17:11
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.
Для веба PHP хватит с ушами, а для программок каких-то - Java, C#.
...вот...
предлагаю на этих языках сконцентрироваться :-)
Интересует еще литература, которая поможет новичку понять ООП. Меня несколько раз спрашивали, но я так ничего и не вспомнил подходящего.
Особенно ПХПэшники интересуются этим, которые хотят ООП в своих проектах использовать. Замучали уже :-)
#3 
Simple Nothing is f*cked30.08.06 19:29
Simple
NEW 30.08.06 19:29 
в ответ Tomasson 30.08.06 18:53
> думаешь, имеет смысл новичку сразу С++ подсовывать? Я б не стал.
Почему это? Да, непросто, зато потом что угодно сможешь понять ;)
#4 
  scorpi_ скептик30.08.06 19:46
NEW 30.08.06 19:46 
в ответ Tomasson 30.08.06 18:53
А чем собственно базисный уровень С++ сложнее других?
А скриптовые языки я бы для начала точно не посоветовал - сделает опечатку, и будет смотреть как баран на новые ворота. Пусть уж лучше для начала компилятор по носу даёт.
#5 
Murr коренной житель30.08.06 20:12
Murr
NEW 30.08.06 20:12 
в ответ Tomasson 30.08.06 16:32
(посмотрите на Murr'a и быстро передумайте;-))
------
И что же ты имел в виду? Муррка с виду очень даже ничего... Белая, пушистенькая...
А что царапается - так на то и Котяшество, что бы царапки осталять...
Что до списка... Тут в первую очередь надо определиться с областью применения.
В общем случае надо начинать с чето-то, что даст четкое понимание различия между
данными, их обработкой и при этом будет ООП-базирующееся. Дать это на ПХП... хммм...
думаю, что практически невозможно - слишком много сторонних моментов для новичка,
особенно, при самостоятельном изучении.
Что до курсов - вчера мне тоже запостили этот вопрос. Порекомендовал... начальные
курсы по Ораклу - там как раз на год по времени и дают неплохо. Правда стоит это
удовольствие дороговато - 10.000...
А если без шуток, то нужно достаточно профессиональное введение в программирование.
При том тренаже, который я проводил, это занимало порядка трех месяцев и из группы в
14-15 человек в нормальном темпе информацию могли освоить 5-6 человек... при том, что
полные дубы отсеивались до начала тренажа.
Так что если у кого есть желание самостоятельно учиться по книжкам и достичь хоть
сколь-нибудь существенного уровня - готовьтесь к тому, что вы будете каждый божий
день читать какую-то новую литературу и пробовать что-то делать в течениии лет этак пяти...
По прошествии этого времени - сможете что-то делать... но чтобы продолжать мочь это
делать, будете полностью переучиваться, в том же или чуть большем объеме, что освоите
за первые пять лет, - каждые три года...
Так что - думайте, не зря Tomasson разделил на профи и любителей...
#6 
Murr коренной житель30.08.06 20:25
Murr
NEW 30.08.06 20:25 
в ответ scorpi_ 30.08.06 19:46
Я об том же. ПХП для (само)обучения непригоден. С++ - нормально, но нужны задачи, которые можно реально считать, а не заморачиваться на проблемах GUI. Плюс, все же нужно систематизированное введение с контролем на каждом этапе... иначе - долго...
#7 
voxel3d коренной житель30.08.06 22:14
voxel3d
NEW 30.08.06 22:14 
в ответ Simple 30.08.06 19:29
> Почему это? Да, непросто, зато потом что угодно сможешь понять ;)
Ты ошибаешься.
Dropbox - средство синхронизации и бэкапа файлов.
#8 
Simple Nothing is f*cked30.08.06 23:06
Simple
NEW 30.08.06 23:06 
в ответ voxel3d 30.08.06 22:14
Я не ошибаюсь.
#9 
voxel3d коренной житель30.08.06 23:16
voxel3d
NEW 30.08.06 23:16 
в ответ Simple 30.08.06 23:06, Последний раз изменено 30.08.06 23:20 (voxel3d)
Объясни мне монаду Cont Хаскеля.
http://www.nomaware.com/monads/html/contmonad.html
Dropbox - средство синхронизации и бэкапа файлов.
#10 
  scorpi_ скептик30.08.06 23:40
NEW 30.08.06 23:40 
в ответ voxel3d 30.08.06 23:16
так я и думал, что сейчас что-нибудь функциональное объявится!
Мы тут о новичках говорим, а ты с Хаскелем
#11 
voxel3d коренной житель31.08.06 00:10
voxel3d
NEW 31.08.06 00:10 
в ответ scorpi_ 30.08.06 23:40, Последний раз изменено 31.08.06 00:20 (voxel3d)
Не, про новичков я не влезаю, я затрудняюсь вообще что-либо там сказать, т.к. начинаю думать, что потерял очень много времени начиная с императивщины и теперь вынужден и математику изучать и менять образ мышления, но, посколько, я пока не продвинулся особо в функциональщине, то не в состоянии оспорить ваш диалог и высказать мегамысль, что новичков надо сначала математикой пичкать. Но утверждение Симпла о том, что С++ это самое сложное и после него раз плюнуть изучить что-то другое, я, думаю, смогу оспорить, фактически я сам так думал, пока моя экс супруга начав учится в местном уни не попросила меня помочь ей разобраться с SML. В общем, я сел в лужу тогда. С++ помог однажды только легко осилить яву и иже с ней, типа всякого мусора наподобие PHP, но не больше. Самые простые вещи из мира функциональщины вызывали у меня полнейший тормозизм.
function create(k) {
var arr = [];
for (var j=1; j<k; j++) {
arr[j] = function(n) {
return function() { alert(n*n) }
}(j);
}
return arr;
}


Простое двойное замыкание (JavaScript), но после С++ я никак не мог понять его...

Dropbox - средство синхронизации и бэкапа файлов.
#12 
  scorpi_ скептик31.08.06 00:33
NEW 31.08.06 00:33 
в ответ voxel3d 31.08.06 00:10
То что фукциональщина сложнее для понимания это ясно. Мне собственно непонятно одно - зачем тебе продвигаться в функциональщине? Я честно говоря с самой первой секунды и по сей день думаю, что это чистейшей воды извращение... shuffle В профессиональном смысле это вроде тоже довольно таки бесполезная вещь. Чистый интерес? Желание поломать голову?
ЗЫ Классная цитата: "Abuse of the Continuation monad can produce code that is impossible to understand and maintain." Только abuse даже излишне, достаточно просто use...
#13 
voxel3d коренной житель31.08.06 01:07
voxel3d
NEW 31.08.06 01:07 
в ответ scorpi_ 31.08.06 00:33
Началось вс╦ с STL. Я сразу проникся ей, как только она мне на глаза попалась и стал использовать е╦. И понял, что такую красивую систему я не смог бы придумать. Я имею в виду не то чтобы я не смог библиотеку контейнеров или алгоритмов написать, вовсе нет, мог и писал, но, вот, чтобы гармонично библиотека контейнеров с библиотекой алгоритмов ужилась, такого, неа. Я не смог бы прослойку в виде функциональных объектов, адаптеров, отрицателей, предикатов и прочего придумать.
Я бы не стал говорить, что в профессинальном смысле, это бесполезная вещь. Ты пользуешься и STL и Boost, там хренова туча взятого из функциональщины. Сигналы со слотами, функционалы, лямбды и прочее вс╦ оттуда и вс╦ находит применение сокращая объ╦м работы.
Я верю в то, что изучение функциональщины улучшит мо╦ программирование, вот и вс╦. Насколько подходяща функциональная парадигма, чтобы полностью заменить собой императивное программирование, я пока не знаю, но собираюсь это выяснить. Пока осознал, что функциональщина позволяет иметь полноценное ООП в тех языках, где его как такового и нет, например, в том же JavaScript. Несмотря на наличие наследования прототипов, инкапсуляции как таковой нет, но с помощью тех же замыканий, у "классов" легко реализуются приватные поля.
> Abuse of the Continuation monad can produce code that is impossible to understand and maintain.
А теперь замени "Continuation monad" на "C++ templates" и утверждение не потеряет истинность.
Dropbox - средство синхронизации и бэкапа файлов.
#14 
  scorpi_ скептик31.08.06 01:36
NEW 31.08.06 01:36 
в ответ voxel3d 31.08.06 01:07
А теперь замени "Continuation monad" на "C++ templates" и утверждение не потеряет истинность.
Мне всегда казалось, что шаблоны очень простая для понимания вещь... Тут уж точно abuse нужен.
С остальным можно пожалуй согласиться.
#15 
  scorpi_ скептик31.08.06 01:45
NEW 31.08.06 01:45 
в ответ Tomasson 30.08.06 18:53, Последний раз изменено 31.08.06 01:46 (scorpi_)
Для веба PHP хватит с ушами, а для программок каких-то - Java, C#.
...вот...
предлагаю на этих языках сконцентрироваться :-)

Для PHP я могу рекомендовать http://www.amazon.de/Professionelle-PHP-5-Programmierung-Entwicklerleitfaden-f%f..., но это уже для продвинутых. Для начального уровня мне кажется нет ничего лучше чем http://www.php.net/manual/de/.
По С# я не специалист. А по Java я честно говоря хороших книг не видел. Вообще.
#16 
voxel3d коренной житель31.08.06 01:53
voxel3d
NEW 31.08.06 01:53 
в ответ scorpi_ 31.08.06 00:33
По-поводу извращений, это очень спорный вопрос. Вот, скажи, что является бОльшим извращением, запись вида:
typedef void (*SIG_TYP)(int);
typedef void (*SIG_ARG_TYP)(int);
SIG_TYP signal(int, SIG_ARG_TYP);

или

signal: int * (int -> void) -> (int -> void)

По мне, так первое. Могу целую кучу синтаксического сахара привести и ответного ужаса. Но дело не в ситаксисе самом, дело в логичности и стройности мышления, которое присуще математике и которое напрямую выражается в функциональщине.

Dropbox - средство синхронизации и бэкапа файлов.
#17 
voxel3d коренной житель31.08.06 02:16
voxel3d
NEW 31.08.06 02:16 
в ответ scorpi_ 31.08.06 01:36
> Мне всегда казалось, что шаблоны очень простая для понимания вещь..
Я думаю, с тобой не согласится очень много людей.
Мне любопытно кто-нибудь расскажет что это, зачем это и как работает, только не подсказывай :) :
template<bool> struct XXXXX;
template<> struct XXXXX<true> {};

На самом деле пример очень неудачный, оно на самом деле очень просто для понимания.

Dropbox - средство синхронизации и бэкапа файлов.
#18 
  scorpi_ скептик31.08.06 10:29
NEW 31.08.06 10:29 
в ответ voxel3d 31.08.06 02:16
Пример действительно неудачный. Шаблоны вводятся в первую очередь для type-safe замены макросов и имплементации контейнеров. Отсюда и будем плясать:
template<class T> inline
const T& max( const T& left, const T& right )
{
return left < right ? right : left;
}

Я думаю это действительно несложно.
По поводу указателей на функции - да, в С их синтакс действительно очень неудобен и сложен, но твой противопример не более интуитивен.
ЗЫ Leider keine Zeit für weitere Diskussionen - уехал в Хаген.

#19 
Simple Nothing is f*cked31.08.06 11:12
Simple
NEW 31.08.06 11:12 
в ответ voxel3d 30.08.06 23:16
scorpi_ уже, собственно, все сказал, мне добавить нечего. Функциональные языки тут не пришей кобыле хвост.
Я уже по-моему писал, что имел удовольствие заниматься функциональными языками (lisp и scheme), так что смог бы объяснить, если бы мне не было так лень. Признаю, естественно, что знание С++ мне в этом не поможет.
#20 
voxel3d коренной житель31.08.06 11:37
voxel3d
NEW 31.08.06 11:37 
в ответ Simple 31.08.06 11:12, Последний раз изменено 31.08.06 12:08 (voxel3d)
> scorpi_ уже, собственно, все сказал, мне добавить нечего.
Ты по диагонали что ли тред прочитал?
> Функциональные языки тут не пришей кобыле хвост.
Где "тут"? Я уже сказал, что мой комментарий относится только к твоей реплике про крутость знаний С++.
> так что смог бы объяснить, если бы мне не было так лень
Ну, censored, просто. Нету слов. Если ты не заметил, я не стал ни смайликов ставить в том посте, ни ехидно высказываться, чтобы ты не подумал, что это подколка. Показывать, как тебе лень, мне не надо, я тут не ересь пишу от незнания и ламеризма. Если ты в состоянии объяснить, объясняй, если нет, то так и скажи.
Dropbox - средство синхронизации и бэкапа файлов.
#21 
Simple Nothing is f*cked31.08.06 11:49
Simple
NEW 31.08.06 11:49 
в ответ voxel3d 31.08.06 11:37
> Ты по диагонали что ли тред прочитал?
Нет, сверху донизу.
> Где "тут"? Я уже сказал, что мой комментарий относится только к твоей реплике про крутость знаний С++.
А моя реплика - в контексте ветки.
> Если ты не заметил, я не стал ни смайликов ставить в том посте, ни ехидно высказываться, чтобы ты не подумал, что это подколка. Показывать, как тебе лень, мне не надо, я тут не ересь пишу от незнания и ламеризма. Если ты в состоянии объяснить, объясняй, если нет, то так и скажи.
Я как раз думаю, что это именно подъ...бка.
Нет, я не в состоянии объяснить это на данный момент. Удовлетворен?
#22 
voxel3d коренной житель31.08.06 11:56
voxel3d
NEW 31.08.06 11:56 
в ответ Simple 31.08.06 11:49
> Я как раз думаю, что это именно подъ...бка.
Нет. Я показал, что трудно для понимания после императивщины.
Dropbox - средство синхронизации и бэкапа файлов.
#23 
Simple Nothing is f*cked31.08.06 12:02
Simple
NEW 31.08.06 12:02 
в ответ voxel3d 31.08.06 11:56
Но я же с этим не спорил. Похоже, что ты читаешь по диагонали - я ведь уже написал, что знаком с функциональными языками.
#24 
voxel3d коренной житель31.08.06 12:21
voxel3d
NEW 31.08.06 12:21 
в ответ Simple 31.08.06 12:02, Последний раз изменено 31.08.06 12:22 (voxel3d)
Блин, Симпл, ты сказал, что после С++ "потом что угодно сможешь понять"? Сказал. Это утверждение было сказанно с целью показать, что С++ помогает понять другие языки программирования? Было. Я тебе сказал, что ты ошибаешься, а ты начал с этим спорить.
Теперь ты начинаешь уводить всё в сторону, к тому же ещё и обзывая лисп со схемой функциональными языками, что совсем неправильно. Если тебе С++ поможет моноиды в математике понимать, то я снимаю шляпу перед твоей гениальностью. Я не понимаю, зачем спорить, если ты не зная сейчас монад Хаскеля и зная что ты всё равно не будешь их изучать просто ради спора со мной доказывать, что белое это чёрное, а чёрное это белое.
Dropbox - средство синхронизации и бэкапа файлов.
#25 
Simple Nothing is f*cked31.08.06 13:24
Simple
NEW 31.08.06 13:24 
в ответ voxel3d 31.08.06 12:21
> Блин, Симпл, ты сказал, что после С++ "потом что угодно сможешь понять"? Сказал. Это утверждение было сказанно с целью показать,
> что С++ помогает понять другие языки программирования? Было. Я тебе сказал, что ты ошибаешься, а ты начал с этим спорить.
Хорошо, воксельтридэ, я признаю, что был неправ, если подходить к вопросу глобально. Теперь ты доволен?
> Теперь ты начинаешь уводить всё в сторону, к тому же ещё и обзывая лисп со схемой функциональными языками, что совсем неправильно.
Не надо ставить все с ног на голову. Я только хотел тебе пояснить, что мое утверждение было сделано в определенном контексте. Доходит теперь?
С какой стати lisp не ф. язык?
#26 
voxel3d коренной житель31.08.06 15:03
voxel3d
NEW 31.08.06 15:03 
в ответ Simple 31.08.06 13:24
> С какой стати lisp не ф. язык?
Лисп в некоторых классификациях попадает в функциональные языки, но это не корректно. В лиспе отсутствует карринг, не гарантируется оптимизация хвостовой рекурсии, что означает фиг, а не писанину в функциональном стиле. В лиспе масса императивных вещей, и не гарантируется отсутствие побочных эффектов при вызове функций. Лисп это мультипарадигменный язык, который хреново работает с функциями. Если наличие императивных вещей может означать всего лишь "не чистый фя", то отсутствие поддержки хвостовой рекурсии означает "не фя".
Со схемой я не прав, схема - фя.
Dropbox - средство синхронизации и бэкапа файлов.
#27 
Simple Nothing is f*cked31.08.06 20:39
Simple
NEW 31.08.06 20:39 
в ответ voxel3d 31.08.06 15:03
Спасибо за экскурс :)
#28 
Murr коренной житель31.08.06 21:08
Murr
NEW 31.08.06 21:08 
в ответ scorpi_ 31.08.06 10:29
По поводу указателей на функции - да, в С их синтакс действительно очень неудобен и сложен
------
Если смотреть на синтаксис - возможно что несколько не естественно... но что является естественным в такой искуственной вещи, как язык программирования?
Насчет сложности - если есть понимание сути указателя (любого), то указатель-на-функцию ничего сложного собой не представляет. В конце-концов это же не СБилдеровская "кляуза"...
#29 
Tomasson посетитель01.09.06 09:35
Tomasson
NEW 01.09.06 09:35 
в ответ Tomasson 30.08.06 16:32
to all:
вы что тут устроили, демоны?! %-0
где мадиратар? :-/
Ок, давайте лит-ру по любому языку. Пусть даже по этому ужасному С++ :-)
Только такую, чтобы не отбить у человека желание обучаться :-)
к противникам php:
и на чем посоветуете челу программировать веб-приложения, если он наконец-то решил уйти от статики в динамику? :-)
в его арсенале в лучшем случае будет html и javascript.
побойтесь бога! PHP для него единственный выход :-Р.
Я б, конечно, чела сразу в C#-ую веру стал обращать 8-), но с учетом цен на хостинги, нечего и рыпаться.
Итак....лучше книги давайте! .... вместо того, чтобы людей своей болтовн╦й отпугивать 8-)
P.S. Мадиратар, не спать!
#30 
Tomasson посетитель01.09.06 09:40
Tomasson
NEW 01.09.06 09:40 
в ответ Simple 30.08.06 19:29
Почему это? Да, непросто, зато потом
а оно ему надо?
99% захочет сесть и сразу что-то написать, а не медитировать над книгой по С++ в надежде, что *зато потом...*
#31 
Simple Nothing is f*cked01.09.06 09:50
Simple
NEW 01.09.06 09:50 
в ответ Tomasson 01.09.06 09:40
Необязательно сразу хватать серьезные книги.
#32 
voxel3d коренной житель01.09.06 10:19
voxel3d
NEW 01.09.06 10:19 
в ответ Tomasson 01.09.06 09:35
> P.S. Мадиратар, не спать!
Ты еретик и тебя надо поджарить.
> к противникам php: и на чем посоветуете челу программировать веб-приложения, если он наконец-то решил уйти от статики в динамику? :-)
На бейсике или лучше нет, пусть сразу сделает себе лоботомию.
> побойтесь бога! PHP для него единственный выход :-Р.
Лоботомия даст лучшие результаты.
Читай, я полностью согласен с человеком, посколько, в одинаковой ситуации нахожусь, поэтому просто процитирую:
В ответ на:
Скажем так, я уже третий год жизни транжирю на работу с этим языком. И мое накопленное этими годами неудовольствие скорее оправдано, чем наоборот.
Во-первых, встать именно по языковым возможностям хоть на сантиметр ближе к языкам "общего назначения", таким, как Python или Ruby, PHP не сможет раньше шестой версии. Пятая ветка -- это скорее переходной этап, как что-то полноценное я ее рассматривать не берусь. Это во-первых. А во-вторых, быдлохостинги вовсю используют четверку, и это гуано мне тычут как требование в ТЗ.
Гуанистость проявляется собственно вот в чем.
Язык у нас ориентирован на веб. А раз так, то он должен облегчать веб-разработку до максимума. Тем не менее, стандартного фреймворка для хотя бы того же MVC там просто нет. Либо пиши свое, либо рассматривай вагон и тележку готовых, каждую со своими сдвигами по фазе.
Впрочем, это не предвидится и в следующих версиях. Блин, Ruby ни разу не веб-язык, но Rails у него есть, причем как стандарт де факто!
Во-вторых. Часто нужные функции array_map, array_filter и прочие жутко неудобны потому, что создавать анонимные функции неудобно. А создавать анонимные функции (через create_function()) неудобно потому, что Zend не позволяет от них избавиться. Для них unset() не пашет, даже если ты можешь доказать, что эта функция никогда больше тебе не понадобится.
В связи с этим еще одна фень. Функции в рантайме можно задавать только через строки. В Javascript это в разы лучше.
Результат работы некоторых функций нужно предварительно помещать в переменную, а уж потом что-то с ней делать. Когда так делать, а когда нет, на поверхности отнюдь не плавает, изменяется от версии к версии и заставляет лезть в букварь на каждый чих.
Лично моя придирка, если функцию можно задать как одно выражение, я хотел бы синтаксис вида function sum($a, $b) = $a+$b;. Наболело.
Об ООП сказано много. Итог один, it sucks. В PHP 5 оно всего лишь sucks less. Python в данном плане намного лучше, там абсолютно все суть объекты (хотя никто не просит применять парадигму в явном виде). В PHP разработчики постарались сделать так, что используя ООП, ты ни на секунду не забываешь, что используешь именно ООП, и что это жутчайший костыль.
Ну и в конце концов то, что core в PHP насчитывает несколько тысяч функций, то, что все они находятся в глобальном пространстве имен, а также то, что ни PHP 4, ни PHP 5 не содержат концепции пространств имен, ставит в зачОтке PHP жирный минус.
Need we say less? Тем не менее, на PHP можно писать и хороший код. Главное, не смотреть на "бисплатные скрепты ат наченаюсчих" и иметь хороший бэкграунд как в других языках программирования, так и в разных подходах к программированию в целом.
(c) shimon

п.с. RoR дай своему начинающему.
Dropbox - средство синхронизации и бэкапа файлов.
#33 
Simple Nothing is f*cked01.09.06 10:34
Simple
NEW 01.09.06 10:34 
в ответ voxel3d 01.09.06 10:19
Правильно я сделал, что не начал с ним разбираться.
#34 
Tomasson завсегдатай01.09.06 10:38
Tomasson
NEW 01.09.06 10:38 
в ответ voxel3d 01.09.06 10:19
В ответ на:
во-вторых, быдлохостинги вовсю используют четверку

вот основная мысль, за которую зацепится *мой начинающий* :-)
Он все это прочитает и спросит, так на чем мне писать, если у хостера только поддержка PHP?
В ответ на:
Тем не менее, на ПХП можно писать и хороший код.

Вот это уже ближе к нашей теме :-)
И сие реально только если учиться у *правильных* источников. Читай *хорошие книги*, *хорошие исходники*.
В данной ситуации я не вижу для него никакого выхода ( замуровали демоны! 8-) ). Имея в *дано* хостера с поддержкой php особо не порыпаешься.
Я бы сам с удовольствием убежал к хостеру с поддержкой C# (ASP.NET 2.0), но посмотрев на цены.....решил и дальше играться С#-ом в интранете фирмы и дома :-)
#35 
Murr коренной житель01.09.06 10:48
Murr
NEW 01.09.06 10:48 
в ответ Tomasson 01.09.06 09:35
если он наконец-то решил уйти от статики в динамику? :-)
------
А он в состоянии написать ЦИКЛ? А понять, когда его надо писать в состоянии: :)
#36 
Murr коренной житель01.09.06 10:50
Murr
NEW 01.09.06 10:50 
в ответ Tomasson 01.09.06 10:38
так на чем мне писать, если у хостера только поддержка PHP?
-------
До того, как завязываться с хостером, ему таки придется научиться что-то делать... :)
#37 
Tomasson завсегдатай01.09.06 11:07
Tomasson
NEW 01.09.06 11:07 
в ответ Murr 01.09.06 10:48
та сможет, конечно.
Он там что-то с javascript'ом мутит. С циклами :-))
Я, кстати, как-то заикнулся по поводу XML, XSLT...но это у него как-то не нашло отклика:-)
Хочет *по-всрослому* ;-))
Кстати, так как быть с PHP-никами, которые хотят освоить ООП?
Говорят, что читают там какую-то инфу .... ведь PHP уже поддерживает *это* 8-) ... а понять не могут.
Есть такие, у кого PHP - *основной* язык и смог освоить ООП? Признавайтесь, как :-)
#38 
игoрь online01.09.06 11:58
игoрь
NEW 01.09.06 11:58 
в ответ Tomasson 01.09.06 09:35
В ответ на:
где мадиратар? :-/

я с ними ещ╦ вчера оччччень строго беседовал. они осознали и раскаялись
здесь могла бы быть моя автоподпись
#39 
voxel3d коренной житель01.09.06 12:06
voxel3d
NEW 01.09.06 12:06 
в ответ Tomasson 01.09.06 11:07
> Кстати, так как быть с PHP-никами, которые хотят освоить ООП?
Если бы я Буча асилил, то сказал бы: "Ну, дай им, что ли, Буча почитать", но посколько я его так и не асилил, в силу редкостного занудства и сплошной тягомотины в книге, то бедные пыхапэшники ООП так и не изучат.
Dropbox - средство синхронизации и бэкапа файлов.
#40 
barma_lej старожил01.09.06 12:18
barma_lej
NEW 01.09.06 12:18 
в ответ Tomasson 01.09.06 11:07
Вот здесь, достаточно хорошо про OOP в PHP. http://www.bhv.ru/books/book.php?id=6643
Это про PHP4 http://www.zipsites.ru/books/php4/
Это сайт Котерова (автора) http://www.dklab.ru/
Ч╦ воды столько налили? Книги где?
#41 
voxel3d коренной житель01.09.06 12:38
voxel3d
NEW 01.09.06 12:38 
в ответ barma_lej 01.09.06 12:18
> Ч╦ воды столько налили? Книги где?
A срифмуй.
Dropbox - средство синхронизации и бэкапа файлов.
#42 
Murr коренной житель01.09.06 15:33
Murr
NEW 01.09.06 15:33 
в ответ Tomasson 01.09.06 11:07
та сможет, конечно.
-------
Т.е. Утверждается, что _программировать_ - составлять алгоритмы обработки данных и записывать их на каком-то языке _уже_ умеет. Зачем ему базовая литература?
Кстати, так как быть с PHP-никами, которые хотят освоить ООП?
------
Переучить на VB 6.0... и тихонечко перестрелять... Если чуть серьезнее - сегодня полдня убил на то, чтобы объяснить, как раскидать заданный XML-документ на классы... в соответствии с ООП. Мне все время кивали на босовский код... в котором я попутно правлю баги и добавляю фичи... который не-совсем-ООП... хммм... если говорить правду - совсем не ООП... Так что - переучивать и расстереливать...
#43 
  scorpi_ скептик03.09.06 04:05
NEW 03.09.06 04:05 
в ответ Tomasson 01.09.06 09:35
Ок, давайте лит-ру по любому языку. Пусть даже по этому ужасному С++ :-)
Только такую, чтобы не отбить у человека желание обучаться :-)

С++ для начинающих только Кёниг - http://www.amazon.de/Intensivkurs-Schneller-Einstieg-%fcber-Standardbibliothek/d...
#44 
igna завсегдатай03.09.06 10:25
NEW 03.09.06 10:25 
в ответ scorpi_ 31.08.06 10:29
В ответ на:
template<class T> inline
const T& max( const T& left, const T& right )
{
return left < right ? right : left;
}
Я думаю это действительно несложно.

max(1, 1.1) // Так можно?
#45 
voxel3d коренной житель03.09.06 12:51
voxel3d
NEW 03.09.06 12:51 
в ответ igna 03.09.06 10:25
Нет, надо одинаковые типы указывать, автоматически здесь типы не будут приведены. Кроме того автоматическое приведение типов здесь было бы вредным, из-за возможного "обрезания" значения.
Dropbox - средство синхронизации и бэкапа файлов.
#46 
igna завсегдатай03.09.06 13:42
NEW 03.09.06 13:42 
в ответ voxel3d 03.09.06 12:51
Хотел спросить у scorpi_, как несложно определить max таким образом, чтобы max(a, b) работало как (a < b ? b : a) также для случая когда a - int, а b - double.
#47 
  scorpi_ скептик03.09.06 13:44
NEW 03.09.06 13:44 
в ответ igna 03.09.06 13:42
А компилятор читающий Ваши мысли, Вам случайно не нужен?
#48 
  scorpi_ скептик03.09.06 17:24
NEW 03.09.06 17:24 
в ответ voxel3d 01.09.06 10:19
Как раз в тему свежая статья от Спольского: http://www.joelonsoftware.com/items/2006/09/01.html
#49 
igna завсегдатай03.09.06 23:38
NEW 03.09.06 23:38 
в ответ scorpi_ 03.09.06 13:44
Будет ли считаться читающим мысли компилятор способный откомпилировать следующее:
template<class T1, class T2> inline
const auto& max( const T1& left, const T2& right )
{
return left < right ? right : left;
}

#50 
voxel3d коренной житель03.09.06 23:41
voxel3d
NEW 03.09.06 23:41 
в ответ igna 03.09.06 23:38, Последний раз изменено 03.09.06 23:42 (voxel3d)
Нет, не будет, поэтому, то, что Вы привели, будет работать неправильно.
Dropbox - средство синхронизации и бэкапа файлов.
#51 
  scorpi_ скептик03.09.06 23:43
NEW 03.09.06 23:43 
в ответ igna 03.09.06 23:38
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int. Вам какой из? Откуда должен компилятор знать, какой вариант Вас интересует?
#52 
igna завсегдатай03.09.06 23:47
NEW 03.09.06 23:47 
в ответ scorpi_ 03.09.06 23:43
В ответ на:
Откуда должен компилятор знать, какой вариант Вас интересует?

Оттуда же, откуда он знает в случае выражения left < right ? right : left. 5.16 стандарта C++.
#53 
igna завсегдатай03.09.06 23:55
NEW 03.09.06 23:55 
в ответ voxel3d 03.09.06 23:41
В ответ на:
Нет, не будет, поэтому, то, что Вы привели, будет работать неправильно.

Внести такое использование слова auto в стандарт предложили Bjarne Stroustrup и Jaakko Järvi:
http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2004/n1607.pdf#search=%22N1607%22 5.2 Functions with implicit return types
То есть это не совсем фантастика вроде чтения мыслей компиляторами.
#54 
voxel3d коренной житель04.09.06 00:12
voxel3d
NEW 04.09.06 00:12 
в ответ igna 03.09.06 23:55, Последний раз изменено 04.09.06 00:15 (voxel3d)
Ну, и? Тип возвращаемого значения функции предлагается выводить по типу того, что попадает в оперетор return. Внутри функции, один хрен, будет происходить:
тип_левого_операнда.operator<((тип_левого_операнда)правый_операнд), (я про пример Ваш)
поэтому, работать оно будет неправильно.
Dropbox - средство синхронизации и бэкапа файлов.
#55 
igna завсегдатай04.09.06 00:22
NEW 04.09.06 00:22 
в ответ voxel3d 04.09.06 00:12
В ответ на:
тип_левого_операнда.operator<((тип_левого_операнда)правый_операнд)

Нет, не так. Определение типа выражения (left < right ? right : left) описано в 5.16 стандарта C++. Там это занимает целую страницу или около того. Дать цитату?
#56 
voxel3d коренной житель04.09.06 00:27
voxel3d
NEW 04.09.06 00:27 
в ответ igna 04.09.06 00:22
> Дать цитату?
Да, киньте, pls, у меня нет под рукой, а выкачивать модемом, не до этого сейчас.
Dropbox - средство синхронизации и бэкапа файлов.
#57 
igna завсегдатай04.09.06 00:32
NEW 04.09.06 00:32 
в ответ voxel3d 04.09.06 00:27
5.16 Conditional operator [expr.cond]
conditional-expression:
logical-or-expression
logical-or-expression ? expression : assignment-expression
1 Conditional expressions group right-to-left. The first expression is implicitly converted to bool (clause 4).
It is evaluated and if it is true, the result of the conditional expression is the value of the second expression,
otherwise that of the third expression. All side effects of the first expression except for destruction of
temporaries (12.2) happen before the second or third expression is evaluated. Only one of the second and
third expressions is evaluated.
2 If either the second or the third operand has type (possibly cv-qualified) void, then the lvalue-to-rvalue
(4.1), array-to-pointer (4.2), and function-to-pointer (4.3) standard conversions are performed on the second
and third operands, and one of the following shall hold:
- The second or the third operand (but not both) is a throw-expression (15.1); the result is of the type of
the other and is an rvalue.
- Both the second and the third operands have type void; the result is of type void and is an rvalue.
[Note: this includes the case where both operands are throw-expressions. ]
3 Otherwise, if the second and third operand have different types, and either has (possibly cv-qualified) class
type, an attempt is made to convert each of those operands to the type of the other. The process for determining
whether an operand expression E1 of type T1 can be converted to match an operand expression E2
of type T2 is defined as follows:
- If E2 is an lvalue: E1 can be converted to match E2 if E1 can be implicitly converted (clause 4) to the
type ⌠reference to T2■, subject to the constraint that in the conversion the reference must bind directly
(8.5.3) to E1.
- If E2 is an rvalue, or if the conversion above cannot be done:
- if E1 and E2 have class type, and the underlying class types are the same or one is a base class of
the other: E1 can be converted to match E2 if the class of T2 is the same type as, or a base class of,
the class of T1, and the cv-qualification of T2 is the same cv-qualification as, or a greater cvqualification
than, the cv-qualification of T1. If the conversion is applied, E1 is changed to an
rvalue of type T2 that still refers to the original source class object (or the appropriate subobject
thereof). [Note: that is, no copy is made. ]
- Otherwise (i.e., if E1 or E2 has a nonclass type, or if they both have class types but the underlying
classes are not either the same or one a base class of the other): E1 can be converted to match E2 if
E1 can be implicitly converted to the type that expression E2 would have if E2 were converted to an
rvalue (or the type it has, if E2 is an rvalue).
Using this process, it is determined whether the second operand can be converted to match the third
operand, and whether the third operand can be converted to match the second operand. If both can be converted,
or one can be converted but the conversion is ambiguous, the program is ill-formed. If neither can
be converted, the operands are left unchanged and further checking is performed as described below. If
exactly one conversion is possible, that conversion is applied to the chosen operand and the converted
operand is used in place of the original operand for the remainder of this section.
4 If the second and third operands are lvalues and have the same type, the result is of that type and is an
lvalue.
5 Otherwise, the result is an rvalue. If the second and third operand do not have the same type, and either has
(possibly cv-qualified) class type, overload resolution is used to determine the conversions (if any) to be
applied to the operands (13.3.1.2, 13.6). If the overload resolution fails, the program is ill-formed. Otherwise,
the conversions thus determined are applied, and the converted operands are used in place of the original
operands for the remainder of this section.
6 Lvalue-to-rvalue (4.1), array-to-pointer (4.2), and function-to-pointer (4.3) standard conversions are performed
on the second and third operands. After those conversions, one of the following shall hold:
- The second and third operands have the same type; the result is of that type.
- The second and third operands have arithmetic or enumeration type; the usual arithmetic conversions
are performed to bring them to a common type, and the result is of that type.
- The second and third operands have pointer type, or one has pointer type and the other is a null pointer
constant; pointer conversions (4.10) and qualification conversions (4.4) are performed to bring them to
their composite pointer type (5.9). The result is of the composite pointer type.
- The second and third operands have pointer to member type, or one has pointer to member type and the
other is a null pointer constant; pointer to member conversions (4.11) and qualification conversions
(4.4) are performed to bring them to a common type, whose cv-qualification shall match the cvqualification
of either the second or the third operand. The result is of the common type.
#58 
  scorpi_ скептик04.09.06 00:42
NEW 04.09.06 00:42 
в ответ igna 04.09.06 00:32, Последний раз изменено 04.09.06 00:52 (scorpi_)
Зачем столько цитировать? Там нас интересует только
В ответ на:
After those conversions, one of the following shall hold:
- The second and third operands have the same type; the result is of that type.
- The second and third operands have arithmetic or enumeration type; the usual arithmetic conversions are performed to bring them to a common type, and the result is of that type.

Что отсылает нас к 5(9):
В ответ на:
Many binary operators that expect operands of arithmetic or enumeration type cause conversions and yield result types in a similar way. The purpose is to yield a common type, which is also the type of the result.
This pattern is called the usual arithmetic conversions, which are defined as follows:
- If either operand is of type long double, the other shall be converted to long double.
- Otherwise, if either operand is double, the other shall be converted to double.
...

Во-вторых, при чём тут всё это?
#59 
voxel3d коренной житель04.09.06 00:57
voxel3d
NEW 04.09.06 00:57 
в ответ scorpi_ 04.09.06 00:42, Последний раз изменено 04.09.06 00:59 (voxel3d)
Угу, только ещё надо добавить, что в операторе ?: вычисляется первое выражение и его тип приводится к bool. Всё остальное описание в 5.16 - о правилах выведения типа конечного результата и к процессу вычисления первого логического выражения отношения не имеет.
Dropbox - средство синхронизации и бэкапа файлов.
#60 
igna завсегдатай04.09.06 01:01
NEW 04.09.06 01:01 
в ответ scorpi_ 04.09.06 00:42
В ответ на:
Во-вторых, при ч╦м тут вс╦ это?

Может быть чтобы ответить на такой вопрос:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.

И убедиться в том, что его можно откомпилировать только одним способом.
#61 
  scorpi_ скептик04.09.06 01:07
NEW 04.09.06 01:07 
в ответ voxel3d 04.09.06 00:57
Это 5.9.2 - Relational operators The usual arithmetic conversions are performed on operands of arithmetic or enumeration type. Так что всё равно всё приводится к double.
#62 
igna завсегдатай04.09.06 01:07
NEW 04.09.06 01:07 
в ответ voxel3d 04.09.06 00:57
В ответ на:
Вс╦ остальное описание в 5.16 - о правилах выведения типа конечного результата и к процессу вычисления первого логического выражения отношения не имеет.

Прошу прощения за неясности. Конечно же 5.16 имеет отношение не к определению типа (left < right), а к определению типа (left < right ? right : left). Значение именно этого выражения возвращает return.
#63 
  scorpi_ скептик04.09.06 01:15
NEW 04.09.06 01:15 
в ответ igna 04.09.06 01:01
Мой вопрос относился ко всей серии Ваших постингов, которые к теме вообще непонятно каким образом относятся.
Во-вторых если учесть, что Вы С++ всё ж немного знаете, я расцениваю Ваши постинги как чистейший воды флейм, непонятно для чего затеянный, и непонятно что Вы хотели доказать...
В-третьих у нас всё же template arguments, а не просто conditional operator, поэтому весь Ваш флейм мимо кассы.
#64 
igna завсегдатай04.09.06 01:20
NEW 04.09.06 01:20 
в ответ scorpi_ 04.09.06 01:15
В ответ на:
Мой вопрос относился ко всей серии Ваших постингов

Вот этот вопрос?:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.

И какой же именно код в каком данном случае можно откомпилировать двумя способами?
#65 
voxel3d коренной житель04.09.06 01:23
voxel3d
NEW 04.09.06 01:23 
в ответ scorpi_ 04.09.06 01:07, Последний раз изменено 04.09.06 01:33 (voxel3d)
> Это 5.9.2 - Relational operators The usual arithmetic conversions are performed on operands of arithmetic or enumeration type. Так что всё равно всё приводится к double.
Завтра на работе прочитаю, сейчас не буду стандарт выкачивать, спать пора. Хочу только сказать, что нифига к double не приводится у меня на gcc , а всё обрезается до int, если при вызове слева стоит int, a справа double.
p.s. В варианте с двумя шаблонными параметрами, который предложил igna.

Dropbox - средство синхронизации и бэкапа файлов.
#66 
  scorpi_ скептик04.09.06 01:24
NEW 04.09.06 01:24 
в ответ voxel3d 04.09.06 01:23
То бишь в С?
#67 
  scorpi_ скептик04.09.06 01:28
NEW 04.09.06 01:28 
в ответ igna 04.09.06 01:20
<typename T> и так далее очевидно. У меня один template parameter и неясно чем ему быть. Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.
#68 
voxel3d коренной житель04.09.06 01:28
voxel3d
NEW 04.09.06 01:28 
в ответ scorpi_ 04.09.06 01:24
Нет, конечно, какие шаблоны в С? Я сказал GCC, т.к. это общее название для семейства компиляторов, а так, g++, конечно же использовался.
Dropbox - средство синхронизации и бэкапа файлов.
#69 
  scorpi_ скептик04.09.06 01:31
NEW 04.09.06 01:31 
в ответ voxel3d 04.09.06 01:28
g++ у меня вполне законно выдаёт 0 в этом коде:
В ответ на:
#include <iostream>
int main()
{
int i = 1;
double d = 1.1;
std::cout << ( i >= d ) << std::endl;
}


#70 
igna завсегдатай04.09.06 01:38
NEW 04.09.06 01:38 
в ответ voxel3d 04.09.06 01:23
В ответ на:
Хочу только сказать, что нифига к double не приводится у меня на gcc , а вс╦ обрезается до int, если при вызове слева стоит int, a справа double.

Похоже, что стандартный C от C++ в этом месте не отличается:
6.5.8 Relational operators
. . .
3 If both of the operands have arithmetic type, the usual arithmetic conversions are performed.
А точно, (1 < 1.1) gcc вычисляет как 0 или false?
#71 
voxel3d коренной житель04.09.06 01:39
voxel3d
NEW 04.09.06 01:39 
в ответ scorpi_ 04.09.06 01:31
Хм, я не знаю. Тут у тебя, похоже к double приводится левый операнд. У меня ругается: Warning: converting to `const int' from `double` на строке сравнения в шаблоне, т.е. там он приводит double к int.
Ладно, всем спокойной ночи.
Dropbox - средство синхронизации и бэкапа файлов.
#72 
  scorpi_ скептик04.09.06 01:40
NEW 04.09.06 01:40 
в ответ voxel3d 04.09.06 01:23
p.s. В варианте с двумя шаблонными параметрами, который предложил igna.
И что у тебя в качестве return type?
#73 
  scorpi_ скептик04.09.06 01:45
04.09.06 01:45 
в ответ igna 04.09.06 01:38
А точно, (1 < 1.1) gcc вычисляет как 0 или false?
Как 1. g++ из последнего MinGW
#74 
voxel3d коренной житель04.09.06 01:52
voxel3d
NEW 04.09.06 01:52 
в ответ scorpi_ 04.09.06 01:40
Блин, я тормоз , ессно, левый тип. Чёрт. Я на автомате написал, чтобы компилилось. Бозо всяких auto.
Dropbox - средство синхронизации и бэкапа файлов.
#75 
igna завсегдатай04.09.06 02:10
NEW 04.09.06 02:10 
в ответ scorpi_ 04.09.06 01:28
В ответ на:
Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.

Какой код, max(1, 1.1)? Конечно.
Но вот ты задал вопрос
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int. Вам какой из? Откуда должен компилятор знать, какой вариант Вас интересует?

в ответ на мое
В ответ на:

Будет ли считаться читающим мысли компилятор способный откомпилировать следующее:
template<class T1, class T2> inline
const auto& max( const T1& left, const T2& right )
{
return left < right ? right : left;
}


#76 
  scorpi_ скептик04.09.06 02:17
NEW 04.09.06 02:17 
в ответ igna 04.09.06 02:10
в ответ на моё
Я имел в виду свой код, так как твой некомпилируем. Пардон, если ввёл в заблуждение.
#77 
igna завсегдатай04.09.06 02:24
NEW 04.09.06 02:24 
в ответ scorpi_ 04.09.06 02:17
А, ладно. Спокойной ночи.
#78 
Tomasson завсегдатай04.09.06 11:11
Tomasson
NEW 04.09.06 11:11 
в ответ Tomasson 01.09.06 09:35
*Господа, вы звери!* /с/ :-)
С каждым новым сообщением вы меня пугаете все больше и больше...
#79 
igna завсегдатай04.09.06 12:32
NEW 04.09.06 12:32 
в ответ Tomasson 04.09.06 11:11, Последний раз изменено 04.09.06 12:37 (igna)
Зато разговор на эту тему укрепляет тебя в своей правоте, разве не так?
В ответ на:
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.

#80 
Tomasson завсегдатай04.09.06 12:52
Tomasson
NEW 04.09.06 12:52 
в ответ igna 04.09.06 12:32
насчет С++ я уверен :-)
и по возможности всегда отговариваю *новичков* браться за его изучение. Хотя если чел - новоиспеченный студент факультета Информатики или осознано хочет программировать именно на С++, то почему бы нет? :-)
#81 
Tomasson завсегдатай04.09.06 12:57
Tomasson
NEW 04.09.06 12:57 
в ответ Tomasson 04.09.06 12:52
P.S. смысл этой ветки был в том, чтобы собрать список литературы, а не вдаваться в очередной спор, какой язык лучше и в чем.
Так, чтобы чел зашел, нашел интересующий его язык/тему и начал искать книгу. А читать все эти хитров***анные тексты ему не составит никакого интереса. Они его только отпугнут :-)
#82 
  scorpi_ скептик04.09.06 13:50
NEW 04.09.06 13:50 
в ответ Tomasson 30.08.06 16:32
C++
Anfänger:
--- Andrew Koenig, Barbara E. Moo - "Accelerated C++" (http://www.amazon.de/Accelerated-C%2b%2b-Practical-Programming-Example/dp/020170...)
--- Nicolai Josuttis - "C++ Standard Library - A Tutorial and Reference" (http://www.amazon.de/C%2b%2b-Standard-Library-Tutorial-Reference/dp/0201379260/)
--- Scott Meyers - "Effective C++" (http://www.amazon.de/Effektiv-C%2b%2b-programmieren-Scott-Meyers/dp/3827322979/)
--- Scott Meyers - "More Effective C++" (http://www.amazon.de/Effektiv-programmieren-Verbesserung-Programme-Entw%fcrfe/dp...)
Fortgeschrittene:
--- Scott Meyers - "Effective STL" (http://www.amazon.de/Effective-STL-Scott-Meyers/dp/0201749629/)
--- Herb Sutter - "Exceptional C++" (http://www.amazon.de/Exceptional-C%2b%2b-Engineering-Programming-Solutions/dp/02...)
--- Herb Sutter - "More Exceptional C++" (http://www.amazon.de/More-Exceptional-C%2b%2b-Engineering-Programming/dp/0201704...)
--- Herb Sutter - "Exceptional C++ Style" (http://www.amazon.de/Exceptional-C%2b%2b-Style-Herb-Sutter/dp/0201760428/)
--- Herb Sutter, Andrei Alexandrescu - "C++ Coding Standards: 101 Rules, Guidelines, and Best Practices" (http://www.amazon.de/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586/)
Profi:
--- David Vandevoorde, Nicolai M. Josuttis - "C++ Templates: The Complete Guide" (http://www.amazon.de/C%2b%2b-Templates-Complete-David-Vandervoorde/dp/0201734842...)
--- David Abrahams, Aleksey Gurtovoy - "C++ Template Metaprogramming" (http://www.amazon.de/Template-Metaprogramming-Concepts-Techniques-Beyond/dp/0321...)
--- Alexandrescu - "Modern C++ Design" (http://www.amazon.de/Modernes-Generische-Programmierung-Entwurfsmuster-angewende...)
--- "ISO/IEC 14482 - C++ Standard" (http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS...)
PS Надо бы пожалуй новую тему открыть, приклеить е╦ и попросить Игоря безжалостно тереть весь оффтоп...
#83 
voxel3d коренной житель04.09.06 13:57
voxel3d
NEW 04.09.06 13:57 
в ответ scorpi_ 04.09.06 13:50
А Элджер? Моя самая любимая книга.
Dropbox - средство синхронизации и бэкапа файлов.
#84 
  scorpi_ скептик04.09.06 14:00
NEW 04.09.06 14:00 
в ответ Tomasson 30.08.06 16:32
В ответ на:
Heiko Kalista *C++ für Spieleprogrammierer* (http://www.amazon.de/C%2b%2b-f%fcr-Spieleprogrammierer-Heiko-Kalista/dp/34464033...)

Это IMHO полнейшее фуфло. Автор несётся галопом по куче тем, толком не раскрывая ни одну из них
#85 
  scorpi_ скептик04.09.06 14:03
NEW 04.09.06 14:03 
в ответ voxel3d 04.09.06 13:57
Ладно, пусть будет
--- Jeff Alger - "C++ for Real Programmers" (http://www.amazon.de/C%2b%2b-Real-Programmers/dp/0120499428/)
#86 
barma_lej старожил04.09.06 14:06
barma_lej
NEW 04.09.06 14:06 
в ответ Tomasson 30.08.06 16:32, Последний раз изменено 04.09.06 14:07 (barma_lej)
HTML (Там же JavaScript и CSS) правда не книга, но очень хорошее электронное пособие.
http://de.selfhtml.org/ - Online версия
http://aktuell.de.selfhtml.org/extras/download.shtml - Страница закачки Offline версий в html формате
http://aktuell.de.selfhtml.org/extras/selfchm.htm - Страница закачки Offline версий в chm формате
#87 
  scorpi_ скептик04.09.06 14:16
NEW 04.09.06 14:16 
в ответ Tomasson 30.08.06 16:32
XSLT
--- Bob DuCharme - "XSLT Quickly" (http://www.amazon.de/XSLT-Quickly-Bob-DuCharme/dp/1930110111/)
#88 
  scorpi_ скептик04.09.06 14:25
NEW 04.09.06 14:25 
в ответ Tomasson 30.08.06 16:32
Javascript - единственная приличная книга (если не считать книг по Ajax'у)
--- Nicholas C. Zakas - "Professional JavaScript for Web Developers" (http://www.amazon.de/Professional-JavaScript-Developers-Nicholas-Zakas/dp/0764579088/)
#89 
игoрь online04.09.06 14:32
игoрь
NEW 04.09.06 14:32 
в ответ scorpi_ 04.09.06 13:50
пусть будет, тоже ведь полезные вещи написаны.
просто потом кто-нибудь может открыть новую ветку с прямыми ссылками на литературу и потом дополнять е╦ по мере надобности. ветка будет закрыта и прикреплена, так что офтопа там точно не будет. что нибудь вроде "Ссылки для новичков" http://foren.germany.ru/linux/f/2385061.html, имеется в виду по внешнему виду и исполнению.
здесь могла бы быть моя автоподпись
#90 
  scorpi_ скептик04.09.06 14:48
NEW 04.09.06 14:48 
в ответ игoрь 04.09.06 14:32
Если её закрыть, то автору будет проблематично её обновлять. Я могу начать, но только лучше наверно её назвать "FAQ" и поместить туда ещё и туториал от voxel3D
#91 
Murr коренной житель04.09.06 15:40
Murr
NEW 04.09.06 15:40 
в ответ Tomasson 04.09.06 11:11
Это они просто разминаются. А перед тем, как говорить об серьезном - выгонят детей в сад и закроют двери...
#92 
Murr коренной житель04.09.06 15:44
Murr
NEW 04.09.06 15:44 
в ответ Tomasson 04.09.06 12:52
всегда отговариваю *новичков* браться за его
-------
А потом возникает два вопроса:
1. как и когда написать цикл
2. как из того, кто изучил PHP, VB, JavaScript & etc... все же сделать кодера, который в состоянии заработать себе на хлеб...
#93 
игoрь online04.09.06 16:08
игoрь
NEW 04.09.06 16:08 
в ответ scorpi_ 04.09.06 14:48
тоже верно.. я буду посматривать, вс╦ что не по теме буду убирать, если что закрыть можно в любой момент.
название ветки на усмотрение автора, если кроме книг там ещ╦ полезности будут, то FAQ вполне подходяще конечно
здесь могла бы быть моя автоподпись
#94 
Tomasson завсегдатай04.09.06 16:33
Tomasson
NEW 04.09.06 16:33 
в ответ Murr 04.09.06 15:44
А потом возникает два вопроса:
1. как и когда написать цикл

вот только не надо.... 8-)
циклы в Java и С# не подходят для исполнения твоих желаний? ;-))
#95 
Tomasson завсегдатай04.09.06 16:33
Tomasson
NEW 04.09.06 16:33 
в ответ scorpi_ 04.09.06 13:50
спасибо! :-)
только давайте ограничимся лит-рой для новичков.
Добавлю позже, т.к. все время отвлекаюсь.
#96 
Tomasson завсегдатай04.09.06 16:36
Tomasson
NEW 04.09.06 16:36 
в ответ scorpi_ 04.09.06 14:00, Последний раз изменено 04.09.06 16:38 (Tomasson)
Это ИМХО полнейшее фуфло
опять же *для кого?* :-)
Как по мне, для новичка самое то. Не пугает, написано увлекательно :-)
На первую книгу о С++ абсолютно подходит. У человека хоть интерес к последующему обучению остается.
Хотя возможно, что в одной из приведенных тобой книг обьясняется все не хуже и *без испуга* читателя :-)
#97 
Tomasson завсегдатай04.09.06 18:31
Tomasson
NEW 04.09.06 18:31 
в ответ scorpi_ 04.09.06 13:50
Не знаю, отнесется ли это к *началам* :-)
если да, то можно добавить в FAQ.
UML
--- Christoph Kecher *UML 2.0. Das umfassende Handbuch* (http://www.amazon.de/UML-2-0-Das-umfassende-Handbuch/dp/3898427382)
На немецком языке с примерами на Java и C#
Design Patterns
--- Elisabeth Freeman *Head First Design Patterns* (http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124)
либо на немецком:
--- Eric Freeman *Entwurfsmuster von Kopf bis Fuß* (http://www.amazon.de/Entwurfsmuster-von-Kopf-bis-Fu%df/dp/3897214210)
#98 
voxel3d коренной житель04.09.06 20:12
voxel3d
NEW 04.09.06 20:12 
в ответ Tomasson 04.09.06 18:31
ИМХО после GoF с их "Design Patterns" всё остальное порнография, плагиат и не содержит ничего нового. GoF меняют образ мышления, а остальное нафиг не надо.
Dropbox - средство синхронизации и бэкапа файлов.
#99 
Murr коренной житель04.09.06 21:20
Murr
NEW 04.09.06 21:20 
в ответ Tomasson 04.09.06 16:33
циклы в Java и С# не подходят
------
они у меня в основном такие (в смысле - простых - for - в коде _нет_)
public class TMyObject : IMyInt_1, IMyInt_2
{
public void Sample()
{
int count;
count = 0;
foreach(IMyObj_1 obj in this as IMyInt_1)
{
count += 1;
}
// тут насчитали 4
count = 0;
foreach(IMyObj_2 obj in this as IMyInt_2)
{
count += 1;
}
// а тут - 5
} // Sample()
} // class
Единственное, чего не представляю, как тоже самое получить "узкого специалиста" по VB6.0...
  scorpi_ скептик05.09.06 00:13
NEW 05.09.06 00:13 
в ответ Tomasson 04.09.06 18:31
Я не думаю, что следует ограничиваться только основами, другое дело, что можно разнести список на несколько сообщений по категориям. А в первом сообщении оставить только оглавление.
Приведённые тобой книги я не читал, но я согласен с voxel3D, что по паттернам достаточно GoF. Для новичков это всё равно рано, а продвинутый программер желающий развиваться дальше должен справится с материалом данного уровня сложности, иначе ему там всё равно делать нечего. То бишь ему надо только показать направление движения, а для этого дастаточно GoF.
По UML надо наверно Фаулера добавить и заодно его Refactoring где-нибудь привести.
В общем надо сейчас разбивку на отделы придумать, потом всё это добавлю
Tomasson завсегдатай05.09.06 11:59
Tomasson
NEW 05.09.06 11:59 
в ответ voxel3d 04.09.06 20:12, Последний раз изменено 05.09.06 12:00 (Tomasson)
после GoF с их "Design Patterns" всё остальное порнография, плагиат и не содержит ничего нового.
Тут речь скорее не о чем-то новом, а о способе донести идею до читателя.
Например, футбол придумали англичане, а чемпионами Европы и Мира им стать уже не светит :-Р
Толковых тренеров, которые могут привести команду на вершину, нет.
Заметь, в списке литературы по С++ нет книги Stroustrup'а ;-)
Так что, не зря программеры говорят нечто подобное:
В ответ на:
Если бы я Буча асилил, то сказал бы: "Ну, дай им, что ли, Буча почитать", но посколько я его так и не асилил

Посему вышеназванную книгу попросил бы оставить. Ибо на сегодняшний день она представляет собой самый легкий путь к пониманию Design Patterns.
Tomasson завсегдатай06.09.06 11:14
Tomasson
NEW 06.09.06 11:14 
в ответ scorpi_ 05.09.06 00:13
Базы данных будем освещать? :-)
если да, то:
MS SQL Server Programming
--- Robert Vieira *Professional SQL Server 2000 Programming* (http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764543792.html)
русский вариант:
--- Роберт Вьейра *SQL Server 2000. Программирование. Часть 1* (http://www.ozon.ru/context/detail/id/1656006/)
--- Роберт Вьейра *SQL Server 2000. Программирование. Часть 2* (http://www.ozon.ru/context/detail/id/1656007/)
--- Robert Vieira *Beginning SQL Server 2005 Programming* (http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764584332.html)
--- Robert Vieira *Professional SQL Server 2005 Programming* (http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764584340.html) (книга еще не вышла, но ее можно будет брать с закрытыми глазами)
Мне был бы интересен еще список по программированию PostgreSQL, Oracle и DB2.
  scorpi_ скептик06.09.06 19:31
NEW 06.09.06 19:31 
в ответ Tomasson 06.09.06 11:14
Будем, будем. Принято к сведению. Вчера кстати при посещении сайта accu.org увидел книгу для самых маленьких, то бишь для абсолютных новичков: http://brian.accu.org/cgi-bin/accu/rvout.cgi?from=0sb_beginner_s_c__&file=y00368.... Это для раздела "Как стать программистом". Добавить туда ещё что-нибудь по алгоритмам (Седжвик?) и так далее.
desyman свой человек02.10.06 21:24
desyman
NEW 02.10.06 21:24 
в ответ Tomasson 30.08.06 16:32
Доки по C/C++:
1. "Справочник советов и примеров по C++ Builder"
Автор:Кононевич Станислав
Size:27 Кб
http://www.biblioteka.net.ru/data/download/cbuilder.chm
2. "Освой самостоятельно С++ за 21 день"
http://alelib.amillo.net/books/0/0/4/4/3/2/C/Liberty-C21Days.djvu
3. Modern C++ Design
Автор:Andrei Alexandrescu
Size:1.2 Mb
http://anatolix.naumen.ru/files/books/moderncpp.zip
+Современное проектирование на C++
Автор:Андрей Александреску
Size:4.1 Mb
http://anatolix.naumen.ru/files/books/moderncppdesign_rus.zip
4. C++ Standard Library, The: A Tutorial and Reference
Автор:Nicolai M. Josuttis
Size:3.5Mb
http://anatolix.naumen.ru/files/books/cppstdlib.zip
5. C++ Templates: The Complete Guide
By David Vandevoorde, Nicolai M. Josuttis
Size:0.7Mb
http://anatolix.naumen.ru/files/books/cpptemplates.zip
6. Effective STL
Автор:Scott Meyers
Size:1.2Mb
http://anatolix.naumen.ru/files/books/effstl.zip
7. International Standart ISO/IEC ISO/IEC 9899:1999 (E)
Programming languages ≈ C
Size:1.1 Mb
http://anatolix.naumen.ru/files/books/iso9899.zip
8. Автор:Brian W. Kernighan, Dennis M. Ritchie
The C programming Language. Second Edition.
Size:170K
http://anatolix.naumen.ru/files/books/kr_eng.zip
Автор:Б. Керниган, Д. Ритчи
Язык программирования Си
Size:300K
http://anatolix.naumen.ru/files/books/kr_rus.zip
http://anatolix.naumen.ru/files/books/kr_tasksolver_eng.zip
9. Автор:Stanley Lippman (Стенли Липпман)
Essential C++(Основы программирования на С++.)
Size:1.2 Mb
http://anatolix.naumen.ru/files/books/lippman_essential_cpp_eng.zip
10. Автор:Stanley Lippman,Josee Lajoie
C++ Primer
Size:2.6 Mb
http://anatolix.naumen.ru/files/books/lippman_cpp_primer_eng.zip
+Автор:Стенли Липпман,Жози Лажойе
Язык программирования С++. Вводный курс
Size:0.8 Mb
http://anatolix.naumen.ru/files/books/lippman_cpp_primer_rus.zip
11. Автор:Herb Sutter
Exceptional C++,
Size:0.3 Mb
http://anatolix.naumen.ru/files/books/exceptional_cpp.zip
More Exceptional C++
Size:0.5 Mb
http://anatolix.naumen.ru/files/books/more_exceptional_cpp.zip
12. Автор:Dov Bulka, David Mayhew
Efficient C++ Performance Programming Techniques
Size:1.5 Mb
http://anatolix.naumen.ru/files/books/efficient_cpp.zip
13. Правила программирования на C и C++
Автор:Allen I. Holub
http://webcenter.ru/~zwb/rope.htm
14. Автор:Bjarne Stroustrup
The C++ Programming Language, Third Edition. Special Edition
Size:3.9 Mb
http://it-books.narod.ru/C_CPP/Stroustrup_eng.rar
Автор:Бьерн Страуструп
Язык программирования C++. 3-е издание. Специальное издание.
Size:2.9 Mb
http://anatolix.naumen.ru/files/books/stroustroup_se.zip
15. Автор:Джефф Элджер
C++ Библиотека программиста
Size:1.8 Mb
http://it-books.narod.ru/C_CPP/CppForRealProgrammers_rus.rar
16. Автор:Scott Meyers
Effective C++, 2nd Edition: 50 Specific Ways to Improve Your Programs and
Designs
Size:4.1 Mb
http://it-books.narod.ru/C_CPP/effectivecpp_moreeffectivecpp.rar
17. Автор:Scott Meyers
More Effective C++: 35 More Ways to Improve Your Programs and Designs
Size:4.1 Mb
http://it-books.narod.ru/C_CPP/effectivecpp_moreeffectivecpp.rar
18. INTERNATIONAL STANDARD
Programming languages - C++ ISO/ANSI/EIC
Size:2.3 Mb
http://it-books.narod.ru/C_CPP/AnsiStandart_eng.rar
  chervyak прохожий03.10.06 14:13
NEW 03.10.06 14:13 
в ответ Tomasson 30.08.06 16:32
рекомендую сайт http://all-ebooks.com там много хорошей литературы по программированию
Root_Unlis прохожий18.10.06 11:45
Root_Unlis
NEW 18.10.06 11:45 
в ответ Tomasson 30.08.06 16:32
Предложи выучить Assemler, и забить на все остальные языки высокого уровня. Ведь ассемблер это язык процессора, а значит, на нем сделаешь потом все что угодно, начиная от самого вредоносного вирус заканчивая навороченными прогами.
voxel3d коренной житель18.10.06 12:08
voxel3d
NEW 18.10.06 12:08 
в ответ Root_Unlis 18.10.06 11:45
Спасибо, посмеялся. Я думал, вы уже все вымерли...
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель18.10.06 12:59
Murr
NEW 18.10.06 12:59 
в ответ voxel3d 18.10.06 12:08
Эээ... Я бы, перед тем как смеяться, все же спросил - А какого, собственно, процессора имелся в виду ассемблер?
voxel3d коренной житель18.10.06 13:17
voxel3d
NEW 18.10.06 13:17 
в ответ Murr 18.10.06 12:59
Аха, канешна, канешна. Археология или программирование каких-нибудь микроконтроллеров это как раз та область интересов знакомого(й) Томассона, ради которой открыта эта ветка.
Dropbox - средство синхронизации и бэкапа файлов.
Simple Nothing is f*cked18.10.06 14:12
Simple
NEW 18.10.06 14:12 
в ответ voxel3d 18.10.06 12:08
Да ты че, живем еще и будем жить еще лет 10... Надеюсь, меня тут уже не будет к тому времени.
voxel3d коренной житель18.10.06 15:11
voxel3d
NEW 18.10.06 15:11 
в ответ Simple 18.10.06 14:12
А чё вы делаете, у вас там расход памяти идёт на байты что ли?
Dropbox - средство синхронизации и бэкапа файлов.
  scorpi_ 18.10.06 15:18
NEW 18.10.06 15:18 
в ответ voxel3d 18.10.06 15:11
Мне вот тоже интересно. Неужели С какого-нибудь нет?
Murr коренной житель18.10.06 15:50
Murr
NEW 18.10.06 15:50 
в ответ scorpi_ 18.10.06 15:18
Посмотри "С--" - там немножко принижено.
Но суть не в том - Асм- действительно стоящая штука. Рекомендовал бы всех прикладников протащить через пару-другую асмов - в прикладе бы исчезло процентов 40 проблем...
Murr коренной житель18.10.06 15:51
Murr
NEW 18.10.06 15:51 
в ответ voxel3d 18.10.06 15:11
На биты, однако-сь...
voxel3d коренной житель18.10.06 17:33
voxel3d
NEW 18.10.06 17:33 
в ответ Murr 18.10.06 15:50
И какие проблемы бы исчезли?
Dropbox - средство синхронизации и бэкапа файлов.
voxel3d коренной житель18.10.06 17:36
voxel3d
NEW 18.10.06 17:36 
в ответ Murr 18.10.06 15:51
Откуда Вы за Симпла знаете? Может, у них там просто начальник так и не смог ничего асилить кроме примитивного ассемблера, вот, и мучаются все.
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель18.10.06 18:17
Murr
NEW 18.10.06 18:17 
в ответ voxel3d 18.10.06 17:33
Самого общего плана. Стали бы писать гораздо меньше глупостей.
Насколько я помню, Приматам не давали то, что называлось Прикладная Теория Цифровых Автоматов (ПТиЦА) и не приязывали ПТЦА к реализации процессора и ассемблера. Тем не мение, то, что они должны реализовывать - практически чистая ПТЦА, правда автомат не только с состояниями, но и со стеком. Так вот реализация приклада в виде автомата в чистом виде снимает большую часть глюков - интерфейсные, конечно, остаются, но апп-серверная часть работает как часы. Отсюда - примерно -40%...
Murr коренной житель18.10.06 18:21
Murr
NEW 18.10.06 18:21 
в ответ voxel3d 18.10.06 17:36
вот, и мучаются все.
-------
??? - Асм никогда меня не мучал... Единственное, что было мучительно делать две вещи - объяснять девченкам какие команды/сигналы выдает процессор в режиме ПДП и объяснять преподавателю где и почему он ошибается... даже если в фирменном руководстве написано именно так, как он объясняет...
Simple Nothing is f*cked18.10.06 22:20
Simple
NEW 18.10.06 22:20 
в ответ voxel3d 18.10.06 15:11
У нас ассемблер - это язык системы, все формуляры до недавнего времени писались только на нем. Я же уже рассказывал.
voxel3d коренной житель18.10.06 22:38
voxel3d
NEW 18.10.06 22:38 
в ответ Simple 18.10.06 22:20
Ну, я забыл. Что за система-то, почему ассемблер выбран был? И какие формуляры? Ты имеешь в виду гуй? Под какую ОС?
Dropbox - средство синхронизации и бэкапа файлов.
Simple Nothing is f*cked19.10.06 09:11
Simple
NEW 19.10.06 09:11 
в ответ voxel3d 18.10.06 22:38
Система - наша Praxisverwaltungssystem, не ОС. Почему асм - понятия не имею, меня тут тогда еще не было. Видимо, имело смысл.
<----
voxel3d коренной житель19.10.06 10:03
voxel3d
NEW 19.10.06 10:03 
в ответ Simple 19.10.06 09:11
Ну, что сказать, сочувствую...
Хы, как ты умудрился такую контору найти? Не, контора с фортраном не удивила бы нифига или PL каким-нибудь, даже, но, вот, подобное, это нонсенс.
> Видимо, имело смысл.
Ты сам-то веришь в то, что сказал?
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель19.10.06 11:24
Murr
NEW 19.10.06 11:24 
в ответ voxel3d 19.10.06 10:03
Хы, как ты умудрился такую контору найти?
------
Я бы, пожалуй, сначала удивился тому, что она все еще существует...
Я тут недавно пересчитал цену одной формы для клиента в создаваемом с нуля приложении (или модификацю в имеющемся, но только для используемой нами технологии) - менее 10 евро по факту оплаты.
Блин, надо бросать это ИТ и переквалифицироваться в грузчики...
Simple Nothing is f*cked19.10.06 11:46
Simple
NEW 19.10.06 11:46 
в ответ voxel3d 19.10.06 10:03
В штате 16 программеров, из них полтора заняты формулярами. Один коллега полностью на этом деле, я наполовину. Угадай, чем занимаются остальные ;)
К слову сказать, ничего эргономичнее таких формуляров я не видел. Возможности ограничены, но он и не для таких монстров как на картинке был придуман. Я знаю, ты щас ухмыльнешься, но я и не ожидал, что это кто-то поймет.
@Murr
В ответ на:
Я бы, пожалуй, сначала удивился тому, что она все еще существует...

Не только существует, но и один из лидеров рынка: 15%, сиречь 20000 лицензий.
voxel3d коренной житель19.10.06 12:23
voxel3d
NEW 19.10.06 12:23 
в ответ Simple 19.10.06 11:46
> Угадай, чем занимаются остальные
Свечку держат и советы дают?
> Я знаю, ты щас ухмыльнешься, но я и не ожидал, что это кто-то поймет.
Да прич╦м тут эргономика форм? Это дело десятое. Я к тому, что надо быть совершенно больным на голову (я про того, кто асм выбрал), чтобы какую-то большую десктопную хрень на асме взяться писать. Я тебе сходу скажу, что общий бюджет программы из-за вашего асма вырос раз в десять минимум. А насколько кривая архитектура там внутри я даже представить боюсь. Просто, по-определению невозможно находясь на таком низком уровне абстракции, какой да╦т асм, успешно разруливать связи, котоые на верхних уровнях находятся, ибо голова не квадратная.
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель19.10.06 12:24
Murr
NEW 19.10.06 12:24 
в ответ Simple 19.10.06 11:46
Ты вторую строку прочел? Если точнее - про стоимость одной формы...
Могу назвать и себестоимость, исходя из своей зарплаты, - порядка 20 центов...
Murr коренной житель19.10.06 12:29
Murr
NEW 19.10.06 12:29 
в ответ voxel3d 19.10.06 12:23
чтобы какую-то большую десктопную хрень на асме взяться писать.
------
Насколько я понял, у них не стандартный, процессорный, асм, а асм для виртуальной исполняющей системы.
Если это так, то головной боли там много меньше, чем при разруливании связей на верхнем уровне в любом
стандартном оо-языке. Правда, для того чтобы это было эффективно нужно поднатаскать писателей
в ПТЦА - чтобы понимали что делают...
Simple Nothing is f*cked19.10.06 12:46
Simple
NEW 19.10.06 12:46 
в ответ voxel3d 19.10.06 12:23
Я за тебя беспокоюсь (с) Я привык, что довольно быстро схватываешь. Мож я объясняю плохо? Я же написал: асм - язык системы, а не система написана на асме.
Simple Nothing is f*cked19.10.06 12:48
Simple
NEW 19.10.06 12:48 
в ответ Murr 19.10.06 12:24
Твои сравнения, как и обычно - не пришей п...е рукав, уж извини :)
Simple Nothing is f*cked19.10.06 12:49
Simple
NEW 19.10.06 12:49 
в ответ Murr 19.10.06 12:29
Ну хоть кто-то допер.
Твои птцы нам ессно возле птицы - задачи успешно решаются ;)
  scorpi_ 19.10.06 13:03
NEW 19.10.06 13:03 
в ответ Simple 19.10.06 11:46
Не только существует, но и один из лидеров рынка: 15%, сиречь 20000 лицензий.
Это неважно. Я уже насмотрелся как тут заказы раздаются. Я вот года 3-4 назад занимался кастомизацией клайент менеджмента для всего телекома. Система на которой всё это основывалось (On Command CCM) имела много недостатков, но за десять лет сотрудничества с T-Systems и пару лет моей кастомизации всё работало уже почти как часы. Что произошло дальше? А дальше шефу T-Systems предложили место в Aufsichtsrat фирмы конкурента, и он вопреки всем техническим аргументам протащил эту новую систему, хотя работала она через пень колоду. Как анекдот - сначала они делали обмен данных соединяясь Freigabe на которой лежали десятки тысяч часто обновляемых файлов. В итоге один только траффик за этот счёт стоил 80 тысяч евро в день. Или вот друг работает в одной фирмочке, те получили заказ, так как дочка нужного чела замужем за кем надо. Так что как раз в вашей области можно писать последнее Г. но через какие-нибудь Kassenärtzliche Vereinigungen быть "лидером"...
  scorpi_ 19.10.06 13:06
NEW 19.10.06 13:06 
в ответ Simple 19.10.06 12:46
Ну хорошо, приведи пример в несколько строчек, как это выглядит.
Murr коренной житель19.10.06 13:07
Murr
NEW 19.10.06 13:07 
в ответ Simple 19.10.06 12:49
Допер?
Хммм.... лет этак пять назад, меня достали _постоянные_ изменения тех.задания (такая уж была ситуация, что никто не знал, что и как - я предметной области, консультант - программиринга) и Я за пару недель написал аналогичный асм и исполняющую систему... заодно - запихал его в базу данных и сделал загрузку актуального набора микрокоманд из нее... после чего осталось только нарабатывать потенциально возможный функционал и диспечировать вызовы в соотвествии с командами... вот дополнять набор микрокоманд было проблематично...
Об этом Я тебе уже как-то говорил, но видимо... раз уж сейчас про допирание бакланишь... недостаточно внятно...
Murr коренной житель19.10.06 13:08
Murr
NEW 19.10.06 13:08 
в ответ Simple 19.10.06 12:48
Твои сравнения, как и обычно - не пришей п...е рукав, уж извини :)
-------
Так не пришивать, а отрывать надо-ть! (с)Не моё!
Simple Nothing is f*cked19.10.06 13:15
Simple
NEW 19.10.06 13:15 
в ответ scorpi_ 19.10.06 13:03
Уж ты-то должен знать разницу между проектом и продуктом? :-О
Ни KV, ни KBV "раздачей" софта не занимаются, это личное дело каждого врача. Теперь понимаешь? :)
voxel3d коренной житель19.10.06 13:16
voxel3d
NEW 19.10.06 13:16 
в ответ Simple 19.10.06 12:46
Хм. Я на самом деле не понял. Что такое ассемблер для какой-нибудь абстрактной виртуальной машины я понимаю, а что означает ассемблер - язык системы?
И, собственно, на каком языке программа написанна?
Dropbox - средство синхронизации и бэкапа файлов.
Simple Nothing is f*cked19.10.06 13:17
Simple
NEW 19.10.06 13:17 
в ответ scorpi_ 19.10.06 13:06
Пример кода?
;hash.inc							2005-09-05
;hashcode einer zeichenkette ausrechnen
getCode: ;liefert code eines zeichens aus einer reihe
;übergabe
; s1 = zeichen (nur das erste zeichen im register wird ausgewertet)
;rückgabe
; z-flag gesetzt, wenn zeichen alphanumerisch ist,
; dann
; n1 = code
rsave s1
rsave s2
lmid s1,s1,1,1 ;nur das erste zeichen
lr 2,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
instr 1,s2,s1
call invZFlag
ret
hashCode: ;hash ermitteln
;übergabe
; s1 = id
; n1 = basis
;übergabe
; z-flag gesetzt, wenn gültig,
; dann
; n1 = hash
rsave s1
rsave s2
rsave n2 ;iterator
rsave n3 ;länge
rsave n8 ;basis
rsave n9 ;summe

lnr 2,#1
lnrls 3,s1
lnr 8,1
lnr 9,#0
repeat
lmid s1,s2,[2],1
call getCode
retc nz
mul 9,#32
add 9,1
lnr 1,9
div 1,8
int 1
mul 1,8
sub 9,1 ; n9 %= n8
inc 2
cnr 2,3
until p
lnr 1,9
call setZFlag
ret


Simple Nothing is f*cked19.10.06 13:19
Simple
NEW 19.10.06 13:19 
в ответ voxel3d 19.10.06 13:16
То же и значит.
На с++.
  scorpi_ 19.10.06 13:27
NEW 19.10.06 13:27 
в ответ Simple 19.10.06 13:15
Ты знаешь, тот самый друг, которого я упомянул, работает в фирме пишушей проги для зубных врачей, поэтому изволь тебе не поверить.
По твоему коду я вынужден согласится с вокселем - начальник баран. Получить нормальный софт на этом можно только имея в комманде гениев и неограниченное количество денег.
Simple Nothing is f*cked19.10.06 13:35
Simple
NEW 19.10.06 13:35 
в ответ scorpi_ 19.10.06 13:27
Можешь не верить, никто не заставляет. Только сначала ознакомься со спецификой области. Еще раз: врачи сами решают, какой софт им использовать. Ф-я K(B)V в данном случае - расчеты с кассами, сертификация и принятие стандартов.
По поводу начальников-баранов: читай всю тему ;)
Murr коренной житель19.10.06 13:39
Murr
NEW 19.10.06 13:39 
в ответ Simple 19.10.06 13:17
Сорри, бред, а не код... Даже с учетом возможной области применения... Слишком низкоуровневый... IMHO.
Simple Nothing is f*cked19.10.06 13:50
Simple
NEW 19.10.06 13:50 
в ответ Murr 19.10.06 13:39
Низкоуровневый=бред? Ничего другого я и не ожидал от тебя услышать ;)
Murr коренной житель19.10.06 14:03
Murr
NEW 19.10.06 14:03 
в ответ Simple 19.10.06 13:50
Низкоуровневый=бред?
------
Как насчет оценки целевой области?
Simple Nothing is f*cked19.10.06 14:06
Simple
NEW 19.10.06 14:06 
в ответ Murr 19.10.06 14:03
Свою цель код выполняет на отлично. У тебя есть конкретные предложения по улучшению?
  scorpi_ 19.10.06 14:12
NEW 19.10.06 14:12 
в ответ Simple 19.10.06 14:06
У меня есть - java.lang.String.hashCode()
Разницу в затратах объяснять надеюсь не надо?
Simple Nothing is f*cked19.10.06 14:18
Simple
NEW 19.10.06 14:18 
в ответ scorpi_ 19.10.06 14:12
Даже не обращая внимания на то, что String.hashCode не удовлетворяет условиям задачи, почему это должно мне быть интересно? Я решаю задачу, исходя из того, что у меня есть.
К слову, этот код тоже написан один раз и используется как библиотека. Скорость выполнения в данном случае не критична.
  scorpi_ 19.10.06 14:23
NEW 19.10.06 14:23 
в ответ Simple 19.10.06 14:18
Да мало что пишется один раз. Софт обычно ещё и поддерживать приходится. Да ё-моё, неужели эти прописные истины тебе надо объяснять? Я ещё понимаю, что можно флеймить по поводу managed/native - там преимущества менее очевидны, но по поводу asm/high level история давно уже расставила все точки над и...
  Aiolos знакомое лицо19.10.06 14:26
NEW 19.10.06 14:26 
в ответ Simple 19.10.06 14:18

короче, Симпл, ты понял, да? Бросай нафиг свой асм, проявляй инициативу и энтуазизьм и дави на шефа, чтоб поручил тебе переписать систему на кульном высокоуровневом языке.
через скока дней уволят, интересно?
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Simple Nothing is f*cked19.10.06 14:33
Simple
NEW 19.10.06 14:33 
в ответ scorpi_ 19.10.06 14:23
Естественно, приходится, и мы это также делаем. Причем приходится иногда копаться в таком дерьме, по сравнению с которым мой код - конфетка (хотя он и без всяких сравнений на данном уровне). Не буду приводить примеры, а то еще поседеете все тут :-D
Мне-то ваши аргументы понятны, а вот вы никак не хотите меня понять.
Simple Nothing is f*cked19.10.06 14:35
Simple
NEW 19.10.06 14:35 
в ответ Aiolos 19.10.06 14:26
Ну хоть один понял суть, а то я уже хотел словами Уолтера:
В ответ на:
HAS THE WHOLE WORLD GONE CRAZY? AM I THE ONLY ONE HERE WHO GIVES A SHIT ABOUT THE RULES? MARK IT ZERO!

voxel3d коренной житель19.10.06 14:39
voxel3d
NEW 19.10.06 14:39 
в ответ Aiolos 19.10.06 14:26
Х.з. я на своего шефа нагружаю по полной. Он, правда, всегда брыкается и любит говорить нуегонахсложнослишком, но я не прекращаю и, в результате, почти всегда вынуждаю принять архитектуру. Они сопротивляются всей конторой сразу, но потом нич╦, привыкают и делают как партия в лице меня велит. Правда, вс╦ касается только архитектуры, а не выбора языка. Но я щас веду активную пропаганду Немерле, самое главное уже сделанно, шеф уже согласен для негуя использовать, коллеги, правда, в ужасе, а я им говорю: - Не бэ, вам вс╦ равно девацца некуда будет.
Dropbox - средство синхронизации и бэкапа файлов.
Russman коренной житель19.10.06 14:44
Russman
NEW 19.10.06 14:44 
в ответ Simple 19.10.06 13:35
Я так думаю, что просто у вас нет особых конкурентов для данной аудитории. Моя знакомая работала на одну фирму которая смонстрячила нечто подобное для строительных фирм. Сделали все на ВБ и 10 лет уже занимаются чисткой кода. Главная фишка, как мне обьясняли, не удобство работы, интерфейс..., а то что там постоянно идет актуализация в соответствии с законодательством, причем по всем кантонам (Швейцария). Апклиха постоянно глючит, переидочески девелоперская фирма переделывает отчеты для фирм где сие поделие насчитало не то и не туда, но все продолжают жрать кактус. Альтернативы нет.
Может и инертность сказывается. Типа сосед так делает, чего я буду изобретать велосипед. У жены на работе как-то попросили МакКинзи оптимизовать некоторую отчетность, так они тоже склепали что-то на вб. Через год ничего не работало, эти ребята захардкодили даты и названия таблиц. Но денюжков состригли знатно. На вопрос, почему не обратились к специалистам, жена сказала, что у них просто все делается через МакКинзи, куча менеджеров там раньше работалa и сплавляют все в альму-матерь.
---
Моя совесть чиста и прозрачна. Её даже не видно.
  Aiolos знакомое лицо19.10.06 14:44
NEW 19.10.06 14:44 
в ответ voxel3d 19.10.06 14:39

это настолько индивидуальный в каждом случае вопрос, что я даже боюсь его детально затрагивать, ибо это бессмысленно и только лишний флэйм разведет :)
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

  scorpi_ 19.10.06 14:44
NEW 19.10.06 14:44 
в ответ Simple 19.10.06 14:35
Ну хоть один понял суть, а то я уже хотел словами Уолтера:
Ты не передёргивай, речь шла не о тебе, а о рациональности выбора языка твоим шефом. Я назвал его бараном, а ты защишал его.
Simple Nothing is f*cked19.10.06 15:02
Simple
NEW 19.10.06 15:02 
в ответ scorpi_ 19.10.06 14:44
Я не передергиваю. Нужен был простой макроязык, чтобы писать простые формы. Интерпретатор для асма написать проще простого, это даже Мурр сможет :-D :-P А то, что формы постепенно "вышли из берегов" языка, это уже другой вопрос. В большинстве своем юзеры довольны и ничего другого не хотят.
Человек, который все это придумал, далеко не баран, поверь мне. Вокруг его ноу-хау делаются миллионные обороты.
Simple Nothing is f*cked19.10.06 15:06
Simple
NEW 19.10.06 15:06 
в ответ Russman 19.10.06 14:44
15% рынка - это не 100%. Конкурентов навалом, у всех формы гуевые. Только наша форма заполняется в три раза быстрее, и только с клавиатуры.
Инертность - это да. Только не наша, а наших клиентов.
  scorpi_ 19.10.06 15:15
NEW 19.10.06 15:15 
в ответ Simple 19.10.06 15:02
Мда. Давай по-порядку что ли... В каком году всё это начиналось, и какая это платформа, x86 насколько я понимаю?
desyman свой человек19.10.06 15:17
desyman
NEW 19.10.06 15:17 
в ответ Simple 19.10.06 15:06
сорри конечно что я вас перебиваю
но гуевые формы можно точно так же набирать с клавиатуры
и будет работать пракчтически неотличимо по скорости
(на пару милисикунд возможно помедленее)
Russman коренной житель19.10.06 15:18
Russman
NEW 19.10.06 15:18 
в ответ Simple 19.10.06 15:06
Ну я и имел ввиду инертность клиентуры. Интересно, какая у вас динамика притока новых клиентов.
Может вам со "своим" железом продавать? Кучу старья впарить.
---
Вы замечали, как быстро работает Windows? Я тоже нет..
Simple Nothing is f*cked19.10.06 15:42
Simple
NEW 19.10.06 15:42 
в ответ scorpi_ 19.10.06 15:15
Я точно не знаю, по-моему в конце 80-х/начале 90-х. Изначально все бегало под ос пролог. Первоначально это даже не С был, а какой-то bal - business application logic. Я с этим только косвенно сталкивался.
Вспомнил, кстати, что у нас до сих пор поддерживаются текстовые терминалы :)
Simple Nothing is f*cked19.10.06 15:43
Simple
NEW 19.10.06 15:43 
в ответ Russman 19.10.06 15:18, Последний раз изменено 19.10.06 15:48 (Simple)
Учитывая ограниченность рынка, неплохая. Клиентами на местах занимаются сервис-партнеры, у нас только секонд-левел-саппорт.
зы У нас две версии софта. Вторая - вполне современная, под нее как раз гуевые формы пишутся.
Simple Nothing is f*cked19.10.06 15:46
Simple
NEW 19.10.06 15:46 
в ответ desyman 19.10.06 15:17
Конечно, можно, но это будет сплошная мука. Представь себе форму полей так на сотню.
Murr коренной житель19.10.06 15:48
Murr
NEW 19.10.06 15:48 
в ответ Simple 19.10.06 14:06
У тебя есть конкретные предложения по улучшению?
------
У меня нет описания целевой области. Что будем улучшать?
Simple Nothing is f*cked19.10.06 15:49
Simple
NEW 19.10.06 15:49 
в ответ Murr 19.10.06 15:48
Ничего. Все и так отлично работает ;)
Murr коренной житель19.10.06 16:18
Murr
NEW 19.10.06 16:18 
в ответ Simple 19.10.06 15:46
Представь себе форму полей так на сотню.
------
Не представил, а сделал. Причем если нет спецификации на поля - сделаю за... 30 кликов мышью... и работать будет...
Вот если бы ты сказал, что тебе надо сделать больше, чем можно запихать в одну таблицу - пришлось бы думать...
Murr коренной житель19.10.06 16:32
Murr
NEW 19.10.06 16:32 
в ответ Simple 19.10.06 15:43
Вторая - вполне современная...
------
Это мне напоминает одну штучку под названием Симс... Кто не в курсе - софт для обслуживания охранных систем. Наваяли они там... ой... для простоты - 8-мь терминалов сканят, _одновременно_, расшаренный по сетке лог-файл в несколько мег размером... и повех этого начали лепить ГУЙ... без разделения функциональности, без введения клиент-серверной технологии, без введения нормальной базы... оно и под чистым то ДОСом еле-еле работало...
Что характерно - юзалось это все по тем же самым причинам, что приводишь ты - _работает_. Владельцы компании, которая использовала (подчеркиваю - не разрабатывала) эту каку, решили заменить этот Симс на что-то самописное... на Аксессе. (Тут уже можно смеяться) Программер у них работал-работал... и даже что-то сваял... и даже все формочки были красивыми... только одного не учли - данные в систему поступают по 16-ти RS232 на 110Кбод... и каждые 32 бита - транзакция... и весьма критичная по времени...
Simple Nothing is f*cked19.10.06 16:41
Simple
NEW 19.10.06 16:41 
в ответ Murr 19.10.06 16:18
Ничлена у тебя работать не будет ;)
Murr коренной житель19.10.06 16:43
Murr
NEW 19.10.06 16:43 
в ответ Simple 19.10.06 16:41
Да-да...
Root_Unlis прохожий20.10.06 18:03
Root_Unlis
NEW 20.10.06 18:03 
в ответ Murr 19.10.06 16:43
Тот кусок кода который был приведен ранее, под какой компилятор рассчитан? Только не надо такого простого ответа что под ассемблеровский. Мне хотелось название компилятора узнать. (к примеру TASM16, TASM32, MASM16, MASM 32, FASM, WASM и. т.д.)
Root_Unlis прохожий20.10.06 18:04
Root_Unlis
NEW 20.10.06 18:04 
в ответ Simple 19.10.06 16:41
Да и еще, под что писалась программа?
Root_Unlis гость20.10.06 18:06
Root_Unlis
NEW 20.10.06 18:06 
в ответ Simple 19.10.06 16:41
А то жуть как интересно стало, так как инструкции в нем не для архитектуры интел.
Murr коренной житель20.10.06 19:17
Murr
NEW 20.10.06 19:17 
в ответ Root_Unlis 20.10.06 18:03
Тот кусок кода который был приведен ранее, под какой компилятор рассчитан?
------
Спрашивать об этом навероное надо Симпла - что-то внутрифирменное, самописное, как и исполняющая система.
Murr коренной житель20.10.06 19:21
Murr
NEW 20.10.06 19:21 
в ответ Root_Unlis 20.10.06 18:06
так как инструкции в нем не для архитектуры интел.
------
Почитай внимательно тред. На базе этого кода, как утверждает Симпл, у них генерятся рабочие формуляры(формы) на 100+ контролов... такой вот у них АСМ...
Root_Unlis гость20.10.06 20:50
Root_Unlis
NEW 20.10.06 20:50 
в ответ Murr 20.10.06 19:21
Ахинея какая-то, а не программа. Хотя все может быть, в чем лично я сомневаюсь, т.к. не первый год работаю с Assembler(ом).
Murr коренной житель20.10.06 20:58
Murr
NEW 20.10.06 20:58 
в ответ Root_Unlis 20.10.06 20:50
Ну-ну... А что, в ваших институтах не читали что-то типа Теории Формальных Языков? Слепить то ассемблер не так и сложно...
Root_Unlis гость20.10.06 22:03
Root_Unlis
NEW 20.10.06 22:03 
в ответ Murr 20.10.06 20:58
Слепить то можно, только не каждый комилятор это воспримет.
Root_Unlis гость20.10.06 22:11
Root_Unlis
NEW 20.10.06 22:11 
в ответ Murr 20.10.06 20:58
Да и теории в наших институтах пичкают дай боже, так что если это сказано в адрес того что уровень обучения у нас в университетах низок, то я еще это оспорил бы.
Murr коренной житель20.10.06 22:22
Murr
NEW 20.10.06 22:22 
в ответ Root_Unlis 20.10.06 22:03
Слепить то можно, только не каждый комилятор это воспримет.
------
Перведи, плс, со своего на общепринятый... а то как-то непонятно...
Tomasson постоялец20.10.06 22:23
Tomasson
NEW 20.10.06 22:23 
в ответ Murr 20.10.06 20:58
Мурр, читают:
http://www.informatik.tu-muenchen.de/studium/vvWS0607-info.html#di-vorl3
но не все на ету муть ходят:-). Обходятся другими предметами.
Tomasson постоялец20.10.06 22:25
Tomasson
NEW 20.10.06 22:25 
в ответ Murr 20.10.06 22:22
Перведи, плс, со своего на общепринятый
бу-га-га ;-())) и это пишет Мурр! %-) ... в анналы.
Murr коренной житель20.10.06 22:30
Murr
NEW 20.10.06 22:30 
в ответ Root_Unlis 20.10.06 22:11
Да и теории в наших институтах пичкают дай боже
-------
Хи-хи... Проверить-то это проще-простого. Элементарный вопрос на понимание FLТ - какая операция должна выполнятся с после вычисления транзитивного замыкания матрицы инцидентности для грамматикии языка, но до вычисления реслексивного замыкания?
P.S. Это действительно _элементарный_ вопрос... для того, кто понимает TLT.
Murr коренной житель20.10.06 22:34
Murr
NEW 20.10.06 22:34 
в ответ Tomasson 20.10.06 22:23
Ну знаешь же, что я по немецки знаю всего одну фразу, три команды и десяток слов... не хватит этого чтобы осилить страницу на немецком... шайзе...
Murr коренной житель20.10.06 22:37
Murr
NEW 20.10.06 22:37 
в ответ Tomasson 20.10.06 22:25
Эээ... Видит бог... ну хорошо - пусть в зеркале... что я таки стараюсь излагать корректно... даже если не всегда выходит... ну что тут поделаешь - это же не формальный язык, где что-то может что-то значить только в оговоренном контексте...
  scorpi_ 20.10.06 22:51
NEW 20.10.06 22:51 
в ответ Tomasson 20.10.06 22:23
У нас это было обязательным предметом. Berechenbarkeit, Komplexität, Formale Sprachen. По крайней мере formale Sprachen с автоматами всяко надо знать.
  scorpi_ 20.10.06 22:52
NEW 20.10.06 22:52 
в ответ Murr 20.10.06 22:30
Можно на английском? Я не понимаю...
Murr коренной житель20.10.06 22:57
Murr
NEW 20.10.06 22:57 
в ответ scorpi_ 20.10.06 22:52
Увы, математику и FLT я изучал в переводе на (старо-, т.е. 70-х годов) русский...
Просто нет эквивалентной английской терминологии в языковом запасе...
barma_lej коренной житель21.10.06 01:39
barma_lej
NEW 21.10.06 01:39 
в ответ Tomasson 30.08.06 16:32
Зафлудили топик
Simple Nothing is f*cked22.10.06 10:03
Simple
NEW 22.10.06 10:03 
в ответ Root_Unlis 20.10.06 20:50
Есть такое золотое правило общения в форумах: прежде, чем отвечать, прочитай всю тему, вдруг на твои вопросы там уже есть ответы...
1 2 3 4 5 6 7 8 9 10 все