Как стать автором
Обновить
0
0
Eugene Vdovenko @Misanthropist

IT-шник

Отправить сообщение

Учебник по языку программирования D. Часть 5

Время на прочтение9 мин
Количество просмотров8.7K
Пятая часть перевода D Programming Language Tutorial от Ali Çehreli. В этой части переведена глава Logical Expressions. Материал главы рассчитан на новичков.
  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии15

Selenium для Python. Глава 1. Установка

Время на прочтение5 мин
Количество просмотров488K
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Предисловие от автора статьи


Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии12

6 игр за 6 недель — игра пятая

Время на прочтение2 мин
Количество просмотров28K
-Холмс, как вы узнали, что я пхп-специалист?
-Элементарно, Ватсон, у вас слон на свитере.

image

Игра пятая — Пляшущие человечки. Создана по мотивам рассказа Конан-Дойля The adventure of dancing men.

Игра (на момент публикации статьи) не прошла модерацию в магазине. Я объясню почему. Сюжет игры классический — берется 10 строк текста из бессмертного романа А.С. и одинаковые буквы меняются на одинаковые символы. Лингвисты мгновенно расшифровывают. Порог вхождения — высокий. В результате месяца игры я наизусть выучил Евгения Онегина.

Впрочем, картинку типа этой — расшифруют все, кто говорит по-русски.

image
Рисунок 1. Слово из трех букв

Это слово — либо КАК, либо ИЛИ, либо ОНО, либо ТОТ. Конечно, любители немецкого скажут, что это второе слово из фразы ХЕНДЕ ХОХ. Но нет, Пушкин не знал немецкого.

Вернусь к вопросу о непрошедшей проверке.
На экране с очередной загадкой всегда горит строка подсказки — в ней все символы выстроены в порядке убывания их наличия в тексте. Самые распространенные буквы обычно Е Н или О.

image
Рисунок 2. Строка подсказки

Так вот, в этой строке подсказки затаилась крамола. Одна из картинок не прошла модерацию.
Угадайте какая?
В комментариях я отвечу на этот вопрос, первому угадавшему — приз, наушники от iPhone 6 Plus.

UPD.
Выиграл мистер sad.

Читать дальше →
Всего голосов 49: ↑43 и ↓6+37
Комментарии56

Zend Framework 2: Service Manager

Время на прочтение7 мин
Количество просмотров21K

Service Manager (SM, CM) в ZF2.


Service Manager — это один из ключевых компонентов Zend Framework 2, который существенно облегчает жизнь разрабочика избавляя его от дублирования кода и рутинных операций по созданию и настройки сервисов, позволяя их конфигурировать на максимально высоком уровне. СМ, по своей натуре, является реестром сервисов, основная задача которого — создание и хранение сервисов. Можно сказать, СМ является очень продвинутой версий компонента Zend_Registry из Zend Framework 1.
СМ реализует паттерн Service Locator. Во многих частях приложения (например, в AbstractActionController) можно встретить функции getServiceLocator(), которые возвращают класс Zend\ServiceManager\ServiceManager. Такое несоответствие названия метода и возвращаемого типа легко объясняется тем, что getServiceLocator() возвращает объект, реализующий интерфейс ServiceLocatorInterface:
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии35

Перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures»

Время на прочтение3 мин
Количество просмотров66K
imageПривет, Хабр!

Мы (@ali_aliev и avenat) с удовольствием представляем вашему вниманию перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures» от Брэда Миллера (Brad Miller) и Дэвида Ранума (David Ranum) из Luther College, что в Айове, США.

О чём?

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

Авторы рассказывают о таких структурах данных, как стеки, очереди (в том числе с приоритетом), деки, хэш-таблицы, списки, деревья и графы. Последним двум вообще посвящены весьма не маленькие главы. Изложение не просто описательное: для каждой структуры предлагается вариант (а иногда и не один) её реализации на Python. Упор, естественно, делается на объектно-ориентированное программирование: создаётся класс, к нему пишутся методы, некоторые из которых авторы оставляют читателям для самостоятельной доработки. Затем идут примеры использования рассмотренной структуры и описание алгоритмов с её участием.

Одна из глав учебника посвящена рекурсии, в том числе её графическому представлению (фракталы). Разбирается несколько известных рекурсивных задач, а в конце наглядно демонстрируется, что эта методика, несмотря на её элегантность, отнюдь не «серебряная пуля».

Не обделены вниманием и классические алгоритмы для сортировки и поиска. И, естественно, для каждого из них анализируются производительность и «подводные камни», а так же даются рекомендации по применению. В последних главах, посвящённых деревьям и графам, даётся много материала об их разновидностях и связанных с ними алгоритмах. Изложение тут становится более сжатым, многие моменты просто описываются с тем, чтобы после прочтения главы читатель реализовал их самостоятельно.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии19

Lua API++

Время на прочтение19 мин
Количество просмотров21K
Здравствуйте, коллеги.
Хочу познакомить вас с моим небольшим проектом, который, надеюсь, сможет пригодиться и вам.

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

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

А потом появился C++11, который снял все мешавшие мне препятствия (точнее говоря — добавил то, чего не хватало), и головоломка постепенно начала складываться. Второй заход оказался удачным, и в результате я сумел создать достаточно легковесную библиотеку-обёртку с естественным синтаксисом большинства операций. Эта библиотека, которую я назвал Lua API++, призвана служить удобной заменой для Lua API. Этой статья, написанная по мотивам моего выступления на Lua Workshop, поможет познакомиться с основными понятиями Lua API++ и предоставляемыми ей возможностями.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии4

Python-digest #35. Новости, интересные проекты, статьи и интервью [27 июля 2014 — 03 августа 2014]

Время на прочтение4 мин
Количество просмотров14K

Дайджест был опубликован ранее, но определенным причинам был исключен с хабра, сейчас же было принято решение вернуть его обратно.
Очередной выпуск новостей из мира Python.
За иллюстрацию к посту, как и раньше, благодарим owlman75, а так же alrusdi за идею дайджестов и за то, что я по прежнему могу публиковать эти дайджесты для вас.
В этом выпуске у нас вот такие интересные новости собрались: свеженькие уязвимости в django, в релизах второй релиз кандидат Django 1.7, APScheduler 3.0, Pylint 1.3 / Astroid 1.2, django-extensions 1.3.9, boto 2.32.0 и еще много интересных библиотек и статей для изучения.
Перейти к дайджесту
Всего голосов 39: ↑37 и ↓2+35
Комментарии19

Обзор CentOS 7. Часть 4: Смягчение DDoS атак TCP SYN Flood. Тест в облаке бесплатно

Время на прочтение5 мин
Количество просмотров23K
В первой части обзора CentOS 7 было рассказано о поддержке контейнеров Linux в Cent OS 7. Во второй части мы поговорили об управлении идентификацией. В третья части обзора мы коснулись сетевой файловой системы NFS и ее окружению. В этой статье поговорим о смягчении DDoS атак TCP SYN Flood. В конце поста ссылка на бесплатное тестирование CentOS 7 в облачной VPS от Infobox.



DDoS (Distributed Denial of Service) атаки становятся все более частым явлением, из-за того, что бизнес становится все более зависимым от сети Интернет. Одна из самых распространенных видов DDoS – SYN Flood. Эта основная атака конечных хостов, ставящая ваш сервер на колени. В результате ваш сервер не может правильно обрабатывать входящие запросы.

Важно заметить, что описанные механизмы защиты доступны в CentOS 7, но не включены по умолчанию.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии1

«Workspace» и «Сниппеты» в Chrome Dev Tools

Время на прочтение2 мин
Количество просмотров30K
image
Workspace и Сниппеты — 2 инструмента в Chrome Dev Tools, о существовании которых не все знают. Эти инструменты упрощают веб-разработку, поэтому я решил сегодня о них рассказать.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии25

«Поддержка Sass» в Chrome Dev Tools

Время на прочтение2 мин
Количество просмотров23K
imageimage
Продолжаем познавать доступные инструменты в Chrome Dev Tools. Workspace и Сниппеты были вчера, сегодня на очереди поддержка Sass.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии28

Алгоритмы сжатия данных без потерь, часть 2

Время на прочтение9 мин
Количество просмотров102K
Часть 1

Техники сжатия данных


Для сжатия данных придумано множество техник. Большинство из них комбинируют несколько принципов сжатия для создания полноценного алгоритма. Даже хорошие принципы, будучи скомбинированы вместе, дают лучший результат. Большинство техник используют принцип энтропийного кодирования, но часто встречаются и другие – кодирование длин серий (Run-Length Encoding) и преобразование Барроуза-Уилера (Burrows-Wheeler Transform).
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии10

Минималистичный issue tracker на Django

Время на прочтение11 мин
Количество просмотров19K
В этой статье рассказывается, как за короткое время решить с помощью фреймворка Django, простую, но интересную задачу: создание системы баг-трекинга (система тикетов) для своего проекта. Наша система будет интегрирована с системой аутентификации пользователей Django и административным интерфейсом. Несмотря на свою примитивность, такое приложение, при некотором усовершенствовании, вполне может быть полезно для разработчика-одиночки или небольшой группы.


Читать дальше →
Всего голосов 31: ↑23 и ↓8+15
Комментарии15

Об организации кода в django-приложениях или толстые модели – это прекрасно

Время на прочтение6 мин
Количество просмотров37K
От переводчика
Как всегда вольный перевод интересной статьи о конкретном подходе к организации кода в django-приложениях. Будет полезна:
  • Тем, кто еще не задумывался о таких вопросах
  • Тем, кто уже имеет собственные взгляды на организацию логики, но не против оценить альтернативные варианты
  • Тем, кто уже использует обсуждаемый подход, для подтверждения своих мыслей
  • Тем, кто уже не использует обсуждаемый подход и имеет аргументы против

Большого количества кода не будет, статья по большей части дискуссионная. Энжой)


image
Толстые модели.
Читать дальше →
Всего голосов 41: ↑28 и ↓13+15
Комментарии21

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №119 (4 — 10 августа 2014)

Время на прочтение6 мин
Количество просмотров40K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии2

Учимся логично делать прототипы

Время на прочтение9 мин
Количество просмотров65K
Зачем вам это?

  • Если вы знаете как делать сайт, этот метод поможет вам убедить заказчика, почему вы предлагаете ему именно этот вариант.
  • Если вы заказываете сайт, то сэкономите от 2 до 10 часов объяснений что вам нужно и зачем.
  • Если вы стартапер, то вся ваша команда сможет участвовать в создании нового сайта или лэндинга. Тот самый случай, когда одна голова хорошо, а команда лучше.
  • Если вы учите стартаперов, то сможете помочь им выглянуть из позиции «я знаю как надо» и без сопротивления подвести их к началам CusDev-a.

Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Комментарии9

Боевой сервер для Django-приложения: Ubuntu Server 10.04 LTS + django 1.4 + nginx + gunicorn

Время на прочтение11 мин
Количество просмотров121K
Многие учебные пособия по разработке на Django раскрывают как быстро получить работающий отладочный сервер (python manage.py runserver), а вопрос развертывания в боевом режиме часто остается нераскрытым или освещаются далеко не самые простые и эффективные методы.
Ниже я расскажу о об одном из способов развернуть сайт на Django в боевом режиме, начиная от выбора хостинга, заканчивая развертыванием веб-сервера. Таким образом статья может быть полезна тем, кто освоил разработку на базе Django, но не имеет опыта развертывания серверов. Мой способ один из многих, но он достаточно прост, эффективен в работе и легок в поддержке. Используем VPS-хостинг, Ubuntu 10.04, nginx, gunicorn.

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии41

Django на production. uWSGI + nginx. Подробное руководство

Время на прочтение7 мин
Количество просмотров221K
Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

Общая идея


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

Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии54

Дао программирования, часть 1

Время на прочтение4 мин
Количество просмотров52K

Книга 1


Безмолвная пустота.

И сказал Великий Программист: «Если ты научился выхватывать ошибочный код из эксепшена, значит пришла пора тебе уходить».
Читать дальше →
Всего голосов 108: ↑74 и ↓34+40
Комментарии16

Функциональный JavaScript, Часть 1: Введение

Время на прочтение3 мин
Количество просмотров26K

Введение


JavaScript мощный, но недопонятый язык программирования. Людям нравится говорить, что он является объектно-ориентированным языком программирования или является функциональным языком. Другим нравится говорить, что он не является объектно ориентированным или не является функциональным языком программирования. Некоторые скажут что он относится к обеим парадигмам или ни к одной из них — но, давайте отложим на пока этот спор в сторонку.
Читать дальше →
Всего голосов 48: ↑37 и ↓11+26
Комментарии15

Как заставить работать расширения yii-user и rights совместно?

Время на прочтение4 мин
Количество просмотров19K

Предисловие


Доброе время суток хабравчане.

Для начала представлюсь. Меня зовут Роман, и я занимаюсь разработкой сайтов (в основном на php-фреймворке «yii», но проскакивают и другие php\python фреймворки\цмс\велосипеды\быдлокоды). В своих проектах на yii всеы нам часто приходится реализовывать тривиальные функции регистрации, авторизации и тд. Плюс ко всему прибавьте к этому ещё и распределние прав доступа для различных пользователей. Готов поспорить, что у каждого толкового разработчика есть хотя бы одна заготовка реализации этого функционали, либо он использует сторонее расширение. Вот и я каждый раз использовал одну и туже реализацию, от пректа к проекту допиливал её, интегрировал с другими частями системы. Но недавно я всё же решил порыть в сторону готовых решений, которые удовлетворяли бы мои потребности и таковые нашлись довольно быстро. 2 самых популярных расширения для yii из оффициального репозитория«yii-user» и «rights».
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии19

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность