Один из приемчиков UI, которых я терпеть не могу - использование маленьких флажков вместо названий стран или языков.

Мне неинтересны флаги и я их банально не помню. А те, что помню (Израиль, Штаты, если увижу три полосы цвета, то подумаю, что Россия, но какие там цвета и в каком порядке, понятия не имею) все равно узнаю не мгновенно, нужна доля секунды, чтобы это зарегистрировать и распознать. И зачем это нужно - непонятно.

Ну скажем, я часто меняю язык клавиатуры нажатием клавиш, и иногда мне нужно глянуть в край монитора и быстро понять, какой язык стоит сейчас. В Виндовс это две буквы, например, EN/RU/HE - мгновенно понятно и очевидно. На работе у меня на рабочей станции на работе стоит Линукс, и до недавнего времени была оконная среда, в которой тоже были две буквы. Вчера я сменил ее на другую, и там показывается крохотный флажок страны вместо двух букв. АААААААААААА. Ну кто, кто им сказал, что лучше распознается издалека, чем RU или РУ? И почему вообще я должен думать о флаге страны, когда речь идет о языке? Я тут не политическую точку зрения утверждаю - допустим для простоты, что Россия представляет в каком-то смысле русский язык и отвечает за него, пускай - все равно, это разные по натуре вещи.

Я найду способ открутить это обратно, но пока что - раздражает.

Я допускаю, что есть люди, которым так легче и лучше. Но меня это искренне удивляет.
Потрясающая штука. Оказывается, в Visual Studio есть такой баг: ни с того ни с сего перестает работать поиск по файлам (Find in Files). Все время выдает ошибку "No files were found to look in.Find was stopped in progress.", и ничего не делает.

Но.

Если дунуть, сплюнуть, три раза перекреститься нажать на Ctrl+Scroll Lock, то магическим образом все начинает работать. Почему - никто не знает. Что эта комбинация клавиш должна делать - никто не знает.

Очень смешно, по-моему.

Вот первоисточник (кажется) этого решения, с большим количеством благодарных комментариев от юзеров, которые его нашли и им помогло (особый блеск - некоторые пишут, что ctrl + scroll lock им не помогло, а помогло alt + break или еще что-то столь же случайное). Вот гугл-поиск, который находит множество блог-записей об этой магии.
Портланд, Орегон. Open-source конференция OSCON. На сцене сейчас выступают представители Интела и рассказывют о прелестях библиотеки Thread Building Blocks (звучит интересно). До этого Тим О'Райли говорил о веб-дваноль и о том, что open source означает в мире software as a service (пример: Гугл). А после Интела Саймон Пейтон-Джонс (полубог в сообществе Хаскела) будет рассказывать о transactional memory.

Если кто-то тоже здесь, давайте встретимся.

Портланд мне очень понравился. Прилетел сюда вчера в пол-седьмого вечера. По дороге из аэропорта оказлся в одном вагоне электрички с Гвидо вам Россумом (создателем языка Python). После того, как вселился в гостиницу и пришел в себя, поехал в даунтаун - погулять, поужинать и зайти в Powells, знаменитый огромный книжный магазин.
Начался конкурс ICFP, и длится до понедельника.

Черт, жаль, что совсем нет времени, а то бы с удовольствием поучаствовал. И задание очень интересное (самопрограммируемые ДНК и РНК инопланетян), и весьма, кажется, нетривиальное.
О ценности исходников вне конкретного проекта:
Is your code worthless?

...There is extraordinarily little code theft in this industry (even though we’re in the era of burnable DVDs and USB keys) because most code - above and beyond the industry-wide frameworks and libraries - has no value at all outside of a specific project with a specific group of developers. Trying to use it for other projects is often worse than starting with nothing at all.


Верно подмечено, и мне приходилось об этом не раз задумываться.

Вот взять например код ЖЖ, над которым я работал почти три года. Все это время он был open-source. Любой мог взять его, построить свой клон ЖЖ, причем LiveJournal.com это не просто приветствовал, а еще и помогал советами, подсказывал, где что починить, если не работало, итд.

Казалось бы, готовая система для блог-сайта, с комментариями, с френдлентами, весь код уже написан, все работает. Бери и делай что хочешь: вставляй в свой сайт, меняй на свой вкус, добавляй новые возможности. И какое-то время многие пытались! Где-то в конце 2001 и на протяжении 2002 было довольно много сайтов и проектов, основанных на коде ЖЖ, судя по тому, сколько людей к нам обращались за советами и предложениями. Довольно много - больше десятка, скажем. И это те, о которых мы знали, ведь никто не обязан доложиться, а если сайт внутрикорпоративный, так его снаружи и не видно.

Но постепенно количество таких сайтов уменьшилось и почти сошло на нет. Почему? Потому что трудно оказалось на основе кода ЖЖ построить что-то, что не является идентичной копией ЖЖ (плюс-минус оформление). Для того, чтобы какие-то мелочи заменить, можно немного покопаться в исходниках, и все. Но предположим, вам захотелось бы сделать, чтобы комментарии шли не деревом, а линейным списком, как во многих других системах. Или ввести новую систему стилей для пользователей, чтобы у них было столь же много контроля над видом дневника, как в MySpace. Или еще что-то относительно глубокое. Для этого надо долго, долго сидеть над исходниками, разбираться; сделаться специалистом в MySQL и его репликации; изучить memcached и perlbal; перелопатить тонны перловского кода. Но для этого всего нужно столько вложить усилий, что за то же время, ну или не за то же, но за тот же порядок времени, можно было бы свою систему с нуля написать. А свою, ясно, с многих точек зрения привлекательней получается.

И это ведь не следствие, скажем, того, что мы плохо код писали. Код ЖЖ очень хорошо разбит на модули, библиотеки, итд. Хорошему программисту его легко читать и изучать. Это хороший код. Но ничего не поделаешь - его много. И ничего не поделаешь - он заточен под тот набор возможностей, которые LJ хотел дать своим пользователям. И вместе - выходит большая сложная система, которую тебе дают бесплатно, а все равно брать ее оказывается невыгодно. В результате что осталось из всех сайтов, основанных на ЖЖ? Deadjournal, GreatestJournal, и Lj.Rossia.org. Кажется, больше никого заметного и нет.

И это не какой-то особый случай, редкий. Нет, с почти любой сложной системой так обстоят дела.

Есть, наверное, исключения. Пожалуй, важность исходников больших проектов чаще заключается не в том, чтобы их использовать в другом месте, а в том, чтобы изучить их и выяснить какие-то подробности имплементации. Скажем, исходники Windows полезны тем, кто хочет найти дырки в Windows и написать вирусы; или тем, кто хочет написать эмуляцию Windows под Линуксом; но вряд ли они полезны тем, кто пишет само ядро Линукса. Исходники поисковой системы Гугла, над которыми я работаю сейчас, если бы их украли, вряд ли пригодилось кому-то для создания конкурентной поисковой системы; но тщательное их изучение могло бы принести многомиллионные прибыли какому-нибудь веб-спаммеру или SEO (Search Engine Optimizer - люди, которые за деньги стараются поднять посещения на вашем сайте из поисковых систем; я был совершенно поражен, узнав, насколько это большой бизнес). И так далее.

Но настоящее использование большой и сложной системы в другом месте, без команды, которая ее создала и поддерживает - редкое и почти невозможное явление.
1. Калифорния совсем не изменилась за полтора месяца, что меня здесь не было. Будто всю ее аккуратно слили в бутылочку сразу после моего отлета, хранили так, а к возвращению расплескали на карту обратно.

2. Я посмотрел Transformers (совершенный бред, но хорошие спецэффекты), а также Swing Time, мьюзикл 36-го года с Фредом Астером и Джинджер Роджерс. Он был очень хорош, но все же, все же, мои воспоминания о Shall We Dance его побеждают.

3. Я поучаствовал в "хакатоне" (hackathon) разработчиков memcached, который устроила в своем офисе компания Facebook. Офис, кстати, расположен в лучшем месте мира, просто завидно даже - в даунтауне Пало Альто, прямо на University Avenue, по соседству с прекраснейшим кампусом из всех, что я до сих пор в своей жизни видел - Станфордского университета. Было очень интересно, и про Facebook много узнал (может, стоит наконец попробовать), и вообще с умными людьми пообщался.

Я посчитал: из 15 хакеров, что собрались там вечером и остались на пол-ночи (я сбежал в полночь раньше большинства, измученный джетлагом), у одиннадцати были Макбуки, у троих IBM Lenovo и еще у одного Dell. Я читал раньше о том, что среди разработчиков open-source сейчас особенно популярны макинтошевские ноутбуки, совершенно несравнимо с их популярностью вообще, а теперь увидел своими глазами.
Вследствие того, что я работаю над двумя очень разными проектами, мне то и дело приходиться переключаться между сложными, выжимающими из компьютера все, на что он способен, алгоритмами на C++ - и рисующими всякие бирюльки в окне браузера модулями на Javascript. Переключаться иногда приходится несколько раз в день. Так недолго и раздвоение личности схлопотать!
[livejournal.com profile] ivan_ghandhi сказал то, о чем я не раз думал:
Интересная у нас профессия, у программистов. Можно тридцать лет и три года сидеть на компьютере, и в результате знаний и осмысленного опыта практически столько же, сколько у двадцатилетнего хакера.


Есть ли действительное накопление опыта и знаний (настоящих знаний, не типа там библиотеки какой итп.) в программировании? Может, после того, как достигается определенный рубеж профпригодности, мы никуда не растем? Мне так иногда кажется; я вспоминаю себя, пишущего разные неплохие программы 15 и 10 лет назад, и мне неочевидно, что сейчас я умею их писать лучше. Именно "неочевидно": если как следует подумать, то все-таки, наверное, сейчас умею лучше, но это отнюдь не очевидное утверждение. И даже если умею лучше, то совсем не ясно, насколько это качественно лучшее умение, или скорее накопленное количество сведений: стандартов, протоколов, библиотек, методов сериализации или синхронизации...

С другой стороны, [livejournal.com profile] 9000 возражает в комментах там:
С другой стороны, глянем на Эйнштейна. Для придумывания ОТО нужен были именно что опыт, потому что она растёт из не настолько простых идей. Недавно мне попалась "Сумма технологий" Лема; я поразился, насколько более глубоким и менее наивным сумел стать автор за 10 лет. Притом, что Лем, imho, один из гениев 20 века.

Перечитывая свой код месячной давности, думаешь, бывало: "какой балда его написал!". Код пятилетней давности, которой уже забыл -- "хм, да я уже тогда был ловок". Код 10-леьней давности -- "ужас, ужас, каким я был наивным неумехой".

Конечно, верно и то, что, вспоминая себя 15- и 10-летней давности, я невольно накладываю на свой тогдашний образ знания и понимание, которые у меня есть сейчас. Так что в каком-то смысле неудивительно, что глубокой разницы не замечаешь. Честно говоря, мне как-то и не хочется перечитывать свой код 10-летней давности, что бы он мне ни сообщил.

И вот что еще подумалось: может быть, одна из причин того, что в последнее время (год-два) я старался изучить больше совсем новых для себя по сути своей языков (Хаскель, Лисп) было тоже связано с этим, двигалось в том числе подспудным желанием смочь сказать самому себе: я действительно знаю больше, чем знал 10 лет назад, действительно понимал что-то совсем новое и мощное, что тогда не понимал. Может быть. Потому что, если честно, картина программирования как искусства, которое не становится лучше или хуже с годами, возможность того, что со временем ничему действительно новому не учишься, мне не то что не нравится, а в какой-то степени даже ужасает. Нехорошая эта картина, не по душе мне она - и мое стремление расширить свои знания, выучить что-то действительно новое было, возможно, стремлением от нее оттолкнуться.

А вы что о всем этом думаете?
Среди программистов относительно мало женщин. Это известный факт. Но оказывается, что по крайней мере в Штатах их в последние годы становится все меньше и меньше.



Это график закончивших факультет computer science мужчин и женщин, по годам. Все время есть сильное отставание, но примерно в 1998 году оно начинает резко увеличиваться. По второй степени примерно та же картина, с несколько меньшим ростом расхождения - см. по ссылке.

Отчего это, интересно? И можно ли (стоит ли) пытаться как-то это изменить? Тим Брей пишет о своих впечатлениях от конференции по Ruby on Rails:

In the keynote, I griped about the all-male audience. I’m sorry, I’m not going to shut up about this: it is irritating, disturbing, and unacceptable that probably less than 100 of the 1600 attendees were women. It’s probably pretty lame of me to say “unacceptable” when I have exactly zero good ideas about how to fix it. I talked to a random selection of attendees; two women said “thank you for saying that” and a bunch of men said “yeah, it sucks, what can be done?”


У меня нет никаких ответов. Но мне не кажется правильным, или желанным, такое положение дел, хоть и огромной катастрофой я это тоже не считаю.

Мне кажется, что примерно с середины 90-х компьютерный мир стал все больше и больше клониться в сторону увлеченных самоучек, занимающихся программированием еще с тинейджерских лет. То есть, большинство этих самоучек в конце концов идут в университет на тот же факультет comp.sci., но их интерес к программированию обычно начинается еще в школе, задолго до университета. Таких людей, конечно, было множество и до середины 90-х, но до этой эпохи взрывного развития open-source они не были столь заметны. Начиная с конца 90-х, я бы сказал, что уровень эмоциональной взрослости среднего участника публичных форумов любого рода, посвященных компьютерам и программированию, резко падает. Можно вспомнить тот же слэшдот, на котором царит по сути дела культура американского школьного тинейджерства, в которой многим девушкам наверняка неуютно. Слишком много гормонов и сальных шуток. А может, это все бред и ни при чем, не знаю.

March 2014

S M T W T F S
       1
2 3 4 5 6 7 8
9 10 11 12 131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 22nd, 2017 10:36 pm
Powered by Dreamwidth Studios