Monday, June 19, 2017

iOS UIAutomation Brief overview


Provides a way to test the UI in automated way!. This approach relies on the accessibility labels. These tests are run using Automation instrument within Instruments tool. The tests can be run on simulator or on physical device! 

Thought to start with this and searching around the Automation framework, it appears that the Xcode 8.x has major changes in this. Now since the UIAutomation framework has come into place, Under Product -> Profile > Automation wont appear anymore. 

Now create a new project in Xcode, it will ask whether the test and UITest needs to be included or not. If opt to include, later when run through the Build > Test, it will run the automated UI Tests. 

references:

Wednesday, May 31, 2017

How does AMR Bandwidth efficient mode looks like?

 In the payload, no specific mode is requested (CMR=15), the speech frame is not damaged at the IP origin (Q=1), and the coding mode is AMR 7.4 kbps (FT=4).  The encoded speech bits, d(0) to d(147), are arranged in descending sensitivity order according to [2].  Finally, two padding bits (P) are added to the end as padding to make the payload octet aligned.




references:
https://tools.ietf.org/html/rfc4867

Friday, May 26, 2017

How to install tomcat on Mac ?

This can be installed easily through the home-brew. 

$brew install tomcat 

this will take care of the downloading, installation and configuration of Tomcat and manage its dependancies as well. 

Brew keeps packages (known as kegs) in the Cellar, where one can check the config and data files. it is located at 

$ls /usr/local/cellar 

The tomcat installation can be verified using the home-brew’s service utility 

$brew services list 

To run the tomcat server, just execute the catalina command 

$ls /usr/local/Cellar/tomcat 
$ /usr/local/Cellar/tomcat /8.5.3/bin/catalina run 

after running the page can be visited at http://localhost:8080

references

Calling a method on constant C++

Why does the error below happen? 

member function 'SetMethodX’ not viable: 'this' argument has type 'const webrtc::ClassY’, but function is not marked const
In my case, the ClassY was constant and using that it was trying to call SetMethodX which was defined to be not constant.

To be able to call a function on a const object, you need to promise the compiler that the function will not modify the object. To do that, you mark the function with the keyword const after its argument list. For example, to make getDimension a const member function, you would change it to:

const ULL getDimension() const { return dimension; }
(Note that the const in the return type will have absolutely no effect, so you should get rid of it)

references:

C++ what is a non static member function?

it is a function without const or friend specifier and that is declared in a member specification. 
Below gives some good overview of various types of member functions 

class S 
{
int mf1(); //non static member function declaration 
void mf2() volatile, mf3() &&; //can be cv-qualified and reference-qualified
        int mf4() const {return data;} //can be defined inline
virtual void()  mf5() final; //can be virtual can use virtual/final 
        S() : data(12) {} // constructors are member functions as well. 
        int data;
};

int S::mf1() {return 6;} //if not defined inline, it has to be defined at namespace. 

references:

Wednesday, May 24, 2017

How to access Google Team drives from Desktop offline

This can be done basically using the google team drive. the new version has EAP Early access program which will allow one utilise the new features such as Team drive.


references:
https://gsuite.google.com/campaigns/index__drive-fs-eap.html

Differences between VoIP and VoLTE

They both essentially uses the same mechanism. Voice packets are encoded to data and sent as data packets over IP network. However, they both differs in the way that the data is carried and the network infrastructure used for carrying it. 

The differences between two include 

1. Using 3G or 4G network 
2. QoS component 
3. Radio Frequency or SR-VCC (Single Radio Voice Continuity) IMS requirement
4. HD Voice requirements

VoLTE packets have 3 times more voice and data carrying capacity using 4G network. VoLTE also has built in QoS components. 

4G boasts about having 100 megabits per second speed. VoIP can use either 3G or 4G while VoLTE can only use 4G. 

one of the main difference is in the QoS. VoLTE uses IMS network and separate radio frequency to help maintain the quality of the VoLTE transmission. something like an expressway! 

When the user leave an LTE coverage area, SR-VCC functions by connecting to the LTE and legacy network at the same time . The radio frequency uses the IMS framework to make this happen. 

Since VoLTE uses fewer resources and has simpler compacting ability for the data packets, networks and handsets, these items consume use less energy with VoLTE. This provides greater battery life for each. VoLTE calls take less time to connect than a 3G call. 

VoLTE calls take less time to connect than a 3G call.

references: