Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения

воскресенье, 4 марта 2012 г.

Сердцем чую, 32-битная jvm подводит

Решил выделить чуть больше памяти под jvm, чтобы sbt пошустрее работала. Максимальный размер data segment установлен в 700Mb. Соответственно, указание java выделять под heap больше памяти (параметр -Xmx) кладет ее в корку. Не вопрос, увеличим размер, разрешим выделять памяти побольше. Однако, увеличив параметр ядра kern.maxdsiz до 1200Mb, с удивлением обнаружил что jvm вообще отказывается стартовать, будто ей теперь все время не хватает памяти, при любом запрашиваемом размере хипа. Причем свободной памяти достаточно.
Уже который раз себе говорю, что как разгребусь с рутиной, обязательно назад переползу под 64-битную версию, чтобы впринципе устранить проблемы с адресацией, но все руки не доходят. Жаль только, что в старый ноут больше 4 гиг не влезет. В магазинах ноутовых планок ddr2 по 4 гига не нашел, а было бы неплохо.

UPDATE:
Оказалось, что большой размер data size приводит к тому, что java не может выделить mmap нужного размера, и валится в процессе инициализации vm (нашел перед тем, как самому расчехлить kdump). Так что размер своего data size прийдется закатать обратно.

пятница, 16 сентября 2011 г.

How to design classes, книжеца

Случайно набрел в еженедельном дайджесте ДОУ на книжку How to Design Classesю Draft: Feb 20, 2011 (pdf). Все авторы известны по, открытой в свободном доступе, образовательной книжке "How to Design Program" (htdp), да одного из авторов (Shiriram Krishnamurthi) помню по книжке "Programming Languages. Application and Interpretation".
Думаю, что полистать будет интересно и может быть даже полезно. Примере на языках scheme и java, дохрена диаграмм классов.

понедельник, 18 апреля 2011 г.

Нужная книга

Для тех, кто хоть как-то касается языка Java (Closure, Scala, Groovy), книжка Брайана Гоетца "Java concurrency in practice" должна на время стать одной из настольных книг.
Достаточно широко охватывает проблемы, связанные с многопоточностью в Яве. Показывает как делать нужно, как не нужно, и чем это грозит (какой раскаленный и шершавый вам попадет в одно место, если налажаете). На ночь читать не рекомендую, потом будут мучать кошмары.

понедельник, 17 января 2011 г.

DSLs in Action

На бывшей гига-сами-знаете-где неожиданно появилась книжка DSLs in Action, by D.Ghosh. Неожиданно, потому что не ожидал ее увидеть там в скором времени, хотя и периодически искал. Жаль, что пока нет времени просмотреть более пристально.

UPD: Рекомендую брать ту, что поменьше размером (шесть с половиной метров).

воскресенье, 14 февраля 2010 г.

"The intention of saying Java is strongly typed is to give the impression of robustness"

Смотрю статью на википедии о языке Ява: Typing discipline: Static, strong, safe, ...

Java SE 6 используется полным ходом, уже скоро на подходе SE 7, а статьи 11-летней давности (by Harold Thimbleby), похоже, актуальны и по сей день.

Java is strongly typed, but the type correctness of a Java program is not known at compile time. In other words, Java is not statically typed (like ML). The intention of saying Java is strongly typed is to give the impression of robustness. Type robustness would be achieved by strong static typing, where the compiler detects type errors before a program is run. Like Java, both BASIC and LISP are strongly typed, but neither are statically typed; their type systems do not seem to be what the Java hype seems to imply! Our discussion, above, of the duck and lame duck's equals method illustrated some problems of Java not being statically typed.

The following example demonstrates Java's lack of strong static typing; it involves creating an Object and casting it to a Character. This is statically correct (i.e., it compiles without error), but at run time it throws an error (a ClassCastException), because Objects are not Characters. (Sophisticated compilers might detect the problem (though whether they -- and they alone -- should is an interesting question of compatibility), but they can easily be defeated by passing an Object as a parameter to a method expecting a Character: the result will be the same.)
Character c = (Character) new Object();
// always causes runtime java.lang.ClassCastException
Apparently the assignment is not questionable, for
"Java prevents incompatible assignments by forbidding anything questionable." p121

понедельник, 26 октября 2009 г.

Ужасное настроение

Просматриваю книгу Брюса Эккеля "Thinking in Java". После языка Python чтение вгоняет в невыносимую тоску, просто жуткое зрелище. Бедность и корявость языка не компенсирует даже богатая стандартная библиотека. Не позавидую себе, если прийдется на этом программировать. В голову пришла мысль: Java это Python, переболевший оспой и полиомиелитом. Даже преимущества статической типизации бледнеют.

Но прочитал пока не так много, надеюсь, что дальше будет слегка получше.

Кстати говоря, начинал читать перевод книги. Так вот, лучше читайте оригинал. Я не подмечал, есть ли там огрехи перевода, но примеры исходных текстов исковерканы (местами пропущены точки и двоеточия).