Category: it

Category was added automatically. Read all entries about "it".

Web Bluetooth

Поразбирался тут с Web Bluetooth. Это такой API в Chrome, через который можно из браузера коннектиться к BLE устройствам (только BLE) и работать с ними. Короче IoT и вот это вот всё ;)

Collapse )

React-Native + NFC

Сделал работающую связку React-Native с NFC (пришлось модуль под Android делать - единственный найденный не работал). В процессе многократно испытал все пять стадий принятия неизбежного. Особенно вдохновляют нагугленные советы вида "перезапустите скрипт три раза, на второй закройте окно сразу, как только оно откроется". И ведь помогает! Да, ещё отладочное меню на телефоне в RN вызывается встряхиванием. Со стороны эти манипуляции, наверное, выглядят прикольно.



Собственно, больше половины времени отнимает выяснения методов устранения загадочных ошибок выдаваемых то npm, то gradle, то ещё чем-нибудь подобным, чистка каких-то загадочных кэшей которые не очистились сами, ручное прописывание переменных окружения, перезагрузка виндов (иногда тоже помогает). Админы такое любят (я не админ).

Однако это, конечно, намного круче Cordova/Phonegap.

Сам модуль: https://github.com/petersobolev/nfc-react-native-simple

Компьютер Vectrex и разработка под него

В продолжение предыдущего поста, на CC'2015 я представил ещё одну работу под Vectrex - 233-байтное интро (занял второе место в Tiny Intro compo). Кроме того, прочитал там семинар про устройство и разработку под эту необычную машинку:



Хочу также поделиться исходниками своих работ под Vectrex - Electric Force (233 байта), Invitron (32 килобайта) и двух пробных - Rainy (413 байт) и Emptyscreentro (128 байт). Все исходники - ассемблер 6809. Подробнее о Vectrex и разработке под него можно прочесть в моей статье (сюда она не влезла. ЖЖ - твиттер XXI века :)


Collapse )

Перенос собственных постов и комментариев из Facebook в свою базу данных

schemeС течением времени в фейсбуке скопилось довольно много моих собственных постов и комментариев, среди которых, как ни странно, были и полезные. Несмотря на ряд удобств, которые предоставляет фейсбук, он совершенно не предназначен для хранения и поиска чего-либо на стене (timeline'e). Более того - нет никаких гарантий, что завтра всё это не пропадёт бесследно, как это можно видеть по периодически исчезающим (может на время, а может и нет) отдельным постам, отметкам на карте и пр.

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

SQL-like запросы к Google Spreadsheets

ScrНаряду с традиционными для электронных таблиц функциями (повторяющими Excel), в Google Spreadsheets есть некоторое количество дополнительных. Одна из них, под названием "=QUERY()", позволяет рассматривать любую часть таблицы как базу данных и осуществлять к ней простые запросы на языке, напоминающим SQL.
Особенно полезно, что возвращаемые данные доступны не только внутри таблиц, но и по запросу через внешний URL (т.е. таблицу можно использовать как готовый DB сервер для сайта или мобильного приложения.

Collapse )

Программирование в машинных кодах на ЭВМ "Агат"

DSC_8219На прошедшем в эти выходные Chaos Constructions'2012 кто-то принёс на выставку Агат  - советский неполный аналог Apple II. С ним была одна дискета, с которой он ничего не хотел грузить. То есть писал "АГАТ" и единственное что можно было сделать - выйти во встроенный монитор, который позволял смотреть память по адресам, менять её, ну и еще дизассемблировать.

DSC_8287Мы (я, tnt23, Oxyd, Meteo и еще один человек) никогда с Apple II и Агатами дела не имели, но предположили, что там ну просто обязан быть Бейсик в ПЗУ. И пытались его самыми разными способами извлечь. Похоже, Бейсика там в помине не было, но в какой-то момент сам процесс стал интереснее цели. Сначала методом тыка мы нашли, какие примерно команды монитор понимает. Просматривая память обнаружили, где примерно начинается ПЗУ (с Fx00) и где ОЗУ, в которое можно писать (с 0100). Поскольку я когда-то начинал с Commodore 64, по крайней мере процессор (6502/6510) был знаком. Так что, просматривая листинг ПЗУ, быстро удалось найти подпрограмму вывода на экран символа (во-первых, она часто вызывалась, во-вторых перед вызовом всегда загружался только аккумулятор: что-то типа LDA ... и затем JSR FDD4). В итоге за несколько минут в кодах была написана суперпрограмма:

DSC_8243DSC_8239INX             ; о том, что нельзя увеличивать напрямую значение аккумулятора я уже и забыл
TXA            ; так что увеличиваем индексный регистр, а потом переносим значение в аккумулятор
JSR FDD4 ; вызываем ROM подпрограмму вывода символа на экран
JMP 0100   ; и по новой..

ассемблировать монитор не умел (или мы не нашли как), поэтому пришлось писать в машинных кодах.
Запущенная программа сходу вывела все символы и даже стала чистить экран и пищать (видимо там есть и управляющие коды). Видео.

Приятно было вспомнить системы, которые можно изучать такими простыми способами :-)

P.S. Заодно, ссылки на фотографии с CC'12. Первый день, Второй день.

Как вытащить из Facebook'a собственный timeline

Давно хотел разобраться с экспортом новостной ленты (timeline) из Facebook'a на собственный сайт. Во-первых, у них очень неплохо сделано автоматическое анонсирование публикуемых ссылок - картинка создаётся, кусок текста качественно (по сравнению с G+ или VK) выбирается. Во-вторых, всё что есть в таймлайне (и на личной странице и на других) доступно через API.

Схема действий следующая:

Логинимся в Facebook собой, создаём на новое приложение.
Никаких сложностей нет, главное чтобы оно создалось и вы смогли записать его appId и App Secret.

Collapse )

Разработка приложения для SmartTV

Как известно, современные телевизоры всё чаще имеют возможность выхода в Интернет. Это выражается не только в наличии встроенного браузера (ходить по сайтам с телевизора не слишком удобно), но и в возможности устанавливать приложения из специального "магазина", по аналогии с Android Market / App Store на смартфонах. В ряде телевизоров (LG, Samsung, некоторых других), интенсивно продаваемых сейчас в мире, функции SmartTV реализованы сходным образом, на похожих аппаратных платформах.
Данная статья описывает разработку для телевизоров LG SmartTV, в конце будет короткое сравнение с Samsung SmartTV.

Collapse )

Google Spreadsheets - серверная часть для Javascript клиента

Бывает так, что для web проекта на JS/HTML необходима простая база данных с интерфейсом, который позволял бы обычному пользователю добавлять и редактировать записи.  В ряде случаев можно обойтись без создания серверной части и всяких форм ввода, воспользовавшись Google Spreadsheets API .

Создаём таблицу. Делаем Share / Anyone with link , затем File / Publish to the Web.

Выбираем лист (обычно Sheet1). В разделе Get a link to the published data выбираем ATOM (этот пункт есть только для обычных гуглоаккаунтов. Для Google Apps аккаунтов его почему-то пока нет).
Внизу появляется ссылка на  Atom feed для данной таблицы, выглядит примерно так:

Collapse )