Thursday, August 31, 2017

August Queso

  1. tbt stands for "Truth Be Told" but may be used in a "so now you know" way OR this could also be throwback Thursday
  2. [routerLink]="['/app','whatever','13']" would be a template-side example of handing an id on in a route (the 13) in Angular 4
  3. tape backups were an old way to backup hard drives
  4. Ctrl-Shift-R is for find and replace in WebStorm 2017.1.2
  5. Viewpoint doesn't have primary keys at its database tables. Sometimes you'll see KeyID as a bigint column type, but these are not consistently present. KeyID is used like a unique identifier when it does show up.
  6. PWAs are the new RIAs. Progressive Web Apps made in the likes of Angular 2 are utilizing JavaScript for an experience beyond HTML ABCs. This was the same promise of Flash and Sliverlight wasn't it?
  7. OKRS stands for Objects and Key Results. Gtmhub is a tool for OKRS.
  8. Nvidia GeForce GTX 1080 and Nvidia GeForce GTX 980 are examples of graphics cards for PCs.
  9. CompuServe was an ISP.
  10. Google Home and Amazon Echo are voice controlled devices. You can do things like ask them to play music for you and you can break into them and program your own stuff. Tie them into Philips Hue Smart Lighting and get them to dim the lights in your home, etc.
  11. In vinyl LP the LP stands for long playing. CD stands for Compact Disc. LaserDisc or LD is the forerunner of the CD and later the CD-ROM, ROM being read-only memory and the format allowing for people to burn digital data files onto CDs. RAM stands for random-access memory while we are at this. I strayed from vinyl, huh? We all do.
  12. https://www.youtube.com/watch?v=-lhZ6w1fkww is an example of a YouTube Radio station.
  13. PTO is paid time off.
  14. UAV (unmanned aerial vehicle) is, I think, the technical term for a drone. This better name kinda speaks to what drones are.
  15. Supercell is the mobile gaming company that does Clash of Clans. Zygna is the mobile gaming company with the founder (Mark Pincus) who asked Barack Obama to pardon Edward Snowden to his face.
  16. inFlow is some form of inventory software
  17. NSB could stand for NServiceBus.
  18. Disney is to pull itself off of Netflix and start its own streaming service.
  19. uBlock Origin and Privacy Badger deal with popups at Google Chrome.
  20. Libby, by OverDrive lets you hear audio books and if you have an account at your local library it is now possible that the library will let you access all of its eBooks across Libby.
  21. Newegg sells stuff online, computer gunk and the like.
  22. https://www.ng-book.com/2/ has "ng-book 2" which is an online book that will teach you to use Angular 4. I believe this thing just exists digitally and is always kept alive and growing by way of updates. I think "living book" might be the term for this sort of thing.
  23. BaconReader is a client for Reddit for your phone.
  24. Pornhub apparently both revolutionized and destroyed the pornographic industry by offering a torrent approach.
  25. When you have so many changes in SourceTree that the app hangs when you try to remove them all, instead stash the changes and delete the stash afterwards.
  26. Type "Git Bash" at start in Windows 10 to open a shell for SourceTree manipulations.
  27. Firmware is software in read-only memory that cannot be tossed away or altered. It is software to make the hardware it sits in work.
  28. .trim() in JavaScript gets rid of leading whitespace and not just trailing whitespace.
  29. The only time I have gotten to do any work that tangentially relates to IBM was at Network Logistic, Inc. IBM reached out to NLI to have some audio clips cleaned up for a presentation and I did the work. I believe Cool Edit Pro was the software I used. I think this tool became Adobe Audition.
  30. https://www.hackthissite.org/ has little games to play to learn hacking.
  31. versiony is an npm packet for versioning Angular2 apps.
  32. Alpha channels on TIF/TIFF (Tagged Image File Format) images with the .tif extension allowed one to save a piece of metadata with the file that could then be resurfaced to make a selection or do something else in Photoshop. Typically I would use this trick to save a shape for a selection in Photoshop. I cannot remember why. If you need workspace notes, if you will, in the midst of a file and you cannot just save a .psd for whatever reason then things get tricky and you have to resort to hacks like this. .png files (Portable Network Graphic) have comparable gunk going on with them allowing you to have layers in Fireworks, etc.
  33. Only spending within the first tenth of your credit card limit on your credit card is supposedly healthier for maintaining credit than going over that.
  34. I am hearing that Best Buy has ridiculously good warranties to such an extreme that you may buy a laptop, pay five hundred dollars for a warranty for two years, break your own laptop at the twenty-three month mark, and then just go back to Best Buy and get either a new laptop or your money back. If you run into a manager who gives you grief, just go to another store or come back later. You most likely will just get a kid to help you and not a real adult and the kid won't care. The reason this loophole is open for the moment is just because most people don't know to exploit it. It gets better. Whenever you get a replacement for a warranty, you also reset the warranty so you have another two years. You can keep it alive forever, and a missing cord may be all the excuse you need to get that guy right out of high school to go "yeah, yeah, yeah, whatever" and push through your warranty abuse to fulfillment.
  35. Rebates as a concept are a funny sort of discount. Basically you will make a purchase and be given a coupon to get some of your money back later. The parties giving the rebates hope you'll just forget about it or lose your receipt or something.
  36. http://beta.speedtest.net/ is a tool for gauging network speed.
  37. Populated could be a term used instead of hydrated.
  38. QuickBooks is accounting software.
  39. Microsoft BizSpark is a program to vaguely help out startups in the software space. I assume that being a part of this is akin to what it meant to be a Microsoft Gold Partner ten years ago.
  40. toastr is a toaster (https://github.com/CodeSeven/toastr)
  41. LibreVR / Revive is a tool that lets you run Oculus Rift games on the HTC Vive.
  42. The PalmPilot was a handheld device from the late 1990s. You tapped the screen with a stylus.
  43. Xtras for Macromedia Director looped in additional, third-party goodies for functionality.
  44. ApiController is not a first class citizen in .NET Core's MVC (a generally available fundamental feature, a cornerstone) as a Controller can be either what a Controller or an ApiController could be in MVC5 or a mix of the two, but it is a common pattern to make Controllers inherit from an ApiController with some common concerns in it. This introduction of a middleman inheritance trick is like the BaseController thing that we have all used in the prior five versions of MVC.
  45. A footgun is a feature that results in you shooting yourself in the foot when you bolt it on to something that wasn't sick yet to begin with.

Wednesday, August 30, 2017

OData

An OData service in the OAuth paradigm looks like a go to point for a collection of POCOs, not unlike a repository in the stereotypical C# Onion Architecture application. This is yet more factory pattern variant mechanics, right? You protect an OData service with OAuth! This has some stuff on it.

I saw Matt Gaunt give a talk on Web Push at SFHTML5!

SFHTML5 is a San Francisco meetup.com users group to do with, yes, you guessed it, HTML5. On August 25th, I went to an SFHTML5 event at Google's offices in San Francisco and saw a Matt Gaunt speak on push notifications which are those little rectangular boxes that popup telling you that something new has happened at your Facebook account. (not just Facebook/other apps too) They appear even when you don't have Facebook open at your browser because they are using service workers running at the browser itself. When I shake my Windows-10-running Dell XPS laptop awake I even see these before Google Chrome is ever opened which is kinda nosebleed inspiring. I once went to a talk on using JavaScript to interface with an API for the "Metro" stuff of Windows 8 and this same sort of thing must exist for Windows 10 and service workers cross-talking with it must make the impossible possible herein. The talk didn't dive into that though. It was in many ways more elementary and yet with that came a geek out on how authentication works in this paradigm. There is a GitHub Org (an organization: boundaries and rules around group-owned repositories) called web-push-libs which, amongst other things, has web-push-csharp, and Matt heavily encourages you to use this stuff in lieu of writing something yourself that identity, called PushSubscription in this space, and public and private keys get tangled up in. Web Push is a node library for this stuff. At the very end of this talk came thoughts on bad UX and that honestly might make a for a good place to start talking about this stuff as the bad way to go probably seems normal by now. When you first visit a web site in Google Chrome and are prompted with "news.vice.com wants to: Show notifications" and buttons for "Block" and "Allow" are there this is the notification permission opt in step. This terse messaging and immediate coercion is bad. Elsewhere on a site there should be a better explanation for what you might opt into and this should be aesthetically presented and not be the first thing one sees. Also the site should have a way to turn push notifications off and this too is normally lacking in bad (all too normal) UX which forces users to go digging in Google Chrome's settings for the turning off service workers. By the way, "Service Workers" beneath "Application" is where to see the service workers running at Google Chrome listed at Google Chrome Developer Tools. Another example of bad UX is having a notification that tells you that Facebook is telling you that you have a message and then giving a link off to Facebook which redundantly tells you "facebook" at the URL. Try to maximize your use of limited real estate and not give vague clickbaitesque messages. Alright, now having talked through how things materialize for average Joe, the behind the scenes magic for the developers is such that a web site will send a push notification to a cell phone by way of sending a PushSubscription to a Web Push Protocol which then talks to a Push Service which talks to the cell phone. Upstream of this we obviously need to request permission to make toaster toast spring up and this is done with Notification.requestPermission() in the applicable API. After getting permission but before the web-site-to-web-push-protocol-to-push-service-to-cell-phone game may be played there is a step in the middle in which a Service Worker must be registered. A service worker is basically a JS file that tells a browser there is an intrinsic link between a web site and the JavaScript in the file. When the browser receives a notification it has to ask itself "Does this web site have this service worker?" and if the answer is yes we're in for some charming little messages. TTL Headers in notifications can spec a time to live. (TTL, get it?) If you want to tell someone about an immediate sale that just lasts twenty-four hours but they have their cell phone off for three days while they are pretending to hate capitalism and modernity during some soul searching (if people have souls) you don't want to inform them off the golden opportunity they missed when they rejoin neonowness. That would just be mean. Mozilla Firefox was recommended for troubleshooting and debugging (it's back!) as it actually uses Web Push whereas Google Chrome is using FCM (Firebase Cloud Messaging) which is much more opaque in its error messages in this sphere of things. I enjoyed going to Google and chitchatting with others before this event started. I learned that an "ecstatic" web site uses AOT and maybe a CDN and I learned that Google's Progressive Web Apps are reliable, never show the downasaur, and utilize good practices for distributed computing. I also met a guy who rather bafflingly feels most comfortable just working with JavaScript and not the modern frameworks or even jQuery and when I asked him how painful it is to use XHRs he explained to me that you don't have to do that anymore and that you may just use .fetch for AJAX instead in all the modern browsers. This was naturally news to me because I don't even want to think about tackling AJAX without jQuery or Angular/Observable. I kinda haven't wanted to think about push notifications either, truth be told, but here they are and they're not going away. This was a good introduction. Thanks Matt!

 
 

Addendum 9/7/2017: I may be wrong about what I say above about the Metro stuff. I found a Stack Overflow thread that suggests that if even one of your Google Chrome extensions has the "background" permission that the notifications can make it through to you even if you do not have Google Chrome open. There must be, in these cases, something else running in the background all the time (and in your list of apps to spin up upon startup on the other side of a reboot) that has the service worker needed registered and doing its thing.

Flywheel

San Francisco is a cab town! I was there for a long weekend (made much longer by Hurricane Harvey) and there were cabs everywhere. In chatting up cab drivers I got the impression that Uber has reduced business to 60% of what it was but things are still cab friendly. Flywheel is a cab company in the region that has a mobile app for ordering a cab, tracking the cab, and you can just pay through your app account instead of swiping a card in the cab or giving the driver cash.

I took a Flywheel cab across the Golden Gate Bridge and back on Saturday, the 26th of August, so that I could cross that off my bucket list. (I mean the Golden Gate Bridge and not riding in a taxicab.) The driver complained of Uber and of skyrocketing prices in SF ($3,000/month for an apartment) so maybe things aren't that rosy after all.

Right about now Hurricane Harvey has me longing for some escapism.

On August 24th (of 2017) which was my 43rd birthday, I went to San Francisco for a long weekend getaway (made longer when Hurricane Harvey trapped me there) and in looking for something to do I found the "I wanted to do that... just not alone" meetup.com meet up group and attended an event of theirs at The Myriad, a peculiar bar/arcade (pinball machines not Donkey Kong) with many little independent vendors inside, called "Virtual Reality for Cinema, Entertainment and Travel" which was good but disorganized. Like the last VR talk I went to and honestly the one before that too there wasn't anything of a talk to be had. This was just another opportunity to goof off with an HTC Vive. I played a game called "To The Top" which involved climbing walls when it was my turn. It was outstanding in its realism. In falling, in game, with only my eyes being affected, I nonetheless felt a falling sensation in my emersion. Amazing! Before the gameplay got going I was able to chitchat with one of the coordinators, a Jorge Garcia of Exit Reality, and in speaking with him and others (Angie who ran the Exit Reality booth and one of the staff of The Myriad who was surprisingly versed in VR matters) I learned some things I had not known. Exit Reality's immediate business model is based on an assumption that the barrier to entry in the Vive arena, including two sensors on poles to define the active play space, is a little too much for most and getting in the way of adoption and so they have little booths with operators (helpers) that get set up at Exit Reality's clients for a renters fee and the clients then let the public use the booths for free as bait to attend their locales. IMAX is an example of one of the businesses that Exit Reality is in bed with. You can play with Exit Reality booths at both of the IMAX movie theaters in New York. You can also visit The Myriad for this. They have a consistent Exit Reality booth, operator and all, to allow you to become addicted to Vive. We all have to get hooked if this gimmick is to be for the masses and not just a fringe thing and there are some challenges with that. Supposedly a full-fledged, more-than-a-demo game is coming out within the year, a version of Fallout 4 called Fallout 4 VR. Perhaps this is the bellwether to be, make or break, for if this all will be embraced and game companies will find the platform worth indulging based on game sales. It's bad if Fallout 4 VR fails. Another interesting thing that might come to be are tracking devices that an individual might just wear on his person that emit electromagnetic signals and do away with the need for the two sensors on poles. In the Samsung Gear VR approach, the view for the headset is the screen of a smartphone. When I asked how a phone can possibly line up with someone's eyes given that different people have different distances between their eyes it was explained to me that the phones that are Gear-friendly give a consistent display and that the headset itself then augments that display and allows for some tweaking and adjustment of how you see it. New versions of various phone platforms should, to stay current, be Gear-friendly, and this thus has the potential to create an industry standard for screen size across all platforms. If that really happens, it means that VR is not just a craze.