Наверняка большинство сколько-нибудь опытных программистов знакомы с паттерном Builder. Он позволяет сделать инициализацию структур данных более наглядной, гибкой при этом сохраняя такое полезное их свойство как неизменяемость (immutability). Вот классический пример с первой страницы выдачи гугла на запрос «java builder pattern example». При всех своих преимуществах, самый главный недостаток данной реализации паттерна — в два раза больше кода, по сравнению с обычным плоским бином. Если генерация этого дополнительного кода не проблема для любой популярной IDE, то редактировать такой класс становится достаточно утомительно и читабельность страдает в любом случае.
Пользователь
Новые альтернативы Raspberry Pi на базе Exynos: Десктоп на Android за $69 + microSD
1 мин
106KЛетом уже упоминали про ODROID-X, альтернативу Raspberry PI. И вот Hardkernel выпустила 3 новые платы для Android-разработчиков.
Энтузиасты активно обсуждают, как использовать эти решения в качестве дешевых десктопов на Android:
- fully fledged desktop os on odroid-a,
- HardKernel ODroid-X Review with Android 4.0.4,
- Linux Kernel 3.6-rc5 runs Ubuntu ARM 12.10 on ODROID-X,
- Ubuntu for Android: Now multi-core Android phones can be PCs too
+39
Небольшой адаптер позволяет играть на Xbox с контроллером от PS3 и наоборот
1 мин
8.4KДля геймеров, привыкших к конкретной игровой консоли, известна проблема, когда привыкаешь и к контроллеру этой консоли. После, если приходится играть на другом типе консоли, переучиваться нужно довольно долго. На днях был представлен новый девайс, USB-адаптер Cronus, который решает эту проблему. Функциональность адаптера очень ограничена, но главную задачу устройство выполняет.
+19
TES 5: Skyrim песня барда
2 мин
3.3KНа соседних блогах и сайтах недавно засветился кавер бардовской песни из новой игры серии The Elder Scrolls — Skyrim. Если, вдруг, кто то пропустил это видео со сказочным голосом Malukah, то советую восполнить пробел:
А дальше — больше…
А дальше — больше…
+50
Мой опыт восстановления зрения
9 мин
278KТуториал
Этим летом я был на некоторое время предоставлен сам себе – всех своих я отправил подальше от дыма, а сам, недолго думая, решил немного подтянуть здоровье. Не просто записаться в тренажерный зал и накачать «квадратиков» для пляжа, а именно обследоваться у некоторых врачей, чтобы выработать для себя вектор дальнейших действий, дабы совсем не превратиться в «овоща».
Расскажу лишь про свой опыт восстановления зрения – именно оно больше всего подвержено риску у любого «компьютерного» человека.
Расскажу лишь про свой опыт восстановления зрения – именно оно больше всего подвержено риску у любого «компьютерного» человека.
+301
Жизнь с планшетом или список приложений для Android
7 мин
311KRecovery Mode
Привет!
Сегодня хочу рассказать о своей жизни с планшетом, ну а точнее поделиться списком приложений, которые помогают мне в моей жизни и работе.
Пост написан для устройств на базе операционной системы Android, но думаю и в других системах есть аналоги.
Сегодня хочу рассказать о своей жизни с планшетом, ну а точнее поделиться списком приложений, которые помогают мне в моей жизни и работе.
Пост написан для устройств на базе операционной системы Android, но думаю и в других системах есть аналоги.
+65
Резервирование пользовательских данных в Android
5 мин
74KНижеизложенный материал не претендует на оригинальность или новизну решаемой проблемы, но может быть крайне полезен новичкам и тем, кто как и я, заботится о сохранности своих данных на устройствах под управлением Android. Далее в статье я ставлю перед собой задачи по обеспечению надежного резервирования данных при помощи облачных сервисов хранения данных и решаю их. Все еще интересно? Тогда добро пожаловать под хабркат.
+27
Получаем интернет по USB с компьютера на Android
2 мин
804KСтатья актуальна на 2010 год, современные Android могут проделывать такое одной «галочкой» в настройках
После покупки HTC Hero у меня возник вопрос: как получать интернет на коммуникаторе через компьютер? С моим предыдущим коммуникатором Toshiba G900 под управлением WindowsMobile 6 было все просто: установил «центр мобильных устройств», и на коммуникаторе появился интернет. «Эта функция не нужна», — скажите вы, ведь сейчас много точек доступа Wi-Fi, через которые можно подключиться двумя кликами. Но вот лично у меня нет Wi-Fi точки (есть ноутбук, но Android не обнаруживает Ad-hoс сети). Поэтому я был огорчен отсутствием этой функции. Все мои попытки найти мануалы на эту темы — не увенчались успехом. Поэтому я решил это сам.
Внимание: Для работы ножен root пользователь.
+45
Создание игры на ваших глазах — часть 7: 2D-анимации в Unity («как во флэше»)
6 мин
96KТуториал
В этой статье поговорим о 2D анимациях в Unity. Я расскажу о своем опыте работы с родными анимациями в юнити, о том, насколько тайм-лайны похожи на флэшевские, об управлении анимациями, event'ах, вложенности, и о том, как художник справляется с анимированием.
Для начала, немного теории.
В Unity есть две сущности:
1. Анимация (то, что отображается в окно «Animation»)
2. Mechanim дерево анимаций (то, что отображается в окне «Animator»).
Ниже я немного расскажу, что это такое и как нам может приходиться (или не пригодиться).
Для начала, немного теории.
В Unity есть две сущности:
1. Анимация (то, что отображается в окно «Animation»)
2. Mechanim дерево анимаций (то, что отображается в окне «Animator»).
Ниже я немного расскажу, что это такое и как нам может приходиться (или не пригодиться).
+23
Сериализация в Java
7 мин
372KПеревод
Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.
+40
Полезные ресурсы для гейм-дизайнера
2 мин
70KДоброго времени суток читателям. Предоставляю вашему вниманию список ресурсов и книг, которые могут быть полезны гейм-дизайнеру или любому, кто интересуется данной тематикой. Сразу скажу, что почти все ресурсы на английском языке, т.к. русских аналогов весьма мало, а полезных и того меньше.
+39
Отладка Java приложения, которое нельзя остановить. Ловим экзотику выполнения самыми доступными средствами — BTrace подход
5 мин
18KТуториал
Java приложения — значит в современном Java мире возможность встретить такое процентов на 90%, а то и больше (рассматриваем самые распространённые окружения, HotSpot based JVM версии от 1.6)
которое нельзя остановить — приложение работает, и перезапускать его по тем или иным причинам категорически нельзя
экзотика — нечто такое этакое, что не каждый день в голову взбредёт поймать (определённая последовательность вызова методов, диковинные комбинации значений параметров, ...)
доступными средствами — бесплатно, работоспособно, эффективно, легко, просто и т.д и т.п. В данной статье рассмотрен замечательный инструмент BTrace kenai.com/projects/btrace
И само собой в код Java приложения заранее ничего специально не добавлено касательно средств дебага…
+27
Как понять NullPointerException
5 мин
282KЭта простая статья скорее для начинающих разработчиков Java, хотя я нередко вижу и опытных коллег, которые беспомощно глядят на stack trace, сообщающий о NullPointerException (сокращённо NPE), и не могут сделать никаких выводов без отладчика. Разумеется, до NPE своё приложение лучше не доводить: вам помогут null-аннотации, валидация входных параметров и другие способы. Но когда пациент уже болен, надо его лечить, а не капать на мозги, что он ходил зимой без шапки.
Итак, вы узнали, что ваше приложение упало с NPE, и у вас есть только stack trace. Возможно, вам прислал его клиент, или вы сами увидели его в логах. Давайте посмотрим, какие выводы из него можно сделать.
Итак, вы узнали, что ваше приложение упало с NPE, и у вас есть только stack trace. Возможно, вам прислал его клиент, или вы сами увидели его в логах. Давайте посмотрим, какие выводы из него можно сделать.
+21
Воспроизведение MIDI звуков на языке JAVA
7 мин
26KТуториал
Прежде, чем перейти к сути, я немного расскажу вам о компьютерном звуке.
Существует два основных формата воспроизведения звуков компьютером:
цифровой (WAV-формат) и синтезированный (MIDI).
Цифровой звук является основным стандартом компьютерного звука сегодня. Именно оцифрованный звук вы слышите, проигрывая композиции в mp3 формате или прослушивая компакт-диски, просматривая фильм или играя в комьютерные игры.
Оцифрованный звук представляет собой набор битов, который последовательно описывает значение уровня амплитуды звуковой волны в каждый момент времени звучания. При его воспроизведении звуковая карта лишь переводит «цифровой» звук в привычную нам «аналоговую» форму.
Но существует и другой вид компьютерного звука — синтезированный (MIDI)
Существует два основных формата воспроизведения звуков компьютером:
цифровой (WAV-формат) и синтезированный (MIDI).
Цифровой звук является основным стандартом компьютерного звука сегодня. Именно оцифрованный звук вы слышите, проигрывая композиции в mp3 формате или прослушивая компакт-диски, просматривая фильм или играя в комьютерные игры.
Оцифрованный звук представляет собой набор битов, который последовательно описывает значение уровня амплитуды звуковой волны в каждый момент времени звучания. При его воспроизведении звуковая карта лишь переводит «цифровой» звук в привычную нам «аналоговую» форму.
Но существует и другой вид компьютерного звука — синтезированный (MIDI)
+11
2 «простых» вопроса по джаве
3 мин
64KПриветствую, уважаемый читатель.
Java — интересный и красивый язык. Но иногда на нем можно написать такое, что лучше этого не видеть. Но все равно полезно знать, что происходит и в таких, кривых, случаях.
Любителей чистого кода прошу меня извинить.
Когда-то давно на хабре была пара статей
Часть 1, Часть 2
Они очень интересные, но, к сожалению, автор не стал продолжать.
Представляю вашему вниманию еще 2 задачки (на большее не хватило сил. Оказывается, писать статьи не так-то просто.)
В конце статьи, разумеется, будут ответы с разъяснениями, а также дополнительные задания для самых сильных.
+25
Подготовка к экзамену Oracle Java SE 7 Programmer II (1Z0-804)
14 мин
80KПриветствую уважаемых хабражителей и Java-программистов!
Cтатья посвящена подготовке к сдаче экзамена Oracle Java SE7 Professional с кодовым номером 1Z0-804. Про это на Хабре уже было написано множество постов (например здесь, здесь, тут, здесь, здесь, тут, тут, и вот тут), поэтому постараюсь не повторяться и дополнить заметками о том что наиболее часто встречалось, важными нюансами, которые на мой взгляд были пропущены или недостаточно хорошо освещены в указанных статьях, и вообще в общедоступной литературе (сразу отмечу, что материал не претендует на полноту, здесь я лишь старался обозначить каверзные вопросы с экзамена и лаконично изложить некоторые сложные вещи). Так же поделюсь своими соображениями насчет того, по каким материалам лучше готовиться. С первого раза экзамен сдать не получилось, поэтому начал сохранять для себя различные заметки, где записывал всё что мне казалось сложным или трудно-запоминаемым. Которыми теперь и решил с вами поделится. Заранее прошу проявить понимание, если вы вдруг заметите ошибку, недочёт или очепятку — пишите в комментарии.
+18
Звук в Java
2 мин
14KЧасто в приложениях желательно использовать какие-то вспомогательные звуковые эффекты, например пикнуть динамиком при ошибке или проиграть мелодию на новое письмо.
Не все знают что в любом компьютере имеющем звуковую карту встроена большая библиотека звуков. Все звуковые платы поддерживают воспроизведение звука по стандарту MIDI (см. ru.wikipedia.org/wiki/MIDI) а это 128 обычных и 40 ударных инструментов.
Что такое MIDI — это стандарт на команды управления синтезатором или другими устройствами воспроизведения звука. Т.е. в .mp3, например, хранится оцифрованный звук а в файлах .mid только ноты которые воспроизводит звуковая карта.
Я опубликовал библиотеку для простого доступа к воспроизведению MIDI-звука:
Не все знают что в любом компьютере имеющем звуковую карту встроена большая библиотека звуков. Все звуковые платы поддерживают воспроизведение звука по стандарту MIDI (см. ru.wikipedia.org/wiki/MIDI) а это 128 обычных и 40 ударных инструментов.
Что такое MIDI — это стандарт на команды управления синтезатором или другими устройствами воспроизведения звука. Т.е. в .mp3, например, хранится оцифрованный звук а в файлах .mid только ноты которые воспроизводит звуковая карта.
Я опубликовал библиотеку для простого доступа к воспроизведению MIDI-звука:
+29
Обучение программированию на Java
8 мин
118KЯ собираюсь переучить на Java-программистов миллион человек.
Я собрал команду и сделал обучающий сервис, которым могу гордиться.
Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.
+153
5 вещей, которых вы не знали о многопоточности
10 мин
293KПеревод
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.
В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
+68
Генератор ASCII-артов на HTML5
9 мин
54KТуториал
Доброго времени суток, уважаемые хаброжители.
В этой статье я расскажу о том, как при помощи HTML5 можно сделать простенькое приложение, которое будет генерировать ASCII-арты на основе обычных изображений. Статья ориентирована на тех, кто только начинает свое знакомство с такой замечательной технологией, как HTML5, коим являюсь и я. Профессионалы вряд ли найдут для себя что то новое.
Копался я недавно в интернете в поисках обоев и наткнулся на одно интересное изображение(1.1мб). И меня “зацепила” идея рисовать изображения разноцветными буквами. Порывшись в интернете узнал, что это называется ASCII-art. Ну и конечно же первая мысль: “А запилю ка я приложение, что бы мои любимые обои таким образом нарисовало!”
Сказано — сделано. Есть время, есть желание — почему бы не попробовать.
В этой статье я расскажу о том, как при помощи HTML5 можно сделать простенькое приложение, которое будет генерировать ASCII-арты на основе обычных изображений. Статья ориентирована на тех, кто только начинает свое знакомство с такой замечательной технологией, как HTML5, коим являюсь и я. Профессионалы вряд ли найдут для себя что то новое.
Дело было вечером, делать было нечего
Копался я недавно в интернете в поисках обоев и наткнулся на одно интересное изображение(1.1мб). И меня “зацепила” идея рисовать изображения разноцветными буквами. Порывшись в интернете узнал, что это называется ASCII-art. Ну и конечно же первая мысль: “А запилю ка я приложение, что бы мои любимые обои таким образом нарисовало!”
Сказано — сделано. Есть время, есть желание — почему бы не попробовать.
+67
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность