Очень часто вес приложения, которое мы выкладываем на сервер достигает неприлично больших размеров из-за включения в него всех нужных зависимостей. У меня в конечном итоге приложения занимают от 20 до 50 метров. Деплой таких war-ов на удаленный сервер, на Tomcat, дело не одной минуты, а при плохой связи и вовсе становится проблематичным. Класть библиотеки в ${tomcat.home}/lib дело очень неблагодарное и зачастую опасное. Мы на фирме немного погуглили и нашли очень приятное решение на DZone. Хочу с вами поделиться…
Сергей Ковач @xy4
Руководитель службы разработки бекенда
Введение в HTML5 History API
4 min
242KTranslation
До появления HTML5 единственное, что мы не могли контролировать и управлять (без перезагрузки контента или хаков с location.hash) — это история одного таба. С появлением HTML5 history API все изменилось — теперь мы можем гулять по истории (раньше тоже могли), добавлять элементы в историю, реагировать на переходы по истории и другие полезности. В этой статье мы рассмотрим HTML5 History API и напишем простой пример, иллюстрирующий его возможности.
History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в
Основные методы объекта History:
Основные понятия и синтаксис
History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в
window.history
. History имеет несколько методов, событий и свойств, которыми мы можем управлять из JavaScript. Каждая страница таба(Document object) представляет собой объект коллекции History. Каждый элемент истории состоит из URL и/или объекта состояния (state object), может иметь заголовок (title), Document object, данные форм, позиция скролла и другую информацию, связанную со страницей. Основные методы объекта History:
window.history.length
: Количество записей в текущей сессии историиwindow.history.state
: Возвращает текущий объект историиwindow.history.go(n)
: Метод, позволяющий гулять по истории. В качестве аргумента передается смещение, относительно текущей позиции. Если передан 0, то будет обновлена текущая страница. Если индекс выходит за пределы истории, то ничего не произойдет.window.history.back()
: Метод, идентичный вызовуgo(-1)
window.history.forward()
: Метод, идентичный вызовуgo(1)
window.history.pushState(data, title [, url])
: Добавляет элемент истории.window.history.replaceState(data, title [, url])
: Обновляет текущий элемент истории
+51
Немного о деревьях
3 min
28KВступление
Встречалась ли вам ситуация, когда необходимо реализовать хранение древовидной структуры в реляционной БД?

Примеров можно привести множество. Это и древовидные комментарии, и каталог продукции, и населенные пункты, разделенные по странам и областям. Я думаю, что каждый сможет самостоятельно привести несколько примеров.
В данном топике мы с вами поговорим об одной из тех возможностей, которые существуют для организации хранения деревьев в PostgreSQL — ltree.
+82
Orbduino — механическая рука управляемая через интернет
1 min
6.1K
Эта механическая рука была собрана на Arduino. Запущена была еще в 12/15/2010. Любой желающий может зайти на страницу, пообщаться в чате и по управлять рукой.
+29
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Тимлид
Lead
People management
Java
Kotlin