Обновить
20
0
mcgregor@mcgregor

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

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

Уголок Java-разработчика: библиотеки на каждый день

Время на прочтение3 мин
Охват и читатели8.3K
За все время, проведенное в написании кода на Java, у меня сформировался определенный набор полезных cторонних библиотек, которые прочно засели в classpath, и без которых не обходится ни один день разработки, будь то написание чего-либо «на коленке» или работа над серьезным проектом. Речь идет не о «монстрах» вроде Spring, Struts, Hibernate (это другая история), а скорее об утилитах, которые заполняют пробелы в Java SE API и позволяют сэкономить десяток-другой лишних строк кода/минут тут и там. Этой информацией я бы и хотел поделиться с хабрасообществом — надеюсь, она пригодится особенно тем, кто только начинает штурмовать Java, и позволит немного, но увеличить производительность труда.

Итак, список наиболее часто используемых мной классов и методов с комментариями:
Читать дальше →

Коллекции иконок? Легко! Тысячи иконок в сетах.

Время на прочтение2 мин
Охват и читатели39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →

Ресурсы по поиску качественных иконок.

Время на прочтение1 мин
Охват и читатели6.3K
Все когда-нибудь сталкивались с проблемой поиска качественных иконок для различных нужд. Список лучших поисковиков:
Читать дальше →

Алгоритм 3D звука от компании по производству слуховых аппаратов

Время на прочтение2 мин
Охват и читатели9.5K


Уже давно меня интересовал вопрос: зачем все эти примочки и навороты с большим количеством звуковых дорожек (системы «Surround»), если у человека всего 2 уха и все эти N каналов хочешь-не-хочешь представляют из себя всего 2 — левое и правое ухо=) Попробуем разобраться как же при помощи 2-х звуковых дорожек может получиться 3D звук.
что это за голова на штативе?

deb-пакет на коленке

Время на прочтение3 мин
Охват и читатели13K
Задача: создать пакет для Debian для выливки демона/сайта на сервер.
Я никогда ранее не работал с deb-пакетами — так что решение может быть не оптимальным. Но оно работает и достаточно просто в использовании.
Читать дальше →

Шустрая гляделка для Nautilus'а

Время на прочтение3 мин
Охват и читатели4.2K
В своих бесконечных поисках найти быструю гляделку графических файлов, наткнулся на замечательную программу Gloobus, которая наверняка порадует счастливых обладателей нетбуков с Линуксом на борту. Сразу оговорюсь, затачивается все под файловый менеджер Nautilus, но никто не мешает прикрутить это чудо к чему угодно.

image
Читать дальше →

HowTo: Skype-шлюз на базе FreeSwitch

Время на прочтение8 мин
Охват и читатели29K
В этой статье я бы хотел рассмотреть создание SIP<->Skype шлюза для проброса входящих skype-вызовов на корпоративную IP АТС (в данном случае это будет Asterisk). Так как Skype на данный момент является, пожалуй, самым популярным клиентом VoIP среди пользователей, возможность позвонить в Вашу компанию через Skype будет дополнительным плюсом для клиентов.
Читать дальше →

Про Git на пальцах (для переходящих с SVN)

Время на прочтение8 мин
Охват и читатели281K
Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
Читать...

Skype 2.1 for Linux Beta

Время на прочтение1 мин
Охват и читатели1.7K
После длительного затишья Skype наконец обновил версию для Linux. С сайта можно скачать бету Skype for Linux desktop 2.1.

imageВ новой версии:
  • Поддержка нового аудиокодека SILK
  • Поддержка высококачественного видео
  • Поддержка PulseAudio
  • Отправка SMS (требует Skype Credit)
  • Группы контактов
  • Ярлыки/тэги для более удобной организации контактов
  • Улучшения окна чата (индикация набираемого ответа, редактирование собщений и т.д.)
  • Улучшенный дизайн контакт-листа с сообщениями о настроении/статусе и видео
  • Улучшенная иконка для трэя =)


Подробности – на странице описания релиза.

Кроме того, вместе с этим релизом обновляется и action_handler скрипт от давнишнего бета-тестера Skype Филиппа Колмана. Здесь можно посомтреть, как настроить ваш любимый браузер.

Попробуйте версию 2.1.0.47 и поделитесь своими впечталениями через JIRA или комментарии в блоге Skype или на форуме.

Нерекурсивная выборка всего дерева Adjacency List

Время на прочтение4 мин
Охват и читатели4.2K
Вообще, чем мне не нравится Adjacency List, так это рекурсией, особенно, когда нужно выбрать дерево, без каких либо ограничений, например:
  • Все дерево комментариев;
  • Карта сайта;
  • Навигационное меню;
  • и т.д.;
Предлагаемые решения формирования массива дерева с помощью указателей, конечно, позволяют избавиться от лишних запросов к базе, но увы не исключают рекурсию, пусть по массиву, но все же. А у нас…
Читать дальше →

Другие возможности Java

Время на прочтение4 мин
Охват и читатели6.9K
Я продолжаю переводить источник первой статьи. Всё больше очевидных вещей, не смотря на это я все же решил, что повторение — не такое плохое занятие.

И коли источник исчерпыет себя — призыв к хабра-java-сообществу: «Don’t be jealous!», дополните этот список в комментариях, поделитесь опытом. А пока — продолжение предыдущей статьи, после монтажа, дубляжа и разбавления собственным опытом:

JDK tools


Почти все в курсе, что в поставку JDK входит внушительное число tools’ов. Однако в повседневной работе, думаю, многие кроме как java, javac, jar не используют. Что же ещё можно взять из папки bin:
Читать дальше →

Нетривиальные возможности Java

Время на прочтение4 мин
Охват и читатели17K
Java — язык простой. И после года активного использования для Вас не остаётся секретов. Совершенно случайно я обнаружил, что на stackoverfow люди решили поделиться скрытыми возможностями (Hidden Features of Java). Вышло очень занимательно, получился своеобразный рейтинг нетривиальных возможностей, который я далее запротоколирую в вольном переводе на русский.

double brace


С большим отрывом лидирует «double brace», уже обсуждавшийся ранее в статье Эффект «double brace» by zeroed. Подробное описание метода — 
http://www.c2.com/cgi/wiki?DoubleBraceInitialization
несомненно это самое забавное и неочевидное из списка. Однако как уже отмечалось, метод имеет свои минусы в виде анонимного класса на каждое использование этого метода. А также невозможности использования метода equals () для подобных объектов.

далее еще 10 пунктов!

Структуры данных: бинарные деревья. Часть 1

Время на прочтение6 мин
Охват и читатели395K

Интро



Этой статьей я начинаю цикл статей об известных и не очень структурах данных а так же их применении на практике.

В своих статьях я буду приводить примеры кода сразу на двух языках: на Java и на Haskell. Благодаря этому можно будет сравнить императивный и функциональный стили программирования и увидить плюсы и минусы того и другого.

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

Что такое Zeroconf и с чем его едят

Время на прочтение3 мин
Охват и читатели95K
Я, как старый линуксоид, когда впервые установил Ubuntu и увидел незнакомое слово avahi, конечно же сразу посмотрел в google. Потыкался в несколько ссылок, увидел другие непонятные слова, типа zeroconf, multicast dns, bonjour. Сразу понял, что это какая то мутная технология от Apple и нафиг мне ненужная.

Однако, с ростом локальной сети внутри моей квартиры, подумал, что неплохо бы было полюбопытствовать, как можно приспособить zeroconf, чтобы облегчить себе жизнь.

Давайте разберемся с терминологией:
  1. Zeroconf — это протокол, разработанный Apple и призванный решать следующие проблемы:
    • выбор сетевого адреса для устройства;
    • нахождение компьютеров по имени;
    • обнаружение сервисов, например принтеров.
  2. Avahi — открытая и свободная реализация протокола zeroconf.
  3. Bonjour — open-source реализация протокола zeroconf от Apple.

Читать дальше →

Автоматический контроль качества Java-кода

Время на прочтение7 мин
Охват и читатели25K
Код, который пишет программист, должен быть рабочим – самое первое правило успешной работы, с которым согласится и сам программист, и все его начальники. Но, кроме того, что код должен просто работать, часто к нему предъявляются повышенные требования – наличие комментариев (внутренней документации), читаемость, быстроту внесения изменений, совместимость с явными и неявными стандартами. Всё то, что можно назвать качеством кода.

Однако, в отличие от работоспособности кода, которую можно оценить с помощью выполнения проверочных тестов, качество кода не является простой оценкой TRUE или FALSE. Более того, под качеством кода понимается набор субъективных оценок восприятия кода другим человеком. Однако давайте всё-таки попробуем как-то формализовать задачу оценки качества, и, при возможности, дать способ автоматического выполнения этой задачи.
Читать дальше →

Разработка web-приложений на C++

Время на прочтение2 мин
Охват и читатели57K

Прочитав недавний топик про использование C++ и fastcgi, я наконец-то решился опубликовать свои наработки на тему Web и C++.

Существующие решения, с моей точки зрения, реализуют простые вещи сложным образом. Моей целью было устранить это досадное недоразумение, написав библиотеку, которая позволит писать эффективные кросс-платформенные веб-приложения на С++ так же легко и быстро, как и на PHP, Python, Java, и т.д.
Читать дальше →

Пуш ми, бум-бум, тач ми… Ajax Push Engine

Время на прочтение5 мин
Охват и читатели7K
logoСегодня поговорим о Comet и о server push вообще.

Обычные веб-приложения, как и сайты, работают по традиционной модели запрос-ответ-запрос, при этом, в силу особенностей HTTP-протокола и некоторых серверных реализаций обработчиков, приложение не хранит информацию между запросами, так что каждый вызов является независимым, а идентификация или сессионность обеспечиваются более высокоуровневыми средствами (например, всем известная реализация сессий в PHP). Кроме этого, запрос на новую информацию посылает всегда клиент, который заинтересован в получении самой актуальной версии данных. В приложениях, которым критично обновление, это часто становиться узким местом. У нас в одном из предыдущих проектов, было сразу несколько периодических AJAX-запросов на обновление данных. Хотя для такого случая есть варианты и вызова нескольких обработчиков на стороне сервера одним запросом от клиента.
Читать дальше →

Системный подход лидера в работе с командой. Не повторяем ошибок трижды

Время на прочтение7 мин
Охват и читатели20K
Сначала повторяем чужие ошибки, потом делаем свои, потом свои же повторяем ) Итак...

Задачи менеджера проекта (лидера) в работе с командой сводятся к повышению эффективности и снижению себестоимости разработки. Эффективность команды во многом зависит от ее участников. Что мешает нам добиться синергетического эффекта? Пробуем разобраться.

В работе менеджера проектов одно из наиболее ценных качеств – это опыт. Именно опыт формирует интуицию, помогает принимать правильные решения и завершать проекты успехом. Чаще всего наш опыт основан во многом на стандартных ошибках, в стандартных ситуациях. При этом, в текучке проблем, мы придумываем нестандартный выход из них (так проще), и забываем воспользоваться устоявшимся опытом многих предшественников, сведенным в систему. Напрасно. Система «в сознании» позволяет принимать уверенные решения, думать на несколько шагов вперед, и не тратить время на эксперементы с людьми. Описанная ниже схема покажется очевидной многим из нас, но часто мы не берем ее во внимание и совершаем ошибки, которые стоят всем денег.
Читать дальше →

минилинукс

Время на прочтение3 мин
Охват и читатели8.5K
Лирическая часть

Кто из нас в детстве не разбирал игрушки, чтоб посмотреть, что же там такое внутри. Я не был исключением. Прошло всего несколько лет, и одной из игрушек стал линукс. Из абстрактного желания «сломать и посмотреть» оно формализовалось в несколько вполне конкретных задач, одной из которых стала найти некую отправную точку — минимальное нечто, которое бы грузилось и давало шелл. Пару раз я начинал собирать lfs, но до конца так и не дошел. Прочел несколько статей про разработку embedded, но там все было чересчур серьезно и по-взрослому: после предложений сооружать окружение для кросс-компиляции под различные архитектуры и удаленной отладки в панике отключал интернет. Пересмотрел несколько mini-livecd, но все они или мегадревние (ядро 2.4 и ниже) или обязательно с графикой и DE, что никак не вписывалось в мое представление об идеальном минидистре для опытов.
И вот не так давно я случайно узнал, что то, что я ищу, называется initramfs и лежит у меня под носом.
Читать дальше →

Инструменты инфраструктурной поддержки для Agile проекта на Java

Время на прочтение4 мин
Охват и читатели16K
Ни для кого не секрет, что для слаженной работы команды, особенно в проектах управляемых по методологии Agile, важен эффективный обмен информацией между участниками. Для того, чтобы информационные потоки не разрушались под влиянием человеческого фактора, стандартные процедуры по управлению информацией автоматизируются. В данной статье рассмотрен пример технической инфраструктуры, использующейся сотрудниками компании ООО «Креатив Медиа» при разработке Web-проектов на платформе Java, например, в проекте социальной сети Campus.ru.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Япония
Дата рождения
Зарегистрирован
Активность