понедельник, 28 февраля 2011 г.

The 7 deadly sins of software development

Автор - Neil McAllister.

1. Страсть (избыток проектирования)
2. Чревоугодие (неспособность к рефакторингу)
3. Жадность (соревнование между командами разработки)
4. Лень (отсутствие проверки входных данных)
5. Гнев (отсутствие практики комментировать код)
6. Зависть (не использование систем управления версиями)
7. Гордость (отсутствие юнит-тестирования)

50 лучших цитат о программировании всех времен

автор этого поста - Михаил Елашкин.

1. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше
и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

2. Lisp — это не язык, а строительный материал.
— Alan Kay

3. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard

4. Они больше не делают баги, как Банни (Bugs Bunny).
— Olav Mjelde.

5. Низкоуровневый язык — это когда требуется внимание к вещам, которые никак не связаны с программами на этом языке.
— Alan J. Perlis.

6. Программирование на С похоже на быстрые танцы на только что отполированном полу людей с острыми бритвами в руках
— Waldi Ravens.

7. Я всегда мечтал о том, чтобы моим компьютером можно было пользоваться так же легко, как телефоном; моя мечта сбылась: я уже не могу разобраться, как пользоваться моим телефоном.
— Bjarne Stroustrup

8. Обучение программированию не может научить быть экспертом, также как и изучение кистей и красок не может превратить кого-либо в художника.
— Eric S. Raymond

9. Не волнуйтесь, если что-то не работает. Если бы всё работало, вас бы уволили.
— Mosher’s Law of Software Engineering

10. Я думаю, что Microsoft назвал технологию .Net для того, чтобы она не показывалась в списках директорий Unix.
— Oktal

11. Хорошо, Java, ВОЗМОЖНО, хороший пример того как должен выглядеть язык. Но тогда программы на Java — это хороший пример как НЕЛЬЗЯ писать программы.
— pixadel

12. Учитывая текущее плачевное состояние наших программ, можно сказать, что программирование определенно все ещё черная магия и, пока, мы не можем называть его технической дисциплиной.
— Bill Clinton

13. Использование COBOL калечит разум; исходя из этого, обучение этому языку должно быть признано уголовно наказуемым преступлением.
— E. W. Dijkstra

14. Объектно-ориентированная версия «спагетти кода» — это, конечно, «лазанья код» (очень много слоев).
— Roberto Waltman

15. FORTRAN — это не цветок, а сорняк: он вынослив, иногда расцветает и произрастает в каждом компьютере
— Alan J. Perlis.

16. Для меня долгое время было загадкой, как что-то очень дорогое и технологичное может быть столь бесполезным. И вскоре я осознал, что компьютер — это глупая машина, обладающая способностями выполнять невероятно умные вещи, тогда как программисты — это умные люди, у которых талант делать невероятные глупости. Короче, они нашли друг друга.
— Bill Bryson

17. По моему эгоистическому мнению, большинство программ на C должны быть отформатированы с отступами на 2 метра вниз и засыпанными землей.
— Blair P. Houghton.

18. Когда кто-то говорит: «Я хочу язык программирования, который может делать все, что ему скажу», то я даю этому человеку леденец.
— Alan J. Perlis

19. Эволюция языков: FORTRAN — не строго типизированный язык, С — слабо типизированный язык. Ada — сильно типизированный язык. С++ — сильно раздутый язык.
— Ron Sercely

20. В хорошем дизайне добавление вещи стоит дешевле, чем сама эта вещь.
— Thomas C. Gale

21. Если называть Python заменой BASIC, то тогда и трансформер Optimus Prime — это только замена грузовика.
— Cory Dodt

22. Болтовня ничего не стоит. Покажите мне код.
— Linus Torvalds

23. Как видно, совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять.
— Antoine de Saint-Exupéry

24. С — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.

25. В теории, теория и практика неразделимы. На практике это не так.
— Yoggi Berra

26. Вы не можете создавать хорошие программы без хорошей команды, но большинство софтверных команд ведут себя как проблемная семья.
— Jim McCarthy

27. PHP — это маленькое зло, созданное некомпетентными новичками, в то время как Perl — это большое и коварное зло, созданное умелыми, но извращёнными профессионалами.
— Jon Ribbens

28. Программирование — это как бить себя по лицу, рано или поздно ваш нос будет кровоточить.
— Kyle Woodbury

29. Perl — это тот язык, который одинаково выглядит как до, так и после RSA шифрования…
— Keith Bostic

30. Намного легче портировать шелл, чем скрипт на шелле.
— Larry Wall

31. Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом.
— Alan Kay

32. Изучение программирования имеет такое же отношение к проектированию интерактивных систем, как обучение слепой печати к написанию стихов.
— Ted Nelson

33. Лучшие программисты не чуть-чуть лучше хороших. Они на порядок лучше по любым меркам: концептуальное мышление, скорость, изобретательность и способность находить решения.
— Randall E. Stross

34. Если бы McDonalds была бы софтверной компанией, то у них один из ста Биг Маков был бы отравленным, и их ответ на это был бы: «Мы сожалеем, вот вам купон на ещё два Биг Мака."
— Mark Minasi

35. Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.

36. Анализ компьютерных систем — это как воспитание детей; можно нанести огромный вред, но нельзя гарантировать успех.
— Tom DeMarco

37. Меня не интересует, будет ли это работаеть на ваших машинах! Мы не отдаем их заказчику!
— Vidiu Platon.

38. Иногда лучше остаться спать дома в понедельник, чем провести всю неделю отлаживая написанный в понедельник код.
— Christopher Thompson

39. Измерять продуктивность программирования подсчетом строк кода — это так же, как оценивать постройку самолета по его весу.
— Bill Gates

40. Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
— Brian W. Kernighan.

41. Люди считают, что программирование — это наука избранных, но в реальности все наоборот — просто много людей создают программы, которые используют чужие программы, как-будто строя стену из маленьких кирпичиков.
— Donald Knuth

42. Сначала учите науку программирования и всю теорию. Далее выработаете свой программистский стиль. Затем забудьте все и просто программируйте.
— George Carrette

43. Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня.
— Larry Wall

44. Большинство программ на сегодняшний день подобны египетским пирамидам из миллиона кирпичиков друг на друге и без конструктивной целостности — они просто построены грубой силой и тысячами рабов.
— Alan Kay

45. Трудность работы с програмистом заключается в том, что вы не можете понять что он делает до тех пор пока не стало слишком поздно.
— Seymour Cray

46. Итерация свойственна человеку, рекурсия божественна.
— L. Peter Deutsch

47. Меня два раза спрашивали [члены Парламента]: «Скажите на милось, мистер Бэббидж, что случится, если вы введете в машину неверные цифры? Cможем ли мы получить правильный ответ?» Я не могу себе даже представить какая путаница в голове может привести к подобному вопросу.
— Charles Babbage

48. Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
— Linus Torvalds

49. Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
— Martin Golding

50. Есть два способа создания дизайна программы. Один из них, это сделать его настолько простым, что в нем, очевидно, не будет недостатков. Другой способ — сделать его настолько запутанным, что в нем не будет очевидных недостатков.

среда, 3 ноября 2010 г.

About Cobertura

Увлекшись вопросом юнит-тестирования, набрела на такой инструмент, как Cobertura. Использование кубертуры позволяет оценивать покрываемость кода тестами (подробно об этом написано в 5 главе книги JUnit in Action), так же, как и использование этой библиотеки из командной строки. Для эклипса существует прекрасный плагин, который можно скачать по адресу http://ecobertura.johoop.de/update/, в настройках можно указать параметры запуска, какие только пожелает душенька, в общем, прекрасная вещь, если ты "test infectioned"(с). Кстати, по заверениям авторов вышеназванной книги, данный интрумент прекрасно интегрируется не только с JUnit, но и с другими фрэймворками для тестирования.

суббота, 23 октября 2010 г.

Мужские правила

Очень толковый туториал для мальчиков. Почему для мальчиков? Потому что девочки все это и так знают, а у парней зачастую мозг начинает плавится от того, "как это у вас все сложно (с)". :) Ссылку на оригинал не нашла, поэтому запощу весь текст у себя.


Этика сексуальной жизни

Глоссарий.
Это термины введены для ясности. Эти этапы общения вытекают один из другого. Будь осторожен!
..............................................................................................
Одноразовое приключение. Секс в день знакомства. Не подразумевает ни близкого знакомства, ни дальнейшего общения.

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

Отношения. Подразумевают верность, совместное проведение праздников, знакомство с родственниками, вопросы вроде «Ты где?» и по возможности честные ответы на них.

Вместе живёте. Всё тоже самое плюс общий бюджет. От брака этот тип общения отличается только формально.
.................................................................................................

1) Если девушка предлагает тебе секс, а ты по каким-либо причинам не можешь принять её любезное предложение, ты не говоришь ей правду про кривые зубы и длинные носы. Ты произносишь ритуальную фразу: «Я так не могу». На вопросы, как это «так», следуетничего не отвечать, но многозначительно вздыхать и покачивать головой.

2) Если девушка девственница, она обязана тебя об этом предупредить. И не обижаться если ты решишь улизнуть, пока не поздно. Тут ведь дело не в том, что из тебя выйдет плохой Гагарин, потому что ты боишься первым в космос лететь. Ты просто не хочешь ранить нежную психику.

3) Список женщин к которым нельзя подкатывать ни в коем случае:
гёрлфренд твоего друга;
сестра твоей девушки;
мама твоей девушки.

4) К кому можно подкатывать, только с прицелом на отношения:
сестра твоего друга;
подруга девушки, с которой вы просто встречаетесь;
бывшая девушка твоего друга;
дочка твоего друга.

5) Если вы, познакомившись, в ту же ночь занялись сексом (см.Одноразовое приключение), подразумевается, что завтра вы расстанетесь и больше никогда не увидите друг друга.
Право звонка с целью перехода в новую категорию отношений в этом случае остаётся за тобой.

6) Если ты встречаешься с девушкой больше трёх раз и не сделал попытки с ней переспать, ты негодяй, который пытается заставить её даром растрачивать драгоценные биологические часы.

7) Если вы встречались больше двух раз, то после секса ты должен позвонить. Хотя бы для того, чтобы сказать спасибо. Но можно отделаться sms-кой.

8) Если ты встречался с девушкой больше десяти раз и всё ещё не делаешь попытки с ней переспать, то отныне ты переходишь в категорию друзей. Теперь она может при тебе переодеваться, ходить с тобой в баню и рассказывать тебе про своих мужчин. Если теперь ты попытаешься подкатить к ней со своим сексом – ты негодяй, который покусился на светлое понятие дружбы.

9) Если ты невиннейшим способом встречался с девушкой больше ста раз, а потом вы неожиданно занялись сексом, это значит, что у вас был дружеский секс, который не имеет никакого значения.

10) После дружеского секса ты не имеешь никакого права её ревновать.

11) Если после дружеского секса вы в течение месяца опять не устояли перед соблазном – значит, у вас начались отношения. Со всем кульком соответствующих обязанностей.

12) Пока вы просто встречаетесь и от случая к случаю занимаетесь сексом, вы свободные люди. До тех пор, пока кто-нибудь из вас не откроет рот и не произнесёт пароль: «Ya tebya lyublyu». После произнесения пароля вы либо заводите отношения, либо расстаётесь.

13) Если пароль был произнесён во время секса или в состоянии глубокого алкогольного опьянения, он считается недействительным.

14) Если мужчина и женщина просто встречаются, то, столкнувшись со своим партнёром в сопровождении кого-то другого, они должны сделать вид, что незнакомы, чтобы не ставить друг друга в неловкое положение. При желании эту встречу можно потом обсудить в юмористическом ключе.

15) Отношения в первую очередь предполагают, что отныне вы не встречаетесь и не спите ни с кем, кроме друг друга. Если эта перспектива не вызывает в ком-то из вас исключительного восторга, лучше предупредить об этом заранее.

16) Первые несколько недель после начала отношений вполне простительно иногда заниматься сексом со своими предыдущими партнёрами, потому что всем понятно, что расстаться вот так сразу и навсегда – это очень не легко. Главное, чтобы о подробностях этих расставаний никто не узнал.

17) Если девушка забеременела, она обязана тебе об этом сказать. В конце концов, в это дело ты тоже вложил частичку себя и теперь имеешь право затребовать отчёт по вложениям.

18) Если девушка забеременела, а ты во время секса не пользовался презервативом и не спрашивал, пьет ли она таблетки, ты имеешь право настаивать на том, чтобы она сохранила беременность, но не должен настаивать на её прерывании.

19) За аборт всегда платит мужчина. Он же сопровождает девушку к врачу и забирает её оттуда.

20) Если вы решили сохранить ребёнка, ты должен быть готов тут же предложить жениться. С одной стороны, дети и брак – явления не взаимосвязанные. Прежде чем младенец сможет пролепетать: «Мама и папа, а у вас штамп в паспорте есть?» - пройдёт не меньше десяти лет. Но всё дело в том, что многочисленные родные и близкие девушки научатся говорить эту фразу намного раньше.

21) Если девушка беременна, ты сделал ей предложение, а она отказалась, то хороший тон требует дождаться, пока у неё пройдёт токсикоз, и выступить с повторным предложением. Может быть, в этот раз у неё не появится при этом такого странного выражения лица.

22) Если ты женат, ты обязан сообщить об этом девушке, с которой собрался заняться сексом (кроме варианта одноразового приключения).

23) Если ты застал свою подругу с другой женщиной, ты имеешь право молча раздеться и присоединиться к ним. Если они с визгом отказываются от твоего общества, это повод потом серьёзно поговорить о ваших с ней отношениях и мрачных перспективах их дальнейшего неразвития.

24) Если твоя подруга застала тебя с другим мужчиной… Какую-то фигню мы пишем. Пункт снимается.

25) Мужчины не рассказывают друг другу сексуальных подробностей своих отношений. Но если вы просто встречаетесь, это допустимо.

26) Девушки могут рассказывать друг другу всякие хвастливые ужасы про секс со своими постоянными партнёрами.

27) Через год после того, как вы стали жить вместе, девушка имеет право называть тебя «мой муж» вне зависимости от наличия соответствующих закаляк в её паспорте. И не задумывайся особо, не о чем тут задумываться. Просто ты – то можешь спокойно говорить «моя девушка». А ей как тебя именовать? «Мой молодой человек»? «Сожитель»? «Мужчина, с которым мы ведём то, что с некоторой долей оптимизма можно назвать домашним хозяйством»?
А «муж»- это так же просто и быстро, как чихнуть, и не требует никаких дополнительных пояснений.

28) В каждой квартире, где живут вместе мужчина и женщина, должны быть два телевизора с двумя пультами. Это закон природы. Шумахер и Шевченко не полюбят любимую няню.

29) Ни один уважающий себя человек любого пола не будет пить кровь другого человека за то, что тот позволил себе пофлиртовать в секс чате или полазил пару часиков по сайтам с тремя крестиками.

30) Изучать звонки и сообщения на чужом мобильнике – более серьёзное правонарушение, чем хранить на этом мобильнике любовные письма от посторонних граждан. Скандал в этом случае вправе устраивать тот, чей телефон стал жертвой незаконного проникновения.

31) Мужчина никогда не поднимет на женщину руку. Даже если она капоэйристка в тяжёлом весе. Для поднимания на женщин есть и другие части тела.

32) На любом этапе общения мужчина может дарить женщине подарки (ровно и наоборот), и это ничего не будет значить. Но не кольцо. Кольцо что-то значит. После получения в подарок колечка девушка вправе рассчитывать на это что-то.

33) Даже если у вас отношения, вы не должны мешать друг другу умело принимать корректные знаки внимания от поклонников(-ниц). Умело – это значит улыбаться в ответ на комплименты, вести светские беседы и, может быть, даже станцевать медленный танец на расстоянии вытянутой руки. А корректные – это значит не лезть выпить на брудершафт, не прихватывать постороннего человека за эрогенные зоны и не отпускать двусмысленных шуточек. Некорректные ухаживания должны строго пресекаться. Пусть даже неумело.

34) Если один из постоянных партнёров в рамках отношений всё же совершат краткие визиты налево, второй имеет полное моральное право поступать точно так же. Но только если первый имел глупость во всём признаться.

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

36) Секс на стороне без презерватива в рамках отношений – это преступление против человечества (хотя на первый взгляд может показаться что «за», особенно если учитывать демографическую ситуацию в нашей стране).

37) Если факт измены стал известен партнёру, виновная сторона имеет право приводить в своё оправдание чудовищные в своей бессмысленности и неправдоподобии отговорки. Такие отмазки должны восприниматься пострадавшей стороной не как
издевательство, а как отчаянные попытки сохранить отношения.

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

39) Если разделом имущества официальных супругов при разводе сплошь и рядом занимаются суды и адвокатские конторы, то для расставания неженатых обычно никаких юридических норм нет.
Вот вещи, которые обязательно надо вернуть.
Обручальное кольцо, если брак не состоялся. Оно не было подарком; оно, выражаясь сухим языком юриспруденции, являлось инструментом, необходимым для завершения оговоренной сделки. Или, вернувшись обратно к нормальному, мокрому языку, до свадьбы кольцо остаётся личной собственностью того, кто его покупал.
Шантажирующие предметы:
домашнее порно, которое вам так весело было снимать вместе, фотографии в голом виде, записки с рассказами о том, как хорошо было этой ночью,- в общем, всё, что в один прекрасный день может помешать кому-нибудь из вас баллотироваться в президенты. И не забудь отправить ей обратно все sms-ки, которые она тебе посылала!
А вот забирать обратно любые подарки – это не комильфо.

40) Бывший муж, напившийся до зелёных ящериц, имеет право звонить ночью своей бывшей жене и спрашивать, почему она поломала ему всю жизнь. Но не более трёх звонков за загул. Также он имеет право впадать в её дверь и сладко засыпать на коврике в прихожей, но не чаще трёх раз в год. Взамен он обязан в любой момент приезжать по её вызову с дрелью и отвёрткой – выполнять нехитрую мужскую работу по дому.

41) В понятие «нехитрая мужская работа по дому» секс не входит. Но может и войти при взаимном непротивлении сторон.

пятница, 22 октября 2010 г.

Social Network in Action

Обзорная статья by Иван Блинков об архитектуре Facebook - самые первые вещи, о которых стоит подумать, чтобы приступить к созданию собственной социальной сети.

Some Words about Eclipse

Перешла на Eclipse совсем недавно, но он меня устраивает полностью. Работает шустрей Идеи, правда, иногда глючит. Глючность эклипса часто можно пофиксить правильными настройками и грамотным управлением :)
1. Work with Proxy. Путем проб и ошибок выяснилось, что эмуляторы на платформах 2.0 и выше под виндой работают с прокси очень хитрым способом. Я делаю так: во-первых, в настройках эмулятора, пункт "Wireless and networks" -> "Mobile Networks" -> "Access Points Names" -> "Telkila", там прописываются параметры прокси, причем нужно указывать не имя прокси-сервера, а действительный IP (его можно посмотреть, запустив debug proxy). Для отслеживания прокси-вызовов я запускаю эмулятор строкой
emulator -avd b<имя эмулятора> -http-proxy http://<домен>\<имя пользователя>:<пароль>@<название сервера>:<порт>
2. Для управления эмуляторами (в частности, их файловой системой и Location) используется перспектива DDMS.
3. Лог эмулятора можно увидеть на View LogCat.
4. Так как работа идет с несколькими приложениями в рамках одной сессии одновременно, причем приложения разной природы, полезная вещь - иметь окошко Debug постоянно висящим где-нибудь в зоне видимости. Там видно, что сейчас работает, что уже завершилось, что завершилось некорректно.