CoolComputing Logo

Computer Tips, Coupon & Promotion Codes, Discount & Reviews

Coupons/Deals  ·  New Promo Codes/Coupons  · November 30, 2015
Swift & Xcode Tips & Solutions

​So I was working on Xcode 7.1.1 (using Swift 2.1) on my new app, and decided to localize it. I'm relatively new to Swift and iOS development, but so far. so good. I wanted to share a couple of "gotchas" I ran into while trying to internationalize my app. My biggest first stumbling block was not naming the localization strings file correctly. It has to be named:


When I created my strings file, I had named it "localization.strings", and was wondering why in the world the NSLocalizedString() was not converting the key value to the translated one as specified in my file, as well as the language sub-versions.
Networking & Mobile News/Tips

T-Mobile's Simple Choice Plan is a terrific option for those who travel out of the country a lot on business or vacation. For instance if you go on cruises you will find it quite indepensible to have access to Google or Apple Maps while roaming around exploring a foreign port city, trying to access your pre-planned points of interest. Also the fact that T-Mobile recently added twenty additional countries to this plan. One new one I've noticed include Croatia which was not there last year.

For the past two years, after returning from Europe cruises, I've noticed that my T-Mobile bill garner oddball data roaming charges even though I had only used data in the free countries (all the ones in Europe are now free, BTW). Much of this was charged on the cship by the cruise line's "Cellular at Sea" service, but no way we were getting legit data from that because you had to purchase an Internet Wi-Fi plan to go online from your device. Also if you ever get a voicemail, you would be accessed $5.99, even though you did not call to check- talk about a bunch of crock. I was able to complain to customer service and they did take out the invalid charges, but not without the "next time we won't do this" warning. I also requested each time to have T-Mobile block these fraudulent data charges but they would say that the only option is to block international roaming all together, which would defeat the purpose of the only perk that keeps me with this company & its Simple Choice plan- free 3G data abroad.

Today I logged into My T-Mobile and noticed to check my bill, and noticed that I was able to change my plan to "Simple Choice North America" for the same $50 a month price. It was a no-brainer as that plan gives you free talk and text to any other North American country, but it was strange how they didn't just automatically switch over my plan. So I encourage you do that when you get the chance.
Tips: Linux/Unix world So I was looking to upgrade PHP on one of my servers running CentOS 5.7 from PHP 5.3.x to PHP 5.5. I wanted to get it to 5.6 actually but unfortunately there is no such package available on But anyways I began the process by running the command:

yum install yum-plugin-replace

Which resulted in a shocking error message:

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

/usr/lib/ undefined symbol: opyAlgorithmID_Util, version NSSUTIL_3.12

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.4.3 (#1, Sep 21 2011, 20:06:00)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)]

Wow- I didn't even realize yum was broken on this server, and from which one, I do not know. I did a quick query of the last packages history installed with the following command:

rpm -qa --last | less

The result was:

php-pear-1.4.9-8.el5 Tue 22 Apr 2014 09:51:47 PM CDT
gcc-c++-4.1.2-54.el5 Thu 29 Aug 2013 09:46:14 PM CDT
libstdc++-devel-4.1.2-54.el5 Thu 29 Aug 2013 09:46:12 PM CDT
gcc-gfortran-4.1.2-54.el5 Thu 29 Aug 2013 09:46:08 PM CDT
gcc-4.1.2-54.el5 Thu 29 Aug 2013 09:46:07 PM CDT
cpp-4.1.2-54.el5 Thu 29 Aug 2013 09:46:05 PM CDT
libgfortran-4.1.2-54.el5 Thu 29 Aug 2013 09:46:03 PM CDT
libstdc++-4.1.2-54.el5 Thu 29 Aug 2013 09:46:02 PM CDT
libgcc-4.1.2-54.el5 Thu 29 Aug 2013 09:46:01 PM CDT
php-gd-5.3.27-2.w5 Thu 18 Jul 2013 11:28:22 PM CDT
php-xmlrpc-5.3.27-2.w5 Thu 18 Jul 2013 11:28:21 PM CDT
php-mysql-5.3.27-2.w5 Thu 18 Jul 2013 11:28:21 PM CDT
php-mbstring-5.3.27-2.w5 Thu 18 Jul 2013 11:28:20 PM CDT
php-xml-5.3.27-2.w5 Thu 18 Jul 2013 11:28:19 PM CDT
php-pspell-5.3.27-2.w5 Thu 18 Jul 2013 11:28:19 PM CDT
php-process-5.3.27-2.w5 Thu 18 Jul 2013 11:28:19 PM CDT
php-devel-5.3.27-2.w5 Thu 18 Jul 2013 11:28:18 PM CDT
php-pdo-5.3.27-2.w5 Thu 18 Jul 2013 11:28:17 PM CDT
php-5.3.27-2.w5 Thu 18 Jul 2013 11:28:17 PM CDT
php-cli-5.3.27-2.w5 Thu 18 Jul 2013 11:28:15 PM CDT
php-common-5.3.27-2.w5 Thu 18 Jul 2013 11:28:13 PM CDT
Networking & Mobile News/Tips I have an ASUS NT-16 Router which has EasyTomato 0.8 (the newest version) installed. EasyTomato is pretty much an easier-to-use, enhanced version of the popular Tomato/TomatoUSB router firmware. It works well for the most part, but I have noticed that if there are high-speed broadband downloads that are near or exceeding 100 Mbps for several minutes, I could no longer browse the web. It has been an annoyance for months so I decided to really investigate and then hopefully find a solution.

I noticed that firstly the error message I get when browsing the web all stem from "server not found" resulting from the names of the sites not being resolved. Basically, there was a problem with DNS, which the router was configured to "pass through". I had configured the router to route route DNS queries asked for it to the proper servers, such as the Google public DNS ones like When I tried to log into the router configuration to see what what was going one, the hourglass would just keep on spinning with no response, despite the downloads still happily churning along at high-speeds. Once in a while, I am able to get in, and I notice that the CPU load is over 90%.

With no heavy-duty downloads occurring, I decided to turn on the SSH server on my Tomato router so I can get into the system via Putty (an excellent free SSH program for Windows). The IP of my router is, and I was able to ssh into it using the username of "root" with a password that matches the web interface.

Once inside, I typed top and pressed ENTER. Top is a Linux/UNIX command that shows you which processes are taking up the most CPU, kind of a text-based version of Window's Task Manager. You can enter capital letter P to sort by % of CPU usage. I then started up the download tasks that would normally "flood" the router, and this was the out of "top" during the heavy download session:

Mem: 25584K used, 101400K free, 0K shrd, 3200K buff, 9364K cached

CPU:   1% usr   2% sys   0% nic   3% idle   0% io   1% irq  90% sirq

Load average: 1.31 0.59 0.61 4/31 5539


 5446     1 nobody   S     1072   1%  25% dnsmasq -c 1500 --log-async

 2249  2245 root     R     1564   1%  17% top -d1

 5425  2704 root     R     1564   1%   7% top

  322     1 root     S     1232   1%   2% buttons

  922     1 root     S     2632   2%   1% httpd

    3     2 root     SW<      0   0%   1% [ksoftirqd/0]

 2703  2681 root     S     1120   1%   0% dropbear -p 22 -a

    4     2 root     SW<      0   0%   0% [events/0]

 2241   922 root     S     2656   2%   0% httpd

  481     1 root     S     1580   1%   0% crond

 2704  2703 root     S     1576   1%   0% -sh

  928     1 root     S     1572   1%   0% udhcpc -i vlan2 -b -s dhcpc-event -H unknown -m -S

  324   323 root     S     1564   1%   0% /bin/sh

 2245  2244 root     S     1560   1%   0% {.wxdjAka4} /bin/sh /tmp/.wxdjAka4

 2244  2241 root     S     1560   1%   0% sh -c /tmp/.wxdjAka4 2>&1

  326     1 root     S     1556   1%   0% syslogd -L -s 500 -b 2

  328     1 root     S     1556   1%   0% klogd

    1     0 root     S     1248   1%   0% /sbin/init noinitrd

  323     1 root     S     1200   1%   0% console

 2681     1 root     S     1056   1%   0% dropbear -p 22 -a

  490     1 root     S      980   1%   0% cstats

  483     1 root     S      888   1%   0% rstats

  281     1 root     S      608   0%   0% hotplug2 --persistent --no-coldplug

   89     2 root     SW<      0   0%   0% [mtdblockd]

   45     2 root     SW       0   0%   0% [pdflush]

   44     2 root     SW       0   0%   0% [pdflush]

    5     2 root     SW<      0   0%   0% [khelper]

   18     2 root     SW<      0   0%   0% [kblockd/0]

    2     0 root     SW<      0   0%   0% [kthreadd]

   46     2 root     SW<      0   0%   0% [kswapd0]

   47     2 root     SW<      0   0%   0% [aio/0]

Tips: Linux/Unix world

The Android-x86 Project works fairly well. I installed the 4.4.4 version (KitKat) on a virtual machine (VM) created using the free VMWare Player. A beefy Windows 8.1 PC is the host PC. A couple quirks were that I had to delete the default SCSI hard drive device, and then add a replacement IDE drive to the VM. It works great for the most part, except that the mouse is occasionally laggy, and for some reason after a specified amount of time, all I get is a Blank Screen.

Researching the problem, it seems that it has either froze/hung or gone to sleep. I read from many sites that suggested hitting the ESC key, the left right arrows, send some sort of ACPI wake up command (not sure how the heck I would do that in VMWare Player). I tried right-clicks, left clicks, Windows key, dragging the "invisible" mouse cursor- nothing worked in ridding of this black screen. Same goes with CTRL-ALT-DEL.

Tips: Windows-world

Lately I have been using Google's Picasa 3.9 quite a bit to edit/enhance photos, add captions, and other functions on my Windows 8.1 PC. But the thing is, in order to work on a specific picture file (e.g. with the .jpg extension) in the editor, I have to double-click on it, which opens it in Picasa Photo Viewer, then right-click and pick Edit.

If I right-click on an image file in Explorer, I see that in the Context Menu that there is an Edit option/function. But selecting it always opened the file in Paint (mspaint.exe), which is the default Windows elementary graphics editor (you can't even call it a photo editor). I also took a look and noticed on my Windows XP virtual machine, it has the same behavior by default.

All it takes, however, to fix this Photo Editor file association issue is a simple edit in the registry.
Software news

The other day had a very nice offer on QuickBooks 2015 Pro (50% off discount after coupon). Since I already use Intuit Online Payroll, and wanted to upgrade from the now defunct Microsoft Office Accounting 2009 software, I thought it would be a good idea to upgrade at this point. Certainly I had high hopes that it would speed up the process of preparing my S-Corporation 1120S tax return for this year.

My first impressions of QB 2015 Pro after installing it were:

  • It was slow to load.

  • The sub-windows inside the main application become so cluttered that before long you could have 5 or 6 windows open obscuring and distracting from your task

  • There were so many darn menu options on the bar and up top that it boggled my eyes and mind. See the top screen shot pic of the article as an example.
  • It served as a marketing gateway to get you to buy other Intuit products. In fact, Intuit tracks your usage by default unless you turn off the "feature".

Ugh. I must give it a try, I thought- after all, I just spent $150 for it. I have MS Office Accounting (MSOA) on an XP virtual machine because after I had upgraded to Windows 8 on my main PC, I could no longer install it. I knew that Intuit had a data converter tool that would allow the import of data from MSOA into QuickBooks. Unfortunately, QuickBooks 2015 does not install on XP machines.
Tips: Windows-world It is 2015, and tax season is here, so I was wanting to download transactions from various financial institutions such as credit card companies into my accounting software. I still use the now-defunct Microsoft Office Accounting software, which requires import to be of in OFX format. That is the same format that Microsoft Money (which has also been axed by MS) uses. The card companies I use mostly still allow the export of transaction data into OFX, but when I logged into American Express today, I did not readily see such an option.

Last year I remember that I was able to import American Express transactions by downloading into Quicken/Quickbooks format of QFX, and then renaming the file extension to OFX. This time, however, I see that there is a new option called Sync with Quickbooks, and when I went to the Download Transactions option, it only showed 3 options:
  • Adobe PDF
  • MS Excel
  • CSV
Hardware News

There was a special deal during Black Friday on the HP 15 budget laptop on, specifically the model HP 15-f004wm, so I jumped on it as we were looking for an extra, budget notebook computer. The specs were kind of basic, but it was overall a terrific deal considering the $160 price without coupon. It is powered by a dual-core Intel Celeron N2830 CPU which sips only a measly 7.5 watts maximum, 4GB of RAM (nice since many budget laptops recently sport only 2GB), and a 500GB hard drive. The screen is 15.6" though the resolution is only 1366x768. It certainly is not an IPS display since the viewing angle is quite poor. It came with a DVD optical drive which is a nice bonus. The OS is Windows 8.1 with Bing.

When I bought this notebook, I had every intention of swapping out the built-in 500GB mechanical hard drive with a spare 120GB Samsung SSD I had laying around. I figured that since it was using a regular laptop hard drive, the 2.5" SSD should go in no problem, and I was right. The problem, however, was that it was very difficult to get to the built-in HDD to do the replacement.

There was an easily-accessible panel directly underneath the machine. You remove it by loosening the 2 screws, the slide the panel upwards and then you can pull it off. Unfortunately, the door only allowed quick access to swap out memory or the Mini PCI Wifi-Card. You can seen from the tear-down photo that the memory is a single PC3L-12800S SO-DIMM module. Note that the Realtek Wi-fi Module only has 1 antenna connected (single stream)- it is no wonder the wireless speed of this PC is not very fast.

Hardware News

A little more than a week ago, on a Saturday, I lost my Fitbit One fitness tracker device. I have had it for well a year, and used it quite religiously, so it was a real disappointment. My family and myself had gone out to play tennis, went to a restaurant (5:30 PM), and then to shop at Target (6:30 PM). It was at Target when my wife asked how many steps I had thus that I discovered that I didn't have the Fitbit any longer. I simply assumed that it was left at home, but upon returning at night at about 7:45PM, could not find it anywhere.

One of the best ways to locate a lost Fitbit is to use its iOS app itself. So that evening I carried my iPad Mini all over the house and garage to try to locate it, but to no avail. Looking at the steps history, it showed that it last synced at around 3:20 PM, the time when we left home for tennis, which mostly likely meant I brought it with me. It showed that I had about 11K steps at that point. After a few days I had pretty much given up hope, but on Friday I decided to check the app to see if it somehow synced, and to my surprise it did- 2 days ago on Wednesday. My Saturday steps counts count had been updated from 11K to 16K!

I then logged into to see the time-based step history, and noticed that the final steps were registered at between 5:15 and 5:30 PM. There were ZERO steps registered on Tuesday or Wednesday when it synced. My first reaction was that the Fitbit is in the house somewhere! But, more analytical reasoning determined it wasn't so. If I had carried it back into the house unknowingly, it would have registered steps, but the the lack of any steps showed that it was dropped somewhere after around 5:30 PM that night.
PHP Tips and Code Examples

When you want PHP running in Microsoft Internet Information Services (IIS) to be able to read/write files on a Windows network share, you could run into a myriad of errors and problems. Hopefully this article will help you get everything working smoothly.

Here what we want is to have IIS run as a Domain user who has the proper access to the network share.

  1. After you have installed PHP (in ISAPI mode), go to the IIS Manager, Application Pools, right-click on DefaultAppPool (or the name of your application pool), and select Properties.
  2. Go to the Identity tab and type in the User name and Password for the Domain user. Don't forget to prefix the username with the Domain. For instance (and for our example's sake): MY_DOMAINmy-user Click OK and you will be asked to confirm the password again.
PHP Tips and Code Examples The previous article explained how to convert and import data from DBF files into MySQL. It is actually simple enough to enable the dBase extension for PHP for Windows by just by uncommenting out a line in php.ini, but if you are using Red Hat/CenOS/Fedora, this is not as simple.

There is no RPM file that you can simply install to enable the dBase extension, so you have to recompile and build the PHP Linux RPM. Here are the steps to do this (note that this can work with other extensions that you can't find the rpm for):

  1. download the source rpm for PHP, usually it'll have the word "src" in the file name

  2. install it - e.g. "rpm -Uvh php_src.rpm"

  3. edit the php.spec file, usually located at /usr/src/redhat/SPECS/php.spec, and add "--enable-dbase"
PHP Tips and Code Examples
If you have been presented with the task of having to import a DBase/DBF - here is a two step way to approach the problem. First the MySql table structure needs to be created, and then the DBF is then read and inserted into the table. Step 1 involves the conversion the output from the "disp stru" command in FoxPro into a MySQL create table statement. Consider a example DBF file called "addresses.dbf"- and the "DISP STRU" of the file looks like this:
1 HNAME1 Character 30
2 ADDRESS Character 30
3 EXTRA Character 30
4 CITY Character 28
5 STATE Character 2
6 ZIP Character 10
The convert function would transform that to this, which is useful to create a matching MySQL table:
HNAME1 char (30)
ADDRESS char (30)
EXTRA char (30)
CITY char (28)
STATE char (2)
ZIP char (10)
Here is the script after the break.
PHP Tips and Code Examples

If you are using Windows 8, 7, or XP Pro as a file server and often run into problems where users can't connect to because the 20 or 10 maximum simultaneous connections have been reached (or even fewer connections for the Home versions of the OS) - here is a quick and simple solution via PHP. The script basically uses the command "net session", parses the output and looks for idle connections and disconnects them- in this case if they've been idle for a second or don't have any open files. Combine this with some sort of cron program for Windows, and it works quite well.

PHP Tips and Code Examples You can easily create your own PHP cron-like script for Windows to emulate the functionality of Linux. The basic gist of it is you create a database table (or you can simply create a text file) that will hold the information about the application to execute- i.e. command, switch, executed flag column, date, & duration. I propose a 2 script solution: cron.php & cron_exec.php.

Cron.php would basically just call cron_exec.php every designated X seconds (or minutes, e.g.):

<?php //Runs cron_exec.php every XX seconds; put in Windows startup folder 

$dir = "c:\\php"; 
$cmd = "c:\\php\\php -q " . $dir . "" . 'cron_exec.php'; 
$interval = 10; 
do { $output = shell_exec($cmd); 
    $cur_time_str = date("F d, Y t h:i A"); 
    echo "$cur_time_str: $output\n\n"; 
} while (TRUE) ;

function write_log() { 
    global $dir, $output, $cur_time_str; 
    $log_file = $dir . "logscron" . date("Ymd") . '.log'; 
    $fp = fopen($log_file, 'a'); fwrite($fp, $cur_time_str . "\n" . $output . "\n");

And here is the code for cron_exec.php:
New Featured Coupons and Promotions posted on November 30, 2015
  • Hard Drive has 2 new coupon codes: 1130CACYBRMD162, PAYPALBF30
  • has 6 new coupon codes: MBLNOV3015, AFBFHP1127A, MBL151127A, MBL151127B, MBL151127D, MBL151127E
  • Ssd has 4 new coupon codes: MBL151130A, MBL151127B, MBL151127A, PAYPALBF30
  • 511 Tactical has 1 new coupon code: CYBMON
  • has 2 new coupon codes: CYBER2015, CYBER10
  • has 3 new coupon codes: HOLIDAYAIR, CMGIFT, espresso30
  • Puritans Pride has 2 new coupon codes: CMONDAY, BLACK20
  • has 2 new coupon codes: 88e91e, YOOBAO10
  • Istockphoto has 1 new coupon code: NOV20
  • 6pm has 1 new coupon code: CYBERMON15
  • Supplies Outlet has 1 new coupon code: CYBERM20
  • Design Toscano has 1 new coupon code: CJCYBR25
  • 123 Refills has 1 new coupon code: CYBERMONDAY
  • has 1 new coupon code: 20FALL6M15
  • Sammy Dress has 2 new coupon codes: FRIDAY, BLPLUS
  • Newest Deals/Promotions
    • Intel 535 Series 2.5" 120GB SATA III MLC Internal SSD (SSD) SSDSC2BW120H6R5
    What is your favorite platform to play games on?


    Past Surveys

    Votes: 364 | comments: 0
    Past Articles
    Tuesday, November 25

  • Printing from PHP directly to a PCL printer (Linux)

    Wednesday, November 19

  • Asus ZenBook UX31A Should be Recalled Due to ADATA SSD Defect

    Wednesday, August 20

  • Edit Read-Only PDFs for Free

    Friday, April 18

  • Fix & Troubleshoot Windows Explorer Crashing

    Friday, February 14

  • Script to Auto Unmount/Remove Mapped Network Drives in Windows 8.1

    Tuesday, January 14

  • Solution to Windows XP Slow Boot/Black Screen After Logging In

    Monday, November 18

  • Windows Defender MsMpEng.exe High CPU Access Denied Fix

    Wednesday, October 09

  • WinDNSDynamic.exe from Spyware?

    Wednesday, September 18

  • Automatically Delete Old Files in a Folder in Windows

    Monday, September 09

  • Microsoft Surface RT 2013 Review

    Thursday, April 11

  • Windows Media Center View Video Feed/Resolution Info| Windowed Mode Stuck at 540p

    Thursday, March 28

  • OpenOffice/LibreOffice Custom Hot Keys to Add New Row & Highlight Cells

    Wednesday, March 13

  • Multi-Monitor with Intel HD4000 and Discreet Graphics Card (AMD Radeon) in Windows

    Monday, March 11

  • Panasonic Lumix GX1X Deal $450 After Coupon

    Wednesday, March 06

  • Windows Media Center Display Driver Error on Dell U2713HM Using DisplayPort + DVI Adventure

    Tuesday, March 05

  • Mass Change Date Taken for Multiple Files in Windows for Photos

    Sunday, February 24

  • Thunderbird View Only Important Emails

    Wednesday, February 06

  • Fixed - Logitech Gaming Software 8.40.83 Runtime Error

    Saturday, January 26

  • Windows Media Center Slow Motion

    Thursday, December 20

  • Windows 8 Folder Hang Workaround - Script to Automatically Kill and Reload Windows Program

    Older Articles

  • Find Promo Codes/Coupons