Об эстрадности
Jan. 17th, 2007 03:24 pmУниверситет перестраивает учебные планы. Мой курс поставили на осень, поэтому сейчас ничего не читаю. А тут оказалось, что в компании надо провести лекцию для новых разработчиков: объяснить, как работает CVS (чего только не приходится преподавать). С утра ощущал подъём настроения; даже намечавшаяся простуда куда-то ушла.
Мой научный руководитель выделял людей "эстрадных": тех, кому непременно нужна аудитория, кто лучше всего чувствует себя, рассказывая что-то ученикам. "Но из всех эстрадных людей, кого я видел, - добавлял он, - ты, несомненно, самый эстрадный".
Собственно, этот журнал - тоже от эстрадности.
версии на стол
Date: 2007-01-17 08:31 pm (UTC)Re: версии на стол
Date: 2007-01-17 08:35 pm (UTC)Re: версии на стол
Date: 2007-01-17 09:26 pm (UTC)Re: версии на стол
Date: 2007-01-17 09:57 pm (UTC)Re: версии на стол
Date: 2007-01-18 03:22 am (UTC)Re: версии на стол
Date: 2007-01-18 05:47 am (UTC)Потом появились компьютеры и Chiwriter - помните этот ранний редактор, повсеместно сворованный в СССР? В США я года два писал статьи в Wordе - это было ужасно. Затем начал работать в LaTeXе, что и делаю до сих пор. Вначале я пользовался RCS, потом перешёл на CVS.
Re: версии на стол
Date: 2007-01-19 02:48 am (UTC)CVS - довольно симпатичный продукт, хотя под Windows есть проблемы: нельзя ставить working directory on network drive. Я сам не проверял, но системщики сказали, что CVS от этого умирает. В результате надо самому следить за back-up между commit'ами. Господи, вот ведь ацкая тема - и по русски-то не поговоришь.
Вообще странно, что у Вас надо разработчикам такие лекции читать. У нас бы таких просто на работу не взяли. Сейчас без этого никак нельзя.
Re: версии на стол
Date: 2007-01-19 05:12 pm (UTC)Что касается наших разработчиков - то о них вот этот диалог: http://scholar-vit.livejournal.com/123838.html?thread=3601854#t3601854. Если коротко - очень возможно, что в резюме у них было написано, что они в CVS собаку съели. Но это ведь ни о чём не говорит.
Re: версии на стол
Date: 2007-01-17 09:03 pm (UTC)Две команды..
Date: 2007-01-17 09:51 pm (UTC)cvs --help-commands CVS commands are: add Add a new file/directory to the repository admin Administration front end for rcs annotate Show last revision where each line was modified checkout Checkout sources for editing commit Check files into the repository diff Show differences between revisions edit Get ready to edit a watched file editors See who is editing a watched file export Export sources from CVS, similar to checkout history Show repository access history import Import sources into CVS, using vendor branches init Create a CVS repository if it doesn't exist log Print out history information for files login Prompt for password for authenticating server logout Removes entry in .cvspass for remote repository ls List files available from CVS pserver Password server mode rannotate Show last revision where each line of module was modified rdiff Create 'patch' format diffs between releases release Indicate that a Module is no longer in use remove Remove an entry from the repository rlog Print out history information for a module rls List files in a module rtag Add a symbolic tag to a module server Server mode status Display status information on checked out files tag Add a symbolic tag to checked out version of files unedit Undo an edit command update Bring work tree in sync with repository version Show current CVS version(s) watch Set watches watchers See who is watching a file (Specify the --help option for a list of other help options)Это скорее 33 команды, верно? И ключей там хватает.
В последнем Cederqvist'е 184 страницы. Как раз на средних размеров курс.
Да, для простых вещей трех-четырех команд достаточно. Но тем и хорош CVS, что позволяет делать и очень непростые вещи.
Re: Две команды..
Date: 2007-01-17 10:12 pm (UTC)Но для реальной жизни достаточно трех с половиной: add, commit, checkout, ну еще раз в пару месяцев тэг прицепить. Я вот сейчас подумал - ничем больше за три года работы с cvs так и не воспользовался - и не потому, что не умел - нужды не было. Ах да, diff - ну это не считается, потому что делался из емакса.
Я ни в коем случае не наезжаю - просто мне сдается, что читать студентам курс по такой специфической системе, как cvs, нет особого смысла - ей пользоваться надо. За час можно в принципе объяснить, ЧТО можно сделать, а рассчитывать на то, что кто-то запомнит КАК - не стоит.
Re: Две команды..
Date: 2007-01-17 10:25 pm (UTC)А сложные вещи - это, например, вот что. Поставщик даёт свою систему (в исходном коде). Наши программисты над ней работают. Раз в две недели поставщик присылает новую версию, где исправляет критические баги старой. Это надо интегрировать с изменениями, которые за это время наваяли наши добры молодцы.
Для этого, что интересно, хватает трех команд. Но с правильными ключами :). Это описано в 13-й главе Cederqvistа. И что интересно, года три назад мне пришлось именно этот процесс организовывать. Именно в таком режиме.
Re: Две команды..
Date: 2007-01-17 10:29 pm (UTC)А как вы это автоматизировали?
Re: Две команды..
Date: 2007-01-17 10:32 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:37 pm (UTC)Кстати, что в CVS и правда хорошо сделано - так это automerge, perforce мне так же хорошо не удалось заставить работать.
Re: Две команды..
Date: 2007-01-17 10:45 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:47 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:55 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:57 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:30 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:35 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:36 pm (UTC)А бесплатность все-таки фактор весьма и весьме значимый :-)
Re: Две команды..
Date: 2007-01-17 10:42 pm (UTC)Re: Две команды..
Date: 2007-01-17 10:56 pm (UTC)Re: Две команды..
Date: 2007-01-18 12:59 am (UTC)И, кстати, мердж там очень даже неплохой, я им пользуюсь чуть ли не через день.
Re: Две команды..
Date: 2007-01-18 01:40 am (UTC)Re: Две команды..
Date: 2007-01-18 01:48 am (UTC)Re: Две команды..
Date: 2007-01-17 10:14 pm (UTC):)
no subject
Date: 2007-01-17 08:46 pm (UTC)no subject
Date: 2007-01-17 09:45 pm (UTC)no subject
Date: 2007-01-18 09:46 am (UTC)Везде где я работал был CVS.
no subject
Date: 2007-01-18 04:33 pm (UTC)Я где-то читал, что эта модель сложилась исторически. В результате компьютерной революции возникла нужда в большом числе программистов. Университеты просто не успевали подготовить столько специалистов, и в программисты шли кто угодно: музыканты, учителя, электрики, водопроводчики. Инженер, пусть даже механик, считался крутым гуру. Затем университеты подтянулись, но они уже учили в рамках создавшейся модели и сложившихся представлений о том, что такое программист.
Лет пять назад я читал похожие лекции. После одной из них ко мне подошёл слушатель и сказал: "Знаете, я учился программировать в университете. Но меня четыре года обучали ремеслу: говорили, ЧТО надо делать. Вы первый начали с того, ПОЧЕМУ надо делать именно так". Не знаю, насколько он был искренен, но вот такое и вот такое - увы, реальность.
no subject
Date: 2007-01-19 06:47 am (UTC)Да, я сталкивался тоже с энтузиазмом начальства к такому подходу. У меня подозрение, что один из факторов тут - психологический: значительная часть начальников старательно выбивалось туда потому что имели комплексы/амбиции диктатора, им мила картина высших людей отдающих детальные приказы низшим ограниченным и покорным исполнителям. Как вы думаете ?
Но для программирования такой подход, хотя и может быть целесообразен в определенных ситуациях, в стратегической перспективе, на мой взгляд несостоятелен. Особенность программирования в том, что рутинные операции могут быть легко автоматизированны. Если вы можете успешно отдать подробные инструкции тупому кодеру - значит что кодер тут может быть эффективно заменен программным инструментом (кодегенератором) c которым быстрей и легче самому все сделать.
no subject
Date: 2007-01-19 06:08 pm (UTC)На самом деле я слышал вполне серьёзное обоснование такого подхода на лекциях по организации разработки. Там объяснялось, что хотя хороший программист на порядки продуктивнее средних, с ним связана проблема: если он уйдёт, всё посыплется. Поэтому лучше нанимать не одного суперклассного, а кучу посредственных, и так организовать процесс, чтобы они были взаимозаменяемы. Винтики и гаечки. На мой взгляд, тут есть логическая ошибка: грамотность почему-то противопоставляется организованности. Может, правильнее нанимать грамотных и организовывать процесс с ними? Но я по политическим соображениям этого говорить лектору не стал. Лектор ещё приводил стандартное сравнение с промышленной революцией: дескать, всё стало лучше, когда на место старых мастеров, создававших шедевры, пришло массовое производство, а затем конвейер. Это на мой взгляд тоже странно: интеллектуальный труд тем и отличается от производства материальных товаров, что одна высококлассная карета не заменит тысячу плохих, а вот одна правильно написанная программа заменит тысячу плохих, созданных конвейерным способом.
Вообще это касается не только труда программиста, но и всякого интеллектуального труда. Тут есть две концепции, которые я (сугубо условно, и без желания обидеть массу пользователей компьютеров) называю подходом Unixа и подходом Windows.
В первом случае предполагается, что человек очень грамотен и потратил некоторое время на то, чтобы в совершенстве овладеть инструментарием (все эти awkи, sedы и grepы). Он занимается в основном нетривиальным, творческим трудом. А если ему нужно сделать много рутинных, повторяющихся вещей - он быстро и эффективно их автоматизирует с помощью этого инструментария - вроде упомянутого Вами кодогенератора. В общем, человек не должен работать - работать должна машина. А человек должен думать. Ещё раз подчеркну, что речь идёт не только о программистах; классики Unixа предназначали систему для всякого интеллектуального труда: и физик, и бухгалтер должны были сами писать однострочники на sedе с awkом - точно так же, как современный человек сам может написать и прочесть записку жене или мужу, и не прибегает к услугам писца.
В подходе Windows предполагается обратное: что человек туп, умственно ленив и в принципе не может ничему научиться. Его инструменты должны быть "просты в обучении". Предполагается, что его работа по большей части будет состоять в тупом Copy & Paste, а творческий элемент в ней минимизирован. Вопрос об автоматизации вообще не стоит: пользователю этого класса легче часа три подряд щелкать мышкой по одной и той же последовательности кнопок, чем один раз написать скрипт (на всякий случай скриптовые инструменты от него тщательно прячут).
Если Вас не смущает несколько марксистская терминология, то в первом подходе компьютер - инструмент человека, а во втором человек - придаток к компьютеру.
А вообще на эти темы лучше разговаривать с
no subject
Date: 2007-01-19 08:37 pm (UTC)Только вместо awk лучше gawk (GNU awk), у него возможностей больше, причем весьма полезных.
Мне в windows приходится работать, но я и в ней рутинные операции автоматизирую, восновном хватает удобного текстового редактора, gawk и MS DOS batch files.
no subject
Date: 2007-01-19 08:42 pm (UTC)0 lrwxrwxrwx 1 root root 21 2005-08-07 15:18 /usr/bin/awk -> /etc/alternatives/awk
ls -ls /etc/alternatives/awk
0 lrwxrwxrwx 1 root root 13 2005-08-07 14:48 /etc/alternatives/awk -> /usr/bin/gawk
no subject
Date: 2007-01-20 03:35 pm (UTC)no subject
Date: 2007-01-20 07:56 pm (UTC)А мне приходилось сталкиваться с ситуацией, когда программисты занимались дизассемблированием СОБСТВЕННОГО кода. Заказчик попросил внести изменения, и выяснилось, что в VC хранится древняя версия исходников, а свежую никто не почесался внести. Те, кто делали последнюю версию, давно уволились, и их директории стерли (об архивиривании со штампом "Хранить Вечно" системщики тоже не догадывались). Вот и восстанавливали код при помощи бинарника, лома и такой-то матери.
no subject
Date: 2007-01-21 12:06 am (UTC)no subject
Date: 2007-01-27 05:30 am (UTC)в квартире газClearCase. Сначала все долго плевались, но теперь, освоившись, без findmerge жить не могут.К чему это я?.. Да так, просто очень хочется поговорить о чём-то родном и знакомом с кем-то для кого это тоже родное и знакомое. :)