• Встраиваем бэкдор в публичный ключ RSA

    • Tutorial

    Привет, %username%!
    Когда я увидел, как это работает, сказать, что я был в шоке — ничего не сказать. Это довольно простой трюк но после прочтения этой статьи вы больше никогда не будете смотреть на RSA по-прежнему. Это не взлом RSA, это нечто, что заставит вашу паранойю очень сильно разбухнуть.
    Читать дальше →
  • Стэнфорд организует бесплатный онлайн-курс по ИИ

      Стэнфордский университет организует бесплатный онлайн-курс CS221 по искусственному интеллекту осенью этого года. Курс будет проходить с 2 октября по 16 декабря.

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

      В десятинедельный курс входит примерно двадцать лекций, около восьми домашних заданий, один промежуточный и один итоговый экзамен.
      Читать дальше →
    • США

        Удивилась, что в данном блоге еще нет рассказа о переезде в США, и решила внести свой посильный вклад. Тем более, что 5 октября как раз начался очередной сбор заявок на участие в гринкарт лотерее, и, возможно, кто-то захочет попытать счастья.

        Для тех, кто не в курсе, что такое лотерея, вкратце расскажу: каждый год правительство США разыгрывает 50 000 иммиграционных виз среди стран с низким уровнем миграции для повышения национального разнообразия. Условия минимальные: не иметь судимостей и иметь законченное среднее образование. Россия на несколько лет выпала из этого процесса, когда был высокий процент усыновления из страны, и поэтому далеко не все россияне знают о лотерее (в Украине, например, сложно найти такого человека). С 2008 года РФ вновь включена в число стран, участвующих в лотерее (правда, подразумевается не гражданство участников, а страна рождения). Это, пожалуй, самый простой способ получить гринкарту, если удастся выиграть конечно — по различным подсчетам вероятность выигрыша составляет около 2%. При наличии играющего супруга шансы повышаются в 2 раза. Впрочем, есть и другие пути иммиграции:
        далее
      • Возвращаясь к вопросу о эмиграции: лотерея от правительства США по выдаче Грин Карт началась

          Мой недавно размещенный топик Хотели бы вы эмигрировать? вызвал бурное обсуждение. В комментариях разразилась война между теми, кто «хочет уехать» и «патриотами этой страны», изредка разбавляемая сообщениями от тех, кто «уже сел на трактор и уехал». Результаты голосования показали, что подавляющее большинство здесь присутствующих (74.24%) хотят эмигрировать. У меня для вас хорошая новость: правительство США начала очередной сезон лотереи, победителям которой достанутся Грин Карты.

          Инструкция по участию: travel.state.gov/pdf/DV_2012_Instructions_Russian.pdf
          Форма для подачи заявления: www.dvlottery.state.gov/application.aspx
          Проверка фотографии для анкеты: www.dvlottery.state.gov/photo.aspx
        • Удаленная работа на Бали (Индонезия)

            Привет всем!



            Данный пост посвящен длительной поездке для работы на Бали. Из него Вы узнаете о том, за сколько, как и когда можно и удобно находится с максимальным комфортом за человекоподобный прайс в месте, где работа через интернет никак не омрачается смогом от пожаров, аномальными перепадами температуры, звуками заведенного трактора и другими правовыми катаклизмами.
            Читать дальше →
          • Пишем техническую книгу

              Так получилось, что за последние пять лет я в разной степени по доброй и не всегда доброй воле участвовал в создании почти десятка технических книг. В свете выхода последней книги в соавторстве с XaocCPS, посвященной ASP.NET MVC Framework, меня попросили описать опыт создания книг от начала и до конца. Я описал процесс в этом посте.
              Читать дальше →
            • Новый NOOK

                image
                Вот и обновился NOOK.
                Теперь он будет без 3G и с белой крышкой (в остальном вроде все то же самое). Ах да, еще весом поменьше немного: 329 грамм вместо 343 грамм до этого. Видимо, 3G модуль на 14 грамм тянет.
                НО! Самое главное — цена. Всего $149, вот теперь это будет настоящий убийца Kindle.

                На старого первопроходца цена тоже снижена до 199 долларов.
                Читать дальше →
              • Вкратце о лицензиях Open Source

                  Многие разработчики и дизайнеры хотят опубликовать свои работы в виде открытых проектов. Они хотят иметь возможность делиться своим кодом. Сообщество open-source с каждым днём всё прочнее стоит на ногах. Открытые программы существуют для любых видов задач, каких вы только можете себе вообразить. А многие веб-разработчики используют свободное ПО как фундамент для своей работы (WordPress, Drupal и многие другие CMS открыты, свободны и бесплатны).

                  Но ситуация такова, что лицензий open-source существует великое множество, и подчас нелегко понять что на самом деле они означают. Какие права получают разработчики, когда выбирают ту или иную открытую лицензию? Попробуем хотя бы в общих чертах разобраться.
                  Читать дальше →
                • Когда программисту надоедает программирование

                    С год назад я столкнулся со странной «проблемой». Уже 7 лет как я занимаюсь программированием. Постепенно начал замечать «спад активности» — учить новое не хочется, рутиной заниматься не просто лень, а мега-лень, базы данных и обработка XML — в печенках уже сидит. И вдруг неожиданно понимаю, что программирование мне… надоело.

                    image

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

                    Я попытаюсь рассмотреть проблему со всех сторон. Начнем с грустного.

                    Читать дальше →
                  • Grails — священный грааль веб-разработчика

                      grails

                      Вступление или муки выбора


                      Здравствуйте! Я хочу рассказать немного о Grails и показать, как создать простое веб-приложение. Начну с того, что я искал удобный и функциональный веб-фраймворк для быстрой разработки. Мой взгляд попеременно падал на Django, Ruby On Rails и различные разработки на Java. Безусловно, мне нравится Java, Spring Framework и Hibernate, всё вместе — это мощнейшая штука. Однако, некоторые моменты меня не устраивали:
                      Читать дальше →
                    • 10 юзабилити-преступлений, которых вы не должны совершать

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

                      Преступление #1: В формах метки не связаны с полями ввода


                      crime1
                      Использование атрибута «for» позволит пользователям кликать по метке, для выбора соответствующего поля формы. Это особенно важно для чекбоксов и радиокнопок — увеличить область клика.
                      Читать дальше →
                    • Тест Тьюринга

                        Итак сегодня мы поговорим о самом известном тесте для оценки говорящего бота — это тест Тьюринга.
                        Тьюринг
                        Тест Тьюринга — эмпирический тест, идея которого была предложена Аланом Тьюрингом в статье «Вычислительные машины и разум» (англ. Computing Machinery and Intelligence), опубликованной в 1950 году в философском журнале «Mind». Тьюринг задался целью определить, может ли машина мыслить.
                        Стандартное звучание закона: «Если компьютер может работать так, что человек не в состоянии определить, с кем он общается — с другим человеком или с машиной, — считается, что он прошел тест Тьюринга»
                        Читать дальше →
                      • Gosuslugi.ru: получение загранпаспорта. Monkey business solution

                          Да, я знаю, эта тема обсуждалась еще год назад. Но, данная статья не о тестировании нового интерфейса сайта gosuslugi, и не описание конкретного случая. Это полное прохождение одного квеста. Одного из многих других квестов — наших в с вами взаимодействий с государственными чиновниками. Прохождение призванное сохранить ресурсы и уровень здоровья следующего игрока.
                          Эта статья — пробный камень в реализации идеи комплекта «Monkey business solutions» на все случаи жизни. Давайте помогать друг другу и делиться «игровым» опытом.
                          Читать дальше →
                        • Менеджер памяти в руби: жди подвоха

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

                            Менеджер памяти руби одновременно и элегантен, и не лишен странностей, в любую минуту готовых обернуться неприятным сюрпризом. Руби хранит объекты (RVALUE) в так называемой куче (это не heap в классическом понимании c-программистов, у руби своя куча). На низком уровне, RVALUE — это обычная c-struct, состоящая из области «атрибутов» и собственно области «данных». Подробный рассказ о том, как внутри хранятся объекты выходит за рамки данной заметки; достаточно просто понимать, что каждому объекту в руби соответствует такой вот RVALUE. Сборщик мусора считает ссылки на него, и очищает слот, когда счетчик обнуляется. В чисто академических целях скажу, что размер каждого такого слота зависит от архитектуры:

                            /*
                             *  sizeof(RVALUE) is
                             *  20 if 32-bit, double is 4-byte aligned
                             *  24 if 32-bit, double is 8-byte aligned
                             *  40 if 64-bit
                             */
                            


                            Размер текущего слота можно получить в рантайме (спс, kyrylo):

                            GC::INTERNAL_CONSTANTS[:RVALUE_SIZE] #=> 40
                            


                            Итак, у нас есть слоты (это принятое название, slot), размером около сорока байт, в которых хранятся… Вот тут и начинается самое интересное. Там не просто хранятся ссылки на объекты, размещенные в настоящей системной куче, как, наверное, подумали люди, знакомые с реализацией более традиционных сборщиков мусора.

                            Читать дальше →
                            • +23
                            • 5.2k
                            • 9
                          • Вы до сих пор не любите JavaScript?

                            С началом эпохи HTML5, рынку понадобилось большое количество JavaScript программистов. Многие специалисты по другим языкам, начали массово переориентироваться на JavaScript. Я много раз видел, как программисты с большим опытом ругали этот, один из самых гибких и могучих, язык, не понимая его принципов. В этой статье я постараюсь рассказать суть и философию JavaScript. Здесь будет всего 4 строчки кода и много-много того, что не напишут в учебниках. Обещаю, что вы полюбите этот язык, или по крайней мере, станете эффективнее в нём. Итак, поехали!
                            Читать дальше →
                          • Обзор java.util.concurrent.*

                            • Tutorial
                            В повседневной работе не так уж часто приходится сталкиваться с пакетом для многопоточности java.util.concurrent. Иногда существуют проектные ограничения по использованию java 1.4.2, где нет данного пакета, но чаще всего хватает обычной синхронизации и не требуется ничего сверхъестественного. К счастью, периодически возникают задачи, заставляющие немного пораскинуть мозгами и либо написать велосипед, либо порыться в javadoc'ах и найти что-то более подходящее. С велосипедом проблем нет — просто берешь и пишешь, благо ничего суперсложного в многопоточности нет. С другой стороны, меньше кода — меньше багов. Тем более, что на многопоточность никто в здравом уме юнит тестов не пишет, т.к. это уже полноценные интеграционные тесты получаются со всеми вытекающими последствиями.

                            Что выбрать для конкретного случая? В условиях запарки и deadline'ов довольно сложно охватить весь java.util.concurrent. Выбирается что то похожее и вперед! Так, постепенно, в коде появляются ArrayBlockingQueue, ConcurrentHashMap, AtomicInteger, Collections.synchronizedList(new LinkedList()) и другие интересности. Иногда правильно, иногда нет. В какой то момент времени начинаешь осознавать, что более 95% стандартных классов в java вообще не используются при разработке продукта. Коллекции, примитивы, перекладывание байтиков с одного места на другое, hibernate, spring или EJB, еще какая то библиотека и, вуаля, приложение готово.

                            Чтобы хоть как то упорядочить знания и облегчить вхождение в тему, ниже идет обзор классов для работы с многопоточностью. Пишу прежде всего как шпаргалку для себя. А если еще кому сгодится — вообще замечательно.
                            Читать дальше →