D для новичков, часть 2

Автор: admin от 25-06-2015, 22:36, посмотрело: 373

Доброго времени суток, хабр!

Продолжим тематику предыдущей статьи. Здесь будет объяснение таких концепций, как @safe, @trusted, pure, nothrow, некоторые моменты, касающиеся ООП.

Категория: Программирование

 

Vim по полной: Компиляция и выполнение чего угодно

Автор: admin от 25-06-2015, 22:01, посмотрело: 590

Оглавление



  • Введение (vim_lib)

  • Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)

  • Уровень проекта и файловая система (vim_prj, nerdtree)

  • Snippets и шаблоны файлов (UltiSnips, vim_template)

  • Компиляция и выполнение чего угодно (vim-quickrun)

  • Работа с Git (vim_git)

  • Деплой (vim_deploy)

  • Тестирование с помощью xUnit (vim_unittest)

  • Библиотека, на которой все держится (vim_lib)

  • Другие полезные плагины


  • Как можно назвать редактор удобным, если он не умеет запускать то, что мы программируем? Особенностью описываемого мной в данной статье плагина, является возможность запуска чего угодно, будь то программный код, plantUML, LaTeX, Less и всего, что можно написать и запустить. Плагин vim-quickrun может показаться довольно запутанным и сложным, не смотря на прекрасную документацию, потому я решил коротко осветить его в этой статье, дабы вы могли быстрее начать им пользоваться.
    Выполнить

    Категория: Программирование / Веб-разработка

     

    Создание дизайна для дальтоников (и вместе с ними)

    Автор: admin от 25-06-2015, 21:37, посмотрело: 730

    Создание дизайна для дальтоников (и вместе с ними)

    Каждый раз, как кто-то узнает, что я дальтоник, я отвечаю на один и тот же вопрос: «Какой это цвет?». В 95% случаев я отвечу правильно, и поэтому мне задают еще один вопрос: «Подожди, значит, ты понимаешь, что это [вставить название цвета]? Так что ты видишь?». И тут начинается процесс объяснения того, как работает дальтонизм, и как он на меня влияет.

    Категория: Программирование / Веб-разработка

     

    Простыми словами о Twelve-Factor App

    Автор: admin от 25-06-2015, 17:41, посмотрело: 460

    Известный провайдер heroku поддерживает манифест, который называется «12-факторное приложение» (Twelve-Factor App). Это набор лучших практик для разработки современных веб приложений на любой платформе. Практики описывают приложения, которые готовы:

    • к горизонтальному масштабированию;

    • к непрерывному развертыванию;

    • к современным облачным хостингам.


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

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

    Категория: Программирование / Веб-разработка

     

    Отчет о саммите Google RISE и сервисах для обучения детей программированию

    Автор: admin от 25-06-2015, 16:36, посмотрело: 534

    Прошло уже несколько месяцев как наша команда съездила в Бостонский офис Google на саммит посвященный обучению детей программированию. Эмоции остыли и самое время поделиться с вами полезной информацией.

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

    Отчет о саммите Google RISE и сервисах для обучения детей программированию

    Категория: Программирование / Google

     

    Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

    Автор: admin от 25-06-2015, 15:53, посмотрело: 1 025

    Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.

    Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

    Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

    Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

    Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

    Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

    Хороший списочек проблем? Итак, мы их все геройски попробуем решить!

    Категория: Программирование / Системное администрирование / Информационная безопасность / Сетевые технологии

     

    Использование Log4php в Magento-приложениях

    Автор: admin от 25-06-2015, 14:42, посмотрело: 576

    Magento без сомнения является выдающейся системой для построения e-commerce приложений. Принципы, заложенные в ее архитектуру, позволили не только занять первое место рейтинга в своем классе web-приложений и удерживать его многие годы, но, что более важно, сформировать вокруг себя эко-систему разработчиков, создающих для основного функционала расширения, удовлетворяющие самым экзотическим требованиям пользователей. Но вот чего мне сильно очень сильно не хватало в Magento при первом «подходе к снаряду», так это системы логирования уровня Log4php. Поэтому первое расширение, которое было сделано для Magento — это «обертка» для Log4php. Под катом описание того, как мы используем эту «обертку» в наших Magento-проектах.

    Категория: Программирование / Веб-разработка

     

    Новый Cherry Framework 4 | Вишенки созрели

    Автор: admin от 25-06-2015, 14:41, посмотрело: 1 070

    Привет, Хабр! На этой неделе появилось обновление довольно полезного и интересного фреймворка «Cherry Framework» – периодически поглядываю за ним, так как ранее принимала участие в его разработке и мне как минимум интересно, в каком направлении он развивается сейчас. Внутри поста поговорим о том, что это за фреймфорк и что же такого натворили в новой версии.

    Новый Cherry Framework 4 | Вишенки созрели

    Категория: Программирование / Веб-разработка

     

    Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

    Автор: admin от 25-06-2015, 14:36, посмотрело: 881

    Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

    Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.

    Категория: Программирование / Веб-разработка

     

    Как я получил доступ к «бесконечным» лайкам в Instagram и ВК

    Автор: admin от 25-06-2015, 14:24, посмотрело: 1 537

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

    Категория: Информационная безопасность

     
    Назад Вперед