В Geeqie продолжили традцию предка GQView в части технологии инструментов, что удобно - теперь они редактируются созданием .desktop файла и могут быть расположены в любом пункте меню/подменю (не до конца доделано, но пользоваться уже можно).
Итак, что потребуется
- imageshack-upload из одноименного пакета, Арчеры могут поставить пакет из AUR
- xmessage или zenity для формирования диалога изменения разрешения картинки
Начнем…
Запускаем Geeqie, идем: Edit -> Preferences -> Configure editors. Откроется окно настройки редакторов, которые могут вызываться из Geeqie.
Нажимаем Create. Появится окно создания нового инструмента, где в основном окне ввода расположен шаблон, который можно подправить под себя. Начинаем с того, что в нижем окне ввода заменяем new.desktop на что-то вроде: ImageShackUpload.desktop. В качестве тела .desktop файла вставляем:
[Desktop Entry]
Version=1.0
Type=Application
Name=Image Shack Upload
# If you have zenity installed use:
#
# cmd="zenity --list --text='$Q' --column='Selector' --column='Size' --radiolist TRUE No FALSE 1024x768 FALSE 800x600 FALSE 640x480 FALSE 400x300 || echo No"
#
# if you have xmessage installed use:
#
# cmd="xmessage -print -buttons 'No,1024x768,800x600,640x480,400x300' '$Q'"
#
# If you use other dialog system, configure it, or use next command for disable resoultion selection:
#
# cmd="echo No"
#
Exec=Q="Resize image before upload?"; cmd="zenity --list --text='$Q' --column='Selector' --column='Size' --radiolist TRUE No FALSE 1024x768 FALSE 800x600 FALSE 640x480 FALSE 400x300 || echo No"; size=`eval $cmd`; (for img in %F; do send_img=$img; if [ x"$size" != x"No" ]; then base=`basename $img`; noext=`echo $base | sed 's/.[A-Za-z0-9]*$*'`; ext=`echo $base | sed "s/^$noext*"`; send_img="/tmp/${noext}_$size$ext"; convert -scale $size $img $send_img > /dev/null 2>&1 || send_img=$img; fi; imageshack-upload $send_img 2>&1 | grep '^http:'; done)
# Desktop files that are usable only in Geeqie should be marked like this:
Categories=X-Geeqie;
OnlyShowIn=X-Geeqie;
# Show in menu "File"
X-Geeqie-Menu-Path=FileMenu/FileOpsSection
# This is a filter - $GEEQIE_DESTINATION is required
X-Geeqie-Filter=false
# It can be made verbose
X-Geeqie-Verbose=true
В зависимости от того, стоит у вас zenity/xmessages - вы должны заменить команду cmd="…" на нужно вам. Кроме того, настройки тут говорят - располагать пункт в меню File. Нажимаем Save, возвращаемся опять в окно настройки инструментов, где наблюдаем и наш новосозданный инструмент. Закрываем.
Теперь выбираем файлы за для закачки и идем File -> Image Shack Upload, появляется диалог, в котором нам предстоит выбрать разрешение, в которое пережмется картинка, или No, если изменение размера не нужно. После закрытия окна начнется процесс закачки (если кстати прервать нельзья, только с соседнего терминала чем-то вроде killall curl), ссылки на закачанные файлы будут выведены в окне, откуда их можно скопировать и вставить в нужное вам место.
Enjoy!
На правах юмора, бояна и кросспостинга
навеяно #536746, почему христианская церковь, не одобряэ Linux (да, это относится так же и к Unix):
- там часто фигурирует число зверя – 666
- там говорится про вилы (а чем черти колют грешников) – fork()
- там часто фигурируют демоны
- там часто взучат призывы убить (kill) и убить всех (killall)
- очень часто упоминается про убийство родителей и детей
- там обитают зомби
- там ложь — это истина (общепринято: 1 – true, 0 – false, так в оболочке, нормальное завершение процесса, это код возврата – 0)
- из #536746: тут ведется пропаганда детской порнографии (cp)
что ещё?
Отдельно, то, что не подходит как обощение, частно для конкретного дистрибутива/семейства
- у FreeBSD вообще черт на логотипе
- Толстый пингвин на логотипе — пропаганда чревоугодия
тут тоже – что ещё?
./configure для qmake-based проектов
Что бы очень не заморачиваться с формированием ./configure скрипта (и configure.exe программы для windows) при помощи autotools, когда вся их мощь не очень нужна, поможет проект qconf
Для Арчеводов, можно собрать из AUR svn версию: http://aur.archlinux.org/packages.php?ID=18686
Далее, на правах вольного пересказа английского README.
Intro
Итак, собираем, устанавливаем. Далее идем в корень вашего проекта, где лежит qmake файл, cоздаем там, для примера, файл myproject.qc примерно следующего содержания (это xml файл):
<qconf>
<name>myproject</name>
<profile>myproject.pro</profile>
</qconf>
дале пускаем:
qconf myproject.qc
На выходе получаем скрипт ./confugure с функционалом, в базовой части соответствующей autotools.
Если запустить без аргумента, будет выбран первый найденный .qc файл, если их найдено не будет - автоматически будет выбран первый .pro файл, и на основе его собран минимальный .qc файл (как в примере выше).
На целевой машине qconf не нужен (нужные только его модули конфигурации, но логично распространять их с самим проектом), нужен только разработчику.
Итак, на этот момент мы имеем готовый ./configure скрипт, который запускаем без параметров или смотрим ./configure --help
.
Как это работает
После запуска ./configure, будет сформирован файл conf.pri, в котором будут содержаться различные переменные, отвечающие за сборку, основные из которых:
- PREFIX
- BINDIR
- LIBDIR
- QTDIR
Этот файл вы можете включать в ваш .pro файл:
include(conf.pri)
Т.е. обобщая, как это работает: qconf формирует, на основе .qc файла, скрипт ./configure, который, будучи запущенным, выполняет нужные вам проверки, создает conf.pri, запускает qmake для вашего .pro файла, который (как я выше написал) может включать conf.pri файл (соответственно, все что будет записано в conf.pri - будет доступно для qmake).
Возможные директивы для .qc файла
<name>NAME</name>
- имя проекта
<profile>FILE.pro</profile>
- .pro файл проекта
<dep>...</dep>
- описываем зависимости, проверка на которые будет проводиться:```xml
* `"type"` - определяет модуль (примеры модулей идут вместе с qconf, правда только два: qt31.qcm и qt41.qcm). Если type задана как **pkg**, проверка происходит при помощи pkg-config (выводы --libs и --cflags будут добавлены при компиляции):
* опрашивается параметры:
* `"name"`
* `"pkgname"`
* `"version"` в которой могут содержаться знаки отношения: ">=", "<=", иначе принимается "="
* `<required />` - определяет обязательность зависимости
* `<disabled />` - зависимость выключена
<arg>DESRIPTION</arg>
- дополнительные агрументы для скрипта ./configure, сам аргумент будет доступен через переменную окружения QC_NAME (большими буквами, можно достучаться в модулях проверки через getenv), включают атрибуты:
"name"
- имя
"arg"
- значение
<lib />
- включает режима, когда собираемый проект - библиотека
<static />
- в случае, если <lib />
, собирать статическую библиотеку
<noprefix />
- очищает PREFIX
<nobindir />
- очищает BINDIR
<prefix>PATH</prefix>
- задаем PREFIX (по умолчанию: /usr/local)
<bindir>PATH</bindir>
- задаем BINDIR (по умолчанию: PREFIX/bin)
<incdir>PATH</incdir>
- задаем INCDIR (по умолчанию: PREFIX/include)
<libdir>PATH</libdir>
- задаем LIBDIR (по умолчанию: PREFIX/lib)
<datadir>PATH</datadir>
- задаем DATADIR (по умолчанию: PREFIX/share)
<qtdir>PATH</qtdir>
- задаем QTDIR
<moddir>PATH</moddir>
- добавляет пути поиска модулей для
<qt3 />
- конфигурация для qt3 окружения (но сама qconf зависит от qt>=4.1, используйте версию 1.1 для qt3)
Да, пример где используется - psi, там же, в директории qcm можно найти очень много приятных модулей проверки.
Ну и да, это всего лишь помощь к qmake, но не замена. Его тоже настраивать нужно. И читать руководства по нему.
PS пока очень сумбурно, потому как, сейчас сам только с ним столкнулся, потом будет дополняться, уточняться.
Т.к. основная ценность данного ресурса - это мои бредни, поэтому они заслуженно переезжают на главную страницу, тут же новости и прочая периодика.
Информация о ресурсе переехала на страницу “О ресурсе”, и приобрела чуть более линейный вид.
За сим - всё.
UPD: Информация больше не актуальна, теперь подобные средства кодогенерации встроены в Qt Creator.
Долгое время пользовался для написание программ, с использованием Qt4 интегрированную среду разработки QDevelop, и хотя она почти всем устраивает, за несколькими исключениями:
- непонятно работает автодополнение
- на 500 строках и больше начинает ощутимо поддтормаживать
Текущая версия замечательного редактора tags:medit?do=showtag&tag=medit|medit
это 0.9.4 и она не обновлялась больше года. Решил собрать и попробовать сборку из mercurial, благо, смотря на даты последних изменений можно заметить, что работа ведется:
http://bitbucket.org/muntyan/moo/
Не все гладко - несколько переработан интерфейс, некоторые ошибки так и не исправлены (типа стоит галочка “переносить текст”, а он не переносится, а если убрать - будет переноситься).
Кроме того, сменили систему сборки на cmake, в результате не все доделали, и пришлось сделать два патча и один work-around для того, что бы пакет собрался вообще и с ctags, в частности. Кроме того, правила cmake пока не докрутили для python-plugin, в результате ни консоли питона, ни питоновских команд для пользовательских утилит. Хотя меня не это больше смущает - на питоне сделан терминал был, удобная, иногда, штука.
По питону, есть бага: http://sourceforge.net/tracker/?func=detail&aid=2929703&group_id=167563&atid=843451 будемс следить.
В общем, в результате изысканий, сделал правило для сборки и поместил в AUR: http://aur.archlinux.org/packages.php?ID=34336 там же необходимые патчи, хотя они тривиальны.
Да, рекомендую ознакомиться со справкой к программе, там вы найдете, в частности, как управлять поведением редактора на разных файлах (типа установить ширину отступа и кодировку, делается в манере, схожей с vim)
Наконец дошли руки оформить и свои устоявшиеся привычки кодирования, разложить по полочкам и свести к единому результату, а то читая свои творения некоторые, потом долго приходится волосы приглаживать.
В общем вот: /C/C++ Coding Style
По ходу будет дополняться.
В общем, сегодня выбрался наконец попробовать свои деревяшки в район бот-сада. Понял что нужно, однако, учиться :laughing:
Первое что понял - крепление полная опа. Нога ходит и болтается как г в проруби. Для этих лыж нужно резиновую подкладку ложить, иначе… ну не знаю, одни мучения. В общем попробую, если не поможет - буду вообще переосмысливать.
Далее, вообще не понял как идти в подъем %-) ну качусь назад и все, или мазь нужно было положить потеплее, и что с собой её не взял, хотя была положена -2 – -8. На одном подъемчике ноги так разъехались, почти шпагат вышел, мышцу потянул :)
На ровной местности идти нормально, отдачи нет, когда накатал лыжню даже легкими толчками катиться получается, вот тут прикольно, нужно немного потренироваться и разобраться.
Спуск… Да, сначала нужно тормозить научиться и лыжи закапываться и все, ну да, спускался по целине, учился не на лыжне. И вообще поворачивать в движении, а то я тормозить только падением освоился, благо снег мягкий.
Подвели мои трекинговы палки, которые хотел подъюзать вместо лыжных, что-то там поломалось уже и теперь они не фиксируются, а ведь даже года не отходили и походов-то было раз два и обчелся. Как лыжную палку пришлось использоваться обычную палку.
Но позитив есть, хоть и не очень много :) Спасли так же бахилы, когда с лыж слезать приходилось - снега по колено, ноги не промокли, хотя подтаивало.
И на заметку: http://www.sportfamily.ru/podrostok/sky
Таска возникла на работе, ничего сложного и по интернетам наверное есть, заметка для себя.
Для Xerox/Samsung МФУ и сканеров рекомендую поставить sane версии не ниже 1.0.20, т.к. там появилась нативная поддержка этих девайсов, в замен глючному Unified Linux Drivers (ULD).
Серверные настройки
Сервер - тот к кому подключен сканер
- в /etc/sane.d/dll.conf убираем строки добавленные при установке ULD, обычно содержат в себе слово mfp, добавляем строчку:
xerox_mfp
- в /etc/sane.d/saned.conf прописываем адреса для которых разрешено сканирование, например, для все сети:
192.168.13.0/24
- в /etc/xinetd.d/saned
disable = yes
заменяем на disable = no
. Возможно сдесь же, придется исправить группу и пользователя от которого будет стартовать сервер saned.
- рестартуем xinetd
Или запускаем saned как сервер. Вот кстати полный конфиг для /etc/xinetd.d/saned:
service sane-port
{
disable = no
port = 6566
socket_type = stream
wait = no
groups = yes
user = saned
group = users
server = /usr/sbin/saned
}
Клиентская часть
Клиенты - те, с которых будет производиться сканирование.
Тут настройка проста, в /etc/sane.d/net.conf прописать адрес или адреса хостов, к которым подключены сканеры, можно задать таймаут опроса.
Дополнительно
На некоторых системах потребуется монтирование usbfs, что бы организовать правильный доступ к устройству пользователей, на работе в Мандриве это:
none /dev/bus/usb usbfs auto,busgid=100,busmode=0775,devgid=100,devmode=0664 0 0
У меня на ArchLinux:
none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0
группа для vbox :wink: ну а так, почти не отличается
ID групп и пользователя и права задаёте те, которые у вам нужны.
далее сканирование происходит как обычно - запускаем scanimage или xsane, если найдено несколько сканеров - будет предложено выбрать, если что-то не работает смотрим логи и права доступа - предварительно настраиваем сканер для локальной печати, благо это, в случае поддержки устройства, делается очень просто.
С давних пор пользуюсь для чтения электронных книг замечательной программкой FBReader. Особо мне нравилось то, что он мог на основе параметров пользователя оформлять книги, которые находятся в простом TXT файле.
Например, люди, которые делают OCR могут использовать следующие способы для выделения абзацев:
- длинные строки, новый абзац с новой строки - такое правда встречается редко
- в начале обзаца строка имеет отступ а 1-2-3 и т.д. пробелов или табуляций
- абзацы разделены пустой строкой
Второй и третий случай - наиболее частые, а сам текст обычно выравнен на 80 символов, что бы можно было читать в DOS-терминале
Так вот, в программе можно задать, как разбивать на абзацы, в остальных случаях перевод строки будет игнорироваться и строки будут склеиваться, что удобно - при любом удобном шрифте, у нас не будет рваных краем, затрудняющих чтение.
Второй вариант, разделение глав, тут обычный случай: по окончании главы 2 и более пустые строки, после заголовка одна пустая строка - самый частый случай. Программа на основе таких данных может строить оглавление и осуществлять быстрый переход, что является достаточно удобным функционалом.
Конечно, данные критерии не покрывают абсолютно все случаи, но большинство - это точно.
Теперь о проблеме: в какой-то момент поломалось форматирование TXT файлов, с разделением абзацев по отступу первой строки, проявлялось так:
Отступ имела первая строка азбаца, после чего азцаз закрывался и вторая строка абзаца так же печаталась с новой строки с отступом, и это очень сильно резало глаза.
Сегодня дошли руки покопаться в исходниках, благодаря ну очень внятной структуре, разобраться много времени не заняло, да и исправления можно сказать косметические, вот патч:
--- ./fbreader/src/formats/txt/TxtBookReader.cpp.orig 2010-01-26 01:33:14.083167173 +1000
@@ -27,7 +27,8 @@
void TxtBookReader::internalEndParagraph() {
if (!myLastLineIsEmpty) {
1. myLineFeedCounter = 0;
+ myLineFeedCounter = -1; /* Fixed by Hatred: zero value was break LINE INDENT formater -
+ second line print with indent like new paragraf */
}
myLastLineIsEmpty = true;
endParagraph();
@@ -76,7 +77,9 @@
((myFormat.breakType() & PlainTextFormat::BREAK_PARAGRAPH_AT_EMPTY_LINE) && (myLineFeedCounter > 0));
if (myFormat.createContentsTable()) {
1. if (!myInsideContentsParagraph && (myLineFeedCounter == myFormat.emptyLinesBeforeNewSection() + 1)) {
+ /* Fixed by Hatred: remove '+ 1' for emptyLinesBeforeNewSection, it looks like very strange
+ when we should point count of empty string decrised by 1 in settings dialog */
+ if (!myInsideContentsParagraph && (myLineFeedCounter == myFormat.emptyLinesBeforeNewSection())) {
myInsideContentsParagraph = true;
internalEndParagraph();
insertEndOfSectionParagraph();
Или альтернативная ссылка: http://codepad.org/GO5GIN7Y
Сейчас попробуем запостить разработчикам.
UPD: собственно: http://groups.google.com/group/fbreader/browse_thread/thread/a0f77eb79add8571?hl=en
Когда объяснял процесс монтирования сменных накопителей в nix (читая курсы в ПИППКРО), родилась аналогия про прививу к дереву черенка и организации одного большого дерева (черенок это наш сменный носитель, флешка, CD/DVD и т.д.). Там же родилась юморная аналогия про один корень в nix и несколько корней в win - в nix у нас могучий дуб, а в win - несколько кустиков.
На прошедшем семинаре в коллекцию аналогий попала ещё одна, предложил камрад ad_user. Но для начала скучное техническое объяснение.
Все знают, что на большинстве IBM PC
совместимых компах (какая архаика), нам на жестких дисках досталась таблица разделов, которая хранится в MBR
(Master Boot Record). Сама MBR находится в первом секторе жесткого диска (в общем случае, можно подставить: flash, floppy & etc), и имеет размер 512 байт. В эти 512 байт нужно было запихнуть код загрузчика, сигнатуру, а на таблицу разделов выделил 64 байта, по 16 байт на раздел (тип раздела, его расположение)… Уже поняли? На первых PC на жеском диске можно было иметь всего 4 раздела (или диска C, D, E, F). После POST_(аппаратное_обеспечение)|POST
процедур PC BIOS передает управление коду загрузчика в MBR. Именно поэтому, если хотим откзаться от MBR, нужно отказываться и от PC BIOS
(как сделано в маках: EFI
(Extensible Firmware Interface, вместо BIOS) + Таблица_разделов_GUID|GPT
(GUID Partition Table))
Через некоторое время оказалось, что этого не достаточно, для некоторых задач требовалось делить жесткий диск больше чем на 4 раздела… А что делать - железа было уже очень много, а PC славится обратной совместимостью (когда-то это тру, когда-то - нет), исправить просто так формат - не получится… Тогда придумали совместимый алгоритм, так называемый Extended_Boot_Record|EBR
(Extended Boot Record).
Что из себя представляет. В описании раздела в MBR есть поле - типа раздела, договорились, если вписать туда 0x05, это будет типом расширенного раздела, а в полях адреса, будет указан адрес EBR, в которой содержится: указатель на раздел, указатель на следующую табличку EBR и сигнатура (такая же как у MBR). На самом деле там больше полей, но часть просто не используется.
Таким образом, у нас получается по цепочке создать столько разделов сколько нужно. Кстати, были вирусы и зловредные программки, которые исправляли в EBR указатель на следующую табличку, на какую-то предыдущую, делая тем самым зацикливание. Ясно дело, при загрузке система сходила с ума :)
Условно принимают что расширенный раздел один, и остальные диски располагаются в нем, это не верно, но для восприятия в большинстве случаем - достаточно. Т.е. в общем случае у нас может быть 3 primary раздела и 1 extended, двух расширенных разделов в MBR быть не может. Стандарт. В Extended - сколько нужно logical разделов.
Ничего непонятно? :) теперь время аналогия:
у нас есть удлинитель на 4 розетки, если мы подключим туда 4 потребителя (создадим 4 primary раздела), мы
больше потребителей подключить не сможем (в случае дисков - уменьшить размер существующего раздела и создать в освободившемся месте новый), а если мы сделаем так: подключим 3 потребителя, а 4е гнездо, подключим удлинитель на 2 розетки - в одну подключаем потребителя (кофеварку), а во вторую, ещё один такой удлинитель… и так пока мощности хватит :)
в общем, как-то так :)
PS да, в случае nix, нумерация primary разделов 1-4, а extended - от 5, так что не удивляйтесь, если у вас будут3 primary раздела 1, 2, 3 и сразу 5 (первый раздел в расширенном разделе).
Или полное название: Книжное братство Флибуста - добротная сетевая библиотека, книжки в fb2 и доступны для чтения онлайн.
А фрегат на фоне волны из страницы книги на логотипе наводит мысль на происхождение название ресурса от слова - флибустьеры… как-то даже приятно)
Собственно что это я, спасибо mountain-diu
за наводку, и вот собственно сам сайт: http://flibusta.net/
PS Таня, если читаешь, думаю тебе понравится )
Смолил лыжи. Теперь весь подъезд люто на меня смотрит: занятие увлекательное, но запааааааах… Вот
ссылка в тему: http://www.mail-archive.com/speleokedr@ngs.ru/msg01540.html, процитирую:
Привет, любители весеннего солнца и деревяных лыж.
в связи с наступившей весной, мокрым снегом и подлипом, а по утрам жестким настом, рекомендуется просмолить наши туристкие деревяные лыжи. Смолить нужно смолой Уктус для деревяных лыж, продается в магазине Старт(пр Дзержинского), 130 р бутылочка 80 грамм, хватает на 3 лыжи(т.е. 1,5 пары). Как смолить? наливаем смолу на скользящую поверхность лыжи, берем щепку(или кисточку) и размазываем равномерным слоем по площади всей лыжи. Далее берем горелку, плитку, костер(удобнее всего китайская насадка одеваемая на газовый балон) и греем лыжу, пока почти вся смола не впитается, удаляем тряпкой остатки смолы. чем дольше греть лыжу тем лучше, только не сожгите:)
Также рекомендуется в качестве антиподлипа использовать серебрянку: смесь из парафина(свеча) и аллюминевой пудры. сотоношение свечи к пудре: 2 к 1.
ps на смоленные лыжи серебрянка ложится лучше, чем не на смоленные
Только я лыжи преде нанесением смолы тоже прогревал - растекается лучше. Кроме того, что бы смола не густела в бутыльке, я поставил рядом плошку с горячей водой и бутылек ставил туда.
Для чего нужно смоление? Опять цитата (http://www.sport-dic.ru/html-sport/s/smolenie-l3j.html):
СМОЛЕНИЕ ЛЫЖ
Процедура подготовки лыж к эксплуатации. Обработка скользящей поверхности новых лыж специальной смолой или жидкими смолистыми мазями. Хорошая пропитка предохраняет лыжи от влаги, разбухания, образования трещин и лучше держит лыжную мазь.
Теперь ещё переварить как правильно накладывать мазь на мои “дрова”, а то информация разница, где говорят - на всю поверхность наносить мазь держания, в от тут говорят такое:
Ваши лыжи деревянные. Наверное, здесь уместно лирическое отступление. Времена деревянных лыж и кирзовых ботинок безвозвратно прошли. Это, конечно, не значит, что на них никто не катается. Тем более это не значит, что деревянные лыжи не имеют права на существование. Прогресс - дело великое, покупают сейчас в основном лыжи с пластиковой скользящей поверхностью. И причина этому даже не в том, что все больше людей озабочены “имиджем”, пластиковые лыжи действительно имеют ряд преимуществ. И все же. Если нужно намазать деревянные лыжи, все очень просто: берете мазь держания и наносите ее на центральную часть скользящей поврехности (под колодку). Для того, чтобы совсем было понятно, объясню, что такое колодка. В деревянных лыжах это прогиб. Длина колодки примерно 50 см от пятки ботинка, поставленного в крепление, вперед к носку лыжи. Хорошо бы, чтоб лыжи были смоленые. Тогда они не будут впитывать влагу, дольше прослужат и будут лучше скользить. Но дело ваше. Можно и не смолить.
С лыжной мазью тоже можно слишком не мудрить. “Висти” будет вполне достаточно. Это недорогая, проверенная ни одним поколением лыжников мазь. Бывалые лыжники знают, что раньше мазь “Висти” наносили по всей длине, а под колодку “теплее”, чем температура воздуха. Может быть это и так. То есть не исключено, что вы “попадете в температуру” и мазь “покатит”, вернее, “не покатит”. Но вообще-то, мазь нужно подбирать по температуре. Наносить ее нужно тонким слоем, растирать - растиркой. Можно, конечно, не растиркой, но удобнее все же ею. И помните 1 слой хорошо, а 2 - лучше.
Если мазь “Висти” (“Луч”, “МВИС”) нанесена правильно. то ее хватит на километров 10-15. Этим она главным образом и отличается от дорогих импортных мазей. И если вы бежите на лыжах далеко, нужно будет просто подмазать колодку еще раз. Да и температура воздуха к тому времени может измениться. И не забывайте о прописных истинах - старую мазь перед нанесением новой нужно снимать. Обычно это делают скребком. Есть специальные смывки для мазей.
Бум думать :)
Оригинал запостил в juick: http://juick.com/hatred/498774
интересный вариант фишинга наблюдал буквально на днях. Да я являюсь обладателем пустого аккаунта на одноглазиках, в моем круге и мире, а так же вконтакте. Пользуюсь 99.99% последним, остальные - исторически сложилось. Про быдло не нужно, каждый считает что быдло кто угодно, только не он. Скучно.
Так, вот, многие помнят как шумели истории, когда “рыбаки” выуживали пароли хомячков, а те даже не замечали, пока от их имени активно не начинали спамить.
Делается обычно как: приходит письмо-подделка, полностью дублирующее внешний служебных писем (вашу фото прокомментили, кто-то просится к вам в друзья, на ваш счет поступил перевод и т.д. и т.п.) и ссылкой для быстрого перехода, причем домен там чуть-чуть, одной двумя буквами отличается от оригинала (нужно было озадачиться - коллекцию собрать, но да ладно), пример
По такой неправильной ссылке открывается сайт-подделка, при этом не сам сайт, а только диалог входа - ввод логина и пароля. И вот вы, счастливые, что к вам в друзья стучится Наоми Кембел, потными ручками вводите свой логин и пароль и… и он улетает в базу злоумышленникам, а они вас тупо перенаправляют на оригинальный сайт, где вас или повторно попросят ввести пароль или произойдет автовход.
Что в таких случаях делать? Прежде всего - ДУМАТЬ и быть внимательными, желательно регулярно менять пароли, если забываете, запаситесь на паре флешек синхронной копией базы и программы KeePassX (можно прочитать и как KeepAss… что часто больше отражает её суть), и храните пароли в ней, не ходить по ссылкам из письма, а набирать сайт вручную - нужные ссылки у вас и так скорее всего в истории сохранены (если параноик и чистишь постоянно, то это не про тебя)
Так, что-то лирика большая, собственно про сам вариант: в аккаунте у пользователя (форум, стучится новый контакт в ICQ/Jabber/etc) в качестве сайта указан хомяк на какой нить соц-сети, ессесно, интересно глянуть - а что такое, быстро копируешь вставляешь… и получаешь, что выше описано, причем инертность, по крайней мере у меня тут большая, но если появляется диалог входа, я таки внимательно изучаю ссылку. В этом варианте даже не надо заморачиваться на подделке письма, адресов обратных, а внешний вид страницы сайта, сдергивается httrack’ом, wget или curl’ом за пару секунд и дальше чуть чуть быдло-кодинга на чих-пых и готово. Так что будьте внимательны, мы тут на войне.
Хау. Я все сказал.
PS не только соцсетей это касается, просто пока они модны, и там тусуется в т.ч. много леммингов, они - лакомый кусочек, для спамеров в том числе. А так этом может быть какой нить интернет-банк, ещё что нить.
Если кто захочет собрать Termit 2.3.0 (в AUR пока только PKGBUILD для 2.2.0), столкнется с фейлом линковки, соорудил это:
--- ./src/CMakeLists.txt.orig 2010-01-23 22:26:13.037085590 +1000
@@ -2,7 +2,7 @@
INCLUDE_DIRECTORIES(${TERMIT_SOURCE_DIR})
-INCLUDE (FindGTK)
+INCLUDE (FindGTK2)
INCLUDE (FindPkgConfig)
pkg_search_module(VTE REQUIRED libvte>=0.13 vte>=0.13)
@@ -37,13 +37,13 @@
# LINK_FLAGS ${TERMIT_LDFLAGS})
#set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${TERMIT_LDFLAGS})
-SET(TERMIT_LDFLAGS "")
-FOREACH(ldflag ${VTE_LDFLAGS} ${GTK_LDFLAGS})
1. SET(TERMIT_LDFLAGS "${TERMIT_LDFLAGS} ${ldflag}")
-ENDFOREACH(ldflag)
-set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "${TERMIT_LDFLAGS}")
+#SET(TERMIT_LDFLAGS "")
+#FOREACH(ldflag ${VTE_LDFLAGS} ${GTK_LDFLAGS})
+# SET(TERMIT_LDFLAGS "${TERMIT_LDFLAGS} ${ldflag}")
+#ENDFOREACH(ldflag)
+#set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "${TERMIT_LDFLAGS}")
-target_link_libraries(${TARGET} ${LUA_LIBRARIES})
+target_link_libraries(${TARGET} ${LUA_LIBRARIES} ${VTE_LDFLAGS} ${GTK_LDFLAGS})
INSTALL(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
Альтернативная ссылка: http://codepad.org/ovoBTiFN
Собрал, обновил, в комментах к AUR-версии отписал о выходе новой версии и патче.
PS классная утилита curlpaste, помогает одним движением залить текстовый файлик на сервисы типа pastebin и получить прямой линк для отправки собеседнику. Работает не только с файлами, но и с иксовым буффером обмена, может отправлять стандартный вывод программы. В общем самое оно для обмена конфигами и/или логами, кусками кода и т.д.