GMH 039 Tutorial Embed Google Calendar in your WebSite

This tutorial shows how to embed your personal Google calendar into your website. It also shows how to get a simple link to share with others if you don’t have a website.

Sometimes you need to share your Google calendar, with other people, so that they can schedule events for you.

Google does allow you to share your calendar, directly with another user.
That calendar could have details, you may not want others to be viewing, like your doctor appointment’s, or when you exercise.
The alternative is, to share the calendar with any scheduled events, where all events are shown as busy, with no details.

Google can generate HTML code, called embedded code, that can be copied into a web page, to allow people to view your calendar.

To reduce the risk of people viewing events you don’t want to be seen, you can divide your events into multiple calendars.
For example, one calendar could be personal and private events and, another calendar could be business events.
If like me, you work for more than one client, you may have a separate calendar, for each client.

NOTE: This video was an experiment using all of the new things I’ve learning from some Camtasia training. I may have gone a little overboard 😉

It uses Natural Reader and a voice to give me that British tone that so many other YouTube videos have. So a learning experience with Text to Speech (TTS).
Some of the TTS text is shown above. NOTE: Listen to how “Peter” pronounces Git Hub, it’s a hoot.

It required blurring to hide some of my personal stuff from prying eyes. I’ll try to avoid doing that shit again.

I did custom music mixes. So another new learning experience using audio mixing. There must be people out there who do this stuff for cheap.

I wrote a simple HTML template and created a GitHub repository for it. More new skills.

After 5 hours creating a PowerPoint template (It can be used over again), typing in the narration (Forced me to learn how to make sentences sound correct), capturing the Powerpoint slides, mixing music, syncing the voice with the slides, capturing sequences from the browser, Microsoft Visual Studio Code and FileZilla….
a 10:18 video was created.

Was it worth it? I hope so. Please let me know in the comment section below what you think of this experiment.

If you learned something then click on the Like hand.

You could give me the ultimate compliment and Subscribe to my YouTube channel.

Now, Take a little time, and force yourself to learn something new.

Link to HTML Template code at GitHub
https://github.com/GeekMustHave/Embebed-Google-Calendar

GMH-039 Tutorial Embed your Google Calendar in your website

This tutorial shows how to embed your personal Google calendar into your website. It also shows how to get a simple link to share with others if you don’t have a website.

Sometimes you need to share your Google calendar, with other people, so that they can schedule events for you.

Google does allow you to share your calendar, directly with another user.
That calendar could have details, you may not want others to be viewing, like your doctor appointment’s, or when you exercise.
The alternative is, to share the calendar with any scheduled events, where all events are shown as busy, with no details.

Google can generate HTML code, called embedded code, that can be copied into a web page, to allow people to view your calendar.

To reduce the risk of people viewing events you don’t want to be seen, you can divide your events into multiple calendars.
For example, one calendar could be personal and private events and, another calendar could be business events.
If like me, you work for more than one client, you may have a separate calendar, for each client.

NOTE: This video was an experiment using all of the new things I’ve learning from some Camtasia training. I may have gone a little overboard 😉

It uses Natural Reader and a voice to give me that British tone that so many other YouTube videos have. So a learning experience with Text to Speech (TTS).
Some of the TTS text is shown above. NOTE: Listen to how “Peter” pronounces Git Hub, it’s a hoot.

It required blurring to hide some of my personal stuff from prying eyes. I’ll try to avoid doing that shit again.

I did custom music mixes. So another new learning experience using audio mixing. There must be people out there who do this stuff for cheap.

I wrote a simple HTML template and created a GitHub repository for it. More new skills.

After 5 hours creating a PowerPoint template (It can be used over again), typing in the narration (Forced me to learn how to make sentences sound correct), capturing the Powerpoint slides, mixing music, syncing the voice with the slides, capturing sequences from the browser, Microsoft Visual Studio Code and FileZilla….
a 10:18 video was created.

Was it worth it? I hope so. Please let me know in the comment section below what you think of this experiment.

If you learned something then click on the Like hand.

You could give me the ultimate compliment and Subscribe to my YouTube channel.

Now, Take a little time, and force yourself to learn something new.

Link to HTML Template code at GitHub

https://github.com/GeekMustHave/Embebed-Google-Calendar

 

Turn on Network Discovery on Windows Advanced server

Having a problem linking to a Shared resource on a Windows advanced server system?

2017-04-25_16-02-38.jpg

Yea this is a pain the butt.   Some settings are out of wack.

Turn on DNS Client, make it start Automatic Delayed

2017-04-25_15-57-55

Turn on SSCP Discovery, make it start Automatic Delayed

2017-04-25_15-58-50

Turn on UPnP Device Host, make it start automatic delayed.

2017-04-25_15-59-22

Set the Network Discovery Firewall rule so it is allowed for Private and Public.

2017-04-25_16-01-24

Now turn network discovery on and it should stay on.

2017-04-25_16-02-99

Now attempt to map to the Shared Drive resource on the Windows AS system.

2017-04-25_16-04-31

If the Shared Drive on the Advanced Server has password protection you will need to login to it using a valid AS user id/password.

2017-04-25_16-04-54

If you’re lucky maybe the mapping will work.  Sometimes the Gods can be cruel.

Better tools for debugging Node.js

Debugging – the process of finding and fixing defects in software – can be a challenging task to do in all languages. Node.js is no exception. Luckily, the tooling for finding these issues improved a lot in the past period. Let’s take a look at what options you have to find and fix bugs in…

I am at the level with Node.JS that I no longer “Suck at it” but I am still learning every time I use it.  One of the areas I struggled with was debugging, which was much different and difficult than my .NET and PHP days.  It seems like open source meant that you were on your own for debugging.

Special thanks to Gergely for his article on just the topic of Node.js debugging.

pino.pngOne of the takeaways in the article is Pino is an extremely fast Node.js logger, inspired by bunyan. In many cases, pino is over 6x faster than alternatives like bunyan or winston
I had tried Winston as it was recommended by one of my programmer gods.  I was not worthy because I couldn’t understand it.  I have high hopes for Pino.

I use Microsoft VS Code editor as my editor and my IDE for almost everything including PowerShell, Bash, JavaScript, SQL, Node.js, ADCIIDoctor, and more.  I was glad to see a section in this article on how to better use MS Code with Node.js

via How to Debug Node.js with the Best Tools Available — RisingStack Engineering

nextCloud 9 Upgrade to nextCloud 11 on Bluehost Shared Hosting

2017-04-18_20-12-50.pngnextCloud (NC) is an excellent PHP application to help manage documents, calendar, contacts, photos and much more.  Phoenix Learning Labs (PLL) intends to use this platform to host training materials on new and exciting technologies.  PLL uses the BlueHost hosting service, Pro Plan, for its nextCloud instance.  PLL had been using version 9.0 for quite some time and decided to upgrade.  Currently, nextCloud version 11 is available and has been tested and was the one we used for this tutorial.

WinSCP

These are the notes taken during the migration.  WinSCP was used to perform most of the steps of the migration and setup.  There are many good tutorials on how to set up Putty and WinSCP so we will skip that part.

To avoid frequent disconnects with WinSCP you need to modify the advanced site settings for your Bluehost connection.

optimized

 

Download nextCloud installation ZIP

The instructions for the NC download can be found at this link.  We want the server owners version.  PLL’s Bluehost instance is a Shared instance but when “Upgrading” from one NC version another it is safer to use the “Server Owners” version.

download.png

Download the file to a safe place on your PC.

Save the important stuff from your version 9.0 installation

PLL NC instance was installed in the

public_html/phoenixlearninglabs

directory

 

If you don’t want to loose all of the work you’ve done to build the NC instance you need to copy two directories (config and data) from your NC 9 instance to a safe place.

copystuff

Next steps are to rename the original NC directory to something else, we added an ‘xxx’ to the front of the directory name.  This quickly eliminates the directory but keeps it handy just in case we need something else.

rename

Install Version 11 on Bluehost

Locate the downloaded copy of the NC “Server Owner” ZIP file and transfer it over to the public_html directory.

copyit.png

Unzip the NC “Server Owner” ZIP file, this may take a few minutes

unzip.png

This will create a new directory named NextCloud, we renamed it to the original directory name for PLL:  phoenixlearninglabs.

Then we copy the (config and data) directory from the safe place back to the PLL NC directory.

copyback.png

Maintenance Mode Issues

With great confidence, we restarted out NC instance and got this

maintenance mode.png

Turns out in previous attempts at using the “Web Installer” version of NC 11 failed half way through, leaving our NC instance in Maintenance Mode.

To turn off Maintenance mode we need to edit the NC config/config.php file, the last line that indicates maintenance mode needs to be set to ‘false’

maintenance.png

As my dad used to say “Now we are cooking with gas”, he would have been surprised if he had gotten to see Microwaves.

Looks like I’m still cooking with a campfire because the maintenance message is still displaying.  Turns out if the migration failed the details are logged into a file “data/owncloud.log”.  owncloud.log? not nextcloud.log?  When nextCloud branched out from ownCloud not everything got changed.  Delete the damn “owncloud.log” file

deletelog

Holy crap looks like we got somewhere with this. Almost afraid to click on the damn (Start Update) button.

updatemessage.png

It just never fracking ends, what the hell is this all about?

major updates.png

Well, this would have been nice to have known before we started this fateful journey.

Tale of Two Paths

happysad.jpg

shitbag.png

Of course, the link to the “Older versions” brings up a blank “changelog” page.  After a bit of Google-Foo I found a promising link with all the versions.

 

version10.png

Repeat the process above and get the “phoenixlearninglabs” directory ready to go, remember to delete “owncloud.log” file and change the maintenance mode to “false”.  If you’re lucky you might just see this. Down the path of ruination once more.

version102.png

This looks very promising even with the warning messages

completed10.png

OK, let’s just hit that (F5) button and hold our breath.

holyshit.png

If I log in and go to the admin page, what will happen? any guesses?

shithouseof warnings

Well, it looks like we are “Stable”, if that is possible, at 10.0.4.  See that (Open Updater) button, looks real inviting but it’s a trap.  Many posts in nextCloud forum with tales of horror when clicking on that.

Critical Step copy Version 10 .config and .data directories

NOTE: You must copy the “config” and “data” directories from the NC Ver 10 install to a safe place.  These will the one you copy back when NC V11 is installed over NC V10.

We will take the long root by Unzipping NC Version 11 over Version 10. and changing the maintenance mode to “False” one more time.

We are back to the point where we thought we were cooking with gas. Silly me I will click the (Start Update) button expecting magic to happen.

updatemessage

 

Holy cow… it worked!!!  Went to the admin page and there are a few minor warnings that we will resolve later. V11 of nextCloud is working on my Bluehost Shared Pro instance.

v11finally

Integrity Check

The integrity check done by NC is important as it locates critical files that may not be correct or missing.  In this case, it was the infamous .htaccess and .user.ini file that were munged up.

The easier solution is to unzip the NC 11 ZIP file into a safe area, locate those two files can copy them over to the root of the NC site.

If you have extra files like the NC zip files in the NC directory you should delete them.

Rinse, repeat until clean.

HTTPS and SSL certificates

This whole area of the WWW is just a plain and simple pain in the ass.  Having said that it is still a necessary requirement to get NC to work properly and allow for better security.  That is what this NC warning is all about.

sslewarning.jpg

When you get a Bluehost Pro account you get 1 free SSL certificate and the dedicated IP address you need for the whole shebang to work.

NOTE: Something very cool about WordPress sites.  If you host a WordPress site on BlueHost you can get a free SSL certificate and have it automatically installed and it doesn’t require another dedicated IP address.

freewpssl.jpg

I di have a few issues with the free certificate I intended on using for PLL but the Bluehost folks took care of it.  Remember that these certs take a little time to propagate across the world wide web.

DNS Nameservers

If you are using Bluehost as your hosting platform the default name servers are set to the Bluehost names servers and you don’t need to do anything.

However, if you experimented with other hosting environments and changed the default name servers to something else, they will need to be changed back.

We experimented with InMotion Hosting and all I can say is “We learn from our failures”.

nameservers.jpg

Don’t expect the change to be instantaneous it has to propagate across all the other parts of the Interweb.

Lessons Learned

Read ALL of the installation instructions for applications like nextCloud and save yourself some time and headaches.

Get a good hosting provider that allows for SSH access and helpful technical support.  I can not say enough good things about Bluehost.

Learn how to use command line tools like Putty or Kitty and some basic Linux commands, you don’t need to know a lot to get this whole thing done.

Who is your friend? I ask this question at every class I teach.  The correct answer is Google, practice on asking questions different ways to get the correct answer.

Frequent backups, and do a few more backups. With the Bluehost Pro account, they throw in the Backup tool.

The nextCloud integrity check should be reviewed and all the instructions followed, missing or incorrect files can cause hours of headaches.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Moving a JIRA Cloud instance to a Server instance using AWS

JIRACloudLogo.pngWe have been using JIRA On-Demand or JIRA Cloud for a few years now.  It was an easy SaaS decision and helped us get started very quickly.  After a while, we realized that most of the cool add-ons for JIRA are only available to the JIRA Server instance.  Our web applications have an Issue-Track (Critical-Response) form  that users fill out to report a problem or ask for an enhancement.  Currently we take these forms and manually transfer them into JIRA.  The JIRA licenses are too expensive to give all our customers a JIRA user ID’s.  So we designed an integrated JIRA interface into our Issue Track page that talks direct to our JIRA-Cloud  Instance. No more copy-paste.  One of our government customers has a security rule that only allows API usage to servers with a single IP address.  Well, JIRA Cloud instances from Atlassian are actually hosted on Amazon Web Services which uses a pool of IP addresses for better performance which makes sense.  For us to get a single IP we will need to migrate our JIRA Cloud instance to a JIRA server instance.  We have decided to stay as close to the way Atlassian manages their cloud instances so we will be using AWS as well but, with a single IP address.  I will document this journey over time in this Blog, one for some reference documentation and two because I like to share.

 

 

Visual Studio Code for Raspberry PI Installation made simple

2017-04-11_7-00-51.png

The Raspberry PI is an ARM-based Linux system.  Sometimes this makes installing software a bit difficult.  Visual Studio Code is my go-to editor of choice for just about everything.  When I attempted it on nyRaspberryy PI 3 Rev b I saw plenty of headaches in the blog posts.  The Jay Rogers came to the rescue with this simple method of installing Visual Studio Code.

Installation Scripts

(including Raspberry Pis, Odroids and other single-board computers)

Packages are currently available in DEB and RPM format for ARM, x86 and amd64 systems.

You can use the scripts here to install the packages and add their repository to your system.

Open a new terminal. If you need super-user rights (you probably do), then you can enter sudo -s and press return to enter a super-user session. Run the installer for your current distribution:

 APT instructions

(including Debian, Raspbian, Ubuntu and Linux Mint)

. <( wget -O - https://code.headmelted.com/installers/apt.sh )

via: https://code.headmelted.com/

ASCIIDoctor Split heading across multiple line

splitit (1)

Sometimes when using ASCIIDoctor to do some documentation it would be nice to split the heading across multiple lines.  If you type one continuous line of text you take your chances where the splitting will occur.  Using a special sequence can help you control the splitting.

The example above shows three distinct lines in the header

  1. State of Micigan (Misspelled)
  2. Departmental Work Intake Process (DWIP)
  3. Design Document.

The ASCIIDoctor header code for the heading is

= State of Micigan Departmental Work Intake Process (DWIP) Design Documentation

This will result in ASCIIDoctor determining where the split will happen.

By using the special control sequence, shown below,  you can add breaks where you want them

pass:q[<br>]

This control sequence allows a “pass”through of an HTML sequence ”
” to ASCIIDoctor

To get the format shown in the example change the header line to

= State of Micigan pass:q[<br>]Departmental Work Intake Process (DWIP)  pass:q[<br>]Design Documentation

PDF View of multiple line header

Still not formatted exactly how I want it but if I move the “Line Break” control sequences around I can it just right.


HTML View of multiple line header

Lower your expectations to match today’s realities, and you will be happier

lower

Don’t get me wrong: I’m not saying you shouldn’t have high standards or aim high in life. Those things are good. But just don’t rely on your imagination for timelines and outcomes.

It’s counterproductive.

  • When you have high expectations and the outcome is worse: You’ll be frustrated.
  • When you have low expectations and the outcome is better: You’ll be grateful.

Barry Schwartz, a psychologist, and author of The Paradox of Choice put it best:

“The secret to happiness is low expectations.”

Now, this is not new information. Most of us know that high expectations are not helpful. Why do we still have them?

We still desire more, more, more. And when you want more, you expect more.

You see? You can’t fix your expectations without fixing your desires.

Via: Darius Foroux

I can wholeheartedly agree with this.  We expect too much from other people who we really don’t know.  Then we are disappointed when they don’t perform or deliver.  Learn to expect less, you will be disappointed less.

10 Best Practices for Writing Node.js REST APIs

In this article we cover best practices for writing Node.js REST APIs, including topics like naming your routes, authentication, black-box testing & using proper cache headers for these resources. One of the most popular use-cases for Node.js is to write RESTful APIs using it. Still, while we help our customers to find issues in their…

Even if you’re not going to use Node.JS for your API engine, this article has some great tips for starting standards for your project or company.  RisingStack does have a set of Pay tools for Node.JS debugging and articles like this help direct traffic to them.  The articles are excellent reads.

via 10 Best Practices for Writing Node.js REST APIs — RisingStack Engineering