Apple Watch at the second glance

I could make my first impression of the Apple Watch 2 years ago. The very first version of the watchOS could not really persuade with features that one would say “I absolutely need the watch!”. Actually, I agree with multiple reviews and the main statement about Apple Watch: no clear concept for whom it can bee useful and how it can revolutionize my everyday life. Thus, I put the Apple Watch in the cupboard. For fitness data tracking and sleep data tracking I preferred my new Garmin Vivosmart HR. To my opinion it had a number of advantages over Apple Watch:

  • Battery Life! The most important argument. Vivosmart HR needs to be charged only once a week, where Apple Watch should be charged really every day
  • Sleep data tracking
  • Stairs/floor counter
  • Waterproof

Last week I wanted to know more about the features of watchOS 3. For this purpose Apple Watch and Vivosmart HR changed their places in the cupboard. After a week of wearing the Apple Watch I did like the recent changes. Of course, battery life didn’t really change. watchOS 3 did not bring waterproof property to the very first model of the Apple Watch as well 🙂 BUT:

  • Now, apps can run directly on the  Apple Watch
  • More interesting apps for the Apple Watch
  • Pleasant improvements in fitness aspects: better user interface, more features
  • HomeKit makes it possible to integrate it in your smart home environment
  • and much more..

The Apple Watch became more attractive for sportsmen and the intent of Apple is to make more in that direction. If one accepts the fact, that even Generation 2  of the Apple Watch still needs to be charged every 2 days, then one can say, it is one of the best devices on the markt of wearable devices. At least at the current moment.

How do I remove Adware Generic7.CASB?

If your antivirus software like AVP reports a threat through Adware Gerneric7.CASB and is not able to treat it itself, don’t become desperate. Generally, it is possible to remove this nasty Trojan yourself. However, this way is complicated and not safe for your system, if you are not a virus expert. Adware Generic is able to rename itself and also rename other important system files, so that you can accidentally corrupt useful applications.

In order to remove Adware Generic7.CASB just use a free tool AdwCleaner. It is a small program, which is even not required to be installed. It knows almost all kinds of adware and can repair your PC in a few moments.

  • First, start AdwCleaner and run the scan of your computer.
  • After AdwCleaner finds adware, press “Clean” button
  • Adware Generic7.CASB will be automatically removed from your computer. You will be prompted to restart your PC.
  • After system restart you can view the log file and wonder how deep Adware Generic7.CASB set in your operation system. That’s all.


Google Analytics for iOS

Once I reported about my experience with HockeyApp a tracking tool for iOS, Android and Windows Apps. Today I tested the abilities of Google Analytics for iOS. Without going deep in details here is the overview of the evaluation results:

  • There are SDKs only for iOS and Android. Tracking of the Windows Apps is not supported.
  • Tracking of the fatal and non fatal exceptions is possible
  • Screen tracking. If desired, the tracking method can be called for example in viewWillAppear. In the dashboard of Google Analytics there is the overview of the called Views.
  • Support for custom events
  • Real time screen end events tracking
  • Dashboard of the App Analytics looks almost same as the dashboard for tracking websites
  • If tracking private user data, be sure to learn about privacy policy and the proper use of the Google Analytics in your app

Fotooptische Holzvermessung

Bei der fotooptischen Holzvermessung handelt es sich um ein automatisches Verfahren zur Ermittlung der Stammzahl in einem Holzpolter und Berechnung des Holzvolumens. Es gibt auf dem Markt sowohl einige Apps, die das Verfahren implementieren, als auch ganze fahrzeuggestützte Systeme. In der Regel erfolgt die fotooptische Poltervermessung in drei Schritten. Zuerst wird der Holzpolter mittels Einzelaufnahmen fotografiert, die Bilder zu einem Panoramabild verknüpft und alle sichtbaren Stammstirnflächen automatisch erkannt. Im zweiten Schritt hat der Nutzer die Möglichkeit Ergebnisse der automatischen Bilderkennung nachzujustieren und Referenzobjekte zur späteren Volumenberechnung festzulegen. Anschließend wird Holzvolumen automatisch berechnet.

Die fotooptische Holzvermessung bietet einige Vorteile gegenüber herkömmlichen Messverfahren. Insbesondere Zeitersparnis. Die Poltervermessung reduziert sich dramatisch auf nur einige Minuten. Nichtsdestotrotz stosst das Verfahren unter bestimmten Bedingungen auf seine Grenzen. Dunkelheit, Regen, Schnee all das kann die Qualität der automatischen Volumenberechnung stark beeinflussen. Deswegen wird das neue Verfahren die anderen Vermessungsverfahren nicht komplett verdrängen. Zumindest nicht so schnell.

Die fotooptische Holzvermessung sorgt aber für großes Interesse und hat auf jeden Fall ein großes Potenzial. Im Rahme der PolterApp-Entwicklung wurden erforderliche technologische Bausteine bereits evaluiert. Der grobe Prototyp könnte sogar schon im Frühling 2017 released werden.

Popular programming languages 2016

Every year various programming communities try to create and to analyze the rating of existing programming languages. Just to mention few of them:  TIOBEPYPLIEEE etc. These ratings are based on different approaches, e.g. popularity of tutorials for particular programming languages, data analysis at GitHub and StackOverflow or even analysis of messages in Twitter.

These ratings might help when making a decision about what programming language should be adopted when starting to build a new software system. Also they can be used by students or starting programmers to get a better feeling of what skills are mostly asked. Of course, every programming language despite of its rating, has a particular goal. It is designed to fulfill certain tasks. Even if one language is much more “popular” than some other, it does always not mean, that it is better. More frequently one programming language cannot even be substituted by some other due to system requirements. For example, it is not possible to write iOS apps in JAVA and Web browser can only execute JavaScript and no C++ code. Like every plumbing requires its own tools, so every development depends on the current requirements.

So what are the most popular languages of the year 2016? First place is traditionally JAVA. Also C and C++ stay at the top of all the ratings. C# has its stable high position as well. Popular script languages are PHP, Python and JavaScript. Functional programming languages like R become more and more popular.

Merry Christmas and a Happy New Year!

It’s the time of candles, cakes, songs, presents and laughter. Before we all dive into the joy of Christmas holidays, I want to say “thank you” to all those who actively supported me this yeah by development of the PolterApp. We worked together and we reached more than expected. What we made so far is a good base for further development and another victories.

I wish you all a Merry Christmas and a Happy New Yeah!

Multipeer Connectivity

The Multipeer Connectivity APIs, introduced by Apple in iOS 7 is an easy way to start building apps requiring peer-to-peer communication. Nearby devices communicate over infrastructure Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth personal area networks. Connected peers are able securely transmit messages, streams, or file resources to other devices.

Evaluation of different aspects of Multipeer Connectivity with iPad Air 2 devices shows surprising results. Discovery and communication between iPad devices works mostly well. However, some shortcomings are to be mentioned here.

  • Establishing connection between peers always requires user interaction. The user has to confirm a connection to other device. There is no way to work with certificates or white lists of devices.
  • The other issue is that the framework does not always repair the broken ad-hoc network correctly. If a peer suddenly leaves the network, it often stays broken. Discovery must be restarted manually.
  • Multipeer Connectivity framework is only available for iOS, macOS and tvOS devices. So if the app has to run also on Android or Windows devices, this framework cannot be used.

To read more about Multipeer Connectivity refer to nshipster and apple’s doc.

Routing in ad-hoc Networks

devices-341443_640What does make routing and communication in Ad Hoc Networks different from routing and communication in usual LANs, WANs etc.? The main peculiarities are the absence of wires, routers and any predefined infrastructure. The nodes communicate with each other over the air and this is a very unreliable medium. Because of reflection, diffraction, diffusion and other signal propogation properties the data exchanging by nodes is frequently lost. Not only the connections between nodes can break, but the nodes move and the topology of the network can change any time.

Taking into consideration all these facts, it’s obvious that the standard approaches applicable to the usual networks with pre-existing infrastructure aren’t suitable in general for the ad hoc networks. In following I’d like to tell a couple of words to ISO/OSI layers and explain briefly how they are realized in ad hoc networks.

Data Link Layer.
In Ethernet the Carrier Sense Multiple Access Collision Detection (CSMA/CD) is mostly used as the Medium Access Control Protocol. This protocol does not work well in ad hoc network. So imagine there is a node A that wants to send a packet to the other node B. A has to be sure that no other neighbour is sending at the moment to avoid collisions. If medium is already in use, A has to wait. The main lack of this approach is so called Hidden Terminal Problem. hiddenterminalThe picture depicts it. The node C is hidden from the node A. If C is already sending and A wants to send, it can’t find any sending nodes nearby, so it starts sending too. It leads to a collisions at the node B.
That’s why IEEE 802.11 offers the alternative MAC protocol that partly solves this problem. If the node A wants to send some packet to the node B and the medium is free, A sends first of all a short RTS (ready to send) signal. All the neighbours of A know then that A is going to send. When B recieves RTS it sends CTS (clear to send) signal, and thus all the neihbours of B know that B is going to recieve. After the transmition B sends an ACK and it releases the medium for the neighbours.

Network Layer.
The most important and interesting question is how one node finds a multi-hop path to the other node. Routing protocols for mobile ad hoc networks are devided into three large classes proactive, reactive and hybrid routing protocols.
Reactive protocols are designed for the ad hoc networks with high dynamics, where the network topology changes frequently. Each time when one node sends a packet to the other node, the routing path is built up again.

Proactive protocols use a kind of routing tables. It is assumed that the routes change not so often and they can be saved for a while in a table. The tables are then changed by the nodes.

Hybrid protocols use both of these technics.

The list of most popular algorithms can be found for example in Wikipedia.

Transport Layer.
In most ad hoc networks various realizations of TCP are used as the transport protocol. All the realizations like TCP Reno, TCP New-Reno differ from each other by algorithms that set the congestion window. The “normal” TCP doesn’t work well in ad hoc networks because the packets are frequently lost being propagating over the air. “Normal” TCP has to be adopted to these conditions.

Application Layer.
Unlike the Application Layer in common networks, application layer in mobile ad hoc networks can’t be completely isolated from the network layer. The developing applications have to be aware of the dynamics of the network and depending on the frequency of the topology changes apply for example the appropriate routing protocol.

Classification of Mobile Ad Hoc Networks

connectedDevicesWhat is a Mobile Ad Hoc Network? It is a collection of mobile nodes, such devices as PDAs, mobile phones, laptops etc., that are connected over a wireless medium. Thee is no pre-existing communication infrastructure (no access points, no base stations) and the nodes can freely move and self-organize into a network topology.

Such a network can contain two or more nodes. Every owner of a mobile phone equiped with a bluetooth module can build up a direct connection to the other phone and exchange data. It’s the simpliest form of an ad hoc network, one hop piconet. Only one hop is actually not so exciting. Mobile multi-hop ad hoc networks are much more interesting. There are three classes of such networks.

  • MANets – Mobile Ad-hoc Networks. It”s the classical ad hoc network that came from the military sector. These networks were developed to connect planes, tanks, troops at the battlefield. They are completely self-organizing. The other possible areas where they could be applied are disaster recovery, car-to-car communication, home networking. This class of ad hoc networks can be seen as the forefather of the other classes.
  • WMN – Wireless Mesh Networks. Like MANets, but there is a set of nodes, stationary mesh routers which form a wireless multi-hop ad hoc backbone. The mesh routers can be connected to the Internet and thus all the participants of the backbone have an access to the Internet. Imagine you are at the airpot where there are only few access points (mesh routers). You have no direct contact to a one, but still you have an Internet access due to the other guests of the airport. The mesh routers make the routing task more simple and the protocols running on them allow the backbone to be easy to set up and self healing.
  • WSN – Wireless Sensor Networks. This special class of ad hoc networks is used to monitor some phenomenon in a certain area. The nodes have often only the simple task to deliver the monitoring information such as measured temperature, air polution, median speed of the cars on a highway etc. to the minitoring system. The devices partitipating in a sensor network are just special sensors that differ greatly in their purpose from the user devices. Thus the solutions designed for the general multi-hop ad hoc networks where mobile devices execute such applications as Skype, instant messaging, streaming applications etc., just don’t suite for sensor networks.

The idea of ad hoc networks is not that very innovative. It’s almost as old as the Internet. In the last years the interest to the ad hoc networks has grown very much. Especially in the car and entertainment industry.