• Немного про повторное использование объектов

      Недавно я наткнулся на блог, который ведет Peter Lawrey. Там можно найти интересную информацию, которая касается производительности кода под JVM.

      Там я нашел непривычный подход, который состоит в повторном использовании объектов. Непривычен он по нескольким причинам:
      • Общепринятое мнение, что создание объектов сейчас настолько быстрое, что не стоит обращать на него внимание
      • Этот подход редко где используется, и на это должны быть причины.

      Читать дальше →
    • JetBrains показали исходные коды Kotlin

        В июле прошлого года JetBrains анонсировали новый язык программирования Kotlin. Сегодня, JetBrains выложили исходные коды этого языка программирования в Open Source. Теперь пощупать новинку могут все желающие.
        Читать дальше →
      • Перевод The Little Redis Book

          The Little Redis Book — это бесплатная книга про Redis.

          Книга была написана Karl Seguin, при поддержке Perry Neal. Karl Seguin является также автором книги The Little MongoDB Book, которую часто рекомендуют для быстрого старта с MongoDB. Первая версия повилась около недели назад.

          Сегодня я сделал первую версию перевода этой книги. Исходные тексты доступны в репозитории на GitHub. Там же можно найти и готовый PDF.

          Перевод выполнен с целью популяризации Redis среди русскоговорящих разработчиков. Книга является очень удобным и компактным руководством.

          Я благодарен следующим людям за помощь в переводе оригинального текста и вычитке результата:


          Я прошу все неточности и опечатки отправлять для коррекции перевода.
        • Объекты Java

            Под впечатлениями от habrahabr.ru/blogs/java/134102.

            Недавно мне приходилось немного поковыряться внутри JVM. Довольно интересный опыт. Текст в вышеупомянутом топике не совсем сходится с моим опытом, но я не считаю себя обладателем абсолютной истины. Ниже я поделюсь с читателями небольшой частью моих экспериментов, которые касаются непосредственно объектов Java.
            Читать дальше →
          • New day — new language!

              Xtend


              Xtend представляет собой статически типизированный язык программирования от команды Eclipse, который обладает тесной интеграцией и работает поверх JVM. Его корни лежат в языке программирования Java (кто бы мог подумать). Xtend обладает рядом концептуальных улучшений:
              • Выведение типов — нет необходимости постоянно указывать сигнатуры типов.
              • Полная поддержка Java Generics — включая все соответствия и правила приведения.
              • Замыкания — приятный синтаксис для анонимных классов.
              • Перегрузка операторов — позволяет писать более выразительный код.
              • Улучшенные switch выражения — на основе типов и приведения.
              • Каждое выражение имеет значение (en. «No statements — Everything is an expression»).
              • Шаблоны — с поддержкой пробелов.
              • Поддержка расширений — JSR-330.
              • Доступ к свойствам — синтаксический сахар над get/set.
              • Полиморфный вызов методов.
              • Транслируется в Java код, а не Bytecode — корректная работа с кодом, предназначенным для пратформ, таких как Android или GWT.

              У разработчиков не стоит цели заменить Java. Библиотека Xtend является тонким слоем над JDK и работает равносильно с Java и Xtend. Разумеется, разработчики предоставляют современную IDE на основе Eclipse.
            • Рециркуляционные нейронные сети

                Рециркуляционные нейронные сети представляют собой многослойные нейронные сети с обратным распространение информации. При этом обратное распространение информации происходит по двунаправленным связям, которые имеют в различных направлениях разные весовые коэффициенты. При обратном распространении сигналов, в таких сетях осуществляется преобразование их с целью восстановления входного образа. В случае прямого распространения сигналов происходит сжатие входных данных. Обучение рециркуляционных сетей производится без учителя.
                Читать дальше →
              • Spawnfest ↺ July 9-10, 2011

                  Spawnfest — ежегодное 48-часовое соревнование разработчиков на языке Erlang, где Вы можете посоревноваться с другими разработчиками в создавании самого лучшего приложения Erlang, библиотеки или чего-либо еще, что Вам нравится! Событие произойдет 9-ого и 10-ого июля.

                  Огранизаторы говорят, “Мы надеемся, что Spawnfest поможет сплотить сообщество разработчиков Erlang и заинтересовать людей нашим любимым языком программирования.”

                  Если Вы видели Rails Rumble минувших лет, Вы знаете, чего может достигнуть талантливая команда за выходные.

                  Спонсорами мероприятия являются Github, Erlang Solutions, Spawngrid, O'Reilly, Manning и другие компании.

                  В число судей входят Bob Ippolito и Ulf Wiger.
                • Потоки или события

                    Существует два способа обрабатывать параллельные запросы к серверу. Потоковые (threaded, синхронные) серверы используют множество одновременно выполняющихся потоков, каждый из которых обрабатывает один запрос. В это время событийные (evented, асинхронные) серверы выполняют единственной цикл событий, который обрабатывает все запросы.

                    Чтобы выбрать один из двух подходов, нужно определить профиль нагрузки на сервер.
                    Читать дальше →
                  • Основы Clojure Web Applications

                      Сегодня я попробую показать основы создания веб приложений на языке Clojure. Здесь не будет сложной логики и модных фреймворков. Будет использоваться ряд библиотек для работы с примитивами. По мере упоминания я попробую в двух словах объяснить, какой функционал они предоставляют.

                      Архитектура веб-приложений в примитивах состоит из веб-сервера, который направляет запросы на обработчики в зависимости от пути, параметров, метода. Обработчик выполняет определенный код, делает запросы к базе данных, работает с файловой системой. После обработки запроса, генерируется ответ и отсылается клиенту.

                      Наше приложение будет принимать через форму одно значение, брать из базы данных второе, складывать их, а результат отдавать клиенту. При этом введенное значение будет заменять старое в базе данных. Глупая, бесполезная и не интересная логика — я знаю.
                      Читать дальше →
                    • Одержимость красивым кодом, синдромом рефакторинга

                        В последнее время распространилась одержимость рефакторингом. Доходит до того, что некоторые программисты ставят ему больший приоритет, чем более важным вещам, таким как:
                        • Корректность
                        • Надежность
                        • Отслеживаемость
                        • Поддерживаемость

                        Если это доходит до крайности, и все, о чем заботится программист, является красота кода, он может попасть под синдром рефакторинга.
                        Читать дальше →