?

Log in

Previous Entry

Теперь уже в этой теме прошу писать всех, кто хотел бы что-то обсудить – статьи на сайте или же просто какие-то интересные/актуальные вопросы. По результатам сбора пожеланий опять-таки будут созданы темы для обсуждения. Или же статьи, что тоже реально.

Я был бы рад, если бы анонимные комментарии и вопросы были подписаны – проще отвечать.

Comments

( 123 comments — Leave a comment )
Page 2 of 3
<<[1] [2] [3] >>
kefirfromperm
Dec. 29th, 2010 12:06 pm (UTC)
Евгений, а почему бы не добавить к статьям на сайте кнопки "Мне нравится!"?
Хотя бы, при помощи яндекса: http://api.yandex.ru/share/
(Anonymous)
Jan. 6th, 2011 06:54 am (UTC)
Успехов всем!
Желаю вам много хороших статей и обзоров.
skipy_ru
Jan. 6th, 2011 08:53 pm (UTC)
Re: Успехов всем!
Спасибо! Буду стараться!
(Anonymous)
Jan. 6th, 2011 12:52 pm (UTC)
По поводу содержания статей..
Добрый вечер, Евгений! Большое Вам человеческое спасибо за обзоры и статьи, которые Вы публикуете на этом сайте. Многие вещи очень полезны! Хотелось бы уточнить каким образом публикуются статьи, проходят ли они предварительную корректировку? Это не попытка указать на ошибки, это просто пожелание, чтобы Ваши статьи читались и воспринимались легче.. Пишу это пожелание, поскольку мне нравится Ваша инициатива и просто хочется иметь и советовать коллегам Ваш сайт для прочтения. С уважением, Роллан.
skipy_ru
Jan. 6th, 2011 09:10 pm (UTC)
Re: По поводу содержания статей..
Добрый день!

Вы, честно сказать, поставили меня в тупик словом "корректировка". Я не совсем понимаю, что именно надо корректировать, и зачем. А как пишутся статьи - расскажу, это не секрет.

Итак. Для начала выбирается тема. Статья - это не абы что, она должна быть о чем-то, причем о том, что интересно и полезно. Сейчас у меня в списке порядка 20 различных тем, по которым, я считаю, стоит что-то написать.

Далее. Определяется круг вопросов, которые я затрону. Чаще всего темы, на которые я пишу, существенно более обширны, чем вместится в одну статью. Кроме того, существует порог восприятия информации, и если ее больше - нужно разделять материал на несколько статей.

Ну и дальше - я начинаю писать. Читать. Исправлять. Переписывать. Писать иллюстративные примеры. В процессе обнаруживается что-то, чего я не знал, но что стоит непременно включить в статью. Иногда через неделю, а то и месяц работы начинаешь понимать, что пишешь всё не то. Выбрасываешь и начинаешь сначала. Этот процесс самый долгий.

Когда статья уже практически написана - начинается работа над формулировками. Я печатаю ее целиком и читаю не с экрана, а с бумаги, причем желательно даже не сидя. Наилучший вариант - на ходу, по дороге с работы. Это позволяет выйти из контекста, в котором я эту статью пишу. И часто оказывается, что вот тут коряво, вот тут - непонятно, что я имел в виду, вот тут - нет явной связи с предыдущим текстом. Скажем, статью о практике XP (Экстремальное программирование – практика, психология и ошибки) я печатал для вычитки 18 раз. Учитывая, что вычитывал я ее не каждый день - только на окончательную правку ушло больше месяца. А вообще я ее писал почти два года, и несколько первых вариантов похоронил.

И вот только после этого я выкладываю статью на боевой сервер.

Так что, как видите, корректировку статья проходят. И такую работу я проделываю именно потому, что хочу, чтобы статьи читались и воспринимались максимально просто. Если Вы считаете, что где-то я пишу все-таки сложно - это вопрос для обсуждения. Я допускаю, что первые статьи были несколько скомканными, по крайней мере, не настолько развернутыми, как сейчас. Все-таки почти за семь лет я уже набил руку.

С уважением,
Евгений aka Skipy
(Anonymous)
Feb. 3rd, 2011 02:26 am (UTC)
Обопщенные классы
Евгений здравствуйте еще раз спасибо за ваши статьи меня зовут Константин у меня к вам просьба написать статью об обопщенных классах их особеностях, что это такое и с чем его едят заранее спасибо.
skipy_ru
Feb. 14th, 2011 01:44 pm (UTC)
Re: Обопщенные классы
Добрый день, Константин.

В планах есть, и давно. Но вот когда руки дойдут... У нас code freeze date - 28 февраля, после 9 месяцев работы, так что мне сейчас не до статей.
Re: Обопщенные классы - (Anonymous) - Feb. 16th, 2011 04:46 am (UTC) - Expand
(Anonymous)
Mar. 10th, 2011 02:24 pm (UTC)
пожелание
Очень-очень хотелось бы статью про обработку xml.
Непонятно даже, за что хвататься. Всяких средств для работы с xml в java целая куча, как встроенных, так и сторонних. А вот как выбрать нужный?
Да и вообще, xml для меня загадка. Вроде и книжек по нему куча, и возможностей всяких и технологий очень много. Но как-то уж очень всего много... общего понимания его возможностей и области применения у меня нет.
Вот к примеру, моя прога пишет лог в xml. Логи объемные и подробные, ковыряться в них тяжело. Хочется написать компанент (к примеру для Swing), для удобного просмотра лога, с возможностью фильтрации по дате, времени, уровню, и самому телу сообщения. С какой библиотекой нужно познакомиться, что бы это реализовать?
skipy_ru
Mar. 16th, 2011 08:30 pm (UTC)
Re: пожелание
Добрый день!

Для начала - вот это: http://download.oracle.com/javaee/1.4/tutorial/doc/. С 4-й по 7-ю главы. Потом 18-я глава вот отсюда, это уже больше для ознакомления: http://download.oracle.com/javaee/5/tutorial/doc/. Потом можете почитать про Java API for XML Binding (JAXB, 17-я глава в tutorial по версии 5).

Если на пальцах - существует два подхода к обработке xml. Первый - SAX, Simple API for XML. Обработка последовательная. Фактически Вы решаете, какие теги Вам интересны, и ждете от обработчика событий - найден открытый тег, найдено тело тега, найден закрытый тег. Преимущества - требуется мало памяти. Недостаток - сложность реализации.

Второй способ - DOM, Document Object Model. В этом случае весь XML затаскивается в память, далее с ним можно работать как с деревом. Преимщество - простота работы, можно использовать XPATH, модифицировать узлы. Недостаток - нужно много памяти.

В Вашем случае, как это ни парадоксально, хорошо не подходит ни один вариант. Большой объем логов означает, что памяти под него потребуется много. Т.е. с DOM будут проблемы. Но на SAX не реализуется быстрая фильтрация. - придется каждый раз разбирать документ сначала. Не говоря о том, что это просто сложнее в реализации.

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

В принципе, если через JAXB этот XML в объекты парегнать да компараторов написать - сортировки да фильтрации будут эффективными. Но это опять память, от DOM недалеко ушло. Хотя работать будет проще, чем с XML в виде DOM.

P.S. А по хорошему - это чистая задача для использования базы данных. Загнать в базу, сделать индексы по всем полям - и выборки можно эффективные организовать, постраничные, и фильтрацию, и поиск.

Edited at 2012-11-12 08:29 pm (UTC)
(Anonymous)
Mar. 12th, 2011 06:42 am (UTC)
Добавление аттрибута к HttpSession в JavaScript
Здравствуйте!
Подскажите, пожалуйста, как можно из JavaScript добавить параметр (к url) или аттрибут к request и session?
Заранее спасибо! Алексей
skipy_ru
Mar. 16th, 2011 08:00 pm (UTC)
Re: Добавление аттрибута к HttpSession в JavaScript
Добрый день, Алексей!

Я не совсем понял задачу. К какому url хочется добавить параметр?

Вообще JavaScript работает на стороне клиента, так что сессию он не модифицирует. А вот запрос - легко. Как правило, это делается так - создается hidden input, и в него пишется значение, которое надо передать на сервер. Можно даже модифицировать DOM и самостоятельно добавить нужное поле.

И к URL тоже можно добавить что угодно. Берется document.location.href, модифицируется и присваивается обратно. Присвоение вызовет переход по ссылке.
(Anonymous)
Mar. 12th, 2011 09:00 am (UTC)
Доступ к полям формы из JSP
Евгений, здравствуйте еще раз!
Можно ли в JSP-страничке получить доступ к значению checked поля чек-бокс?
На маленьком JavaScript это делается легко. А на нашей могучей Java?.....
Дополните, пожалуйста, 2 последние строчки кода:

КОД:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<input ... >Чек-бокс





<% out.println("Аттрибут чек-бокс (scriptlet): ???"); %>


ВЫВОД:
Аттрибут чек-бокс (JavaScript): false
Аттрибут чек-бокс (JSTL): ???
Аттрибут чек-бокс (scriptlet): ???

С уважением,
Алексей
skipy_ru
Mar. 16th, 2011 08:05 pm (UTC)
Re: Доступ к полям формы из JSP
Добрый день, Алексей!

Объясняю популярно. Значение checkbox-а известно на стороне клиента, после того, как от сервера получена страница. А "наша могучая Java" работает на сервере - она генерирует эту самую страницу и отсылает ее клиенту. Эти два факта надо связывать для получения ответа на вопрос?

P.S. Если же Вы имеете в виду получение значения уже после отправки запроса обратно на сервер - тут проще. Это значение приходит в качестве параметра в request-е, но (!) ТОЛЬКО если checkbox выбран. Если не выбран - параметра не будет. Это достаточный признак для определения состояния checkbox-а.
(Anonymous)
Mar. 21st, 2011 07:04 am (UTC)
Вопрос по поводу protected конструкторов
Есвгений, добрый день. Интересует меня вопрос по поводу protected конструкторов, зачем они вообще нужны? Как они работают, я понимаю. Т.е. что видны на уровне пакета и доступны потомкам. Но, вот, в каких случаях их применять, пока не совсем понимаю. Может это побочный анахронизм языка: :) Ведь в jаva на сколько я понимаю много оверхеда и лишнего для совместимости и т.д. Ещё плюс к этому вопросу, мне не понятно, почему в стандартной библиотеке java практически во всех абстрактных классах используются protected конструкторы? Ведь, по моему для абстрактных классов абсолютно нет разницы между protected и public конструкторами. Или есть какойто нюанс ? Спасибо .
skipy_ru
Nov. 24th, 2011 12:21 pm (UTC)
Re: Вопрос по поводу protected конструкторов
protected-конструктор нужен для ситуаций, когда его вызывать может только наследник. Ну, например, там проводится не вся необходимая инициализация объекта, часть оставляется наследнику. Допустим, в базовом классе есть логика, основывающаяся на каком-либо классе (java.lang.Class), который знает только наследник. Причем этот класс должен тоже удовлетворять определенным условиям. В общем, может быть достаточно сложная ситуация.

Давать создавать такой объект пользователю, который не знает всех тонкостей - опасно. А тот, кто от класса унаследуется, с большой вероятностью изучит все его тонкости.

Для абстрактных классов разницы между protected и public конструкторами я с ходу не придумаю.

А вообще есть правило - необходимо уровень доступа делать минимально возможным, позволяющем решить задачу. Можно использовать protected вместо public - значит, нужно делать именно так. Чем меньше уровень доступа, там меньше возможно ошибок и побочных эффектов.
(Anonymous)
May. 31st, 2011 07:27 am (UTC)
Про строки
Евгений, строки которые находятся в string pool убираются сборщиком мусора, когда на них нет ссылок ?

Спасибо.
skipy_ru
Nov. 24th, 2011 12:09 pm (UTC)
Re: Про строки
Да, убираются.

Стоит также помнить, что пул находится в области PermGen. И большой объем пула может вызвать OutOfMemory: PermGen space
(Anonymous)
Jun. 8th, 2011 06:36 am (UTC)
Продолжаю собирать пожелания
Доброго дня, Евгений!
Большое спасибо Вам за отличные статьи, все в самом деле лаконично и по существу. Сам перешел на JAVA недавно, до этого плотненько сидел на Delphi. Первое впечатление было - "Что здесь вообще происходит???". Сейчас же, все более вникая в основные концепции ООП JAVA понимаю, что ООП-ООП рознь, и не перестаю удивляться элегантности JAVA. Спасибо добрым людям, что посоветовали Ваш сайт, с, в самом деле, очень нужной информацией.
Конечно же, пока трудности возникают с компоновкой в GUI, формошлепству бой, так сказать, но к сожалению в статье "О менеджерах раскладки" я просто на просто теряюсь. Но время есть, ИМХО трудно ломать устои сложившиеся годами.
Большое Вам спасибо за труды, очень интересно читать. С уважением, Андрей.
(Anonymous)
Jun. 20th, 2011 09:19 am (UTC)
JAAS
Евгений, добрый день! Работали ли вы с JAAS в связке с Tomcat? Очень нужна помощь, желательно рабочий пример.
skipy_ru
Nov. 24th, 2011 12:10 pm (UTC)
Re: JAAS
Нет, к сожалению, не работал. Не только с tomcat - вообще.
Danya Smirnov
Oct. 20th, 2011 09:06 am (UTC)
Вы главное это... Писать не переставайте :)
skipy_ru
Nov. 24th, 2011 12:10 pm (UTC)
Тут уж как получится... Все-таки есть работа. :)
Alexandr Rudenko
Oct. 23rd, 2011 09:44 am (UTC)
Привет,

Есть вопрос по поводу nginx. Поднимаю его на Windows 7 (ноут на котором работаю) и через минут 5 работы или около 50-100 запросов сервер успешно виснет.
Читал, что у него есть проблемы с версией под виндовс. Есть ли опыт поднимания nginx на Unix платформах и есть ли там какие-то траблы подобного рода?
skipy_ru
Nov. 24th, 2011 11:40 am (UTC)
Добрый день!

Собственного опыта работы с nginx у меня нет. Есть только общее соображение - он работает в промышленном режиме на таком колоссальном количестве серверов (преимущественно под *NIX), что вряд ли у него есть реальные проблемы.

P.S. А под Windows7 я бы вообще ничего не тестировал. Это не серверная ОС, к тому же глючная в сетевой части. 2000, 2003, 2008R2 - если очень хочется именно Win.
(Deleted comment)
skipy_ru
Nov. 24th, 2011 11:50 am (UTC)
Re: IOException: Read end dead
Добрый день!

Вы меня озадачили порядком, я о такой особенности не подозревал. Полез в код, там действительно фиксируется потоки, где происходят чтение и запись. Теперь по пунктам.

а) http://docs.oracle.com/javase/6/docs/api/java/io/PipedInputStream.html, http://docs.oracle.com/javase/6/docs/api/java/io/PipedOutputStream.html:

A pipe is said to be broken if a thread that was providing data bytes to the connected piped output stream is no longer alive.



The pipe is said to be broken if a thread that was reading data bytes from the connected piped input stream is no longer alive.



Это цитаты. Из документации :). Если поток, работающий с другой стороны, недоступен (проверяется через isAlive), то pipe считается поломанным. Возможно, и не совсем очевидно, но написано.

б) Надо читать документацию. Навскидку - я такого не видел. Мне вообще сложно представить, зачем такая привязка была сделана.

в) Честно сказать, я pipe-ы не использовал за 15 лет ни разу. Соответственно, задача отслеживания жизненного цикла не возникала. Я вообще слабо представляю, зачем в одном приложении нужно использовать pipe при наличии ссылок.

г) про блокировку в документации тоже написано - лучше оба конца в одном потоке не использовать, во избежание deadlock-а.

P.S. А если не секрет - что Вы такое делаете, что Вам pipe-ы понадобились?
(Deleted comment)
Re: IOException: Read end dead - skipy_ru - Nov. 25th, 2011 09:39 am (UTC) - Expand
(Deleted comment)
(Deleted comment)
Re: IOException: Read end dead - skipy_ru - Nov. 25th, 2011 09:45 am (UTC) - Expand
(Deleted comment)
Дмитрий Алексеев
Dec. 29th, 2011 06:39 pm (UTC)
Добрый день.
Мелкое замечание по Ликбезу.
"Я не знаю, откуда в некоторых книгах взялась конструкция java ru.skipy.myproject.Main, без указания classpath."
По-моему класс может находится и относительно текущего каталога. Только вот в каком порядке это происходит не совсем понятно.
zakalupali
Feb. 5th, 2012 12:34 pm (UTC)
Здравствуйте. У меня вопрос по поводу сочетания swing и awt. Когда я помещаю JPanel и Panel на Frame, то JPanel при изменении размера онка мигает,а Panel не мигает.Так же при помещении JButton на Panel, эта кнопка становится видна только после наведения на её курсора мышки. Так можно ли использовать swing и awt вместе,или мжет я что то делаю не так.
Причина по которой я хочу использовать Frame вместо JFrame в том, что при изменении при изменении размера JFrame его фон медленно отрисовывеатся,и это очень не красиво.
skipy_ru
Feb. 6th, 2012 09:05 am (UTC)
Видите ли в чем дело... Все swing-компоненты с точки зрения операционной системы не существуют. Для них нет peer-компонент. А AWT-компоненты - существуют. В норме AWT-компонента у Вас одна - окно (frame), на нем всё и рисуется. Если добавить еще несколько awt-компонент - они будут располагаться поверх окна и, соответственно, поверх Ваших нарисованных swing-компонент. Плюс там разные принципы и последовательности отрисовки. В общем, смешивать их не рекомендуется, проблем море, пользы я лично не вижу.

Вы лучше опишите более подробно проблему с медленной отрисовкой фона. Что значит "медленно", как надо? Как делаете? И лучше, наверное, в каком-нибудь форуме, например, в www.javatalks.ru. Сюда ссылку киньте, чтобы я обратил внимание.
gvidik
Feb. 5th, 2012 06:06 pm (UTC)
добрый день! Прочитал много ваших статей - очень понятно и внятно рассказываете, спасибо!

пожелание на статью - networking. Http, tcp, i/o, sockets и пр.. Большая важная и интересная многим тема, по которой мало собранной в одном месте понятной документации на русском.

Станислав Бурковский
Oct. 25th, 2012 02:12 pm (UTC)
Добрый день, случайно попал на ваш сайт на статью про пакеты, понятно написано, большое спасибо за статью. Читал раздел про книги. Я только начинаю знакомиться с языком, опыт прграмирования практически нулевой, посоветуйте чем подкрепить теорию почерпнутую с книги "Java Полное Руководство" Герберт Шилдт 8-е изд.. Заранее очень благодарен за ответ !!!
skipy_ru
Nov. 12th, 2012 08:26 pm (UTC)
Теорию можно подкрепить только практикой. Увы, других вариантов не изобрели. :)
Дмитрий Богданов
Nov. 12th, 2012 06:00 pm (UTC)
Здравствуйте. Прочитал вашу статью о логгировании http://www.skipy.ru/useful/logging.html (http://www.skipy.ru/useful/logging.html).
Конкретно вопрос по уровням логгера: "Установка логгеру определенного уровня означает следующее – сообщения, выводимые с этим или более высоким уровнем, попадут в лог."
Задал уровень WARN, в результате в логе не вижу INFO. Может все - таки у вас неверно указана иерархия?
skipy_ru
Nov. 12th, 2012 08:25 pm (UTC)
Ну так всё правильно. Более высокий уровень - это ERROR и FATAL. И если Вы задали уровень WARN - INFO Вы и не должны видеть.

Подумайте сами, просто логически. Уровень задается для того, чтобы отсечь неинтересные сообщения. Вот выставили Вы WARN - и начинаете получать всё вплоть до DEBUG, а ERROR нет? В этом есть какой-нибудь смысл?
2c2b3
Jun. 21st, 2013 10:56 am (UTC)
С Днём рождения!!!
Спасибо за интересные и полезные статьи!
(Deleted comment)
skipy_ru
May. 1st, 2014 04:24 pm (UTC)
А о каких "других вещах" идет речь? WebStart? Это единственное, что еще может идти к пользователю, ибо war/ear - вещи серверные.
sbfi
Jun. 2nd, 2014 11:29 am (UTC)
Здравствуйте! Хотелось бы почитать статьи в вашем исполнении о популярных шаблонах проектирования. У вас есть в планах написание подобных статей?
P.S. Жаль под каждой статьёй нету какой-нибудь кнопки "Спасибо" :)
ban256
Jun. 20th, 2014 08:24 am (UTC)
Здравствуйте, Евгений! Могли бы Вы вкратце рассказать о том, как можно создать/запустить "автономную" небольшую программу-утилиту с простым gui (win). В случае, когда на компьютере пользователя установлена jvm, и когда её нет. То есть, что бы программа запускалась двойным щелчком по файлу. В идеале, если это будет файл с расширением .exe. Спасибо.
alexandir90
Oct. 22nd, 2014 02:01 am (UTC)
Спасибо большое
Огромное вам спасибо, Евгений, за ваш сайт и за ваши статьи в интернете и вообще за всё, что вы делаете в Интернете для тех, кто еще не достиг ваших высот!=)
Ваши статьи и сайт уже не раз мне помогли, и скорее всего еще не раз помогут!
С наилучшими пожеланиями, Александр!
Дмитрий Храпачев
Feb. 16th, 2015 05:36 am (UTC)
Здравствуйте Евгений
Интересна тема JavaFX - плюсы/минусы, можно/не нужно, стоит/не стоит пользоваться?
Page 2 of 3
<<[1] [2] [3] >>
( 123 comments — Leave a comment )

Latest Month

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