Регулярные выражения в JavaScript

Продолжая тему регулярных выражений (см. mtaalamu.ru/blog/coding/1083.html, mtaalamu.ru/blog/coding/1083.html), несколько слов хотелось бы сказать о том, как они используются в популярнейшем языке программирования клиентских приложений. На JavaScript я программирую довольно редки и не много, т.к. GWT, на котором я разрабатываю веб-странички, позволяет обходиться без него. Но на днях потребовалось решить такую задачу.

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



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

Маленькие секреты MD5

Алгоритм MD5 — одно из величайших и полезнейших достижений компьютерной мысли и, конечно же, в командной строке Linux есть инструменты для работы с ним. Однако пользоваться ими нужно с умом. Вот, например, специально созданная утилита md5sum:

echo -n blablabla | md5sum 
1a36591bceec49c832079e270d7e8b73  -

Если вы обратили внимание — в конце вычисленного хэша стоит минус. Зачем он нужен — ума не приложу. От этого глюка свободна другая последовательность:

echo -n blablabla | openssl md5
1a36591bceec49c832079e270d7e8b73

Как видим, результат тот-же, но без всяких лишних минусов.

У самых внимательных камрадов может возникнуть вопрос: зачем в обоих примерах ключ -n у команды echo? Он удаляет символ перевода строки, которым заканчивается вывод команды echo по умолчанию. Попробуйте без этого ключа, и вы увидите, что хэш получается совсем другой:

echo blablabla | openssl md5
d1bf8fc6af9166875316587ad697a719
  • +8
  • 19 августа 2010, 22:48
  • yababay
  • 14

Создаем сокеты и серверы за считанные секунды

В Linux с сокетами (сетевыми соединениями) можно работать как с файлами. Например, зная, что на порту 3333 компьютера с IP-адресом 192.168.0.200 ждет запросов некий сервер, можно послать ему информацию точно так же, как мы записали бы ее в обычный файл:

echo 'Hello, Mtaalamu!' > /dev/tcp/192.168.0.200/3333

Может случиться так, что на компьютере отсутствует псевдоустройство /dev/tcp (или /dev/udp). В таком случае его легко создать командой:

mknod /dev/tcp c 30 36

(от имени корневого пользователя, конечно же).



( Читать дальше )
  • +13
  • 12 августа 2010, 00:04
  • yababay
  • 3

Джеймс Гослинг ёрничает

Создатель языка Java продолжает злорадствовать над своим врагом — компанией Oracle, совершающей один «прокол» за другим. На этот раз после выхода обновления JDK 1.6.0_21, в котором впервые значение поля «Фирма-изготовитель» было изменено с «Sun Microsystems» на «Oracle Inc». Может поэтому, может еще по какой причине, но у пользователей IDE Eclipse (в версиях от 2007 года до свежайшей), программа, автоматически обновившись, перестала работать (OutOfMemoryError).

«Можно было бы сказать, что это диверсия», — пишет Гослинг в своем блоге, — «но, к сожалению, это всего лишь глупость». При этом пост сопровождается вот таким смайликом:



Оригинал здесь.
  • +10
  • 03 августа 2010, 01:39
  • yababay
  • 9

Groovy + bash: двойная мощь

Groovy — скриптовой язык, т.е предназначен для сиюминутных решений. Такое же назначение и у bash. Жаль только синтаксисы их уж совсем разные. Однако, как оказалось, два эти языка можно совместить элегантным образом.




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

Бесконечный проигрыватель

В деле проигрывания mp3-файлов, кажется, не осталось белых пятен, но я таки решил внести свои 5 копеек.

Вот решил человек, скажем, послушать музыку. Что в этом деле самое сложное? Технические вопросы вынесем за скобки, проигрывателей сейчас — на любой вкус. Самое сложное находится вне сферы IT. Самое сложное — составить хороший плэй-лист. Такой, чтобы хватило на несколько часов, пока вы, скажем, клеите обои в квартире. Вот такую задачу я и решил на коленке с помощью языка Groovy.




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

Документация по Java

Выложил на свой домашний сервер docs.yababay.ru/ документацию по некоторым Java API:

* JDK 1.6
* JavaFx
* Google Web Toolkit
* Apache Ant
* Groovy
* OpenDS

Не гарантирую режим работы 24/7, но сервер включен в течение почти всех суток с небольшими (на 2-3 часа) перерывами.

Регулярные выражения: как это понимать

Занимаясь IT уже более 10 лет, твердо уяснил: следует не гоняться за модным, а постигать вечное. Лучше тратить время не на поиск «классненьких программок», а на освоение фундаментальных концепций, таких как сетевые протоколы, классические языки программирования вроде C, XML, SQL, ну и, конечно же, regexp — синтаксис регулярных выражений. О последнем и пойдет речь под катом.




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

Groovy: простая работа с регулярными выражениями

Много есть аргументов как в поддержку языка программирования Groovy, так и против него. Но один мне кажется бесспорным: работать с регулярными выражениями — одно удовольствие (если, конечно, отвлечься от сложности самой темы регулярных выражений).




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

Как работает виртуальная машина Java

Не мог пройти мимо этого ролика: камрад очень толково разъясняет матчасть.


miniGeekFest 30042010 02 java min from golodnyj on Vimeo.