Обновить
4
0
andriano@andriano

Backend-developer

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

Квантификаторы в регулярных выражениях

Время на прочтение8 мин
Охват и читатели80K
imageРегулярные выражения — это арифметика для алгоритмов. Они доступны во многих языках программирования, редакторах и настройках приложений. Как и сложение с умножением они просты в использовании.
Но для правильного и эффективного использования regexp-ов нужно понимание того, как они работают. Я постараюсь описать принцип работы регулярных выражений, покажу в каких случаях бывают проблемы и как их решать.

В продолжение общих советов.
Читать дальше →

Шустрая гляделка для Nautilus'а

Время на прочтение3 мин
Охват и читатели4.2K
В своих бесконечных поисках найти быструю гляделку графических файлов, наткнулся на замечательную программу Gloobus, которая наверняка порадует счастливых обладателей нетбуков с Линуксом на борту. Сразу оговорюсь, затачивается все под файловый менеджер Nautilus, но никто не мешает прикрутить это чудо к чему угодно.

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

Расширение, сворачивающее Google Chrome в трэй

Время на прочтение1 мин
Охват и читатели14K
Я написал свое первое расширение для Google Chrome, которым хочу с вами поделиться. Все, что оно делает — это прячет свернутые окна Google Chrome в трэй. Развернуть окно из трея можно кликнув правой клавишей по значку Chrome. Двойной клик приводит к разворачиванию всех свернутых окон.



Расширение работает только с Windows версией Google Chrome версии 3 и выше (проверял на 3.0.195.4 и 4.0.221.6).
Читать дальше →

Быстрая сортировка таблиц посредством Javascript

Время на прочтение3 мин
Охват и читатели18K
В процессе работы с таблицами, для удобства восприятия, а также быстрого анализа, рано или поздно возникает вопрос вывода отсортированного содержимого этих таблиц. Эту задачу в web-программировании можно решить двумя способами:

  • Сортировка на стороне сервера посредством SQL или backend'а;
  • Сортировка на стороне клиента.

Минусы первого варианта — это перезагрузка страницы на каждый клик пользователя по контролам сортировки. Плюсы — скорость сортировки на больших выборках.

Минусы сортировки на стороне клиента — сравнительно низкая скорость работы, прямо зависящая от браузера и мощности компьютера пользователя. Плюсы — отсутствие перезагрузки страницы, следовательно, иногда это дает бОльшую скорость получения отсортированного содержимого, т.к. в данном случае нет задержки между отправкой запроса серверу и получением результата.
Читать дальше →

Leechcraft 0.3.0

Время на прочтение3 мин
Охват и читатели1.8K
Здравствуй, %username%.
Сегодня я хочу рассказать тебе об одном своём проекте, который начался давным-давно с простого желания написать что-нибудь абстрактное, модульное и крутое.

image

Быстро пролетело чуть больше трех лет, и получился LeechCraft. LeechCraft — это модульный кроссплатформенный интернет-клиент. Модульный — все по-настоящему важное выполняется плагинами, а ядро программы только связывает их между собой, да показывает общий для них интерфейс. Кроссплатформенный? LeechCraft постоянно используется автором под Linux, запускается под Windows и, теоретически, может работать под Mac OS X. Однако, за неимением Мака работа под ним не была протестирована.

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

Google Chrome получает экспериментальную поддержку жестов

Время на прочтение1 мин
Охват и читатели6K
Представлено экспериментальное расширение к браузеру Google Chrome под названием Chromegestures. Следует отметить, что по сравнению, например, с системой управления жестами в браузере Opera, технология Chromegestures выглядит не менее развитой и довольно зрелой, если учесть, что первая версия выпущена только 16 июля этого года.

image
Для установки расширения Chromegestures необходима версия Chrome для разработчиков (dev). Кроме того, перед установкой расширения надо включить поддержку расширений, включив в команду запуска браузера параметр enable-extensions. После этого можно спокойно перейти на страницу загрузки и установить файл ChromeGestures.crx.
Читать дальше →

Официальные темы в Google Chrome

Время на прочтение1 мин
Охват и читатели5.1K
image

Удивлен, что через 10 часов после выхода статьи на крупном западном IT-ресурсе, Хабрасообщество все еще молчит об этой горячей новости. Хочу заполнить информационный вакуум в своем первом топике. Сильно не бейте!
Читать дальше →

qutIM 0.2 beta — теперь банановый

Время на прочтение2 мин
Охват и читатели1.3K
После трёх месяцев томительного ожидания команда разработчиков юбилейным 300-ым коммитом представила нам бета-версию замечательного кроссплатформенного мессенджера qutIM. За это время было сделано много всего нового и интересного, много переписано, сломано и исправлено, добавлен новый функционал и оптимизирована работа. С момента выхода альфа-версии её скачали более 90 тыс. человек (без учёта регулярных сборок и свн-ревизий), в бета-версии мы надеемся на увеличение этого числа :)

(альтернативная ссылка на картинку)

Что нового?

Моя Убунта — II

Время на прочтение4 мин
Охват и читатели1.1K
Ну что ж, раз пошло такое дело — значит, пришло время поговорить и нам — о башмаках, кораблях, сургучных печатях, королях и капусте, а также легкой доработке напильником дистрибутива Ubuntu, дабы получить внешний вид, описанный в этом посте — по многочисленным просьбам телезрителей, рассказав о том, что и как я делал.


Сразу скажу, что любителям поорать в коментах прошу не читать — там много графики, объяснения для новичков, вам это все равно будет неинтересно. В любом случае, я вас предупредил ;-)
Итак, чуть меньше лирики — чуть больше дела. С чего начать? Начать нужно с инвентаря. Нужно-то нам совсем ничего! Сегодня нам потребуются:
  1. Компьютер с установленным Ubuntu 7.10/8.04. На самом-то деле, почти наверняка пойдет любой другой дистрибутив с GNOME в качестве менеджера окон рабочего стола (desktop environment manager) и ...
  2. Compiz — установленный и стабильно работающий. Это важно — без него всей этой красоты не получится
  3. Третьим, фактически же — последним пунктом программы — выступает фон рабочего стола. Открою страшный секрет… хотя нет, открою его потом :-) Так вот, как именно найти этот фон я рассказывать не буду, поскольку с негодованием отметаю все претензии в лицензионной нечистоплотности, оставляю это в качестве домашнего задания (искать по слову leopard wallpaper, размер — extra large, первая картинка). Я взял ее с домашнего компьютера (так как в рабочее время им никто не пользуется, я имею полное право любоваться на картинку на работе :-) )
Господа, хватит тупо и молча миносовать и срать в карму! Будьте добры объясниться — или хотя бы прочитать дисклеймер в конце поста — и спасибо хорошим людям, которые сперва читают, потом комментируют, и только потом плюсуют или минусуют

Собственно, настройка

Для начинающих убунтуводов. Моё мини FAQ

Время на прочтение4 мин
Охват и читатели3.1K
Не беспокойтесь: это не очередной «мануал для начинающих», в котором описаны базовые принципы работы с Ubuntu и ее настройки. Нет, я вовсе не хочу повторяться, а поэтому писать буду о разного рода мелочах и вопросах, которые могут интересовать «Неофита культа Убунту» :)

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

Жесты мышью в Linux

Время на прочтение1 мин
Охват и читатели3.6K

Навеяно оперой.


Меня так вдохновила идея с жестами мышью что я решил поискать нечто подобное для ОС Linux. Нашел быстро. В репозитарии Archlinux оказалась утилита easystroke.

Там есть интуитивно понятный интерфейс с огромными возможностями.

Image downloaded service ITmages

Значит что можно. Можно нажать кнопочку Add Application выбрать приложение и затем команду на него. Или просто для всего рабочего окружения. Вот какие возможности можно делать с жестами:
  • Command (Выполнить команду)
  • Key (Имитация нажатия клавиш)
  • Text
  • Scroll
  • Ignore
  • Button
  • Misc (разные опции. Свернуть и т.д.)

То что не перевел сам еще не понял для чего.

Так же выставляется задержка и т.д. Вообще возможностей очень много. Но к сожалению документация оставляет желать лучшего, поэтому я сам еще не понял значения многих опций, но ясно сразу — сделать можно очень многое. По умолчанию установлена средняя кнопка мыши т.е вторая. Кстати удобно пользоваться для видеокастов когда говоришь что либо, можно выделить для большей ясности.

Если кто-то это прочитает, не пинайте. Это мой первый хабрапост поэтому все так «просто» и не очень много информации.

Глюки и недочеты ubuntu

Время на прочтение4 мин
Охват и читатели6.3K
Здравствуйте. Собственно, заголовок уже объясняет то, что будет описано ниже. Но я, все-таки хочу добавить пару слов. Во-первых, я понимаю, что некоторое количество ошибок, это — не глюки самой ubuntu, а недоделки GNOM’а, или отдельных приложений. Но ведь сегодня я решил писать от имени простого пользователя, которому все равно на каком языке написана программа, и каким именно образом взаимодействуют компоненты системы. Во-вторых, я — преданный пользователь ubuntu. Фактически у меня есть 3 компьютера, и на всех стоит этот Linux. Поэтому я считаю, что имею право писать о недостатках своего любимого ПО, от которого я вряд ли куда-либо уйду. Вот здесь и начнем.
Читать дальше →

Как я оптимизировал систему: Ubuntu 8.04 Hardy

Время на прочтение3 мин
Охват и читатели2.5K
Вчера собрался ускорить работу(получилось достаточно ощутимо) и загрузку системы(30 секунд, против полутора минут), почитал многие how-to.
Опишу что и где я улучшал. Итак о способах, по порядку.
Читать дальше →

Range, TextRange и Selection

Время на прочтение13 мин
Охват и читатели79K
Многим JavaScript-разработчикам приходилось сталкиваться с объектами, перечисленными в заголовке, например, при решении следующих задач:
— создание визуальных редакторов (wysiwyg),
— поиск в окне браузера,
— выставление BB-кода,
и т.д.

В этой статье автором предпринята попытка собрать перевод документации об этих объектах в одном месте + написать небольшие сопроводительные примеры. Перевод вольный, не дословный, так что если встретите неточность или корявую формулировку — пишите в комментариях.

В целом пост носит справочный характер, и, надеюсь, кому-то упростит разработку.

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

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

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

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


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

CSS counters

Время на прочтение7 мин
Охват и читатели35K

Одной из редко используемых возможностей CSS2.1 являются счетчики. Описаны они в разделе спецификации, посвященной генерации контента. Что же это такое?

Приведу пример из спецификации, эмулирующий обычный нумерованый список с помощью счетчика и свойства content:
OL { counter-reset: item }
LI { display: block }
LI:before { content: counter(item) ". "; counter-increment: item }

Первым правилом мы назначаем элементам OL счетчик с именем «item», затем для всех LI меняем значение свойства display на block, вместо значения по умолчанию (list-item), чем отключаем стандартные маркеры-цифры. Наконец, в последнем правиле, мы инкрементируем счетчик для каждого элемента списка, а само его значение показываем перед элементом c помощью функции counter() и свойства content. Всё просто.

Но это еще далеко не всё

Теория кэша

Время на прочтение5 мин
Охват и читатели14K

Введение


Кэширование – это неотъемлемая часть всех сложных систем. Кэширование позволяет существенно увеличить скорость работы приложения, путем сохранения трудновычислимых данных для их последующего использования. Впрочем, не буду вдаваться в определения, большинство разработчиков отлично знает что это такое.

В данной статье я попытаюсь «разложить по полочкам» проблему кэширования, ориентированную прежде всего на сайты и системы управления контентом. Сразу предупреждаю, это мои личные соображения, которые не претендуют на истину в последней инстанции. Вся терминология так же моя, вы можете использовать её, если считаете нужным на своё усмотрение. Конструктивная критика приветствуется.
Читать дальше →

jQuery для начинающих

Время на прочтение9 мин
Охват и читатели526K
jQuery Logo

jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

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

Польза кеширования данных. Пример из реальной практики.

Время на прочтение3 мин
Охват и читатели3.5K
С появлением и развитием memcached-подобных систем в архитектурах веб-приложений появилось еще одно звено, а именно кеш-серверы. Обычно это машины с большим объемом оперативной памяти, в которой хранятся заранее подготовленные данные. Это могут быть результаты сложных запросов к БД или же отрендеренные динамические части страниц сайта. На самом деле, кеш, как и любая другая система, может использоваться как угодно, чтобы удовлетворить нужды приложения.

Суть кеширования проста.

РИТ: Высокие нагрузки — Программа по состоянию на 20 августа

Время на прочтение2 мин
Охват и читатели1.2K
Программа конференции «РИТ: Высокие нагрузки» значительно обновилась. Отчасти это обусловлено договоренностями о партнерстве с членами ассоциации «Интернет и бизнес» (Яндекс, Рамблер, Мейл.ру, Ашманов и партнеры, РБК-МедиаМир и многие другие), отчасти — усиленной работой экспертного совета.

На тему проектирования масштабируемых систем и выбора архитектуры подано около десяти заявок. Одни из самых интересных пришли от Андрея Шетухина (архитектор проектов SUP Fabrik), тезисы уточняются. Антон Федоров готовит доклад о выборе архитектуры нагруженного проекта, опираясь на примеры Goodoo-IT и Инфоскан.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Amsterdam, Noord-Holland, Нидерланды
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Ведущий
Golang
PostgreSQL
gRPC
Docker
Git
Высоконагруженные системы