Pull to refresh
8
0
Никита @Nikiti4

User

Send message

Разработка под Android в NetBeans IDE без плагинов. Часть 1

Reading time10 min
Views48K
Обычно у разработчика есть свой любимый инструмент, которым ему пользоваться удобнее, чем другими. Однако бывает так, что платформа заставляет разработчиков брать в руки инструмент, который не так удобен, как ему хотелось бы, или просто чем-то не устраивает. Так получилось, что традиционно приложения под Android пишут при помощи Eclipse, поскольку Google приняли решение о том, что будут разрабатывать официальный плагин, ADT, именно для этого редактора. В результате тем разработчикам, которые им не пользовались, волей-неволей пришлось его освоить.

К счастью, Google также предоставляют систему сборки, которая работает независимо от имеющейся в наличии IDE. А это означает, что можно настроить любой редактор для работы с приложениями Android. Лично я предпочитаю писать код на Java в NetBeans IDE и хочу поведать о том, как его можно настроить для этого. Есть такие плагины, как nbandroid, но разрабатывается он нерегулярно, энтузиастами, так что есть смысл воспользоваться гибкостью NetBeans и задействовать официальную систему сборки напрямую из редактора.
Посмотрим, как это можно сделать
Total votes 21: ↑16 and ↓5+11
Comments4

Исключения в Java, Часть I (try-catch-finally)

Reading time23 min
Views439K
Это первая часть статьи, посвященной такому языковому механизму Java как исключения (вторая (checked/unchecked) вот). Она имеет вводный характер и рассчитана на начинающих разработчиков или тех, кто только приступает к изучению языка.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

1. Ключевые слова: try, catch, finally, throw, throws
2. Почему используем System.err, а не System.out
3. Компилятор требует вернуть результат (или требует молчать)
4. Нелокальная передача управления (nonlocal control transfer)
5. try + catch (catch — полиморфен)
6. try + catch + catch + ...
7. try + finally
8. try + catch + finally
9. Вложенные try + catch + finally


1. Ключевые слова: try, catch, finally, throw, throws


Механизм исключительных ситуаций в Java поддерживается пятью ключевыми словами
  • try
  • catch
  • finally
  • throw
  • throws


«Магия» (т.е. некоторое поведение никак не отраженное в исходном коде и потому неповторяемое пользователем) исключений #1 заключается в том, что catch, throw, throws можно использовать исключительно с java.lang.Throwable или его потомками.
Читать дальше →
Total votes 67: ↑47 and ↓20+27
Comments24

Делаем визуальный web-редактор документов на основе LibreOffice, jodconverter и TinyMCE

Reading time7 min
Views27K
Как же я люблю спецификацию офиса!С написания предыдущей статьи про генерацию Excel документов по шаблону прошло много времени и задача несколько изменилась. Новая задача была поставлена следующим образом: из готового документа excel или word сделать шаблон через веб-интерфейс. В процессе формирования подставлять в шаблон нужные значения, убирать и/или «клонировать» куски шаблона. После формирования, документ должен быть доступен пользователю для визуального редактирования в браузере. Готовый документ должен сохраниться на сервере, быть доступным для скачивания пользователем как в своём расширении (*.doc/*.xls), так и в pdf. При этом верстка скачиваемого файла должна быть идентична шаблону, который был загружен в самом начале (без всяких искажений полей и областей печати).
Что же, задача есть — будем решать!
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments11

Слишком быстрый, слишком мегаморфный: что влияет на производительность вызова метода в Java?

Reading time9 min
Views21K
От переводчика:
спор сторонников написания final везде и всюду и их противников сродни спору остроконечников и тупоконечников. Как и в некоторых других сообществах, в нашей компании этот вялотекущий спор шел годами. И только эта статья Ричарда Вэрбёртона (Richard Warburton) позволила нашим остроконечникам взять верх.


О чём речь?

Начнем с небольшого рассказа. Несколько недель назад я отправил в список рассылки Java core libs своё предложение убрать модификатор final с некоторых методов. В результате возникло несколько тем для дискуссии. Одна из них, например, — выяснить, в какой степени ухудшится производительность вызова метода, который был final, если этот final с него убрать.

У меня были некоторые соображения о том, возникнет регрессия производительности или нет, но я сначала попытался узнать, публиковал ли кто-нибудь уже результаты бенчмарков по этому вопросу. К сожалению, я ничего не смог найти. Это не означает, что они не существуют или что другие люди не исследовали ситуацию, но я не встречал никакого кода, прошедшего экспертную проверку. Так что самое время написать несколько бенчмарков.
Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments5

Лямбда-выражения в Java 8

Reading time19 min
Views463K
В новой версии Java 8 наконец-то появились долгожданные лямбда-выражения. Возможно, это самая важная новая возможность последней версии; они позволяют писать быстрее и делают код более ясным, а также открывают дверь в мир функционального программирования. В этой статье я расскажу, как это работает.

Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.

Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
Читать дальше →
Total votes 60: ↑51 and ↓9+42
Comments24

Dual boot ArchLinux и Windows 8 на UEFI без GRUB c помощью rEFInd

Reading time3 min
Views93K
Инструкция для новичков, о том, как сделать красивый dualboot windows и archlinux (и других ОС) через efi без grub и лишних заморочек.

Фото для привлечения внимания:

asus g46vw rEFInd
Читать дальше →
Total votes 49: ↑45 and ↓4+41
Comments40

Работа с сетью в Android: трафик, безопасность и батарейка

Reading time8 min
Views84K
На сегодняшний день в Google Play насчитывается более 800 тысяч приложений. Многие из них реализованы на основе клиент-серверного общения. При разработке таких приложений нужно учесть три основных момента, о которых пойдет речь в этой статье.

Читать дальше →
Total votes 69: ↑63 and ↓6+57
Comments19

Мобильная аналитика. Теперь бесплатно!

Reading time3 min
Views13K
Друзья, мы рады поделиться с вами хорошей новостью — официальный запуск сервиса автоматизированного продвижения приложений Appintop состоялся! Кроме того, мы приготовили для вас отличный подарок, на который ушло несколько месяцев кропотливого труда. Это модуль рыночной аналитики SPY, который доступен абсолютно бесплатно! Подписка на подобные сервисы стоит около $10 000 в месяц.

Модуль SPY позволяет:
— просматривать, сколько зарабатывают ТОП-400 приложений по 25 странам;
— подсматривать за конкурентами (выручку и установки);
— выбрать нишу для приложения;
— узнать, сколько нужно установок, чтобы выйти на любую позицию по любому региону;
— узнать, сколько вы будете зарабатывать на определенной позиции;
— выбрать страны для продвижения;
— искать объекты для инвестирования;
— и многое другое.

Каким образом мы собираем данные?

Доступ к модулю SPY бесплатен, но с одним условием: взамен вам необходимо предоставить iTunes connect вашего приложения. Это позволяет нам делать аналитику еще более точной. В системе насчитывается уже более 5000 iTunes connect’ов приложений, которые отдают нам свои данные по установкам и заработку. Большинство аналитических сервисов работают по такой же схеме, и только мы предоставляем все аналитические данные абсолютно бесплатно!

Подключая свой iTunes connect, вы получаете доступ к удобной системе аналитики по 25 самым крупным странам и по ТОП-400 позиций по каждой из них:

image

Как создавался модуль SPY

Создание подобного модуля было очень непростой задачей как с технической стороны, так и со стороны получения iTunes connect’ов. Несколько крупных аналитических компаний, собрав приличный пул приложений, стали монополистами на рынке мобильной аналитики. Но мы верили, что можно создать технически более совершенный сервис, и главное, сделать его бесплатным! Разработчики не должны платить за аналитику, тем более по $10 000 в месяц.
Читать дальше →
Total votes 39: ↑24 and ↓15+9
Comments39

Анализируем Хабрахабр с помощью Google Page Speed

Reading time3 min
Views52K
Google Pagespeed — утилита для анализа производительности клиентской части Web-приложения. Довольно обширный анализ укажет на те вещи, которые следует оптимизировать на сайте, повысив скорость и удобство для аудитории. Инструмент полезный и постоянно дополняется новыми возможностями. Проведем анализ Хабра и посмотрим на оценку и рекомендации, которые покажет нам Pagespeed.
image
Читать дальше →
Total votes 45: ↑33 and ↓12+21
Comments22

Пишем файловую систему в ядре Linux

Reading time10 min
Views59K

Для кого эта статья


image

Данная статья составлена по материалам практики по курсу операционных систем в Академическом университете . Материал готовился для студентов, и ничего сложного здесь не будет, достаточно базового знания командной строки, языка C, Makefile и общих теоретических знаний о файловых системах.

Весь материал разбит на несколько частей, в данной статье будет описана вводная часть. Я коротко расскажу о том, что понадобится для разработки в ядре Linux, затем мы напишем простейший загружаемый модуль ядра, и наконец напишем каркас будущей файловой системы — модуль, который зарегистрирует довольно бесполезную (пока) файловую систему в ядре. Люди уже знакомые (пусть и поверхностно) с разработкой в ядре Linux не найдут здесь ничего интересного.
Читать дальше →
Total votes 113: ↑110 and ↓3+107
Comments9

Конкурс приложений для умных часов Samsung Gear App Challenge

Reading time3 min
Views8.2K
И снова здравствуйте!

Если кто-то ещё не знает, Samsung запускает новый конкурс Samsung Gear App Challenge для умных часов. Общий призовой фонд составляет $1 250 000. Все победители также получат поддержку в продвижении их приложений от компании Samsung.


Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments34

Геокодер OSM на Java

Reading time15 min
Views26K
Привет, дорогие читатели хабра. В этой статье поговорим

  • Про адреса и хранилища данных с нечеткой схемой
  • Про обработку геоданных на java, а именно про Java Topology Suite
  • Про стоимость «простоты» для разработчика
  • Про pure Java nosql документную бд / движок полнотекстового поиска — Elasticsearch.

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments15

Тайны кнопок в Android. Часть 3: Кнопки в главном меню

Reading time8 min
Views63K
Главное меню — один из основных инструментов для взаимодействия пользователя с приложением. В Android 2.3.x и раньше оно было «спрятано» на аппаратной кнопке Menu, и разработчики рисовали меню кто как умел. Но начиная с Android 3.0 недоработка была исправлена, меню стало стандартным компонентом на Action Bar, и получило ряд новых возможностей. При этом процесс разработки меню практически не претерпел изменений. Меню в Android — это не просто набор кнопок, на которые можно вешать OnClickListener. В Android с меню можно сделать куда больше, чем кажется на первый взгляд.

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

Пример главного меню Пример главного меню
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments9

Агиль по-нашему, или кое-что о российских инновациях в софте

Reading time11 min
Views34K
Когда говорят, что инновации Made in Russia — это только спорные проекты вроде «Ё-мобиля» паровоза Черепановых, однозначно неоспоримые вроде космических ракет и прочих полу- и совсем неполу-военных изделий, или голые идеи на экспорт — не верьте. У нас есть чем похвастать, и мне за это гордо.

За прошедшие XX-надцать лет моя компания выросла из мелкого местечкового мухомора в топы рейтингов IDC и верхне-правильный угол «магического квадрата» Гартнера. Красивый офис на главной улице страны, Слон Дали на ресепшене, почти 3 тысячи человек в штате, 30+ офисов по всему миру… и прочие хвалилки. Но здесь не про это.

Почему это получилось? Много причин. Например, мой неизменный принцип: пробовать, пытаться и не бояться ошибок. А еще ― партнёрская программа, работа с ритейлерами, онлайнерами, столицами и провинциями ― там много чего было, но и это не по данной теме.

Все перечисленное — вторично (да простят меня те, кто несёт эту службу). Первично — наши технологии и продукты (в смысле, просто софт, а не «софт+всё остальное»). Поскольку если есть софт — всё остальное можно настроить. Если же нет главного — товара, — то всё остальное нет смысла строить. Иначе бизнес (продажи) будет либо одноразовым, либо коррумпированным, что мне претит категорически и фатально.



Итак, софт. Чем здесь можно гордиться? Есть чем! Расскажу вам, уважаемые хабравчане, про «Шестёрку».
Кого и сколько раз уволили, что сделали в Праге и почему талисманом проекта стала кофеварка...
Total votes 134: ↑113 and ↓21+92
Comments28

JSR 133 (Java Memory Model) FAQ (перевод)

Reading time25 min
Views149K
Добрый день.
В рамках набора на курс «Multicore programming in Java» я делаю серию переводов классических статей по многопоточности в Java. Всякое изучение многопоточности должно начинаться с введения в модель памяти Java (New JMM), основным источником от авторов модели является «The Java Memory Model» home page, где для старта предлагается ознакомится с JSR 133 (Java Memory Model) FAQ. Вот с перевода этой статьи я и решил начать серию.
Я позволил себе несколько вставок «от себя», которые, по моему мнению, проясняют ситуацию.
Я являюсь специалистом по Java и многопоточности, а не филологом или переводчиком, посему допускаю определенные вольности или переформулировки при переводе. В случае, если Вы предложите лучший вариант — с удовольствием сделаю правку.
Этот статья также подходит в качестве учебного материала к лекции «Лекция #5.2: JMM (volatile, final, synchronized)».

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Ну и да, приходите учиться ко мне!


JSR 133 (Java Memory Model) FAQ


Jeremy Manson и Brian Goetz, февраль 2004

Содержание:
Что такое модель памяти, в конце концов?
Другие языки, такие как C++, имеют модель памяти?
Что такое JSR 133?
Что подразумевается под «переупорядочением» (reordering)?
Что было не так со старой моделью памяти?
Что вы подразумеваете под «некорректно синхронизированы»?
Что делает синхронизация?
Как может случиться, что финальная поля меняют значения?
How do final fields work under the new JMM?
Что делает volatile?
Решила ли новая модель памяти «double-checked locking» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →
Total votes 56: ↑51 and ↓5+46
Comments32

Текст любой ценой: PDF

Reading time12 min
Views90K
Продолжаем разбирать текстовые форматы на предмет получения текста. Итак, обещанный ранее PDF.

С portable document format'ом не всё так просто, как DOCX или ODT, что мы рассматривали в прошлый раз, но всё же это всё ещё изначально текстовый, а не бинарный формат. Вы удивлены? Тогда давайте посмотрим на то, что там внутри. Дальше действительно много текста.

Читать дальше →
Total votes 77: ↑75 and ↓2+73
Comments20

Список всевозможных методов монетизации мобильных игр

Reading time7 min
Views72K
Вы связаны с разработкой игр? Маркетингом игр? Сколько статей о монетизации игр вы прочли в последнее время? Лично я – очень много. Статьи, видео, слайды, аналитические обзоры и т.д. Конечно, понятно и очевидно, что никто не скажет вам супер-секрета успешной монетизации. Просто потому, что его нет и не может быть. Просто потому что, во-первых, плохую игру не спасет ни одна монетизация, а во-вторых, все игры разные.
Статья ниже – это список всевозможных монетизационных механик, которые встречались мне в играх, статьях и других источниках. Вместо того чтобы разбирать конкретные игры, я хочу перечислить как можно больше способов монетизации с небольшими комментариями.
Статья не предназначена для людей, считающих, что все это промыслы жадных разработчиков, а вся индустрия мобильных игр – это алчные корпоративные сволочи, закапывающие некогда прекрасные идеалы игрового мира не знавшего F2P.

Читать дальше →
Total votes 56: ↑47 and ↓9+38
Comments14

«Правило ноля»

Reading time5 min
Views47K
Применительно к с++03 существует “правило трех”, с появлением с++11 оно трансформировалось в “правило 5ти”. И хотя эти правила по сути являются не более чем неформальными рекомендациями к проектированию собственных типов данных, но тем не менее часто бывают полезны. “Правило ноля” продолжает ряд этих рекомендаций. В этом посте я напомню о чем, собственно, первые 2 правила, а также попробую объяснить идею, стоящую за “правилом ноля”.
Читать дальше →
Total votes 73: ↑66 and ↓7+59
Comments24

Строим веб-приложение на Java без JEE и Spring

Reading time2 min
Views39K


Данная статья будет интересна тем, кто вдруг осознал, что ему хочется
попробовать создать что-то без навязанного обществом JEE и Spring.

Вы, о дорогой Java Смельчак, не хотите быть винтиком в огромном механизме вашего Фреймворка?
Вам надоело чувствовать себя «машинисткой» по написанию конфигов и настроек?
Вы хотите решать задачи так, как хочется вам, а не так, как это видится автору унифицированной на нужды
миллионов библиотеки?

Тогда добро пожаловать под кат, где я поделюсь с вами полезными находками Мира без Фреймворка.

Читать дальше →
Total votes 49: ↑30 and ↓19+11
Comments30

Построение системы оптического распознавания структурной информации на примере Imago OCR

Reading time19 min
Views37K
В настоящей заметке я расскажу о том, как можно построить систему оптического распознавания структурной информации, опираясь на алгоритмы, применяющиеся в обработке изображений и их реализации в рамках библиотеки OpenCV. За описанием системы стоит активно развивающийся open source проект Imago OCR, который может быть непосредственно полезен в распознавании химических структур, однако в заметке я не буду говорить о химии, а затрону более общие вопросы, решение которых поможет в распознавании структурированной информации различного рода, например таблицы или графики.
Читать дальше →
Total votes 70: ↑67 and ↓3+64
Comments5

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity