<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
    <title>Mr John Wiseman</title>
    <link>https://mrjohnwiseman.com</link>
    <description>A blog about software development, linux, and other tech topics.</description>
    
    <item>
        <title>How to use IR Emitters on Linux</title>
        <link>https://mrjohnwiseman.com/blog/enable_ir_emitter_linux</link>
        <description>I wanted to use Face unlock on Linux and receive all the same features as Windows Hello. Using howdy and this guide, you can!</description>
        <pubDate>Wed, 10 Mar 2021 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/enable_ir_emitter_linux</guid>
    </item>
    
    <item>
        <title>Resolve Howdy exception when adding your face</title>
        <link>https://mrjohnwiseman.com/blog/howdy_add_face_error</link>
        <description>I wanted to setup face unlock on Linux with my new Dell XPS 13. This is how you can set it up for yourself!</description>
        <pubDate>Fri, 05 Mar 2021 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/howdy_add_face_error</guid>
    </item>
    
    <item>
        <title>How to reset the Windows password of a locked computer</title>
        <link>https://mrjohnwiseman.com/blog/reset_windows_password_of_another_computer</link>
        <description>I recently found myself locked out of my old school laptop. I did not have the windows password or the ability to login to any account on the machine.</description>
        <pubDate>Fri, 18 Dec 2020 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/reset_windows_password_of_another_computer</guid>
    </item>
    
    <item>
        <title>How to fix ReferenceError: globalThis is not defined</title>
        <link>https://mrjohnwiseman.com/blog/how_to_fix_referenceError_globalthis_is_not_defined</link>
        <description>"ReferenceError: globalThis is not defined" is an error produced by some newer JavaScript libraries as they access globalThis.</description>
        <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_fix_referenceError_globalthis_is_not_defined</guid>
    </item>
    
    <item>
        <title>How to fix refreshing on a new tab extension for Google Chrome</title>
        <link>https://mrjohnwiseman.com/blog/refresh_new_tab_in_chrome_extension</link>
        <description>By default if you try to refresh custom new tab in a Google Chrome extension, you are met with a file not found error.</description>
        <pubDate>Thu, 10 Dec 2020 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/refresh_new_tab_in_chrome_extension</guid>
    </item>
    
    <item>
        <title>The story of my first Chrome Extension and its tragic demise</title>
        <link>https://mrjohnwiseman.com/blog/the_story_of_my_first_chrome_extension</link>
        <description>I had the idea in my mind that I wanted to create and have my own chrome extension for a few years now.</description>
        <pubDate>Thu, 07 Nov 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/the_story_of_my_first_chrome_extension</guid>
    </item>
    
    <item>
        <title>Lazy load services using Socket Activation</title>
        <link>https://mrjohnwiseman.com/blog/lazy_load_services_using_socket_activation</link>
        <description>Lazy loading services allows services to only be started once they are needed.</description>
        <pubDate>Fri, 05 Jul 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/lazy_load_services_using_socket_activation</guid>
    </item>
    
    <item>
        <title>How to make a div fit the size of its children</title>
        <link>https://mrjohnwiseman.com/blog/make_a_parent_div_fit_children</link>
        <description>You can make a div fit the size of its children by using `display: inline-block`</description>
        <pubDate>Thu, 20 Jun 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/make_a_parent_div_fit_children</guid>
    </item>
    
    <item>
        <title>How to pause a script in Bash</title>
        <link>https://mrjohnwiseman.com/blog/sleep_a_script_in_bash</link>
        <description>In order to make a script in Bash pause, sleep or wait for a period of time you need to use the command `sleep`</description>
        <pubDate>Sun, 16 Jun 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/sleep_a_script_in_bash</guid>
    </item>
    
    <item>
        <title>Start a new Flutter project and Connect it to Firebase</title>
        <link>https://mrjohnwiseman.com/blog/start_new_project_and_connect_to_firebase</link>
        <description>It can be tricky to get a new Flutter project to connect to Firebase and work. Version mismatches can be a real killer!</description>
        <pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/start_new_project_and_connect_to_firebase</guid>
    </item>
    
    <item>
        <title>Use promises in Google Apps Scripts</title>
        <link>https://mrjohnwiseman.com/blog/how_to_use_promises_in_google_app_script</link>
        <description>To use the latest es6 Promises in google app scripts it is very trivial to do so.</description>
        <pubDate>Mon, 15 Apr 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_use_promises_in_google_app_script</guid>
    </item>
    
    <item>
        <title>List all installed apt packages in Linux</title>
        <link>https://mrjohnwiseman.com/blog/how_to_list_install_packages_in_linux</link>
        <description>To list all the installed apt in linux you can use `apt list --installed`.</description>
        <pubDate>Tue, 02 Apr 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_list_install_packages_in_linux</guid>
    </item>
    
    <item>
        <title>Get the last element of an array in TypeScript</title>
        <link>https://mrjohnwiseman.com/blog/how_to_get_the_last_array_element_using_typescript</link>
        <description>There are a few ways you can get the last element of an array in typescript</description>
        <pubDate>Fri, 22 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_get_the_last_array_element_using_typescript</guid>
    </item>
    
    <item>
        <title>My personal rules of programming</title>
        <link>https://mrjohnwiseman.com/blog/my_rules_of_programing</link>
        <description>These are some rules I try and stick to while programming. I suggest you have a think about adopting these as I feel they are great values to code by.</description>
        <pubDate>Thu, 21 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/my_rules_of_programing</guid>
    </item>
    
    <item>
        <title>Keep phone unlocked while USB Debugging</title>
        <link>https://mrjohnwiseman.com/blog/keep_phone_unlocked_while_developing</link>
        <description>It is a real time saver to keep your phone unlocked while developing an app. 'Stay awake mode' allows you to keep your phone unlocked.</description>
        <pubDate>Sat, 02 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/keep_phone_unlocked_while_developing</guid>
    </item>
    
    <item>
        <title>Run the application you are developing on your device</title>
        <link>https://mrjohnwiseman.com/blog/run_the_app_you_are_developing_on_your_device</link>
        <description>There are a few steps and potential gotchas in setting up application debugging on your local device.</description>
        <pubDate>Sat, 02 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/run_the_app_you_are_developing_on_your_device</guid>
    </item>
    
    <item>
        <title>How to request different scopes on a Google Apps Script</title>
        <link>https://mrjohnwiseman.com/blog/how_to_request_scopes_on_google_apps_script</link>
        <description>To request scopes in a Google Apps Script you need to add them to the appscript.json file.</description>
        <pubDate>Sat, 02 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_request_scopes_on_google_apps_script</guid>
    </item>
    
    <item>
        <title>IF/ELSE syntax in LUA</title>
        <link>https://mrjohnwiseman.com/blog/using_an_if_else_statement_in_lua</link>
        <description>If/ If Else is an integral function in any program or script. This is the syntax for such statement in LUA.</description>
        <pubDate>Mon, 18 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/using_an_if_else_statement_in_lua</guid>
    </item>
    
    <item>
        <title>How to make xscreensaver stop from promiting for user input</title>
        <link>https://mrjohnwiseman.com/blog/how_to_stop_xscreensaver_prompting_for_input</link>
        <description>Sometimes xscreensaver will prompt the user to enter their password thinking they are trying to unlock the computer.</description>
        <pubDate>Mon, 18 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_stop_xscreensaver_prompting_for_input</guid>
    </item>
    
    <item>
        <title>How to show the git branch in Fish</title>
        <link>https://mrjohnwiseman.com/blog/show_git_branch_while_using_fish_terminal</link>
        <description>Show the git branch on the end of the terminal prompt is a really useful modification as you can always see the branch you are on!</description>
        <pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/show_git_branch_while_using_fish_terminal</guid>
    </item>
    
    <item>
        <title>How to find the current git user</title>
        <link>https://mrjohnwiseman.com/blog/show_the_current_git_user</link>
        <description>To find the current git user you can use the following git command</description>
        <pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/show_the_current_git_user</guid>
    </item>
    
    <item>
        <title>Install fish terminal and set as the default terminal</title>
        <link>https://mrjohnwiseman.com/blog/how_to_install_fish_terminal</link>
        <description>Fish terminal is a great terminal. I was initially heisitant to try it but cnce I gave it a go I really liked it.</description>
        <pubDate>Fri, 15 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_install_fish_terminal</guid>
    </item>
    
    <item>
        <title>Get additional lines before and after grep match</title>
        <link>https://mrjohnwiseman.com/blog/how_to_grep_lines_before_and_after_match</link>
        <description>To get additional lines before and after the grep match you can add the arg **-n**</description>
        <pubDate>Mon, 11 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_grep_lines_before_and_after_match</guid>
    </item>
    
    <item>
        <title>How to iterate over a map in Typescript</title>
        <link>https://mrjohnwiseman.com/blog/how_to_iterate_over_a_map_using_typescript</link>
        <description>You can iterate over a map using the `forEach` method.</description>
        <pubDate>Invalid Date</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_iterate_over_a_map_using_typescript</guid>
    </item>
    
    <item>
        <title>SQL INSERT, UPDATE, DELETE like a pro with RETURNING</title>
        <link>https://mrjohnwiseman.com/blog/insert_like_a_pro</link>
        <description>You would recognise the following as a pretty typical `SQL` insert query with an extra line unlocking a powerful feature.</description>
        <pubDate>Fri, 03 Apr 2020 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/insert_like_a_pro</guid>
    </item>
    
    <item>
        <title>Efficiently: The Chrome extension to save your time!</title>
        <link>https://mrjohnwiseman.com/blog/efficiently_app</link>
        <description>Do you ever find yourself unconsciously opening webites out of habbit?</description>
        <pubDate>Sat, 28 Mar 2020 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/efficiently_app</guid>
    </item>
    
    <item>
        <title>Disable Hibernation on Windows to speed up your pc</title>
        <link>https://mrjohnwiseman.com/blog/disable_hibernation_on_windows</link>
        <description>Having Windows hibernation on is a big killer due to the `Hiberfil.sys` file.</description>
        <pubDate>Mon, 01 Jul 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/disable_hibernation_on_windows</guid>
    </item>
    
    <item>
        <title>Clear up unused space in docker</title>
        <link>https://mrjohnwiseman.com/blog/clean_up_unused_docker_space</link>
        <description>Every time you run `docker compile` on a Dockerfile a container is created, taking up space on your computer.</description>
        <pubDate>Thu, 13 Jun 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/clean_up_unused_docker_space</guid>
    </item>
    
    <item>
        <title>Enable the caching of Images in Google Cloud Storage Buckets</title>
        <link>https://mrjohnwiseman.com/blog/enable_caching_of_image_in_google_storage</link>
        <description>To enable the caching of images in Google Cloud Storage buckets you need to set the file or bucket to public and set the `Cache-Control` attribute.</description>
        <pubDate>Mon, 22 Apr 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/enable_caching_of_image_in_google_storage</guid>
    </item>
    
    <item>
        <title>Fix the routing while using Firebase hosting</title>
        <link>https://mrjohnwiseman.com/blog/fix_firebase_hosting_routing</link>
        <description>To fix the routing you need to include the rewrites section in `firebase.json`</description>
        <pubDate>Sun, 07 Apr 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/fix_firebase_hosting_routing</guid>
    </item>
    
    <item>
        <title>Get IP Address in Linux</title>
        <link>https://mrjohnwiseman.com/blog/get_the_ip_address_in_linux</link>
        <description>To get the IP Address in linux you can use `ifconfig` or `hostname -I`</description>
        <pubDate>Fri, 05 Apr 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/get_the_ip_address_in_linux</guid>
    </item>
    
    <item>
        <title>Connect Bitbucket Pipelines with Google Source Repositories</title>
        <link>https://mrjohnwiseman.com/blog/connect_bitbucket_pipeline_with_google_source_repo</link>
        <description>To allow Bitbucket Pipelines access to your personal Google Source Repositories you need to do a few steps.</description>
        <pubDate>Mon, 25 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/connect_bitbucket_pipeline_with_google_source_repo</guid>
    </item>
    
    <item>
        <title>Calculate the remaining scroll distance in Angular</title>
        <link>https://mrjohnwiseman.com/blog/how_to_calculate_the_remaining_page_scroll</link>
        <description>To Calculate the remaining scrollbar distance in Angular you need to perform some simple calculations on various window and document variables.</description>
        <pubDate>Sun, 24 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_calculate_the_remaining_page_scroll</guid>
    </item>
    
    <item>
        <title>How query the Firebase Firestore in Angular</title>
        <link>https://mrjohnwiseman.com/blog/get_firestore_document_in_angular</link>
        <description>To query the firebase firestore in angular you can do the following</description>
        <pubDate>Wed, 20 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/get_firestore_document_in_angular</guid>
    </item>
    
    <item>
        <title>Get the Debug Certificate SHA1</title>
        <link>https://mrjohnwiseman.com/blog/get_the_sha1_debug_certificate</link>
        <description>How to get the debug certificate SHA1</description>
        <pubDate>Sat, 02 Mar 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/get_the_sha1_debug_certificate</guid>
    </item>
    
    <item>
        <title>AngularJS component lifecycle cheatsheet</title>
        <link>https://mrjohnwiseman.com/blog/angularjs_component_lifecycle</link>
        <description>These are the lifecycles to remember in AngularJS.</description>
        <pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/angularjs_component_lifecycle</guid>
    </item>
    
    <item>
        <title>How to use ng-repeat in AngularJS</title>
        <link>https://mrjohnwiseman.com/blog/angularjs_ng-repeat_cheatsheet</link>
        <description>Here is a quick example of ng-repeat usage and implementation</description>
        <pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/angularjs_ng-repeat_cheatsheet</guid>
    </item>
    
    <item>
        <title>Using ng-switch in AngularJS</title>
        <link>https://mrjohnwiseman.com/blog/angularjs_ng-switch_cheatseet</link>
        <description>ngSwitch is the equivalent of a `switch` in java or other modern languages</description>
        <pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/angularjs_ng-switch_cheatseet</guid>
    </item>
    
    <item>
        <title>How to make an element autoexpand right to left in HTML</title>
        <link>https://mrjohnwiseman.com/blog/how_to_autoexpand_right_to_left</link>
        <description>Making an element expand the opposite direction is a useful html trick to remember</description>
        <pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_autoexpand_right_to_left</guid>
    </item>
    
    <item>
        <title>Create an Observable using RxJS</title>
        <link>https://mrjohnwiseman.com/blog/how_to_create_a_rxjs_observable</link>
        <description>Creating an Observable in different ways is sometimes required based on the situation at hand. This is all you need to know!</description>
        <pubDate>Wed, 27 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_create_a_rxjs_observable</guid>
    </item>
    
    <item>
        <title>How to alias a command in git</title>
        <link>https://mrjohnwiseman.com/blog/how_to_alias_a_command_in_git</link>
        <description>Aliasing a command is very useful as it lets you shortcut a normal workflow and work more efficiently!</description>
        <pubDate>Wed, 20 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_alias_a_command_in_git</guid>
    </item>
    
    <item>
        <title>How to add environment path to Fish terminal</title>
        <link>https://mrjohnwiseman.com/blog/add_environment_path_for_fish_terminal</link>
        <description>This is how you add an environment path to Fish terminal</description>
        <pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/add_environment_path_for_fish_terminal</guid>
    </item>
    
    <item>
        <title>How to add keybindings in fish</title>
        <link>https://mrjohnwiseman.com/blog/adding_keybindings_to_fish_terminal</link>
        <description>Keybindings are really useful and save time.. this is how you utilize them in Fish terminal!</description>
        <pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/adding_keybindings_to_fish_terminal</guid>
    </item>
    
    <item>
        <title>How to make tab autocomplete in fish terminal</title>
        <link>https://mrjohnwiseman.com/blog/how_to_make_tab_autocomplete_in_fish_terminal</link>
        <description>Making tab autocomplete in Fish terminal is a great customisation I strongly recommend as it allows you to press tab to complete the command.</description>
        <pubDate>Fri, 15 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_make_tab_autocomplete_in_fish_terminal</guid>
    </item>
    
    <item>
        <title>How to try Fish terminal temporarily</title>
        <link>https://mrjohnwiseman.com/blog/how_to_try_fish_terminal</link>
        <description>Trying fish without the burden of changing your current terminal is useful incase you do not like Fish terminal</description>
        <pubDate>Fri, 15 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_try_fish_terminal</guid>
    </item>
    
    <item>
        <title>Create a Bootable usb on Linux</title>
        <link>https://mrjohnwiseman.com/blog/how_to_create_bootable_usb_on_linux</link>
        <description>**WoeUSB** is the easiest and has the best compatibility for for all ISO's including Windows</description>
        <pubDate>Sun, 10 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_create_bootable_usb_on_linux</guid>
    </item>
    
    <item>
        <title>The difference between services and providers in AngularJS</title>
        <link>https://mrjohnwiseman.com/blog/the_difference_between_service_vs_provider_in_angularjs</link>
        <description>An easy way to remember it is that **Providers** are at config time (before the application has finished loading).</description>
        <pubDate>Sat, 02 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/the_difference_between_service_vs_provider_in_angularjs</guid>
    </item>
    
    <item>
        <title>Create a delay or sleep in JavaScript/TypeScript</title>
        <link>https://mrjohnwiseman.com/blog/how_to_delay_or_sleep_in_typescript</link>
        <description>To create a delay or sleep you use setTimeout. setTimeout is an essential function for every developer to memorise!</description>
        <pubDate>Fri, 01 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_delay_or_sleep_in_typescript</guid>
    </item>
    
    <item>
        <title>Why and How you should use a Sinon Spy</title>
        <link>https://mrjohnwiseman.com/blog/why_and_how_you_should_use_a_sinonjs_spy</link>
        <description>Sinon spys and stubs are very using in testing code. Spys and Stubs allow you to verify if a function was called and how it was called (args).</description>
        <pubDate>Fri, 01 Feb 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/why_and_how_you_should_use_a_sinonjs_spy</guid>
    </item>
    
    <item>
        <title>How to use Component/Directive's in AngularJS</title>
        <link>https://mrjohnwiseman.com/blog/angularjs_directive_component_cheatsheet</link>
        <description>Here is a easy way to create a component or directive in AngularJS. This is an AngularJS Essential!</description>
        <pubDate>Wed, 30 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/angularjs_directive_component_cheatsheet</guid>
    </item>
    
    <item>
        <title>Change the DNS in Linux</title>
        <link>https://mrjohnwiseman.com/blog/how_to_change_dns_in_linux</link>
        <description>Changing the DNS in linux is pretty useful to get past any censorship your isp has imposed on you. *For example thepiratebay.org, 4chan.org*</description>
        <pubDate>Tue, 29 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_change_dns_in_linux</guid>
    </item>
    
    <item>
        <title>Essential hotkeys for Google Chrome</title>
        <link>https://mrjohnwiseman.com/blog/essential_hotkeys_for_google_chrome</link>
        <description>Hotkeys in Google Chrome make your life way easier! All the power users of Google Chrome are using these hotkeys!</description>
        <pubDate>Tue, 22 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/essential_hotkeys_for_google_chrome</guid>
    </item>
    
    <item>
        <title>Setting the src for html elements</title>
        <link>https://mrjohnwiseman.com/blog/why_you_should_use_angular_ng-src</link>
        <description>Setting the **src** attribute for elements is different if you need to reference a AngularJS variable.</description>
        <pubDate>Mon, 21 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/why_you_should_use_angular_ng-src</guid>
    </item>
    
    <item>
        <title>Filtering an array with a function that returns a Promise</title>
        <link>https://mrjohnwiseman.com/blog/how_to_filter_an_array_with_function_returning_a_promise</link>
        <description>You cannot filter an array using `Array.prototype.filter` using a promise as the function is synchronous and therefore does not support promises.</description>
        <pubDate>Tue, 15 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_filter_an_array_with_function_returning_a_promise</guid>
    </item>
    
    <item>
        <title>Install kdeconnect on linux</title>
        <link>https://mrjohnwiseman.com/blog/control_linux_computer_using_kdeconnect</link>
        <description>KDEConnect is a very useful application which allows you to control your computer and send commands from your smartphone!</description>
        <pubDate>Sun, 13 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/control_linux_computer_using_kdeconnect</guid>
    </item>
    
    <item>
        <title>How to copy files in linux using CP</title>
        <link>https://mrjohnwiseman.com/blog/how_to_copy_files_in_cli_linux</link>
        <description>You can copy files in linux using CP</description>
        <pubDate>Sun, 13 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_copy_files_in_cli_linux</guid>
    </item>
    
    <item>
        <title>Ensure fonts render nicely in Google Chrome on Linux</title>
        <link>https://mrjohnwiseman.com/blog/how_to_fix_google_chrome_fonts_on_linux</link>
        <description>Be default linux does not tell fonts to render with antialiasing and other nice features.</description>
        <pubDate>Sun, 13 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_fix_google_chrome_fonts_on_linux</guid>
    </item>
    
    <item>
        <title>How to add numbers in bash</title>
        <link>https://mrjohnwiseman.com/blog/adding_numbers_in_bash</link>
        <description>To add a number you need to encase the expression in `$((` `))`</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/adding_numbers_in_bash</guid>
    </item>
    
    <item>
        <title>All Form Options for Angular Schema Form</title>
        <link>https://mrjohnwiseman.com/blog/all_angular_schema_form_options</link>
        <description>Here is a cheatsheet for every option for a form value in Angular Schema Form</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/all_angular_schema_form_options</guid>
    </item>
    
    <item>
        <title>How to nest commands in bash</title>
        <link>https://mrjohnwiseman.com/blog/bash_nested_commands_guide</link>
        <description>To use nested commands in bash you can surround the child command with backticks **\`** or **`${}`**</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/bash_nested_commands_guide</guid>
    </item>
    
    <item>
        <title>How to create an empty list in Java</title>
        <link>https://mrjohnwiseman.com/blog/best_way_to_create_a_empty_list_in_java</link>
        <description>Lists in Java are pretty powerful and this is how you create them</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/best_way_to_create_a_empty_list_in_java</guid>
    </item>
    
    <item>
        <title>How to find a files age in git</title>
        <link>https://mrjohnwiseman.com/blog/calculate_git_file_age</link>
        <description>You can find a files age using the git log command. As seen below</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/calculate_git_file_age</guid>
    </item>
    
    <item>
        <title>How to find a files latest changed time in git</title>
        <link>https://mrjohnwiseman.com/blog/calculate_git_last_modified_date</link>
        <description>You can find a files latest changed time using the following</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/calculate_git_last_modified_date</guid>
    </item>
    
    <item>
        <title>Check if a file exists in Java</title>
        <link>https://mrjohnwiseman.com/blog/check_if_file_exists_in_java</link>
        <description>To check if the file is is a file in Java you need to do the following</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/check_if_file_exists_in_java</guid>
    </item>
    
    <item>
        <title>Compare arrays with Java</title>
        <link>https://mrjohnwiseman.com/blog/compare_arrays_with_stream</link>
        <description>There are many such use cases where you will find yourself required to compare two arrays in Java.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/compare_arrays_with_stream</guid>
    </item>
    
    <item>
        <title>Convert list to array in Java</title>
        <link>https://mrjohnwiseman.com/blog/convert_a_list_to_array_in_java</link>
        <description>This is how you convert a list to an array in Java</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/convert_a_list_to_array_in_java</guid>
    </item>
    
    <item>
        <title>Convert bytes into a String in python</title>
        <link>https://mrjohnwiseman.com/blog/convert_string_to_bytes_in_python</link>
        <description>I recently needed to convert a bytes object into a readable string format. I found that I could do so very easily using the following method.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/convert_string_to_bytes_in_python</guid>
    </item>
    
    <item>
        <title>All the ways to create a List in Java</title>
        <link>https://mrjohnwiseman.com/blog/create_a_list_in_java</link>
        <description>The various ways you can create a list in Java</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/create_a_list_in_java</guid>
    </item>
    
    <item>
        <title>How to create a symlink in linux</title>
        <link>https://mrjohnwiseman.com/blog/create_a_symlink_on_linux</link>
        <description>Symlinks are very useful as they allow you to make one file point to another file</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/create_a_symlink_on_linux</guid>
    </item>
    
    <item>
        <title>How to decode a string in java</title>
        <link>https://mrjohnwiseman.com/blog/decode_a_string_in_java</link>
        <description>To decode a string in Java you can import java.net.URLDecoder.decode</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/decode_a_string_in_java</guid>
    </item>
    
    <item>
        <title>Ensure relative paths work in a bash script</title>
        <link>https://mrjohnwiseman.com/blog/ensureing_relative_paths_work_in_sh</link>
        <description>To ensure relative paths work in a bash script you can set the working directory to the directory the script is in.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/ensureing_relative_paths_work_in_sh</guid>
    </item>
    
    <item>
        <title>Adding a default value constraint to a column in SQL</title>
        <link>https://mrjohnwiseman.com/blog/how_to_add_default_value_constraint_to_column_in_sql</link>
        <description>To add a default value to a column in SQL you can do the following</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_add_default_value_constraint_to_column_in_sql</guid>
    </item>
    
    <item>
        <title>Alter a table droping a columns default value</title>
        <link>https://mrjohnwiseman.com/blog/how_to_alter_column_to_drop_default_value_in_sql</link>
        <description>To drop a default value from a column you need to alter the column and `DROP DEFAULT`</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_alter_column_to_drop_default_value_in_sql</guid>
    </item>
    
    <item>
        <title>Add/Remove/Modify a column on a table in SQL</title>
        <link>https://mrjohnwiseman.com/blog/how_to_alter_table_to_add_or_remove_column_in_sql</link>
        <description>Sometimes you need to alter a table without dropping it. A big use case for this is a migration script adding or removing a column on a table.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_alter_table_to_add_or_remove_column_in_sql</guid>
    </item>
    
    <item>
        <title>Check a column does not equal another column in SQL</title>
        <link>https://mrjohnwiseman.com/blog/how_to_check_column_does_not_equal_other_column_in_sql</link>
        <description>To check that a column does not equal another column in SQL you can do the following</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_check_column_does_not_equal_other_column_in_sql</guid>
    </item>
    
    <item>
        <title>Convert an array to a object in TypeScript</title>
        <link>https://mrjohnwiseman.com/blog/how_to_convert_array_to_object_in_typescript</link>
        <description>To convert an array to a object in typescript you can use the following helper function</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_convert_array_to_object_in_typescript</guid>
    </item>
    
    <item>
        <title>How to copy files over ssh</title>
        <link>https://mrjohnwiseman.com/blog/how_to_copy_files_over_ssh</link>
        <description>You can copy files over ssh using the command scp.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_copy_files_over_ssh</guid>
    </item>
    
    <item>
        <title>All about functions in LUA</title>
        <link>https://mrjohnwiseman.com/blog/how_to_create_a_function_in_lua</link>
        <description>Functions are the core of any good program or script. Functions in LUA are in the following format</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_create_a_function_in_lua</guid>
    </item>
    
    <item>
        <title>How to create a SSH key</title>
        <link>https://mrjohnwiseman.com/blog/how_to_create_a_ssh_key</link>
        <description>SSH keys are useful as they allow you to securely identify yourself. You can create a SSH key by doing the following</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_create_a_ssh_key</guid>
    </item>
    
    <item>
        <title>How to create a view in SQL</title>
        <link>https://mrjohnwiseman.com/blog/how_to_create_a_view_in_sql</link>
        <description>You can create a view in SQL by following the following syntax.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_create_a_view_in_sql</guid>
    </item>
    
    <item>
        <title>How to drop a function in SQL</title>
        <link>https://mrjohnwiseman.com/blog/how_to_drop_a_function_in_sql</link>
        <description>Dropping or deleting a function in SQL is useful for many different scenarios. You might need to drop and re-create or you might not need the function anymore</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_drop_a_function_in_sql</guid>
    </item>
    
    <item>
        <title>Drop a trigger from a table</title>
        <link>https://mrjohnwiseman.com/blog/how_to_drop_a_trigger_from_table_in_sql</link>
        <description>To drop a trigger from a table you need this command</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_drop_a_trigger_from_table_in_sql</guid>
    </item>
    
    <item>
        <title>Load a properties file in Java</title>
        <link>https://mrjohnwiseman.com/blog/how_to_load_a_properties_file_in_java</link>
        <description>This is how you load a properties file in Java</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_load_a_properties_file_in_java</guid>
    </item>
    
    <item>
        <title>How to merge a branch in git with an unrelated history</title>
        <link>https://mrjohnwiseman.com/blog/how_to_merge_a_branch_with_unrelated_history</link>
        <description>You can merge a branch with a different history by adding the flag `--allow-unrelated-histories`</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_merge_a_branch_with_unrelated_history</guid>
    </item>
    
    <item>
        <title>Proxy requests using Webpack</title>
        <link>https://mrjohnwiseman.com/blog/how_to_proxy_requests_using_webpack</link>
        <description>Using webpack you can proxy requests from one directory eg `http://localhost:8080/profile` to another address.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_proxy_requests_using_webpack</guid>
    </item>
    
    <item>
        <title>How to put phantomjs on $PATH</title>
        <link>https://mrjohnwiseman.com/blog/how_to_put_phantomjs_on_path</link>
        <description>Putting phantomjs on the path will stop it downloading every time and therefore decrease the amount of time requiried to npm install.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_put_phantomjs_on_path</guid>
    </item>
    
    <item>
        <title>How to remove a file from a Git Repo</title>
        <link>https://mrjohnwiseman.com/blog/how_to_remove_a_file_from_repo</link>
        <description>To remove a file from a git repository you need to remove the cached version of it.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_remove_a_file_from_repo</guid>
    </item>
    
    <item>
        <title>How to allow insecure hosts in Docker</title>
        <link>https://mrjohnwiseman.com/blog/how_to_resolve_insecure_host_in_docker</link>
        <description>To allow docker to connect to a insecure host (a host using http instead of https) you need to edit the daemon.json to have some config!</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_resolve_insecure_host_in_docker</guid>
    </item>
    
    <item>
        <title>Scroll to the the top of the page automatically in AngularJS</title>
        <link>https://mrjohnwiseman.com/blog/how_to_scroll_to_top_of_page_in_angular</link>
        <description>You can scroll to the top of the page automatically by injecting Window and using the function scroll(x,y).</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/how_to_scroll_to_top_of_page_in_angular</guid>
    </item>
    
    <item>
        <title>Installing Google Drive on Linux</title>
        <link>https://mrjohnwiseman.com/blog/install_google_drive_in_linux</link>
        <description>Google Drive is really useful *I use it for the central location of this blog infact!*</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/install_google_drive_in_linux</guid>
    </item>
    
    <item>
        <title>Installing or uninstalling a package with pip</title>
        <link>https://mrjohnwiseman.com/blog/install_or_remove_a_package_in_python</link>
        <description>To install or remove/uninstall a python package you use pip.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/install_or_remove_a_package_in_python</guid>
    </item>
    
    <item>
        <title>How to install AwesomeWM on xubuntu</title>
        <link>https://mrjohnwiseman.com/blog/installation_on_xubuntu</link>
        <description>Installation guide for AwesomeWM on xubuntu.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/installation_on_xubuntu</guid>
    </item>
    
    <item>
        <title>How to list active processes in linux</title>
        <link>https://mrjohnwiseman.com/blog/list_active_processes_in_linux</link>
        <description>You can list the active processes in linux using `ps`</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/list_active_processes_in_linux</guid>
    </item>
    
    <item>
        <title>How to load more days on the Agenda view in GCalCLI</title>
        <link>https://mrjohnwiseman.com/blog/load_more_days_with_gcalcli</link>
        <description>By default gcalcli loads 7 days on the agenda view. You can specify how many you want if you give it 2 number args, for example:</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/load_more_days_with_gcalcli</guid>
    </item>
    
    <item>
        <title>Incrementation in LUA</title>
        <link>https://mrjohnwiseman.com/blog/performing_integer_incrementation_in_lua</link>
        <description>There is no such thing as *Advanced Operators* **`++`** or **`--`** in Lua</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/performing_integer_incrementation_in_lua</guid>
    </item>
    
    <item>
        <title>How to read from a properites file using Bash</title>
        <link>https://mrjohnwiseman.com/blog/read_from_properties_file_in_bash</link>
        <description>Reading from a properties file is a set some config outside of the script for ease of editing.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/read_from_properties_file_in_bash</guid>
    </item>
    
    <item>
        <title>How to refresh the build image using docker-compose</title>
        <link>https://mrjohnwiseman.com/blog/refresh_build_image_with_docker_compose</link>
        <description>To refresh the build image, you need to add `--build` to the docker-compose command.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/refresh_build_image_with_docker_compose</guid>
    </item>
    
    <item>
        <title>Remove the New Login button from xscreensaver</title>
        <link>https://mrjohnwiseman.com/blog/remove_the_xscreensaver_login_button</link>
        <description>To remove the xscreensaver `New Login` button you need to set the entry for `XScreenSaver.newLoginCommand` to an empty value.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/remove_the_xscreensaver_login_button</guid>
    </item>
    
    <item>
        <title>Using services in linux with Systemctl</title>
        <link>https://mrjohnwiseman.com/blog/service_management_in_linux_with_systemctl</link>
        <description>Services in Linux are generally things that run in the background providing a useful function or 'service'. Systemctl is the 'service manager'.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/service_management_in_linux_with_systemctl</guid>
    </item>
    
    <item>
        <title>Setting properties in a properites file using bash</title>
        <link>https://mrjohnwiseman.com/blog/set_properties_in_a_properties_file_in_bash</link>
        <description>To set or update properties in a properties file from a bash script you can use **sed**</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/set_properties_in_a_properties_file_in_bash</guid>
    </item>
    
    <item>
        <title>Set the default value via Form - Angular Schema Form</title>
        <link>https://mrjohnwiseman.com/blog/set_the_default_value_in_form</link>
        <description>Currently it is not possible to declare a default value via the form object.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/set_the_default_value_in_form</guid>
    </item>
    
    <item>
        <title>What is TAIL in Linux and how you should use it!</title>
        <link>https://mrjohnwiseman.com/blog/tail_cheatsheat</link>
        <description>You might wonder 'how do I get the last lines of a log file' or 'how do I get new lines written to a file in linux'. Well tail is what you need!</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/tail_cheatsheat</guid>
    </item>
    
    <item>
        <title>The power of Stream.of() in Java</title>
        <link>https://mrjohnwiseman.com/blog/the_power_of_stream_of_in_java_8</link>
        <description>Stream.of() can be used instead of creating an array then iterating over it.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/the_power_of_stream_of_in_java_8</guid>
    </item>
    
    <item>
        <title>Using OAuth with Google APIs</title>
        <link>https://mrjohnwiseman.com/blog/using_oauth_with_google_apis</link>
        <description>This is a guide to using OAuth with Google APIs. This document shows how to get a Refresh Token which you can use inside your application.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/using_oauth_with_google_apis</guid>
    </item>
    
    <item>
        <title>Using OR statements in Gmail filters</title>
        <link>https://mrjohnwiseman.com/blog/using_or_filter_in_gmail</link>
        <description>Creating filters in Gmail is a great way to help manage and achieve a tidy inbox.</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/using_or_filter_in_gmail</guid>
    </item>
    
    <item>
        <title>Why its important to use private 0arg constructor for Java</title>
        <link>https://mrjohnwiseman.com/blog/why_you_should_use_0_arg_private</link>
        <description>When creating util classes in java you should ensure you add a 0arg private constructor</description>
        <pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
        <guid>https://mrjohnwiseman.com/blog/why_you_should_use_0_arg_private</guid>
    </item>
    
</channel>
</rss>