...

суббота, 14 декабря 2013 г.

Китайский луноход успешно прилунился


2 декабря на Хабре была опубликована новость о том, что китайцы запустили на Луну собственный луноход, с собственного космодрома. Полет к спутнику Земли осуществлял космический аппарата «Чанъэ-3», который и нес на борту луноход. В той новости говорилось о том, что старт космического аппарата прошел успешно, а луноход должен прибыть к месту назначения в середине декабря 2013 года.


Что же, сейчас как раз середина декабря, и луноход действительно прилунился. Посадка была произведена в районе кратера Залива Радуги (Море Дождей). По плану, рабочая программа аппарата должна продлиться три месяца. Китайские специалисты оснастили луноход солнечными панелями, разного рода камерами, спектрометрами и прочим оборудованием. Луноход займется изучением поверхности Луны, а также геологического строения нашего спутника (все это нужно не только в качестве чисто научной цели, но и для поиска возможных полезных для человечества лунных ресурсов)


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


Само собой, вследствие успешной высадки аппарата, Китай теперь может считаться третьей по счету державой, проводящей непосредственное изучение Луны. Первой державой был СССР, затем — США, теперь — Китай. Собственно, первой державы теперь нет, так что «лунных» стран теперь только две.


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


Via cnn


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Тайны кнопок в Android. Часть 2: Рефакторинг верстки

Приветствую, уважаемое сообщество.

В предыдущей статье мы, используя только верстку, сделали кнопку “включить/выключить”, и вот что у нас тогда получилось:



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dp"
android:background="#dddddd" >

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:drawableLeft="@drawable/icon_phone"
android:drawableRight="@drawable/icon_on_off"
android:gravity="left|center_vertical"
android:textOn="Телефония"
android:textOff="Телефония"
android:textSize="24sp"
android:textStyle="bold|italic"
android:textColor="@color/text_color"
android:onClick="onToggleButtonClick" />

</RelativeLayout>




XML-код получился довольно увесистый. В этой статье я покажу, как сделать его по-настоящему красивым. Мы сократим код вдвое, убрав все, что может затруднить сопровождение нашего приложения или вызвать недовольство тим-лида. В этой статье мы будем использовать строковые ресурсы (strings.xml), ресурсы размерностей (dimens.xml), стили и темы (styles.xml). Если вы не знакомы с первой частью статьи, рекомендую хотя бы пробежать ее глазами.

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


Выглядит наша кнопка вот так:

image

image


Справа изображены кнопки в нажатом состоянии, то есть пока мы удерживаем их пальцем. Слева — не нажатые, в режиме Включено и Выключено.


Текстовые ресурсы strings.xml



Займемся рефакторингом кода. Там точно есть недостатки, например слово Телефония. Чтобы приложение можно было перевести на несколько языков, все текстовые константы должны быть собраны в файле strings.xml. Он уже создан и находится в каталоге res/values. Откроем его и заменим его содержимое на следующее:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">MysteriesOfButtons</string>
<string name="action_settings">Настройки</string>
<string name="act_main_telephony">Телефония</string>

</resources>




Так мы объявили текстовую константу act_main_telephony. Теперь заменим текст кнопки android:textOn и android:textOff на ссылку @string/act_main_telephony:

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:drawableLeft="@drawable/icon_phone"
android:drawableRight="@drawable/icon_on_off"
android:gravity="left|center_vertical"
android:textOn="@string/act_main_telephony"
android:textOff="@string/act_main_telephony"
android:textSize="24sp"
android:textStyle="bold|italic"
android:textColor="@color/text_color" />




Немного лучше, хотя объем кода от этого только вырос, но это плата за возможность удобной локализации приложения. Как именно его можно локализовать? Наш файл strings.xml размещен в каталоге res/values. Сейчас мы пишем в него русскоязычный текст. Допустим, мы хотим поддерживать еще и английский язык. Для этого мы создаем каталог res/values-en, и в нем создаем еще один файл strings.xml. Он должен содержать все те же константы, что и первый файл, но уже на английском. При запуске приложения Android ищет в приложении в первую очередь ту локаль, которая установлена у пользователя в системе по умолчанию. Если в приложении нет ресурсов для этой локали, то Android берет ресурсы из локали по умолчанию, то есть из каталога res/values без суффиксов. Там может быть текст на любом языке, не обязательно русском или английском. Этот ресурс будет использован, если пользователю не подходит любой другой имеющийся в приложении ресурс. Локализовать можно не только ресурсы values, но и любые другие, например часто локализуют drawable, если какой-то текст задан картинкой. Если вас интересуют подробности, рекомендую почитать интересную статью о локализации приложений от Google и о том, как Android выбирает наиболее подходящий ресурс. Если будет время, я постараюсь подготовить отдельную статью о локализации с примерами, так как этот вопрос достаточно обширный.
Стили и темы: styles.xml



Что делать, если нам нужно десять таких кнопок, отличающихся только надписью и левой иконкой? Копировать все? Тогда размер файла макета будет непомерно большой и содержать 80% повторяющегося кода. Здесь нам на помощь приходят стили. Давайте вынесем в стили все, что только может повторяться. К счастью, плагин ADT для Eclipse несколько облегчает процесс, если вы не очень знакомы с разработкой файлов стиля Android.

Для извлечения стиля откроем наш макет activity_main.xml в режиме Graphical Layout и выделим кнопку. Щелкнем на ней правой кнопкой мыши и выберем пункт Extract Style:


Укажем имя стиля: styleOnOffButton и оставим отмеченными все атрибуты, кроме android:drawableLeft, android:textOn и android:textOff, которые будут отличаться у каждой кнопки в нашем приложении. Остальные атрибуты будут вынесены в стиль:


Нажмите ОК. Полученный стиль можно увидеть в файле res/values/styles.xml:



<style name="styleOnOffButton">
<item name="android:background">@drawable/button_background</item>
<item name="android:drawableRight">@drawable/icon_on_off</item>
<item name="android:gravity">left|center_vertical</item>
<item name="android:onClick">onToggleButtonClick</item>
<item name="android:textColor">@color/text_color</item>
<item name="android:textSize">24sp</item>
<item name="android:textStyle">bold|italic</item>
</style>




А текст кнопки сильно уменьшился:

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon_phone"
android:textOn="@string/act_main_telephony"
android:textOff="@string/act_main_telephony" />




Теперь, чтобы сделать десять кнопок, нужно писать куда меньше текста, и минимум дублирования кода. Обратите внимание: атрибуты android:layout_width и android:layout_height в стиль не выносятся. Они обязательно должны присутствовать у каждого элемента в файле макета. Атрибут android:id, конечно же, свой у каждого объекта, поэтому тоже не выносится в стиль. Тем не менее, полученный код достаточно компактен, чтобы его было удобно переиспользовать.

Если вы сейчас запустите приложение, то увидите, что все “поплыло”, и результат совсем не тот, что мы ожидали. Почему? Потому что стиль хоть и создался, но к кнопке не применился.


Применить стиль к кнопке, можно, указав ей атрибут style="@style/styleOnOffButton". Это было бы сделано автоматически, если бы мы включили опцию Set style attribute on extracted elements при извлечении стиля. Оба пути сработают, но это не лучшие варианты, так как эту строку нужно будет прописывать каждому экземпляру кнопки в каждом окне. Хотелось бы этого избежать. Как правило, в приложениях используется один стиль для одинаковых элементов управления, это одно из базовых правило дизайна. То ессть все кнопки типа включить/выключить выглядят одинаково, отличаясь только иконками и текстом. Редко кто делает одну прямоугольную, другую кругленькую, а третью ромбиком.


Это дает нам возможность прописать стиль в теме. Откройте файл styles.xml и найдите там следующий текст:



<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>




Это тема нашего приложения. Давайте укажем, что все кнопки ToggleButton должны иметь один и тот же стиль, наш стиль:

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:buttonStyleToggle">@style/styleOnOffButton</item>
</style>




Что такое android:buttonStyleToggle, что еще можно стилизовать, и где об этом почитать? Я так и не смог найти полноценную документацию по стилям. Если кто-то ее видел, пожалуйста напишите в комментариях. Поэтому я обращаюсь напрямую к исходникам Android, к счастью они открыты для всех. Я работаю с ADT, и у меня исходники стилей Android лежат здесь: adt-bundle-windows\sdk\platforms\android-<Версия API>\data\res\values\themes.xml. Скачиваются исходники при помощи утилиты Android SDK Manager, которая запускается прямо из Eclipse, меню Window->Android SDK Manager.

И еще одно исправление мы должны сделать. Созданный нами стиль не наследуется от стиля кнопок, а это значит, что наш элемент управления потерял способность нажиматься. Это легко проверить, если сейчас запустить приложение и попробовать нажать кнопку. Как это вылечить? Нужно наследовать наш стиль от стиля android:style/Widget.Button.Toggle — это стиль всех ToggleButton по умолчанию:



<style name="styleOnOffButton" parent="android:style/Widget.Button.Toggle">
<item name="android:background">@drawable/button_background</item>
<item name="android:drawableRight">@drawable/icon_on_off</item>
<item name="android:gravity">left|center_vertical</item>
<item name="android:onClick">onToggleButtonClick</item>
<item name="android:textColor">@color/text_color</item>
<item name="android:textSize">24sp</item>
<item name="android:textStyle">bold|italic</item>
</style>




Откуда я взял android:style/Widget.Button.Toggle? Из тех же исходников Android, файл styles.xml.
Ресурсы размерностей: dimens.xml



Теперь все работает, как надо. Но мы должны сделать еще пару небольших улучшений. Как вы заметили, в стиле styleOnOffButton есть атрибут android:textSize, который задан константой 24sp. Если в нашем приложении будет еще какой-то текст, кроме кнопок, вероятно мы захотим его сделать таким же по размеру для сохранения общего стиля. А это значит, что константу 24sp мы будем еще не раз использовать в разных местах. И если мы потом захотим поэкспериментировать с размером текста, то нам придется менять эти константы по всему приложению. Чтобы этого избежать, давайте объявим именованную константу размера. Откроем файл res/values/dimens.xml и заменим все его содержимое следующим:

<resources>
<dimen name="text_size">24sp</dimen>
<dimen name="activity_padding">6dp</dimen>
</resources>




Как видите, кроме text_size здесь есть еще одна константа — activity_padding. Если вспомнить код нашего макета, то там мы увидим константу android:padding="6dp" в теге RelativeLayout. А так как отступы от границ экрана у всех окон приложения также логично делать одинаковыми, это значение само-собой напрашивается в константы.

Теперь заменим константу 24sp в стиле на новый ресурс @dimen/text_size:



<style name="styleOnOffButton" parent="android:style/Widget.Button.Toggle">
<item name="android:background">@drawable/button_background</item>
<item name="android:drawableRight">@drawable/icon_on_off</item>
<item name="android:gravity">left|center_vertical</item>
<item name="android:onClick">onToggleButtonClick</item>
<item name="android:textColor">@color/text_color</item>
<item name="android:textSize">@dimen/text_size</item>
<item name="android:textStyle">bold|italic</item>
</style>




И текст тега RelativeLayout в файле activity_main.xml с константой в ресурсах:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/activity_padding"
android:background="#dddddd" >


И еще немного о стилях



Давайте еще раз подумаем о стилях. Мы сделали одинаковый стиль для всех ToggleButton, так почему бы не сделать стиль для всех окон? Тем более, что кроме отступов от границ у всех окон будет общий цвет фона. Такой стиль будет простой, нам не нужно его ни от чего наследовать, давайте пропишем его вручную. Откроем файл styles.xml и добавим в конец перед закрывающим тегом </resources> следующий код:

<color name="activity_background_color">#dddddd</color>

<style name="styleActivity">
<item name="android:background">@color/activity_background_color</item>
<item name="android:padding">@dimen/activity_padding</item>
</style>




Вот еще один способ задавать цвет — в файле ресурсов с помощью тега color.

Не каждый RelativeLayout — главный элемент Activity, поэтому мы не можем прописать стиль всем RelativeLayout, как мы поступили с ToggleButton. В этом случае стиль нужно указывать явно в тех элементах, где это нужно, используя атрибут style. Давайте пропишем стиль нашему макету и посмотрим, что в и тоге у нас получилось:



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/styleActivity" >

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon_phone"
android:textOn="@string/act_main_telephony"
android:textOff="@string/act_main_telephony" />

</RelativeLayout>




Все атрибуты окон у нас в стилях. Для каждой новой Activity достаточно указать стиль style="@style/styleActivity" ее корневому элементу, и окно будет выглядеть так же, как и другие окна приложения.
Заключение



Сравните исходный вариант макета с оптимизированным. Вот, что у нас было:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dp"
android:background="#dddddd" >

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:drawableLeft="@drawable/icon_phone"
android:drawableRight="@drawable/icon_on_off"
android:gravity="left|center_vertical"
android:textOn="Телефония"
android:textOff="Телефония"
android:textSize="24sp"
android:textStyle="bold|italic"
android:textColor="@color/text_color"
android:onClick="onToggleButtonClick" />

</RelativeLayout>




И вот, что получилось:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/styleActivity" >

<ToggleButton
android:id="@+id/act_main_btn_telephony"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon_phone"
android:textOn="@string/act_main_telephony"
android:textOff="@string/act_main_telephony" />

</RelativeLayout>




Правда стало красивее? Все общие атрибуты кнопок и окон в стилях. Создавая новые кнопки, мы будем прописывать им только те атрибуты, которые отличают новую кнопку от других: иконка, название, идентификатор, расположение в родительском элементе.

Все числовые константы спрятаны в файле dimens.xml, никакого копипаста одних и тех же констант у нас не будет. Все строковые константы — в файле strings.xml. Для локализации приложения под другие языки достаточно перевести только этот файл.


Разница между исходным и оптимизированным вариантом заметна даже на одном элементе окна. В реальных приложениях их в окне десятки, а потому оптимизированный код будет на порядок проще читать и сопровождать. Мое самое большое приложение iPUMB — ПУМБ online содержит около 40 activity. Если бы не стили, мне пришлось бы копировать оформление окон по 40 раз, и если дизайнеры придумают что-то новое, мне пришлось бы 40 раз этот код менять.


Еще одна прелесть стилей — это унификация кода при командной разработке. Один раз написанный файл стиля дал всем членам нашей команды разработчиков готовый инструмент для верстки окон, и все наши окна выглядели, как единое целое, и без каких-либо рефакторингов и «подгонок».


Буду рад, если эта статья оказалась вам полезна. В следующих статьях я обязательно поделюсь другими тонкостями верстки в Android.


Полезные ссылки



Готовый проект Android-приложения из данной статьи

Проект Android-приложения из предыдущей статьи, который мы дорабатываем в этой части

Тайны кнопок в Android. Часть 1: Основы верстки

Локализация приложений

Как Android выбирает наиболее подходящий ресурс

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю № 87 (7 — 14 декабря 2013)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.




Метки лучше разделять запятой. Например: общение, социальные сети, myspace.com, подростки, мердок


или закрыть

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


После обновления демон Bittorent Sync больше не работает от имени root пользователя


сегодня в 21:16



Если вы еще не в курсе, что такое Bittorent Sync, то вы можете почитать об этой технологии здесь. Вкратце, данное ПО преследует идеологию Your Data Belongs to You. Его функционал заключается в синхронизации данных с использованием p2p-технологий. Надежность и скорость такого распределенного хранилища пропорциональна количеству машин в сети.

PPA для Ubuntu вы можете взять здесь.



Больше никакой работы от имени root




Сегодня прилетело обновление BTSync, которое решило достаточно важную проблему — при использовании в Linux системах, демон работал от имени root, что создавало ряд проблем с правами доступа. При попытке запускать от имени отдельного пользователя приложение вело себя некорректно. Начиная с версии 1.2.1, BTSync по умолчанию работает от имени пользователя btsync, что дает возможность более гибко управлять правами.

Реальные варианты использования




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

Также я автоматически распространяю свежие семейные фотографии между ПК родственников, одновременно получая резервные копии.

Осторожно, шейперы!




Тем, кто хочет использовать данный метод в работе, хочу посоветовать уточнить как шейпится торрент-трафик у вашего провайдера. Зачастую он режется так, что делает эту технологию бесполезной без шифрованного канала. Например, в Краснодаре FTTB МТС режет исходящий канал до 200-600 килобайт/с даже на максимальном тарифе.

Детали обновления



Подготовка к замене пакета btsync 1.2.0-2 (используется файл …/btsync_1.2.1-1_all.deb) …
* Stopping P2P file synchronisation daemon(s)... * Stopping btsync instance 'debconf-default' [ OK ]
Распаковывается замена для пакета btsync …
Обрабатываются триггеры для ureadahead …
ureadahead will be reprofiled on next reboot
Обрабатываются триггеры для hicolor-icon-theme …
Обрабатываются триггеры для man-db …
Настраивается пакет libibus-1.0-5:i386 (1.5.3-6ubuntu2.1) …
Настраивается пакет btsync (1.2.1-1) …
Устанавливается новая версия файла настройки /etc/init.d/btsync …
Добавляется системный пользователь «btsync» (UID 122) ...
Добавляется новая группа «btsync» (GID 132) ...
Добавляется новый пользователь «btsync» (UID 122) в группу «btsync» ...
Не создаётся домашний каталог «/var/lib/btsync».
* Starting P2P file synchronisation daemon(s)... * Autostarting btsync instance 'debconf-default'




Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»




Возьми Lumia 925 на тест-драйв сейчас.




Впечатляющие возможности

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




Boomburum

исследует LTE


Эволюция средств связи

в путешествии по России




Проблемы коммуникации внутри бизнеса?



Смотри бесплатные курсы

и выиграй Xbox



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


HTTP Live Streaming на чистом Javascript

Недавно опубликовал в open-source напиленный за пару месяцев эксперимент (или proof-of-concept, как больше нравится): github.com/RReverser/mpegts.

Это работающий прототип реализации Apple HTTP Live Streaming (вкратце — один из трех популярных протоколов потокового видео), написанный вручную на JavaScript. Он реализован на основе конвертации отдельных чанков MPEG-TS из оригинального манифеста потока в уже поддерживаемый практически всеми браузерами MP4 (а конкретнее, H264+AAC) непосредственно в браузере в отдельном потоке, и последующем проигрывании сконвертированных чанков в основном потоке.


Преобразование осуществляется с помощью параллельно разработанной библиотеки для манипуляции с бинарными данными в JavaScript — jBinary (о ней в другой раз), с программно описанными структурами данных в соответствии со стандартами ISO 13818-1, ISO-14496-2, ISO-14496-12 и ITU-T H.222.0. Естественно, спецификации реализованы не полностью, но в достаточных для реализации указанных форматов границах, так как чтение сухо технического текста и попытка реализации описанных и придуманных авторами вещей зачастую вызывает желание накуриться того же, чего и они («для меток времени вам было мало 32-битных чисел и вы решили сохранять метки времени в 33 битах, разбитых на отдельные части и перемешанные с незначущими битами, чтобы „добить“ до 40 бит, которые „удобнее“ сохранить? серьезно ***?» ну и в таком роде), а такая трава, видимо, выдается только авторам спек и разработчикам не положена :(


Проверено и работает в последних Chrome (стабильной ветке), Firefox и IE10+, отставания при переключении между отдельными чанками на самом деле заметны везде, но индивидуально — в Chrome ощущаются меньше всего. Есть отзывы, что в Safari демка конвертирует чанки, но не играет собственно сконвертированные MP4, но проверить и подебажить причины у самого нет особой возможности. Устранить задержки в будущем можно будет с повсеместным приходом в браузеры Media Source Extensions.


Репозиторий: github.com/RReverser/mpegts.

Демка: rreverser.github.io/mpegts/.


Любые вопросы, форки и помощь в виде доработок приветствуется :)


P.S. Хочу также обратить внимание, что демка использует чужой поток и отдельный сервис www.corsproxy.com/ для его проксирования с необходимыми CORS-заголовками для браузеров, так что устойчивость к нагрузке не гарантируется.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Краткий обзор платных поставщиков независимого от интернет провайдера IPTV

Доброго времени суток Хабросообщество. Посетила идея подключить хороший скоростной интернет для дома, чтобы смотреть независимое от интернет провайдера IPTV. IPTV от двух интернет провайдеров которые были не устраивало. У первого было 19 каналов. У второго 38, но их можно было смотреть только через браузер. Хотелось найти какого-либо платного независимого поставщика услуг IPTV (а не собирать на просторах сети бесплатные плейлисты, которые банятся ежедневно), чтобы загрузить его плейлист в VLC media player'а и жить счастливо, имея скоростной интернет и платное независимое от интернет провайдера IPTV.

Я нашел 4 таких независимых поставщика услуг IPTV:


1) Kartina TV (http://kartina.tv)

2) MEGA impuls (http://www.megaimpuls.com)

3) Russian Telek (http://russiantelek.com)

4) Русское ТВ онлайн (http://www.russia-iptv.com)


Далее пойдет их обзор. Кому интересно добро пожаловать под кат.


1) Kartina TV




(http://kartina.tv)

О компании:

Головной офис в Лондоне, а тех. поддержка в Германии. Кроме классического IPTV на компьютере, продает также свои приставки для телевизоров (доставку которых оплачиваешь ты сам).


Есть возможность получить бесплатный пробный доступ на 3 дня (http://kartina.tv/glossary.php?id=17). Логин и пароль приходят на мыло. Для этого надо авторизоваться через одну из социальных сетей (Facebook, ВКонтакте, Одноклассники).


Количество каналов:

145 каналов, 17 радиостанций + видеотека (в которой не так уж много фильмов и в основном не топовые новинки)


Цены:

Годовая подписка 174 евро (что примерно равно 7609 рублей в год / 634 рубля в месяц).

Плюс еще 54 евро (что примерно равно 2361 рублей) за самую дешевую приставку к телевизору (если она нужна).


Что в итоге:

Всего три способа просмотра:

1) Через браузер


Скриншот в спойлере:





Но смотреть через браузер как-то неудобно на мой взгляд, сохраняется ощущение чего-то не того.

2) Через свой собственный IPTV player для компьютера (KartinaTV Player)

Скриншот в спойлере:





Но он не капли не похож на VLC media player. Мой папа потестив его, сказал: «А ты можешь сделать все тоже самое, но в VLC media player».

3) Через свой собственный IPTV player для устройств на iOS / Android (причем почитав отрицательные отзывы по поводу него можно сделать вывод, что способов просмотра только два)

Я написал в тех. поддержку Kartina TV вопрос, как открыть их IPTV в VLC media player'е, но они меня технично отбрили: «Теоретически наверное это сделать можно, но вам надо будет настроить VLC media player самому».

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


Одним словом через VLC media player смотреть нельзя.


Возможно будут проблемы при оплате из России.


2) MEGA impuls




(http://www.megaimpuls.com)

О компании:

Опять же компания не местная, находится где-то в Германии.


Бесплатный пробный доступ (правда только на 5 каналов).


Количество каналов:

Примерно 32 канала + видеотека


Цены:

Годовая подписка 92.88 евро (что примерно равно 4061 рубль в год / 338 рублей в месяц).


Что в итоге:

Количество каналов бедновато.


Один способ просмотра — только через браузер. Сначала вчитывался в инструкции по установке VLC media player'а на их сайте, но это только лишь для того, чтобы браузер подхватил от него плагин. Одним словом через VLC media player смотреть нельзя.


Скриншот в спойлере:





Возможно будут проблемы при оплате из России.

3) Russian Telek




(http://russiantelek.com)

О компании:

Находится где-то в США. Сервис не предоставляется на территории России (но тот кто хочет, может обойти — судя по форумам). В основном втюхивают свои ТВ приставки.


Количество каналов:

По словам рекламы на сайте — более 500 + видеотека (но на деле наверное полезных будет также около 150). Точный перечень каналов не нашел.


Цены:

Самая дешевая приставка + 1 год просмотра стоит 326.63 долларов (что примерно равно 10484 рубля в год / 873 рублей в месяц)


Что в итоге:

Опять просмотр только через браузер (не рассмаривая ТВ приставки). Опять через VLC media player смотреть нельзя (хотя они требует его установить для плагина).


Скриншот в спойлере:





Возможно будут проблемы при оплате из России.

4) Русское ТВ онлайн




(http://www.russia-iptv.com)

О компании:

Компания находится в США во Флориде. Сервис не работает в России, Украине и странах СНГ. Как сказала девочка-консультант: «Это связано с проблемами законодательства вашей страны». Конечно теоретически можно использовать разные прокси-серверы и перенаправлять трафик, но это уже излишество.


Количество каналов:

Примерно 200 каналов (по их словам, т.к. полного списка мне посмотреть и не удалось)


Цены:

Годовая подписка 143.99 долларов (что примерно равно 4622 рубль в год / 385 рублей в месяц).


Что в итоге:

И снова возможность просмотра только через браузер (хотя требуется установка VLC media player'а для того, чтобы установить плагин от него).


Выводы:




В результате, так и не был найден поставщик услуг IPTV, который бы за деньги предоставлял широкий спектр каналов, который можно было бы смотреть используя VLC media player. Все предлагают лишь просмотр через браузер, либо свои рукописные плееры, которые может и напичканы богатым функционалом, но в плане удобства и взаимодействия с пользователем оставляют желать лучшего.

Возможно мне просто не повезло. Возможно, что кто-то уже нашел и использует независимое от интернет провайдера IPTV, которое соответствует двум основным критериям:


1) Возможность просмотра в VLC media player'е;

2) Широкий ассортимент представленных каналов (в том числе и образовательных на английском языке);


Если кто-то владеет большей информацией, я с удовольствием отредактирую пост и буду пользоваться его решением.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Google купил Boston Dynamics


сегодня в 19:51


image

Компанию, которая действительно впечатляла своими роботами, сегодня купил Google.

Цена сделки не разглашается. В Google заявили, что после окончания текущих контактов с армией, они больше не будут с ней работать.

Boston Dynamics стал аж восьмой робототехнической компанией, которую Google купил за эти полгода.

Что они там затевают?





Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»




Возьми Lumia 925 на тест-драйв сейчас.




Впечатляющие возможности

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




Boomburum

исследует LTE


Эволюция средств связи

в путешествии по России




Проблемы коммуникации внутри бизнеса?



Смотри бесплатные курсы

и выиграй Xbox



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


CybikoXtreme — социальный коммуникатор для школьников и студентов

Много лет назад, когда я еще учился в школе (около 11 лет назад), смог выпросить у родителей недостающую сумму свой первый умный гаджет — коммуникатор с QWERTY клавиатурой, черно-белым 4х цветным экраном и беспроводными средствами коммуникаций. И имя ему Cybiko Xtreme — вторая версия налодонника части российской компании ABBYY, ориентированного на молодежный сегмент рынка. Первая называлась просто Cybiko или позже Cybiko Classic. На начало продаж цена девайса была около 100$, что, как уверяли СМИ, очень маленькая сумма и любой школьник из США мог заработать на этот девайс самостоятельно.

Девайс был очень примечателен тем, что умел создавать беспроводную локальную сеть с соседними девайсами на расстоянии до 300м при этом от пользователя не требовалось какого либо вмешательства в настройки и в одной сети могло быть до 30000 пользователей со скоростью обмена до 19800 бод. Так же один из девайсов можно было подключать к компьютеру и он становился точкой доступа в Интернет для всех устройств в сети. Согласитесь очень круто, особенно для школьников и студентов начала 2000-х годов. Всё это нужно было для фактически первого в мире по настоящему социального устройства — при первой загрузке девайс просил заполнить личную анкету и параметры человека, которого вы хотите встретить, а так же цель встречи. Как вы уже наверное догадались, девайс будет всячески рассказывать о вас другим устройствам и при совпадении анкет оповестит вас, что та самая половинка найдена.



Немного рекламы


Технические характеристики




CPU: Hitachi H8S/2323 на частоте 18 MHz + Atmel AT90S2313 со-процессор на частоте 4 MHz для модуля связи.

RAM: 1.5MB RAM.

ROM: 512KB ROM встроенной памяти + расширение через отдельный MP3 плеер со слотом под карты памяти MMC.

Экран: черно-белый ЖК дисплей без подсветки 160x100 размером 59x40 мм.

Ввод: QWERTY клавиатура и отдельный кнопки для игр (gamepad).

Слот расширения: проприетарный для MP3 плеера (и попутно видео плеера файлов в формате MXD).

Звук: монофонический динамик и микрофон (запись звука 32кбит/с моно или для использования в качестве рации).

Связь: беспроводной модуль, USB разъем для связи с ПК и зарядки.

Аккумулятор: NiMH 2.4в 700mAh — при активном использовании еле хватало на учебный день.

Внешний вид и запуск




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



Спереди располагается статусный 2х цветной светодиод, функциональные кнопки для быстрого запуска приложений, экран, gamepad, клавиатура. и отверстия для динамика и микрофона Внизу microUSB разъем, через который девайс можно было синхронизировать с ПК и заряжать. На левом боку дырочка с кнопкой сброса, на правом — поворотная антенна. На задней части устройства наклейка с уникальным кодом устройства (аналог MAC адреса) и слот расширений, куда вставлялся MP3 плеер, позволяющий расширять память, играть музыку и видео.



А еще у КПК были сменные панельки и целые отдельные нашлепки для кастомизации внешнего вида.


Включаем



К слову сказать девайс сразу не включился, думал что уже не работает, но нажатие на reset всё исправило, а вот на flash памяти почему то ничего не было, возможно из-за какого то сбоя, так как операционная система при загрузке писала о попытке восстановления хранилища.



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

Ждем загрузки CyOS (не более 5-10 секунд) и нас встречает экран настройки контрастности дисплея и даты/время.




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




Вводим и отмечаем видимость данных. Аналогично заполняется описание человека, с которым бы вы хотели познакомиться.




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


К сожалению никакого софта на девайсе не сохранилось, а попытка подружить его с Win7 и тем более с Linux не увенчалась успехом. Удалось установить ПО только через виртуальную машину с WinXP без сервис паков и то не всегда.




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




Меню настроек и чат, в котором всегда было одиноко.


18+ гик порно




Ну и что за обзор без вскрытия старой железки.



Компоненты расположены на двух платах, соединенных шлейфом.



На CPU плате расположены основные мозги, память (ОЗУ и ПЗУ), контроллер экрана и USB.




Как видно CPU брендированный и сделан в Японии.




Вот такая непонятная нехорошесть произошла рядом с проводом питания. Не знаю как это всё убрать, но провод надо будет перепаять.




На обратной стороне платы ничего примечательного: куча контактным площадок для клавиатуры, экран, статусный светодиод и микрофон с динамиком.


Переходим ко второй плате для радио связи и дополнительных модулей.



На плате расположен радио модуль, его обвязка и помощник, а так же со-процессор от Atmel.


Кому интересно, большинство документации от железа удалось легко нагуглить: nekaka.com/f/Jx4HTDDr


Программное обеспечение




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



Кроме уже зашитых в ПЗУ чата, анкет, списка контактов и дел, на диски шло несколько полезных для школьников, да и студентов программ.

Каждая программа имела встроенных справочник с описанием и информацией по управлению.

All Access







Информация о популярных исполнителях, их фото и биография. Новости можно было скачивать с официального сайта компании Cybiko.
Научный калькулятор







Научный калькулятор, так же умел строить графики функций с заданной точностью (рисовал очень медленно, если хотелось увидеть график, а не несколько точек)
CyRecord и CyTalk





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





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





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



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



Конечно же в то время меня интересовали игр, коих хоть и было много, но в основном однотипные аркады.
Blazing Boards 2: Thunder Road





Почти Тони Хоук. Длинный коридор с препятствиями, бонусами и трамплинами.
CyLandia Castle 2



На Cybiko Classic была зашита игра CyLandia, подобие «тамогочи», но с более продвинутой графикой. На CyX2 её уже не было (но ставилась, если найти само приложение), но были другие игры с персонажами этого мира.



Думаю по скриншотам уже понятно на какую старую игру это похоже.
CyRace 2






Самая наверное крутая игра — 3D гонки, несколько трасс, компьютерные соперники и мультиплеер.


Gravitation Proclamation





А это уже почти Angry Birds Space — стреляем по противнику с учетом гравитации планет, имеет мультиплеер как и большинство других игр.
Cybiko Superbike







Гонки на мотоциклах.

И много много других логических, классических и аркадных игр.


Итого




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

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

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


Исходники фоток к статье можно найти тут.


А еще, если кто-то коллекционирует подобные девайсы, то просто так отдам его в хорошие руки (но с самовывозом из МО, г.Дмитров).


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.