• Обзорро HTC Sensation

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

      image

      Сегодня хочу рассказать о коммуникаторе HTC Sensation – им я пользуюсь уже больше месяца, продается он и того дольше… но я считаю, что раз это флагман, то торопиться с выводами нельзя, да и время сейчас как раз самое ТАКОЕ, когда ценник только начинает приходить в порядок. В сети вы запросто найдете более дотошно подробные обзоры, я же расскажу лишь про ключевые моменты. Осторожно, трафик.

      Читать дальше →
    • 10 советов как пройти путь от начинающего до программиста среднего уровня

        Добрый день

        Предлагаю вниманию сообществу перевод статьи «10 tips to go from a beginner to an intermediate developer». Её автор Justin James — один из работников компании Levit & James, занимает должность, которая включает в себя программирование, сетевое управление и системное администрирование. Ведёт постоянно свой блог на TechRepublic с 2005 года. Пишет статьи для MSDN Magazine.

        Несколько советов для начинающих разработчиков, которые хотят перенести их карьеру на следующий уровень.
        Читать дальше →
      • Простой RSS-клиент на Android

          Пошаговое руководство по созданию RSS-клиента на Android. Статья для начинающих разработчиков.
          Android – операционная система для мобильных устройств от Google.
          Система очень перспективная и динамично развивается. Базовые навыки разработки будут совсем не лишними.
          Осторожно много скриншотов!
          Читать дальше →
        • Как правильно оформить статью?

          Если вы ведете блог, то, возможно, вам знакомо чувство, когда взлелеянную, родившуюся в тяжелом труде статью никто не читает. И вы не можете понять причины. Кажется, и тема выбрана правильно. И стиль подобран адекватно. И слова использованы именно те, которые нужно! Статья написана интересно, и, бесспорно, должна быть полезной значительной части вашей ключевой аудитории…

          image

          Вы готовы воспринять это и адекватно отнестись, если сами чувствуете, где совершили ошибку, а где откровенно схалтурили. Знаете, что статья не дотягивает до уровня ваших привычных публикаций. Но если все сделано вроде бы правильно — можно попасть даже в глубокую депрессию из-за непонимания причин такого провала. Я промолчу о том, что мотивация к дальнейшему ведению блога испаряется пропорционально количеству таких «незамеченных» публикаций.
          Читать дальше →
        • Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

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

            И что же них такого деформированного?
          • Опыт составления резюме

              Проблема


              Не так давно мне потребовалось обновить своё резюме. Последний раз я это делал несколько лет назад, так что решил написать резюме с нуля.

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

              Читать дальше →
            • Учимся писать многопоточные и многопроцессные приложения на Python

              Эта статья не для матёрых укротителей Python’а, для которых распутать этот клубок змей — детская забава, а скорее поверхностный обзор многопоточных возможностей для недавно подсевших на питон.

              К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
              Читать дальше →
            • Makefile для самых маленьких

              • Tutorial
              Не очень строгий перевод материала mrbook.org/tutorials/make Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Добавил в Переводы. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.

              Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.

              Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
              Читать дальше →
            • Я не знаю Си

                Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
                Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
                Читать дальше →
              • Эффективное использование Vim

                Введение


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

                Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

                Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

                По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
                Читать дальше →
              • Линейная алгебра для разработчиков игр

                • Translation
                • Tutorial
                Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
                Читать дальше →
              • Первый блин комом, или Как начать писать под Android и не бросить

                На написание статьи вдохновили несколько жалоб на разных ресурсах о том, что во время написания или установки sdk что-то не получалось или что-то повисло и поэтому «забил на Android». Действительно, человек, который хочет заняться разработкой под эту платформу, может потеряться в обилии статей и мануалов о том, как написать свое первое «Hello, Adroid» или как сделать конкретное приложение, особенно если недостаточно опыта в программировании. В этой статье я попробую охватить по возможности все способы, которые помогут в процессе самообучения и не дадут потерять энтузиазм из-за появившихся трудностей. Надеюсь, эта статья поможет сэкономить начинающим время и нервы.

                Тех, кому этого ресурса достаточно, данная статья вряд-ли заинтересует.

                Установка и настройка инструментов для разработки хорошо описана в Android Development Tutorial, поэтому это я могу пропустить.

                Где тестировать свое приложение


                Сначала нужно определиться, на что устанавливать и где тестировать свой проект. Можно ставить на эмулятор, как это описано в выше указанной статье. Как многие замечают, работает он очень медленно. К тому же, частое заблуждение – перед запуском приложения новички закрывают каждый раз эмулятор и снова его запускают. Этого делать не надо.
                Другой способ — можно установить на VirtualBox Android-x86.
                Но настоящий девайс рано или поздно понадобится – хотя бы по той причине, что писать приложения, где задействована камера или видео, или очень неудобно, или просто невозможно. Поэтому, если есть возможность приобрести устройство с Android – лучше использовать его. Я ставлю на свой HTC Wildfire, не смотря на то, что в нем появляется ненужный хлам, но я экономлю свое время (и нервы).

                Какую литературу использовать

                Читать дальше →
              • Признаки плохого программиста

                • Translation

                Неспособность рассуждать о коде


                «Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

                Симптомы

                • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
                • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
                • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
                • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
                • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

                Читать дальше →
              • Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

                  К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
                  Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

                  Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

                  Читать дальше →
                • Взгляд изнутри: CD и HDD



                    Предисловие


                    Моя предыдущая статья была посвящена внутреннему устройству чипа от Nvidia, да и, пожалуй, внутреннему устройству любого современного процессора. В этой статье мы перейдём к средствам хранения информации, и я расскажу, что представляют собой CD и HDD диски на микроуровне.
                    Под катом много трафика
                  • Взгляд изнутри: Вскрытие чипа Nvidia 8600M GT

                    image
                    Предисловие

                    Года 3-4 назад судьба распорядилась так, что в руки мне попал ноутбук Asus G2S. Счастье моё длилось ровно до прошлой зимы, когда ни с того, ни с сего на экране стали появляться артефакты, особенно при запуске игрушек или «мощных» приложений, активно работающих с видеочипом. В результате оказалось, что проблема именно в нём. Nvidia для практически всей геймерской линейки G2 поставляла видеочипы с браком (отслоение контактов между самим кристаллом и подложкой), который обнаруживался лишь через пару лет интенсивной работы. Решение было однозначным – замена видеочипа. Но что делать со старым?! Ответ на этот вопрос пришёл на редкость быстро…
                    Много трафика под катом
                    Читать дальше →
                  • Пьеса «Разработка многопользовательской сетевой игры.» Часть 3: Клиент-серверное взаимодействие



                    Часть 1: Архитектура
                    Часть 2: Протокол
                    Часть 4: Переходим в 3D

                    С третьей частью я немного задержался. Но как говорится лучше поздно чем никогда…

                    Итак, продолжаем разговор.

                    В третьей части нашей постановки мы реализуем протокол, напишем сервер и клиент которые будут взаимодействрвать по сети. И (ОМГ!) танки будут ездить!
                    Под катом то, что вы давно хотели, но боялись спросить…

                    Добро пожаловать в зрительный зал.
                  • Пьеса «Разработка многопользовательской сетевой игры.» Часть 2: Это страшное слово «протокол»



                    Часть 1: Архитектура
                    Часть 3: Клиент-серверное взаимодействие
                    Часть 4: Переходим в 3D

                    Итак, продолжим создание многопользовательской игры.
                    Сегодня мы рассмотрим создание протокола передачи данных.
                    А также создадим заготовки TCP сервера и соответственно клиента.

                    Добро пожаловать в зрительный зал.
                  • Пьеса «Разработка многопользовательской сетевой игры.» Часть 1: Архитектура

                    image

                    Часть 2: Протокол
                    Часть 3: Клиент-серверное взаимодействие
                    Часть 4: Переходим в 3D

                    В общем, как и обещал, публикую серию статей по разработке многопользовательской сетевой игры. Изначально я хотел просто накатать статейку по разработке серверной части на интересном языке Scala. Но понял, что одной статейкой для развертывания темы не получится обойтись. А писать очередной топик обо всем и ни очем, не хотелось изначально. Поэтому встречайте пьесу в трех действиях. В течении которой мы разработаем архитектуру проекта, реализуем серверную и клиентскую части…
                    Все помнят прикольные танчики на денди?
                    Ну вот на примере этих танчиков и будем разрабатывать сервер и клиент.

                    Добро пожаловать в зрительный зал.
                  • Загрузка и установка Debian по сети для чайников

                    Если вам нужно установить Debian на несколько машин, то, конечно, лучше загружать и устанавливать его по сети. Ну и хотелось бы, чтобы установка проходила в полностью автоматическом режиме. Об этом и будет статья. Основная часть статьи — это вольный пересказ вики дебиана, но так же здесь описано пара нюансов, о которых не сказано в вики, но без них установка не будет полностью автоматической.
                    Читать дальше →