Как стать автором
Обновить
103
0
Андрей Кондратович @cursed

Пользователь

Отправить сообщение

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

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

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

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 4

JetBrains показали исходные коды Kotlin

Время на прочтение 1 мин
Количество просмотров 2.8K
В июле прошлого года JetBrains анонсировали новый язык программирования Kotlin. Сегодня, JetBrains выложили исходные коды этого языка программирования в Open Source. Теперь пощупать новинку могут все желающие.
Читать дальше →
Всего голосов 45: ↑43 и ↓2 +41
Комментарии 36

Перевод The Little Redis Book

Время на прочтение 1 мин
Количество просмотров 25K
The Little Redis Book — это бесплатная книга про Redis.

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

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

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

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


Я прошу все неточности и опечатки отправлять для коррекции перевода.
Всего голосов 61: ↑61 и ↓0 +61
Комментарии 21

Объекты Java

Время на прочтение 4 мин
Количество просмотров 43K
Под впечатлениями от habrahabr.ru/blogs/java/134102.

Недавно мне приходилось немного поковыряться внутри JVM. Довольно интересный опыт. Текст в вышеупомянутом топике не совсем сходится с моим опытом, но я не считаю себя обладателем абсолютной истины. Ниже я поделюсь с читателями небольшой частью моих экспериментов, которые касаются непосредственно объектов Java.
Читать дальше →
Всего голосов 68: ↑51 и ↓17 +34
Комментарии 24

New day — new language!

Время на прочтение 1 мин
Количество просмотров 2.8K

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.
Всего голосов 87: ↑79 и ↓8 +71
Комментарии 20

Рециркуляционные нейронные сети

Время на прочтение 4 мин
Количество просмотров 24K
Рециркуляционные нейронные сети представляют собой многослойные нейронные сети с обратным распространение информации. При этом обратное распространение информации происходит по двунаправленным связям, которые имеют в различных направлениях разные весовые коэффициенты. При обратном распространении сигналов, в таких сетях осуществляется преобразование их с целью восстановления входного образа. В случае прямого распространения сигналов происходит сжатие входных данных. Обучение рециркуляционных сетей производится без учителя.
Читать дальше →
Всего голосов 60: ↑58 и ↓2 +56
Комментарии 33

Spawnfest ↺ July 9-10, 2011

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

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

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

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

В число судей входят Bob Ippolito и Ulf Wiger.
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Потоки или события

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

Чтобы выбрать один из двух подходов, нужно определить профиль нагрузки на сервер.
Читать дальше →
Всего голосов 78: ↑75 и ↓3 +72
Комментарии 111

Основы Clojure Web Applications

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

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

Наше приложение будет принимать через форму одно значение, брать из базы данных второе, складывать их, а результат отдавать клиенту. При этом введенное значение будет заменять старое в базе данных. Глупая, бесполезная и не интересная логика — я знаю.
Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Комментарии 6

Одержимость красивым кодом, синдромом рефакторинга

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

Если это доходит до крайности, и все, о чем заботится программист, является красота кода, он может попасть под синдром рефакторинга.
Читать дальше →
Всего голосов 129: ↑103 и ↓26 +77
Комментарии 82

Erlang Web

Время на прочтение 4 мин
Количество просмотров 6.8K
Erlang Web — платформа с открытым исходным кодом для приложений, основанных на протоколе HTTP. В настоящий момент поддерживаются веб-серверы INETS и Yaws. Erlang Web разрабатывался в Erlang Training & Consulting Ltd. в течение прошлых трех лет и используется во многих коммерческих и открытых проектах.

Применение


Проекты, использующие Erlang Web:

Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 19

Elixir

Время на прочтение 4 мин
Количество просмотров 41K
Erlang является уникальной по своим возможностям платформой, и не смотря на это, язык до сих пор является экзотикой. Причин существует несколько. Например, тугая арифметика, непривычность синтаксиса, функциональность. Это не недостатки. Это просто вещи, с которыми большинство программистов не могут или не хотят работать.

Несколько дней назад Jose Valim опубликовал в своем репозитории проект языка, построенного поверх Erlang. Этот язык обладает простой объектной моделью и Ruby-подобным синтаксисом. Под катом выжимки из документации и видео, демонстрирующее простой пример.

disclaimer: %username%, прежде чем делать выводы насчет того, что умеет, а что не умеет elixir, просьба глазами пройтись хотя бы по readme.

Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Комментарии 81

Logging. «Из коробки»

Время на прочтение 8 мин
Количество просмотров 6.1K
Ведение логов применяется в каждом программном продукте, дожившем до стадии продакшена. Erlang предоставляет программистам целую экосистему, которая включает и механизмы слежения за приложением. В этой части я рассмотрю именно функционал «из коробки».
Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Комментарии 5

Pythonic

Время на прочтение 7 мин
Количество просмотров 37K
Итак, что же это значит, когда кто-либо говорит, что foo выглядит как pythonic? Что значит, когда кто-либо смотрит в наш код и говорит, что он unpythonic? Давайте попробуем разобраться.

В Python-сообществе существует неологизм pythonic, который можно трактовать по разному, но в общем случае он характеризует стиль кода. Поэтому утверждение, что какой-либо код является pythonic, равносильно утверждению, что он написан в соответствии с идиома Python’a. Аналогично, такое утверждение в отношении интерфейса, или какой-либо функциональности, означает, что он (она) согласуется с идиомами Python’a и хорошо вписывается в экосистему.

Напротив, метка unpythonic означает, что код представляет собой грубую попытку записать код какого-либо другого языка программирования в синтаксисе Python, а не идиоматическую трансформацию.

Понятие Pythonicity плотно связано с минималистической концепцией Python’a и уходом от принципа «существует много способов сделать это». Нечитабельный код, или непонятные идиомы – все это unpythonic.

При переходе от одного языка к другому, некоторые вещи должны быть «разучены». Что мы знаем из других языков программирования, что не будет к месту в Python’e?
Читать дальше →
Всего голосов 106: ↑99 и ↓7 +92
Комментарии 63

Python Module Usage Stats – Feb 2011

Время на прочтение 2 мин
Количество просмотров 911
Ниже список 30 наиболее используемых «базовых модулей», основанный на количестве скачиваний с проекта PyPI. Эти результаты основаны на 11,204 загруженных пакетах. Подробности ниже.
Читать дальше →
Всего голосов 18: ↑13 и ↓5 +8
Комментарии 7

Асинхронный RPC

Время на прочтение 1 мин
Количество просмотров 1.5K
В то время, как я закладываю основу новой клиентской библиотеки для работы с Datastore с поддержкой асинхронных запросов, я добавил кое-какой низкоуровневый функционал, который Вы можете использовать уже сегодня. Единственный API с документированной поддержкой асинхронных запросов – это urlfetch. И этот функционал может оказаться довольно полезным.
Читать дальше →
Всего голосов 7: ↑4 и ↓3 +1
Комментарии 0

Up the pool

Время на прочтение 1 мин
Количество просмотров 1.9K
Я программист. Поэтому, меня всегда потрясают вещи, которые «просто работают». Это чувство у меня было и когда я знакомился с Erlang Pool. Настройка требует некоторого внимания, но после, механизм оказывается «оскорбительно» простым.
Читать дальше →
Всего голосов 51: ↑45 и ↓6 +39
Комментарии 13

Устранение Хвостовой рекурсии

Время на прочтение 6 мин
Количество просмотров 12K
Я недавно написал в своем блоге Python History пост «The origins of Python's functional features» (перевод). Упоминание о том, что Python не поддерживает хвостовую рекурсию (TRE) сразу спровоцировало несколько комментариев о том, как жаль, что Python не поддерживает данную оптимизацию. Появились ссылки на недавние записи в других блогах о том, что TRE может быть добавлена в Python легко. Позвольте мне защитить свою позицию — я не хочу добавлять TRE в язык. Если Вы хотите короткий ответ, это просто unpythonic.

Вот длинный ответ.
Читать дальше →
Всего голосов 55: ↑48 и ↓7 +41
Комментарии 39

Откуда идут «функциональные» корни Python

Время на прочтение 3 мин
Количество просмотров 4.2K
Я никогда не полагал, что Python попадет под влияние функциональных языков, независимо от того что люди говорят или думают. Я знаком с императивными языками, такими как C и Algol68 и хотя я сделал функции объектами «первого класса», я не рассматривал Python как язык функционального программирования. Однако, было ясно, что пользователи хотят больше от списков и функций.
Читать дальше →
Всего голосов 54: ↑50 и ↓4 +46
Комментарии 35

Comet–приложение для Mochiweb c нагрузкой в 1 000 000 пользователей. Часть 3/3

Время на прочтение 21 мин
Количество просмотров 4.7K
Часть 1 и Часть 2 в этом цикле статей показали, как создать приложение, используя mochiweb, и как передавать сообщения подключенным пользователям. Мы уменьшили постребление памяти до 8 Кб для каждого подключения. Мы повторили c10k тест. Мы сделали графики. Это была забава, но теперь пора повторить все для 1 миллиона соединений.

Это статья покрывает следующее:
• Использование базы данных Mnesia;
• Генерация правдоподобного набора данных вида «friends» для миллиона пользователей;
• Настройка Mnesia и ввод наших данных;
• Открытие миллиона соединений с одной машины;
• Сравнительный тест с 1 миллионом пользователей;
• Libevent + Си для обработки соединений;
• Финальные выводы.
Читать дальше →
Всего голосов 57: ↑53 и ↓4 +49
Комментарии 12
1

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность