• Нестандартное использование Get и Set в Javascript

      Многие в курсе, что в Javascript есть так называемые Getter'ы и Setter'ы. Это конструкции для отслеживания изменения значений свойств объекта, а так же возвращения этих значений. «С изнанки» объекта они выглядят как обычные функции:

      var obj = {
         get value() {
           return 0;
         },
         set value(s) {
           alert ("Go screw yourself!")
         }
      }


      * This source code was highlighted with Source Code Highlighter.


      Но раз это функции, их можно использовать как душе угодно!

      Читать дальше →
    • Почему вы должны использовать XMLHttpRequest асинхронно

      • Translation
      *Пер.: Мысль этого топика тривиальная и должна быть известна каждому: используйте асинхронные запросы. Но статистика — штука суровая, и, видимо, это знают не все. А последствия, на самом деле, имеют место во всех браузерах.*

      8.4% всех зависаний страниц в IE9 за прошедший месяц являются следствием того, что XMLHttpRequest объекты блокируют поток UI синхронным запросом. Это огромное число! С помощью нескольких доступных изменений в коде эти зависания можно легко избежать — и разработчики могут обеспечить своим пользователям намного лучшие впечатления от работы с их сайтами. Мы рассмотрим, что происходит при зависании, что вы можете с этим сделать, и мы также попробуем сделать небольшую демонстрацию, чтобы воочую посмотреть, что происходит, когда синхронный запрос подвешивает браузер.
      Читать дальше →
    • 13 бесплатных курсов Стэнфордского университета

        Недавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).

        Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
        Читать дальше →
      • Достала избыточность С++

        imageПривет Хабр,
        Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
        Читать дальше →
      • Интеллектуализация купольной поворотной камеры: автоматическое патрулирование, выбор целей и слежение

          Автоматизация системы управления купольной поворотной камеры (PTZ-камеры) – интересная и актуальная задача. По мере концентрации ситуационных центров и внедрения видеоаналитики возникает потребность в интеллектуальных алгоритмах, позволяющих не только анализировать видео со стационарных (неподвижных) камер, но и наводить роботизированную камеру на цель без участия оператора. Задержка, вносимая цифровой подсистемой кодирования и декодирования видео, ограничивает возможности дистанционного слежения за целью при помощи поворотной камеры и усиливает необходимость локальной автоматизации слежения. Наш пост Хабру содержит обзор основных задач по интеллектуализации PTZ-камер, подходов к их решению и предложений на рынке.
          Экспериментальная установка для автономного PTZ-слежения: видеоаналитическое устройство MagicBox, PTZ-камера Pelco и обзорная камера CNB
          Рис. 1. Экспериментальная установка для автономного PTZ-слежения: видеоаналитическое устройство MagicBox, PTZ-камера Pelco и обзорная камера CNB. Рис. 2.Предпозиции PTZ-камеры, управляемые зональным детектором движения.

          Читать дальше →
          • +22
          • 41.5k
          • 8
        • Дерево ван Эмде Боаса

            Всем доброго времени суток!

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

            Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

            Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

            Что же там еще есть такого вкусного?
          • Коротко о проекте

              «Сделки 24» — печатная машинка для малого бизнеса


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

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

              С апреля 2011 года мы распространяемся по модели freemium — базовые функции бесплатны, вкусности и большое количество контрагентов — 200 рублей в месяц.

              Любимые конкуренты


              Читать дальше →
            • Обзор e-Learning трекеров или Век живи — век учись!

                Все чаще можно услышать про универсальных трекеров-монстров типа ThePirateBay.org, torrents.ru или упоминания трекеров музыкальной либо игровой тематики. Но помимо них давно существуют торрент-трекеры обучающей направленности, о которых мало что известно рядовому пользователю. В основном, это закрытые сообщества образованных людей с регистрацией по приглашениям, которые обмениваются обучающими материалами, будь-то электронные книги, обучающее видео, CBT (computer based trainings), аудио-книги, презентации с конференций или софт для обучения. Преобладающая часть материалов связана с ИТ-технологиями и поэтому будет особенно полезна ИТ-специалистам, от студента, изучающего Linux, PHP или C# и до гуру, который готовится к сдаче CCIE. Также присутствует материал, посвященный изучению иностранных языков, психологии, саморазвитию, соблазнению, развитию бизнес-навыков. Если ты подумываешь сдать на CCNA, MCSE, RHCE, CISSP, Network+, PMP, IELTS/TOEFL и так далее — то здесь можно найти все необходимое и даже больше. Под катом находится обзор англоязычных ресурсов обучающей направленности.
                Поехали!
              • Обзор e-Learning трекеров (часть II)

                  В век всеобщей компьютеризации образование становится все доступнее. Онлайн можно посмотреть лекции именитых профессоров, поучаствовать в вебинарах, получить образование в Оксфорде или Кембридже. В этом топике я хотел бы коснуться образовательных трекеров, предоставляющих на бесплатной основе подчас неоценимые материалы. BitMe.org, BitSpyder.net, LearnBits.me, Elbitz.net уже подробно рассмотрены. Итак, новые участники обзора:

                  Читать дальше →
                • Введение в OpenCL

                    Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
                    Читать дальше →
                  • Почему я не использую платёжный агрегатор…

                      Оплата покупки на сайте — необходимый атрибут любого хорошего интернет-магазина. Это не просто правило хорошего тона, это значительное повышение оборотов. Способов оплаты в рунете много — электронные валюты Яндекс.Деньги, Киви, WebMoney, RBK Money, а также банковские карты, счета мобильных телефонов, смс микроплатежи и т.д. Как дать покупателям возможность оплачивать покупки любимым способом?
                      Для своего сервиса мы решили не заморачиваться и воспользовались услугами одного платежного агрегатора. Но по мере роста накопилось большое количество замечаний. Стало понятно, что агрегатор — временное решение, и рано или поздно от него придётся отказаться.

                      Тогда мы попытались подойти к задаче независимо и понять, в каких случаях стоит использовать платежные агрегаторы, а в каких — имеет смысл отказаться от их услуг.
                      Читать дальше →
                    • Алгоритм нахождения N первых простых чисел

                      В процессе обучения программированию я столкнулся с задачей поиска 1M первых простых чисел.

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

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

                      В результате проведенной работы на поиск 1 миллиона простых чисел у меня уходит всего 0,262 секунды, что, конечно же, не предел, но уже впечатляет. Алгоритм реализован на C++.

                      Читать дальше →
                    • Обзор систем онлайн-консультирования (часть 2)

                        Здесь можно прочесть часть №1

                        Окна чата – лицо онлайн консультанта…

                        Эта часть обзора, посвящена, на мой взгляд, важнейшему моменту в системах веб-консультирования (далее ВК), а именно окну чата и кнопке вызова онлайн консультанта. Ни для кого не секрет, что сайт стал для многих компаний визитной карточкой, а для кого-то и прямым источником дохода. Поэтому все то, что отвечает за дизайн и удобство работы с сайтом, должно быть пристально изучено. ВК – являются неотъемлемой частью современного сайта и их дизайн и удобство невозможно переоценить для формирования положительного имиджа компании-владельца сайта. Неправильный подбор окна чата/приглашения радикально сказывается на частоте использования ВК. Поэтому чем более гибкие настройки окна есть в системе – тем лучше.

                        Читать дальше →
                      • Жизнь в черной дыре или как взаимодействовать с крупными российскими компаниями

                        Крупная российская компания (КРК) в рамках данной статьи (если получится цикла статей) — это компания имеющая тысячи работников, филиалы или центры по всей России, историю идущую со времен СССР и де-факто монопольное положение на рынке. Лакомый кусок, вечная кормушка и страшнейший кошмар в одном лице. Один менеджер которого я знал за год работы с такой корпорацией заработал седую голову, другой от той же корпорации получил постоянный поток заказов и денег.

                        Как же получить второе не получив первого?
                        Читать дальше →
                      • Алгоритм нахождения простых чисел

                        Оптимизация алгоритма нахождения простых чисел


                        2 3 5 7 11 13 17 19 23 29 31… $250.000…

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

                        Алгоритм был придуман и тутже реализован на изучаемом языке. Программа запрашивала у пользователя число N и искала все простые числа до N включительно. После первого успешного теста сразу же возникло непреодолимое желание ввести N = «много». Программа работала, но не так быстро как хотелось бы. Естественно, дело было в многочисленных проверках (порядка N*N/2), поэтому пришлось избавиться от лишних. В итоге получилось 5 похожих алгоритмов каждый из которых работал быстре предыдущего. Недавно захотелось их вспомнить и реализовать, но на этот раз на Python.
                        Читать дальше →
                      • Как мы внедряли бизнес-процессы и зачем оно вообще надо

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

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

                          Читать дальше →
                        • IPO for dummies. Часть I: акции, мажоритарии, контроль над компанией

                            Во время недавнего обсуждения IPO Яндекса в комментариях прошла дискуссия на тему того, как торгуются акции на бирже, как проходит IPO, кто и какую от него получает пользу. По совету других участников обсуждения выношу в отдельную тему — а точнее, в серию тем — небольшой рассказ, который был рассредоточен по нескольким комментариям. Если вы тогда внимательно следили за темой, основная часть рассказа вам уже известна, но тем не менее… Если нет, вы наверняка найдете что-то интересное.

                            Disclaimer: эта и дальнейшие статьи серии написаны двумя хабраобитателями: honeyman — программистом стартапов, в свободное время экспериментирующим с торговлей на бирже и созданием аналитического софта для этого, в сотрудничестве с kaichik — журналистом и главредом автомобильных проектов. Если вы в предыдущем предложении не заметили слов «финансист», «лицензированные консультативные экономические услуги» и «богатый опыт» — то наверное, это потому, что их там не может быть.

                            • Часть I: акции, мажоритарии, контроль над компанией.
                            • Часть II: стоимость акций, биржа, самый лучший способ торговать картошкой, и кого же можно встретить на рынке бирже.
                            • Часть III: процесс IPO, его польза для компании, основателей и владельцев, а также почему у руководства компании при открытии торгов такой замученный вид.
                            • Часть IV: влияние IPO на доход от адулт-партнёрок.
                            • Часть V: жизнь после IPO.
                            • Часть VI: сложности выбора — два Lamborghini Gallardo или один Aventador?
                            • Часть VII: про инсайд.
                            • Часть VIII: о мотивации.


                            Итак, часть I: акции, мажоритарии, контроль над компанией.

                            Что такое акции, и для чего они нужны?

                            Читать дальше →
                          • Как устанавливать дополнительные пакеты во freenas 0.8

                              Собственно попался в руки freenas 0.8 встала проблема установить iperf, простым гуглением нахожу команду pkg_add -r iperf, где -r указывает ставить iperf с репозитория, но во фринасе корень промонтирован только на чтение:
                              freenas2# mount
                              /dev/ufs/FreeNASs1a on / (ufs, local, soft-updates)
                              devfs on /dev (devfs, local, multilabel)
                              /dev/md0 on /etc (ufs, local)
                              /dev/md1 on /mnt (ufs, local)
                              /dev/md2 on /var (ufs, local)
                              /dev/ufs/FreeNASs4 on /data (ufs, local, soft-updates)
                              data on /mnt/data (zfs, local)


                              Существующие решения найденные мною основываются на всяких chroot и unionfs и были довольно напряжны.

                              Собственно лечится командой:
                              mount -o rw /dev/ufs/FreeNASs1a /

                              И вуаля любой софт можно ставить pkg_add -r.
                              • –4
                              • 2.6k
                              • 5
                            • CUDA: аспекты производительности при решении типичных задач

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

                                  Здравствуйте!

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

                                  О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
                                  Читать дальше →