« Posts by admin

Plants 2018

  1. Red Cherokee Crape Myrtle (Lowes, 50% off, $30)
  2. Camellia japonica ‘In the Pink’ ($5, from $13, Lowes)
  3. Camellia japonica ‘Korean Fire’
  4. Camellia japonica ‘Jordan Pride’
  5. Camellia japonica ‘Kramer’s supreme’
  6. Pluot Flavor Grenade (Payless, $20)
  7. Red currant ‘Red lake’ (Payless, $5)

Succulents

  1. Cotyledon tomentosa – Bear’s Paw variegated (Lowes, $1 clearance)
  2. From Maggie ($11 in total, cheap! Fisher nursery in Morgan Hill)
    – Cryptanthus or Earth Stars (Cryptanthus bivittatus pink) x1
    – Haworthia coarctata
    – Sansevieria x1
    – Gasteria

 

Solar stuff

Power power usage of some USB devices:

– Blink Module: 0.1amp (0.46 watt @5V)
– Cell phone charging (Moto G4): around 1 – 1.5amp
– Yi Camera: 0.25amp
– Amazon Echo dot:
– Google mini: 0.25amp
– Wifi hotspot Dlink DWR330: 0.25amp

4x 6-volt battery config:

– Sizing panel + battery: charging rate 10% (rule of thumb 5% to 13%)
225Ah x 2 x 12V x 10% x 1.2 = 648W
– Usage: 1 hotspot, 2 cameras, 1 blink module

San Martin, Morgan Hill – Creek Water and Rain Level

Webcam

Rainfall Level

Creek Water Level

Engine Oil – Automobile Car Specs

For my cars so I don’t have to keep looking up the docs:

Honda Civic 2016 (10th Gen)
– 0W-20
– 3.4 US qt (3.2 liters) oil change only
– 3.7 US qt (3.5 liters) oil change with filter

Honda Odyssey 2011
– 0W-20 (w/ filter: 4.5 qt, 4.3L, w/o filter: 4.2qt, 4L)
– Coolant: Honda Long-Life Anti-freeze/Coolant Type 2 (or temp for non-silicate for aluminum engines). 1.93G (7.3L)
– ATF: Honda ATF DW-1 (3.3qt)
– Brake: Honda Heavy Duty Brake Fluid DOT 3
– Steering Fluid: Honda Power Steering Fluid
– Windshield washer: 2.6qt

Toyota Tacoma 2005 (2.7L 4cyl, Base trim, automatic, 2TR-FE engine)
– Spark plug (DENSO: SK20HR11), plug gap: 1.1mm (0.043in)
– Oil 5W-30, with filter (5.8L / 6.1qt), without filter (5.1L, 5.4qt)
– Coolant: Toyota Super Long Life Coolant (8.6L / 9.1qt)
– Transmission fluid: ATF Type T-IV, (2L / 2.1qt)
– Differential oil: 3.31L / 3.5qt, API GL-5, SAE 90, 80W-90
– Steering: Dextron II or III

WKWebView Example

Reference:
https://developer.apple.com/reference/webkit/wkwebview

Sample Code:

import UIKit
import WebKit

class ViewController: UIViewController , WKNavigationDelegate {

var webView : WKWebView!

override func viewDidLoad() {
  super.viewDidLoad()

  let adreq = "https://g.adspeed.net/ad.php?do=html&zid=xxxx"
  let url = NSURL(string: adreq)
  let request = NSURLRequest(URL: url!)

  webView = WKWebView(frame: self.view.frame)
  webView.navigationDelegate = self
  webView.loadRequest(request)

  self.view.addSubview(webView)
  self.view.sendSubviewToBack(webView)
}

override func didReceiveMemoryWarning() {
  super.didReceiveMemoryWarning()
}

// WKNavigationDelegate

func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
  print(error.localizedDescription)
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
  print("Loading")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
  print("Loaded")
}

}

Optimization with foreach() an empty array

<?php
$vResult = array();
$vAry = array(‘abc’);
$vLimit = 10000000;

$vStart = microtime(true);
for ($i=1;$i<$vLimit; $i++) {
foreach ($vAry as $a) {}
} // rof
$vResult[] = “NoEmptyCheck= “.(microtime(true)-$vStart);

$vStart = microtime(true);
for ($i=1;$i<$vLimit; $i++) {
if (!empty($vAry)) {
foreach ($vAry as $a) {}
}
} // rof
$vResult[] = “WithEmptyCheck= “.(microtime(true)-$vStart);

echo implode(“\n”,$vResult).”\n”;

/* Result

For an often-non-empty array scenario:
NoEmptyCheck= 2.10900402069
WithEmptyCheck= 2.59749412537

For an often-empty array scenario:
– NoEmptyCheck= 1.08695101738
– WithEmptyCheck= 1.01621007919

*/

?>

Optimization with in_array()

Ever wonder with many in_array() checks, you can speed it up depending on your scenario. In my case, 99% it’s empty so it’s better with an empty() check

<?php
$vResult = array();
$vAry = array();
$vLimit = 10000000;

$vStart = microtime(true);
for ($i=1;$i<$vLimit; $i++) {
if (in_array(123,$vAry)) {
}
} // rof
$vResult[] = “NoEmptyCheck= “.(microtime(true)-$vStart);

$vStart = microtime(true);
for ($i=1;$i<$vLimit; $i++) {
if (!empty($vAry) && in_array(123,$vAry)) {
}
} // rof
$vResult[] = “WithEmptyCheck= “.(microtime(true)-$vStart);

echo implode(“\n”,$vResult).”\n”;

/* Result

For an often-non-empty array scenario:
– NoEmptyCheck= 3.76290512085
– WithEmptyCheck= 4.59545087814

For an often-empty array scenario:
– NoEmptyCheck= 3.46415710449
– WithEmptyCheck= 1.08467411995

*/

?>

Planter Clearance @ Lowe’s

Got a bunch of outdoor plastic planters on sales at Lowes.com: 9x 22″ red $4, colorful 21″ ones for $5, some cilantro color for $3.11.

Garden Treasures 11.42-in H x 14.61-in W x 14.61-in D Green Brushed Indoor/Outdoor Planter $3.75
Item #: 485048 | Model #: P13011511241CG

Garden Treasures 14.45-in H x 17.2-in W x 17.2-in D Blue Brushed Indoor/Outdoor Planter $5
Item #: 485043 | Model #: P13011811242B

14-in H x 16-in W x 16-in D Navy Indoor/Outdoor Planter $2.49
Item #: 555919 | Model #: SN1606DB
14-in H x 16-in W x 16-in D Emerald Indoor/Outdoor Planter $2.49
Item #: 555921 | Model #: SN1606ED

10.5-in H x 12-in W x 12-in D Red Indoor/Outdoor Planter $1.49
Item #: 555907 | Model #: SN1212RD

10.5-in H x 12-in W x 12-in D Navy Indoor/Outdoor Planter $0.5
Item #: 555911 | Model #: SN1212DB

10.5-in H x 12-in W x 12-in D Emerald Indoor/Outdoor Planter $0.5
Item #: 555913 | Model #: SN1212ED

Some future predictions

WhatsApp sold for 19B! SMS has changed. Communication has changed. Everything is coming back to data and telcos only has Internet/data plan to charge. Before they have voice (long distance, international), text, data. Now it’s only data that matters.

I see these as hot: Data Compression and Caching/Optimization as they become more and more important to reduce the bandwidth while delivering more. Serve more with less.

HDD to SSD and Windows 8.1

Couple issues
– Acronis True Image HD shipped with Crucial M500 does not work with Windows 8 and GPT partitions. It will not see the HDD and therefore cannot clone it. Need to use a newer version, like Acronis True Image 2014 Premium
– ATI/AMD Catalyst 7730 driver crashes in Windows 8.1 so when it sleeps and wakes up, it will crash and do a hard reboot. Solution: download the latest “beta” driver from ATI/AMD

– Working drivers: ATI/AMD graphic driver v 13.250.18.0 (11/7/2013) and Intel Wifi v 15.10.3.2 (8/22/2013)