Pull to refresh
0
0
galileo @galileo

User

Send message

Комментарии в коде — полезные, бессмысленные, вредные?

Reading time3 min
Views27K
Как-то проглядывая код некоторых старых модулей, вновь подумал о роли комментариев. Вопрос хоть и тривиальный и обсужденный миллионы раз в книгах, блогах, статьях и форумах, а все-таки подчас задевает за живое. При этом, о пользе комментариев пишут гораздо чаще, чем о их вреде.

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

Итак:
Читать дальше →
Total votes 107: ↑71 and ↓36+35
Comments221

Hg Init: Часть 2. Основы Mercurial

Reading time7 min
Views230K
Это вторая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Возможно, вы захотите прочитать и первую часть «Переобучение для пользователей Subversion».

Даже если вы работаете в одиночку, то вам стоит использовать Mercurial. Так вы сможете получить все прелести контроля версий. Эта часть покажет насколько просто добавить каталог в Mercurial, чтобы с легкостью отслеживать предыдущие версии.

Часть 2. Основы Mercurial



Mercurial — это система контроля версий. Разработчики используют ее для администрирования исходного кода. У нее два основных назначения:
  1. Она хранит все предыдущие версии каждого файла
  2. Она может объединить разные версии вашего кода, то есть сотрудники могут независимо работать над кодом и затем объединять свои изменения


Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments66

Собираю страшненькое от программистов

Reading time3 min
Views25K
Уважаемые коллеги-программисты, предлагаю поделиться в комментариях примерами ошибок, которые на ваш взгляд можно обнаружить в программе еще на этапе ее написания. Наверняка у всех были ситуации, когда исправляя после часовой отладки ляп, вы вздыхали «эх, ну что же мне компилятор здесь предупреждение не выдал».

Мне интересны в первую очередь паттерны ошибок, допускаемых в программах на Си++. Но я сознательно не стал помещать этот пост в раздел «Си++». Приводите примеры ошибок из других языков. Часто рассматривая ошибку, можно придумать ее аналог на другом языке.

Ошибки мне нужны для создания нового уникального набора правил диагностики ошибок общего типа. Правил, которые действительно актуальны, которые найдут ошибки не в абстрактных приложениях, а в данных нам в ощущениях. Неинтересно уже искать в тексте завалявшиеся случайно триграфы. Ни разу не видел ошибку, связанную с триграфом. А вот опечаток, где для очистки строки вместо str.clear() написано str.empty(), полным-полно. Например, я писал про такой пример здесь. И ведь такие ошибки не находятся существующими инструментами! Поэтому мы и идем по пути создания нового, а не повторения старого.

Теперь попробую пояснить, про какие же ошибки мне хочется услышать и как.

Читать дальше →
Total votes 63: ↑54 and ↓9+45
Comments82

Пять лучших способов завалить IT-стартап. Вредные советы

Reading time6 min
Views6.5K
«Хватит работать на дядю! Пора собрать команду правильных людей и заработать миллион!»

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

Миллиона я, конечно, не заработал, но опыта накопил изрядно — по крайней мере мои нынешние проекты обеспечивают какой-никакой доход.

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

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

«Хит-парад» составлен по принципу общей паскудности ситуации. По степени же распространенности я постараюсь говорить о тех проблемах, которые не слишком освещены в тематических книгах и статьях, однако, тем не менее, случаются на каждом шагу.

Читать дальше →
Total votes 131: ↑114 and ↓17+97
Comments46

Как начать работу над стартапом?

Reading time6 min
Views14K
Топик навеян впечатлениями от докладов на swpiter и постом о том, как не продать машину :)

Как работать над стартапом и всегда оставаться в выигрыше?


Суть в чём, есть некая порция работы, которую нужно сделать перед тем, как начинать тратить свои деньги. Я попытался описать последовательность этих действий.

Картинка слева кликабельна, а ниже — текстовое описание в 12 шагах как инициировать стартап и при этом всегда оставаться в выигрыше.

1. Идея!


И так, всё начинается с идеи, которая каким-то образом пришла к вам в голову. Идея выглядит интересной и соблазнительной. Она мотивирует вас.

Самое важное в идее — это не терять мотивацию вплоть до 10 шага и тогда вы в любом случае получите для себя выгоду.

2. Детализация идеи


Необходимо хотя бы примерно ответить на эти вопросы:
  • область применения
  • какие задачи поможет решить
  • какие инструменты применяются для решения задач
  • что вы хотите получить в процессе и в результате реализации
  • какие-то существенные моменты, которые вам просто необходимо изложить, чтобы не потерять в будущем
На этом этапе ещё рано отвечать на вопросы:
  • сколько времени вы можете уделить (если идея вас реально интересует, вы перейдёте к следующим этапам)
  • сколько на это нужно денег
  • кто вам ещё нужен для реализации идеи
Читать дальше →
Total votes 153: ↑133 and ↓20+113
Comments52

Objective-C с нуля

Reading time23 min
Views437K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Total votes 163: ↑155 and ↓8+147
Comments61

Ломаем капчу

Reading time3 min
Views80K
Гуляя по просторам интернета, зашёл на один высокопосещаемый древний сайт рунета. Для того, чтобы скачать файлик с этого сайта, нужно угадать вот такую капчу:
image
В очередной раз видя картинку с цифрами — решился. В голове уже давно проносились мысли, сломать какую-нибудь капчу :)

Ставлю себе задачу: Написать скрипт, который будет расшифровывать показанную капчу и выплевывать драгоценные циферки.

Название сайта специально не привожу — сами догадаетесь :)

Итак, поехали!

Читать дальше →
Total votes 322: ↑302 and ↓20+282
Comments144

Программист, который отвлекается

Reading time5 min
Views13K
Автор статьи — программист с шестнадцатилетним стажем работы — был поставлен перед невозможностью подолгу сидеть за компьютером (как поступают многие из нас). В этой статье он рассказывает о том, как организовать свою рабочий процесс так, чтобы частые перерывы не вредили возможности сосредоточиться на работе и эффективности труда. В принципе достаточно известные вещи, но лично для меня стали новостью инвертирование приоритетов и сам факт того, что можно работать отвлекаясь и при этом не терять ход мысли.

Я не могу безболезненно сидеть за столом дольше часа подряд, и я не могу работать больше, чем стандартный восьмичасовой день. Проблема в том, что последние 15 лет моя стратегия работы заключалась в том, чтобы поймать «поток» и после этого кодить очень долго без перерывов. Эта стратегия очень популярна у кодеров, любящих запираться на сутки, надевать наушники и отключаться от внешнего мира — и именно поэтому они так болезненно реагируют, когда их отвлекают. Программирование требует концентрации, а концентрация работает по принципу клапанного механизма — на разогрев и запуск требуется время, поэтому уже запущенный механизм лучше не останавливать.

Я не думал, что существуют другие способы программирования, и уже начал было смиряться с тем, что обречен на низкую производительность. Но за последние 6 месяцев я обнаружил, что «медленный разогрев и долгая работа без перерывов» — поведение приобретенное, а не врожденное, и вполне возможно переучиться на другие ритмы активности. Это похоже на многофазный сон — как только вы привыкли делать вещи определенным образом, любые изменения очень трудоемки, но возможны — при наличии достаточной мотивации и времени на привыкание.

Читать дальше →
Total votes 148: ↑142 and ↓6+136
Comments130

Как уместить полный рабочий день в 3 часа

Reading time3 min
Views9.6K

Вступление


C системой Аллена меня познакомили около двух лет назад. Начинал пользоваться вариантом Васи Кислого с помощью HTC Touch Pro, но глючность девайса сильно мешала освоить систему, а сам «Успеватель» не давал необходимого уровня понимания. С GTD пришлось на время расстаться.

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

Попытки вести мобильную версию системы в Nokia E63 с помощью «Активных заметок» привели к покупке книги Дэвида Аллена, переработке статьи В. Кислого, приобретению стабильно работающего, хоть и старенького HTC P3400 (а потом и более современного продукта от HTC) и введению бумажной, физически ощутимой части этой системы.

Итогом переработки стала строгая вариация за моим авторством на тему Дэвида Аллена в обработке Васи Кислого. Благодаря ей, работа стала занимать не больше 3-х часов в день. Но за это время я успеваю сделать действительно много.

Следуя этим принципам, я прихожу на работу к 11-12 часам, работаю плотно и не отвлекаясь до 15 часов. В 15 часов ухожу в зал потаскать железки, прихожу в офис к 17-30, прорабатываю за полчаса все накопившееся с 15 часов. И еду домой.

Пока я не разобрался и не адаптировал под себя систему Аллена, мой рабочий день не ограничивался 8 часами в офисе. Приходилось работать еще вечером дома.

Кому интересно, прошу под кат.
Читать дальше →
Total votes 204: ↑150 and ↓54+96
Comments155

Шестиугольный тетрис

Reading time4 min
Views3.8K
Похоже, что это входит в привычку — раз в полгода я выкладываю в opensource какую-нибудь свою поделку.

В этот раз я представляю на суд и удовольствие общественности клон тетриса. Шестиугольный.

Идея игры, думаю, всем знакома. Я постарался придать ей вкусную реализацию. Это:

  • Предсказуемое поведение фигур. Что-то типа физики. На пример, если вы хотите повернуть фигуру, а стенка ей мешает, то фигура подвинется. В разумных, конечно, пределах.
  • Скины.
  • Регулируемый размер поля.
  • Просто постарался придать этому делу приятный вид
Читать дальше →
Total votes 140: ↑129 and ↓11+118
Comments102

Эффективное обучение: практические советы

Reading time6 min
Views49K
Здесь я соберу несколько практических советов (большинство из них проверены на личном опыте), подкрепленных научными фактами, которые помогут сделать процесс обучения эффективным. Применять можно как к самообучению, так и обучению кого-либо. Если вы учитесь где-то, проверьте, сколько из перечисленных пунктов действительно применяются в учебном процессе — это поможет вам правильно оценить эффективность вашего образовательного процесса и изменить в нем что-либо так, чтобы это удовлетворяло ваши потребности.

Вот эти советы:
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments3

Новая система образования

Reading time3 min
Views2.7K
Многие тут, я знаю, высшее образование в России недолюбливают по вполне понятным причинам. Я пойду немного дальше и попробую вам для начала коротко объяснить, почему высшее образование на западе тоже имеет серьезные проблемы. А потом предложу альтернативную идею, которую было бы интересно обсудить.

Читать дальше →
Total votes 92: ↑64 and ↓28+36
Comments236

Zen Engineering

Reading time1 min
Views2.8K



Когда есть свободная минута, открываю любую методику наугад, внимательно перечитываю и «медитирую по мотивам».





Несколько дней назад ZotovSergey упомянул про свою коллекцию различных методик повышения продуктивности мышления (принятия решений) и отрывочных записей на эту тему.
По просьбам, которые здесь последовали, он открыл свой блокнот «Zen Engineering» в Evernote для публичного доступа.

Читать дальше →
Total votes 70: ↑61 and ↓9+52
Comments23

Книга с алгоритмами на C++ (архив сайта e-maxx.ru)

Reading time1 min
Views45K
Есть один замечательный сайт, посвящённый алгоритмам — наверняка многие из Вас о нём слышали и выкачивали его содержимое Teleport’ом или чем-нибудь подобным. Но совсем недавно Максим (автор сайта) создал очень удобную pdf-книжку из всех статей, что присутствовали на сайте. Я знаю, что ему будет приятно узнать, что его труды пригодились IT-сообществу, поэтому я и решил написать тут о электронной книге с алгоритмами.
Читать дальше
Total votes 107: ↑105 and ↓2+103
Comments40

Ещё раз про сортировку

Reading time11 min
Views35K
Прошлый топик, про оценку сложности алгоритмов был весьма положительно оценён хабрасообществом. Из этого я могу сделать вывод, что тема базовых алгоритмов весьма интересна. Сегодня я хочу представить вам часть, посвящённую алгоритмам сортировки. Про базовые алгоритмы писать для Хабра совсем несерьёзно, а вот про сортировки Шелла, пирамидальную и быструю рассказать всё-таки стоит. (Если кому-то интересно почитать про базовые методы, милости прошу сюда)
Читать дальше →
Total votes 51: ↑36 and ↓15+21
Comments39

Трехмерное видео: тернистый путь к зрителю

Reading time4 min
Views1.5K
В этом посте я решил изложить свое видение ситуации, сложившейся с рынком 3D-телевизоров, когда крайний энтузиазм производителей, который вылился в масштабные обновления продуктовых линеек, грозит столкнуться с полнейшим равнодушием нас, потребителей. Вполне, кстати, заслуженным. Это краткая версия, чтобы не перегружать деталями и фактами. Полная в блоге здесь

Состоявшаяся неделю назад выставка потребительской электроники IFA 2010 в Берлине отчетливо показала, насколько увлечены производители поддержкой 3D в своей продукции. Трехмерную картинку предлагают смотреть по телевизору, проектору и мобильнику, а также записывать на камеру и фотографировать. Остается лишь вопрос, разделяют ли этот маркетинговый раж потенциальные потребители.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments52

Как работают алгоритмы сортировки

Reading time1 min
Views22K
Иногда для понимания того, как работает та или иная вещь, лучше один раз увидеть, чем сто раз услышать.

Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами. Вы сможете посмотреть анимацию в зависимости от алгоритма, исходных данных.



Все это бегает и сортируется прямо на ваших глазах!

Работает на Google App Engine, видимо, поэтому и лежит от посетителей с «Хабра».
Total votes 185: ↑151 and ↓34+117
Comments63

Оценка сложности алгоритмов

Reading time6 min
Views623K
Не так давно мне предложили вести курс основ теории алгоритмов в одном московском лицее. Я, конечно, с удовольствием согласился. В понедельник была первая лекция на которой я постарался объяснить ребятам методы оценки сложности алгоритмов. Я думаю, что некоторым читателям Хабра эта информация тоже может оказаться полезной, или по крайней мере интересной.
Читать дальше →
Total votes 84: ↑72 and ↓12+60
Comments66

Ультралегкие стартапы в Рунете: уже можно… но лень?

Reading time5 min
Views1.1K
Прочитав статью об основателе ooShirts.com Ричарде Лэе и его бизнесе, опубликованную на Хабре 9 сентября, я очень обрадовался: наконец-то об ультралегких стартапах, которые прекрасно себя чувствуют в “западных интернетах”, заговорили по-русски.

Однако комментарии к посту оптимизма поубавили, и в то же время заставили задуматься: почему отечественный “интернет-деятель” ищет десятки причин, вроде бы объясняющих нереальность повторения успеха Лэя в Рунете (под повторением имею в виду не копирование идеи, а воспроизведение модели ультралегкого стартапа, а уж продукт или услуга могут быть какими угодно), вместо того, чтобы использовать возможности, которые уже есть… или создать новую бизнес-модель, но на базе существующих сервисов?

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

А уж как именно почковаться — зависит от специфики бизнеса. Компания Лэя доверяет печать и отправку заказов стороннему производителю; разработчики приложений в социальных сетях адресуют их многомиллионной аудитории ВКонтакте или Фейсбука; сервисы коротких ссылок обрели популярность благодаря Твиттеру и прочим микроблогам и т.д.

Но если всё так просто — что делает отдельные министартапы звёздами, о которых пишут газеты и блоги? Почему на фотографии именно Ричард Лэй, а те, кто громко кричит о том, что “у нас такое невозможно” — лишь в комментариях? Попробую, не претендуя на истину в последней инстанции, изложить свою версию ответа на этот вопрос, тем более, что получил я его благодаря другой публикации на Хабре… впрочем, обо всем по порядку.

Читать дальше →
Total votes 147: ↑131 and ↓16+115
Comments124

Information

Rating
Does not participate
Date of birth
Registered
Activity