• «Ошибки в ДНК» или как неправильный дизайн может приводить к миллионным убыткам

      Написать эту заметку меня побудили очередная статья с «криком души»: ну почему Windows в очередной раз требует перезагрузки при изменении чего-либо (обычно это установка/удаление программ, но бывают и другие случаи)? Почему разработчики Windows-приложений — такие лохи, а разработчики Linux-программ (где таких сообщений при установке «обычных программ» не бывает) — такие молодцы?

      Этот феномен всем давно известен — но задумывались ли вы о том откуда у него «ноги растут» и почему в других операционных системах (Linux, MacOS X и т.п.) подобные окна являются чем-то исключительным, а в Windows — постоянным?
      Читать дальше →
    • Как устроен парсер Python, и как втрое уменьшить потребление им памяти

        Любой, кто изучал устройство языков программирования, примерно представляет, как они работают: парсер в соответствии с формальной грамматикой ЯП превращает входной текст в некоторое древовидное представление, с которой работают последующие этапы (семантический анализ, различные трансформации, и генерация кода).

        КДПВ

        В Python всё немного сложнее: парсеров два. Первый парсер руководствуется грамматикой, заданной в файле Grammar/Grammar в виде регулярных выражений (с не совсем обычным синтаксисом). По этой грамматике при помощи Parser/pgen во время компиляции python генерируется целый набор конечных автоматов, распознающих заданные регулярные выражения — по одному КА для каждого нетерминала. Формат получающегося набора КА описан в Include/grammar.h, а сами КА задаются в Python/graminit.c, в виде глобальной структуры _PyParser_Grammar. Терминальные символы определены в Include/token.h, и им соответствуют номера 0..56; номера нетерминалов начинаются с 256.

        Проиллюстрировать работу первого парсера проще всего на примере. Пусть у нас есть программа if 42: print("Hello world").
        Читать дальше →
      • Как улучшить свой стиль программирования?

        Исповедь 1


        Я — разработчик. От своих работодателей я постоянно слышу, что работаю медленно и часто всё усложняю без веской причины. И что мне пора бы что-то с этим сделать. Во избежание.

        Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
        Читать дальше →
      • Как я сделал российский вычислительный комплекс с двумя экранами

          В свете дискуссии, развернувшейся в комментариях к посту про "российский смартфон на андроиде", расскажу о том, как я сделал российский вычислительный комплекс с двумя экранами (РВК-ДЭ).
          Читать дальше →
        • Как потерять время и деньги

            Этот пост — перевод эссе Пола Грэма "How to lose time and money".


            Когда мы продали наш стартап в 1998 году, я внезапно разбогател. Мне пришлось задуматься о том, как не потерять это богатство. Я знал, что возможно превратиться из богатого человека в бедного, точно также, как из бедного в богатого. Но в то время как я потратил несколько лет на то, чтобы узнать путь от бедности к богатству, я не знал практически ничего о пути от богатства к бедности. Теперь я должен был узнать это, чтобы избежать этого.
            Читать дальше →
          • Никто ни хрена не знает, что он делает или Три типа знания

            • Перевод
            Наткнулся недавно за любопытную статью под названием «No One Knows What the F*** They're Doing (or The 3 Types of Knowledge)». Если точнее, то эту статью разослала нам наша менеджер проекта. Представляю вашему вниманию свой перевод этой статьи.
            (Я попытался передать экспрессивный заголовок максимально близко — но всё равно не получилось, буду рад предложениям, как можно более точно его передать).

            Читать дальше →
          • Инфляция и образование

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

              Не нервничайте. Вы услышали слово инфляция, но это не значит, что я буду рассказывать про $самизнаетечто. Тогда при чем здесь образование? — спросите Вы. При всем! Дело в том, что прямо на наших глазах происходит одна ужасная вещь, мимо которой нельзя пройти равнодушным и которую мы просто обязаны заметить.

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

              А все из-за того, что иметь высшее образование раньше — было круто. Но сейчас получение диплома превратилось в обычный мудатский ритуал, который должен пройти каждый. Ведь иначе, по мнению общества, человек не полноценный?

              Читать дальше →
            • Как стать «ранней пташкой»


                Это одна из моих любимых статей Стива Павлины о саморазвитии. Несмотря на широкую популярность статьи, найти ее на Хабре мне не удалось, решил поделиться с Вами.

                Хорошо вставать до рассвета,
                такая привычка способствует здоровью,
                богатству и мудрости.
                Аристотель


                «Жаворонками» рождаются или становятся? В моём случае совершенно точно имело место становление. Когда мне было чуть больше двадцати, я редко ложился спать раньше полуночи и почти всегда вставал поздно. Обычно я не начинал свои дела до конца обеда.

                Но через некоторое время я уже не мог не замечать явную зависимость между успехами и ранним подъёмом, даже в моей личной жизни. В те редкие случаи, когда я вставал рано, моя производительность почти всегда была выше, и не только утром, но и в течение всего дня. Кроме того, я был в прекрасном расположении духа. Будучи человеком, который активно добивается своих целей, я решил выработать привычку рано вставать. Я просто поставил будильник на 5 утра…
                Читать дальше →
              • Первые шаги на пути к покупкам на ebay, dealextreme, focalprice, kaidomain…

                  Не секрет, что на ebay, DX, KD и прочих онлайн-магазинах существует много гаджетов и товаров, которых в РФ не найти. Чтобы удовлетворить свои гиковские потребности, а также просто тратить с умом, рано или поздно приходится обращаться к интернет магазинам. Однако новички теряются во всех этих «палках, клеймах, лотах, диспутах, EMS, USPS и прочее», а также некоторые не владеют английским для того, чтобы элементарно зарегиться в paypal.
                  Для этой цели админом форума ebay-forum.ru был создан подробнейший pdf-мануал, с которым я и предлагаю всем желающим ознакомиться.

                  1. Регистрация

                  Регистрация в PayPal для России
                  Регистрация на аукционе eBay
                  Верификация PayPal аккаунта

                  2. Покупка

                  Часть1: Покупка лота — аукцион
                  Часть2: Покупка лота — фиксированная цена
                  Часть3: Оплата выгранных лотов по PayPal

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

                  Added
                  т.к. возникли вопросы по картам, то немного углубимся

                  visa электрон не пройдет в 90% случаев по личному опыту. Нужна visa классик, но опять таки не всех банков. Гарантированно с paypal работают следующие карты
                  * ВТБ24, Виртуальные карты
                  * Альфа-банка, Виртуальные карты
                  * Банк Москвы, Visa Virtuon
                  * Промсвязьбанк, MasterCard Virtual
                  * Мастер-банк, Visa Virtuon
                  * UniCredit Bank, Visa Virtuon
                  * Собинбанк, MasterCard Virtual, Visa Virtuon
                  * Банк Возрождение, Visa Virtuon
                  * Visa Unembossed Финсервис банка
                  * GE Money Bank, Visa Classic Unembossed

                  — Из комментов:
                  Беларусь, Банк «Москва-Минск» Visa Electron принимается в ПэйПал, если тупо в адресе вместо Беларуси указать Россию

                  карточка виза классик (самая обычная) промсвязьбанка 100% работает с пайпалом

                  VISA Electron банка Русский Банк Развития (www.rbr.ru) — не получилось (PayPal сказал, что карта не подходит)
                  VISA Classic банка Raiffeisen BANK (www.raiffeisen.ru) — успешно зарегистрировался

                  VISA Classic Балтийского банка и VISA Gold Банка Санкт-Петербург нормально работают с онлайновыми магазинами и PayPal

                  Регистрировал на PayPal карту MasterCard Virtual от УралСиб — работает отлично, обслуживание 100р\год, интернет-банк бесплатный

                  — Чтобы узнать подойдет ли Ваша карта для оплаты в интернете, просто позвоните в банк и спросите у них об этом.
                  Карту какого банка выбрать НЕ ВАЖНО. Единственное на что стоит обратить внимание — это на интернет банкинг/смс оповещения, чтобы контролировать сколько денег на текущем счету и сколько снялось с карты.
                  Также имеет смысл добавить, что банки-эмитенты виртуальных карт могут накладывать ограничение на максимальную сумму расходуемых средств в месяц. Так у ВТБ24 это 500долл. Т.е. вы в месяц сможете совершить покупок на сумму до 500долл.
                • Для запуска мечты времени всегда достаточно

                    Это перевод статьи из блога 37signals.

                    «Я хочу начать бизнес / стать крутым программистом / создать потрясающий блог, но для этого мне не хватает времени в сутках!». Наглая ложь. Времени всегда достаточно, просто вы неграмотно им распоряжаетесь.

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

                    Особенно неприятно слышать эту отговорку от студентов. «Ох, у меня столько предметов! Ох, у меня столько домашних заданий! У меня просто нет времени на то, чтобы учиться чему-либо за пределами школы или института». Этот подход неверен!

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

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

                    И я это сделал. За время моего обучения я создал Instiki, Rails, Basecamp и встал на путь соучредителя 37signals. Как вы думаете, мог ли я заниматься всем этим, одновременно получать сплошные пятерки и иметь кучу свободного времени для игры в World of Warcraft? Нет.

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

                    Именно вы полностью отвечаете за воплощение ваших снов в реальность.