Stata syntax highlighting in GEdit

Stata.lang file goes in ~/.local/share/gtksourceview-3.0/language-specs

Posted in Blog | Tagged , , , , | Leave a comment

Hundreds of datasets from libraries, archives, and museums

Douglas McCarthy and Andrea Wallace produced a survey of data access policies and data sources.  It’s in Google Docs and called the Survey of GLAM open access policy and practice [2.0]. It’s an excellent resource with the license terms and web locations of hundreds of datasets from libraries, archives, and museums.

image

Posted in Blog | Tagged , | Leave a comment

Nag Screens Removed 1.0.0.54

Meal Plan Grocery List now has no Nag Screens.  It is fully functional.  This may change in the future with an update, but not at the present time.  More recipes are on their way into the app.    This will allow complete testing of the software.

· Updated Release Notes menu item to an updated URL.

Posted in Meal Plan and Grocery List release notes | Tagged , , | Leave a comment

Updated Installer for 1.0.0.53

The installer has been updated for a smaller download.  It will now always pull the latest installation files from the website.
https://www.robertknight.io/meal-plan-and-grocery-list-1-0-0-53/ contains the download file.

Posted in Meal Plan and Grocery List release notes | Tagged , , , | Leave a comment

CentOS 7 Repository for Owncloud Desktop Client

CentOS 7 Repository for OwnCloud desktop sync client is online. This application works well with Nextcloud.  Use (k)statusnotifieritem/appindicator extension and Topicons plus extensions in Gnome to ensure the icon works as it should.

The Url is https://robertknight.io/el7/robertknightio.repo

To add the repo, type the following command:

yum-config-manager –add-repo https://robertknight.io/el7/robertknightio.repo

Posted in Blog | Tagged , , , , | Leave a comment

Meal Plan and Grocery List 1.0.0.51

New ability: Scroll through recipes alphabetically

image

Until now, click the circular recipe button would list recipes in a non-alphabetical order.  Now clicking the green button will scroll through recipes in alphabetical order.  The Circle button still reloads correctly.  The circle buttons select within the meatless/no-dairy criteria, while the green scroll button scrolls through all recipes in alphabetical order.

Visit the shareware page or download below.

https://www.robertknight.io/mpgl/00/MealPlanAndGroceryList-1.0.0.52.zip

Posted in Meal Plan and Grocery List release notes | Tagged , , | Leave a comment

Desktop Shortcuts for Kids 5.2.1

This is the VBscript for shortcuts on Windows 10 that open in Edge browser.

' Desktop Shortcuts for Kids, for Windows 10
' Robert Knight
' bobby@rdknight.net
' version 5 - July 2017
' ----------------------------------------------------------' 
Option Explicit

Dim wscript_shell_object
Dim shortcut_working_directory
Dim shortcut_save_location
Dim shortcut_file_object
Dim EXEC
Dim ICON
Dim DESCRIPTION

Set wscript_shell_object = CreateObject("WScript.Shell")
shortcut_working_directory ="C:\Windows"
shortcut_save_location = wscript_shell_object.SpecialFolders("Desktop")
Set shortcut_file_object = wscript_shell_object.CreateShortcut(shortcut_save_location & "\" & DESCRIPTION &

CreateDesktopShortcut "microsoft-edge:https://www.amazon.com/gp/video/storefront/ref=sv_atv_3?ie=UTF8&merchId=primevideokids", _
"https://www.amazon.com/favicon.ico", shortcut_working_directory, "Amazon Kid's Video", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.abcmouse.com", _
"https://www.abcmouse.com/favicon.ico", shortcut_working_directory, "ABC Mouse", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.nickjr.com", _
"http://www.nickjr.com/favicon.ico", shortcut_working_directory, "Nick Jr.", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.cbc.ca/kidscbc2/", _
"http://www.cbc.ca/favicon.ico", shortcut_working_directory, "CBC 2", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.sproutonline.com", _
"http://www.sproutonline.com/sites/sprout/themes/sprout_twig/images/favicon.ico", shortcut_working_directory, "Sprout", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.youtube.com", _
"http://youtube.com/favicon.ico", shortcut_working_directory, "YouTube", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:https://www.youtube.com/user/HobbyKidsTV", _
"http://icons.veryicon.com/ico/Internet%20%26%20Web/Black%20and%20White%20Social/youtube.ico", shortcut_working_directory, "Hobby Kids TV", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:https://www.youtube.com/user/FGTeeV", _
"http://icons.veryicon.com/ico/Internet%20%26%20Web/Elegant%20Social%20Media/youtube.ico", shortcut_working_directory, "FGTeeV", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

CreateDesktopShortcut "microsoft-edge:http://www.starfall.com/", _
"http://www.starfall.com/favicon.ico", shortcut_working_directory, "Starfall", wscript_shell_object, shortcut_save_location, _
shortcut_file_object

sub CreateDesktopShortcut(EXEC, ICON, shortcut_working_directory, DESCRIPTION, wscript_shell_object, shortcut_save_location, shortcut_file_object)
    Set shortcut_file_object = wscript_shell_object.CreateShortcut(shortcut_save_location & "\" & DESCRIPTION & ".lnk")
    shortcut_file_object.Description = DESCRIPTION
    shortcut_file_object.IconLocation = ICON
    shortcut_file_object.TargetPath = EXEC
    shortcut_file_object.WindowStyle = 3
    shortcut_file_object.WorkingDirectory = shortcut_working_directory
    shortcut_file_object.Save
End sub



WScript.Quit


Posted in Blog | Tagged , , | Leave a comment

Data to S3 with command line and encryption

This article details how to archive folders with their contents, encrypt the archives, upload them to S3, and remove the local copies.  A typical usage might be to archive the version of a website that I have with twenty thousand files on a certain date before changing the folder layouts of images for ten thousand images.

With about 345 GB of data in S3, I run into some specific situations that merit custom scripts to solve issues. One of these is that I like to create a snapshot of a folder at specific point in time before making adjustments to the scripts and software within. I also do this for documents and other folders so that a point-in-time backup exists. This way, if I decide I want a previous folder structure and content, I can just unzip the archive I created. The purpose of these backups is for a point-in-time previous version of a website or web-application in case I change my mind later on. They are rarely used. I need to copy a folder, and all of it’s contents recursively, and save the permissions, such as the execute permission on scripts. Then, to take that zip file and encrypt it using AES256 and upload it to an S3 bucket, and then delete the local zip file and encrypted file to free the disk space. The second component is a decryption script for when I download such a file and want to extract it.

There are some factors to consider, and one is storage costs. Encrypting the archives adds about 30% to the file size. S3 has an automatic transition to a lower cost storage tier available, so I set that on for the backup to use for the longer term storage.  The Standard Information Assurance tier is just over a penny per GB per month.  The second major consideration is security.  Amazon offers encryption of the S3 buckets and their contents using keys managed by Amazon. I turn this on.  My concern is hackers grabbing the data using stolen keys, and not avoiding the NSA or other government agencies.  If anyone will have Quantum computers, it will be the NSA, so if they want the data, they will get it.  With this in mind, I chose symmetric encryption and to use OpenSSL for the encryption.  GnuPG is a very popular and recommended application for this, and there are arguments against using OpenSSL for this purpose.  Ultimately it came down to the fact that the objective is using AES encryption with a password that can be passed in scripts rather than using public and private keys.  It may be a risk that Amazon’s encryption keys could be compromised allowing users to read the data. It is also likely that they have intrusion detection systems which would detect hackers attempting to brute force the passwords on the files within an S3 bucket.  It may also be that attackers downloaded all the files and attempt to brute force them locally.  I plan more details on this choice in a later blog post.

The choices are Zip file format so that the archives can be viewed on multiple platforms with ease, *nix file permission preservation on Linux, and AES encryption prior to upload, and decryption when the file is downloaded. To accomplish this, I created a folder in the home directory called Archives.  This Archives folder is where the zip files are created.  The next step is the creation of two scripts. I called these scrypts myencrypt and mydecrypt.  I store these in the home folder in a subdirectory called Scripts.  The next piece is two functions within the .bashrc file so that I can use the whole process at the command line.

myencrypt

#!/usr/bin/env bash

# $1 = input file
# $2 = output file
openssl enc -aes-256-cbc -salt -a -p -in $1 -out $1.encrypted -k “some-cool-password”

mydecrypt

#!/usr/bin/env bash

# $1 = input file
# $2 = output file
openssl enc -aes-256-cbc -a -d -p -in $1 -out $2 -k “some-cool-password”

bashrc, ltsarchive()

ltsarchive() { timestamp=$(date +”%Y-%m-%d-%H%M%p”) && read -p “Enter folder name: ” name && zip -rv9 ~/Archives/$name-$timestamp.zip $name && ~/Scripts/myencrypt ~/Archives/$name-$timestamp.zip && aws s3 cp ~/Archives/$name-$timestamp.zip.encrypted s3://bucket-name/long-term-archives/$name-$timestamp.zip.encrypted && rm -f ~/Archives/$name-$timestamp.zip && rm -f ~/Archives/$name-$timestamp.zip.encrypted; }

bashrc, ltcsdecrypt()

ltsdecrypt() { filepath=$(pwd) && read -p “Enter file name: ” name && newname=${name::-9} && ~/Scripts/mydecrypt $filepath/$name $filepath/$newname; }

For example, I would go into a directory and want to archive the Templates directory and all the contents.  I would type ltsarchive and then the shell would prompt me asking for the name of the folder.  I would then type Templates and the function runs and first zips the Templates folder and subcontents into ~/Archives/Templates-2018-07-23-2037PM.zip.  Then, those files are passed to OpenSSL which encrypts that file to Templates-2018-07-23-2037PM.zip.encrypted.  Then, that file uploads to the long term storage folder in the specified S3 bucket.  After that, the zip file and the .encrypted file are deleted from ~/Archives/.  Upon checking the S3 storage bucket, Templates-2018-07-23-2037PM.zip.encrypted appears.

Then, the files can be downloaded via the web browser or through the command line interface at a later time.  To decrypt Templates-2018-07-23-2037PM.zip.encrypted, we go into the directory at the shell and type ltsdecrypt.  It asks for the file name, so we type Templates-2018-07-23-2037PM.zip.encrypted.  It decryptes the file leaves Templates-2018-07-23-2037PM.zip in the same folder as the downloaded file.  These scripts can then be used in automation.

 

Posted in Blog | Tagged , , , , , , , , , , , | Leave a comment

Better Update Browser 1.1.1.2

After clicking “Scan” the software will appear to hang for a long time.  This is normal.  For future development, I hope to add a status indicator that shows what is going on.  For now, let it sit there hung until results appear in the list.  After some time, the list will populate.

image

Better-Update-Browser-1.1.1.1 with update capability.

Better Update Browser-portable portable application only, without update capability.

Posted in Better Updates Browser release notes | Tagged , , , | Leave a comment

Osmhic Calculator 2.2 initial release

Osmhic 2.2 release notes:
Added Purchase request screen and modified graphical interface to show all information regardless of version. This converts the application to fully-featured shareware instead of a demo.

image

Download Osmhic-2.2.0.1 and run the setup program.

Posted in Osmhic Calculator release notes | Tagged , , , , , , | Leave a comment