• Как сойти за хорошего программиста

    Привет, Хабр! Представляю вашему вниманию перевод статьи «How To Fake Being a Good Programmer» автора Stan Sootla.



    Программисты – это своего рода волшебники: слегка потрепанные персонажи-бедняки, которые умеют превращать кофе в строчки кода. Я не владею магией, я всего лишь иллюзионист.

    Моя работа – быть более аутентичным в том, чтобы быть фальшивым программистом, чем настоящие программисты в том, чтобы быть самими собой.
    Читать дальше →
  • Как включить новый дизайн Google

      На днях компания Google анонсировала свой новый дизайн, а точнее новую навигацию на своих сайтах.



      Но по старой доброй традиции видеть изменения могут не все, что бы посмотреть на новый дизайн нужно выполнить пару простых действий

      1. Переходим на сам Google.
      2. Нажимаем Ctrl + Shift и J в Google Chrome (для открытия Developer Tools) или Ctrl+Shift+K в Firefox
      3. Выбираем вкладку «Console» и вводим код:

      document.cookie="PREF=ID=03fd476a699d6487:U=88e8716486ff1e5d:FF=0:LD=en:CR=2:TM=1322688084:LM=1322688085:S=McEsyvcXKMiVfGds; path=/; domain=.google.com";window.location.reload();

      4. Profit!

      UP: Если вы используете другой (региональный) домен, то измените domain=.google.com на .google.ru .google.co.uk и.т.
    • Обучаем HID устройство (читай BT-клавиатуру) работать правильно

        Приветствую, хабралюди!
        На ДР, мне друзья подарили BT-клавиатуру. Маленькая, беленькая, симпатичная, Удобная!
        Подключил ее к своему Android 2.3.5 (SGSII), стал с ее помощью лазить по меню, запускать программы, дошел до Вконтакте и решил написать сообщение… а вот переключить на русский язык не смог, но как оказалось позже, это еще были только цветочки! Но кое-что мне удалось. Интересно как?
        Вперед по кат...
      • Я не знаю ООП

          Я не умею программировать на объектно-ориентированных языках. Не научился. После 5 лет промышленного программирования на Java я всё ещё не знаю, как создать хорошую систему в объектно-ориентированном стиле. Просто не понимаю.

          Я пытался научиться, честно. Я изучал паттерны, читал код open source проектов, пытался строить в голове стройные концепции, но так и не понял принципы создания качественных объектно-ориентированных программ. Возможно кто-то другой их понял, но не я.

          И вот несколько вещей, которые вызывают у меня непонимание.
          Читать дальше →
        • Пишем драйвер для самодельного USB устройства

          Целью этой статьи является пошаговая демонстрация процесса разработки всего набора программного обеспечения необходимого для организации связи самодельного устройства с компьютером посредством USB.

          На данный момент, большинство радиолюбителей реализуют такой тип подключения используя чипы переходники USB в RS232 таким образом организуя связь со своим устройством посредством драйвера виртуального COM порта поставляемого с чипом переходником. Минусы такого подхода думаю понятны. Это как минимум лишний чип на плате и ограничения накладываемые этим чипом и его драйвером.
          Мне же хочется осветить весь процесс организации такого взаимодействия так как оно и должно быть сделано, и как делается во всех серьезных устройствах.
          В конце концов, сейчас 21-й век, модуль USB есть почти во всех микроконтроллерах. Именно о том, как наиболее быстро воспользоваться этим модулем и будет эта статья.
          Читать дальше →
        • Равномерное выравнивание блоков по ширине

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

            В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
            image
            Читать дальше →
            • +154
            • 11.1k
            • 87
          • Битовые операции в PHP на примерах

              Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

              Например, встречались такие варианты:
              if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
              или
              if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

              В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
              Читать дальше →
            • Установка словарей для проверки орфографии в NetBeans

                Всем привет!

                Чего хотим


                Хотим чтобы работала проверка орфографии в NetBeans для русского языка.

                Как сделать


                КО: Чтобы работала проверка орфографии для русского языка, надо установить словарь для русского языка!

                Поскольку найти словарь сходу не удалось, пришлось сделать его самому. Под катом рассказ как сделать свой словарь для NetBeans. Для тех кто не хочет морочиться, в конце статьи приведены ссылки на готовые словари.

                UPDATE
                В комментариях подтвердили работоспособность словарей в IntelliJ IDEA и Eclipse IDE.

                хочу знать как ты это сделал
              • Как на самом деле работает mod_rewrite. Пособие для продолжающих

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

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

                  Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

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

                  Почему так происходит?
                  Читать дальше →
                • Интерполяция: рисуем гладкие графики средствами PHP и GD

                    Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



                    Интерполяция — построение кривой, проходящей через заданные точки.
                    Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

                    В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

                    Кратко рассмотрим методы интерполяция и аппроксимации.
                    Читать дальше →
                  • История одного бизнеса

                    Доброго времени суток, Хаброграждане!
                    Дабы не делать этот пост рекламным назовем его "гипотетическая история одного бизнеса"
                    Все начиналось с товара. Он был качественный, а бренд известный. Вместе с ним существовало еще с десяток, таких же товаров: 50% были лучше, 50% хуже. И было два человека: один бывший студент-философ, а другой без высшего образования.
                    Продавать мы пытались по-всякому. Лично в руки, делали интернет — магазин, пытались продавать оптом и быть эксклюзивным дистрибьютером в Запупкинске. А потом пришел Groupon, а с ним и концепия one product webshop, и нам даже показалось "вот оно". Но нет… Скидычные сервисы действительно созданы для услуг и продавать там товары — стратегия не долгосрочная, я бы даже сказал "one night webshop". Потом придумывали игру с заложенной концепцией "купи — продай — получи". Но тут нужны большие деньги, чтобы достучаться до простофиль. И наконец...
                    Читать дальше →
                  • Аспекты HTML & CSS

                    В данном материале собраны аспекты, которые полезно знать и помнить html developer-у. Часть вопросов посвящена IE — сам отказался от поддержки IE6, однако знать особенности его поведения не будет лишним.
                    Читать дальше →
                  • Интервью со Стивом Бланком в Москве: «Не путайте идею и бизнес»

                      15 сентября Стив Бланк прилетел в Москву в рамках своего официального визита в Россию. Первую встречу он провел в офисе PricewaterhouseCoopers и посмотрел презентации российских стартап-проектов. После мероприятия началась неформальная часть, где каждый мог подойти и поговорить со Стивом Бланком: спросить совета, задать интересующий вопрос или взять автограф.

                      Предлагаем вам интервью с гуру предпринимательства, преподавателем и одним из самых влиятельных людей Кремниевой долины. Стив Бланк ответил на основные вопросы, которые интересуют любого предпринимателя: что главное для стартапа, как можно научиться предпринимательству, на чем стоит делать акцент в презентациях. Вы можете посмотреть видео-версию интервью по ссылке.



                      — Какой Ваш главный совет для тех, кто выступал сегодня?
                      — Мой самый главный совет – не путать идею и бизнес.

                      — А что более важно для бизнеса: люди или же технология и идея?
                      — У разных инвесторов разные взгляды и стратегии, и это хорошо. Я как предприниматель начинал с веры в то, что в первую очередь важна идея, важна технология. Но когда я повзрослел, я понял, что недаром по Кремниевой долине ходит фраза: «Средние команды с первоклассными идеями всегда проигрывают первоклассным командам со средними идеями» («B-teams with A-ideas always loose the A-teams who start with B-ideas»). Потому что лучшие команды впоследствии все равно понимают, как они могут улучшить идею, а вот команды ниже уровнем остаются при своем, они не могут придумать ничего лучше. И мой комментарий сегодня вечером был как раз о тех людях, которые презентуют свою идею в общем виде, думают, что их бизнес – это только идея и подменяют эти понятия. Я могу сказать, что бизнес это то, как быстро ты учишься у своих потребителей и своего рынка.
                      Читать дальше →
                    • Что делать, если вы застряли с Большой и Сложной Программистской Задачей?

                      • Translation
                      image

                      Иногда, решая непростую задачу, я застреваю с ней. Я понимаю это, когда начинаю заниматься пустячными делами, раздавать советы другим людям, пить много кофе, постоянно искать что бы перекусить и работать над низкоприоритетными вещами. Время идет, а сделано мало.

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

                      Со временем я выработал способ, позволяющий вернуть мне продуктивность в такой ситуации и суметь закончить непростую задачу. Этим опытом я и хочу поделиться.
                      Читать дальше →
                    • Авторизация через ВКонтакте, Mail.ru и другие — 3 (ВКонтакте и OAuth)

                        В прошлых двух частях мы сделали авторизацию через ВКонтакте, используя предоставленный ими javascript-виджет и через Майл.ру, используя как JS API, так и через взаимодействие сервер-сервер. Сегодня мы исправим наше упущение относительно ВКонтакте и рассмотрим авторизацию через ВКонтакте без использования клиентских javascript'ов.
                        В качестве ссылки на авторизацию мы можем использовать любой элемент, например картинку

                        , оформленную аналогичным образом со ссылкой на авторизацию через mail.ru.
                        Читать дальше →
                      • Доступность веб-проектов — спокойной ночи, ProductOwner

                          Вы — ProductOwner и отвечаете за группу веб-проектов. Когда сайты висят, недоступны или Клиентам выводится отладочная информация типа «Exception in object COrderController constructor… » — вам начинают звонить на мобильный, писать в твиттер и т.п.:
                          • топ-менеджер (или генеральный)
                          • коллеги, некоторые злорадствуя
                          • наши уважаемые Клиенты

                          Еще веселее, когда вас дергают… вечером за ужином, в иное время во время исполнения супружеских обязанностей, в отпуске :-)
                          Разберем популярные кейсы, ключевые принципы обеспечения доступности веб-проектов и попытаемся выстроить чеклист «Безмятежного отпуска».
                          Читать дальше →