Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет geladen ([info]geladen)
@ 2015-06-02 18:28:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение:https://youtu.be/32Pfqw1burw
Музыка:https://www.youtube.com/watch?v=VEyDNTLlRgU
Entry tags:вероятность, разбросало кучу, релиз, целкометр

окончательный йожег (целкометр наносит ответный эцсамое)
Бета-тестирование Дивного Целкометра (см. по тегу) ТАРАН считаю законченым.

Встречай, товарищ, версию 1.0, под кодовым названием "Yojeg".

Что это такое: http://guns.ptosis.ch/ru/taran-ru/
Запустить онлайн: http://taran.ptosis.ch/taran.html
Скачать себе копию: http://guns.ptosis.ch/node/43

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

1. С подключенным тырнетом сходить однажды на http://taran.ptosis.ch/taran.html
2. Весь Тарань, со всеми необходимыми для работы причиндалами, автоматически попадает к бровзеру в кашку, и там остаётся.
3. Если теперь тырнет отключить, и снова попробовать открыть бровзером http://taran.ptosis.ch/taran.html , всё будет работать как ни в чём не бывало.
4. По выпуске новых версий, кашка автоматически обновляется при следующем же использовании с подключённым тырнетом.
5. По итогам, с иконкой закладки можно использовать просто как мобильное приложение; ну не ништяк ли?

Проверено на ипаде йОС 8.3 и нескольких разных андроидах, вроде ок.

На нормальном компьюторе работа Тараня без тырнета достигается просто скачиванием к себе на диск и запуском оттуда, но мобильные бровзеры, особенно от эпыла, совершенно дурные и локальных файлов HTML открывать не умеют; пришлось прикручивать весь этот, прости Господи, хтмл5 офлайнапп.

Ну и напоследок, УВАГА, мелким шрифтом: ТАРАН -- халява, и халявой останется навсегда; код под свободной лицензией GPL 3. ТАРАН не собирает никакой информации. ТАРАН никакую информацию никуда не отправляет. Никаких сраных тракинкукисов, регистраций, спрятанных "сюрпризов" -- никакой хуйни. Я лично это гарантирую (да, собственно, что там гарантировать -- код-то вот он, убедиться несложно).

Очень приветствуются:
* Всяческие пробы
* Широкое распространение
* Отзывы и комментарии



(Добавить комментарий)


[info]silly_sad
2015-06-02 21:02 (ссылка)
ja kak raz tut jebusja s wepsajtikom dlja mobilok. gemorroj chudovichnyj.
rasskazhi kak ty garantiroval chto ono iz kashki budet rabotatj?

(Ответить) (Ветвь дискуссии)


[info]geladen
2015-06-02 22:47 (ссылка)
дык.

там, на самом деле, всё просто: нужно сбацать cache manifest -- отдельный файл, где указаны все файлы, которые надо кешить.

см. напр.
http://taran.ptosis.ch/taran.manifest
синтаксис там совершенно прямолинейный, кроме секции "CACHE:", которая кашируется в любом случае, можно указать части, которые используются только когда есть сеть ("NETWORK:") и части, которые при отсутствии подключения нужно заменить на что-то иное ("FALLBACK:").

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

файл манифест уебсервер обязательно должен выдавать с text/cache-manifest в content-type. в апаче это задаётся в .htaccess или в конфигурации сайта такими строками

AddType text/cache-manifest .manifest
ExpiresByType text/cache-manifest "access plus 0 seconds"

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

проверка правильного content-type делается
curl --head [URL to manifest file]

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

на манифест нужно сослаться с каждой(!) HTML страницы приложения (см. тег html в файле http://taran.ptosis.ch/taran.html ). манифест должен происходить с того же контекста (т.е. сайта), что и HTML страница.

бровзеры манифест понимают только если задан DOCTYPE HTML5, то есть просто

с предыдущими DOCTYPE все расклады с кашей и манифестами просто игнорируются.

как-то так. будут вопросы -- обращайся.

(Ответить) (Уровень выше)


[info]geladen
2015-06-02 22:49 (ссылка)
чорт, теги съеслись
<!DOCTYPE HTML> <- вот

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-10 06:09 (ссылка)
choto ono keshirujet namertvo.
vse fajly iz sekcii manifesta "CACHE"
bez prinuditeljnoj ochistki kashki novyje versii s servera ne podgruzhajut sja.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]geladen
2015-06-10 11:27 (ссылка)
чтобы клиент стал перегружать кашку, нужно изменить _содержимое_ файла .manifest (напр., что-нибудь в комментариях).

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

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-10 16:48 (ссылка)
ponil sposibo

(Ответить) (Уровень выше)


[info]silly_sad
2015-06-02 21:04 (ссылка)
ischo glavneishij vopros kak podobnyje podelija zavorachivatj v "prilozhenije" chtoby vakladyvatj na google-play?

(Ответить) (Ветвь дискуссии)


[info]geladen
2015-06-02 22:51 (ссылка)
а вот тут, увы, я совершенно без понятия, никогда не было нужно.

(Ответить) (Уровень выше)


[info]weary
2015-06-02 23:02 (ссылка)
apache cordova

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-02 23:28 (ссылка)
kruto.
vsem spasibo.

ushol shtudirovatj.

(Ответить) (Уровень выше)


[info]silly_sad
2015-06-03 05:38 (ссылка)
josh odin vopros:
v "mobiljnom" brauzere canvas vygljdit kak kusok gavna.
piksely razmyty shopizdec, nesmotrja na to chto zoom=1.

eta beda tebe znakoma?

ja tak ponimaju chto prichina v "device-width".
"device-width" VRJOT. i dajot mne razmery v 2.5 raza menjshe realjnyx. poetomu piksely idut po pizde. (a jesli vieport ne fiksirovatj na "device-width" to togda po pizde idjot vjorstka)

jestj li sposob uznatj REALJNYJE razmery viewport vyrazhennyje v fizicheskix pikselax?

nu ili aljternativnyj vopros: reshajet li etu problemu optom cordova?
i jestj li v nej canvas ili chto-libo jego zamenjajucheje?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]geladen
2015-06-03 11:06 (ссылка)
window.innerWidth + window.innerHeight
canvas.width + canvas.height

у меня работает ок, впрочем по мобильным девайсам не особо маньячил.
в исходниках тараня эти дела в основном в image-pane.js

(Ответить) (Уровень выше)


[info]weary
2015-06-03 12:21 (ссылка)
>ja tak ponimaju chto prichina v "device-width". "device-width" VRJOT. i dajot mne razmery v 2.5 raza menjshe realjnyx. poetomu piksely idut po pizde. (a jesli vieport ne fiksirovatj na "device-width" to togda po pizde idjot vjorstka)

Я никогда серьёзно не работал с canvas-ом на мобилках, потому, увы, могу только потеоретизировать. Там с этими пикселями настоящий дикий ад, если честно, и надеяться на нормальное поведение нельзя. Например, пиксель не является пикселем (и ещё подробно), а с размерами viewport-а вообще огромная куча диких костылей: 1, 2. Могу только посоветовать как следует прочитать всё по ссылкам и поэкспериментировать с разными параметрами meta name="viewport" на разных девайсах, ну или посмотреть в код какой-нибудь открытой программки, где активно используют canvas. И всё равно гарантий для всех устройств не будет. Стоит радоваться тому, что оно хотя бы работает хоть как-то, лол, это ж веб.

>nu ili aljternativnyj vopros: reshajet li etu problemu optom cordova? i jestj li v nej canvas ili chto-libo jego zamenjajucheje?

Насколько я помню, нет. Там вся cordova - обычный webview, открывающий файлы на диске, и набор коннекторов js -> device для работы с камерой и файлами. Особых чудес с рендерингом она не делает, у них у самих бывают проблемы. Более того, этот webview на андроиде 2.3, например, настолько медленный, что тупит секунды на отображении десятка простых div-ов со стилями, но в новых версиях полегче. А вот айфоны, кстати, не тупят почти, даже старые, что характерно. Мне как-то пришлось переписывать полностью готовую программу из-за производительности, потеряв полмесяца жизни, очень сильно ругался.

Есть ещё такое, не знаю, работает ли, может подойдёт (там только фуллскрин). Но если ты очень хочешь графику на мобилках, то лучше, всё же, писать нативное (или попробовать qt5, он, говорят, уже вполне пригоден).

(Ответить) (Уровень выше)


[info]silly_sad
2015-06-04 01:50 (ссылка)
a kak sdelatj DEPLOY?
ja u korovy takoj komandy sovsem ne vuzhu -- nado chto goroditj rukami?
prosveti?
ja dazhe ne znaju chto javljajecca produktom bilda.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2015-06-04 02:33 (ссылка)
Для разработки в свежей кордове есть какие-то встроенные врапперы (cordova emulate, cordova run), там достаточно понятно написано в документации: https://cordova.apache.org/docs/en/5.0.0/guide_platforms_android_index.md.html

Соответственно, нужно установить себе свежий android SDK, создать образ для эмулятора и тому подобное. Я, впрочем, обычно не использовал их cordova run, а собирал сам и ставил apk вручную через adb на эмулятор/устройство:

cd /path/to/cordova/project
cordova platform add android # один раз
cordova prepare android
cordova build android --release
# тут он выведет имя собранного неподписанного apk, это и результат.

Далее можно подписать, и уже грузить получившийся apk в маркет или посылать кому-нибудь по почте. У меня всё было кое-как автоматизировано через хипстерский grunt, потому набирать приходилось меньше.

Где-то полгода я уже не возился с кордовой, может сейчас попроще стало.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-04 02:40 (ссылка)
ja nashol kuda korova skladyvajet rezuljtat i prosto razsharil jego po http v lokaljnoj seti. problem solved.

teperj drugaja beda.
a korova okazyvajecca websokety ne umejet!

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2015-06-04 13:45 (ссылка)
>a korova okazyvajecca websokety ne umejet!

Должна. Для старых андроидов плагин нужен, для новых вроде бы само работает. Ну а на десктопе тем более должно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-04 16:36 (ссылка)
a na iosax itp?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2015-06-04 19:12 (ссылка)
Пишут, что в ios 4.2 появились. Я, в своё время, вообще тупо взял sockjs, чтобы не ломать голову с этой кучей разных версий.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-04 19:29 (ссылка)
nizja.
server uzhe napisan na websoketax, i net nikakogo smysyla pisatj jego na KOSTYLJAX

(Ответить) (Уровень выше)


[info]silly_sad
2015-06-05 00:29 (ссылка)
a kak eti prelozhenija debazhitj?

provided:
(1) nexus 5 -- real device with android, "developer options" are accessible and "debug mode" is on
(2) application that manages to run on 1
(3) a laptop with cordova and usb connection to 1
(4) android emulator runs but fails to run any cordova application.

jestj li kakoj sposob reportitj JS errors s devajsa na laptop?
ili mozhet na devajse mozhno posmotretj logi? cho tam voobshe jestj? ja zh nichego ne znaju!

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2015-06-05 00:49 (ссылка)
По идее ошибки и вывод console.log должен быть видны через adb logcat. Его можно фильтровать. Есть некая встроенная возможность от андроида (обещают, что при debug-сборке в свежих кордовах работает сразу), а также weinre, у меня он даже заводился, но пользоваться им я не стал, не помню уже почему.

Вообще вот: https://cordova.apache.org/docs/en/5.0.0/guide_next_index.md.html#Debugging

Мне почти всегда хватало дебага в браузере (просто через локальный http-сервер), и потому на реальном устройстве редко что-то делал, не посоветую ничего.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]silly_sad
2015-06-05 20:19 (ссылка)
debugger osvoil.
teperj problema s CANVAS.

function onDeviceReady() {
alert("Device ready!");
Grid = document.getElementById("grid");
console.log(Grid);
var ctx = Grid.getContext("2d");
ctx.fillStyle = "#010101";
ctx.fillRect(0,0,15,15);
}

alert i log na meste.
a prjamougoljnika na canvase NETU!

(Ответить) (Уровень выше)


[info]kaifolom.livejournal.com
2015-06-02 22:28 (ссылка)
Спасибо!

(Ответить) (Ветвь дискуссии)


[info]geladen
2015-06-02 22:54 (ссылка)
дык!
если пригодится, дай знать что думаешь.

(Ответить) (Уровень выше)


(Анонимно)
2015-06-02 22:55 (ссылка)
>эцсамое
во, уважаю

(Ответить)


(Анонимно)
2015-06-03 01:03 (ссылка)
От, дай Бог тебе здоровьечька, комрад!
Randir_telemnar

(Ответить) (Ветвь дискуссии)


[info]geladen
2015-06-03 01:05 (ссылка)
вот тебе на здоровье!
будешь тестировать, отзовись.

(Ответить) (Уровень выше)

Смущённо:
[info]nikolaj_s
2015-06-17 16:30 (ссылка)
Старик, слушай, ты же китайскую оптику крутил, да? Не посоветуешь чего дешёвого?

http://nikolaj-s.livejournal.com/1263994.html

(Ответить)