Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

Музыкальная подсветка коллекции оптических стекол

Reading time3 min
Views4K
В музее оптики СПбГУ ИТМО есть довольно примечательный экспонат — каталог Аббе, представляющий из себя коллекцию оптических стекол различных марок и размеров. Руководство музея желало чтобы этот каталог подсвечивался под музыку, поэтому на свет появился проект музыкальной подстветки каталога, которым я собственно и занимался. Это что-то сродни задаче мигания светодиодом при помощи микроконтроллера, только помасштабнее.

image
Читать дальше →
Total votes 117: ↑116 and ↓1+115
Comments67

Sliding экранов внутри приложения

Reading time6 min
Views54K


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

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

Примером таких решений является переключение между рабочими экранами в Android, где для перемещения от одного экрана к другому достаточно выполнить жест вправо или влево. О возможной реализации подобного решения и пойдет речь в данном посте.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments33

Виджет со счетчиком непрочитанных сообщений

Reading time5 min
Views14K
Часто встречающаяся задача — создание виджета со счетчиком непрочитанных сообщений/звонков и т.п. Однако в Android нет стандартного класса для создания таких виджетов.

image

Как же все-таки создать такой виджет?
Читать дальше →
Total votes 81: ↑74 and ↓7+67
Comments22

Интерпретатор из подворотен

Reading time14 min
Views43K
Если ваше образование окончилось после второго класса, если словарный запас ограничен, а речь невнятна, если вы попросту тупы, не знаете этих непонятных латинских букв, но всё равно хотите стать программистом, вам поможет наш быдлоязык Йоба. Йоба — язык для риальных пацанов!

Ну а если серьёзно, как-то раз у нас на работе кто-то в шутку предложил написать гоп-язык, чтобы программистом мог себя почувствовать себя любой. Начинать конструкции со слова «чо» и всё такое. Тут надо заметить, что, не встретив на своём жизненном пути образования в области computer science, я пропустил все те интересные курсы по построению компиляторов, формальным грамматикам и прочим вкусностям, которые вкушают нормальные студенты на втором-третьем курсе. Книга Вирта по построению компиляторов хотя и добавила мне знания всяких умных терминов типа БНФ, но практической пользы не принесла ­— ни одного компилятора я так и не написал. Поэтому задача оказалась для меня довольно интересной.
Если вы старше 18 лет, адекватно воспринимаете обсценную лексику нашего родного языка и вам интересно, с чего начать, добро пожаловать под кат.
Читать дальше →
Total votes 192: ↑172 and ↓20+152
Comments28

Анализ памяти для Android приложений

Reading time5 min
Views42K
В Dalvik есть сборщик мусора, но это не значит, что можно игнорировать управление памятью. Даже наоборот — нужно быть особенно внимательным при использовании памяти, которая, как известно, на мобильных устройствах ограничена. В этой статье будут рассмотрены инструменты, которые значительно помогают следить за тем, как приложение использует память.
Читать дальше →
Total votes 64: ↑61 and ↓3+58
Comments19

Как хороший договор спасает нервы и монетку

Reading time14 min
Views62K
Договоры, отчеты, акты — кому охота заниматься этой скукотой, когда вокруг бьет ключом и фонтанирует идеями креативная жизнь? Особенно, если заказчик снисходительно хлопает творческого подрядчика по плечу: «Да ладно, зачем какие-то договоры. Мое слово — закон!» Остается только радостно согласиться и приступить к работе.

На заре существования нашего агентства мы вообще не стремились формализовать отношения с дорогими клиентами. Типовой договор умещался на двух машинописных листах. Содержал он минимум информации: предмет договора, сроки, цена. Если заказчиков немного, и все они — старые знакомые, то в известной степени можно положиться на их добропорядочность. Но когда клиентская база активно растет, то и проблемы множатся: задерживают выплаты, не выполняют обязательства, злоупотребляют лояльностью исполнителя. Столкнувшись с ними в полном объеме, мы собрались, подумали и составили новый типовой договор.
Читать дальше →
Total votes 140: ↑137 and ↓3+134
Comments51

Веб-кластер — опыт реального применения

Reading time9 min
Views20K
Приветствую, уважаемые сообщники!

Эта статья — о том, как мы реализовали веб-кластер для новостного портала (с пиком посещений в 130 тысяч уникальных посетителей в день — это 7Тб траффика за 3 дня — выборы и 2 последующих. Сейчас в среднем кластер раздаёт 35-40 Тб траффика в месяц), о том, как по-разному понимают одинаковые задачи программисты и журналисты, о том, как можно достичь одной и той же цели, идя разными путями.

Она будет интересна тем, кто хочет построить легко масштабируемый географически распределённый веб-кластер, не вкладывая астрономических сумм в оборудование (а по меркам телевидения — будут вообще смешные суммы).

Я больше чем уверен, что маркетологи, толкающие убер-решения свежевыпущенных продуктов, имеющих в своём названии слова «масштабируемый веб-кластер» или «horizontal infinite scalable web cluster», меня возненавидят.

Я больше чем уверен, что конкуренты наших клиентов будут удивлены простотой решения, которое мы использовали.

Читать дальше →
Total votes 97: ↑84 and ↓13+71
Comments99

«Правильный» html парсинг

Reading time7 min
Views109K
Логотип

Первый раз я запустил Eclipse еще весной, почитал книжки на английском, поставил SDK, немного поигрался и забросил. В начале зимы я купил себе первый смартфон на базе Android, но вновь вернутся к разработке меня подтолкнул недавний пост, в котором говорилось, что можно обойтись и знанием C#, с которым в отличии от Java я знаком. Мне было достаточно одного вечера, чтобы понять, что за связку Visual Studio и Monodroid я больше не сяду, позже я прочитал этот пост, где полностью согласился с автором.

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

Большинство разработчиков, получают html код страницы и перегоняют его в xml, что является неправильным подходом, так как html является «правильным» xml не всегда, вроде на хабре писали, что для браузера не обязателен тег html (современный браузер и без него должен отобразить страницу) или просто будут ошибки, тогда на помощь приходят библиотеки. Из них я выбрал HtmlCleaner.

Под катом я расскажу, как подключить эту библиотеку, а также напишем простой парсер stackoverflow.com.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments12

Как оценить задачу до начала разработки сайта

Reading time5 min
Views28K
Постановка задачи — ключ к успеху любой работы. Если задача не поставлена чётко, то невозможно даже понять, решена ли она.

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

Читать дальше →
Total votes 144: ↑135 and ↓9+126
Comments70

HTML5 как победа научного материализма

Reading time15 min
Views6.2K
Стандарт HTML5 уже почти готов к использованию. Где-то все еще идут жаркие споры по конкретным секциям DOM, видеокодекам, анимации и прочим 3D, но основа HTML5 — его синтаксис, атрибуты и теги — уже устаканились. Эти разделы стандарта не меняются уже многие месяцы; окончательно и по факту их зафиксируют релизы IE9 и FF4, после чего какие-либо их изменения в рамках пятой версии станут невозможны.
Так как костыли для старых версий IE уже созданы и обкатаны, то уже совсем-совсем скоро, начиная новый проект, можно будет открыть свой любимый редактор и, не скрывая наслаждения, написать

<!doctype html>

Сначала, конечно, html5 появится скорее в бложиках энтузиастов, чем на серьезных сайтах, но — вот увидите — через несколько лет в каждой региональной газете появятся объявления типа «ремонт и настройка ПК, заправка принтеров, 1С, сайты на HTML5».

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

Эта статья о том, почему стандарт html5 получился именно такой, и что на самом деле скрывается за его внешне обтекаемыми формулировками.
Читать дальше →
Total votes 240: ↑212 and ↓28+184
Comments194

Fragments API в Android 3.0

Reading time8 min
Views26K
В Android 3.0 введена новая концепция фрагментов, которая служит для упрощения работы с интерфейсом под разные размеры экранов. Данный топик является переводом статьи с android-developers.blogspot.com. В ней рассмотрены преимущества фрагментов, а также приведен простой, но законченный пример приложения, работающего по этому принципу.

Важная цель Android 3.0 — упростить написание программ, которые должны масштабироваться в зависимости от размеров экрана. Для этого в платформе Android уже доступны следующие средства:
  • С самого начала, UI-фреймворк был спроектирован для использования layout managers, которые позволяют описывать интерфейс так, чтобы он «подгонялся» к размерам. Примером этого является ListView, высота которого изменяется в зависимости от размера экрана, который варьируется между соотношениями QVGA, HVGA, and WVGA.
  • В Android 1.6 была введена новая концепция плотности экрана, позволяющая приложениям легче масштабировать размеры между разными разрешениями, в то время как экраны имеют почти один и тот же физический размер. Разработчики незамедлительно начали использовать эту особенность, когда были введены телефоны с высоким разрешением, такие как Droid.
  • Также в Android 1.6 разработчикам стали доступны размеры экрана, при помощи их классификации: «small» для соотношения QVGA, «normal» для HVGA и WVGA, и «large» для более больших экранов. Разработчики могут использовать систему ресурсов для выбора между различными layout'ами, в зависимости от размера экрана

Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments11

Xaps Minifier. Дополнение для Visual Studio 2010, позволяющее уменьшать размер Silverlight приложений

Reading time6 min
Views2K
Я постоянно работаю с Silverlight приложениями и выкладываю релизы регулярно. Как правило, я использую паттерн MVVM и его реализацию Prism. В результате создаётся несколько XAP файлов, содержащих сборки приложения и манифест.

Каждый, кто работает в соответствии с таким подходом, замечает, что большинство XAP файлов содержат дублирующиеся сборки. Например, при использовании библиотеки Prism, практически каждый XAP файл будет содержать все сборки из этой библиотеки. Prism добавляет порядка 300 Кб к каждому XAP файлу, что может увеличить размер приложения более чем на 1 Мб (при наличии 4-5 XAP файлов). Кроме того, дополнительные библиотеки (в первую очередь UI элементов) могут ещё более увеличить размер приложения.

Все эти факты заставили меня начать поиск пути уменьшения размеров XAP файлов.
далее
Total votes 48: ↑34 and ↓14+20
Comments5

Примеры xpath-запросов к html

Reading time4 min
Views529K
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments47

OpenGL — это просто!

Reading time2 min
Views18K
В рамках «Недели разработки для Андроид» решил поделиться кое-чем из своего опыта.
Итак, за что мы любим эти маленькие шустрые гаджеты, живущие в наших карманах и сумках? Не ошибусь, если поставлю на первое место красивую разноцветную графику. В этом нет ничего постыдного — ведь даже мудрые вожди индейских племен готовы были на что угодно ради красивых стекляшек для своей скво.
Итак, нам просто до дрожи в руках хочется написать свою прекрасную шедевральную игру, готовую произвести революцию в умах геймеров. Вот только маленькая неприятность — попытка напрямую воспользоваться drawRGB() и иже с ними сразу обламывает все мечты, ибо подобным образом написанная игра сможет получить признание разве что в Эстонии, да и то если раунд закончится раньше, чем сядет батарейка.
Читать дальше →
Total votes 53: ↑40 and ↓13+27
Comments16
12 ...
172

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity