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

Подключение планшета Wacom к последовательному (Com, Serial) порту и работа через usb-com адаптер.

Время на прочтение 2 мин
Количество просмотров 2K
Чулан
При переходе с десктопа на лэптоп встала проблема подключения планшета Wacom Intuos. Моя модель достаточно старая и подключается через COM порт, который в лэптопах уже давно не используются. Покупать новый 6×8 дюймовый планшет только из-за usb смысла нет. Проще купить com-usb адаптер. Wacom гарантирует работу только с Keyspan, но они достаточно дороги. Зато есть множество дешевых адаптеров, большинство из которых собраны на чипе Prolific. В итоге взял TRENDnet TU-S9. С ним все заработало, думаю с другими «Пролификами» тоже проблем не должно быть.

Теперь о трудностях подключения

Интернет полнится рассказами о черной магии и танцах с бубном при подключении Wacom-ов. «Wacom Tablet Properties» в Control Panel в упор не видит планшет. Промучавшись целый день, все наконец заработало. Драйвера для Wacom брал здесь. Вся серия 6.x должна работать. Я подключал через com-usb адаптер, но, думаю, через com порт будет так же.
Читать дальше →
Всего голосов 65535: ↑32767.5 и ↓32767.5 0
Комментарии 0

System.Addin или «Игры с надёжными плагинами». Часть 1

Время на прочтение 4 мин
Количество просмотров 3.4K
.NET *
Введение.

Доброго времени суток. Я думаю, что абсолютное большинство из вас сталкивалось с проблемой расширяемости приложений. Точно также я думаю, что многим из вас приходилось копать Reflection для выяснения того, является ли сборка плагином к вашей программе. Многим не нравилось то, что в .NET сборки по умолчанию загружаются в один домен с приложением, а затем их нельзя было выгрузить. Многие, конечно, создавали объекты в отдельных доменах через CreateInstanceAndUnwrap, но всё это приходилось делать руками. В общем «мыши плакали и кололись…». С появлением System.Addin разработчики получили в свои руки инструмент для создания расширяемого приложения, который лишён этих проблем, что называется, «из коробки». Об этой технологии я и расскажу в нескольких статьях.
Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Комментарии 53

Паттерн проектирования «Адаптер» / «Adapter»

Время на прочтение 6 мин
Количество просмотров 86K
Совершенный код *
Почитать описание других паттернов.

Пожалуй, начнем.
Для начала, поясню несколько организационных вопросов.
  • Описание того или иного паттерна, является моей сугубо личной интерпретацией теоретического и практического материала, собранного из книг и интернет-статей;
  • При построении UML-диаграмм, я буду использовать свободный редактор от компании astah, ввиду его простоты и независимости от конкретного языка или среды. При этом, диаграммы не будут отличатся изобилием картинок и цветов, но будут ясно отображать суть паттерна;
  • При реализации практических примеров, язык программирования будет выбираться совершенно случайно. Однако, я буду стараться подбирать те языковые средства, на которых данный паттерн реализуется не тривиально;
  • Каждый мой пост, будет содержать как минимум 5 секций — Проблема, Описание патерна, Практическая задача, Диаграмма классов и Реализация;
  • Если Вы, с чем-то не согласны или у Вас есть дополнения к материалу, изложенному мной — я буду рад их почитать в комментариях. Однако, помните — я тоже изучаю паттерны вместе с Вами :)

Читать дальше →
Всего голосов 150: ↑126 и ↓24 +102
Комментарии 62

Пишем простое приложение с использованием GoogleMap и прокачанным SimpleCursorAdapter

Время на прочтение 8 мин
Количество просмотров 10K
Разработка под Android *
Из песочницы
Разработка приложений под платформу Android становится все более и более массовой. Так, мне недавно довелось заниматься разработкой клиентской части такого приложения, фактически с нуля разбираясь в премудростях этого дела, опираясь лишь на базовые знания Java.

Здесь на примере простого приложения, которое позволяет выбрать станцию метро из списка и отобразить её на карте, показаны некоторые полезные фичи работы с адаптером для ListView, реализованы простейшая работа гуглокарты и взаимодействие с встроенной БД.
Весь проект можно скачать на github по ссылке в конце статьи.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 15

ZF2: Получить db adapter без использования service locator

Время на прочтение 1 мин
Количество просмотров 4.7K
Zend Framework *
Recovery mode
Перевод
Привет, читатели!

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

Читать дальше →
Всего голосов 9: ↑4 и ↓5 -1
Комментарии 6

Асинхронная добыча меток utm

Время на прочтение 4 мин
Количество просмотров 7.8K
Блог компании TINKOFF JavaScript *Проектирование и рефакторинг *
Из песочницы
Недавно, в процессе разработки клиентской части веб-приложения, возникла необходимость определять метки рекламной кампании, приведшей пользователя на сайт.

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

Усложнение задачи привело к желанию упростить код, участвующий в ее решении.

На примере решения такой задачи, данный пост пытается показать, как проектирование и over engineering может помочь вам в разработке гибких и легко изменяемых приложений.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 6

USB Monitor Adapter или как я искал смысл жизни

Время на прочтение 3 мин
Количество просмотров 88K
Занимательные задачки
Из песочницы
Всем привет. У меня возникла идея. Я решил воплотить ее в жизнь.

Достались мне два монитора, почти бесплатно. Где я взял мониторы — совсем другая история. Так как у меня нет стационарного компьютера, а есть ноутбук, к которому уже был подключен один монитор, решил сделать систему из over999 3 мониторов, как в лучших голивудских боевиках. Да и мне скучно и одиноко по вечерам работать с кодом будет удобнее, я же вроде как программист. Но так как это ноутбук и у него всего 2 выхода на мониторы (один VGA и один HDMI), а следовательно — подключить к нему можно только 2 монитора из 3, то пути решения моей проблемы должны были стать совершенно не стандартными и интересными.
Читать дальше →
Всего голосов 26: ↑18 и ↓8 +10
Комментарии 43

Делаем parallax header в RecyclerView

Время на прочтение 5 мин
Количество просмотров 17K
Блог компании ЕТранспорт Разработка мобильных приложений *Разработка под Android *
Приветствую!
С приходом material дизайна приходят и новые элементы. Например, появился RecyclerView, который многим уже известен. Про него на хабре писали не раз: тыц, туц.

Вроде как пользоваться им — понятно, но ведь хочется большего. Обычно при переходе на новые альтернативы чего-то не хватает. Вот и мне не хватило того, что есть. Понадобилось мне сделать parallax эффект, как в Google Play на странице конкретного приложения. Реализации для ListView и ScrollView имеются. Поискал я в великом и могучем, и все, что нашел — этот репозиторий. Решение вроде рабочее, да и народ пользуется. Однако мне не понравилось его юзабилити. И как водится, решил написать свое.
И что же вышло!?
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 6

Очень удобный абстрактный адаптер для RecyclerView своими руками

Время на прочтение 25 мин
Количество просмотров 24K
Разработка под Android *
Из песочницы
Когда-то, на заре моей карьеры Android-разработчиком, я просматривал примеры уже имеющихся приложений и в прекрасном, словно солнышко весной, U2020 я нашел пример очень удобного адаптера. Имя его BindableAdapter. Долгое время я использовал его как основу своих адаптеров для ListView и GridView, но их эра приходит к своему закату и наступает эра RecyclerView. Этой эре нужен новый удобный адаптер, и я попытался его сделать.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 3

Псевдо-инкапсуляция легаси include-ов когда нет времени рефакторить

Время на прочтение 4 мин
Количество просмотров 6.5K
Ненормальное программирование *PHP *Программирование *Проектирование и рефакторинг *ООП *
Сегодня хочу рассмотреть миграцию кода из далекого прошлого в современный фреймворк.

Наиболее частая ситуация, которую я могу привести в пример — str_repeat('очень-', 20) старый код, не знающий даже классов, планируется перенести или частично использовать в современном фреймворке, но переписывать тысячи строк и десятки зависимостей нет времени. Такое бывает, когда заказчик вдруг решает существенно модернизировать или развивать проект, который 10+ лет работал без изменений, а сапортил его один парттайм-олдскул-программист изредка перезагружая пару-тройку сервисов и восстанавливая пароли.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 1

Легкая работа со списками — RendererRecyclerViewAdapter

Время на прочтение 5 мин
Количество просмотров 14K
Разработка мобильных приложений *Разработка под Android *
Из песочницы
В последнее время мне часто приходилось переписывать много адаптеров для списков, и каждый раз я брался за голову — в адаптере находилась бизнес-логика, сетевые запросы и роутинг приложения и многое другое. Все это очень сложно поддавалось изменениям.

Поначалу я как обычно выносил все лишнее из адаптеров в презентеры, фрагменты и другие классы. В итоге я пришел к мнению, почему бы не:

  1. «обезопасить» свои адаптеры от внесения туда лишней логики;
  2. переиспользовать биндинги ячеек;
  3. добиться какой-то универсальности для работы с несколькими типами ячеек.

Если Вам знакомы такие проблемы, то добро пожаловать под кат.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 10

Легкая работа со списками — RendererRecyclerViewAdapter (часть 2)

Время на прочтение 8 мин
Количество просмотров 12K
Разработка мобильных приложений *Разработка под Android *
В прошлый раз мы оптимизировали работу с RecyclerView, а так же научились переиспользовать ячейки в разных списках и легко добавлять новые.

Сегодня мы разберем:

  • как можно упростить поддержку DiffUtil в этой реализации;
  • как добавить поддержку вложенных RecyclerView.

Если прошлая статья тебе пришлась по душе, думаю, понравится и эта.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Головная боль от RecyclerView.Adapter — выход есть

Время на прочтение 5 мин
Количество просмотров 16K
Блог компании Google Developers Java *Разработка мобильных приложений *Разработка под Android *Дизайн мобильных приложений *
Привет, Хабр! Сегодня в нашем блоге Макс Туев, архитектор Surf, одной из наших сертифицированных студий. Ребята занимаются заказной разработкой, поэтому сроки важны не меньше, чем качество кода. Подходы и технологии, которые тормозят разработку, здесь не подходят. Хороший пример такого — RecyclerView.Adapter. Под катом Макс расскажет, как сэкономить время и нервы. Слово Максу.


Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 4

Максимально упрощаем работу с RecyclerView

Время на прочтение 7 мин
Количество просмотров 16K
Разработка мобильных приложений *Разработка под Android *
На хабре уже полно статей на эту тему, все они в основном предлагают решения для удобного реюзинга ячеек в RecyclerView. Сегодня мы пойдем немного дальше и приблизимся к простоте сравнимой с DataBinding.



Если вы еще не используете DataBinding для списков (хороший пример) и делаете это по старинке — то эта статья для вас.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 5

Команда плагинов для настройки JavaFX компонент в настольном приложении

Время на прочтение 3 мин
Количество просмотров 2.4K
Программирование *Java *

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


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

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

Разработка под Android. Немного о быстрой работе со списками

Время на прочтение 14 мин
Количество просмотров 9K
Разработка мобильных приложений *Проектирование и рефакторинг *Разработка под Android *Kotlin *
Из песочницы
Всем привет! Мои посты — желание помочь в работе с какими-то элементами Android. Если вы разработчик, который еще не сформировал для себя алгоритм для построения списков — вам может оказаться полезным почитать этот материал. В основном, я бы хотел предлагать готовые решения для разработки, раскрывая в ходе повествования какие-то мысли о том, как я до них докатился к этому пришел.

В этой статье:

  • формируем несколько базовых классов и интерфейсов для работы с RecyclerView и RecyclerView.Adapter
  • подключим одну библиотеку из Android Jetpack (по желанию, сначала без нее)
  • для еще более быстрой разработки — вариант темплейта в конце статьи ;)
Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 12

MVVM и выбор элементов в адаптере

Время на прочтение 6 мин
Количество просмотров 5K
Разработка под Android *Kotlin *
Из песочницы
🔥 Технотекст 2020

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


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


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

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Prosto: убираем бойлерплейт при работе с RecyclerView

Время на прочтение 4 мин
Количество просмотров 4.9K
Разработка под Android *Kotlin *

Для отображения списка данных мы используем RecyclerView (– Спасибо, кэп!). Он много чего умеет из коробки и другие всем известные блаблабла. Но и боли с ним предостаточно. Никто не любит писать один и тот же boilerplate-код. И я вот не особо...


Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 5

MVVM и выбор элементов в адаптере — LiveData

Время на прочтение 6 мин
Количество просмотров 2.3K
Разработка под Android *Kotlin *

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


Спустя несколько месяцев, когда я достаточно подумал, попрокрастинировал и поработал, у меня уже получилось решение, более подходящее именно для Android, так как основано на LiveData. Прошу всех интересующихся ознакомиться.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

MVVM и выбор элементов в адаптере — Базовый адаптер

Время на прочтение 4 мин
Количество просмотров 2K
Разработка под Android *Kotlin *

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

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2
1