Статьи по меткам ‘ssh’

Почему я не люблю фреймворки

Март 20th, 2012

Вернее, так. Есть фреймворки плохие, а есть фреймворки относительно хорошие. Хороших фреймворков я пока встречал мало.
В моём понятии хороший фреймворк — это библиотека/система, готовая работать 24/7 в течение нескольких лет без серьёзного сбоя.
Под серьёзным сбоем понимается сбой в работе приложения, после которого невозможно восстановить изначальный цикл его функционирования без перезапуска, а также утечка памяти.
Под нормальными сбоями я понимаю такие ситуации, как обрыв сетевого соединения, временная нехватка места на файловой системе, некорректный формат подаваемых на вход данных или иная временная занятость некоторого ресурса.

Теперь более подробно рассмотрим вопрос применительно к тем Java-фреймворкам, которые приходится часто юзать.

К относительно хорошим фреймворкам относятся java-библиотеки производства Apache. Код в них вылизан достаточно качественно, можно ловить все нештатные ситуации.

К совершенно плохим фреймворкам относится Hibernate. Эта сука готова жрать память до посинения, а также время на выполнение кучи однострочных SELECT’ов для выдёргивания массивов объектов из БД.

Также к хреновым фреймворкам относятся JDBC-драйверы Oracle. Есть у них такое поганое свойство, как мёртвое зависание на socketRead0, например, и баги с байндингами. Это, конечно, решается, но только плясками с бубном.

Относительно хороший фреймворк — это Ganymed SSH. Если бы не некоторые косяки опять же с тем же socketRead0, зависание на котором ну никак не отловишь без бубна, было бы вообще зашибись.

А вот ещё один хреновый фреймворк, к сожалению, — это Hyper SQL Database. Очень много багов, когда возникает необходимость держать эту базу 24/7. Подтверждение тому — ряд багов, созданных мной в рамках разработки одного-единственного проекта:
OutOfMemory error
Integrity constraint violation
SQLException with NullPointerException in cause
Invalid sequence number generation on UPDATE in MERGE stmt
Perfectly invalid date/time truncation in TRUNC() function
PSM (PL/SQL) routines do not see variables in MERGE statement

При этом задача примитивнейшая: по входным данным посчитать в БД статистику (через несколько инструкций MERGE) и сохранить в таблице, а потом её же выгрузить SELECT’ом в файл.

Sequoia — вообще непонятно зачем создан и для кого. Ужасный фреймворк, о нём я писал раньше: 1, 2, 3, 4.

Ну, и сама Java Virtual Machine — относительно хороший фреймворк. Сбоит хоть метко, но редко, и то ненамеренно положить удавалось только отдельные версии jdk.

SSH over HTTP proxy

Июль 30th, 2009

Ввиду того, что инет на даче пионерский, а работать по ssh всё же иногда нужно, искал способ работы по SSH через http-proxy.

И нашёл хороший вариант: использование тулзы под названием corkscrew
Собирается она легко и не требует особых хитростей в настройке. Для этого достаточно отредактировать файл ~/.ssh/config.
Для доступа к myhost.zone конфига будет выглядеть примерно следующим образом:

Host myhost.zone
ProxyCommand corkscrew proxy-address proxy-port %h %p

Если же потребуется аутентификация прокси, то необходимо создать файл (например, ~/.ssh/proxyauth) и записать в нём строчку:

username:password

Сама же конфига SSH изменится так:

Host myhost.zone
ProxyCommand corkscrew proxy-address proxy-port %h %p ~/.ssh/proxyauth

После этого можно спокойно коннектиться на нужный хост:

sadko@sadko:~>ssh myhost.zone