Как стать автором
Обновить
8
0

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

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

Пишем, собираем и запускаем HelloWorld для Android в блокноте. Java 8 и Android N

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

Два с половиной года назад я опубликовал статью Пишем, собираем и запускаем HelloWorld для Android в блокноте. Она стала пользоваться огромной популярностью и набрала около 80 000 просмотров. С появлением новых инструментов, таких как Jack ToolChain, возникла необходимость переиздания и обновления статьи.

Когда я начал изучать Android, захотелось полностью написать и скомпилировать Android-приложение вручную — без использования IDE. Однако эта задача оказалась непростой и заняла у меня довольно много времени. Но как оказалось — такой подход принёс большую пользу и прояснил многие тонкости, которые скрывают IDE.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.
Читать дальше →
Всего голосов 67: ↑64 и ↓3+61
Комментарии22

Автономная кроссплатформенная монолитная программа на Java

Время на прочтение21 мин
Количество просмотров62K
Я люблю desktop-приложения. Признаваться в этом нынче, похоже, стыднее, чем в связях с иностранной разведкой, но это так. Нет, это не значит, что я не люблю интернет-технологии. Более того, некоторые я не только уважаю, а даже более-менее знаю. Но, тем не менее, я скучаю по тем временам, когда программа писалась на одном компьютере, потом компилировалась и запускалась на других, разных компьютерах. Тогда везде (почти) была одна система — Windows с одной и той же API, почти не было проблем совместимости на уровне приложений, никто не материл разработчиков браузеров — все берегли нервы на разработчиков WinAPI, которые умудрялись создавать конфликты даже внутри нее одной. Но это я, конечно, иронизирую, а если серьезно — иногда и сейчас хочется написать просто desktop-приложение, да так, чтобы работало оно на всех популярных системах. Трудно? Если подумать и покопать, то не очень.

Еще я люблю языки высокого уровня с аккуратной архитектурой и строгой типизацией. Мои фавориты — Java и C#. Оба они предоставляют разработчику множество преимуществ по сравнению с C++, оба избавляют от ряда забот. Чем приходится платить? Тем, что таскаешь за собой тяжелую колоду, которая называется Oracle JVM, .NET или mono. Все три колоды весят сотни мегабайт и лицензию имеют такую, что каждый пользователь вынужден качать эту штуку сам, не путая при этом разрядность своего компьютера, а главное — программа на Java не может быть совместима со всеми версиями JVM разом, не так ли? И вот — мы приходим к тому, что просто скинуть программку другу (или миллиону друзей) и не заботиться о том, что она у него не запустится, не выходит. Приходится делать хитрые сетапы, вбивать костыли, и это я еще не упомянул .NET — однажды я видел у друга сразу 3 установленных версии, причем все три были нужны разным приложениям…

Стоп! А давайте напишем программу на Java, но так, чтобы она не требовала установки на машину какой-либо JVM, чтобы одним касанием собиралась под Windows, Linux и OS X и чтобы при этом занимала совсем чуть-чуть; так, чтобы никто даже не понял, что она написана, скажем, не на C. Невозможно? Совсем наоборот! (И нет, я имею в виду не gcj, который лишает Java всех ее прелестей. Рефлексия будет работать и даже сторонние jar вы сможете запускать).

Ну и как это сделать?
Всего голосов 156: ↑146 и ↓10+136
Комментарии80

По следам Spring Pet Clinic. Maven/ Spring Context/ Spring Test/ Spring ORM/ Spring Data JPA

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

Здравствуйте!
Spring MVC, согласно обзору инструментов и технологий Java за 2014 г. от RevbelLabs, является самым популярным веб фреймворком.
Далее тот же обзор называет лидера ORM — Hibernate и лидера веб-контейнеров — Apache Tomcat. Добавим сюда самую используемую java script библиотеку jQuery, самый популярный css фреймворк Bootstrap, до сих пор самую популярную (несморя на наступление Gradle) инструмент сборки Maven, абсолютный лидер среди тестовый фреймворков JUnit и получим пример приложения на Spring от его создателей:
Spring Pet Clinic (демо приложение).
Кроме перечисленного, в этот достаточно несложный по функциональности проект влючены также Spring-Jdbc, Spring-ORM,
Spring Data JPA,
Hibernate Validator,
SLF4J,
Json Jackson,
JSP,
JSTL,
WebJars,
Dandelion DataTables,
HSQLDB,
Hamcrest,
Mockito и десятки других зависимостей.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии9

Гамбит Яровой

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

пакет Яровой


Вчера, 7 июля 2016, Путин подписал тот самый пакет Яровой, который так много обсуждали в сети.


Содержательная часть его следующая...
Всего голосов 70: ↑58 и ↓12+46
Комментарии554

Oracle прекратила разработку Java EE?

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


Прошло два года с момента выпуска Java 8 и многие с нетерпением ожидают выхода Java 9, который отодвинули на март 2017 года.

Тем временем в лагере разработчиков Java накаляются страсти. Будущее серверной платформы Java Platform, Enterprise Edition (Java EE) выглядит крайне смутно. Месяц назад компания Oracle объявила о значительной задержке с выпуском Java EE 8, и это был первый звонок. Как сейчас стало известно изданию Ars Technica, компания Oracle вовсе прекратила финансирование и разработку Java EE. Издание пишет, что традиционная бизнес-модель Oracle сейчас напрямую угрожает самому существованию платформы Java.

Созданная в Sun открытая платформа, в которую вложено столько усилий OpenSource сообщества, которая работает на сотнях тысяч серверов и корпоративных приложений, в том числе в высокопроизводительных проектах, может остаться без финансовой поддержки.

Если что-то не приносит денег, то нет причин это разрабатывать, считает Oracle. Обычный бизнес, ничего личного. И ничего нового для всех, кто знает историю Oracle.
Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии158

Теория и практика AOP. Как мы это делаем в Яндексе

Время на прочтение8 мин
Количество просмотров21K
Одна из ключевых особенностей работы в Яндексе — это свобода выбора технологий. В Авто.ру, где я работаю, нам приходится поддерживать большой пласт исторических решений, поэтому любая новая технология или библиотека встречается двумя вопросами коллег:

— Насколько это увеличит дистрибутив?
— Как это поможет нам писать меньше и эффективнее?



Сейчас мы используем RxJava, Dagger 2, Retrolambda и AspectJ. И если о первых трёх технологиях слышал каждый разработчик, а многие даже применяют их у себя, то о четвёртой знают только хардкорные джависты, пишущие большие серверные проекты и разного рода энтерпрайзы.

Передо мной стояла цель ответить на эти два вопроса и обосновать использование AOP-методологии в Android-проекте. А это значит — написать код и показать наглядно, как аспектно-ориентированное программирование поможет нам ускорить и облегчить работу разработчиков. Но обо всём по порядку.

Запасаемся поп-корном и готовим мозг к загрузке
Всего голосов 37: ↑33 и ↓4+29
Комментарии26

Хабрасливки: золотые посты «Хабрахабра» и Geektimes

Время на прочтение15 мин
Количество просмотров43K
Прошлый топ статей Хабра/ГТ было интересно почитать, но не всех он обрадовал: кому-то показалось удивительным, что рейтинг по количеству просмотров состоит в основном из попсовых материалов. Но идея сделать более хардкорный топ меня всё-таки захватила достаточно, чтобы попытаться отсортировать все посты Хабра и ГТ по качеству. Я по-прежнему считаю, что лучше всего с этой задачей справится нейросеть, и наверное это можно сделать уже сейчас, если потратить достаточно много времени, показывая ей разные статьи с пометкой «торт/не торт», но пока я выбрал подход чуть попроще и с использованием имеющихся данных.

У рейтинга по просмотрам есть очевидные недостатки: публичный счётчик на Хабре появился только в 2012 году, да и большая чать просмотров приходит из поиска, и это абсолютно случайные люди. Очевидно, что качество статей Хабра должны оценивать сами хабрапользователи, поэтому подборка должна быть основана на оценках постов. Для выбора «золотых постов Хабра» я использовал хорошо зарекомендовавшую себя знакомую по Dirty.ru и ещё одному ресурсу систему определения золотых постов как публикаций, не менее 98% голосов за которые положительны.

  1. «Делаем приватный монитор из старого LCD монитора», kfedorov — 1484 проголосовало, 18 отрицательно (2011)
  2. «История игрушки. Поле Чудес», PapaBubaDiop — 933 проголосовало, 10 отрицательно (2011)
  3. «Как мы искали Марс-3», Zelenyikot — 677 проголосовало, 8 отрицательно (2013)
  4. «Читаем QR код», tgx — 621 проголосовало, 9 отрицательно (2011)
  5. «Бейджи для Хабра, версия», idenisenko — 562 проголосовало, 10 отрицательно (2011)
  6. «Загадка выпадающего списка «Амазона»», atomlib — 558 проголосовало, 10 отрицательно (2013)
  7. «Как я наказал Firaxis или история о том, как перебрать бинарный движок через глушитель», Harkonnen — 551 проголосовало, 4 отрицательно (2010)
  8. «Банкомат. Некоторые особенности», UserSide — 548 проголосовало, 6 отрицательно (2014)
  9. «Взгляд изнутри: светодиодные лампочки», Tiberius — 542 проголосовало, 5 отрицательно (2011)
  10. «Самодельный трекинг посылок, или Туда и Обратно», legrus — 533 проголосовало, 1 отрицательно (2013)

Читать дальше →
Всего голосов 48: ↑39 и ↓9+30
Комментарии29

Важные аспекты работы браузера для разработчиков. Часть 1

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

Автор: Антон Реймер

Статья основана на вебинаре, который я проводил некоторое время назад. Рассчитана она, в первую очередь на тех, кто не знает, как работают браузеры, или тех, у кого есть пробелы в знаниях. Вероятно, здесь будет много очевидного для тех кто не первый день в веб-разработке. Статью я решил разделить на две части. В первой рассмотрим общие принципы работы браузера. Во второй части я акцентирую внимание на некоторых важных моментах: reflow и repaint, event loop.

Что такое браузер?


Браузер — программа, работающая в операционной системе. Большинство браузеров написано на языке C++. Основное предназначение браузера — воспроизводить контент с веб-ресурсов. В качестве веб-ресурса в большинстве случаев выступает html-страница. Это также может быть pdf-файл, png, jpeg, xml-файлы и другие типы. Среди огромного количества браузеров можно выделить самые популярные: Chrome, Safari, Firefox, Opera и Internet Explorer. Мы рассмотрим браузеры с открытым исходным кодом: Chrome, Firefox, Safari.

Из чего состоит и как работает браузер?



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

Пользовательский интерфейс — то, что видит перед собой пользователь, т. е. адресная строка, элементы навигации, собственное меню и т. д. Несмотря на то что пользовательские интерфейсы очень похожи друг на друга, никакого стандарта, который их описывал бы, не существует. Так исторически сложилось, что браузеры постепенно перенимали интерфейс друг у друга и становились все более похожими.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии30

Краткий обзор Kotlin и сравнение с C#

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

От автора:


Эта статья представляет собой заметки на коленке и является скорее кратким обзором Kotlin, включая небольшое сравнение с языком С# с точки зрения синтаксиса. Это мое мнение и мои размышления по поводу этого сравнительно молодого языка в мире Java-платформы, который на мой взгляд имеет хорошие шансы добиться успеха.

Читать дальше
Всего голосов 42: ↑34 и ↓8+26
Комментарии97

Пишем MVP приложение на Kotlin под Android

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


Разработка приложений на Kotlin под Android набирает популярность среди разработчиков, однако статей в русскоязычном сегменте Интернета довольно мало. Я решил немного подправить ситуацию, и написать туториал по разработке приложения на Kotlin. Мы напишем полноценное приложение с использованием всех трендовых библиотек (кроме RxJava) в мире Android-разработки. В конце у нас должно получиться расширяемое и легко тестируемое приложение (сами тесты мы писать не будем).
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии24

Простые опыты с ребенком дома

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

Пример очень неудачного опыта, пояснение в разделе “о технике безопасности”

К моему предыдущему посту было множество комментариев по части экспериментов с детьми. Тогда я пообещал написать отдельный пост о простых увлекательных опытах. Сейчас я это обещание выполняю. Данная статья будет вводной, в ней я расскажу только о самых популярных и известных экспериментах которые легко выполнить дома с ребенком.
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии164

ФАС проверит регистратора RU-CENTER из-за роста тарифов

Время на прочтение2 мин
Количество просмотров12K
C 1 марта 2016 года крупнейший российский регистратор RU-CENTER объявил о резком повышении тарифов на продление доменов. Продление доменов .RU и .РФ выросло до 900 руб.

Регистратор отменил партнёрские тарифы, а вместо них запустил клубную программу — систему скидок, «позволяющую постоянным клиентам с широким набором услуг экономить на их покупке и продлении». Для вступления в клубную программу клиенту предлагается оплатить членский взнос от 990 руб до 44 900 руб в год.

Вслед за лидером тарифы начали повышать и некоторые другие регистраторы, хотя кое-кто поступил наоборот — снизил тарифы, чтобы привлечь «беженцев» из RU-CENTER.

Понятно, что повышение цен, скорее всего, вызвано ростом курса доллара — эдакие антикризисные меры. Но коммерческий директор RU-CENTER заявил, что причина в другом. Компания якобы «стремится сделать работу с партнёрами более прозрачной».
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии64

Что читать о перспективных языках программирования

Время на прочтение7 мин
Количество просмотров46K
image

Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии47

Spring Boot: от начала до продакшена

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

В данной статье я попробую расписать все шаги, которые потребуются для создания небольшого проекта на Spring Boot и развертывания его на боевом сервере.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии38

Форум Технологий Mail.Ru Group: v5.0

Время на прочтение3 мин
Количество просмотров11K
Весенний Форум Технологий: что, где, когда

9 апреля 2013 года Mail.Ru Group приглашает программистов, системных администраторов и разработчиков мобильных приложений на пятый Форум Технологий. Специалисты Mail.Ru Group и других технологических компаний расскажут о последних тенденциях и трендах, а также о решении сложных задач в рамках разработки проектов. Кстати, в этом году впервые на Форуме Технологий будет организован отдельный поток, посвященный теме мобильной разработки.

Кратко — о том, почему на ТехФорум нужно идти:
• Мы собрали IT-спецов, которые поделятся настолько ценными знаниями, что посещение их докладов может быть приравнено к промышленному шпионажу
• Один день на Форуме Технологий по заработанным очкам экспы равноценен трём месяцам работы над высоконагруженным проектом…
• …или шести месяцам чтения Stack Overflow



Читать дальше →
Всего голосов 53: ↑46 и ↓7+39
Комментарии2

Лекции Технопарка. 2 семестр. Java

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


В эфире очередной выпуск материалов рубрики «Лекции Технопарка». На этот раз вы можете изучить лекции курса, посвящённого углублённому программированию на Java. Цель курса — получение студентами практических навыков создания клиент-серверного приложения на примере разработки сервера простой многопользовательской online-игры в малых группах (4-6 человек).
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии6

Hibernate. Основные принципы работы с сессиями и транзакциями

Время на прочтение14 мин
Количество просмотров249K
В моей первой статье на Хабре я хотел бы поделиться некоторыми соображениями и замечаниями по работе с Hibernate, касающихся сессий и транзакций. Я остановился на некоторых нюансах, которые возникают при начале освоения этой темы. Признаюсь, сам пока Junior-программист, с Hibernate работал не постоянно, поэтому, как всегда, возможны ошибки, коль заметите оные, буду благодарен за поправки.

Библиотека Hibernate является самой популярной ORM-билиотекой и реализацией Java Persistence API. Часто используется как ORM-провайдер в обычных Java-приложениях, контейнерах сервлетов, в частности, в сервере приложений JBoss (и его потомке WildFly).

Начнём, пожалуй.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии9

Как я мониторил Avito по SMS

Время на прочтение8 мин
Количество просмотров62K
Как известно, на «Авито» периодически появляются товары очень хорошего качества и при этом очень дешевые. Но появляются они редко, висят там мало и исчезают быстро.

Поэтому возникла у меня идея: а не поискать ли сервис, который раз в несколько минут проверяет объявления, и если появилось что-то интересное для меня — оповещает об этом? При этом оповещать лучше всего по смс, а то почту я не всегда проверяю оперативно.

Гуглинг выдал несколько таких сервисов, «всего» от 3 руб за смс или от 4 руб в сутки.

В итоге, я решил написать такой сервис самостоятельно, но об этом дальше…
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии67

О возможностях RAW для новичков

Время на прочтение9 мин
Количество просмотров113K
Камеры и разнообразнейшие мобильные гаджеты, умеющие фотографировать, уже стали привычными предметами повседневности. Кому сейчас придёт в голову, например, переписывать какой-то нужный текст, когда можно просто достать смартфон и отщёлкать нужные страницы? Зачем пытаться объяснить на словах, как выглядит что-то, если можно это что-то отснять и потом просто предъявить фото на планшете? Сегодня фотографировать не умеют разве что пылесосы — и то не факт, что скоро производители не научат делать это и их тоже. Вон, камеры, не требующие питания, уже сделали.



Совершенно закономерным этапом совершенствования цифровой техники стал тот факт, что формат RAW вырвался из рамок профессиональных зеркальных фотоаппаратов и стал появляться и в «мыльницах», компактах и даже в смартфонах/планшетах. И если вы являетесь обладателем девайса, поддерживающего функцию съёмки в RAW, но не знаете, что это и с чем это едят — вам под кат. Формат RAW — довольно интересная и дающая массу творческих возможностей штука, хотя и требующая умения с собой обращаться…

Пост расчитан на новичков и тех, кто совершенно не в теме RAW-файлов. Любители фотографии вряд ли найдут здесь для себя что-либо новое, но могут помочь новичкам в комментариях. ;)

Achtung! Под катом тяжеловесные GIF'ки.
Эх, куда делись полароиды...
Всего голосов 70: ↑65 и ↓5+60
Комментарии86

Еще раз про IP-адреса, маски подсетей и вообще

Время на прочтение7 мин
Количество просмотров1.5M
Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
Читать дальше →
Всего голосов 286: ↑261 и ↓25+236
Комментарии204
1
23 ...

Информация

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