Рубрика «java» - 152

Все из нас видели это:

private String mName;

Это из-за меня.
Я так и сказал — это моя вина.
Эта тема всплывает снова и снова, обсуждение на reddit напомнило, что я никогда не объяснял откуда взялась эта нотация, а также, насколько она неправильно понимается людьми. Поэтому мне бы хотелось воспользоваться возможностью, дабы прояснить некоторые вещи, и я сделаю это в двух частях:

  1. Как появилась m-нотация.
  2. Почему вы, вероятно, не понимаете, что такое венгерская нотация.

Читать полностью »

На сегодняшний день на просторах интернета можно найти массу статей о том, как начать программировать, разрабатывать приложения, игры и т.д. Как правило такие статьи пишутся профессиональными программистами, они грамотно и подробно описывают все этапы подготовки и разработки продукта, и, казалось бы, все замечательно, но есть одно но, в таких публикациях описаны технические моменты и не хватает базовых понятий на простом человеческом языке, который поймет человек, не написавший ни одного “Hello World”.

Если ты решил освоить разработку приложений на Android, то первым делом тебе советуют изучить Java. Это правильно. Ты, наполненный энтузиазмом, полный перспективных идей и верой в то что твое будущее приложение наверняка изменит мир, бежишь в книжный магазин, покупаешь самую толстую книжку по Java, несешься домой, включаешь компьютер, потирая руки и приготовившись творить, открываешь книгу и начинается… Полиморфизм, инкапсуляция, наследование, абстрактность, классы, объекты… Через полчаса желание творить пропадает, книга по Джава отправляется на дальнюю полку, а ты, разочарованный в программировании, продолжаешь жить прежней жизнью с несбывшимися мечтами.

Хватит это терпеть! Я объясню вам базовые принципы программирования для Android за 2 минуты, зная которые вы без проблем начнете писать свое первое приложение на могучем языке Джава.
Читать полностью »

Применение преобразования Фурье для создания гитарного тюнера на Android. Часть 1 - 1

В основе спектрального анализа звуковых данных лежит алгоритм, который носит название преобразование Фурье. При раскладывании исходного звукового сигнала на частотные составляющие, отдельные частоты называются гармониками. Основная гармоника определяет высоту звучания, а второстепенные гармоники определяют его тембр. Есть достаточно много мобильных приложений, которые используют преобразование Фурье для того, чтобы отобразить весь спектр частот (гармоник). Так же, есть мобильные приложения, которые служат для настройки гитар. Они работают по принципу: основная гармоника находится по самому высокому значению амплитуды в спектре. Такое утверждение не совсем верно, потому что основная гармоника определяется самой наименьшей из всех кратных этой гармонике, либо шагом между гармониками. Возникает необходимость найти способ, который позволит отобразить значение основной гармоники в спектре звукового сигнала.

В первой части статьи мы рассмотрим принцип работы дискретного преобразование Фурье, а также возможность записывать звуковые данные с Android устройства с помощью класса AudioRecord. Читать полностью »

ASN.1 — стандарт описания протоколов передачи данных. Вот уже 8 лет не дает покоя тот факт, что существуют либо слабые попытки его использовать, практически не прибегая к его полному функционалу, либо же это монстры за большие деньги, используемые отнюдь не рядовым Васей.
Причем и те и другие наследуют одни и те же черты — неудобство, перегруженность дополнительными действиями и генерацией совсем бесполезных заглушек.
На хабре появлялось уже достаточно много статей с описанием всех прелестей ASN.1, рекомендую почитать их.

Вашему вниманию предлагаю альфа-версию библиотеки, позволяющей в стиле hibernate или jackson-databind сохранить ваши данные в бинарном виде. Пока поддерживаются только нотации BER(DER).

Читать полностью »

Однажды меня посетила мысль о том, что надо закодить что-нибудь на Java для RaspberryPI. Предыстория того, как я дошёл до жизни такой, сама по себе потянет на отдельный пост. Но вот сочные технические подробности, трудности и счастливый конец ниже под катом.

Java и без 16Gb памяти? - 1

Читать полностью »

Всем привет!
У нас отличные новости — вышел Upsource 2017.2! В этом релизе мы добавили ряд наиболее часто запрашиваемых возможностей, и, как обычно, улучшили уже имеющуюся функциональность.
Давайте посмотрим, что попало в этот релиз.

Поддержка внешних инспекций кода
Если Вы используете встроенные в TeamCity инспекции кода на базе ReSharper или IntelliJ IDEA, или пользуетесь инспекциями SonarQube, теперь Вы сможете извлечь из них дополнительную пользу. Upsource 2017.2 умеет показывать результаты такого анализа в своем UI, наряду с результатами встроенных инспекций. Рецензирование кода становится немного проще, если сразу видно, какие новые потенциальные проблемы привнесло именно это изменение.
Инспекции ReSharper в Upsource

Читать полностью »

image

Много было сказано про «красоту» кода на Java, но на мой взгляд, главное — не инструмент, а умение им пользоваться. Под катом попытка написать декларативный DSL для вёрстки под Android даже не изобретая новый язык программирования!Читать полностью »

В начале ноября в Киеве уже в шестой раз пройдёт одна из ключевых в Восточной Европе Java-конференций JavaDay 2017. Хотя до события еще достаточно времени, мы предметно пообщались с одним из спикером конференции — Константином Будником, Chief BigData Technologist и Open Source Fellow EPAM Systems — о силе open-source, Big Data и будущем Hadoop.

Константин Будник, EPAM: “Apache Hadoop перешел в фазу commodity — там почти не появляется ничего нового.” - 1
Читать полностью »

Вы могли заметить, что мы опубликовали новые минорные релизы платформы CUBA и CUBA Studio. В новой версии реализованы улучшения, в основном касающиеся текущего функционала, но мы добавили и несколько новых полезных фич.

Под катом:

  • Uber JAR
  • UI-компонент для предиктивного поиска
  • Версионирование REST API
  • Балансировка нагрузки в кластере
  • Компонент приложения ZooKeeper
  • Улучшения в Polymer UI
  • Поддержка Bean Validation в CUBA Studio
  • Поддержка Groovy в слушателях сущностей

Читать полностью »

Меня давно занимала мысль как в Linux-е запускать программы на Java без вспомогательных Bash скриптов. Я не видел приемлемого решения, если не считать способ «bash script payload», когда в конец скрипта помещается бинарный файл.

Но на прошлой неделе случайно наткнулся на модуль ядра binfmt_misc, с помощью которого можно перехватить исполнение файла по его magic number. Для этого через update-binfmts добавляется собственный обработчик для получения имени исполняемого файла и аргументов пользователя.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js