my image

Dmitrii Volyx

Performance Engineer

Прежде чем писать код - включи мозг

Порой программисты, как люди очень увлеченные, забывают основополагающие составляющие любой задачи, такие например как - “цель”. Даже если кажется, что все очевидно, попробуй составить план, набросай каркас, как можно глубже попробуй продумать и понять как это будет работать. Чтобы это сделать необходимо задуматься о том - “Для чего это нужно”. Код - это инструмент. Но периодически каждый программист заигрывается в него, ведь писать код - это то что мы любим. И тогда это превращается в рытье траншеи не зная для чего. Код - это не сама цель. ...

октября 19, 2015 · 1 минута · volyx

Дельфинарий

Если что-то делать очень долго, то обязательно получится.

октября 5, 2015 · 1 минута · volyx

Перестановочки

{% highlight java %} def permutation(String input){ permutation("", input); } def permutation(String perm, String word) { if (word.isEmpty()) { println(perm + word); } else { for (int i = 0; i < word.length(); i++) { permutation(perm + word.charAt(i), word.substring(0, i) + word.substring(i + 1, word.length())); } } } permutation(“123”) {% endhighlight%}

августа 28, 2015 · 1 минута · volyx

Поделить связанный список по значению

Поделить связанный список по значению Задача Дан связанный список и целое число //N// из этого списка. Поделить связный список вокруг одного узла, так чтобы узлы с меньшим значением находились до него, а узлы со значениями больше //N// после него. Решение Решение похоже на This is much like the partition function for quick sort. When using arrays we have to be careful not to shift elements around, because array shifts are expensive operations. But when we use a linked list we don’t have to worry about this. We could have a list that stores all values less than N and a list that stores all values greater than N and equal to N. Then we can merge the 2 lists and the N node together to get the resulting list. Here is the outline for the algorithm ...

августа 27, 2015 · 2 минуты · volyx

Веб-компоненты

Веб-компоненты Непонятно как затесавшийся доклад про веб-компоненты на JEEConf Less JS! Web components for back-end developers. (Olga Semeniuk, Belarus) Очень понравилась такая очевидная вещь: Не нужно писать собственные компоненты на JSF, PrimaFaces при миграции на новую версию они обязательно сломаются! — Дима Волыхин (@volyihin) 20 августа 2015 Веб-компоненты состоят из следующих частей: Templates. Фрагменты HTML, которые программист собирается использовать в будущем. Содержимое тегов <template> парсится браузером, но не вызывает выполнение скриптов и загрузку дополнительных ресурсов (изображений, аудио…) пока мы не вставим его в документ. Shadow DOM. Shadow DOM позволяет изменять внутреннее представление HTML элементов, оставляя внешнее представление неизменным. Отличный пример — элементы <audio> и <video>. В коде мы размещаем один тег, а браузер отображает несколько элементов (слайдеры, кнопки, окно проигрывателя). В Chrome эти и некоторые другие элементы используют Shadow DOM. Custom Elements. Позволяют создавать и определять API собственных HTML элементов. В HTML теперь будут такие теги как <menu> или <user-info>? Imports. Импорт необходимых ресурсов для компонента - css например. Хороший пример реализации компонентов это Polymer. ...

августа 26, 2015 · 2 минуты · volyx

Первый релиз в Maven Central

Основная мысль RTFM! Единственный верный и правильный мануал по публикации в централ - ((http://central.sonatype.org/pages/apache-maven.html)), остальное все - чушь и старье. Надолго запомню, что читать нужно только официальную документацию - все остальное - не актуально. Потратил на этой ерунде долгие 2 часа, а когда нашел мануал - справился за 15 минут. Хотя нужно быть честным - и пока автоматически у меня не получилось “релизнуть”. Заходил в ((https://oss.sonatype.org)) и загружал библиотеки руками. ...

августа 26, 2015 · 2 минуты · volyx

Jquery победил. Пост из прошлого

Попробуйте сверстать одну страничку на html, и вот увидите, что вы обязательно подключили к ней jquery. Никакое современное приложение «не написать» без jquery. В разумных пределах, конечно. Взаимодействие с формой, если вы не безумный верстатель, который делает запросы на формах с инпутами потребует динамики. Сделать что-нибудь на клик по кнопке — опять динамика. А если есть динамика то нужен javascript. Изучение javascript часто начинают с jquery, потому что его синтаксис понятен. Не нужно знать программирования, чтобы написать какое-то простейшее действие, jquery использует css селекторы, которые понятны каждому человеку, знакомому с css и html. И так все приложение «стряпается» на jquery, а затем когда разработчик умнеет, то переписывать на javascript уже нет смысла, ведь и так работает. ...

августа 13, 2015 · 2 минуты · volyx

Удаление символов из строки

Серия задачек на подумать, осознать. На этот раз будем разбираться с удалением смимволов из строки.

июня 24, 2015 · 5 минут · volyx

Groovy. Быстрая сортировка.

Groovy отличный язык, если захотелось прям с ходу взять и написать какой-то алгоритм или скрипт. Советую всем программистам иногда “разминать” свои интерпрайзные мозги какими-нибудь задачками. Этот алгоритм, наверное, является самым популярным алгоритмом сортировки. Он весьма прост, быстр и сортирует задействуя минимальное количество дополнительной памяти. Для большинства задач, где требуется сортировка “Quick sort” является хорошим выбором. {% highlight java %} // массив, который будем сортировать def a = [1,5,7,8,45,7,45,34,45,78,9] /** ...

июня 8, 2015 · 2 минуты · volyx

Захвачен ли монитор потоком на данный объект

Выполняется код под каким-то монитором или нет?

апреля 14, 2015 · 1 минута · volyx