Skip to main content

Posts

End of line in Git

Initially we had SVN, but then migrated to Git. Actually we had no idea about end of line issue, because we always worked on Windows. After some time we've noticed that specific commits changed the whole file, though some diff tools insisted that there are no differences. First of all, it occurred that the order of revisions in git diff is important. It misled us, we started to think that those commits changed LF -> CRLF. Finally, git diff <parent_commit> <child_commit> --ws-error-highlight=new,old -- FileName.java revealed the truth: Now we are thinking should we stay with "Windows-style everywhere" or migrate to "commit Unix-style". Points to consider: There are tons of holly wars, but I couldn't find recommendation from Git. But it provides a way to change behavior. There is recommendation from GitHub to use LF in repository. Windows for git has three options, but neither one of them enforces CRL...

Hibernate

1. Hibernate Session . Javadoc называет её главным интерфейсом между java-приложением и Hibernate. Иногда её называют единицей работы или логической транзакцией. Основная функция сессии - обеспечить операции создания, чтения, удаления объектов. Объекты могут находиться в одном из 3 состояний (см. 2) Сессия создается с помощью SessionFactory. SessionFactory знает конфигурацию ORM, её внутреннее состояния immutable. При вызове Configuration().configure() загружается файл hibernate.cfg.xml. После того, как конфигурация загружена, можно изменить настройки программно. Данные корректировки возможны только до создания экземпляра фабрики сессий. // Initialize the Hibernate environment Configuration cfg = new Configuration().configure(); // Create the session factory ServiceRegistryBuilder srb = new ServiceRegistryBuilder(); ServiceRegistry sr = srb.applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory factory = cfg.buildSessionFactory(sr); // Obtain the new session obj...

Spring Security и PreAuth

Windows hints

1. Хотим остановить зависшую  службу, но через Administration -> Services показывает статус Stropping бесконечно. Хорошая статья: http://www.examiner.com/list/how-to-kill-a-windows-service-that-s-stuck-on-stopping-or-starting Общий смысл: sc queryex servicename     где servicename из свойств службы, покажет PID taskkill /f /pid [PID]

Using filesort; Using temporary

При выполнении explain в колонке Extra иногда значатся Using filesort; Using temporary. Что бы это значило? Хороший ответ на английском  What does Using filesort mean in MySQL? Его перевод на русский с дополнениями: Если в памяти создается временная таблица, хранящая результаты запроса, то это Using temporary. Временная таблица может быть сохранена на диск, если она слишком велика, чтобы поместиться в память. // TODO: слишком велика - это сколько? по какой еще причине она может быть записана на диск? Каждый раз, когда сортировка не может быть выполнена по индексу, это using filesort. Плохое имя заставляет нас думать о файлах, но они тут не при чем. Filesort могла бы называться просто sort. На самом деле это quicksort. Если сортировка больше, чем "sort buffer" (?), то она выполняется по частям. Объем памяти, выделяемый для filesort(), хранится в переменной @@sort_buffer_size .  Если сортируемые данные не помещаются в эту память, filesort будет использовать временные ...

Spring

Wikipedia: The Spring Framework is an open source application framework and inversion of control container for the Java platform. Это Container, так как Spring управляет жизненным циклом всех объектов контейнера: создает их и связывает (wiring) их друг с другом. Это Framework, Spring позволяет создавать и конфигурировать сложные приложения из простых компонент, предоставляя гибкие и эффективные реализации многих необходимых сервисов. 1. DI и IoC Фаулер считает одним и тем же, просто DI - более подходящий термин. Паттерн DI предоставляет компоненту внешнюю зависимость (вместо того, чтобы захардкодить её). То есть мы сообщаем объекту о его зависимостях вместо того, чтобы он сам о них знал. Предыстория: Мы стараемся использовать интерфейсы, например tree.getFruits(), но где мы создаем объект tree? Если в классе, который его использует, то получается, что класс зависит не только от интерфейса ITree, но и от конкретной реализации, скажем AppleTree. А если кто-то захочет использоват...

Liferay

1. При использовании ServiceBuilder build.number из файла service.properties сохраняется в таблице servicecomponent. Если при каждом старте Liferay пытается сделать апгрейд до новой версии, backup таблиц и виснет, то имеет смысл выкинуть все строки из servicecomponent, касающиеся создаваемой нами базы, поменять необходимые колонки или таблицы вручную, запустить. 2. Где в базе данных найти содержимое страницы пользователя? Из таблицы user_ : userId= 2 Из таблицы group_ : userId =2 => groupId= 88 Из таблицы layout: groupId=88, private, /home => typesettings = "layout-template-id=2_columns_ii column-2=33, column-1=82,3," В таблице layout, колонка typesettings содержит layout и id портлетов. 3. При старте liferay не деплоит war-файлы из папки deploy? Нет ли в логах строки вида 10:08:35,909 INFO Auto deploy scanner started for C:\Selenium\liferay-portal-6.1.1-ce-ga2\deploy и путь совсем не тот что у вашего liferay? Смотреть portal-setup-wizard.properties 4. How to get ...