Архив ‘Всё остальное’ Category

Колоризируй это, колоризируй то

Иногда людям приходят в голову странные мысли и они спрашивают — «А как подсветить в блоке первые N символов но чтоб типа без встроенных тегов?» Никак. Ну, или так: <script> function colorize(id, num, empty, styleClass){     // id — ID элемента     // num — сколько символов подсвечивать     // empty — считать ли пустые символы за символы для подсветки     // styleClass — какой класс присваивать символам?     var obj = document.getElementById(id);     if(!obj) return;     var regex = empty ? /^((?:[^\s]\s*){3})/ : /^(.{3})/;     obj.innerHTML = obj.innerHTML.replace(regex, «<span class=’»+styleClass+»‘>$1</span>»);      } </script> <style> .red {     color:red; } </style> <span id=’test’>1 2 3 4 5</span> <script>colorize(‘test’, 1, 1, ‘red’);</script>

Perl 6 — или грядёт апокалипсис

А знаете ли вы о том, что в Perl6 можно будет сделать так: «perl -le ‘say q[Hello];’» ? А можно будет сделать и так: «perl -le ‘q[Hello].say;’» Это — апофеоз.

Локальные модификаторы в RegEx — используй кластер, Люк

В жизни каждого программиста наступает момент, когда ему надо выцепить кусок текста, независимо от регистра — но в контексте зависимого от регистра текста. На помощь приходят локальные модификаторы — например, — в пределах кластера это будет так: -bash-3.2$ perl -le ‘my $x = «Abc»; print «ok» if $x =~ /(?i:a)b/;’ ok -bash-3.2$ perl -le ‘my […]

Bidirectional pipe для mystem в Perl

Когда нормализуешь слова с помощью mystem — лучше использовать bidirectional pipe, вместо того, чтобы каждый раз открывать новый процесс. Это очень просто. Учитывая долбанутость mystem, мы будем отбрасывать слова с цифрами и ждать подольше. На всякий там. Пробелы он превращает в _, так что триггеры обоснованы. #!/usr/bin/perl -w use strict; use FileHandle; use IPC::Open2; use […]

SQL-извращения для JIRA

Запрос оброс мясцом и приобрёл вид типа CONCAT(TRUNCATE(SUM(IF(wl.timeworked IS NULL, 0, wl.timeworked)/3600),1),’ h.’), конструкций :) Ещё немного — и из этого родится или create view, или же он сьест мой мозг :)))

JIRA гаджет — перенос сурцов на другой инстанс

Делал плагин для JIRA. Запихнул сурцы в Dropbox, снёс систему, переставился, синхронизировался. Открываю проект в NetBeans — а он мне — Mailformed Maven Project. Download deps ни к чему не привели. Решение проблемы — это JIRA SDK. Качаем, ставим в PATH папку bin, и из папки сурцов плагина делаем atlas-run. Он подсосёт всё необходимое для […]

Opera, Firefox и священная война

Под iPhone вышла Опера. Попробовал и на компьютере ее поставить. Ну как была куцая — так и осталась. Я пользуюсь FireFox, потому что уже не могу без милых плагинчиков — LiveHTTPHeader, TamperData, FoxMarks — да хоть того же FireBug. В Opera же так и не удосужились сделать что-то кроме виджетов — это чисто казуальный браузер, […]

WoW — гребем достижения в ЖЖ

Суть проста — выгрести из Армори последние ачивы, проверить — не постили ли раньше, запостить в ЖЖ. Накидалось на коленке, я использую БД в расширенной версии скрипта — но решил и такой мелкий написать :) UPD — чёт ппц криво получился этот сниппет в опубликованном виде. Аттачу ссылку на оригинал. Plain-Text #!/usr/bin/perl -w use strict; use Digest::MD5 qw[md5_hex]; use WWW::Curl::Easy; […]

Perl, RegEx и LookAhead — форматируем MAC-адрес

Задача — из 001e8c15ffbc сделать 00:1e:8c:15:ff:bc Решение — perl -le ‘my $x = «001e8c15ffbc»;$x =~ s/(..(?!\Z))/\1:/g; print $x’ Разберем по кусочкам этот примитив. (..(?!\Z))/\1: .. — два любых символа (можно написать длиннее, если сомневаемся, что к нам придёт именно мак) — например, [a-f\d]{2} (?!\Z) — заглянем вперёд — нет ли там конца строки. Если есть […]

Perl — удалить из массива несоответствующие условию элементы

Удаляем все элементы, которые не цифры. Работаем с референсом. #!/usr/bin/perl use strict; use Data::Dumper; my $a = [234235,’a’,345,34234,23121]; $a = [grep {/^\d+$/ } @$a]; print Dumper $a; UPD Rommeech заметил багу, исправил