• The Art Of Programming — Выпуск №70 [ Drinking ] / Готовимся к новому году с alenaCPP


      Треп за жизнь с alenacpp
      Поздравления с новым годом

      Ссылки:
      Introduction to Distributed Algorithms / Gerard Tel
      http://www.amazon.com/Introduction-Distributed-Algorithms-Gerard-Tel/dp/0521794838

      Distributed Algorithms / Nancy A. Lynch
      http://www.amazon.com/Distributed-Algorithms-Kaufmann-Management-Systems/dp/1558603484/

      Блог:
      http://highscalability.com/

      Programming Interviews Exposed: Secrets to Landing Your Next Job / John Mongan
      http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X/

      Доклады:
      http://alenacpp.blogspot.com/2010/12/add-2010.html
      прослушан 1590 раз
      • +30
      • 1,5k
      • 6
    • Jailbreak сделали, а дальше что?


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

        Читать дальше →
      • YouTube открыл раздел бесплатных фильмов

          image

          Теперь любимый многими из нас сервис YouTube от Google стал еще известнее — ведь разработчики официально открыли раздел с большим количеством бесплатных фильмов. В настоящее время в этом разделе насчитывается более четырехсот фильмов, которые действительно можно смотреть бесплатно (и никаких тебе SMS посреди просмотра, ага). Стоит отметить, правда, что среди этих фильмов нельзя найти последние новинки проката, большая часть картин, представленных в разделе Movies, вышла до 90-х годов.

          Читать дальше →
        • Here be dragons: Управление памятью в Windows как оно есть [3/3]


            Каталог:
            Один
            Два
            Три

            μTorrent


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

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

              Первая — английская, рабочая. Вторая — украинская, родная, основная для общения. Третья — русская, в общем обычно не используемая, разве иногда — погуглить что-нибудь, вот, на Хабре комент или топик написать. При этом третья раскладка висела в списке активных, но при работе и постоянном переключении украинская-английская-украинская постоянно приходилось нажимать лишний раз Alt+Shift или Ctrl+Shift. Кроме того, часто случалось, что начал печатать, вроде как все хорошо, ан нет — раскладка русская, вместо 'і' пошли 'ы', вместо 'є' — 'э', и тому подобное. Мучился я так, мучился, и вот в один прекрасный день решил это дело как-то
              оптимизировать
            • Shadow DOM

              Ссылка на стандарт: www.w3.org/TR/2013/WD-shadow-dom-20130514

              Итак, что же такое shadow DOM:
              Shadow DOM (или теневая модель документа) — часть документа, реализующая инкапсуляцию в DOM дереве. Она (теневая модель) является частью документа и встраивается непосредственно внутрь страницы.
              Для упрощения отладки shadow DOM, в хроме можно включить отображение в веб-инспекторе (Settings — General — Show shadow DOM).

              Надо заметить, что в стандарте реализуемая инкапсуляция называется функциональной, поскольку shadow DOM встраивается в документ и является одной из многих его частей, работающих «независимо» (более-менее независимо) друг от друга. Соответственно, при проектировании реализации, нужно было установить функциональные границы в дереве документа, чтобы как-то оперировать с множеством таких «независимых» фрагментов. Для решения проблемы инкапсуляции, и была введена новая абстракция — shadow DOM, позволяющая создавать несколько DOM деревьев в пределах одного родительского дерева и был разработан документ, описывающий ее.
              Читать дальше →
            • Технология быстрого создания фонов для 2D-игр на базе 3D-заготовок (48 часов разработки)

              Вместо предисловия


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

              Перед тем как начать я хотел бы сделать акцент на двух положениях:
              Первое. Мы исходим из того что читатель знаком с такими пакетами как 3D Studio MAX (либо любым другим пакетом трехмерного моделирования) и Photoshop (или любым его аналогом). В данном конкретном случае я собираюсь использовать терминологию этих двух пакетов. Однако, не смотря на это те же самые принципы можно использовать, пользуясь любым другим софтом.

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

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

              Хочу также отметить, что я не причисляю себя к мастерам, которые делают шедевры. Данное примечание я делаю для тех злых людей, которые говорят (или скажут после публикации), что я заносчив, что меня занесло под небеса, и тех кто вместо того чтобы работать предпочитает злословить словно ябедник Кийр из моей любимой книги Оскара Лутса «Весна».

              С преамбулами покончено перейдем к сути.

              Я утверждаю и не беспочвенно, что хороший фон можно и нужно создавать не за неделю, не за пять дней и даже не за три. Чтобы сделать хорошую картинку для казуальной игры, без разницы i-spy это, match-3 или аркада, достаточно 48 часов. Разумеется, при условии того, что человек занимается работой, а не просиживанием штанов.

              image

              Читать дальше →
            • KnockoutJS: сказ о том, как легко принимать или отклонять изменения

                Довольно часто в пользовательском интерфейсе есть кнопки «Сохранить» и «Отмена». Особенно часто эти кнопки используются в формах. Несмотря на то, что в современном мире всё идёт к упрощению интерфейса, но на эти кнопки всё равно есть спрос.

                Сегодня я предлагаю разобраться как с помощью KnockoutJS принимать и откатывать изменения для индивидуальных observables так и целых view models.

                Знакомые с KnockoutJS сразу могут выдать две ссылки на лучший блог о сабже

                У этих методов есть как плюсы, так и вполне существенные недостатки, от которых нужно избавлятся. Недостатки с функциональной точки зрения
                • Dirty flag — не позволяет сохранять изменения, а только сбросить их в начальное состояние.
                • protectedObservable — никто не видит изменений observable до тех пор, пока не произойдёт commit. Это ограничение сильно удручает при использовании dependent observables, к примеру.

                Ну и к тому же, они нацелены на индивидуальные observable'ы, а хотелось бы работать с несколькими полями сразу.

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

                Читать дальше →
              • Полезные инструменты, туториалы и ресурсы

                • Перевод
                Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



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

                Читать дальше →
              • Tactoom.com изнутри — социальная блог-платформа на NodeJS/NoSQL

                  Tactoom.com - under the hoodИтак, пришло время раскрыть некоторые карты и рассказать о том, как устроен Tactoom изнутри.

                  В этой статье я расскажу о разработке и выведении в production веб-сервиса с использованием:
                  NodeJS (fibers), MongoDB, Redis, ElasticSearch, Capistrano, Rackspace.
                  Читать дальше →
                • 20 бесплатных дополнений для Visual Studio

                    Для Visual Studio 2010 создано уже около 900 дополнений. Многие из них позволяют облегчить решение рутинных задач, добавить удобства. Ниже представлено двадцать популярных дополнений, которые вы возможно найдете полезными для вашей работы.
                    Читать дальше →
                  • Упрощенный алгоритм Бойера-Мура

                      Прочитав статью об алгоритмах поиска подстроки в строке, я обнаружил, что там не рассказывается об алгоритме Бойера-Мура. Пара слов о нём всё-таки там есть, а именно, говорится, что алгоритм Бойера-Мура заслужил себе звание «алгоритма по умолчанию», потому что он в среднем дает лучшее время поиска (с чем я полностью согласен). Под катом рассказано об упрощенной версии этого алгоритма. В принципе, большинство скорее всего изучало этот алгоритм на 1-м или 2-м курсе ВУЗа (как и я), поэтому они могут пропустить эту статью, ничего нового тут нет.
                      Читать дальше →
                    • Задача нахождения максимума на отрезках фиксированной длины

                      Постановка задачи


                      Пусть дан массив A длины N, и дано число K ≤ N. Требуется найти максимум (минимум, сумма ...) в подотрезках длины K данного массива. Это частный случай задачи RMQ (Range Minimum Query — минимум на отрезке), но с дополнительными ограничениями — постоянная длина отрезка поиска. В данном решении задача не предполагает возможность изменения элементов массива.
                      Читать дальше →
                      • +38
                      • 22,7k
                      • 3
                    • Суффиксный массив — удобная замена суффиксного дерева

                        Здравствуйте, уважаемое сообщество! Думаю, многим знакома такая структура данных как суффиксное дерево. На Хабре уже было описание как его построить и зачем. Если вкратце, то оно нужно тогда, когда надо много раз искать какие-то произвольные образцы Xi в заранее заданном тексте A, а строится такое дерево мучительно с помощью алгоритма Укконена (есть и другие варианты, но они предполагают еще большее количество страданий). Общее наблюдение при работе с алгоритмами таково, что деревья — это, конечно, хорошо, но на практике их лучше избегать из за серьезных оверхэдов по памяти и не очень оптимального (с точки зрения эффективности оперирования данными компьютером) расположения. Кроме того, именно в таком дереве есть еще более существенная неприятность, а именно алфавитнозависимость структуры. Для решения этих проблем был придуман суффиксный массив. О том как его строить и как использовать и пойдет в этой статье.

                        Материал статьи предполагает знание понятий суффикса и префикса строки, а также знание того, как работает бинарный поиск. Надо также представлять, что такое стабильная сортировка и поразрядная сортировка, а также понимание, что имеется ввиду под стабильной сортировкой подсчетом. Для некоторых частей нам понадобится знание задачи о минимуме на отрезке — Range Minimum Query (RMQ). Ну, в общем, вас предупредили: никто не говорил, что будет просто.

                        Читать дальше →
                      • Что почитать на выходных? Рекомендуем

                          Это первый, пробный выпуск подборки интересных ссылок на статьи по разработке веб-приложений на платформе .NET (и не только). Сегодня я представляю первую подборку статей, которые будет полезно почитать в свободные минуты на выходных. Большинство статей написаны на английском, но, со временем, я надеюсь публиковать больше ссылок на русскоязычные статьи.

                          Тема номера:

                          Мега-подборка видео-материалов по разработке на ASP.NET WebForms, ASP.NET MVC и WebMatrix:
                          • 35 видео: что нового в ASP.NET и быстрое введение в новые функции [link];
                          • 114 видео: руководства по доступу к данным в ASP.NET [link];
                          • 155 видео: руководства по AJAX, AJAX Control Toolkit [link];
                          • 29 видео: руководства по вопросам безопасности ASP.NET [link];
                          • 17 видео: введение в разработку на WebMatrix [link];
                          • 24 видео: работа с IIS, развертывание ASP.NET-сайтов [link];
                          • 61 видео: руководства по построению приложений на ASP.NET MVC [link];
                          • 17 видео: руководства по доступу к данным в ASP.NET MVC [link];
                          • 5 видео: руководства по вопросам безопасности в ASP.NET MVC [link].
                          WebForms:
                          Читать дальше →
                        • Удаленная отладка Node.js приложений и кода на WebKit браузерах

                            В статье пойдет речь о Must Have тулзе для удаленной отладки Node.js приложений либо кода на WebKit браузерах node-inspector.

                            Для отладки кода в браузере, впринципе удаленная отладка и не нужна, не считая мобильных устройств, где она фактически не возможна потому что крайне не удобна. Совсем другое дело с серверным JavaScript. Node.js имеет несколько отладчиков, восновном продвигают ndb Node Debugger — консольная утилита для дебага Node.js приложений. Подходит только для фанатов консоли либо для мазохистов. Работать не удобно, отлаживать долго, по сравнению с отладкой кода в том же FireBug.

                            Что же умеет node-inspector:
                            1. Удаленная отладка
                            2. Отладка в графическом интерфейсе WebKit-debugger (На клиент ничего не нужно ставить — у вас все уже есть)
                            3. Редактирование runtime-кода!
                            4. Использует WebSockets, и никакого polling'а!
                            5. Удаленное профилирование блоков кода c использованием v8-profiler
                            Читать дальше →
                          • Что нужно знать про арифметику с плавающей запятой



                            В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

                            Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
                            Читать дальше →