Widespread Augmented Reality

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

Wednesday, December 30, 2015

Uninstall Windows 10 Built-in Apps

There is apparently no advantage other than getting rid of stuff you do not use.

Windows PowerShell
Copyright (C) 2015 Microsoft Corporation. All rights reserved.

PS C:\Users\SalFe> Get-AppxPackage *3dbuilder* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *zunemusic* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *windowsmaps* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *zunevideo* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *solitairecollection* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *onenote* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *windowsphone* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *bingsports* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *bingweather* | Remove-AppxPackage
PS C:\Users\SalFe> Get-AppxPackage *xboxapp* | Remove-AppxPackage
PS C:\Users\SalFe>

Sunday, November 29, 2015

Technical Interview Questions

Here is a list of interview questions on GitHub I've stopped chasing the tech job and created my own app tentatively called Widespread Augmented Reality.

Tuesday, November 24, 2015

Email from Google with Bad English

Hi Ma, Thanks for contacting Google Play Developer Support. I see that you are finding a way of reply and view this 1-star rating. However, when user left a rating without comment, you can only see the rating, and not being able to reply to them. Please note that it's comply with our Comment Posting Policy if user leaves any ratings without comment. The Comment Posting Policy is available here: https://play.google.com/about/comment-posting-policy.html Sorry for any inconvenience this may cause. However, if you see any comments that you feel may violate our Comment Posting Policy, you can always report back to us.

Sunday, November 22, 2015

RSS Feed for SpiderOnFire's Widespread Augmented Reality geotag page

Steps in creating an RSS button for SpiderOnFire.

  • First understand that RSS is Real Simple Syndication for folks to receive website updates into aggregate RSS readers built in to most browsers.
  • Second, as the web master, you need to create an XML file with the extension *.rss in your home directory.
  • Third, download an RSS file builder.
  • Fourth, follow these instructions to create the XML *.rss file to be uploaded to your server.
  • Finally, follow these instructions to create an RSS button for your website.

    Thank you. RSS Button Maker/Generator Tool

    Also see Feedburner.

  • Thursday, November 5, 2015

    Free - Play Grand Theft Auto San Andreas on Android

    These are the steps to download the Grand Theft Auto San Andreas APK to my rooted Samsung Galaxy tablet 2 - 8 GB - Kit Kat - 16 GB external SD card.

  • First download, install, but DO NOT update the Muzhiwan Market Place app.
  • Open the Muzhiwan app, tab to Big Games, scroll for Grand Theft Auto San Andreas and download the 2GB GPK file
  • Move the Grand Theft Auto GPK file to your 16 GB external SD card
  • Download Google Play's Folder Mount.
  • Open the FolderMount app and pair the Muzhiwan app, so that Muzhiwan data will be stored on the external SD card
  • Now click on the downloaded Grand Theft Auto San Andreas GPK file | Open as Zip | Use Muzhiwan | Then accept Install.
  • Once installed (Must have at least 3 GB available on internal SD card), use Folder Mount app to pair Grand Theft Auto APK, which moves the Data and OBB files to your external SD card.
  • In summary, you will essentially download the GPK through Muzhiwan, move the GPK to the SD card and then install from the external SD card. The last step frees up the internal SD card by mounting Grand Theft Auto to the external SD card. Enjoy.

    After playing Grand Theft Auto San Andreas, why don't you keep track of your real life clique with the Widespread Augmented Reality heads up display

    Saturday, October 24, 2015

    Google Analytics

    Google Analytics

    Tuesday, October 13, 2015

    Migrating from Eclipse to Android Studio

    I have created new projects in Android Studio, but have yet to migrate an Eclipse app project to Android Studio. This documents what I did to get a clean build after importing the project from Eclipse following these instructions.
  • First I made sure that my Eclipse project ran and debugged successfully to my Galaxy Tab 2.
  • Then I moved the project to a separate Workspace folder
  • Firing up Android Studio, I imported the Eclipse project from the duplicate folder
  • Of course there were tons of errors
  • Mostly due to invalid imports and their methods in the source code.
  • For example: import org.apache.http.client.*
  • My eclipse project used imported external Jars
  • So I went outside Android Studio into Windows file manager or explorer and created a "libs" folder inside the "app" directory.
  • I copied my external Jars to the "libs" folder and then edited the build.gradle file like so:
  • dependencies {
    compile files ('libs/acra-4.2.3.jar')
    compile files ('libs/httpmime-4.1.1.jar')
    }
  • Other errors involved encoding
  • So I also added the following to the build.gradle file
  • compileOptions {
    encoding "UTF-8"
    sourceComaptibility JavaVersion.VERSION_1_7
    targetComaptibility JavaVersion.VERSION_1_7
    }
  • Now the errors disappeared.
  • However, I also did a bunch of other fiddling around, so I don't know what actually fixed the errors.
  • Just so you know.
  • Now the fun begins with a Run Debug to the actual Galaxy Tablet, so stay tuned.

    By the way, the Eclipse project was no slouch. This is the production app on Google Play: WAR.

    Friday, September 11, 2015

    PHP: Storing Users' IP addresses

    First we store the IP address as the new user id is created:

    Then we list them



    Wednesday, September 9, 2015

    Blue Screen of Death -BSOD

    Problem:

    Compaq Presario CQ60 slow in starting and then shuts down with the BSOD.

    Resolution:

      1. Restart into Safe Mode with pf8 key depressed.
      2. Control Panel | Administrative Tools | Event Viewer
      3. The Windows system event log showed that there was a bug at start up.
      It looked like some low level running service or program was doing something it should not be doing.
      4. Control Panel | Programs and Features | Sort programs by install date | Uninstall recently added programs until
      the BSOD goes away.
      5. Restarted in normal mode and saw that Norton 360 was trying to install itself right before the next
      6. Restart in safe mode and download the
      Run the Norton uninstaller tool.
      7. Run msconfig to limit the start up of non-essential, non-Microsoft programs.
      8. Run CCleaner and erase Windows event logs, as well as, junk.
      10. Encourage the use of a password on the main user account.
      11. Do not install an AntiVirus. Do not believe the hype.
      12. If you must install an AntiVirus, then go with

    Monday, September 7, 2015

    Malware Removal

    Some places like Office Depot charge at least $179 while Reddit is free, but of course your time and DIY risk has a price.

    Monday, August 17, 2015

    Authorized Brute Force Password Attack from 104.175.53.76

    Since I have been authorized to pentest Design-atelier-antiques, I installed and ran Hydra on Ubuntu Linux. Below is an example of what I typed into the command line window.

    hydra -l adminv01 -P pwlist3.txt -s 80 -f www.designer-atelier-antiques.com http-post-form "antiques/administrator/index.php?page=login.php:usrname=^USER^&pass=^PASS^&login-php-submit-button=Login:Incorrect Username"

    Sunday, August 9, 2015

    Shady Blackmailing Web Master

    The creator of Design-Atelier-Antiques is claiming that the stakeholder owes for domain renewal payments that he has been making on their behalf. The stakeholder claims that this web master cost them $4000.00. I was astonished by this amount but even more so by the web master withholding Joomla administration access. A scan of this URL should reveal the web master name.

    Meanwhile, I've continued to explore ways of regaining control via the following:

    Tuesday, August 4, 2015

    Permission to Hack a Site

    With the disappearance of the original webmaster and having received permission to hack my client's site, I spidered the URL with Screaming Frog's SEO Spider. After reviewing the results, I determined that the Joomla site had its administrator page here. Now the fun begins with guessing the password, testing for SQL injection and brute forcing a login. Stay tuned.

    Saturday, July 11, 2015

    Update to Google Maps API Suddenly Exceeding Quota

    Follow these links:
  • The Google Geocoding API
  • Geocoding Strategies
  • The key (no pun intended) here is whether you will use a browser key or a server key. Since my PHP script is using file-get-contents($requestURL), where $requestURL might look like this

    https://maps.googleapis.com/maps/api/geocode/json?latlng=

    I will create and copy the server key from the
    https://console.developers.google.com/project

    Now I am still trying to figure out where to place this code in the PHP/HTML/Javasript page. You'd think that

          src="https://maps.googleapis.com/maps/api/js?key=API_KEY">
        
    would work. But not necessarily so. Stay tuned.

    Thursday, July 9, 2015

    Google Maps API

    Last night while testing the features of SpiderOnFire, I found that step 2 Mark stopped working. After adding an echo,I realized that my call to the maps API using the clever key "abcdefg" stopped working after years of service.

    A quick visit to google developers console allowed me to properly define a key associated with this project: Widespread Augmented Reality

    Get one for yourself be following these steps:

  • Find APIs&Auth in left pane
  • Select APIs
  • Create key for browser
  • Select credentials in left pane to verify
  • Copy key into your web page code
  • Example:
    
    
    define("MAPS_HOST", "maps.google.com");
    define("KEY", "AIzaSyC6Fhp2Q78tcAf3FVmkY--xxxxxxxxx");
    .....
    $base_url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" ;
       $location = $_POST['latlng'];
       $location = substr($location,1,-1);
       $location = str_replace(" ","",$location); 
       
       $emd_url =  "&sensor=false" ;
       $request_url = $base_url . $location . $emd_url;
       $jsoncontents = file_get_contents($request_url) ;
       $decodedjson = json_decode($jsoncontents);
       $formattedaddy= $decodedjson->results[0] -> formatted_address;
    
    
     
    
    
    

    Wednesday, June 3, 2015

    Google's Mobile Friendly Test

    If you are hoping to rise up the ranks of Google's new mobile search algorithm, the mobile friendly test is a good place to start.

    Tuesday, April 28, 2015

    Android Shapes and Animation with XML

    Here is the Java code in the main activity that animates using the XML below.

    //main_activity.java
    
    ... Animation rising =AnimationUtils.loadAnimation(this,R.anim.rising);
    ImageView bubble = (ImageView)findViewById(R.id.animatedFrame2);
    bubble.startAnimation(rising); ...
    //end of main_activity.java
    

    anim/rising.xml

    drawable-hdpi/bubble.xml

    layout/main_activity.xml

    Wednesday, April 22, 2015

    Companies with Android Job Opportunities

    The following Los Angeles companies sought Android development during 2014.
    • GumGum Inc
    • ACTV8
    • Applico Inc.
    • Age of Learning
    • EHarmony
    • OurStay
    • Westside Rentals
    • NClusive
    • Unified Dispatch
    • WeMo
    • Sparks Networks
    • Jogg
    • J2 Global
    • LoopNet

    Thursday, April 9, 2015

    Android Async Task and Multiple Parms

    I am building a pop up window to display text that is available on the main UI, but the pop up also needs to display an image that is downloaded from the server. Therefore the entire method that builds the pop up window needs to be on a background thread, for building the window text on the main UI and then making a network image call results in the image not being in sync with the text description.

    In order to build the pop up window in the background, I need to pass parms and a URL into the Async Task.
    To do this I essentially created a Popup variable like so:
     
    public static class PopupParms {
    
                 private String burl; 
    
                 private int type;  
    
                 private int position; 
    
                 private Bitmap bm; 
     
    }
    
    

    This class is inside the larger class that contains the async task.


    Then I instantiate on the main UI with:
    PopupParms pp = new PopupParms() and assign values like:
    pp.burl = a_url;
    pp.position = row_number;
    pp.type = row_type;
    etc...
    Now I call the AsyncTask with:
    new buildPopUpWithURL().execute(pp);
    The AsyncTask class will look like this:
    public class buildPopupWithURL extends AsyncTask 
    
         '<'PopupParms, Integer, PopupParms'>' { 
    
    
      @Override
      protected void onPreExecute() { 
    
        }
    
      @Override
    
      protected PopupParms doInBackground(PopupParms... parms) { 
    
        
        HttpGet reuest = new HttpGet(parms[0].burl); 
    
        . 
    
        . 
    
        . 
    
        Bitmap bm = BitmapFactory.decodeStream(inputstream, null, null); 
    
        PopupParms pp = new PopupParms(); 
    
        pp.bm = bm; // broken out for illustration 
    
        pp.position = parms[0].position; // broken out for illustration 
    
        pp.type = parms[0].type; // broken out for illustration  
    
        return pp; 
    
      } 
    
      @Override 
    
      protected void onPostExecute(PopupParms p) { 
    
        // broken out for illustration 
    
        PopupParms pms = new PopupParms();  
    
        pms.type = p.type; 
    
        pms.position = p.position; 
    
        pms.bm = p.bm; 
    
        // A build method on the main UI
        buildPopup( pms.position, pms.type, pms.bm); 
    
    
    
      }
    
     

    In conclusion, I created a custom class variable that contains the multiple fields that need to be passed into an AsyncTask. After I pass that class variable into the AsyncTask, I parse out and read the member fields of that class variable.
    High level representation of passing multiple parameters into an AsyncTask:

    You can see this live with SpiderOnFire's Widespread Augmented Reality app.

    Tuesday, February 10, 2015

    Virtual Reality in the Browser

    Forgot to record that I was at this.

    Only take away is that Virtual Reality could soon be for the masses via the web browser and of course an expensive headset (Occulus) or a cheaper headset (Google cardboard).

    Oh and also, motion sickness can still be an issue.

    Sunday, February 8, 2015

    This Copy of Windows is not Genuine

    Coincidently or not, two customers in succession entered the shop with this message suddenly appearing on Windows Vista and Windows 7. Thanks to internet searches that included this and this in the SERP, I ran from the command prompt as administrator "slmgr -rearm". This seems to switch off the software licensing flag, at least until it comes back on.

    Sunday, January 18, 2015

    Fake Anti-Virus

    At my day job, a customer brought in a laptop and requested a diagnostic as it had recently slowed down and there were unwanted URL requests when opening a browser. I found this error when attempting to download external tools: "This file contained a virus and was deleted." I immediately suspected that the virus was blocking removal attempts. Luckily, I had these tools already on a USB flash drive. Here is what I did to start fixing the problem.
  • Confirmed that safe mode also infected
  • Confirmed that customer had data backed up
  • Advised that the best approach would be to reinstall Windows
  • Confirmed that customer had no installation disks
  • Warned the customer that a surgical approach has risks.
  • Risks accepted in writing
  • Ran msconfig to limit start up programs and services
  • Reset browsers to default
  • Ran regedit to adjust values
  • Adjusted internet options to allow certain websites
  • Copied Malwarebytes, ADWcleaner and HitmanPro from my USB flash drive
  • Ran all these tools.
  • Opted to not try combo-fix on my own
  • Downloaded Nexus client.
  • Connected to remote engineers who finished the cleaning with licensed and proprietary software.
  • Sites that helped me

  • Malwaretips
  • TechSupportAll