In many ways this is a wonderful time to be alive with so much open source software and public data available combined with cheap, powerful computers.
Economics and Donald Trump
One observation I have about President Donald Trump, is the need for more High Schools to teach basic economics. I didn’t learn much about economics, until I studied them in college. There should be a mandatory course on both macro and micro economics. It’s obvious that many in our country have a poor understanding of how the global economy works, why some communities and occupations struggle, and the pros and cons of each policy choice our society makes.
NY 990V Touring Route
NY 990V, Bear Kill Road in Conesville is one of the few state reference routes that is signed as a touring route.
All reference routes start with 9, followed by the DOT Region (9). Undivided reference routes are then given a suffix of 0-5 and a letter. 990V was given a “V” because it looks like a “V” on the map, where it goes around the Schoharie Reservoir.
What you probably didn’t know is that NY 990V is exactly 9.90 km in length.
MADD’s Second Failure
Lately there has been a lot of talk about the successes of Mothers Against Drunk Driving or MADD. Why is MADD not a potent political factor any more?
Besides, their successes at eliminating drunk driving making their organization obsolete, their failures at preserving the National Maximum Speed Limit have been under reported.
Well, a lot their failure as an organization was their disastrous campaign to preserve the National 55 MPH speed limit. Their Save the National 55 Speed Limit campaign became their focus of the organization and it was a focus that may have felt noble to its members but it was one that was not popular with the public.
Motorists like driving fast on the expressways. MADD for years pushed for tougher penalties against speeders, they were outright rebuffed in conservative states and in liberal states, the tougher penalties still were widely ignored. Motorists ignored the law and judges for the most part rarely gave tickets beyond the mandatory minimum. Radar detectors and CB radios allowed people to rat out the bears.
So no, MADD wasn’t a success at their second campaign that went up strongly against motorists desires for faster driving, even if they’re first campaign was quite sucessful.
Albany’s Changing Climate
Many people think that the climate is warming generally in Albany or maybe that summer days are getting warmer in Albany. The opposite is actually true – in the past twenty years summers are colder then in the 1950s and 1960s. In contrast winters and especially springs are warmer than years past.
Record Highs, 2000-2017 by Metrological Season
- Winter (December – February), 16
- Spring (March – May), 25
- Summer (June – August), 3
- Autumn (September – November) , 10
Most Record Highs Set Per Year:
- Since 1891: 1947 (9)
- Since 1970: 1981/2012 (8 each)
- Since 2000: 2012 (8)
Been doing a lot of reading about computer viruses lately … πΊ
Usually when the media reports about computer viruses, they are this dark and threatening thing, that will seize and lock up your computer, demand ransom payments, or otherwise delete and destroy your files. Some news reports also suggest that after you get a virus, your computer hardware will be forever destroyed, although that’s pretty uncommon. In most cases, a damaged boot-sector can be re-written using a boot disk. Spyware is often lumped in with computer viruses — some of it is spread in a viral fashion, but more commonly installed by somebody allowing remote access to their computer to an untrusted party.
The truth is that computer viruses aren’t that scary if you use commonsense — something I’ve always believed and have been confirmed based on my research. Many computer viruses are just nuisances rather then harmful. Few viruses go after Linux desktop computers, as virus makers prefer more popular platforms like Windows or Mac OS X. Despite the advertising, hackers most likely aren’t trying to take over your computer — but do keep your software up to date to ensure you aren’t running buggy software that can make you a target.
Linux developers tend to patch up security bugs and holes after they are discovered, which makes it more difficult to hack and propagate viruses in. The permissions model in Linux is stronger then Windows, and it’s more obvious when your elevating something to root in Linux then Windows. Plus, Linux is fast and easy to update with apt-get and there are large software repositories from official sources, so you are rarely downloading programs or files from insecure servers on the Internet. But mostly Linux’s security comes from less then 2% of desktop computers.
Windows is more of a wild card, but even on the operating system, you are unlikely to get spyware or a virus installed on it if you use commonsense and keep your system up-to-date. The built-in Windows Defender is pretty good, especially for a very light Windows user like myself. They’ve fixed the Excel Macro Virus issue in recent years with better permissions, but I know I’m still very careful on what I download and use on Windows. And I would never let anybody remote access my computer, although I do have TeamViewer installed for work — but only with trusted connections of IT department do I run that app. I also keep an eye on the process viewer, logs, and try to be an informed user of Windows, although I don’t like how hidden so much of settings in Windows.
One thing I didn’t know much about was how secure Android is on my phone. Android seems to hide the guts of how operating system works. I really don’t like the Android operating system, but I often think that’s my only real choice as Linux for phones is under-developed and not well suited right now for phones. Fortunately, it seems based on my research that there are relatively few cellphone viruses at this point, although they are certainly possible to be written and some exist that get around Android permissions. Most of them come from outside of the Google Play store, and they aren’t widespread in United States. But that’s something to watch out for in the future.
Building Shadow Analysis Program
Earlier this week I wrote a small PHP script for analysis of the shadow cast by buildings on the surrounding landscape. To obtain sun position and altitude, it relies on SunCalc PHP which must be included in the script. It goes throughout the year, churning out how much of a shadow a building will produce each hour, in feet and direction. Additionally, the script will calculate the maximum point the shadow will be cast as a set of coordinates.
<?php
// The current values entered into this script currently are for the Empire Plaza.
$latitude = 42.64915;
$longitude = -73.75950;
$height = 610;
$start = strtotime("January 1, 2020 12 AM");
$end = strtotime("December 31, 2020 11 PM");
include("suncalc.php");
// Compass as a Reference
$compass = array(
'north', 'north-northeast', 'northeast',
'east-northeast', 'east', 'east-southeast',
'southeast', 'south-southeast', 'south',
'south-southwest', 'southwest',
'west-southwest', 'west', 'west-northwest',
'northwest', 'north-northwest');
function newPos($lat, $lng, $dist, $dir) {
// Earth Radius in KM
$R = 6378.14;
// distance in feet to KM
$d = (($dist * 0.3048) / 1000);
// Degree to Radian
$lat1 = $lat * (M_PI/180);
$lng1 = $lng * (M_PI/180);
$brng = $dir * (M_PI/180);
// Really Complicated Math (TM) that works based on the HAVERSINE formula from
// https://stackoverflow.com/questions/7222382/get-lat-long-given-current-point-distance-and-bearing
$lat2 = asin(sin($lat1)*cos($d/$R) + cos($lat1)*sin($d/$R)*cos($brng));
$lng2 = $lng1 + atan2(sin($brng)*sin($d/$R)*cos($lat1),cos($d/$R)-sin($lat1)*sin($lat2));
# back to degrees
$lat2 = $lat2 * (180/M_PI);
$lng2 = $lng2 * (180/M_PI);
return "$lat2,$lng2";
}
$output = "Month,Day,Hour,Sun Angle,Sun Position,Sun Pos Name,Shadow Length,Shadow Direction,Shadow Dir Name,Orginal Lat, Original Lng, Maximum Shadow Lat, Maximum Shadow Lng\n";
for ($time = $start; $time &lt; $end; $time += 60*60) { // get sun position for time $timeObj = new DateTime(); $timeObj-&gt;setTimestamp($time);
$sc = new AurorasLive\SunCalc($timeObj, $latitude, $longitude);
$sunPos = $sc-&gt;getSunPosition($timeObj);
// don't include any time when sun is below the horizon
if ($sunPos-&gt;altitude*(180/M_PI) &lt; 0) continue; // add month, day, hour $output .= date('n,j,G,',$time); // get sun altitude $output .= $sunPos-&gt;altitude*(180/M_PI).',';
// get sun position
$output .= 180+$sunPos-&gt;azimuth*(180/M_PI).',';
$output .= $compass[round((180+$sunPos-&gt;azimuth*(180/M_PI))/ 22.5) % 16].',';
// shadow length
$output .= $height/tan(deg2rad($sunPos-&gt;altitude*(180/M_PI))).',';
// shadow direction
$shadowDir = $sunPos-&gt;azimuth*(180/M_PI) + 360;
if ($shadowDir &gt; 360) $shadowDir -= 360;
$output .= $shadowDir.',';
$output .= $compass[round($shadowDir/ 22.5) % 16].',';
// building latitude and longitude
$output .= "$latitude, $longitude,";
// maximum extent of shadow
$output .= newPos($latitude, $longitude, $height/tan(deg2rad($sunPos-&gt;altitude*(180/M_PI))), $shadowDir).",";
$output .= "\n";
}
echo $output;
Here is an example output:
Month,Day,Hour,Sun Angle,Sun Position,Sun Pos Name,Shadow Length,Shadow Direction,Shadow Dir Name,Orginal Lat, Original Lng, Maximum Shadow Lat, Maximum Shadow Lng 1,1,8,4.370562595888,127.16997476055,southeast,7981.2630997694,307.16997476055,northwest,42.64915, -73.7595,42.662350867593,-73.783180446551, 1,1,9,12.464234785715,138.47001937172,southeast,2759.6833421566,318.47001937172,northwest,42.64915, -73.7595,42.654806428356,-73.766311948646, 1,1,10,18.826346377511,151.18871989968,south-southeast,1789.1660233981,331.18871989968,north-northwest,42.64915, -73.7595,42.653442385927,-73.762710054908, 1,1,11,22.92597731207,165.29270254371,south-southeast,1442.2476816852,345.29270254371,north-northwest,42.64915, -73.7595,42.652969571748,-73.76086316453, 1,1,12,24.317973645092,180.27827074558,south,1349.8710413416,0.27827074557518,north,42.64915, -73.7595,42.652845989302,-73.7594755931, 1,1,13,22.827705402895,195.24737437252,south-southwest,1449.1706789769,15.247374372522,north-northeast,42.64915, -73.7595,42.652978239559,-73.758081165062, 1,1,14,18.641667869753,209.31025239405,south-southwest,1808.2272087538,29.310252394054,north-northeast,42.64915, -73.7595,42.653467170112,-73.756204500047, 1,1,15,12.211118961179,221.98033545934,southwest,2818.7133569306,41.980335459338,northeast,42.64915, -73.7595,42.654887013398,-73.752480800429, 1,1,16,4.0670753820534,233.23837174035,southwest,8579.0650125467,53.238371740354,northeast,42.64915, -73.7595,42.663205632648,-73.733908619093, 1,2,8,4.3645441749857,127.03353849744,southeast,7992.3115188513,307.03353849744,northwest,42.64915, -73.7595,42.662327567958,-73.783255965565, 1,2,9,12.476443037614,138.33095911417,southeast,2756.8958218911,318.33095911417,northwest,42.64915, -73.7595,42.654788550435,-73.766323694576, 1,2,10,18.860737296743,151.04916237459,south-southeast,1785.6561891219,331.04916237459,north-northwest,42.64915, -73.7595,42.653428213262,-73.762717935368, 1,2,11,22.985140372821,165.15894624042,south-southeast,1438.1068136859,345.15894624042,north-northwest,42.64915, -73.7595,42.652956261035,-73.760871335783, 1,2,12,24.401639825801,180.15947237405,south,1344.6352402431,0.15947237405339,north,42.64915, -73.7595,42.652831682677,-73.759486067027, 1,2,13,22.932215921968,195.15131682951,south-southwest,1441.810083379,15.151316829514,north-northeast,42.64915, -73.7595,42.652960530629,-73.7580970562, 1,2,14,18.761308368827,209.23956034287,south-southwest,1795.8375075952,29.239560342872,north-northeast,42.64915, -73.7595,42.653440556697,-73.756234277101, 1,2,15,12.340240887742,221.93268535805,southwest,2788.302504508,41.932685358049,northeast,42.64915, -73.7595,42.654829364851,-73.752562956502, 1,2,16,4.2013827926665,233.20922777897,southwest,8303.8756666826,53.209227778967,northeast,42.64915, -73.7595,42.662764126188,-73.734739101558,


