Search
Write a publication
Pull to refresh
4
0.1
Сергей @HSerg

Разработчик

Send message

APK Downloader v 2.0

Reading time1 min
Views87K
Обновилось популярное расширение для браузера Chrome (Chromium) под названием APK Downloader, и одновременно с этим запущен специальный веб-сервис, позволяющий по ссылке на приложение из Google Play загрузить .apk-файл для установки.

image

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

Вот как, например, выглядит получение ссылки на приложение Instagram:

image

Получить расширение для браузера Chrome (Chromium) можно здесь.

Готовим пользовательское соглашение своими руками

Reading time8 min
Views75K
Пользовательское соглашение или как его еще принято называть Соглашение об использовании сервиса, является ключевым документом, на котором строится юридическая защита интернет-сервиса.

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

Особую актуальность вопросы защиты интернет-сервиса приобретают в связи с принятием так называемого «антипиратского закона», которым возлагается ответственность на информационного посредника за размещение или предоставление доступа к материалам, нарушающим интеллектуальные права третьих лиц. Закон вступает в силу с 01 августа 2013 г., в связи с чем пользовательские соглашения и схему взаимодействия с пользователем необходимо привести в соответствие с ужесточившимися требованиями.
Читать дальше →

Выжимаем максимум производительности из клавиатуры

Reading time7 min
Views255K
Чем вы занимаетесь большую часть своего рабочего дня? Скорее всего, создаёте или редактируете информацию. И у многих из вас эта информация — тексты: программный код, конфигурационные файлы, письма, строчки чатов и всё тому подобное.
Хотите создавать их быстрее и при этом расходовать на ввод текста меньше внимания? Я расскажу вам несколько эффективных способов увеличить производительность при работе с главным инструментом в этом деле — QWERTY-клавиатурой.

Сомневаетесь, стоит ли тратить на это время? Вспомните — за 30 лет в мире ПК изменилось всё, но клавиатура осталась такой же. Альтернативные способы ввода текста — распознавание речи, письма, жестов, «птичьих» языков (привет, граффити!), аккордные клавиатуры — не сработали и не стали популярными — и, вероятнее всего, ещё очень долго вы будете всё так же вводить тексты с клавиатуры.
Читать дальше →

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Reading time7 min
Views183K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →

Миниатюрный беспилотный мультикоптер QR Ladybird “Букашка”

Reading time5 min
Views135K
image
QR Ladybird от компании Walkera — небольшой квадрокоптер, продается в комплекте “включил и летай”, стоит от $90, включая доставку. Есть комплектация с FPV — к коптеру подвешена камера и передатчик видео, в пульт встроен приемник и экран — можно практиковаться в полетах «от первого лица».
Читать дальше →

RetroArch — играем в игры множества видеоприставок на Android

Reading time1 min
Views75K


На Хабре, как можно догадаться, достаточно большое количество поклонников видеоигр, которые тратили время на игрушки для Sega, Dendy, PS1, и тратят это время и сейчас, причем с удовольствием. Большая часть любителей старых консолей использует эмуляторы. На Android есть парочка хороших эмуляторов Sega, Dendy и прочих консолей, но вот проблема — все это разные эмуляторы, и ставить 5 разных эмуляторов для того, чтобы играть в 5 разных игр как-то не всегда хочется. Но теперь есть выход — мультиконсольное, если так можно выразиться, приложение-эмулятор RetroArch.

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

Программирование на Android для web разработчика или быстрый старт для самых маленьких. Часть 2

Reading time2 min
Views51K
Приветствую!

Статья является продолжением начатой мной части 1.

Предостережение


Важно: данный урок не является профессиональным. Автор урока не является специалистом в программировании для платформы Android. Я заранее приношу свои извинения, за неоправданные ожидания.

RegistrationActivity


В Activity для регистрации нужно проделать следующее:
Читать дальше →

Жизнь разработчика (в картинках)

Reading time1 min
Views67K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



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

Очень быстрый и эффективный способ расслабления глаз

Reading time4 min
Views416K

Предисловие


imageНе знаю, все ли программисты всесторонне любознательные люди, но я всегда пытаюсь получить фундаментальные знания во всех областях, которые могут быть практически полезны. В то время, когда мне в голову пришла эта идея я изучал анатомию и физиологию по журналам «Тело человека. Снаружи и внутри», ну а по работе я занимался стерео-варио фотографиями (для тех кто не знает — были такие советские календарики с ребристой поверхностью, где картинка либо казалась объемной, либо менялась). Так вот, в один из вечеров мне пришла в голову замечательная идея, которую я на протяжении уже 4х лет использую для поддержания своего зрения.
Обещаю, что эффект почувствуете сразу!
Читать дальше →

Программирование на Android для web разработчика или быстрый старт для самых маленьких. Часть 1

Reading time3 min
Views87K
Доброго времени суток.

Данный hello world ориентирован на публику которая проявляет интерес к данной теме (Android), но страх перед java не позволяет взяться за разработку. Существует возможность создавать приложения для Android на html5 (phonegap), или php (PFA), но полноценное приложение возможно написать только на Java.

О приложении


Приложение которое будет описано умеет следующее:

1. Запуск из «меню приложений» вашего смартфона
2. Регистрация используя удаленный сервер
3. Авторизация
4. Листинг данных получаемых с сервера
Читать дальше →

Резервирование пользовательских данных в Android

Reading time5 min
Views74K


Нижеизложенный материал не претендует на оригинальность или новизну решаемой проблемы, но может быть крайне полезен новичкам и тем, кто как и я, заботится о сохранности своих данных на устройствах под управлением Android. Далее в статье я ставлю перед собой задачи по обеспечению надежного резервирования данных при помощи облачных сервисов хранения данных и решаю их. Все еще интересно? Тогда добро пожаловать под хабркат.
Читать дальше →

Игровая приставка на базе Android. Подробный мануал

Reading time4 min
Views112K
Не так давно один мой знакомый, приобретя себе китайскую консоль (инфо и инфо) на Android 4.0 и установив эмулятор PS1, не мог не поделиться со мной таким «счастьем». Такая возможность использовать свое Android устройство сильно заинтересовала и я решил не только испытать все прелести эмулятора на своем смартфоне, но и пойти немного дальше…

Проблемы и трудности, с которыми я столкнулся, а также подробное иллюстрированное руководство по настройке эмулятора, смартфона и подключению к нему геймпада под катом.
Читать дальше →

Изменение настроек телефона по времени и местоположению (без gps, по вышкам операторов)

Reading time2 min
Views32K
Наткнувшись на статью: NFC-теги из карт метрополитена решил оформить данный топик.
Помнится, что года полтора назад кто-то предлагал создать программу, которая в зависимости от местоположения, по вышкам (с целью экономии батареи) самостоятельно бы включала/выключала wifi. В том давнем топике все это было на уровне идеи, не имеющей реализации. И, вот, совсем недавно, меня такая мысль посетила вновь, из-за чего я начал искать конкретную реализацию.

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

MindStream. Как мы пишем ПО под FireMonkey. Часть 3. DUnit + FireMonkey

Reading time10 min
Views9.4K
Часть 1.
Часть 2.

Здравствуйте.

В этой статье я хочу познакомить читателей с процессом переноса VCL кода в FireMonkey. В стандартной поставке Delphi, начиная по-моему с версии 2009, проект DUnit идёт из коробки.

Однако писался он в далекие времена VCL. И хотя и позволяет тестировать код написанный для FireMonkey (Благодаря консольному выводу), но у него нет «няшного» GUIRunner'a, к которому многие из нас привыкли, ведь в нём очень быстро и легко можно «убрать» те тесты которые мы не хотим запускать «именно сейчас».

image


Поехали

TeaVM — ещё один способ запускать Java в браузере

Reading time7 min
Views18K
Уважаемые читатели! Хочу поделиться с вами своим open-source проектом, над которым я работаю в своё свободное время уже достаточно давно, TeaVM. TeaVM представляет собой транслятор из байткода Java в JavaScript. Существует несколько попыток создать JVM на JavaScript, одна из самых удачных — Doppio. Однако, кроме академической, никакой ценности они не представляют, так как скорость интерпретации байт-кода оставляет желать лучшего. Более того, для интерпретации байткода необходимо как минимум загрузить этот байткод в браузер, а это вырождается в загрузку десятков мегабайт class-файлов.

В отличие от них, TeaVM не интерпретирует байткод, а генерирует JavaScript, который выполняет ровно то, что делал бы байткод, будь он запущен в реальной JVM. Проще говоря, TeaVM декомпилирует байткод Java, но не обратно в Java, а в JavaScript. Разумеется, всё это верно до определённых пределов. Во-первых, в JavaScript попросту отсутствуют некоторые вещи, привычные Java-разработчикам, такие как потоки, полноценная поддержка Юникода (например, поддержка классов символов, регулярные выражения), блокирующий ввод-вывод. Во-вторых, это обусловлено требованиями, которые я предъявлял к компилятору. Например, в TeaVM очень ограничена поддержка reflection. Это следствие одного из преимуществ TeaVM — сравнительно небольшой размер генерируемого файла. Нет, TeaVM не генерирует минимально возможный JavaScript, однако и не станет генерировать огромные многомегабайтные скрипты на каждый чих. Reflection делает невозможным какой-либо статический анализ, поэтому было принято решение от него отказаться.

Прежде чем я продолжу, я хочу для начала показать, на что способен TeaVM. Во-первых, он способен в реальном времени симулировать физику. Во-вторых, он ещё способен по этой физике рисовать красивые картинки в Canvas. Можно увидеть, что JavaScript-файлы сравнительно небольшие. Кстати, обсчёт физики я сам не реализовывал, я всего лишь взял имеющуюся библиотеку JBox2D.
Читать дальше →

Борьба с утечками памяти в Android. Часть 1

Reading time6 min
Views49K
Этой статьей мы открываем цикл статей на Хабре о нашей разработке под Android.
Согласно докладу компании Crittercism от 2012 года, OutOfMemoryError — вторая по распространенности причина «крашей» мобильных приложений.
Честно говоря, и в Badoo эта ошибка была в топе всех крашей (что неудивительно при том объеме фотографий, которые просматривают наши пользователи). Борьба с OutOfMemory — занятие кропотливое. Мы взяли в руки Allocation Tracker и начали играться с приложением. Наблюдая за данными зарезервированной памяти, мы выявили несколько сценариев, при которых выделение памяти росло с подозрительной стремительностью, забывая при этом уменьшаться. Вооружившись несколькими дампами памяти после этих сценариев, мы проанализировали их в MAT (http://www.eclipse.org/mat/).
Результат был занимательный и позволил нам в течение нескольких недель снизить количество крашей в разы. Что-то было специфично для нашего кода, но также выявились типичные проблемы, присущие большинству Android приложений.
Сегодня поговорим о конкретном случае утечки памяти. О нем многие знают, но часто закрывают на это глаза (а зря).
Читать дальше →

Как ускорить контейнер: тюнингуем OpenVZ

Reading time9 min
Views16K
image
OpenVZ — это OpenSource-реализация технологии контейнерной виртуализации для ядра Linux, которая позволяет запускать на одной системе с ядром OpenVZ множество виртуальных окружений с различными дистрибутивами Linux внутри. За счет своих особенностей (контейнерная виртуализация идет на уровне ядра, а не железа) по ряду показателей производительности – плотности, эластичности, требованиям к размеру оперативной памяти, скорости отклика и т.д. – она работает лучше, чем другие технологии виртуализации. Например, тут можно посмотреть сравнения производительности OpenVZ с традиционными системами гипервизорной виртуализации. Но, помимо этого, в Linux и OpenVZ есть и масса вариантов тонкой настройки.
В данной статье мы рассмотрим нетривиальные варианты настроек контейнеров ядра OpenVZ, которые позволяют улучшить производительность всей системы OpenVZ.
Читать дальше →

Инструменты для перевода произведений в общественное достояние

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

Эта небольшая статья подскажет вам, каким именно образом можно перевести произведение в общественное достояние.
Читать дальше →

Импорт Spine 2D анимации в Unity 3D и привязка эффектов к костям с использованием 2D Toolkit

Reading time4 min
Views42K
Здесь будет описано, как можно упростить импорт Spine анимации в Unity проект, и что нужно сделать для привязки произвольного объекта (визуальный эффект, коллайдер и т.д.) к самой анимации или отдельным её костям.

Рассмотрим на примере доступной в Unity редакторе системе частиц.
В конце статьи прилагаются готовая анимация и тестовый проект, результат в котором будет выглядеть примерно так:

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

Рисуем графики онлайн

Reading time3 min
Views16K
Началось все с того, что около трех или четырех лет назад я написал на Java собственный парсер и калькулятор математических выражений — jExpressions.

И вот, относительно недавно, в свете осваивания технологии Java EE, возникла идея сделать на основе этого парсера онлайн рисовалку графиков.

Парсер на тот момент обладал довольно экзотическим синтаксисом для вызова функций (напр. exp#3 вместо exp(3); beta#1:2 вместо beta(1,2)).
Также время от времени вылетали баги.

После нескольких часов допиливания и обезглючивания появилась на свет версия jExpressions 1.0.

После этого можно было приступить к делу.

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

Information

Rating
6,100-th
Registered
Activity

Specialization

Specialist
Lead