Мозг и когнитивные функции

пятница, 14 сентября 2007 г.

Как определить, запущено ли Java приложение под отладчиком?

Для JDK1.5 я использую некоторые полезности из JMX API.
RuntimeMXBean позволяет получить доступ к JVM аргументам запуска, в которых ищется соответствующая опция "-agentlib:". Не очень "концептуально" и без использования JPDA.

public static boolean isRunningAsDebug() {
try {
RuntimeMXBean rtb = ManagementFactory.getRuntimeMXBean();
if (rtb!=null) {
List rtargs = rtb.getInputArguments();
if (rtargs==null||rtargs.size()==0) return false;
for (String arg:rtargs)
if (arg!=null&&arg.startsWith("-agentlib:")) return true;
}
return false;
} catch(Throwable err) {
return false;
}
}

четверг, 13 сентября 2007 г.

Люди - животные не просто социальные, а «ультрасоциальные»


Как сообщают Элементы, дети в возрасте двух с половиной лет справляются с задачами «социального» характера гораздо лучше обезьян, хотя в решении «физических» задач шимпанзе и орангутаны нисколько не уступают им. Это подтверждает «гипотезу культурного интеллекта» (the cultural intelligence hypothesis), согласно которой выдающиеся интеллектуальные способности, отличающие человека от животных, развились в связи с общественным образом жизни и с требованиями сложной и гибкой социальной организации. По-видимому, умственные способности наших предков в ходе эволюции развивались неравномерно: сначала развились социально-ориентированные навыки, а остальные «подтянулись» позже.

Поздравляю причастных с днем программиста!

День программи́ста — неофициальный праздник программистов, отмечаемый на 256-й день года. Число 256 (28) выбрано потому, что это количество чисел, которое можно выразить с помощью одного байта. В невисокосные этот праздник попадает на 13 сентября, a в високосные годы — на 12 сентября. (c) Wikipedia

Java программисты, соответственно, празднуют:
254-й день - как "-2"
255-й день - как "-1"
256-й день - как "0" :)

пятница, 7 сентября 2007 г.

Java кодеры не могут называть себя программистами?

Потому, что не только не понимают указателей и рекурсии, но существуют еще множество других причин.

Читайте, Java "лемминги" оригинал статьи от Джоэла Спольски.

Цитата:
...что Java в целом недостаточно сложна, чтобы отделить отличных программистов от посредственных. Может быть, это отличный язык для работы, но сегодня речь не об этом. Я даже могу зайти так далеко, что скажу — факт того, что Java не сложен, это особенность, а не ошибка — но это ведёт к данной проблеме...

среда, 5 сентября 2007 г.

JDBC - SQLException.getErrorCode() / PostgreSQL 8.2

Интересное поведение сабжа.

Ранее код типа

try {
...
} catch(SQLException err) {
rollback(conn);
if(err.getErrorCode()==23505) ...
else throw new ...
}

работал нормально для некоторых SQL серверов.
PostgreSQL начиная с версии 7.4 ВСЕГДА там возвращает 0.
Реальные коды ошибок описаны в документации.

Другими словами, при работе с постгресом следует применять ::getSQLState();

try {
...
} catch(SQLException err) {
rollback(conn);
if("23505".equals(err.getSQLState())) ...
else throw new ...
}


Удачи!