понедельник, 29 августа 2011 г.

MUSCLE(lite) - Android Маркет

MUSCLE(lite) - Android Маркет:

'via Blog this'

Love Meter Widget - Android Маркет

Love Meter Widget - Android Маркет:

'via Blog this'

Релиз Python Tools 1.0 для Visual Studio 2010


Релиз Python Tools 1.0 для Visual Studio 2010

В декабре прошлого года команда PTVS дала обещание добавить в семейство Visual Studio новый язык, причем меньше чем за год и с минимальными затратами. Через 9 месяцев это обещание было выполнено – встречайте Python Tools 1.0 for Visual Studio RTM.
Теперь эта отличная IDE поддерживает прекрасный язык Python. Точнее, его реализации CPython, IronPython, Pypy и Jython. Отныне вы можете пользоваться Intellisence, Class Browser, поиском ссылок, рефакторингом, отладчиком, профайлером,… в общем, всем тем, что так привычно пользователям Visual Studio.
И это все совершенно бесплатно (устанавливается в Visual Studio Shell) и Open Source (Apache 2.0).

Команда разработчиков подготовила краткие видео демонстрирующие работу Python Tools for Visual Studio, из которых становятся понятны многие возможности.

Основные возможности среды редактирования



Рефакторинг



Отладка исключений



Дополнительную информацию и собственно само расширение Python Tools для Visual Studio вы можете найти на сайте pytools.codeplex.com/

Разработка Android приложения: Main Activity UI / Разработка под Android / Хабрахабр

Разработка Android приложения: Main Activity UI / Разработка под Android / Хабрахабр:
Это перевод первой статьи из цикла “Android Full Application Tutorial”. В цикле мы создадим android приложение, позволяющее искать фильмы или актеров в сети Интернет.

В данной статье мы рассмотрим следующие вопросы:
— создание проекта в среде eclipse
— разработка пользовательского интерфейса
— тестирование в приложения в эмуляторе


Для начала, создадим проект в Eclipse. Проект назовем AndroidMovieSearchAppProject, приложение – MovieSearchApp. Данная статья носит ознакомительный характер, поэтому в ней будет использоваться Android 1.5 (API level 3).

image

Пользовательский интерфейс сделаем абсолютно простым. Создадим форму со следующими элементами:
— поле ввода, куда пользователь будет вводить запрос
— две радиокнопки(фильм/актер), по которым будем определять, что ищет пользователь
— label, в котором будем показывать тип поиска
— кнопка, при нажатии на которую будем показывать пользователю результаты поиска

Результаты поиска будут отображаться в другой activity, о ней будет подробнее написано в следующих статьях серии.

Экранные формы в андроид-приложениях описываются с помощью xml файлов (для того, чтобы отделить отображение от логики). Файлы экранных форм должны лежать в папке res/layout проекта. Создадим там файл main.xml со следующим содержимым:

                                                                 


Заметьте, что строковые константы (@string/people например), не харкодятся, вместо них используются ключи из файла strings.xml, который расположен в папке res/values. В этом файле описываются строковые константы, необходимые для интернационализации приложения. Содержимое файла strings.xml

      Hello World, MovieSearchAppActivity!     MovieSearchApp     Search     Movies     People 


Вот как созданная нами экранная форма будет выглядеть в Android эмуляторе

image

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

Android предоставляет возможность обрабатывать события (клики на кнопку, смена фокуса, и тд), возникающие по действию пользователя. Для обработки нажатий на кнопку мы используем интерфейсOnClickListener, который определяет метод onClick, вызывающийся при нажатии пользователем на кнопку.

Другой полезный интерфейс — OnFocusChangeListener. Он определяет метод onFocusChange, который вызывает при смене фокуса.

Давайте посмотрим, как это можно использовать в нашей основной Activity


package com.javacodegeeks.android.apps.moviesearchapp;  import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast;  public class MovieSearchAppActivity extends Activity {          private static final String EMPTY_STRING = "";          private EditText searchEditText;     private RadioButton moviesSearchRadioButton;     private RadioButton peopleSearchRadioButton;     private RadioGroup searchRadioGroup;     private TextView searchTypeTextView;     private Button searchButton;          @Override     public void onCreate(Bundle savedInstanceState) {                  super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  this.findAllViewsById();                  moviesSearchRadioButton.setOnClickListener(radioButtonListener);         peopleSearchRadioButton.setOnClickListener(radioButtonListener);                  searchButton.setOnClickListener(new OnClickListener() {                         @Override             public void onClick(View v) {                 String query = searchEditText.getText().toString();                 if (moviesSearchRadioButton.isChecked()) {                     longToast(moviesSearchRadioButton.getText() + " " + query);                 }                 else if (peopleSearchRadioButton.isChecked()) {                     longToast(peopleSearchRadioButton.getText() + " " + query);                 }             }         });                  searchEditText.setOnFocusChangeListener(new DftTextOnFocusListener(getString(R.string.search)));                  int id = searchRadioGroup.getCheckedRadioButtonId();         RadioButton radioButton = (RadioButton) findViewById(id);         searchTypeTextView.setText(radioButton.getText());              }          private void findAllViewsById() {         searchEditText = (EditText) findViewById(R.id.search_edit_text);         moviesSearchRadioButton = (RadioButton) findViewById(R.id.movie_search_radio_button);         peopleSearchRadioButton = (RadioButton) findViewById(R.id.people_search_radio_button);         searchRadioGroup = (RadioGroup) findViewById(R.id.search_radio_group);         searchTypeTextView = (TextView) findViewById(R.id.search_type_text_view);         searchButton = (Button) findViewById(R.id.search_button);     }          public void longToast(CharSequence message) {         Toast.makeText(this, message, Toast.LENGTH_LONG).show();     }          private OnClickListener radioButtonListener = new OnClickListener() {         public void onClick(View v) {             RadioButton radioButton = (RadioButton) v;             searchTypeTextView.setText(radioButton.getText());         }     };      private class DftTextOnFocusListener implements OnFocusChangeListener {                  private String defaultText;          public DftTextOnFocusListener(String defaultText) {             this.defaultText = defaultText;         }          public void onFocusChange(View v, boolean hasFocus) {             if (v instanceof EditText) {                 EditText focusedEditText = (EditText) v;                 // handle obtaining focus                 if (hasFocus) {                     if (focusedEditText.getText().toString().equals(defaultText)) {                         focusedEditText.setText(EMPTY_STRING);                     }                 }                 // handle losing focus                 else {                     if (focusedEditText.getText().toString().equals(EMPTY_STRING)) {                         focusedEditText.setText(defaultText);                     }                 }             }         }              }      } 


Метод setContentView устанавливает, какая экранная форма будет показана пользователю в данной activity. R.layout.main – это как раз та форма, которую мы создали на предыдущем этапе. Затем мы получаем ссылки на элементы интерфейса, чтобы потом использовать их в коде. Мы создаем дваOnClickListener, один для обрабоки нажатий на радиокнопки, дугой – для кнопки поиска. Обработчики привязываются к элементам пользовательского интерфейса с помощью метода setOnClickListener.

Радиокнопки помещаются внутрь компонента RadioGroup. В коде мы можем использовать методgetCheckedRadioButtonId для получения идентификатора выбранного RadioButton.

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

image

При потере фокуса, если поле ввода пустое, в него будет подставляться текст.
Приложение готово, теперь его надо протестировать. Тестировать приложение будем с помощью Android эмулятора. Запустим AVD (Android Virtual Device) Manager из Eclipse, и создадим новый девайс. Назовем его Android-1.5-SD и выберите платформу Android 1.5.

image

Далее, создадим новую Run Configuration, выберем Android Project и MovieSearchAppActivity для запуска.

image

На вкладке Target выберем созданный девайс и нажмем Apply и Run.

image

Запустится Android эмулятор, а через некоторое время наша программа.

image

Исходный код приложения доступен здесь

'via Blog this'

Как сделать собственный видео-плеер на HTML5 Video / Блог компании Microsoft / Хабрахабр

Как сделать собственный видео-плеер на HTML5 Video / Блог компании Microsoft / Хабрахабр:

'via Blog this'

Как конвертировать форматы ebook и удалять теги


Как удалить теги из электронных книг


Будучи в отпуске с г-ном Котыревым этим летом, я получил от него несколько интересных книг в формате EPUB. Книги были категоризированы, что хорошо, но в категориях, логичных и удобных для Сергея Котырева.
Moon Reader же на андроиде категории не стирал. Книга из категории удалялась, а категория оставалась пустой.
Значит, категории прописываются прямо в книгу. И если не удаляются этой программой, удалятся другой.
Так я нашел программу “calibre - E-book management”, которая устанавливается на ПК и делает массу полезных вещей.

calibre
Так выглядит программа calibre

Программа удаляет категории. К сожалению, категорию, как таковую удалить не получилось, но если из нее убрать все книги, она сама исчезнет (если библиотека в 300 книг, будете дооолго щелкать).
На скриншоте выше мы видим в левой панели слово “Tags”, так вот, там категории у меня не удалились. Их там можно переименовать.
Удалить получилось из списка, если на скриншоте выше проскроллить список направо, то появится колонка с метками. В немецком она называется Schlagworte (у меня стоит немецкая версия программы, с немецким я на ты, с английским все еще спотыкаюсь, хоть и борюсь).

2011-08-28 19h13_24
Кликая по меткам, их можно оттуда удалять, стирая делитом.
Изменить мета-данные книги. Если нажать на синий значек “инфо”, можно изменить название, автора книги (а бывает, что книга называется как-попало), сортировку по автору, по названию, изменить описание.
2011-08-28 19h29_02
Перевести книгу в другой формат.  Для этого нажмите на кнопку правее синенькой инфо. Какие форматы поддерживаются, ответят разработчики.
Input Formats: CBZ, CBR, CBC, CHM, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ
Output Formats: EPUB, FB2, OEB, LIT, LRF, MOBI, HTMLZ, PDB, PML, RB, PDF, RTF, SNB, TCR, TXT, TXTZ
Что еще важно знать.
Я не совсем точно понял, как работает программа, но если вы поменяли категории книги, запишите изменения в новых книгах. То есть надо нажать на кнопку, что посередине на скриншате ниже

2011-08-28 19h36_10
и записать книги на жесткий диск. И перекачивать их в ваш телефон оттуда. Или читать при помощи этой программы с компьютера.
Скачать программу calibre с сайта производителя.
Приятного чтения!
ПС: как я уже говорил, все затеивалось, чтобы удалить теги, которые не удалялись в Moon Reader. Естественно я попытался сначала поставить другие программы на андроид и удалить ими. В-принципе удалить категории получилось программой Aldiko Reader, но я полагаю, что она и Moon Reader брали книги из разных папок, так что удаление одной программой никак не сказывалось на другой программе.
Возможно я протупил и надо было их принудить писать и читать в один фолдер. Не суть. Aldiko мне понравился больше, чем Moon, но он не читает FB2. Так что я перевел книги из FB2 в EPUB через calibre и теперь читаю на Aldiko.
Хотя у последнего не нашел возможности делать заметки, а у Moon есть еще и автопрокрутка текста + в полной версии голосовое чтение.Зато работа с категориями организована удобнее в Aldiko. А какой программой пользоваться – решает каждый сам, кому что важнее.

воскресенье, 28 августа 2011 г.

[ROM 2.3.4 kh3 leaked captivate ][28/8]FASTY II beta WHAT POSSIBLY COULD BE BETTER... - xda-developers

[ROM 2.3.4 kh3 leaked captivate ][28/8]FASTY II beta WHAT POSSIBLY COULD BE BETTER... - xda-developers:

'via Blog this'

13-летний школьник патентует солнечную батарею «на числах Фибоначчи» / DIY или Сделай Сам / Хабрахабр

13-летний школьник патентует солнечную батарею «на числах Фибоначчи» / DIY или Сделай Сам / Хабрахабр:
Тринадцатилетний вундеркинд Эйдан Дваер (Aidan Dwyer) из штата Нью-Йорк изобрёл новый дизайн солнечных батарей повышенной эффективности.

Школьник исследовал природные проявления чисел Фибоначчи. Его внимание привлёк тот факт, что листья на ветках деревьев располагаются в виде повторяющейся спирали в строгом математической порядке.



Расположение листьев описывается дробью, в которой числитель и знаменатель входят в последовательность Фибоначчи: 1/2, 2/5, 1/3, 3/8, 5/13 (впервые этот феномен описан в работешвейцарского биолога Шарля Бонне в 1754 г.).

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



Теория подтвердилась — действительно, расположение узлов всегда описывается функцией с числами Фибоначчи.

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

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



Затем Дваер сконструировал реальную солнечную батарею по этой модели. Идея была в том, чтобы сравнить эффективность такой батареи с обычной солнечной батареей, где все фотоэлементы располагаются параллельно друг другу.



Школьник сделал и обычную солнечную батарею из таких же фотоэлементов.



В течение нескольких месяцев он снимал показания с обеих батарей в различных условиях. Как ни странно, но причудливой формы батарея элементов, расположенных по формуле Фибоначчи, сработала эффективнее, чем обычная — по крайней мере, если верить измерениям парня. Она якобы генерирует в целом на 20% больше электричества, собирая солнечную энергию в среднем на 2,5 часа дольше каждый день.





Предприимчивый Эйдан Дваер уже оформляет патент на своё имя. Даже если его изобретение не имеет коммерческого смысла (судя по фотографии, на его «дереве» вообще-то в два раза больше фотоэлементов, чем на «обычном» образце), но проделанная работа вызывает уважение. Вот бы все дети увлекались такими исследованиями…



'via Blog this'

iOs-разработчик берется за Android / Блог компании e-Legion Ltd. / Хабрахабр

iOs-разработчик берется за Android / Блог компании e-Legion Ltd. / Хабрахабр:

iOs-разработчик берется за Android

Недавно мы выпустили Android-версию для нашей платформы для создания приложений, использующих определение местоположения — Meridian.



Не став использовать один из кросс-платформенных инструментов, подобных Titanium, мы написали ее с нуля на Java.

Мы решили, что важно сохранить родной материал родным и максимально уважать особенности каждой платформы. Некоторым таким особенностям легко следовать, например, добавлению верхних закладок в окно интерфейса. Другие свойственны только для Android, например: обработка Intents, завершение работы старых Activities, реализация Search Providers, а также строгость к ссылкам с целью помощи сборщику мусора.
'via Blog this'

Обзор Samsung GalaxyTab 10.1 / Железо / Хабрахабр

Обзор Samsung GalaxyTab 10.1 / Железо / Хабрахабр:

'via Blog this'

Предварительный обзор электронного учебника Plastic Logic


Премьерный показ электронного учебника Plastic Logic вызвал шквал вопросов, упреков, подозрений и обвинений. На них попробует ответить А. Б. Чубайс.
Планшетник или электронная книга?
Рынок планшетных компьютеров и электронных книг развивается очень динамично, и терминология здесь еще не устоялась. Wikipedia включает в определение «планшетный компьютер» (электронный планшет) различные типы устройств с сенсорным экраном, которыми можно управлять прикосновениями руки или стилуса. Электронный учебник Plastic Logic подходит под это определение, а изображение на его экране формируется электрофоретическим способом, как в электронных книгах. И хотя нет ошибки в том, что я назвал наше устройство планшетником, я готов согласиться с большинством из вас: давайте будем называть его ридером или электронным учебником. Тем более что функционал этого устройства преднамеренно заточен именно под задачи школьного учебника. Но об этом чуть позже…
Что собой представляет электронный учебник Plastic Logic?
Это устройство с монохромным сенсорным экраном диагональю 10,7 дюйма. Изображение на экране формируется по технологии «электронной бумаги», которой управляет активная матрица из пластиковых транзисторов на полимерной подложке. Отсутствие кремния и стеклянной подложки позволяет сделать экран гибким и устойчивым к внешним воздействиям — его нельзя разбить, как экран в обычных ридерах. В комментариях некоторые пользователи писали, что экраны обычных ридеров легко бьются, даже если просто положить ридер в сумку, и даже приводили фотографии. Поэтому к Kindle рекомендуют покупать жесткие обложки. В нашем ридере эта проблема решена. Поэтому он значительно безопаснее, особенно для детей.
Сразу же сниму вопросы о том, что там пластиковое, а что нет: по технологии пластиковой электроники в устройстве сделан только экран. Но при дальнейшем совершенствовании технологии в будущем будет происходить постепенное замещение ряда других компонентов на пластиковые (вероятно, прежде всего - память).
Время работы ридера без подзарядки при типичном использовании в школе — около недели.
Подробно о технических параметрах мы объявим в сентябре, когда состоится официальная презентация устройства для российского рынка. После этого электронные учебники будут доступны для тестов.
В чем технологический прорыв? И при чем здесь Роснано?
Технологический прорыв - в создании технологии серийного производства органических тонкопленочных транзисторов на гибкой, тонкой пластиковой подложке. Как первое коммерческое направление использования данной технологии было выбрано производство электрофоретического экрана с активной матрицей органических тонкопленочных транзисторов. Пластиковые транзисторы управляют пикселями электронной бумаги, на которой формируется изображение. В устройстве нет матрицы с хрупкой подложкой, именно этим продукт отличается от всего, что представлено на рынке.
Разработчик технологии пластиковой электроники – британская компания Plastic Logic и её исследовательский центр, находящийся в Кембридже в Кавендишской лаборатории.
Роль РОСНАНО заключается в переносе ключевой части разработки и производства - в Россию с одновременным созданием у нас исследовательского центра. Это - классический трансфер технологий. Должен сказать, что в течение примерно полутора лет переговорного процесса мы конкурировали (за этот самый трансфер технологий) с Китаем. И хотя Китай предлагал более щедрые финансовые условия, в этой конкуренции мы победили.
Сейчас пластиковые экраны производятся на заводе Plastic Logic в Дрездене, а опытные партии устройств собираются в США в Силиконовой долине. Результатом станет развертывание массового производства пластиковых дисплеев и других пластиковых электронных компонентов в России - в Зеленограде. Здесь будет налажен полный цикл производства. Причем речь идет не только об этих электронных учебниках. Завод, который мы построим в Зеленограде, будет ориентирован не только на российский, но и на глобальный рынок электроники.
Наряду с заводом в Зеленограде на базе Московского института электронной техники (МИЭТ) создается исследовательский центр, где технология будет совершенствоваться силами международной команды исследователей, в которую войдут студенты, аспиранты и преподаватели МИЭТ.
Роснано выступает в этом проекте как инвестор. Мы уже вложили в проект $150 млн.
Откуда берется контент? И может ли школьник загрузить в ридер «что-нибудь интересненькое»?
Контент подготовили издательства, которые работают с образовательной литературой. Естественно, это только официальные учебники, утвержденные Минобром. Наш ридер только дополнительно адаптирует контент с учетом параметров устройства.
В программном обеспечении соблюдены главные требования специалистов по школьному образованию — школьники не могут удалить или изменить учебники, устанавливать дополнительные программы, скачивать фильмы, музыку и игры. Этот ридер предназначен только для учебы. Функции ридеров для широкого круга потребителей, естественно, не будут так ограничены.
Цена
Сейчас ридер Plastic Logic стоит примерно столько же, сколько электронные ридеры с большими экранами (9 и более дюймов) на стеклянной подложке и без сенсорного экрана – около 12 тысяч рублей.
В качестве условного аналога возьмем PocketBook Pro 902 с экраном с экраном 9,7″. Он стоит 12590 р. Повторяю: это стекло, и там нет сенсорного экрана.
Электронный учебник может использоваться в среднем 3 года. За это время ридер сэкономит около 30% стоимости учебников. Мы считаем важным, что ридер полностью заменяет килограммы книг, которые дети вынуждены ежедневно носить в школу. Далее. Ридер расширяет возможности работы с учебником, позволяя выделять и комментировать текст. И, наконец, цена устройства снизится после выхода производства в Зеленограде на серийную мощность.
Стратегия
Общая стратегия разворачивания проекта такова. В конце этого года на площадке должно развернуться строительство, параллелельно с сентября начинается годовой эксперимент в четырех-пяти регионах страны по тестированию ридера в реальном учебном процессе, одновременно осенью этого года в МИЭТе будет создан исследовательский центр по дальнейшему развитию технологии. Учитывая запросы, уже поступившие к нам из торговых сетей, работающих с электроникой, мы конечно же будем готовить и коммерческие продукты для обычных покупателей.
Если продукт будет принят рынком, считаю его перспективы стратегическими, поскольку пластиковая технологическая платформа имеет не только свою продуктовую нишу, но и потенциал снижения цены больший, чем все существующие сегодня классические технологические платформы. Но об этом мы поговорим примерно через два-три года, придется набраться терпения.
Я понимаю, что ответил не на все ваши вопросы. Повторю: мы расскажем о нашем ридере все, когда он будет официально представлен на российском рынке. Ждать осталось совсем не долго – это должно случиться в сентябре. Следите за новостями, и вы все узнаете первыми.

Источник: a-chubais.livejournal.com

Смотрите погоду на Google Maps

На картах Google Maps теперь можно смотреть погоду. Для этого вам просто нужно включить ставший стандартным слой Weather/Погода.

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

-------------------------------------------------------------------------

Советую вам поменьше думать о проблемах, и побольше — об их решении. / Дэвид Аллен


Знаю как управлять временем

Отодвигая от себя пачку документов, требующих немедленного изучения, вы выбегаете на оживленную улицу и торопитесь на встречу с важным клиентом. В голове у вас стучит всего одна мысль: – «Только бы не опоздать». И так изо дня в день: вы вертитесь среди бумаг, коллег, клиентов, сосредоточив все свое время на работе и позабыв о семье, друзьях и полноценном отдыхе.

Да, вы можете сказать: – «Я работаю так много только ради своей семьи, они должны понимать это и полностью меня поддерживать». Но помните ли вы, когда последний раз проводили время со своими детьми? Вы помните их улыбку, адресованную вам? Замечаете ли вы ожидание в глазах ваших домочадцев? Нет, потому что вы слишком заняты, чтобы думать о таких вещах. А между тем бег времени неумолим. И самое мудрое, что мы можем сделать, это не жаловаться на нехватку времени, а научиться им управлять.

Прежде всего, научитесь оценивать временные затраты для каждого конкретного рабочего задания или процесса. Важно каждый день просчитывать, сколько времени уйдет на выполнение всего, что нужно сделать. Составляйте ежедневный план работы, указывая напротив каждого задания ориентировочное время его выполнения. Округляйте значения времени до 15 минут. Таким образом, вы будете видеть уже в начале рабочего дня, есть ли у вас перезагрузка работой или можно вписать еще несколько пунктов в план на сегодня.

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

Каждый день после того, как вы составили график встреч, совещаний и т.д., вы видите остаток времени, который можно посвятить рутинным делам. Определяя время для каждого задания, будьте реалистом. Если вы чувствуете, что не справитесь со всем объемом работы, перенесите часть заданий на другой день или делегируйте их другим людям.

управлять временем

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

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

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

http://znaju-kak.ru/2011/08/znayu-kak-upravlyat-vremenem/

3 простых способа скачать музыку, видео Вконтакте

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

Для этого есть множество способов.

Предлагаем вашему вниманию небольшой обзор наиболее распространенных и простых способов:

1) Плагин для FireFox

Если Вы пользуетесь браузером FireFox, то нет ничего проще, чем сохранить аудио/видеоВконтакте. Для этого нужно лишь скачать и установить плагин (Add-on) VKontakte.ru Downloader. После того как вы установите плагин, появится стрелочка для закачки музыки, а под видео появится линк “Download Video”.

2) Плагин для Chrome

Не менее легко сохранять аудио/видео Вконтакте и в браузере Chrome. Для этого есть соответствующий плагин MusicSig vkontakte . После его установки в правом верхнем углу браузера должна появиться иконка в виде ноты, после перезагрузки браузера получим возможность скачивать аудио/видео из Chrome – возле файлов справа будут иконки в виде дискеты:

3) Программа для всех браузеров

Для всех браузеров (Opera / Firefox / Internet Explorer / Chrome / Safari) есть программа VKSaver, скачав которую, Вы получаете возможность скачивать аудио/видео. После установки ее на компьютер иконка программы появится у вас в трее , а возле файлов, которые можно сохранять - кнопочка “S”.

http://t.co/rSUTjhw

Google Related

Новая система Google Related http://t.co/VA4K0tE дополняющая просматриваемый вами контент

Читаем QR код


http://habrahabr.ru/blogs/DIY/127197/

by tgx



Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.


В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.


Иллюстраций: 14, символов: 8 510.




Для тех, кто не в курсе, что такое QR код, есть неплохая статья в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти, воспользовавшись поиском.


Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online генераторе QR Coder.ru.




Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем, в виду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, что описаны ниже, можно адаптироваться и к этим режимам.


На случай некорректного чтения данных в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона. Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «премешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации.


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




Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет реализовать при непосредственном чтении кода. Остальные пункты можно опустить в виду того, что считывание производит человек.


Шаг 0. QR код




Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь:



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


Размещение системной информации показано на рисунке:




Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 — это полезная информация, а остальные 10 – это BCH(15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.


Шаг 1. Чтение 5 бит системной информации


Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:




Шаг 2. Маска для системной информации


Кроме уже озвученных схем зашиты системной информации, в добавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010. Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять-сто один). После применения операции исключающего или (xor) получаем информацию.


Возможные уровни коррекции ошибок:


L01
M00
Q11
H10


Возможные маски:


000(i + j) mod 2 = 0
001i mod 2 = 0
010j mod 3 = 0
011(i + j) mod 3 = 0
100((i div 2) + (j div 3)) mod 2 = 0
101(i j) mod 2 + (i j) mod 3 = 0
110((i j) mod 2 + (i j) mod 3) mod 2 = 0
111((i+j) mod 2 + (i j) mod 3) mod 2 = 0




Шаг 3. Чтение заголовка данных


Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:




Список возможных режимов:


ECI0111
Числовые0001
Буквенно-числовые0010
8-битный (байтный)0100
Kanji1000
Структурированное дополнение0011
FNC10101 (1-я позиция)
1001 (2-я позиция)


Шаг 4. Применение маски к заголовку


После извлечения 4-х бит, описывающих режим, необходимо к ним применить маску.
В нашем случае для двух кодов используются разные маски. Маска определяется выражением, приведённым в таблице выше. Если данное выражение сводится к TRUE (верное) для бита с координатами(i,j), то бит инвертируется, иначе всё остаётся без изменений. Начало координат в левом верхнем углу(0,0). Взглянув на выражения, можно заметить в них закономерности. Для рассматриваемых QR кодов, маски будут выглядеть так:






Получим режимы:




Шаг 5. Чтение данных


После получения данных о режиме можно приступать к чтению информации. Надо оговорить, что наиболее интересно считывать числовые и буквенно-числовые данные, так как они легко интерпретируются. Но также не стоит бояться 8-битных. Это может быть также легко интерпретируемая информация. Например, многие онлайн генераторы QR текст кодируют в этом режиме, используя ASCII. Ещё одна причина, почему следует изначально прочитать режим это то, что от него зависит количество пакетов данных. Которая также зависит и от версии кода. Для версий с первой по девятую длины блоков для более читабельных режимов:


Числовые10 бит / 4 бита
Буквенно-числовые9 бит
8-битный (байтный)8 бит


Первый блок после указателя режима – это количество символов. Для числового режима количество закодировано в 10 следующих битах, а для 8-битного режима в 8 битах (прошу прощения за тавтологию).




На рисунке видно, что в левом QR коде, как и отмечалось, записана цифра 5. Это видно по указателю количества символов и последующим после него 4 битам. В числовом режиме наряду с 10-битными блоками используются 4-х битные блоки для экономии места, если в 10-битном объёме нет необходимости. В правом коде, зашифровано 4 символа. На данный момент неизвестно, что зашифровано в нём. Поэтому необходимо перейти к чтению следующего столбца для извлечения всех 4-х блок информации.




На рисунке видно, все 4 пакета представляют собой коды ASCII латинских букв, образующие слово «habr»


Естественно наилучшим способом остаётся достать телефон из кармана и, наведя камеру на QR-картинку, считать всю информацию. Однако в экстренных случаях может пригодиться и описанная методика. Конечно, в голове не удержишь все указатели режимов и типов масок, а также ASCII символы, но популярные комбинации запомнить (хотя бы те, что рассмотрены в статье) под силу.