Alexander Dolgin
[Recent Entries][Archive][Friends][User Info]
Below are the 50 most recent journal entries recorded in the "Alexander Dolgin" journal:[<< Previous 50 entries]
11:14 pm
[Link] |
Амстердам и т.д. Это было уже месяца 3 назад, но лучше поздно чем никогда. В сентябре мы проехали/пролетели по маршруту Днепропетровск->Киев->Дюссельдорф->Амстердам->Дельфт->Роттердам->Антверпен->Брюге->Брюссель->Маастрихт->Дуйсбург->Дюссельдорф->Киев->Днепропетровск
Амстердам, который мы видели, был примероно таким. Выложить остальные фотографии никак не доходят руки.
Во время поездки записывал некоторые впечатления, поэтому дальше сумбурно по конспекту (думаю, что LJ этот будет жить дольше чем мой телефон, где это записанно сейчас) - то, что я заметил еще в Лондоне -- в Европе гораздо больше автомобилей-универсалов, чем у нас. Причем довольно дорогих брендов: Mersedes, BMW, Audi, Volvo etc. Я бы сказал, что количество универсалов и седанов вполне сопоставимо. - я как-то ожидал, что в Амстердаме будет много черных и арабов, но, по крайней мере, в исторической части Амстердама, где мы гуляли, преобладали белые лица. Натуральные блондины и блондинки. ВИдно, что производство деней они еще не начали аутсорсить, хотя говорят, что на окраинах картина совсем другая - в Амстердаме действительно много велосипедистов. Точнее будет сказать, что их ОЧЕНЬ МНОГО. Я слышал цифру, что более 500 тысяч велосипедов на 700 с чем-то тысяч жителей. Источник искать лень. Но на вид -- можно поверить. - съездили в Валендам. Когда-то это была рыбацкая деревушка, теперь они зарабатывают больше на туристах чем на рыбе, насколько я понимаю. Селедка там совершенно божественная. Рот сразу наполняется слюной, когда вспоминаешь этот молодой herring. Ж) А угрь... - удивило, насколько дороже всякие дурацкие веселые сувенирные футболки, по сравнению с США. В Европе в 4-5 раз дороже, чем в Штатах. Не то, чтобы это было важно, просто удивило ) - в Амстердаме за 4.5 дней пребывания ни разу не видел нищих (в Брюсселе видели группку бомжей на одной из центральных улиц в первый же вечер) - съел кексик в coffe shop'е -- не вставило, даже обидно - в центре Амстредама, в районе Дамрака куча мест с аргентинскими стейками. Были и вкусные. Разговорились с одим "аргентинцем". Он оказался из Челябинска Ж) - видел такси BMW X5, хорошо живут амстердамцы ) - приятно удивляет, как много хорошо сохранившихся СТАРЫХ домов. Это при том, что город стоит на воде. Астердамцы скромно напонимают, что каналов у них больше, чем в Венеции, и, в отличие от Венеции, каналы это не воняют. Про количество не скажу, но вони нет, это правда. Так вот, про старые дома. Возде квартала красных фонарей (AKA Red Light District) расположена старая церковь, котрой уже лет 700 или что-то такое. - кстати, не смотря на привлекательность для туристов, квартал красных фонарей и кофи шопы потихоньку прикрывают. - возле каналов местами стоят замечательные писуары. Их же можно увидень и на цетральной улице. Зато меньше воняет мочей в других местах на улице. Брюсспельцам стоило бы взять на заметку :) - погода первые 2 дня была премерзкой: время от времени начинал моросить дождь + промозглый ветер, но все равно -- понравилось. Кстати, наверное благодаря погоде, я подсел там на irish coffe.
Написал и понял, что и сейчас бы от такого кофе не отказался :)
to be continued ...
|
06:49 am
[Link] |
30 Первый старшноватый юбилей %)
|
02:34 pm
[Link] | Прислал резюме человек. Претендует на позицию программиста. Интересно, зачем упоминать о наличии водительких прав категорий А, В, С?!
Tags: job
|
08:34 am
[Link] |
Разные специальности Как-то наболело, давно хотел написать по впечатлениям от ЖЖ и окружающего мира.
Есть разные специалисты по варке супа. Есть те, кто хорошо ориентируются в методологиях варки супов, в их классификации, лучших практиках варки и т.д. Обычно от них множно услышать много действительно интересных и полезных вещей о супах. А есть те, кто умеет варить суп, но таких людей гораздо меньше.
|
08:33 am
[Link] |
Правдивая история о трех поросятах
|
11:56 pm
[Link] | Этот момент, лично мне, кажется, мягко говоря, спорным.
As of release 1.5, there is a third approach to implementing singletons. Simply make an enum type with one element:
// Enum singleton - the preferred approach
public enum Elvis {
INSTANCE;
public void leaveTheBuilding() { ... }
}
This approach is functionally equivalent to the public field approach, except that it is more concise, provides the serialization machinery for free, and provides an ironclad guarantee against multiple instantiation, even in the face of sophisticated serialization or reflection attacks. While this approach has yet to be widely adopted, a single-element enum type is the best way to implement a singleton.
Я бы скорее сделал, хотя бы, что-то такое:
public interface IElvis
{
...
}
public class DefaultElvis implements IElvis
{
private static IElvis Instance_ = new DefaultElvis();
...
public static IElvis getInstance() {return Instance_;}
}
Tags: effective java
|
10:21 pm
[Link] | Вчера пришла с Амазона Effective Java (2nd Edition). Интересно-интересно. Надо завести час в день по утрам на чтение технической литературы, а то список TOREAD стал непозволительно расти.
|
10:53 pm
[Link] | Кто бы мог подумать. Я всегда считал, что безграмотно пишу %)
|
10:48 am
[Link] |
вы конечно будете смеяться Нам нужен [sr] java developer, может даже два Используемые языки и технологии: Java SE, XML, SQL, JMS, RMI, Swing, JDBC, JMX, JavaMail. Совсем немного C++ и .NET Большой интересный проект, вменяемые люди вокруг :) Отпуск, праздники, больничный -- как положено. Гибкий график. Зарплаты хорошие :) Используем Eclipse, Subversion, JIRA, Confluence.
|
12:10 pm
[Link] |  Оказалось, что когда катался в субботу на косе, мимо праздновавших субботник приватбанковцев, нашлись добрые люди щелкнувшие из фоторужья
Tags: фото
|
10:28 am
[Link] |
велоотчет Первый раз выехал на покатушку сегодня утром, если, конечно не считать перегонку велосипеда со старой квартиры. Собирались проехать до Новомосковска, но я подустал и съехал раньше. Друзяки поехали дальше. :) Итого: 32.35км со средней скоростью 18.5км/ч.
|
09:35 am
[Link] |
Exception #7. Впечатления Сразу хочу сказать, что это превая из конференций Exception #N, на которой я был. Кроме всего прочего, как это часто бывает, негативные стороны сразу бросаются в глаза, а позитивные воспринимаются как должное. Сразу приятно удивило, что людей было много, причем далеко не все из них действительно используют Python/Ruby/Groovy в повседневной работе, а просто пришли послушать что-то интесное и расширить кругозор. Я так понял, что было около 300 человек. С другой стороны неприятно удивили некоторые организационные моменты: толкотня и неразбериха при получении бейджиков, начало не вовремя, некоторые доклады не укладывались в отведенное время, один докладчик просто закозлил выступление не смог прийти за заявленный доклад. Первый доклад, на который я пошел это был "Мастер-класс по Python: Метаклассы + Дескрипторы". Было довольно интересно и хорошо изложено. В это же время в другом зале Леша рассказывал про Smalltalk. Как я полагал, большую часть его доклада я слышал еще на наших посиделках за пивом, так что выбрал послушать что-то новое.
Следуюзщий доклад "По ту сторону ООП: PEAK-Rules и PyProtocols". Не понравилось. Очень скомкано и нечетко. В это же время должен был быть рассказ про Groovy, который я собирался посетить, но докладчик не пришел :(
Дальше был рассказ про Grails. Докладчик рассказывал живо и интересно, хотя и не всегда убедительно. На вопрос о произоводительнсти Grails/Groovy ответил, что такая как в java. На мой вопрос, декомпилировал ли он когда-нибудь Groovy байт кода ответил уклончиво. Для интересующихся Groovy:
result = 0
myMap = ["asdf": 1 , "qwer" : 2, "sdfg" : 10]= 0
println result
и тот же код после groovyc и jad
import groovy.lang.Binding;
import groovy.lang.Script;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
public class test1 extends Script
{
public test1()
{
}
public test1(Binding context)
{
super.setBinding(context);
}
public static void main(String args[])
{
Object aobj[] = {
test1.class, args
};
ScriptBytecodeAdapter.invokeMethod(org.codehaus.groovy.runtime.InvokerHelper.class, "runScript", ((Object) (aobj)));
}
public Object run()
{
java.util.Map map = ScriptBytecodeAdapter.createMap(new Object[] {
"asdf", new Integer(1), "qwer", new Integer(2), "sdfg", new Integer(10)
});
java.util.Map _tmp = map;
ScriptBytecodeAdapter.setGroovyObjectProperty(map, this, "myMap");
Integer integer = new Integer(0);
Integer _tmp1 = integer;
ScriptBytecodeAdapter.setGroovyObjectProperty(integer, this, "result");
Object aobj[] = {
ScriptBytecodeAdapter.getGroovyObjectProperty(this, "result")
};
return ScriptBytecodeAdapter.invokeMethod(this, "println", ((Object) (aobj)));
}
public static Long __timeStamp;
static
{
Long long1;
Long long2;
long1 = new Long(0x118b2c76d19L);
Long _tmp = long1;
__timeStamp = (Long)long1;
long2 = new Long(0x118b2c76d19L);
Long _tmp1 = long2;
__timeStamp = (Long)long2;
}
}
Что-то мне подсказывает, что производительность все-таки будет отличаться, от обычного Java кода. Скорее всего, как раз это вполне допустимо, так как ядро (hibernate, spring) написано на java, а на groovy совсем немного кода. Другое дело, что ответ про производительность был неправильным.
Дальше был рассказ о том Как заставить свою лень работать. Довольно забавно: отдохнули, посмеялись. Краткое содержание: чтобы попки были чистые и сухие, надо их чистить и сушить.
После этого мы ( leshau, его сотрудник Игорь и я) решили, что есть все-таки очень хочется, а обеденного перерыва нет и не предвидится, поэтому надо ковать счастье своими руками. Размер очереди в Пузату Хату сразу убедил нас пойти искать счастья в другом месте. Нашлось оно в Эль-Патио, наколько я помню название.
Вернувшись, поболтал немного в коридоре с Сергеем, которого не видел уже много лет. Он пытался "продать" идею использования .NET, но я не повелся
Последний докалад, на который мы сходили был про Jython и JRuby. Сложные впечатления. Докладчик был сотрудником платиногов спонсора. В принципе, вполне целостный и хорошо подготовленный доклад, но рассказ был как-то "без огонька". Видно, что человек этого [почти] никогда не использовал. Похоже, что к нему подошло начальство и сказало, что НАДО.
|
11:34 am
[Link] |
Приват24->Skype В Приват24 появилась возможность купить ваучеры пополнения для Skype номиналом $5 и $25.
|
10:33 pm
[Link] |
XSLT Возвращаясь к вопросу про XSLT.
( итого )
Зовется это все из XSLT Ant task. Довольно удобно получилось.
Tags: work
|
11:56 pm
[Link] |
XSLT или XSLM? Есть сложные xml документы произвольного вида, являющиеся конфигурацией к нектоторой системе. Иногда хочется закомментировать какие-то элементы или поменять значения аттрибутов. Что-то типа закомментировать нод, которий соответствует шаблону ProcessName/ComponentList/Component[@name='My component'] а аттрибуту enabled в ноде ProcessName/FeatureList/Feature[@name="My feature"] поменять значение с true на false.
Первая задача решилась следующей трансформацией
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="ProcessName/ComponentList/Component[@name='My component']">
<xsl:text disable-output-escaping = "yes"><!--</xsl:text>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
<xsl:text disable-output-escaping = "yes">--></xsl:text>
</xsl:template>
<xsl:template match="@*|node()" >
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Вторую (изменение значения аттрибута) не осилил сходу
Кажется довольно ественным написать XSLT для этого. Но по тому, как тяжело это дается, начинает казаться, что выбрал не то средство. Может это действительно неправильный путь и нужен язык не для трансформации (XSLT), а для модификации (XSLM)? Правда такого нет, вроде, к сожалению. Или это я неправильно XSLT готовлю? В принципе XSLT для меня не панацея. Хотелось бы, в идеале указывать, что мне нужно именно в виде узел такой-то (XPath) -> операция с ним (скажем: удалить/закомментировать/добавить/изменить значение/вставить под-дерево). В какую сторону смотреть?
|
04:01 pm
[Link] | muwlgr вчера порадовал поговоркой: "Кто говорит не думая, то умирает не болея".
|
08:40 pm
[Link] |
читабельность кода Метод, в который надо модифицировать сейчас, длиной жалкие 244 строчки. Мне хочется кого-нибудь убить %)
Tags: java, work
|
11:38 am
[Link] |
В Киеве Собираемся на JUG
Да, поиграл в настольный хоккей впервые за лет 15-20. Как же это круто!! :)
|
05:03 pm
[Link] |
ананас Интернет великая сила. За пару минут нашли, как чистить ананас и сделали с нмм ЭТО :)
update: Искал совершенно банально: сходил сюда, а дальше по первой ссылке
|
01:26 pm
[Link] |
вопросы и вопрошающие Ввязался в неслабый "хохлосрач". Линк давать бесполезно, т.к. "под замком".
Обсуждали вопросы презеденту. Привел ссылку и сказал, что особенно понравился второй абзац. Судя по реакции, кто-то из вменяемых знакомых таки голосовал за эти вопросы. Неприятно удивлен.
|
10:33 pm
[Link] | Довольно сложно сформулировать, что таки хотел сказать. Скорее мысли вслух. Все чаще последнее время сталкиваюсь с тем, что норма она может быть разная (да, да, я еще немного помню университетский курс математи и что норма это дело такое -- как определишь так и будет). Так вот, в жизни так же.
Один пример. В компании где я работаю заявлен "свободный" график работы. Когда я начинал работать здесь, на заре 2001 года, это подразумевало приход в 9-10 утра. Был один человек, который приходил на 12 и это казалось очень поздно. Однако же, каких-то четких ограничений никогда не было. Отрабатывай свои 8 часов или, точнее, 40 в неделю, при этом делай это нормально, тогда все хорошо. Но формализации-то нет, свободный и все тут. С годами появилась проблема, что кто-то начал приходить на 4-5 вечера, а этот кто-то был одним из ключевых разработчиков, к которому у других разработчиков и тестеров куча вопросов. Кто-то вообще приходил в 9-10 вечера временами. Просто неуловимый мститель :). И, как бы, все правильно, график-то свободный, почему бы не работать, когда удобно. Вобщем-то, в итоге решили "прекрутить гайки". Приходить не позже 14.00. Пока "осиливают" не все :(.
Вот еще. Похожая ситуация со свободной формой одежды. Но, если не кривить душей, то под свободной формой одежды, в данном случае, подразумевались джинсы и футболка или рубашка. По крайней мере, на человека, пришедшего в костюме, смотрели удивленно, а люди, которые ходят на работе в спортивных штанах, хм-м, даже не знаю, как-то не нравятся. Хорошо хоть, в отличие от предыдущего пункта, это на результаты работы не сказывается.
Еще один пример, по мотивам недавнего обсуждения с dolsi. Уж не помню с чего началось, кажется, обсуждали покупку Суп'ом ЖивогоЖурнала. Так вот. Можно ли выработать точные формализованые правила, что можно и что нельзя писать в ЖЖ. Справедливо для любого ресурса, впрочем. Как выработать их так, чтобы исключить субъектевизм проверяющего. Скажем, чтобы было четко понятно, сочтет это человек из abuse team произведением искусства или порнографией. Я очень сомневаюсь в том, что реально такие правила выработать. Т.е. остается полагаться на какие-то общие нормы, которых люди придерживаются. Хотя, если честно, с учетом, скажем, предыдущих примеров, рассчитывать на то, что все поймут более или менее одинакого, что же есть нормально, а что нет -- более чем наивно.
Фух.
|
10:05 am
[Link] | Купил мобильный интернет от УкртелекомаU'tel. Вроде неплохо. Только трафик считается - это минус, конечно
|
02:20 pm
[Link] |
bulk inserts to RDBMS via JDBC Пытаюсь разыскать БД, которая дает высокую скорость при массивных INSERTs. Специфика такова, что в приложении после каждого INSERT идет commit. Понятно, что если вставлять пачками и коммитить реже, то скорость будет выше, но это потребует глобальных переделок, да и не совсем отражает то, как система должна работать.
Задача сама по себе простая: есть табличка на несколько десятков полей, знай себе добавляй новые строки. Только как бы это делать быстро? Те варианты, которые дают хорошие результаты, обычно хотят взямен пожертвовать буквой D в аббревиатура ACID. Например Oracle TimesTen с отключенными Durable Commits дает очень хорошие результаты, но не гарантирует, что данные будут сохранены при сбое. Реализуется это просто: данные пишутся в память и лишь, время от времени, сбрасываются на диск. Это недопустимо :(. Неплохие результаты у HSQLdb, НО иногда она "сходит с ума" начитая "отедать" 100% CPU на одном из процессоров и работать крайне медленно. Значит тоже не подходит.
Написал специально тест, который гоняю с разными БД:
( вот )
На моем железе дает следующие результаты:
| DBMS | msg/sec |
| TimesTen 7 (with Durable Commits) | 34 |
| TimesTen 7 (without Durable Commits) | 14000 | | MSSQL2005 | 1105 |
| MySQL5.0 | 606 |
| PostgreSQL 8.1 | 1095 |
| Oracle 9i | 685 |
Т.е. вполне реально не меняя архитектуру системы добиться ~1100 msg/sec. При этом нужно порядка 4000 (на таком железе). Какую БД стоит еще попробовать? БД должна поддерживать SQL и доступ через JDBC. Или какие магические пассы применить?
|
05:46 pm
[Link] |
tt Из документации к одной базе данных:
In JDBC, the native error code and message can be retrieved as shown in this
example:
private static void printSQLExceptions(SQLException e)
{
while (e != null)
{
System.out.println("SQLState: " + e.getSQLState());
System.out.println("Message : " + e.getMessage());
System.out.println("Vendor : " + e.getErrorCode());
e.printStackTrace();
e = e.getNextException();
System.out.println("");
}
e.printStackTrace();
}
Почему они считают, что e.getErrorCode() вернет Vendor'a, не говоря уже о NPE, котоое поймают после while!?
Хочется кого-нибудь убить
|
01:08 am
[Link] | Очень тянет написать о коллегах. О разных. Как-то накопилось. Останавливает только то, что у большинства, похоже, есть ЖЖ. А мнение, в данном случае, хотелось высказать без того, чтобы описанные люди его увидели. На резонный вопрос: "почему?", есть просто ответ: "некоторых людей не переделаешь, но обидиться могут при этом". Хотя, раз уж накопилось.... Поэтому не как менеджер части этих людей и некоторых других, а просто как сторонний наблюдатель. Поэтому очень осторожно :)
...
Только что написал, а потом стер комментарии по поводу 9 человек с которыми работаю :) Споткнулся на человеке, про которого подумалось, классый парень и программист, а еще и пиво с ним хорошо попить. И еще подумал, что не стоит выплескивать какое-то недовольство коллегами в ЖЖ, а уж тем более теми из них, кого, возможно, можно назвать друзьями.
Если что-то не так, то можно обсудить лично. Э-э-вот, как говорил декан ФПМ ДНУ.
|
11:26 am
[Link] |
InvocationHandler Натолкнулся на типичную ошибку реализации java.lang.reflect.InvocationHandler.
Чаще всего код выглядит как
class FooException extends Exception
{
...
}
interface IFoo
{
void foo() throw FooException;
}
static class Foo implements IFoo
{
public void foo() throw FooException
{
...
}
}
....
final IFoo impl = new Foo();
IFoo foo = (IFoo) Proxy.newProxyInstance(IFoo.class.getClassLoader(), new Class[]{IFoo.class}, new InvocationHandler()
{
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
// do something before
Object result = method.invoke(impl, args);
// do something after
return result;
}
});
Однако тут есть некоторые проблемы, возможно, незаметные на первый взгляд. Проявятся они, если реализация IFoo, которой делегируется выполнение выкинет исключение. Во-первых, тогда не отработает код, который должен выполнятся после Object result = method.invoke(impl, args); Во-вторых, код, который пользуется экземпляром IFoo, "завернутым в прокси" получит InvocationTargetException вместо FooException. Вобщем, совсем не то, чего бы хотелось. Соответстсвенно, реализацию InvocationHandler#invoke надо переписать как
Object result = null;
try
{
result = method.invoke(impl, args);
}
catch (InvocationTargetException e)
{
throw e.getTargetException();
}
finally
{
// do something after
}
return result;
или, если для кода из части "do something after" не нужен результат выполнения метода, то
try
{
return method.invoke(impl, args);
}
catch (InvocationTargetException e)
{
throw e.getTargetException();
}
finally
{
// do something after
}
Tags: java
|
08:30 am
[Link] |
Professional Java Development with the Spring Framework Продолжаю почитывать начатую в отпуске книжку по Spring Framework. Да, сила. Как фреймворк, так и сама книжка. Но некоторые примеры кода оттуда, мягко говоря, поражают.
...
java.util.Date dateMade = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
dateMade = df.parse("2004-06-01");
} catch (ParseException e) {
throw new InvalidDataAccessApiUsageException(e.getMessage(), e);
}
...
Надеюсь, что автора этого примера из книги к разработке самого фреймворка не пускали.
|
12:16 pm
[Link] |
brokereach Пару дней назад мы сделали это :))
InfoReach Inc, Announces Launch of Cutting Edge Web-Based Execution Management System
|
01:37 am
[Link] | Кстати, не смотря на скепсис новый инструмент подрос за последние дни.
|
01:31 am
[Link] |
GTalk vs Skype Заметил недавно, что в составе Google Pack больше нет Google Talk, зато есть Skype. При всех достоинствах последнего, как то SkypeOut, SkypeIn, conferencing, call forwarding, video and so on мне как-то мил был и GTalk. Удобно, что маленький, простенький и чат хранится на сервере. Будет обидно, если Google. просто выкинет это свое детище на свалку истории.
|
02:28 pm
[Link] |
SUNW->JAVA У Sun Microsystems со вторника сменится tiker symbol с SUNW на JAVA. В голову приходят несколько разных комментариев: - как вы яхту назовете, так она и поплывет - а вы друзья, как не садитесь -- все в музыканты не годитесь - Ослов фамилию сменил -/ Алмазовым назвался, /Но,в основном,ослом он был/ Ослом он и остался...
Tags: java
|
11:21 am
[Link] |
Ant радует. Есть код
<property name="patches" value="patches.txt"/> ... <jar destfile="xxxPatches.jar" compress="false" update="true" basedir="${classes}" includesfile="${patches}"/>
В файле patches.txt обычно написано что-то типа:
com.mycompany.mypackage.myanotherpackage.MyClass1.class com.mycompany.mypackage.myanotherpackage.MyClass1$*.class com.mycompany.mypackage.myanotherpackage.MyClass2.class com.mycompany.mypackage.myanotherpackage.MyClass2$*.class
Классы MyClass1 и MyClass2 вместе со своими inner classes попадают в xxxPatches.jar. Но, если вдруг файл patches.txt пустой, то в jar попадают ВСЕ файлы, которые только есть в ${classes}. Странная логика, все-таки.
Tags: ant, java
|
04:46 pm
[Link] |
svnClientAdapter Провозился вчера пол-дня со своим скриптом на BeanShell, для автоматического коммита всех изменнений с клиентских инсталляций в SVN репозиторий. На тестовых данных все работало, а на реальных -- хоть ты тресни. Баг оказался в самом svnClientAdapter. Собрал себе пофикшенную версию и написал на maillist. Хочется верить, что исправят тоже когда-нибудь.
Tags: java, svn, work
|
04:54 pm
[Link] | Случайно натолкнулся на старое письмо:
... Если добавить событие, а потом изменить его, то изменяется только текстовое поле NA_CHTO, а HZ1 и HZ2 -- нет. ...
Хорошие имена мы давали переменным.
В том же "программном комплексе" в одной из программ была кнопа "Жопа", по нажатию на которую делался бэкап. Вобщем, студенты развлекались :)
|
09:24 pm
[Link] |
windows vista Вчера минут 10 поигрался с windows vista. Основное впечатление она неовообразимо тормозит ей совершенно не хватает 512Мб для хоть сколь-нибудь приемлемой работы.
|
08:24 pm
[Link] | Вчера (если совсем точно, то сегодня) ночью познакомились с программистом из Мексики. Его зовут Juses. Довольно неплохо говорит по-русски.
|
12:50 am
[Link] | Что-то спать не тянет. Напишу о том, что давно задумывался. При нынешнем перегретом рынке труда для программистов странно наблюдать такие вещи, например. Мне казалось, что хорошая техника для работы один из самых лучших по соотношению цена/качества способов привлечения и удержания программистов.
Еще, может это я такой, но даже когда были мысли поискать себе работу для профилактики, то я не посысал резюме в компании в объявлениях которых не указан уровень ЗП. Может быть это и не так, но мне все время кажется, что люди таким образом пытаются либо купить специалиста подешевле, либо избежать/оттянуть подтягивания ЗП своих сотрудников до уровня рынка. Вобщем, я за прозрачный рынок.
О, еще по поводу прозрачности и честности :). Забавляет объявление от Запорожской, насколько я понимаю, компании на job.dp.ua. Довольно вменяемо составленное, но без указания, что это Зпорожье.
О, да, еще задалбывает список "VIP вакансий" на job.dp.ua, который на моем лептопе занимает примерно 2 экрана. Экслюзив, ...!
Кстати, думаю, что постепенно заканчивается сезон активного роста ЗП в нашей отрасли. Не все коту масленица.
Tags: job
|
11:17 pm
[Link] |
цитаты 1. Девушка об общем знакомом: "Его лучше не дразнить. Расшатаная психика и хорошо поставленый хук правой"
2. Парень, так задумчиво, о танцующей излишне полной и страшненькой девушке: "На ее месте, я бы напирал на духовность".
|
01:50 pm
[Link] |
культурный шок Заехали вчера ночью в Индиану. В каком-то небольшом городке зашли в местный бар. Товарищ заказал себе пиво, я рюмку водки. Следующее пиво и водку бармен (он же хозяин, похоже) налил нам бесплатно и выпил с нами, рассказывая что когда-то работал вместе с русскими или у русских, я не совсем понял, честно говоря.
|
11:43 am
[Link] |
НГ 29 декабря поехали в Висконсин - покататься на лыжах и встретить НГ.
Встал на лыжи первый раз. Получалось плохо. Понравилось.
Последние, наверное, 5 "новых годов" встречал в одной и той же компании. Этот был, как бы, исключением. Довольно интересно.
Надежды подтянуть разговорный английский тают. Почти все вокруг меня говорят на русском.
Много всяких мелочей о которых забыл.
Итогов года, как таковых, нету, к сожалению. Хотя они могли быть. Где-то так.
|
07:21 am
[Link] |
завалило спамом Для интереса в течение примерно 23 часов не удалял спамовые сообщения. Итого, в папке Spam 102 письма.
|
02:56 am
[Link] |
в общественном парижском туалете есть надписи на русском языке За часа несколько часов прогулок по Чикаго слышал 3 раза русскую речь и один или два украинскую
|
07:50 am
[Link] | Уже неделя, как понаехал. Неплохо тут. Впечатленя разные и несистематизированые. Да, небоскребы - это круто :)
|
05:33 pm
[Link] |
кадровый голод Позавчера вечером увидел, что на brainbench'е появился тест по Java 5. Сдал, причем неплохо, но довольно умеренно, что-то вроде 4.4 или 4.5. После этого пришло сходу два письма от HR каких-то киевских компаний. Пишут, что нашли через BrainBench и зовут на собеседование. Ответил "К сожалению, в ближайшее время я не собираюсь менять работу."
Надо сказать, не знал, что результаты тестов на BB кто-то так активно мониторит
Tags: java, job
|
12:31 pm
[Link] | Много знакомых задач, но есть чем себя занять :)
http://braingames.ru
Tags: link
|
01:11 am
[Link] |
отнять и поделить ООН предлагает реорганизовать управление интернетом Делегаты саммита ООН: английского языка недостаточно
Это вообще умиляет: Другие участники поспешили добавить еще жалобы: что американские производители ПО недостаточно быстро поддерживают другие языки и что в вебе все еще явно преобладает английский. Гамид Шариари, представитель делегации Ирана на форуме ООН Internet Governance Forum, обвинил Microsoft в выпуске программного обеспечения, которое «с большим трудом работает на моих родных языках».
Tags: link
|
11:14 pm
[Link] |
irregular verbs Интересно про неправильные глаголы Мне очень понравился способ №4. «Правильный». Список глаголов
Tags: english
|
10:37 pm
[Link] |
wtf Недавно провел около часа, разбираясь в странном поведении нашего приложения. По логам ничего не было видно. Оказалось, что все уткнулось в код
while(true)
{
try
{
// ... RMI call
}
catch(RemoteException)
{
// ... тут обнуляется парочка переменных и все, никакого логгирования
}
}
Что удивило: этот код написал один из наиболее вменяемых коллег. Вот уж действительно, даже у умных людей бывают помутнения рассудка.
Tags: java, work
|
10:06 pm
[Link] |
Double.MIN_VALUE Очень не порадовало, что java.lang.Double.MIN_VALUE имеет совершенно другой смысл, нежели эта же константа в других потомках java.lang.Number, из java.lang.
Integer:
/**
* A constant holding the minimum value an int can
* have, -231.
*/
public static final int MIN_VALUE = 0x80000000;
Double:
/**
* A constant holding the smallest positive nonzero value of type
* double, 2-1074. It is equal to the
* hexadecimal floating-point literal
* 0x0.0000000000001P-1022 and also equal to
* Double.longBitsToDouble(0x1L).
*/
public static final double MIN_VALUE = 4.9e-324; // 0x0.0000000000001P-1022
Tags: java
|
11:15 am
[Link] | К вопросу.
Определения из Java Concurrency in Practice: Lock-based algorithms are at risk for a number of liveness failures. If a thread holding a lock is delayed due to blocking I/O, page fault, or other delay, it is possible that no thread will make progress. An algorithm is called nonblocking if failure or suspension of any thread cannot cause failure or suspension of another thread; an algorithm is called lock-free if, at each step, some thread can make progress. Algorithms that use CAS exclusively for coordination between threads can, if constructed correctly, be both nonblocking and lock-free.
Tags: concurrency, java
|
[<< Previous 50 entries] |