Widespread Augmented Reality

Widespread Augmented Reality
Click on the image to get the Android Augmented Reality Heads up Display

Sunday, December 26, 2021

Gradle sync failed: The specified Gradle distribution does not exist

Gradle sync failed: The specified Gradle distribution 'https://services.gradle.org/distributions/gradle-6.5-bin.zip' does nbot exist

Close Android Studio and Run as administrator

Friday, December 17, 2021

Crypto Staking

Language is big barrier of entry into the Crypto universe.
Crypto staking is the process of locking up crypto holdings in order to obtain rewards or earn interest. Cryptocurrencies are built with blockchain technology, in which crypto transactions are verified, and the resulting data is stored on the blockchain. Staking is another way to describe validating those transactions on a blockchain.
Source: https://www.sofi.com/learn/content/crypto-staking/
Staking is the process of actively participating in transaction validation (similar to mining) on a proof-of-stake (PoS) blockchain. On these blockchains, anyone with a minimum-required balance of a specific cryptocurrency can validate transactions and earn Staking rewards.
Source: https://help.coinbase.com/en/coinbase/trading-and-funding/staking-rewards/staking-inflation

What is my take on stake? It is the process of loaning your fiat currency to an institution that is not FDIC insured.

Wednesday, December 15, 2021

Wolfenstein II: The New Colossus

Having never owned a console, I have played PC games since 1996 and Wolfenstein on Steam has by far the best cast of characters, cut scenes, story lines and conversations. The writing is top notch.

Thursday, December 9, 2021

Notes Related to Bitcoin and Digital Signing

This is the way I see the Bitcoin process of unlocking bitcoins from an address.
First of all, a private key creates a public key, which eventually becomes an address.
For conceptualizing the digital signing verification that unlocks bitcoins in a transaction, I will just reference the public key.
  • 1. hashAlgo(BTCtransaction, public key) = hashedOutput
  • 2. onewaysSignAlgo(BTCtransaction, private key) = signature
  • 3. verifyAlgo(signature, public key) = hashedOutput
  • The private key never revealed, but if the hashed message from 1 and 2 are equal, then it is confirmed that only the person that had the private key from which the public key was derived could have created the signature.
    I know it is much more complicated than just comparing the output from 1 and 2.
    More about digital signing or Elliptical Curve Digital Signing Algorithm:
    You shouldn't confuse ECDSA with AES (Advanced Encryption Standard) which is to encrypt the data. ECDSA does not encrypt or prevent someone from seeing or accessing your data, what it protects against though is making sure that the data was not tampered with.
    Source: https://www.instructables.com/Understanding-how-ECDSA-protects-your-data/

    It is important to not confuse this process with encrypting data as in Pretty Good Privacy (PGP).

    Wednesday, December 8, 2021

    Update to Nov 18 Post about Parsing a Bitcoin Block

    After parsing blk*.dat data files that were downloaded from running Bitcoin Core and comparing the JSON output to a block explorer like https://www.blockchain.com/explorer, I saw that the data on the blockchain explorer was not in the native transaction data parsed from blk*.dat files. According to the book Mastering Bitcoin by Andreas M. Antonopoulos, "Behind the scenes, an actual transaction looks very different from a transaction provided by a typical block explorer. In fact, most of the high-level constructs we see in the various bitcoin application user interfaces do not actually exist in the bitcoin system." If you were to use the bitcoin-cli getrawtransaction and decoderawtransaction, you will see this to be true. The book further states, "In bitcoin, there are no coins, no senders, no recipients, no balances, no accounts and no addresses. All those things are constructed at a higher level for the benefit of the user, to make things easer to understand." Intriguing...

    More Links on Peer to Peer Networking

    A peer nodes must act as both a server and client so that it can send and receive data streams.

    Source: https://cs.berry.edu/~nhamid/p2p/#framework
  • Python Framework: https://cs.berry.edu/~nhamid/p2p/framework-python.html
  • Sunday, December 5, 2021

    Metro Exodus - PC Video Game

    Metro Exodus on Steam is just gorgeous with its attention to detail in the textures and lighting.

    Friday, December 3, 2021

    Peer to Peer Network Discovery

    Please forgive me as I continue to use this blog to document my journey into peer to peer networking over the internet. This journey was sparked by the reportedly decentralized nature of the Bitcoin protocol.
    First of all, what is P2P?
    How does a new node know the addresses of peer nodes on a peer to peer network?
    So far it looks like that new node must first connect to a server that has an explicit list of peer nodes
    Peer discovery is the process of discovering other peers in a network. BitTorrent protocol use tracker servers to maintain a list of peers in a swarm. So, when you start to download a file using a torrent, the client can immediately get a list of peers from the tracker information in the torrent file.
    - https://medium.com/tqtezos/peer-to-peer-networking-in-tezos-942b123fa6a
    What is a swarm?

    Monday, November 22, 2021

    mya55 on Bitcoin

    Saturday, November 20, 2021

    Bitcoin Peer to Peer Network - The How

    Bitcoin network map
    Bitcoin live map

    Apparently, bitcoin transactions are transmitted to all nodes on the Bitcoin peer to peer decentralized network, which means that my wallet is not sending a transaction to a server but rather out to all nodes on the network. How does the wallet know who those nodes are? Here's are some links to start learning how this works:

  • Peer to Peer file sharing
  • What are STUN, TURN and ICE?
  • Network Address Translation (NAT)
  • How does a node connect to the Bitcoin P2P network
  • This is the response from my linux laptop when I ran the 'dig' command.

    Thursday, November 18, 2021

    Bitcoin Parse out the Blockchain into JSON

    A bitcoin does not exist as a single persistent digital file that is passed around. Rather, bitcoins are referenced in transaction amounts between addresses a.k.a. accounts a.k.a. wallets a.k.a. nodes on an unstructured peer to peer network overlayed on top of TCP/IP a.k.a. the internet. At any rate, back to the bitcoin concept, if there are only two addresses in the system and address-1 has 50 bitcoins while address-2 has 0, then there are 50 bitcoins. One does not examine each bitcoin. If address-1 sends 25 bitcoins to address-2 then you have a transaction that tracks the movements of bitcoins. Now both address-1 and address-2 have 25 bitcoins each with a total of 50 bitcoins in existence. The 50 bitcoins have not left the Bitcoin system and are password locked into the two addresses. You know there are 50 bitcoins because the transactions state that. Again, you will not be able to examine each bitcoin individually because they don't exist except as an amount in a transaction between or among addresses.

    Now let's say that another party wants to join the Bitcoin system and connects as address-3. Naturally address-3 has no bitcoins because all 50 bitcoins reside at addresses-1 and address-2. Feeling generous, address-2 sends 10 bitcoins to address-3. This transaction results in [address-1 = 25 bitcoins], [address-2 = 15 bitcoins] and [address-3 = 10 bitcoins] with the total bitcoins in existence still being 50. Finally, these addresses or accounts are secured with passwords and the transactions are cryptographically linked together so that any effort to change a transaction will have to include undoing all the preceding transactions and hiding this from all the connected addresses that are participating in this Bitcoin system. A further deterent to hacking bitcoin transactions is that an address will be rewarded with new bitcoins if that address runs the program that links these transactions into a cryptographically locked block of data. An address that joins the system and performs the computationally intensive locking task is called a miner. If an address-4 comes along with the techincal expertise to mine a new block, they will be rewarded with some agreed upon amount of bitcoin. For this example, let's say the reward is 50 bitcoins. So now the Bitcoin system has a total of 100 bitcoins, with address-4 being the wealthiest of its members unless addresses 1 through 3 come up with some bitcoin priced product to sell to address-4. Either that or addresses 1 through 3 learn to become miners and keep growing the bitcoin supply up towards its maximum of 21MM bitcoins. Anyhow, I just want to see what bitcoin block looks like.

    Ran Bitcoin core on Linux laptop to get a few files like blk00828.dat
    Got a Python bitcoin block parser from https://github.com/pldespaigne/blk_parser/
    From the blk_parser-master\script directory I ran this:
    python3 blk_parser.py -i /home/pentoo/Desktop/MyBitCoin/MyBitCoinData/blocks/ -o /home/pentoo/Desktop/MyBitCoin/MyBitCoinData/json/ -n *
    This started putting out json files, which then could be viewed with this from inside the JSON folder:
    jq '.' tx00828.json | more
    Output:

    Now I can go to an on-line blockchain explorer with transaction IDs and addresses to further explore the structure of the Bitcoin blockchain.

    Fascinating stuff! Elegant solution to digital currency, but perhaps not the most optimal implementation as the peer to peer network grows. We will likely see this naturally move towards centralization and/or splinter off into digital nation states, the two things that bitcoin was seeking to overcome. But time will tell once the supply starts to cap, mining rewards cease and some folks start burning wallets because they can.

    Saturday, October 23, 2021

    Time for the Communist Party Virus "Vaccine" Booster

    "It is likely that vaccinated individuals are less likely to transmit the virus but further research is needed..."

    "Those vaccinated should take the same precautions, which include social distancing, wearing a mask, and washing hands frequently. The vaccine provides only 50% protection after 14 days and 95% protection after the second dose. Therefore, an individual is never 100% protected. Additionally, it is unknown how long the protection from the vaccine lasts. Finally, some individuals may be unable to receive the vaccine for various health reasons and will remain at risk until herd immunity is achieved"

    Source: https://patientsafetymovement.org/covid-19-vaccine-information/?gclid=EAIaIQobChMI1PiLh-Pg8wIVgD6tBh120ASLEAAYASAAEgKNa_D_BwE
    Questions:

    1. Does the "vaccine" promote herd immunity?

    2. Is the "vaccine" preventing infection or only relieving symptoms?

    3. Do masks and distance in open air prevent the virus from entering the body?

    4. Why are there vaccine and mask mandates if answers to 1, 2 and 3 are unclear?

    5. Who is paying for and profiting from the vaccine?

    6. Who is paying for the loss of livelihood and productivity

    7. Where are the causation vs correlation studies?

    8. Is the reaction to the pandemic worse than the pandemic itself?

    9. Since when is the risk of death not part of life?

    10. Do we really believe that this "vaccine" regiment is the ONLY way?

    May I just note that everyone is an expert until they are wrong.

    Disregard this if you are content with living "better safe than sorry".

    Thursday, October 21, 2021

    Chinese Communist Party Virus aka Covid-19

    Source: https://www.theepochtimes.com/ccp-virus?utm_source=CCPVirusNewsletter&utm_medium=email&utm_campaign=2021-10-21

    Sunday, October 17, 2021

    Mining Bitcoin

    Links for reference:
    https://www.luno.com/blog/en/post/bitcoins-hash-rate-is-hitting-record-highs-but-does-it-even-matter
    https://www.baeldung.com/java-blockchain
    https://medium.com/programmers-blockchain/create-simple-blockchain-java-tutorial-from-scratch-6eeed3cb03fa

    My Simple Pseudo BLock Chain in JavaScript

    class Block {
    constructor(index, timestamp, data, prevHash = '') {
    this.index = index;
    this.timestamp = timestamp;
    this.data = data;
    this.prevHash = prevHash;
    this.hash = this.calculateHash();
    }
    calculateHash(){
    return 'need to calc the hash';
    }
    }
    class Blockchain{
    constructor(){
    this.chain = [this.createGenesisBlock()];
    }
    createGenesisBlock(){
    return new Block(0, "09/01/2021", "Genesis block", "0");
    }
    getLatestBlock(){
    return this.chain[this.chain.length - 1];
    }
    addBlock(newBlock){
    newBlock.prevHash = this.getLatestBlock().hash;
    newBlock.hash = newBlock.calculateHash();
    this.chain.push(newBlock);
    }
    }
    let myCoin = new Blockchain();
    myCoin.addBlock(new Block(1, "09/20/2021", {amount: 4}));
    myCoin.addBlock(new Block(2, "09/27/2021", {amount: 5}));
    console.log(JSON.stringify(myCoin, null, 4));

    Console output:
    {
    "chain": [
    {
    "index": 0,
    "timestamp": "09/01/2021",
    "data": "Genesis block",
    "prevHash": "0",
    "hash": "need to calc the hash"
    },
    {
    "index": 1,
    "timestamp": "09/20/2021",
    "data": {
    "amount": 4
    },
    "prevHash": "need to calc the hash",
    "hash": "need to calc the hash"
    },
    {
    "index": 2,
    "timestamp": "09/27/2021",
    "data": {
    "amount": 5
    },
    "prevHash": "need to calc the hash",
    "hash": "need to calc the hash"
    }
    ]
    }
    }

    This pseudo block chain is missing the nonce, which is what gets the block's hash to start with appropriate number of leading zeros.

    Friday, October 1, 2021

    Blockchain - How is it physically stored for persistence?

    It's fine and dandy to write a blockchain in JavaScript, Python or even PHP, but sending the output to a console is useless. Where is THE blockchain stored so I can write a program that accepts the blockchain data as input?

    Maybe this will help understand how it is physically stored.


    Info graphic from www.101Blockchains.com

    Saturday, September 11, 2021

    Android Pyroid3, Kick Web Server with MySQL - Unknown character set: utf8mb4

    In Pyroid3, I re-installed mysql-connector-python so I could write python scripts that read MySQL tables.
    Upon running a python script that worked a year ago, I now get "Unknown character set: utf8mb4"

    Apparently this error occurs when your MySQL version is less than 5.5.3.

    Kick Web Server is running 5.1.62.

    Resolved error by specifying the charset in the python script's mysql connection.

    Wednesday, September 8, 2021

    Kali Linux - Cubic SDR and DSD Plus

    The overall goal here is to connect a Nooelec USB antenna to Kali linux and listen to police frequencies that are digital and trunked. You will use the Cubic SDR frequency tuner and a virtual audio feed while DSDPlus decodes a digital signal to analog audio. The flow is as follows: antenna -> digital signal input -> Cubic SDR -> DSDPlus -> analog audio out.

    Download DSD Plus v1.101 and v1.101 DLL and put all extracted files into the same folder. https://www.dsdplus.com/download-2/

    sudo apt-get install cubicsdr

    From the command line, temporarily set up virtual audio sink with:

    pacmd load-module module-null-sink sink_name=Virtual_Sink sink_properties=device.description=Virtual_Sink

    Click volume control to see a Virtual Sink in the pulse audio i/o devices.

    If not, then try restarting pulse audio with killall pulseaudio, systemctl --user restart pulseaudio.service

    To make the virtual sink option permanent, open the configuration file (sudo gedit /etc/pulse/default.pa) and add the following line at the bottom of file)

    load-module module-null-sink sink_name=Virtual_Sink sink_properties=device.description=Virtual_Sink

    If wine is not already installed then,

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install wine:i386
    sudo apt-get install wine32

    From your DSDPlus directory run wine DSDPlus.exe

    At first I got an error: wine_process_init L"C:\\windows\\system32\\-h.exe" not found,
    so I deleted the /HOME/.wine directory
    and ran regedit to recreate the .wine directory.
    Then I ran wine winecfg and selected auto detect drives.
    Finally, I was able to run wine DSDPlus.exe successfully.

    Start CubicSDR, which should be in the Kali Linux Menu

    Tune to desired frequencies. Both Cubic SDR and DSDplus should display wave activity.

    This is what volume control playback should look like:

    These are Los Angeles Police frequencies: 506.937MHz and 507.212Mhz

    Tuesday, September 7, 2021

    GRGSM_LIVEMON - segmentation fault

    Rather than track down why I can't build grgsm_livemon on this particular Kali linux machine, I opted to build it from scratch in GNURadio-Companion, storing a WIP called mygrgsm_livemon on Google Drive. Let me just think out loud that it might be how I installed gnuradio on Kali linux. I may have used sudo apt-get install gnuradio instead of downloading from source and building. Anyway, I have it working on a virtual machine running Kali Linux, so I'll let it go for now.

    Monday, September 6, 2021

    Kali Linux - inRelease is not valid yet

    sudo apt update inRelease is not valid yet Problem with local device's system clock sudo timedatectl status sudo systemctl restart ntp.service sudo ntpq -p Source: https://www.how2shout.com/linux/solve-kali-error-inrelease-is-not-valid-yet-invalid-for-another-xh-xmin-xs/

    Wednesday, September 1, 2021

    GRGSM_LIVEMON - Warning: failed to XInitThreads()

    sudo apt-get install libx11-dev

    sudo apt-get install xauth dbus-x11

    Run grgsm_livemon and now no warning message

    GRGSM_LIVEMON and [ERROR] avahi_service_browser_new() failed: Bad state

    I am running Kali Linux in Oracle VM Virtual Box on a Windows 10 machine.

    I mostly followed the instructions at Pentesting to get GRGSM_LIVEMON and the HackRF installed.

    There are many resources that provide instructions on how to install the HackRF so that hackrf_info on the command line will list the device.

    What I want to address here is this error when running grgsm_livemon:

    [ERROR] avahi_service_browser_new() failed: Bad state

    The frequency sink still shows but the error troubled me so I did the following:

    sudo apt-get install avahi-daemon

    sudo apt-get install avahi-discover

    sudo apt-get install -y avahi-utils

    Switch to directory kali@kali:/etc/init.d$ 

    ./avahi-daemon stop

    kali@kali:/etc/init.d$ ./avahi-daemon status

    kali@kali:/etc/init.d$ ./avahi-daemon start

    grgsm_livemon  

    !!!!! Ran with no Avahi Bad state error !!!!




    Sunday, August 29, 2021

    Run Kali Linux on Windows

     Rather than reinvent my posting back in February, I point to this video, which seems to sum it up much better than I did. https://www.youtube.com/watch?v=AfVH54edAHU 

    Steps in video:

    winver

    19041 or higher

    install WSL

    From PowerShell run as admin

    enable-WindowsOptionalFeature -online -FeatureName Microsoft-Windows-Subsystem-Linux

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    restart Windows

    Install Windows Subsystem Linux (WSL)

    https://aka.ms/wsl2kernal

    https://docs.microsoft.com/en-us/windows/wsl/install-win10

    https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

    Powershell run as admin

    wsl --set-default=version 2

    Microsoft Store install Kali app

    set user name and password

    sudo apt update && sudo apt upgrade -y

    sudo apt install kali-desktop-xfce -y

    From separate Powershell window

    wsl --list --verbose

    confirm running version 2

    sudo apt install xrdp -y

    sudo service xrdp start

    ip add

    copy ip address

    Remote Desktop

    paste ip address

    Kali username and password

    Tuesday, July 27, 2021

    Whistler TRX-1 - Nothing to Scan

    My year old scanner was working fine, but after plugging it into another laptop and running the desktop application (TRX-1Install_3.35.0.675.exe) , I got the "Nothing to Scan" message on the handheld scanner.  This occurred after updating the PC application with a library import and using the handheld scanner to select objects to scan.

    Apparently, in playing around with the desktop app, I corrupted the SD card.  Luckily, I had previously backed up the SD card contents.

    Anyway, I figured that the "Nothing to scan" message had something to with the scanner not being plugged into the original PC and desktop app configuration that set up the scanner a year ago.

    I decided to start over by turning off the handheld and plugging it into the new PC.

    After starting the desktop application installed from TRX-1Install_3.35.0.675.exe ( there is also a setup.exe on the SD card), I performed a library update as follows:

    Then I reformatted the SD card with options to reconfigure.

     

    After the reformat and reconfiguration of the SD card, I turned to setting a V-scanner folder with the following options

    After this was set, I closed the desktop application and safely ejected the handheld scanner, which is essentially just the SD card.

     Now when I "Browse Library" looking for objects to scan and assign to Scanlist 001, the scanner scans the imported frequencies just fine.

    Whatever I did fixed something.

    Now, my main concern is that the back up of the original SD card does not match the current SD card contents, but I won't worry about this unless the scanner stops working.

    The new SD card does not contain the setup.exe software for the desktop application, but I can always get it up from https://whistlergroup.com/pages/trx-1-downloads-1






     

    Thursday, June 10, 2021

    WISH and Reddit Wallstreetbets

     Two days ago, I felt compelled to join the meme stock potential of $WISH on Reddit's /wallstreetbets and explain my investment thesis.


     

    Saturday, May 22, 2021

    Google Translate listing languages in dropdown

    This code lists languages in a sort of spinner drown down list, which is good for viewing on a mobile device.

    <head>
    <script type="text/javascript">
    function googleTranslateElementInit() {
      new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
    }
    </script>
    <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
    </head>

    <body>
        <div id="google_translate_element"></div>  
    </body>

     

    This script formats the languages in a pop up box that does not resize or scroll to fit a mobile screen.  This is bad.

    <script type="text/javascript">
    function googleTranslateElementInit() {
      new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
    }
    </script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

    Thursday, May 6, 2021

    Android App with Joystick and Button Animation

    I created this app to experiment with button animations and a joystick interface.  None of the interactive elements do anything. That is up to you to fill in with intents, fragments, activities et. al.


    Source code and apk:

    https://github.com/shimart96/MyJoystick2

     


     

    Mossberg 500 Forearm Change

    Change forend

    https://www.youtube.com/watch?v=QOlH-_Ky2oU

    Takedown:

     https://www.youtube.com/watch?v=oahhxCMDFB8

    Current set up:


     

     

     

    Wednesday, May 5, 2021

    Android Studio and GitHub


    Open an Android Studio project that you wish to upload to GitHub. 

    Android Studio was not showing a Git or Github option under File | Settings | Version Control.

    After installing Git for Windows from https://github.com/git-for-windows/git/releases/download/v2.31.1.windows.1/Git-2.31.1-64-bit.exe,

    I then selected File | Settings | Plugins and checked the boxes for Git and GitHub.


    Now go back to File | Settings | Version Control to make sure that path is set correctly.


    Go to VCS | Enable Version Control | Git and then theoptions should look like this.


    Send project to GitHub through the VCS menu.

     

    If get the message: Invalid authentication data 404 not found, then go back to http://github.com

    and create a Personal Token through dropdown on User Icon | Settings | Developer Settings



    After creating and copying the token, go back to Android Studio File | Settings | Version Control | GitHub and add account using the token.

     Now click green arrow in the Android Studio toolbar.


    Then share on GitHub through the VCS menu and using the token to login to GitHub

    A list of useful links.


     



    Sunday, May 2, 2021

    Great Circle Calculation

    I need to get all MySQL geotags within 10 miles of my current location.

    Given that my current location is latitude = 34.034940, longitude = -117.950060 and I have a MySQL table of geotag rows with columns for lat and lng, then my query will be:

    SELECT `idtags`, `lat`, `lng` FROM `mygeotags` WHERE (((acos(sin((34.034940*pi()/180)) * sin((`lat`*pi()/180)) + cos((34.034940*pi()/180)) * cos((`lat`*pi()/180)) * cos(((-117.950060 - `lng`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) <= 10 

    ORDER BY `idtags` ASC

    I derived this query from an example at https://martech.zone/calculate-great-circle-distance/

    Another query using radians can be found at https://stackoverflow.com/questions/574691/mysql-great-circle-distance-haversine-formula

    This is a version going against my geotag table substituting $lat, $lng for my current location.

    SELECT `idtags`, `lat `, `lng`  FROM `mygeotags`  WHERE ( 3959 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($lng) ) + sin( radians($lat) ) * sin(radians(lat)) ) ) <= 10 

    ORDER BY `idtags` ASC

    Helps to visualize parallels of  latitude and meridians of longitude.







    Wednesday, April 21, 2021

    WISH Share Price and the FOMO rally

     

    Short sellers have been pounding this stock for 2 months, and folks waiting for a $10 floor may fuel a FOMO (fear of missing out) rally given that Amazon reportedly tried to buy WISH in 2015 for $10 billion in cash.
    I estimate that to be around $13 a share and that was before WISH demonstrated 30% annual growth. Moreover, WISH is listed as an Advertising and Marketing company, not retail. Their big data on untapped markets is worth big money.
     
    Recent news:
     

    Friday, April 16, 2021

    Wish Shopping and Big Data

    We all know the saying that if an on-line product is free, then you are the product.  Isn't that what is really going on with the mobile app Wish?  

    People talk about low quality, freaky products and slow shipping but are apparently still willing to accept risks and buy at ridiculously cheap prices providing Wish with 2.5 billion dollars in annual revenue.

    Who are these people buying on Wish?   

    Where do they live, how old, how many family members, how many friends, where do they go, how much do they buy, how often and what do they click on?

    Since Wish is reportedly the most downloaded shopping application worldwide and the number 3 United States e-commerce market place, I'd bet that there are plenty of folks who would like access to their treasure trove of data.

    I like my butterfly knives, brass knuckles and garish watches, so I am not only a satisfied Wish customer but also an investor, who by necessity must remain patient with shares purchased at $19.

    Wish is now $12 a share. Will it go to $0? Who knows?  But 5 years ago,  Amazon tried to purchase Wish for 10 Billion.  With 735 million shares outstanding, that comes to $13.60 a share 5 years ago before they demonstrated 31% yearly growth.

    Playing the long game, I am holding my shares and will have to find some other way to pay rent in the meantime.



    Sunday, April 11, 2021

    5G, Mobile Apps and Google's WebView

    The goals of any self respecting industry are to increase sales, reduce production costs, and eliminate the need for customer support.  5G or the public perception of 5G can hit all three.

    5G should render mobile hardware less significant, because most of the data processing can be done on the cloud also known as the web.  In the early stages of smart phones, mobile apps asynchronously downloaded data for processing, because internet speeds were not practical for transferring data back and forth from the internet server.

    As internet speeds approach zero latency with 5G, mobile apps should be able to receive web data at acceptable speeds.  As a result, personal phone and PC hardware will become less relevant and save a lot of headache for manufacturers and retailers.  Personal computer and phone retail sales operate on relatively slim margins and with lousy customer support options (try contacting your vendor for help).  Personal experience at ground level retail led me to this conclusion but some may disagree.

    Nevertheless, promoting the promise of 5G, the personal computing industry can drive sales with cheaper devices and centralize support by moving the processing hardware to the cloud or web.

    Moreover, software development costs can be reduced by combining mobile and web development with the enhancement of Google's mobile Webview layout. This application can make internet browser data match the look and feel of the overall mobile UI (user interface).

    As the developer of W.A.R., I have begun to rethink presenting the Webview UI directly from my web server where phone specific hardware like the GPS, accelerometer, magnetometer and camera are not needed.

    So far this has greatly reduced development time, as I do not have to worry about background threads and memory management when I simply want to display a list of data points that will likely not change as result of the phone's hardware sensors.

    For example, this page is both web and mobile friendly. http://spideronfire.com/commenttags.php.

    Enter the handle "s33me".


     


    Saturday, April 10, 2021

    Machine Learning

     https://www.ibm.com/cloud/learn/machine-learning

     

    I am backing up all my Python scripts that attempted machine learning algorithms against options data downloaded from the CBOE.  At some point the results seemed to generate profit; however, I have since concluded that my success was more luck than science.

    Tuesday, March 16, 2021

    Flush DNS

     

    • ipconfig /flushdns
    • ipconfig /registerdns
    • ipconfig /release
    • ipconfig /renew
    • netsh winsock reset
    • reboot PC

    Monday, March 8, 2021

    DragonOS Linux and USB WiFi Adapter

    DragonOS did not recognize my internal WiFi card on a Dell Latitude | D520. So I just plugged in a spare USB WiFi adapter and ran LSUSB to get device specifics.


    Then I followed the instructions at https://github.com/kelebek333/rtl8188fu

     In addition, I ran "sudo cp /home/shimart96/rtl8188fu/firmware/rtl8188fufw.bin /lib/firmware.

    WiFi connection successful.

    Friday, February 26, 2021

    Windows Subsystem for Kali Linux - My Process

    Run PowerShell as administrator:

        

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    Restart Windows
    Run PowerShell as administrator: 
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 
    Restart Windows 
    Download https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 
    Double click wsl_update_x64.msi (Should request administrator permission)
    Run PowerShell as administrator: 
     
    wsl --set-default-version 2  
    Install and double click Kali via the Microsoft Store
    If already installed then run  
    wsl --set-version kali-linux 2 
    After setting user name and password:
    kali@kali:~$ sudo apt update
    kali@kali:~$ sudo apt upgrade
    kali@kali:~$ sudo apt install kali-win-kex
    kali@kali:~$ sudo apt install dbus-x11
    kali@kali:~$ sudo apt install -y kali-linux-large
    Then:
    kex (For GUI)
    or sudo kex --kill
    sudo kex
    and then on slower laptop, hit control c to kick start the GUI. 

    ============================Command Line Only

    If sticking with command line for Wifite, but must first install Python.

    Change directory to Downloads 
    wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz 
    tar -xvf Python-3.9.2.tar.xz
    cd Python-3.9.2 
    ./configure
    configure: error: no acceptable C compiler found in $PATH
    Oh oh..
    sudo apt-get install gcc
    sudo apt-get install make 
    ./configure 
    make
    sudo make install
    (There are errors; however, this works:)
    python3 -V
    sudo apt-get install python3-pip 
    Go back to home directory
    git clone https://github.com/derv82/wifite2.git
    cd wifite2
    sudo python3 ./Wifite.py
     
    More work to be done.... 
    Like... 
    sudo apt install realtek-rtl88xxau-dkms
     
     
     
     
    Links:
    https://docs.microsoft.com/en-us/learn/modules/get-started-with-windows-subsystem-for-linux/2-enable-and-install 
    https://www.kali.org/docs/wsl/win-kex/
    https://blog.eldernode.com/install-and-run-wifite-on-kali-linux/ 
    https://www.tecklyfe.com/how-to-install-gui-win-kex-for-kali-linux-in-windows-wsl2/ 
    https://store.rokland.com/apps/help-center#putting-awus036ac-awus036ach-or-awus036eac-into-monitor-mode 
      

    Wednesday, January 27, 2021

    Pentoo and Universal Radio Hacker

     I attempted to follow the instructions on the following links:

     

    https://www.rtl-sdr.com/tutorial-on-performing-a-replay-attack-with-a-hackrf-and-universal-radio-hacker/ 

     

     https://github.com/jopohl/urh#Installation

     

    After which, I ended up adjusting my tack slightly with the following commands:

     

    pentoo@pentoo ~/Downloads $ python3 get-pip.py

    pentoo@pentoo ~/.local/bin $ ./pip install urh

    pentoo@pentoo ~/.local/bin $ ./urh

     




    Sunday, January 24, 2021

    Star Wars Battlefront II on PC problems

    At first, BattleFront II would not hold the video open on the following PC setup.

    Dell Tower

    AMD Ryzen 7  2700 Eight-core processor

    16GB RAM

    AMD Radeon (TM) RX 580 4 GB

     

    One or all of the following finally got the game running.

    • Moved folder _lvl_pc out of the game data folder
    • Run game in compatability mode for Windows 8
    • Specified overclock in the Radeon software app 




    Monday, January 18, 2021

    Long Amazon Shares with Covered Call

     I am holding shares of Amazon with covered calls expiring after earnings on February 4 and decided to check Fibonacci levels on S&P 500 to see where I might trade in and out of covered calls to squeeze a little more premium out of the options.  Source for this calculator