{"id":2148,"date":"2017-06-07T19:27:59","date_gmt":"2017-06-08T00:27:59","guid":{"rendered":"http:\/\/www.logikalsolutions.com\/wordpress\/?p=2148"},"modified":"2021-02-13T14:11:27","modified_gmt":"2021-02-13T20:11:27","slug":"how-far-weve-come-pt-5","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/","title":{"rendered":"How Far We&#8217;ve Come &#8211; Pt. 5"},"content":{"rendered":"<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft wp-image-2149 size-medium\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1-300x225.jpg\" alt=\"storage 1 image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_1.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Copying from a thumb drive into our Termux world takes a bit of doing. It&#8217;s actually yet another &#8220;expert friendly&#8221; part of Android. If you don&#8217;t already know where things go you can&#8217;t find them. I had an 8 Gig thumb drive in my Android 2 in 1 while doing the other Termux stuff. I mention that because I don&#8217;t know if the Android device did it or running the program to make storage available did, but an Android directory tree was created out there with a directory for each application.<\/p>\n<h2>Disk Storage<\/h2>\n<p style=\"text-align: justify;\">Yes, I know, many people don&#8217;t know they aren&#8217;t folders, they are directories. An entire generation has grown up not understanding disk storage.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2150\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android-300x225.jpg\" alt=\"storage thum android image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2151\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android_data-225x300.jpg\" alt=\"storage thumb android data image\" width=\"225\" height=\"300\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android_data-225x300.jpg 225w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android_data-768x1024.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android_data-660x880.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_thumb_android_data.jpg 1200w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/p>\n<p style=\"text-align: justify;\">I&#8217;m glad I didn&#8217;t start with a 64 Gig thumb like I tried later. Android, when it wakes up from sleep mode, feels compelled to &#8220;check the drive for errors&#8221; before letting you enter your password. I guess that is why so many of these devices go around unsecured. I&#8217;m a good 5 minutes in and I still haven&#8217;t received the password prompt to unlock the device. I have to keep hitting the shift key so it doesn&#8217;t go back into sleep mode. I stuck that thumb drive in because it was handy. I stuck in the other thumb because I am curious as to whether Android automatically creates this storage when it &#8220;checks for errors&#8221; or if it was the thing we ran in Termux.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2152\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_android_data-225x300.jpg\" alt=\"internal data image\" width=\"225\" height=\"300\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_android_data-225x300.jpg 225w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_android_data-768x1024.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_android_data-660x880.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_android_data.jpg 1200w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/>The second directory tree is similar to the one you find on the internal storage device. The fact they are both much the same is my source of confusion. I do notice the bluemail email app and a few others are not on the thumb drive.<\/p>\n<h2>Copying Files<\/h2>\n<p style=\"text-align: justify;\">Basically we need to select 2 different sets of files. Copy one to the com.termux directory found on the thumb drive and copy the other to the com.termux directory we find in the internal storage tree. You can forget about being able to copy directly to your &#8220;home&#8221; directory because it isn&#8217;t visible.<\/p>\n<h2>PostgreSQL Again<\/h2>\n<p style=\"text-align: justify;\">As discussed in the previous post that particular directory tree is blocked from view in the GUI even though the command line created a directory out there we can access from within the termux environment. You do remember that for PostgreSQL we issued the following command don&#8217;t you?<\/p>\n<pre style=\"text-align: justify;\">pg_ctl -D \/data\/data\/com.termux\/files\/home\/pg -l logfile start<\/pre>\n<p style=\"text-align: justify;\">We will get around to looking at that in a bit.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2153\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select-300x225.jpg\" alt=\"sig before select image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_before_select.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2156\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location-300x225.jpg\" alt=\"menu location image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/menu_location.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><img decoding=\"async\" class=\"alignleft size-medium wp-image-2154\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu-300x225.jpg\" alt=\"select file menu image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/select_file_menu.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><img decoding=\"async\" class=\"alignleft size-medium wp-image-2155\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected-300x225.jpg\" alt=\"sig selected image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/sig_selected.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>I chose a text file containing my email signature. Something small, simple, and easily looked at. Once you have the file you want visible on the screen you need to hit the three vertical dots in the upper right corner of the window. This makes the control menu appear as shown in the image. After that you can touch one or more files on the screen to select them. Notice the blue highlight indicating the file has been selected. After you have selected the needed file(s) you then touch the copy icon which looks like 2 sheets of paper and is in the same toolbar as the control menu.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2157\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection-300x225.jpg\" alt=\"after selection image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/after_selection.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><img decoding=\"async\" class=\"alignleft size-medium wp-image-2158\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected-300x225.jpg\" alt=\"jed selected image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/jed_selected.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Your toolbar will change once files have been copied. Notice the clipboard now appears. The copy and trashcan have both disappeared. I navigated back and pasted this file in the com.termux directory of the thumb drive.<\/p>\n<p style=\"text-align: justify;\">Next I wanted different files for our second location test. I selected my hidden jed configuration file and the jed quick reference guide. Sadly jed has not yet been included in termux packages. It&#8217;s a rather serious terminal based editor running on many different platforms including OpenVMS.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2159\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste-300x225.jpg\" alt=\"internal termux files after paste image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/internal_termux_files_after_paste.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Now I navigated to the internal storage com.termux directory to paste them. In part I chose the hidden file just for grins to see if it would show up.<\/p>\n<p style=\"text-align: justify;\">We are now ready to see what it is we can see from within termux. No great magic, just the ls command.<\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"aligncenter wp-image-2160 size-full\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/termux_ls_after_copies.jpg\" alt=\"termux ls after copies image\" width=\"1200\" height=\"1600\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/termux_ls_after_copies.jpg 1200w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/termux_ls_after_copies-225x300.jpg 225w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/termux_ls_after_copies-768x1024.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/termux_ls_after_copies-660x880.jpg 660w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p style=\"text-align: justify;\"><img decoding=\"async\" class=\"alignleft size-medium wp-image-2161\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2-300x225.jpg\" alt=\"storage 2 image\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2-300x225.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2-768x576.jpg 768w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2-1024x768.jpg 1024w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2-660x495.jpg 660w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2017\/06\/storage_2.jpg 1600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Sorry about that first image. Notice that our second image listing storage\/shared puts up a directory tree which looks just like the default file manager listing. If you are willing to squint at the first image you will notice that <strong>storage\/external-2<\/strong> is the thumb drive. I presume <strong>storage\/external-1<\/strong> is the micro SD card. Yes, we find our quick reference file in storage\/shared\/Android\/data\/com.termux\/files.<\/p>\n<h2>No Access to \/tmp<\/h2>\n<p style=\"text-align: justify;\">We now have to discuss a rather annoying thing. The \/tmp directory. You don&#8217;t have access to it. This meant I had to hack the import script I&#8217;ve used for years (decades?)<\/p>\n<pre>declare -i tax_year=1992\ndeclare -i current_year=$(date +%Y)+1\n\nexport PGUSER=roland\nexport PGPASSWORD=spooge_1\n\n<strong>if [ -z $TMPDIR]; then<\/strong>\n<strong>\u00a0\u00a0\u00a0 export TMPDIR=\/tmp<\/strong>\n<strong>fi<\/strong>\n\necho \"Current Year\u00a0 $current_year\"\n\n#\n#\u00a0\u00a0 With needed parameters setup and environment verified\n#\u00a0\u00a0 delcare all functions which will be used later on.\n#\nfunction tax_db_open_error {\n\u00a0\u00a0\u00a0 echo \"creating database\"\n\u00a0\u00a0\u00a0 createdb\u00a0 tax_$tax_year 'Tax information for $tax_year'\n\u00a0\u00a0\u00a0 psql\u00a0 -q -d tax_$tax_year -f create_tax_tables.sql\n\u00a0\u00a0\u00a0 echo \"database created\"\n}\n\necho \";;;;;\"\necho \";;;;;\"\necho \";;;;;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Copying csv files to <strong>$TMPDIR<\/strong>\"\necho \";;;;;\"\necho \";;;;;\"\ncp -f -v ~\/postgres_tax_backups\/*.csv\u00a0 <strong>$TMPDIR<\/strong>\nchmod a+r <strong>\"$TMPDIR\"<\/strong>\/*.csv\n\nwhile [ $tax_year -lt $current_year ]\ndo\n\u00a0\u00a0\u00a0 echo \";;;;;\"\n\u00a0\u00a0\u00a0 echo \";;;;;\"\n\u00a0\u00a0\u00a0 echo \";;;;;\u00a0\u00a0 Loading $tax_year\"\n\u00a0\u00a0\u00a0 echo \";;;;;\"\n\u00a0\u00a0\u00a0 echo \";;;;;\"\n\n\u00a0\u00a0\u00a0 old_error_trace=$(set +o | grep errtrace)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # keep track of old error traps\n\u00a0\u00a0\u00a0 set -o errtrace\n\u00a0\u00a0\u00a0 trap tax_db_open_error ERR\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # setup trap for open error\n\n\u00a0\u00a0\u00a0 echo \"creating tax tables\"\n\u00a0\u00a0\u00a0 psql\u00a0 -q -f create_tax_tables.sql tax_$tax_year\n\n\u00a0\u00a0\u00a0 trap - ERR\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # reset ERR trap\n\u00a0\u00a0 \u00a0\n\u00a0\u00a0\u00a0 echo \"copy payees from '<strong>$TMPDIR<\/strong>\/tax_${tax_year}_payees.csv' csv header;\" &gt; import_it.sql\n\u00a0\u00a0\u00a0 echo \"copy categories from '<strong>$TMPDIR<\/strong>\/tax_${tax_year}_categories.csv' csv header;\" &gt;&gt; import_it.sql\n\u00a0\u00a0\u00a0 echo \"copy expenses from '<strong>$TMPDIR<\/strong>\/tax_${tax_year}_expenses.csv' csv header;\" &gt;&gt; import_it.sql\n\u00a0\u00a0\u00a0 echo \"\u00a0\u00a0 Extracting ...\u00a0 $tax_year\"\n\u00a0\u00a0\u00a0 psql\u00a0 -q -f import_it.sql tax_$tax_year\n\u00a0\u00a0\u00a0 psql\u00a0 -q -d tax_$tax_year -c \"select setval( 'expenses_tran_id_seq', (select max(tran_id) from expenses)+100);\"\n\n\u00a0\u00a0\u00a0 let \"tax_year += 1\"\ndone<\/pre>\n<p style=\"text-align: justify;\">Basically I had to add that if statement to force an exported definition of TMPDIR if one didn&#8217;t exist because that is the environment variable termux provides the shell.<\/p>\n<h2>Success!<\/h2>\n<p style=\"text-align: justify;\">After everything imports I can run a little query to show my data.<\/p>\n<pre>$\n$ psql tax_1998\npsql (9.6.3)\nType \"help\" for help.\n\ntax_1998=# select * from expenses limit 10;\n\u00a0tran_id |\u00a0 tran_dt\u00a0\u00a0 |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 category\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | tax_ded |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 payee\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | amount\n---------+------------+---------------------------+---------+----------------------------------------------------+--------\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1 | 1998-01-02 | AUTOMOBILE FUEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Shell Oil\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0 6.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2 | 1998-01-02 | CLIENT ENTERTAINMENT\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Tub House Ltd.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 30.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 | 1998-01-02 | AUTOMOBILE FUEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Shell Oil\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 15.50\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4 | 1998-01-03 | MEDICAL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Glen Ellyn Clinic\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 20.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 5 | 1998-01-03 | AUTOMOBILE FUEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Shell Oil\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0 5.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6 | 1998-01-04 | CLIENT ENTERTAINMENT\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Pockets\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 50.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7 | 1998-01-05 | AUTOMOBILE FUEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Shell Oil\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 10.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 | 1998-01-09 | RENT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Telmark Inc.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | 277.00\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9 | 1998-01-09 | BOOKS\/EDUCATION\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Amazon.com, Inc.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 56.85\n\u00a0\u00a0\u00a0\u00a0\u00a0 10 | 1998-01-09 | AUTOMOBILE FUEL\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | t\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Shell Oil\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0 12.00\n(10 rows)\n\ntax_1998=#<\/pre>\n<p>\u00a0<\/p>\n<p style=\"text-align: justify;\">So, we now know PostgreSQL runs under termux. It doesn&#8217;t automatically start because they don&#8217;t have services. It is also highly unlikely a true Android app running in the GUI will be able to find the database listening on the correct port but that is a test for another day.<\/p>\n<p style=\"text-align: justify;\">Our next step is to install PostgreSQL on my Raspberry Pi, do the data import, perform the query, then compile the current application as-is to make sure everything runs there as expected.<\/p>\n<p style=\"text-align: justify;\">After that we redevelop the app in a more Qt 5.x consistent manner because after 10+ years many of the bugs I coded around have been fixed and because I know more now. I just never had a reason to rewrite it because it always worked. Then we can foray into cross compiling.<\/p>\n<p>\u00a0<a href=\"http:\/\/feedshark.brainbliss.com\">Feed Shark<\/a><\/p>\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-4\/\">&lt;Previous-Part<\/a>    <a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-6\/\">Next-Part><\/a><\/p>\n\n\n\n<p>Related posts:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.theminimumyouneedtoknow.com\/qt_book.html\">QT Database book<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.theminimumyouneedtoknow.com\/agile_book.html\">AGILE book<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qdebug-output\/\">Where Did My QDebug Output Go?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/moc-parse-error-at-std\/\">MOC Parse Error at &#8220;std&#8221;<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/kde-neon-distcc-and-qt\/\">KDE Neon &#8211; Distcc and Qt<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/copperspice-and-diamond\/\">CopperSpice Experiments<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/qtcreator-no-qmlscene-installed\/\">QtCreator &#8211; No qmlScene installed<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/so-you-cant-get-your-qt-models-to-work-with-qml\/\">So You Can&#8217;t Get Your Models to Work with QML?<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Copying from a thumb drive into our Termux world takes a bit of doing. It&#8217;s actually yet another &#8220;expert friendly&#8221; part of Android. If you don&#8217;t already know where things go you can&#8217;t find them. I had an 8 Gig thumb drive in my Android 2 in 1 while doing the other Termux stuff. I mention that because I don&#8217;t know if the Android device did it or running the program to make storage available &hellip; <a title=\"How Far We&#8217;ve Come &#8211; Pt. 5\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/\"><span class=\"screen-reader-text\">How Far We&#8217;ve Come &#8211; Pt. 5<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":4347,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1309,3,4],"tags":[1388,1368,1387,1267,1382,1386,1389],"class_list":["post-2148","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-experience","category-information-technology","category-thank-you-sir-may-i-have-another","tag-tmp","tag-android","tag-data-copy","tag-jed","tag-termux","tag-thumb-drive","tag-tmpdir","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Far We&#039;ve Come - Pt. 5 &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"Android just wasn&#039;t meant to be a real operating system. Will be interesting to see how long Google can keep on life support.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Far We&#039;ve Come - Pt. 5 &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Android just wasn&#039;t meant to be a real operating system. Will be interesting to see how long Google can keep on life support.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-08T00:27:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-13T20:11:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"How Far We&#8217;ve Come &#8211; Pt. 5\",\"datePublished\":\"2017-06-08T00:27:59+00:00\",\"dateModified\":\"2021-02-13T20:11:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/\"},\"wordCount\":1002,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Lenovo-ThinkCentre-ports.jpeg\",\"keywords\":[\"\\\/tmp\",\"Android\",\"data copy\",\"jed\",\"Termux\",\"thumb drive\",\"TMPDIR\"],\"articleSection\":[\"Experience\",\"Information Technology\",\"Thank You Sir May I Have Another\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/\",\"name\":\"How Far We've Come - Pt. 5 &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Lenovo-ThinkCentre-ports.jpeg\",\"datePublished\":\"2017-06-08T00:27:59+00:00\",\"dateModified\":\"2021-02-13T20:11:27+00:00\",\"description\":\"Android just wasn't meant to be a real operating system. Will be interesting to see how long Google can keep on life support.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Lenovo-ThinkCentre-ports.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Lenovo-ThinkCentre-ports.jpeg\",\"width\":1920,\"height\":1440},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/how-far-weve-come-pt-5\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Far We&#8217;ve Come &#8211; Pt. 5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Far We've Come - Pt. 5 &#8211; Logikal Blog","description":"Android just wasn't meant to be a real operating system. Will be interesting to see how long Google can keep on life support.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/","og_locale":"en_US","og_type":"article","og_title":"How Far We've Come - Pt. 5 &#8211; Logikal Blog","og_description":"Android just wasn't meant to be a real operating system. Will be interesting to see how long Google can keep on life support.","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/","og_site_name":"Logikal Blog","article_published_time":"2017-06-08T00:27:59+00:00","article_modified_time":"2021-02-13T20:11:27+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg","type":"image\/jpeg"}],"author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"How Far We&#8217;ve Come &#8211; Pt. 5","datePublished":"2017-06-08T00:27:59+00:00","dateModified":"2021-02-13T20:11:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/"},"wordCount":1002,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg","keywords":["\/tmp","Android","data copy","jed","Termux","thumb drive","TMPDIR"],"articleSection":["Experience","Information Technology","Thank You Sir May I Have Another"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/","name":"How Far We've Come - Pt. 5 &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#primaryimage"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg","datePublished":"2017-06-08T00:27:59+00:00","dateModified":"2021-02-13T20:11:27+00:00","description":"Android just wasn't meant to be a real operating system. Will be interesting to see how long Google can keep on life support.","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#primaryimage","url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg","contentUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2021\/01\/Lenovo-ThinkCentre-ports.jpeg","width":1920,"height":1440},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/how-far-weve-come-pt-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"How Far We&#8217;ve Come &#8211; Pt. 5"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2148"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/2148\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media\/4347"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}