Search
Write a publication
Pull to refresh
26
0
Серега @yaneblog

Пользователь

Send message

Построение regexp'a по входным строкам S1..SN

Reading time3 min
Views2K
Вот совершенно недавно столкнулся с задачкой, по которой не смог накопать не то, чтобы каких либо библиотек, но даже теории или алгоритмов. Т.к. время поджимало, решил сам разбираться с задачей. Написал статью для тех, кто с подобной задачей столкнется в будущем, да и интресна критика. Как бы вы решали подобную задачу?

Итак, задача ...


На входе алгоритма есть набор строк S1..SN. Требуется, по данным строкам построить такое минимальное регулярное выражение R, чтобы R(Si)=true, i [1,N] (N порядка нескольких тысяч).
Требование минимальности — не строгое, и доказывать минимальность построенного regexp'a не требуется. Если строки S1..SN обладают некоторой схожей структурой, то regexp должен выявлять эту структуру. Стандартное задание программисту — в меру конкретизировано, но и с некоторой свободой действий.
Читать дальше →

50 монохромных образцов дизайна web-сайтов

Reading time1 min
Views16K
Выбор цвета является ключевым элементом для успеха любого дизайна. Он определяет атмосферу и задает настроение. Один из способов отображения цвета, использование только оттенков, который называется монохроматической цветовой схемой.

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

Одной из самых популярных монохроматических схем является голубой. Это скорее всего потому, что синий считается легким, живым и натуральным цветом. Однако не только синий является успешной цветовой схемой: зеленые, пурпурный, коричневый, красные также могут установить надлежащее настроение.

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

Монохромные варианты дизайна

До $1 000 000 на стартап

Reading time2 min
Views583
В последнее время все чаще приходится читать статьи на хабре об ослаблении деятельности венчурных фондов и бизнес-ангелов в связи с ухудшившимися финансовыми условиями. В результате чего действительно стоящие идеи не находят капитала для своего воплощения в жизнь. Поэтому хочу написать пост о стартовавшем пару месяцев назад проекте — венчурном фонде Softline Venture Partners, который c удовольствием рассматривает перспективные проекты для инвестиций и готов предоставить стартапам до $1 000 000.
Читать дальше →

30 высококачественных комплектов иконок

Reading time1 min
Views2.6K
Доброго времени суток, хабралюди! Сегодня я хочу представить вашему вниманию 30 комплектов иконок. Несмотря на то, что все иконки выполнены на очень высоком уровне, распространяются они абсолютно бесплатно. Превью для каждого пака внутри.
Читать дальше →

Основы BASH. Часть 2

Reading time6 min
Views373K
Основы BASH. Часть 2.
Извиняюсь за такую большую задержку между статьями, но сессия дает о себе знать в самый неподходящий момент :)
Всем спасибо за замечания, критику и дополнения, которые были озвучены в комментариях к прошлой статье.
Эта часть, как и обещал, будет посвящена циклам, математическим операциям и использованию внешних команд.
Начнем.
Читать дальше →

Закрепляем jQuery — 25 отличных советов

Reading time19 min
Views168K
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

Далее все написано от имени автора оригинальной статьи.

Введение


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

Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

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

Содержание


  1. Загружайте фреймворк с Google Code
  2. Используйте «шпаргалку» (cheat sheet)
  3. Соединяйте все ваши скрипты и уменьшайте размер файла
  4. Используйте возможности Firebug для ведения логов
  5. Минимизируйте операции выборки в пользу кэширования
  6. Сводите манипуляции с DOM-деревом к минимуму
  7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
  8. Используйте «id» вместо классов, где это возможно
  9. Задайте контекст своим селекторам
  10. Используйте последовательности вызовов методов с умом
  11. Научитесь правильно использовать анимацию
  12. Научитесь назначать и делегировать события
  13. Используйте классы для сохранения состояния
  14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
  15. Пишите собственные селекторы
  16. Подготавливайте HTML и модифицируйте его, когда страница загружена
  17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
  18. Используйте служебные функции jQuery
  19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
  20. Как узнать что картинки загружены?
  21. Всегда используйте последнюю версию
  22. Как проверить, что элемент существует?
  23. Добавляйте класс «JS» в элемент «html»
  24. Возвращайте «false» для отмены поведения по-умолчанию
  25. Короткая запись для события готовности документа


Rock'n'Roll!

Пуленепробиваемый HTML: 37 шагов к идеальной разметке

Reading time11 min
Views20K
Примечание: это не полный перевод статьи. Я выбрал только самые интересные лично для себя пункты. Статья не претендует на свежесть, но возможно даже люди хорошо знакомые с версткой найдут для себя что-то интересное. Статья затрагивает некоторые аспекты семантики верстки с конкретными примерами.

Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками.
Читать

Особенность оптимизатора MySQL 5.1.30 порядок следования таблиц в UPDATE

Reading time1 min
Views989
Добрый день. Я расскажу об одной из забавных особенностей оптимизатора MySQL 5.1.30, которая заставляет перед обновлением внимательно проверить запросы.
Для любопытных: «теперь SET-выражения выполняются не в порядке следования выражений слева направо, а в порядке следования обновляемых таблиц».
Но, всё по порядку.

Атаки на беспроводные сети. Часть 2

Reading time3 min
Views21K
Это продолжение предыдущей статьи, об атаках на беспроводные точки доступа с WEP-защитой.

Во второй части цикла статей о безопасности беспроводных сетей мы рассмотрим некоторые нетрадиционные атаки на WEP.

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

Осваиваем Python. Унция 2. Ветвления, циклы + практика.

Reading time4 min
Views92K
image
Простые конструкции в языке Python: ветвления и циклы имеют свои особенности по сравнению с другими языками. Поэтому я всё же решил потратить на это время и рассказать. Материал совсем простой!
Так же по просьбам читающих добавил в конец статьи разбор простой программки для наглядной демонстрации пройденного материала.
Читать дальше →

Итерируем все и вся

Reading time4 min
Views65K
image
Насколько я успел понять по собственному опыту, при переходе на Python с другого языка программирования порой сложно привыкнуть к его специфическому подходу к циклам. Например, взять тот же самый for, который работает совершенно по-другому, нежели в других языках. Возьму на себя смелость рассказать о том, что мне самому поначалу было сложно осознать, а тем более использовать в своем коде — итераторы. Вещь на самом деле очень полезная, надо только уметь правильно ей пользоваться! ;)

АПД: Только сейчас заметил, что тема функционального программирования сегодня популярна как никогда :) Спасибо товарищу uj2 за раскрытие такой интересной темы, поддерживаю!
Панеслася!

Функциональное программирование для землян — функции

Reading time5 min
Views9.2K


В статье про Python пользователь Xronos попросил рассказать о функциональном программировании (ФП). Поскольку я одно время довольно плотно занимался с Lisp, я хотел бы немножко рассказать об этом. Сразу хочу сказать, что о чистом ФП речь не идет. Я расскажу о более простых и более применимых приемах на примере языка Python.

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

Как подружить Java и C++. Часть первая

Reading time5 min
Views102K
Здравствуйте.

Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.

Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).

Так как же им пользоваться?

Python, формирование структуры — Guido van Rossum (часть 2)

Reading time5 min
Views7.5K
imageЭто продолжение статьи из официального блога автора любимого всеми нами языка. Поэтому повествование ведется от лица самого Гуидо ван Россума. Первая часть здесь.

Введение и обзор



Вступление.

Python сейчас является одним из самых популярных некомпилируемых языков программирования, наравне с Perl, Tcl, PHP и Ruby. Хотя он чаще всего рассматривается, как «скриптовый язык», на самом деле это вполне полноценный язык программирования, подходящий для решения большинства стандартных задач и занимающий одну ступень с Lisp или Smalltalk (впрочем, как и со многими другими). В настоящее время Python используется фактически для всего — от одноразовых простеньких скриптов до больших расширяемых веб-серверов, работающих по 24 часа семь дней в неделю. Он используется для разработки GUI-приложений и баз данных, клиент-серверных веб-приложений и тестирования. Python используется учеными, пишущими приложения под быстрейшие в мире суперкомпьютеры, и детьми, которые в первый раз учатся программировать.
А что там дальше?

Spring IoC Annotation-based configuration, часть 2

Reading time4 min
Views44K
В предыдущей статье я рассказал об основных аннотациях Spring IoC, однако есть еще несколько интересных вещей, о которых хотелось бы поведать.
Для, тех, кто не в курсе, что такое Spring Framework предлагаю почитать вот эту статью.

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

Осваиваем Python. Унция ноль. Введение.

Reading time4 min
Views127K

Предыстория



Присоединяюсь к MaxElc, DarwinTenk и Devgru :) Начинаю цикл статей посвященных Python. Сам я имею некоторый опыт обращения с PHP и Java. Но каждый раз, при относительном освоении какого-то инструмента — оставалось определённое неудовлетворение им, связанное с чем-то конкретным, и поиски продолжались. На сегодняшний день наиболее близко к идеалу в моих глазах стоит Python. Идеал недостижим — это понятно, посему и у Python есть недостатки. Прежде всего — это скорость выполнения, однако, эта проблема решаема несколькими путями и об этом мы обязательно поговорим чуть позднее.
Сам я начал осваивать Python буквально недавно. Начиная этот цикл статей — я преследую несколько целей. Во-первых, это дополнительная само мотивация + интерактивность, во-вторых, опыт. В-третьих, блуждая по просторам рунета — вижу, что Python куда менее популярен, чем в мире. Ситуацию надо исправлять :)
В соответствии с идеологией Python, а именно с тем, что одни из главных его козырей — это быстрота в освоении и скорость разработки, мы достаточно быстро, практически тезисно пронесёмся по основам синтаксиса и построения программ и перейдём к основной цели данного цикла — освоение django.
Итак, мы начинаем.
Читать дальше →

Python, философия дизайна — Guido van Rossum (часть 1)

Reading time5 min
Views9.9K
image
Это первая часть статьи из официального блога автора любимого всеми нами языка. Поэтому повествование ведется от лица самого Гуидо ван Россума. Вторая часть здесь.

Дальнейший текст поможет нам нырнуть глубже в историю языка Python. Тем не менее, перед тем, как мы сделаем это, мне бы хотелось заострить внимание на философских вещах, которые помогли мне принимать решения, пока я разрабатывал дизайн и структуру Python.
А дальше?

Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python

Reading time8 min
Views54K
Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
Читать дальше →

Emacs и Python, Python и Emacs

Reading time5 min
Views22K
В сети часто возникают разговоры на тему «Python best IDE — does it really exist?». Для примера — недавний Q&A в группе Python community на LinkedIn (к сожалению, просмотр возможен только для пользователей группы). Если вкратце, то мир вертится вокруг:

  • Eclipse + PyDev — похоже, что самое популярное из свободных решений.
  • Komodo IDE — по отзывам отличное средство, но не free.
  • WingIDE — лучший autocompletion для Python, но опять-таки non-free.
  • Eric — IDE на Qt и QScintilla, пробовал только на Windows, видно недопробовал — показалась неудобной. Если у кого есть полезная информация и ссылки — поделитесь, пожалуйста, в комментариях.
  • NetBeans 6.5 — готовится к выходу встроенная поддержка Python в этой IDE версии 6.5, ждем с нетерпением!
  • Vim — для фанатов Vim ничего лучше быть, понятно, не может — после обработки напильником, правда.
  • Emacs — аналогично Vim — для пользователей, которые много времени проводят в Emacs, он дает лучший user-experience при разработке на любом языке.


Если первые четыре решения предоставляют IDE для Python прямо из коробки, то последние два требуют определенных настроек. Для Vim не знаю, но для Emacs надо потратить не меньше 6 часов поисков по интернету и экспериментов перед тем как будет получена удобная и (очень) функциональная среда для Python.

Что до меня, то весьма долгое время я работал с Eclipse + PyDev — вполне работоспособное решение. Но после окончательного переезда с Windows в Ubuntu (всем ставить шрифты Liberation в Убунте!), я решил таки завершить начатое уже давно — начать использовать Emacs не только как GTD-органайзер, IRC-клиент и редактор «когда не хочется запускать Eclipse».

История данных шести часов под хабракатом (история предполагает, что читающие хоть немного знакомы с Emacs и Python, а также носит Ubuntu(Debian)-specific оттенок, когда дело касается установки пакетов).

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

Сила и красота декораторов

Reading time5 min
Views83K
Одним из самых сложных для понимания и осознания элементов языка является декоратор, хотя по сути это очень простая вещь, доступная для понимания даже начинающему программисту. Новых Эверестов я не открываю, а лишь предлагаю краткий обзор возможностей и несколько типичных примеров использования. Этакий короткий экскурс в метапрограммирование на питоне.

Upd 1: изменил несколько категоричное утверждение о несходстве паттерна Декоратор и одноимённой языковой конструкции на более мягкое.

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity