Friday, March 24, 2017

What is CAT-iq?

Cordless Advanced Technology—internet and quality (CAT-iq) is a technology initiative from the Digital Enhanced Cordless Telecommunications (DECT) Forum, based on ETSI TS 102 527 New Generation DECT (NG-DECT) European standard series.

NG-DECT contains backward compatible extensions to basic DECT GAP functionality which allow bases and handsets from different vendors to work together with full feature richness expected from SIP terminals and VoIP gateways.

CAT-iq defines several profiles for high quality wideband voice services with multiple lines, as well as low bit-rate data applications.

The CAT-iq profiles are split between voice and data service, with the following mandatory features: [1]

CAT-iq 1.0 - "HD Voice" (ETSI TS 102 527-1): narrow-band (32 kbit/s G.726 ADPCM) and wideband (64 kbit/s G.722 sub-band ADPCM) audio, calling party line and name identification (CLIP, CNIP)
CAT-iq 2.0 - "Multi Line" (ETSI TS 102 527-3): adds multiple lines, line name/id, call waiting, call transfer, phonebook, missed calls list, DTMF signalling, hands-free headset, handset locator, synchronisation of call lists, phonebook, and settings
CAT-iq 2.1 - "Green" (ETSI TS 102 527-5): adds 3-party conference, call intrusion, caller blocking (CLIR), answering machine control, SMS on handsets, power-saving modes for handset and base
CAT-iq 3.0 - "Internet Ready" (ETSI TS 102 527-4): light data services, software upgrade over the air (SUOTA)
CAT-iq 4.0 - "Intelligent Networking" (planned): Smart Home connectivity (IOT) using DECT Ultra Low Energy (ETSI TS 102 939)
The CAT-iq profiles require a stricter set of mandatory features than the relevant ETSI NG-DECT standards, which make many advanced features optional.

Optional voice codecs include 64 kbit/s G.711 ยต-law/A-law PCM (narrow band), 32 kbit/s G.729.1 (wideband), 32 kbit/s MPEG-4 ER AAC-LD (wideband), and 64 kbit/s MPEG-4 ER AAC-LD (super-wideband).

Within the voice profiles, the revisions are sequential: CAT-iq 1.0 provides basic wideband voice, while CAT-iq 2.0 and 2.1 add new functions which expand and supersede parts of the lower profiles.

The data profiles CAT-iq 3.0 and 4.0 can either be considered in isolation for data only devices or as a complementary service to the voice enabled devices.

references:
https://en.wikipedia.org/wiki/CAT-iq

Thursday, March 23, 2017

Swift 3.0 How to make CGColorRef from UIColor

This is pretty easy. For e.g

button.layer.borderColor = UIColor.white.cgColor


Mac how to print the list of files in to a file easily

If we have to create a list of files with path in Mac, its easy, Just follow these steps

1. Open a text Edit and make it as plain formatted
2. Select the folder contents and drag on to the text edit

thats it!







references:
https://www.macobserver.com/tmo/article/mac_os_x_print_or_save_a_list_of_file_names

Monday, March 20, 2017

Swift 3.0 - PageView Controller

The tutorial given in the reference link is awesome one. Few notes mainly are

class TutorialPageViewController: UIPageViewController {

private(set) lazy var orderedViewControllers: [UIViewController] = {
    return [self.newColoredViewController("Green"),
            self.newColoredViewController("Red"),
            self.newColoredViewController("Blue")]
}()

private func newColoredViewController(color: String) -> UIViewController {
    return UIStoryboard(name: "Main", bundle: nil) .
    instantiateViewControllerWithIdentifier("\(color)ViewController")
}    

    override func viewDidLoad() {
    super.viewDidLoad()
    
    dataSource = self
    
    if let firstViewController = orderedViewControllers.first {
        setViewControllers([firstViewController],
                           direction: .Forward,
                           animated: true,
                           completion: nil)
    }
    }

}

Have the below two methods as delegates

func pageViewController(pageViewController: UIPageViewController,
    viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
            return nil
        }
        
        let previousIndex = viewControllerIndex - 1
        
        guard previousIndex >= 0 else {
            return nil
        }
        
        guard orderedViewControllers.count > previousIndex else {
            return nil
        }
        
        return orderedViewControllers[previousIndex]
}

func pageViewController(pageViewController: UIPageViewController,
    viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
            return nil
        }
        
        let nextIndex = viewControllerIndex + 1
        let orderedViewControllersCount = orderedViewControllers.count

        guard orderedViewControllersCount != nextIndex else {
            return nil
        }
        
        guard orderedViewControllersCount > nextIndex else {
            return nil
        }
        
        return orderedViewControllers[nextIndex]
}

references:
https://spin.atomicobject.com/2015/12/23/swift-uipageviewcontroller-tutorial/

Tuesday, March 14, 2017

iOS how to test App Thinning?

Beginning iOS 9.0 Apple introduced App Thinning concept by which Application can download only the assets or binary required for the target device in which app being downloaded. Normally when application is submitted, it will be full bundle and binary, and while download the necessary items are downloaded. Now, how to test this?

Below given steps for it,

1. Product -> Archive - > Shows the organizer window with the recently archived list
2. Press on Export seen on the right side panel. (need to have the team credentials added to the Xcode preferences and select the team used for signing)
3. on the window that comes up, select Export for  Specific device and select the device model to which the app to be targeted. This generates the ipa for only that device.




references


Thursday, March 9, 2017

Symbolicatecrash path in Xcode 8.x

symbolicate crash used to be at this location in Xcode 7.

/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

Now its at this path


Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

With Xcode 8.0 setting developer directory did not work straight away. Below had to be done 


sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

export DEVELOPER_DIR=/Applications/Xcode.app

Wednesday, March 8, 2017

Git handle reverting to server commits

Git don’t allow us to merge with local modifications. Git protects from losing potentially important changes.

There are 3 options

1. commit the changes using

 git commit -m “my changes that needs a commit and should not be reverted“

2. Stashing

Stashing acts as a stack, where you can push changes, and you pop them in reverse order.
To stash type:
git stash

Do the merge, and then pull the stash:
git stash pop

for e.g.
git stash
git pull (or) switch branch
git stash apply --index


3. Discard the local changes
using git reset --hard. or git checkout -t -f remote/branch

Discard local changes for a specific file
git checkout filename

references:
http://stackoverflow.com/questions/15745045/how-do-i-resolve-git-saying-commit-your-changes-or-stash-them-before-you-can-me