• Шокирующий Objective-C для Java программистов

      О чем эта статья?


      Два факта. В мире много Java программистов. Популярность Objective-C растет. Вывод: Java программист, изучающий Objective-C не такая уж редкость. Если знать ключевые различия между языками, то можно эффективно использовать существующие знания Java и быстрее начать писать на Objective-C.
      Читать дальше →
    • Знакомство с TCP стеком для микроконтроллеров фирмы Microchip

      Предположим, у нас возникла необходимость в создании устройства с возможностью подключения к сети Ethernet. Вариантов имеется довольно много, но все их можно условно разделить на 3 вида.
      Читать дальше
      • +68
      • 42.6k
      • 4
    • Как Symantec взломала Stuxnet

      • Translation
      imageИстория, стоящая за спиной Stuxnet — червя ориентированного на Иранские атомные электростанции, была описана уже не раз (в том числе и на Хабре) с того момента, как прошедшей весной группа разработчиков из Symantec выпустила этот документ — досье, посвященное этому беспрецедентно сложному творению чьих-то рук. Но видеть — значит верить. И у меня был шанс присутствовать на специальном брифинге в штаб-квартире Symantec, расположенной в Mountain View — California, где Патрик Гарднер, директор их группы безопасности, показывал как все происходило на самом деле. Это был великолепно.

      Stuxnet был очень сложной программой, содержащей около 10 000 строк кода, написание которых заняло человеко-годы. Symantec обнаружила первые версии червя примерно за год до настоящей атаки, имевшей место год назад в июне и у них не был ни малейшего понятия о том, что же это такое, до тех пора пока события не начали развиваться на атомном объекте. Они раскололи код командой из трех человек, работавших на полный рабочий день, за несколько месяцев.

      Этот софт очень специфичен, и затрагивал отдельный программируемый логический контроллер от компании Siemens, проводящий серию из 9 000 различных центрифуг, используемых для разделения урана. Червь начисто уничтожал около 1000 из них, наносив серьезный ущерб и отбрасывая всю атомную программу Ирана на год, или даже более, назад.

      Компьютерная сеть атомной электростанции имеет т.н. «воздушную дыру» между компьютерами используемыми для работы с контроллерами Siemens и обычными компьютерами бизнес-отделения, подключенными к Интернету. Это значит, что компьютеры подключенные к технике от Siemens не имели доступа к внешней сети, что является стандартной и хорошей практикой в сетевой безопасности такого уровня. Как же тогда они оказались заражены червем? Оказалось, в результате человеческого фактора.
      Читать дальше →
    • Пристальный взгляд на шаблоны мобильных интерфейсов

      • Translation


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

      Эти 70 шаблонов проиллюстрированы сотнями примеров приложений для операционных систем Apple, BlackBerry, Android, Symbian, Windows и WebOS будут изданы O’Reilly Media как «Mobile Design Pattern Gallery». Ниже приведена одна из моих любимых глав — Приглашение.

      * Не смотря на то, что эти шаблоны ориентированы на разработку мобильных приложений, они так же могут быть использованы при работе над мобильным веб-сайтом.
      Читать дальше →
    • Изучить jQuery за 30 дней



        Каждый программист оказывается в ситуации, когда ему необходимо изучить какую-либо новую технологию или же фреймворк. Если в вашем ToDo листе в графе «Изучить» есть такой компонент, как jQuery, то данный курс для вас.
        Курс состоит из 30 видео уроков, длительность каждого из них составляет 15 минут. Чтобы зарегистрироваться на курсе, вам необходимо оставить свой e-mail на странице Learn jQuery in 30 days.

        На данный момент в курсе присутствуют следующие темы:
        1. DOM Traversal
        2. Events
        3. DOM Manipulation
        4. Effects
        5. AJAX
        6. Plugin Development


        Присоединитесь к 30942 студентам, которые хотят изучить jQuery.

        Как подсказывает alphard, курс можно скачать с rutracker'а.
      • Интересный багфикс, или поломай скайп полностью

          После недавней статьи все наверное стали (чаще) использовать теги для «пущей убедительности». ну например
          <font color="#FF0000">НЕ забудь деньги!</font>
          ну или более убедительный
          <font size="42">НЕ забудь деньги!</font>
          ну и вот, во что это вылилось:

          ещё не догадались в чём дело?
          Читать дальше →
        • Применение вакуумного люминисцентного индикатора

          Некоторое время назад мне подвернулся недорогой VFD-экранчик. Из него я сделал что-то вроде часиков, подключив к домашнему серверу.



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

          Я использовал дисплей IEE 036X2–122–09220 (он же IEE 36199-01), их можно найти на ибее. Скорее всего, работа с любым другим VFD от IEE не будет отличаться (также, как и со многими другими похожими дисплеями, например, от кассовых аппаратов).
          Читать дальше →
        • Префиксные деревья в Javascript

          Как это писалось

          Одним долгим зимним вечером моя жена играла в Bookworm adventures, и периодически пинала меня по поводу составления слов подлиннее из имеющихся букв. Быстрый поиск по интернету страничек, позволяющих составлять слова из набора букв дал кучу сайтов, которые пытаются делать это на серверной стороне, и один, который делает это на клиентской ява-апплетом. Те, которые составляют слова мощностями сервера либо имеют ограничение на размер набора букв (обычно, почему-то в 8), либо глубоко задумываются, если им послать набор «abcdefghijklmnopqrstuvwxyz». Ява-апплет же имел ограничение в 12 букв, работал шустро и почти подходил (в игре предлагаются 16 букв для составления слов).
          Читать дальше →
          • +42
          • 3.9k
          • 6
        • Обновляем скетч по воздуху

            В процессе разработки кода для Arduino совместимых плат, очень часто возникает необходимость обновить прошивку в контроллере, очень часто сделать это проблематично, по той причине, что устройство уже собрано и дёргать туда-сюда шилдики и кучи проводов — утомляет и начинает раздражать. Моей первой Arduino стал комплект деталей (собери сам) Freeduino Through-Hole, комплект по приезду был сразу же спаян и опробован, но в этом аналоге Arduino Diecimila не хватало одной приятной детали… а именно автоматического переключателя источника питания, в моем случае предлагалось перетыкивать перемычку на плате, что еще больше осложняло обновления скетча для моей мечты детства модели.

            В этом посте я опишу как за 5 минут работы паяльником модифицировать XBee Shield для обновления скетча через беспроводной канал связи. Спроецировать данные изменения можно также и на другие аналоги XBee Shield без особых сложностей.
            Читать дальше →
            • +35
            • 3.9k
            • 2
          • DNS сервер BIND (теория)

              Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

              Основные понятия Domain Name System


              Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
              Читать дальше →
            • Шрифты из склепа

              image Мне от моноширинных шрифтов многого не надо. Адекватная поддержка кириллицы. Для программирования — отсутствие замыливания. Возможность различать 0 (который ноль) и О. Возможность различать I (которое i), l (которое L) и | (которое or). Для работы в консольном двухпанельнике — поддержка псевдографики. Однако в современном мире подобных шрифтов не так, чтобы много. Откуда же их взять?

              Осторожно! Под катом — сплошные анахронизмы.

              Читать дальше →
            • Context Free: язык для генерации изображений



                Эта картина сгенерирована программой Context Free по следующему описанию:

                startshape T
                // FLIGIZ
                background{b -1}
                tile {s 2.5}
                rule T {3*{r 120 hue 30}S{x .3}}
                rule S 3{CIRCLE{hue 30}4*{r 20 b.007 sat .1}S[s.3.7y.9]}
                rule S {CIRCLE{hue 15}9*{r 20 b.05 hue -3}S[s.3.7y.9]}
                rule S {S{flip 90}}
                Читать дальше →
              • Уроки Python от компании Google

                  Отличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.

                  Курс включает в себя шесть видеолекций на Youtube, где Ник проводит обучение новичков-гуглеров и подробно рассказывает о разных хитростях и фичах Python. Некоторые видеолекции длиной до 50 минут.

                  Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.
                • Управление Arduino с телефона

                  Добрый день!

                  Недавно заинтересовался идеей создания «умного дома». Так как из необходимых компонентов в моем распоряжении пока что имеются только arduino и телефон на андроиде, решено было начать с создания пульта управления и связи его с остальной частью системы.

                  Моё видение системы выглядит так:


                  Думаю стоит совместить домашний и веб-серверы, прикупив статический айпишник, но на первое время сойдет и так. Начнем с простого – научимся удаленно управлять светодиодом и LCD-дисплеем.
                  Читать дальше →
                • Новые бесплатные онлайн курсы от Stanford

                    В начале текущего учебного года Stanford организовал 3 бесплатных онлайн курса (основаные на трёх стационарных курсах Стэнфорда): Machine learning, Artificial intelligence и Introduction to Database. Все курсы идут с видео лекциями и домашними заданиями. Для курсов Artificial intelligence и Introduction to Database предусмотрены ещё и экзамены. После успешного окончания любого из курсов будет выслан сертификат (digital-signed pdf) от преподавателя.

                    И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.

                    У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!

                    Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:

                    UUpdate продолжают радовать, новый доступный курс:

                    Читать дальше →
                  • Raspberry Pi, сигнализация и умный дом


                      Началось все года 4 назад когда во время рабочего дня у меня обчистили квартиру. Попасть домой через дверь после этого уже не удалось из-за поврежденного замка. Неприятное событие заставило задуматься о безопасности жилища. И это лишь одна из причин для мониторинга и автоматизации квартиры. Как часто прийдя на работу (а то и уезжая или улетая куда-либо) вы сомневались выключили ли перед уходом утюг, закрыли ли газ, воду ;-) Подбавим масла в огонь админам — спокойны ли вы что ваш старый БП в работающем системнике дома не чадит и не пылает!?) И что удаленно делать с девайсом, который «наглухо завис».

                      В этом посте я рассмотрю некоторые существующие на рынке решения, розничную стоимость доступного аппаратного обеспечения и способ как создать сигнализацию квартиры и некоторые из функций «умного дома» используя одноплатный компьютер Raspberry Pi
                      Читать дальше →
                    • Строим гусеничного Bluetooth-робота с камерой. Часть 3

                        В предыдущих сериях:
                        Часть 1
                        Часть 2
                        Ну что, все уже заказали запчасти и собрали роботов? Пора робота оживить.
                        Сегодня мы разберем программную начинку.
                        Вариант, который я предлагаю максимально прост. Не стоит ждать от него уникальных способностей. Его задача — просто ехать работать. Отказоустойчивость, плавность управления и дополнительные функции — это простор для творчества, который я оставляю каждому, чтобы не лишать этого удовольствия. Код весьма простой и оттого далеко не оптимальный и не защищенный и вообще не красивый. Если есть предложения по его улучшению — предлагайте свои варианты, прямо куски кода с пояснением зачем и почему так будет лучше.
                        Неконструктивная критика того, что сделано плохо — не особо нужна :) Я и так знаю про недостатки. А вот если что-то непонятно- спрашивайте, поясню.
                        Итак, поехали!

                        Наша задача - добиться аналогичного результата
                      • Backbone Boilerplate

                          Американская компания Bocoup, как и многие другие веб-разработчики, постоянно использует в работе известный «пуленепробиваемый» шаблон для создания HTML5-сайтов HTML5 Boilerplate. Однако, сотрудники Bocoup решили не только пользоваться, но внести свой вклад в общее дело и выкатили для всеобщего пользования не менее концептуальную вещь — Backbone Boilerplate, набор лучших средств и приёмов для создания приложений Backbone.js.

                          Прямо из коробки мы получаем:
                          • Backbone, Underscore и jQuery, всё это на базе HTML5 Boilerplate.
                          • Инструмент Windows/Mac/Linux для прекомпиляции шаблонов, связывания и минификации всех библиотек, кода приложения и CSS.
                          • Лёгкий веб-сервер node.js.
                          • Многочисленные сниппеты кода для Backbone, облегчающие жизнь.
                          В Backbone Boilerplate логичная и элегантная файловая система (отдельно код, вспомогательные файлы, тесты, билды) и есть возможность создавать собственные классы Models/Collections/Views/Routers внутри модулей.

                          Разработчики говорят, что проект появился в результате их долгих попыток работать с другими шаблонами: оказалось, что в одних нет процесса сборки, другие налагают излишние ограничения. Новый Backbone Boilerplate призван исправить ситуацию и вполне может стать каноническим, каким стал тот же HTML5 Boilerplate.
                        • Радиоуправляемая Wi-Fi машинка с камерой

                          Начало


                          Летом появилась мысль сделать радиоуправляемую машинку, но не просто нечто похожее на творение китайской инженерной мысли, которое продается на каждом шагу, а машинку, управлять которой можно было бы с компьютера или телефона. Понято, что машинка, которой можно управлять через Wi-Fi в чистом виде, совершенно не интересна. А вот если бы у нее была бы камера? А если еще и управление через 3G/EDGE/GPRS? Вот это – другое дело!
                          Читать дальше →