Wednesday, December 24, 2014

Выпущена версия WiFiLine 1.0.18

Изменения в этой версии:

  • Улучшено качество позиционирования (если Вы обнаружите затруднения, дайте мне знать).
  • Добавлен режим сканирования на ходу. Он включается при выборе количества сканирований в одной точке равным 1. В этом режиме после первого касания экрана запускается "бесконечное" сканирование до момента второго касания. За это время сканирующий должен двигаться на местности по прямой с постоянной скоростью. Программа разместит на карте все полученные за это время данные в виде отдельных точек на прямой между начальной и конечной точками, исходя из временных меток каждого отсчета.
  • В инспектор карты добавлена функция генерации измерений, имеющая смысл для карт полученных с помощью сканирования на ходу. В такой карте в каждой точке содержится только одно измерение. Суть данной функции в том, чтобы сгенерировать для каждой точки дополнительные измерения - они берутся из соседних точек в пределах заданного радиуса. Это позволяет строить более плавное распределение сигналов.
  • Добавлена настройка по выбору радиуса ближайшего окружения. В режиме сканирования - это радиус в метрах, в пределах которого генерируются дополнительные сигналы, описанные выше. В режиме локации - это радиус в точках, в пределах которого может меняться положение пользователя - при превышении данного радиуса новое положение пользователя определяется как ближайшая к нему точка на пути к новому положению, которое находится неправдоподобно далеко (за пределами радиуса).
  • В режиме навигации программа теперь последовательно вызывает все алгоритмы и выводит на экран желтые метки для каждого из них. Это позволяет оценить эффективность методов при различных условиях. Текущее положение пользователя отображается как прежде - на основе результата выбранного в настройках алгоритма. Для того чтобы среди вспомогательных меток появилась нейронная сеть, её необходимо предварительно проинициализировать, выбрав в качестве основного метода. Потом можно переключиться обратно на любой другой алгоритм.
  • Исправлена работа компаса.

WiFiLine 1.0.18 is released

Changes in this version:

  • Location quality is improved (if you experience some problems please let me know).
  • New in-motion scanning mode is added. It's enabled when number of scans is selected as 1. In this mode first touch of the screen starts "endless" scanning until the second touch. In this timeframe a user should walk with a constant speed along a straight line. The app will place all received measurements on the map as points on the straight line between starting and ending points, with respect to their time marks.
  • New function for generating subscans is added into the map inspector. It's primarily intended for the maps created in in-motion mode. In this mode map contains a single measurement in a point. The new function allows you to generate additional measurements for every point - they are taken from neignboring points with a predefined radius. The purpose is to form more smooth signal distribution on the map.
  • New option to select the size of neighborhood is added into the settings. While scanning this is a radius in meters for additional signals generation (described above), while in location mode this is a maximal allowed change of user location in points. If a newly detected location is outside the radius, actual new location is chosen at next point on the path to the ambiguous location, which is too far from current point to be likely.
  • In the location mode the app invokes all algorithms one by one, and displays 3 yellow marks on the map with results of every of them. This allows you to estimate how different algorithms behave themselves under different conditions. Current user location is displayed as before, according to selected algorithm. In order to make neural network showing among these additional marks, it should be initialized. This is done when neural network is selected as preferred algorithm. After this one can switch back to any other algorithm.
  • Compass is fixed.

Monday, December 22, 2014

Android 5 (Lollipop) broke some Hibernate functionality

As you may know I have a side project for Android called Hibernate which is mentioned here on the blog site among other useful links, and has its own dedicated page with a short description. So I think it's not too much offtopic here if I post a piece of news about Hibernate. Unfortunately this is bad news.

Android 5.0.1 Lollipop broke some of Hibernate's functionality. Google made some changes in the new OS that made it impossible to monitor foreground task via ActivityManager. Most importantly, it was done intentionally and based on some paranoid security considerations (see below), so no workaround is left for non-rooted devices. I must say this is not the first time when Google changes their OS in very questionnable manner and actually degrades user experience.

Here is what the official documentation says about getRunningTasks method of ActivityManager:

This method is no longer available to third party applications: the introduction of document-centric recents means it can leak person information to the caller. For backwards compatibility, it will still return a small subset of its data: at least the caller's own tasks, and possibly some other tasks such as home that are known to not be sensitive.

As a result, the option Rehibernation in the Hibernate app has no effect anymore. But I'm trying to elaborate a workaround anyway.

As a side-effect, the system log is flooded with messages:

getTasks: caller XXXXX does not hold GET_TASKS; limiting output

but this does not impair usability.

Wednesday, December 17, 2014

WiFiLine Editor is updated

New version of WiFiLine Editor has been just submitted to Google Play. It includes minor improvements and bugfixes. If you use a limited WiFiLine app (without editor capabilities) I suggest you to switch to this fully functional version. I know some people would prefer to get something brand new and special, and I would do so as well. But unfortunately it takes some time for redesign, refactoring and implementing new features. Stay tuned.

Wednesday, December 10, 2014

OFF: Android 5.0.1 is off

You may have noticed that WiFiLine project is in the shade of other side projects I'm trying to experiment with. I have some ideas for WiFiLine's future, but at this time I'd like to share first thoughts about new Android version - 5.0.1 - which I received with an Over-The-Air update.

I did not do much testing so far, but here are the points that just strike the eye.

  • standard font size is too small; I was compelled to change system settings for using "Huge" fonts (this is maximum), only after this the texts in dialogs and notifications became as much readable as before (with standard font size);
  • the settings dialog is now organized into 2 columns, which is very unconvenient and hard to read in comparison with the previously known streamlined list;
  • standard keyboard is almost unusable in its "modern" flat design; luckily, there is an option to select a "Holo" theme for the keyboard, so that it brings back conventional look and feel;
  • the last annoying thing is a mess with system statuses and notifications - I'll put the details below, outside the list;

As you know there is the status bar in the upper part of the screen. On the left side notification are shown, on the right side system information about connectivity, battery power etc. is shown. In previous versions of Android swipe down gestures worked separately for the left and the right sides, that is they open either notification list or a dropdown box with quick access options. Now they are combined! No matter where you perform the swipe down - on the left or on the right side - you see the same picture, and the dropdown box is shown in the center. This is very unexpected and inconsistent. Also this does not impove usability in any way, because the options are now buried under notifications: you need to perform 2 swipe down gestures in a row - first to open the dropdown, and the second - to move notification underneath - only after this the options appear.

I hope functional improvements in Android 5 are not designed in the same counterproductive manner as with appearence and usability.

Tuesday, September 16, 2014

The site is back

I'm happy to inform you that is back - now at the OpenShift cloud. As usual the backend does not only provide you with WiFiLine documentation, but also host the map database. Searching through the base is again available from WiFiLine apps. The number of examples is still limited, but you can share your works and help in populating the base.

Thursday, September 4, 2014

Site problems

Unfortunately, my Internet provider cancelled operation of the servers, where the sites and were hosted, without a warning and replacement. I'm going to move the sites to other location, but this may take a while. Please, contact me directly if you need some info about the programs. As search on the servers does not work in the app anymore, I advise you to move to WiFiLine Editor instead of  WiFiLine, if you did not do it already. WiFiLine Editor allows you to create, load, save, and test local files with navigation maps. If you need example maps, request them via e-mail, and I'll send them ASAP.

Saturday, April 12, 2014

Droidcon Moscow 2014: r-evolution of wearables

Today I'm going to post some thoughts on a subject which may seem offtopic here, but only at a first glance. Indeed, it's about Android ecosystem, and thus embraces Android-based applications, including those related to indoor, outdoor, or whatever-else-door positioning.

The main news is that I attended Droidcon Moscow 2014 today. There is no surprise that current trends were covered: wearables, augmented reality, virtual presence, and context awareness.

Among all evolving products, which comprises these technologies, one is most noticable: glasses.

Google glasses are definitely the most widely known and promoted example. They are surrounded with enthusiastic boom and provide a truly new user experience. Yet I have some critical considerations.

First of all, I don't completely agree with Google's design. Their decision was to make the active part of glasses as a single eyeglass. The working area covers only a little part of visual field, and a user must squint in order to read info. I know this was the deliberate decision to not distract user from reality. The problem with this approach is that "real reality", augmented reality, and virtual reality are combining too fast and displaying virtual information over real world becomes a real, most important, value. As for distracting user from reality - this is just a matter of switching one display mode or another (such as completely transparent). Anyway, I'd prefer to have a glasses with both oculars and see them in front of eyes.

The second thought about Google glasses concerns another point: the glasses are actually a thin client (UI) for server-based apps. The apps which the glasses are capable of running are very lightweight. It's not possible to code somewhat computationally complicated, because the glasses discharge quickly and become hot (at your face's skin).

The third point is that Google glasses require special coding. The apps for the glasses are not plain old Android apps. On the other hand, if I have, for example, an Android application for augmented reality which runs on phones and tablets, I'd like to port it to glasses with minimal or even no efforts.

All that said, it's time to introduce another glasses - Epson Moverio BT-200. This gadget presents full-fledged, so to speak, glasses with two active oculars. Moreover, they are powered with real Android OS and can run native Android apps. This is good news. The bad news is that they made of 2 parts: the glasses themselves and a "system block" with touchpad, connected by a pretty thick wire. My user experience was not so good. It feels really unnatural to move fingers over the touchpad (somewhere in "background") for cursor control. I'd prefer that an eyemovement detection would have been built into the gadget. It does exists in other products and fits into such glasses metaphor very well - cursor just follows sightline.

Ok, let us admit that the outboard "system block" is the only solution possible nowadays to support full power of an Android device, but the touchpad, as a primary control, is inappropriate. As long as this block should exit due to current technical limitations, I'd made it as a normal Android device with touch screen. So, it can be used as is without glasses. And if glasses are connected, they use all the power of the device and adds new eye-tracking control experience, including movements, winks, etc. And as you may notice, this sounds like the (Epson) glasses could be implemented as stand-alone detachable gadget, which could be plugged into any Android device! That would be nice. But this is not all the story.

Even if the eye-tracking would be incorporated into the glasses, there is something more that could add next level of control and interaction. When I'm looking at the glasses, the brain-computer interface comes to my mind. For example, Emotiv devices just asks to be embedded into the glasses. Structurally all we need is to add some contacts on the inner side of the rim. Software part is not a problem at all.

Bottom line. I think the advent of virtual glasses is exciting as phenomenon, but existing models lack many features which could dramatically improve usability, and more importantly, all this is doable right now. So, I'm waiting for the evolution or revolution, as you like. Hope it'll happen soon.