• Задачка на 10 000 руб

      Приз победителя – 10 000 рублей

      Имеется множество шестиразрядных чисел, записанных в системе исчисления с переменным основанием, т.е. каждый разряд этой системы исчисления имеет свое максимальное значение (основание минус 1). Число в этой системе исчисления записывается десятичными числами-разрядами слева направо от старшего разряда к младшему. Разряды разделяются пробелом. Максимальные значения разрядов этой системы “4 8 15 16 23 42”
      минимальное число
      “0 0 0 0 0 0” соответствует числу “0″ в десятичной системе,
      “0 0 0 0 0 42” соответствует числу “42″ в десятичной системе,
      “0 0 0 0 1 0” соответствует числу “43″ в десятичной системе, и т.д.
      Входной файл содержит список чисел, записанных в этой системе. Необходимо составить выходной файл, заменив каждое число входного файла в этой системе исчисления на число в этой же системе исчисления, следующее за ним.
      Пример:
      Во входном файле “1 3 12 22 0 11“. В выходном “1 3 12 22 0 12“.
      Во входном файле “2 0 0 16 23 42“. В выходном “2 0 1 0 0 0“.
      Входной файл
      konkurs1
      Удачи!
      Подробности тут
      UPD
      1) Присылайте пожалуйста файл, исходный код не нужен и защитан не будет.
      2) Придумайте себе уникальный ник. Если, например, вас зовут Сергей и вы победите, то возможно будет путаница, какой именно Сергей победил (имя выбрано для примера). Мы конечно разберемся по e-mail, но с ником проще.
      3) Выполняйте задание внимательно. Проверяйте результат внимательно. Неправильный результат не засчитывается.
      4) Все результаты в понедельник через неделю, 7 февраля в 14-00

      UPD
      По просьбам участников время проведения конкурса сокращено. Верные решения уже есть, победитель известен. После обработки всех ответов будут объявлены результаты. Спасибо всем, кто принял участие!

      UPD
      Итоги конкурса
    • Делает ли Google нас глупее?

      • Translation
      «Дэйв, стойте! Вы будете останавливаться? Остановитесь, Дэйв! Вы остановитесь? Дэйв?» Так суперкомпьютер ЭАЛ упрашивал неумолимого астронавта Дэйва Боумена в знаменитой и острой сцене ближе к концу фильма Стэнли Кубрика «2001: Космическая Одиссея». Боумен, будучи на краю гибели в глубоком космосе из-за неправильной работы машины, спокойно и хладнокровно отключает цепи памяти, которые отвечают за искусственный интеллект.
      «Дэйв, мой разум умирает», сказал ЭАЛ со слабой надеждой. «Я могу чувствовать это. Я чувствую это.»
      Я тоже это чувствую...
    • Как вы оцениваете свою должность разработчика?

      • Translation
      Я ищу работу на позицию Старшего Разработчика – в таком духе начинается графа Цель в большинстве резюме. Дело тут не только в том, что компания ищет разработчика именно на эту должность, а скорее в том, что разработчик, со своей стороны, оценил не только себя, но и других разработчиков компании, пока составлял резюме. В сегодняшнем посте, я хотел бы рассмотреть то, как делают такую оценку разработчики и рекрутеры.
      Читать дальше →
    • О другом подходе к устройству на работу

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

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

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

        Статья для соискателей.
        Читать дальше →
      • 6 отстойных слов в вашем резюме

        • Translation
        Эта статья – часть серии «Как написать резюме». Чтобы начать серию сначала, прочитайте введение.

        За свою жизнь, я использовал несколько плохих слов. Даю %^й на отсечение, что вы тоже делали это. Но, когда неправильные слова появляются у вас в резюме – это делает его отстойным.
        Читать дальше →
      • Альтернативные аллокаторы памяти

        • Translation
        Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
        Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

        Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


        Обязательная вступительная басня

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

        Сейчас объясню, почему...
      • Пара полезных команд, которые могут пригодиться при DDoS и не только

          В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

          log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
          '$status $body_bytes_sent "$http_referer" '
          '"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

          Что на выходе дает что-то вроде такой строки:

          188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

          1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

          Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
          Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
          Читать дальше →
        • Конструирование типов в Scala

            При построении многослойных («enterprise») систем часто оказывается, что создаются ValueObject'ы (или case class'ы), в которых хранится информация о каком-либо экземпляре сущности, обрабатываемом системой. Например, класс

            case class Person(name: String, address: Address)
            


            Такой способ представления данных в системе обладает как положительными свойствами:
            • строго типизированный доступ к данным,
            • возможность привязки метаинформации к свойствам с помощью аннотаций,


            так и некоторыми недостатками:
            • если сущностей много, то таких классов также становится довольно много, а их обработка требует много однотипного кода (copy-paste);
            • потребности отдельных слоёв системы в метаинформации могут быть представлены аннотациями к свойствам этого объекта, но возможности аннотаций ограничены и требуют использования reflection'а;
            • если требуется представить данные не обо всех свойствах объекта сразу, то созданные классы использовать затруднительно;
            • затруднительно также представить изменение значения свойства (delta).


            Мы хотим реализовать фреймворк, позволяющий создавать новые «классы» (типы, конструкторы этих типов, объекты новых типов) инкрементно, используя наши собственные «кирпичики». Попутно, пользуясь тем, что мы сами изготавливаем «кирпичики», мы можем достичь таких полезных свойств:
            • возможность описывать отдельные свойства сущностей (с указанием типа данных в этом свойстве и любой метаинформации, необходимой приложению, в форме, подходящей именно для этого приложения);
            • возможность оперировать со свойствами экземпляров строго типизированным образом (с проверкой типов на этапе компиляции);
            • представлять частичную/неполную информацию о значениях свойств экземпляра сущности, пользуясь объявленными свойствами;
            • создавать тип объекта, содержащего частичную информацию о свойствах экземпляра сущности. И использовать этот тип наравне с другими типами (классами, примитивными типами и др.).

            Читать дальше →
            • +12
            • 8.1k
            • 8
          • Алгоритм решения задачи о рюкзаке ( версия 2, исправленная)

            Ниже приведен алгоритм точного решения целочисленной задачи о рюкзаке. Предлагаемый алгоритм требует меньше вычислительных ресурсов и возможно несколько проще алгоритма динамического программирования (ДП).

            Причина побудившая автора к публикации


            Первая версия описания алгоритма было послана мною в институт математики им. С. Л. Соболева Сибирского отделения РАН, откуда был прислан ответ что указанный алгоритм известен давно. Цитирую:
            Одно из его первых упоминаний в книге Кереллера Nemhauser, Ullman, Discrete dynamic programming and capital allocation, Management Science, 15 p. 494-505, 1969.
            Тем не менее я решил ознакомить сообщество с алгоритмом, т.к. в известных мне учебниках по дискретной математике я его не обнаружил (возможно плохо искал). В первой версии алгоритма была ошибка, указанная мне пользователем wataru. За это ему большое спасибо. Я постарался эту ошибку устранить. До алгоритма я дошел самостоятельно, так что надеюсь ничьих прав не нарушаю. Возможно кому нибудь описание будет интересно и пригодится.
            Читать дальше →
          • [видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

              Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

              Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



              10 реальных ситуаций, которые удалось осветить — под катом:

              Читать дальше →
            • Людям не нравится креативность

              • Translation
              В Соединенных Штатах нас с детства приучают ценить достижения изобретателей и мыслителей – творческих людей, чьи идеи изменили наш мир. Мы почитаем одаренных людей, величайших художников и новаторов от Ван Гога до Стива Джобса. Возможность смотреть на мир творчески – это богатство и добродетель. Сейчас базы вакансий и резюме ломятся от объявлений о найме «людей с идеями» и «креативных мыслителей». Нас учат, что наш собственный творческий потенциал тоже будет приветствоваться, и что если у нас есть хорошие идеи, мы добьемся успеха.

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

                Я с большим удовольствием прочитал топик-исследование башни Тесла.
                Безусловно, авторы ставят очень заманчивую цель: передача энергии без проводов, в планетарных масштабах, просто мечта энергетики.
                Анализ, проведенный в топике, глубок, формулы — классика радиотехники, все расчеты верны.
                Но после прочтения остался вопрос: если все сделать согласно авторам, то что мы получим? Какие характеристики передачи энергии будут у такой системы?
                За электротехническими характеристиками башни Тесла - сюда
              • Сортировка слиянием без использования дополнительной памяти

                  Я долгое время думал, что написать сортировку массива слиянием так, чтобы она не использовала дополнительной памяти, но чтобы время работы оставалось равным O(N*log(N)), невозможно. Поэтому, когда karlicos поделился ссылкой на описание такого алгоритма, меня это заинтересовало. Поиск по сети показал, что про алгоритм люди знают, но никто им особо не интересуется, его считают сложным и малоэффективным. Хотя, может быть, они имеют в виду какую-то «стабильную» версию этого алгоритма, но нестабильная при этом все равно никому не нужна.

                  Но я все-таки решил попробовать.

                  Читать дальше →
                • Быстрая, экономная, устойчивая…


                    Если вам понадобится алгоритм сортировки массива, который:
                    • Работал бы гарантированно за O(N*log(N)) операций (обменов и сравнений);
                    • Требовал бы O(1) дополнительной памяти;
                    • Был бы устойчивым (то есть, не менял порядок элементов с одинаковыми ключами)

                    то вам, скорее всего, предложат ограничиться любыми двумя из этих трёх пунктов. И, в зависимости от вашего выбора, вы получите, например, либо сортировку слиянием (требует O(N) дополнительной памяти), либо пирамидальную сортировку (неустойчив), либо сортировку пузырьком (работает за O(N2)). Если вы ослабите требование на память до O(log(N)) («на рекурсию»), то для вас найдётся алгоритм со сложностью O(N*(log(N)2) — довольно малоизвестный, хотя именно его версия используется в реализации метода std::stable_sort().

                    На вопрос, можно ли добиться выполнения одновременно всех трёх условий, большинство скажет «вряд ли». Википедия о таких алгоритмах не знает. Среди программистов ходят слухи, что вроде бы, что-то такое существует. Некоторые говорят, что есть «устойчивая быстрая сортировка» — но у той реализации, которую я видел, сложность была всё те же O(N*(log(N)2) (по таймеру). И только в одном обсуждении на StackOverflow дали ссылку на статью B-C. Huang и M. A. Langston, Fast Stable Merging and Sorting in Constant Extra Space (1989-1992), в которой описан алгоритм со всеми тремя свойствами.

                    Так что же это за алгоритм?
                  • Место сценариста в команде разработки игр



                      Здравствуйте, меня зовут Мария Кочакова, я сценарист проекта Skyforge в Allods Team. Эта статья подытоживает два года моей работы игровым сценаристом. Все это суровые реалии жизни сценаристов компьютерных игр, то, с чем мы сталкиваемся ежедневно. Категоричность формы продиктована важностью содержания.

                      Сценарий компьютерной игры

                      Нарративная (повествовательная) часть игры состоит из сеттинга, сюжета и текста.

                      Сеттинг — это мир игры, его законы и реалии. Примеры сеттинга: постапокалипсис, фэнтези-средневековье, киберпанк…
                      Читать дальше →
                    • Вся правда о модели Пропасти: Ранние рынки и как быть, если вы совершили ошибку

                        Модель пропасти


                        Всем привет, я бы хотел поговорить о такой вещи как Модель пропасти, Джеффри Мура, которая многим известна, но мне хотелось бы привести примеры и поговорить о нюансах модели.

                        Сейчас, куда не посмотри, все стали учёные: литературой запаслись, интернеты читают. Кого не спроси, и о кривой принятия технологии знают, и вообще всё им понятно: «… да-да, знаем! Есть Новаторы, Ранние последователи, есть рынок ранний, а есть поздний, отщепенцы и увальни — ну куда без них? Да-да, между рынками, ранним и основным, есть пропасть, которую нужно перепрыгнуть!» Знают. Прыгают. Только, бывает, пикируют. А всё почему? Потому что аннотацию прочли, а содержимое не осилили. Поэтому я написал эту заметку. Речь пойдёт о том, что важные вещи, которые нужно знать о модели Пропасти, не всегда лежат на поверхности.
                        image

                        Сразу оговорюсь — модель работает только при инновациях, прерывающих привычный образ жизни. Если это улучшения линейные, и никак не меняют ваш привычный образ жизни — модель гарантированно не сработает.
                        Читать дальше →
                        • +43
                        • 25.3k
                        • 5
                      • Почему я не лезу в криптографию

                        • Translation
                        Предлагаю вашему вниманию вольный перевод интересной заметки о тяжком бремени программистов, занимающихся криптографическими алгоритмами. Заметка — личный взгляд человека, который уважает таких программистов, но сам ни за что бы не полез в криптографию.
                        И вот почему
                      • Об особенностях видеосъёмки лекций



                        За последний год я имел отношения к записи более 1000 лекций разного уровня сложности и хотел бы поделиться своим опытом в этой части. Это обещанное продолжение статьи Тренды в образовательной среде (памятка для вуза).

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

                        В частности, надо понимать, что ТВ опыт скорее мешает, чем помогает. Мы принципиально набираем операторов без опыта, так как телевизионщики, привыкшие к другой схеме работы, не справляются. Разные планы, разные приоритеты, минимум подсъёмок.

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

                        Итак, можно выделить следующие типы видеосъёмки лекций:
                        Читать дальше →
                      • Основная особенность наших разработчиков

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

                          Андрей, музыкант

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

                          По-моему, эта статья — самое важное, что я в жизни сделал. Не самое сложное, объёмное или интересное, а важное.

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

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

                          • Tutorial
                          После большого перерыва продолжаем цикл о графических вероятностных моделях (часть 1, часть 2). Сегодня мы наконец-то от постановок задач перейдём к алгоритмам; поговорим мы о самом простом, но часто полезном алгоритме вывода на фактор-графах – алгоритме передачи сообщений. Или, как его ещё можно назвать, алгоритме правильной расстановки скобок.


                          by sergey-lesiuk
                          Читать дальше →
                          • +45
                          • 24.6k
                          • 2