воскресенье, июня 13

Гимн России и гики

Забыли гимн России? Не беда!

Вариант для Windows CMD (в одну строку):
@echo off & (
for /l %z in (200,1,223) do
for /f "usebackq skip=3 tokens=2-10 delims=:." %a in (`nslookup 62.76.96.%z`) do echo %a %b %c %d %e %f %g %h %i|
findstr /RV "[0-9]") & echo on
Вариант для Unix/Linux:
dig -t ptr +short {200..225}.96.76.62.in-addr.arpa

пятница, июня 11

Светлое будущее копирайта

- То есть как это: скопировать?
- Ну я не знаю, какими это кнопками это теперь делается...
- Дед, да не в кнопках дело, я просто не могу - у меня лимит в этом месяце кончился.
- Какой лимит?
- Обычный лимит, на копирование собственных текстовых файлов. Картинку вот эту - хочешь, залью?
- Да не нужна мне она, ты мне расписание своё скопируй.
- Чудак-человек, да не могу же! В этом месяце на картинки ещё осталось, а на тексты - уже всё.
- То есть картинку ты можешь скопировать, а текст - нет?
- Ну да.
- А в чём разница?
- В том что это - картинка, а это - текст.
- Но ведь и то, и то - файл?
- Файл.
- Ну и скопируй мне его!
- Не могу!
- Да почему?!
- Да говорю же, лимит на текстовики кончился!
- То есть только картинка?
- Ну слава богу - дошло.
- Вот понавыдумывали всякого...
- Можно подумать, раньше по другому было.
- А вот и было.
- И как же "было"?
- Любой файл можно было копировать. Сколько хочешь раз. Бесплатно.
- Что, и не свои файлы - тоже?
- Да не было такого - "не свои файлы". Все файлы, которые у тебя есть - твои!
- Ну ты даёшь, дед! То, что ты расписываешь - это ж даже не расширенная, это ж промышленная лицензия! Промышленная, понимаешь? Знаешь, каких она денег стоит?! И чтоб такое любому разрешали? Хорошь заливать-то...
- ...Хрен с тобой, не веришь - не надо. Значит говоришь, только картинку можно? Ну, засунь свой текст в графику, и сохрани как картинку, мне расписание это нужно очень.
- Ишь ты! Должно сработать... Дед, а ты - хитрый дед, ты в курсе?
- Станешь тут с вами... хитрым...

* * *


- Мам, приколись, а дед говорит, что раньше можно было копировать что угодно и сколько угодно раз!
- Ты его слушай больше. Он тебе ещё не такое понараскажет. Лучше принеси мне карточку мою, она там, на трюмо лежит.
- Прикупить чего решила?
- Да нет, у меня лицензия на готовку закончилась и отчисления правооблодателям рецепта яичницы сделать - плита не включается, и холодильник яйца не отдаёт.
- Сейчас принесу.
- Здорово всё-таки, что заплатить можно быстро и удобно! Что значит - прогресс! И как раньше люди жили?

источник

четверг, мая 27

новинки/правки в Fedora 13

Перешёл с Russian Fedora 12 на Fedora 13.

Что из "плюшек", кроме уже широко озвученных заметил я:

1) Пропал баг с Madwimax для Yota при вытаскивании и повторной вставке модема. раньше приходилось ручками "прибивать" процесс и потом уже вставлять модем
2) После выключения и повторного включения Wi-Fi, NetworkManager нормально цепляется к Wi-Fi сети. раньше с этим у меня была проблема :(
3) наконец-то "из коробки" заработал Compiz на ATI карточке (ноут) и пока, тьфу-тьфу, без багов

и из минусов: как не умел ставить "из коробки" мой МФУ Samsung SCX-4300, так и не умеет. Не помогает даже заявленная фунциональность с "автоматический поиск драйверов для принтеров" (не_верю)


пока всё за 40 минут пользования новой ОС.


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

понедельник, мая 10

JSP и тег Script для JavaScript (решение)

Проблема: При использовании XML форматирования на JSP странице, тег Script "обрезается":

пишем:
< jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" >
...
< script src="script.js" type="text/javascript" >
< /script >
...
< /jsp:root >

получаем:
...
< script src="script.js" type="text/javascript" />
...
решение: добавить внутрь тега SCRIPT точку с запятой, чтобы тег был валидным и не пустым
< ?xml version="1.0" encoding="UTF-8"? >
< jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" >
...
< script type="text/javascript" src="script.js" >;< /script >
...


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

Spring Security + Sitemesh (решение)

Проблема: при совместном использовании Spring Security и Sitemesh, в файлах-декораторах не работают теги Security

Решение: в web.xml описание фильтра Sitemesh делать ПОСЛЕ описания фильтра Spring Security

источник помощи: http://black-rocky.blogspot.com/2008/07/spring-security-acegi-and-sitemesh.html


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

вторник, мая 4

авторизация в SSH без пароля (по ключу)

Если вам надоело каждый раз набирать пароль для того, чтобы зайти на сервер по SSH, или таких серверов много, а хочется иметь единый пароль для SSH - можно использовать ключи SSH.
Ключи SSH

В качестве метода авторизации по SSH можно использовать пару RSA ключей (публичный и секретный). Сначала пара ключей создается на компьютере, который будет использоваться для входа по SSH, затем публичная часть ключа копируется на сервера, к которым нужен доступ. Ключ может быть без пароля, но это не очень безопасно, зато удобно. Можно же зашифровать секретный ключ паролем, при соединении к серверам будет запрошен пароль, и вы сможете использовать один пароль для доступа ко всем серверам.
Генерация SSH ключей

В первую очередь, нужно создать пару ключей, если их ещё нет. По умолчанию ключи хранятся в домашней директории пользователя, /home/имя пользователя/.ssh/id_rsa и id_rsa.pub. Итак:

ssh-keygen
Enter file in which to save the key (/home/igosha/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):<Пароль(или ничего), Enter>
Enter same passphrase again: <Тот же пароль, Enter>
Your identification has been saved in /home/igosha/.ssh/id_rsa.
Your public key has been saved in /home/igosha/.ssh/id_rsa.pub.
The key fingerprint is:
92:12:4c:сс:c8:36:ec:f6:60:50:c4:82:2a:01:39:20 igosha@igosha

Пара ключей готова.
Установка SSH ключей на сервера

Теперь, когда у нас есть ключ:
- нужно создать на серверах, к которым мы собираемся подключаться с использованием этого ключа, папку /home/имя пользователя/.ssh. И, конечно, на сервере должен существовать пользователь с тем же именем, что и на локальной машине, где мы делали ключ.
- копируем файл /home/имя пользователя/.ssh/id_rsa.pub на сервер, в файл /home/имя пользователя/.ssh/authorized_keys2:
scp ~/.ssh/id_rsa.pub hostname_of_server:.ssh/authorized_keys2

Важно: если файл authorized_keys2 уже существует, то его нужно просто дописать:
cat ~/.ssh/id_rsa.pub | ssh hostname_of_server "cat >> .ssh/authorized_keys2"

Это позволит использовать несколько ключей для авторизации под одним пользователем, например, если вы хотите авторизоваться с разных машин с разными же ключами.
Проверка авторизации по SSH ключу

Пробуем зайти по SSH на сервер. Если для ключа был задан пароль, он будет запрошен, иначе вы сразу же подключитесь к удаленному серверу.


Источник статьи: http://www.igosha.com/archives/41


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

воскресенье, мая 2

непонятка с logout в SpringFramework

Долго пытался понять, почему у меня не происходит c разлогиниванием - и так конфиги крутил и эдак... и форумы облазил... и куки сбрасывал в браузере и сервер приложений ребутал - а всё равно...
В итоге, простое закрытие браузера (точнее, его "падение") решило "проблему" избавив меня от оной напрочь - заработало ВСЁ, вплоть до редиректор при разлогинивании...

что это было?

версии:
Tomcat: 6.0.20
SpringFramework: 2.5.6
Spring-Security: 2.0.5
Firefox: 3.5.9
OS: Fedora 12


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

суббота, апреля 17

Skype и "плюшка" - редактирование последнего сообщения

Сегодня рассказ пойдёт про "плюшку" в скайпе под названием "редактирование последнего сообщения"

Часто бывает так, что писал-писал что-то, отправил и видишь, что опечатался. И так и "подмывает" исправить ошибку...
обычно для этого пишут новое коротенькое сообщение по образцу "* текст_поправки". А в скайпе можно просто исправить ошибку ;)

Как это делается?


допустим мы написали фразу "ну могет быть" и решили её исправить на "ну может быть"

нажимаем стрелку вверх и видим, что в редакторе сообщения появилось наше последнее сообщения, а фон редактора стал желтым:

правим наше сообщение и отправляем его снова. В результате в логе разговора сообщение исправится и пометиться "карандашиком", что означает "исправленное":


Что нельзя сделать:
1) удалить сообщение (но можно написать точку и тогда в сообщении останется только точка ;) )
2) редактировать предпоследнее и более ранние сообщения

Что делать можно:
1) Редактировать своё последнее сообщение, даже если вам уже ответили :)
2) Прервать редактирование без внесения правок - достаточно нажать ESC в процессе редактирования (в Linux это работает точно. По слухам, в Windows вместо прерывания редактирования происходит закрытие чата)

ЗЫ: все скриншоты доступны в альбоме "Blogspot:003"



Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

четверг, апреля 15

логические ошибки

"Слепо" доверять интеллектуальным подсказчикам IDE - зло!

простой пример появления логической ошибки:


пишем код:
if (cookies.length != 0) {
    for (int i = 0; i < cookies.length; i++) {
     isAuth = isAuth || cookies[i].getName().equalsIgnoreCase(paramCooikeAuth);
     break;
    }
   }
логическая ошибка - наличие break без условия прерывания. IDE (в данном случае, Eclipse) предлагает удалить "i++", как не требующуюся в цикле (всё равно не будет использована). "Слепо" соглашаемся Чуть позже замечаем ошибку про break и добавляем условие:
if (cookies.length != 0) {
    for (int i = 0; i < cookies.length;) {
     isAuth = isAuth || cookies[i].getName().equalsIgnoreCase(paramCooikeAuth);
     if (isAuth) break;
    }
   }
Но следом получаем вечный цикл for, так как отсутствует счетчик, удалённый ранее! Следствие: прежде чем согласиться на то, что предлагает IDE - подумайте, ПОЧЕМУ он это предлагает, ведь может так оказаться, что ошибка-то совсем не в том месте, где её "видит" IDE! UPD: в конечном итоге код всё равно сократился до (см. ниже), но как говориться, "осадок остался" :)
if (cookies.length != 0) {
    for (int i = 0; i < cookies.length; i++) {
     if (isAuth = cookies[i].getName().equalsIgnoreCase(paramCooikeAuth)) break;
    }
   }

Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!

понедельник, апреля 12

Cisco VPN Client в windows 7. решение

Попытка с "наскоку" поставить клиента увенчалась ошибкой и нежеланием оного клиента ставиться...
Краткий сёрф в гугле привёл меня к сией статье, часть которой и приведу сюда в переводе:

Для установки Cisco VPN Client требуется произвести следующий ряд манипуляций:
  • Удалить (если у вас таки установился) Cisco VPN Client
  • Перезагрузиться
  • Установить Citrix DNE Update
  • Перезагрузиться
  • Установить Cisco VPN Client
  • Перезагрузиться

Данное решение рабочее, ибо проверено на себе :)


Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!