?

Log in

[sticky post] До свиданья, CyberForum!

Внезапно.

После нескольких лет моего активного участия в конференции CyberForum.ru, в части, посвященной Java, когда я каждый день совершенно бескорыстно помогал разным людям, администратор форума вдруг пришел к выводу, что я занимаюсь агрессивной рекламой собственных сайтов. На том основании, что на форуме больше 1000 сообщений со ссылкой на сайт skipy.ru. Чуть не половину этих ссылок дал не я, а посетители моего сайта, но это не имеет значения. В результате во всех ссылках имя домена было заменено на *********** (более того, была настроена автоматическая замена skipy на ******** даже в личных сообщениях), а я был занесен в злостные нарушители и лишен модераторского статуса, который мне по собственной инициативе дал ЭТОТ ЖЕ ЧЕЛОВЕК, причем МЕНЬШЕ ЧЕМ ЗА МЕСЯЦ до описываемых событий. Когда я пытался объяснить, что это вообще-то ссылки на технические статьи, кроме них на сайте ничего нет и что мне нет необходимости раскручиваться, ибо у меня 10К уникальных посетителей в месяц, мне был задан вопрос "Это ж сколько форумов ты заспамил своими ссылками?"

В данной ситуации я не считаю для себя возможным продолжать участие в этой конференции. Всех, кто хочет продолжать задавать мне вопросы и получать консультации, прошу на http://javatalks.ru/. Здесь по крайней мере администрация адекватная. Да и люди хорошие.
Теперь уже в этой теме прошу писать всех, кто хотел бы что-то обсудить – статьи на сайте или же просто какие-то интересные/актуальные вопросы. По результатам сбора пожеланий опять-таки будут созданы темы для обсуждения. Или же статьи, что тоже реально.

Я был бы рад, если бы анонимные комментарии и вопросы были подписаны – проще отвечать.
Наткнулся на такой вопрос. Какая принципиальная разница между следующими фрагментами кода?

MyObject o;
o = new MyObject();
o = new MyObject();

MyObject o;
o = new MyObject();
o = null;
o = new MyObject();

Я в первый момент сказал – никакой. Оказалось, разница есть...Collapse )

Забавно, раньше не задумывался над такой тонкостью.

Источник: http://habrahabr.ru/post/132500/
Очень часто встречается в последнее время проблема: пишут объект в поток, меняют, пишут снова – а на выходе при чтении получают два одинаковых объекта. Первых. Изменения, сделанные перед второй записью, не передаются. Что делать?Collapse )

Резюме. При необходимости повторной записи объекта в ObjectOutputStream самым простым и надежным решением является создание нового экземпляра этого объекта. Использовать метод ObjectOutputStream.reset() для переинициализации потока можно только тогда, когда вы хорошо понимаете, что делаете и зачем.
Я решил один раз высказать всё, что я думаю по поводу использования Apache Maven, ибо устал повторяться в регулярных обсуждениях этого вопроса. Плюсы описывать не буду, они всем известны.

Итак, Apache Maven.Collapse )

Итого.

maven имеет нишу, в которой он хорошо работает. Это типовые java-проекты, динамично развивающиеся, использующие последние версии распространенных библиотек. В этих случаях maven способен дать преимущества.

И в то же время есть проекты, в которых maven способен принести существенно больше проблем, нежели пользы. Это проекты сложной структуры, с жизненным циклом сборки, отличающимся от стандартного, использующие нестандартные библиотеки, native-инструментарий, включающие native-код. В общем, любые проекты, требующие выходы за жесткие рамки maven-овского «как», что немедленно оборачивается головной болью.

Таким образом, стандартное мнение «используй maven и будет тебе счастье», высказанное до выяснения всех подробностей проекта, свидетельствует прежде всего о недостатке опыта. Автор такого высказывания забывает – или же просто не предполагает! – что существуют нетиповые проекты. Впрочем, он не одинок – в одной компании с ним находятся и разработчики самого maven-а.
В последнее время неоднократно всплывает тема загрузки ресурсов. Вкратце: «Я загружаю картинку из c:\work\image.gif, а когда запускаю программу из jar-файла/на другом компьютере – она не грузится. Что делать?».

Между тем, ничего сложного тут нет. Надо только понимать принципыCollapse )

Вот, где-то так. Вопросы? Комментарии?
Очередная статья родилась. Времени на нее я потратил чуть не четыре месяца – было много работы, да и статья обширная, иллюстративных примеров много потребовалось. Статья посвящена внутреннему устройству GUI в Java, а точнее в Swing, ибо AWT, во-первых, устарел, во-вторых, устроен немного по-другому.

В общем, сама статья выложена: http://www.skipy.ru/technics/gui_int.html. Здесь будем ее обсуждать.
Еще одна статья, практически из серии «ликбез»: «Вавилонское столпотворение. Часть 4. Проза жизни: компиляция и вывод в консоль». Название в заголовке не поместилось. :)

Статья тут: http://www.skipy.ru/technics/encodings_console_comp.html. В этой теме – обсуждение.
Появилась новая статья. А с ней - и новый раздел. "Архитектура". Давно хотел начать писать в этом направлении, да все никак не складывалось. Была одна статья о синглтонах, но больше про технику реализации.

И вот, наконец, сложилось. Статья о принципах модульного проектирования. Как сделать так, чтобы модуль можно было переиспользовать. Читайте: http://www.skipy.ru/architecture/module_design.html.

Обсуждение – в этой теме.
Еще одна статья вышла. На этот раз - про синхронизацию пользовательского интерфейса. Про выполнение длительных задач так, чтобы не блокировать весь интерфейс. В последнее время что-то количество вопросов на эту тему превысило все разумные пределы.

В общем, статья тут: http://www.skipy.ru/technics/gui_sync.html. Читайте!

Все комментарии можно оставлять в этой теме.

Latest Month

May 2014
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by chasethestars