• 8 фактов, которые вы, возможно, не знали о C#

    • Translation
    Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

    1. Индексаторы могут использовать params параметры


    Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

    public string this[string key]
     {
       get { return internalDictionary[key]; }
     }
    

    Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
    Просто напишите ваш индексатор следующим образом:
    Читать дальше →
  • Программисты-оптимисты


      Мы, программисты, — оптимисты. Это проявляется во всем цикле разработки ПО от оценки сроков до написания кода и внедрения. Как показывает моя практика, в разработке ПО законы Мерфи работают в 100% случаев. Несмотря на это, я раз за разом сталкиваюсь с «программистами-оптимистами».

      Топ «оптимистичных» допущений:
      Читать дальше →
    • Основной цикл в Javascript



      Все мы слышали про ajax и node.js. Они прочно обосновались уже не просто в словарном запасе, но и в наборе инструментов веб-разработчика. Ajax — асинхронное подтягивание данных с сервера на страницу, node — фреймворк с асинхронным IO. Но как в таком однопоточном языке, как Javascript, реализуется та самая асинхронность?

      Вы, наверное, уже догадались из заголовка, речь пойдет об основном цикле («main loop»).
      Читать дальше →
    • ASP.NET MVC. Урок 0. Вступление

      • Tutorial
      Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

      Почему именно asp.net mvc

      ASP.NET MVC я люблю потому что:
      • Это .net. Я знаю .net и С#.
      • Это компилируемый код.
      • Это не ASP.NET WebForms, я работаю с html-кодом.
      • Используется MVC-паттерн.
      • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
      • Отличные инструменты отладки.


      Читать дальше →
    • Высокопроизводительный JavaScript-параллакс

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

      Я — Фёдор furikuretsu Ананьев, веб-разработчик студии Hot Dot, и сегодня я дам несколько простых советов для тех, кто хочет сделать своё JS-параллакс-приложение очень и очень быстрым.
      Читать дальше →
    • Nodecopter — управление квадрокоптерами на Javascript

        Уже давно существует целое сообщество любителей-разработчиков, которые занимаются программированием летающих роботов. Они устраивают периодические конференции и сходки. Но в чем же особенность данного сообщества, спросите Вы? дело в том, что программирование квадрокоптеров осуществляется на Javascript на платформе NodeJS. Среди разработчиков большой популярностью пользуется всем уже известный ArDrone Parrot, который уже не раз освещался на страницах Хабра.



        Подробности под катом.
        Читать дальше →
        • +19
        • 17.8k
        • 5
      • Отладка Node.js в Visual Studio

          Мне нравится Node.js, но совсем недавно я начал использовать её на серьёзных проектах. При этом я продолжил пользоваться моей любимой средой разработки*. И если для простых скриптов достаточно просто редактора, то для серьёзной разработки нужны серьёзные инструменты, в частности, дебаггер. Ничего готового для студии найти не удалось, поэтому я взял и за пару выходных сделал его сам:
          image
          Читать дальше →
        • 10 странностей и секретов JavaScript

          • Translation
          JavaScript. Одновременно пугающий и притягательный. Я уверен, если бы Пабло Пикассо был программистом, то он создал именно этот язык. Null здесь является объектом, пустым массивом, он равен false, а функции летают рядом с ним как теннисные мячики.

          Читать дальше →
        • Как заставить компилятор C/C++ генерировать плохой код

          Это перевод статьи «How to trick C/C++ compilers into generating terrible code?», автор оригинала — Aater Suleman.

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

          Читать дальше →
        • Онлайн-инструменты для кодеров

            Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

            Cloud9


            «Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

            Читать дальше →
          • Тонкие моменты C#

            C SharpНе секрет, что C# сегодня популярный и динамично развывающийся язык, в отличие от своего прямого конкурента — языка Java, который в плане функциональности переживает период застоя. Основное неоспоримое преимущество Java — настоящая кросплатформенность, а не унылая и ограниченная, как у C#.

            C# — простой язык, благодаря простоте живёт и PHP. Но в то же время он весьма функциональный, и имеет статус «гибридного» языка, совмещая в себе различные парадигмы, встроенную поддержку как императивного стиля программирования, так и функционального.

            Как и любой язык, шарп имеет свои тонкости, особенности, «подводные камни» и малоизвестные возможности. Что я имею ввиду? Читайте под катом…
            Читать дальше →
          • OpenCV 2.4.3

              Авторы: Анатолий Бакшеев, Кирилл Корняков(kirillkornyakov), Андрей Морозов(aod314), Вадим Писаревский, Олег Скляров(olegsklyarov), Евгений Таланин, Александр Шишков(AlexanderShishkov).

              image image

              Привет, Хабр!

              Мы рады сообщить, что 2 ноября увидела свет новая версия OpenCV, свободной библиотеки компьютерного зрения. Этот пост написан разработчиками библиотеки, работающими в компании Itseez. Мы перечислим основные нововведения с момента выхода предыдущей версии, стоит отметить, что их достаточно много: новые алгоритмы, ускорение существующих, поддержка новых платформ, обновление процесса разработки, интеграции и тестирования, а так же обновлённая документация. За время подготовки релиза было закрыто более 210 задач на трекере (hackathon, release candidate, release): патчи, исправления ошибок, расширение существующей функциональности.

              Но обо всём по порядку.
              Читать дальше →
            • Чистый C++


                Давайте знакомиться.
                Я — Серега. (На фото — не я). Работаю в Intel. Вместе с коллегами пишу GPA. Программирую вот уже скоро 20 лет как. Ну, это если считать со школы. Последнее время накопилось много разных мыслей, которыми хочется с кем-то поделиться. Рассказать кому-то о том, что такое хорошо, а что такое плохо. Рассказывать можно и пустоте (так даже спокойней, никто не отвлекает и не суется со Своим Самым Правильным мнением), но это не очень эффективно. Поэтому буду сливать свои мысли сюда. Вдруг кому-нибудь пригодится…

                В качестве введения
                Многие считают, что есть два родственных языка — C и C++. При этом C++ — это якобы тот же C, только с двумя плюсами, т.е. ООП. Это очень распространенное заблуждение. «На самом деле все не так». C и С++ — это совершенно разные языки, не имеющие между собой практически ничего общего. Однако исторически так сложилось, что C++ синтаксически совместим с C, т.е. может компилировать программы, написанные на C. Из-за этой особенности четкая грань между языками отсутствует и существует множество кода, написанного на жуткой смеси этих языков. Причем пропорция этой смеси может меняться даже в рамках одной программы у одного автора.
                Читать дальше →
              • Инъекция кода в .NET CLR: изменение IL-кода во время выполнения программы

                • Translation

                Предисловие



                Изменение .NET метода MSIL кода во время выполнения приложения – это очень круто. Это настолько круто, что можно перехватывать вызовы функций (hooking), сделать защиту своего ПО и другие удивительные вещи. Именно поэтому мне уже давно хотелось это осуществить, но была одна проблема – MSIL код компилируется в машинный код с помощью JIT перед тем, как мы сможем что-либо с этим кодом сделать. А так как .NET CLR не документирована и изменяется от версии к версии, то мы и будем искать стабильный и надёжный путь, независимый от точного расположения адресов в памяти.
                Читать дальше →
                • +88
                • 35.2k
                • 7
              • Премьера jQuery UI 1.9.0

                  image

                  За последние два с половиной года команда jQuery UI проделала огромную работу. Было выпущено более десятка релизов, исправлено больше 500 багов. Но основная задача была сделать jQuery UI как можно стабильнее, и гибче. В прошлом году мы замахнулись на серьезную цель:
                  Мы хотим полностью обновить весь проект к версии 2.0. Мы упростим API, улучшим стабильность, документацию, и обеспечим полное тестирование каждого плагина.

                  И вот сегодня мы рады представить вам первый важный шаг в достижении этой цели — новая версия jQuery UI 1.9.0. Она содержит сотни исправлений, лучшее покрытие тестами, и обновленным API. В добавок, мы развернули новую версию сайта, с улучшенной документацией.
                  Итак, что вас ждет
                • Теплый и ламповый VPN

                  • Tutorial

                  Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

                  — Алло, милый! У меня youtube не работает!
                  — Прекрасно, иди спать!
                  — Нууу! Там новая серия вышла!
                  — Завтра всё сделаю!
                  — Ну Заяя, нуууу!
                  — Ладно! Ладно! Сейчас.


                  Из этого поста вы узнаете ответы на следующие вопросы:
                  Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
                  Читать дальше →
                • Новое в CSS3: многоколоночность, flexbox, сеточная разметка

                  • Tutorial
                  Веб развивается, появляются все новые возможности разметки страниц для верстальщиков, в том числе в этом помогают новые свойства в CSS. В этой статье я описал некоторые из них: многоколоночность, flexbox и сеточная разметка.

                  Поддержку новых функций браузерами можно проверить на сайте caniuse.com:



                  Читать дальше →
                • Ещё семь фич HTML5, о которых вы могли не знать

                  • Tutorial
                  Доброго времени суток!

                  Все мы достаточно наслышаны об HTML5 и его возможностях. Например, элементы audio и video, которые у всех на слуху. Но несмотря на это, существует парочка тегов, о которых знают далеко не все, и о которых не знал я до недавнего времени. Итак, вот чем я хочу с вами поделиться.
                  Читать дальше →
                • Завяжите шнурки и подтяните свои штаны!

                  • Translation
                  Итак, что же замедляет разработку программного обеспечения?

                  Задумайтесь об этом вопросе на секунду. Как так выходит, что чем дольше Вы что-либо разрабатываете, тем сложнее и неприятнее добавлять в Ваше приложение новые фичи, попиливать архитектуру?

                  И почему раньше задачи решались так просто, а теперь выглядят запутанными и сложнореализуемыми?

                  Казалось бы, положение должно улучшаться, ведь Вы уже давно в проекте, разве нет? Почему всё происходит наоборот?
                  Читать дальше →
                • Как обойтись без капчи?

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

                    Читать дальше →