Creating pop-up footnotes in EPUB 3


In EPUB 3 Flowing and Fixed Layout books, you can create pop-up footnotes by labeling footnotes with the appropriate epub:type values. You use two elements to create a pop-up footnote: an anchor (<a>) element that triggers the popup and the <aside> element that contains the footnote text. Both elements have an epub:type attribute to identify their purpose: epub:type="noteref" to trigger the popup and epub:type="footnote" to indicate the footnote’s text.

In the example below, the anchor element (<a>) has two attributes: epub:type="noteref" and a link that references the location of the element that contains the popup's text.

The <aside> element that contains the popup's text also has two attributes:

  • id="myNote" that matches the value of the href attribute in the link that references it

  • epub:type="footnote"

Because the <aside> element has an epub:type of footnote, the text is hidden in the main body of the book. The text will only be seen by the reader in the context of the popup.

<html xmlns="" xmlns:epub="">
    <a href="chapter.xhtml#myNote" epub:type="noteref">1
  <aside id="myNote" epub:type="footnote">Text in popup</aside>


Footnote and reference

<p>lorum ipsum.<a epub:type="noteref" href="#fn01">1</a></p>
<aside epub:type="footnote">
   My footnote

Endnote and reference

<p>lorum ipsum.<a epub:type="noteref" href="#en01">1</a></p>
<aside epub:type="endnote">
   My endnote

Endnotes section

<section epub:type="endnotes">
     <h2>Chapter 1</h2>
     <aside epub:type="endnote">
       My endnote

Enable Developer Options on Samsung Galaxy S9

The Developer Options has many useful features that certainly elevate the usability, and user experience of an Android phone. In this tutorial, we are going to learn how to activate/enable Developer Options on Samsung Galaxy S9, and how to use it effectively. All Samsung smartphones come with an option, but it usually it comes hidden within the operating system. But it doesn’t mean that you can’t access it. And importantly, that is not a tough task either. The method is almost same as we perform on other Samsung’s smartphones.

  1. Open the app menu, and then tap on Settings.
  2. Scroll to locate ‘Device information‘ and tap on it.
  3. Next, locate the ‘Software info‘ and tap on it.
  4. Under the hood of this menu, find the ‘Build number‘.
  5. Now tap 7 times on ‘Build number’. Each time you tap on ‘Build number’, it displays a screen with a message about remaining taps to become a developer.
  6. This will activate the Developer Options on your phone:galaxy-s9-developer-options

Now, the Developer Options will appear under Settings.

How to Automatically Backup Your Web Server Files With WinSCP over FTP

WinSCPYou’ve heard it time and time again: back up your data. There are plenty of backup solutions, but nothing is better than an easy and free solution. So with a few lines of code and a very helpful program called WinSCP, we’re going to set up an automatic sync between your FTP server and your home computer.


  • An FTP server and access credentials
  • A Windows computer
  • A copy of WinSCP (Windows only)

Setting Up WinSCP

Once you've downloaded your copy of WinSCP, install it on your computer. It also wouldn't be a bad idea to start remembering your FTP address, username, and password while WinSCP is installing.

From the login screen, enter your host name (i.e., username, and password. You can use either FTP or SFTP, but be sure to change the port number the appropriate port your FTP host has provided you. Then click Save to save the profile. Open the profile to log into your FTP server. This will verify that you typed the right credentials in the profile.


Create the script

We’re going to create a simple script that logs into your FTP server, tells WinSCP where to download the missing files to on your computer, and then creates a log file that records FTP activity. Go ahead and open Notepad on your computer. Copy the following script template into Notepad:

option batch on
option confirm off
cd backups
option transfer binary
get /testremote* f:\backups\testlocal*
synchronize local f:\backups\testlocal testremote

WinSCP will answer all prompts negatively to avoid holding up the script. Then it will automatically overwrite files when prompted. It then logs into your FTP server using the profile we created earlier, changes directories (if needed), and transfers binary (as opposed to ASCII). Finally, it reads the remote FTP directory and transfers files to the specified local directory. For even more options, check out the official WinSCP scripting page.

Now before you modify or run this script, we suggest creating test directories on both the remote and local targets. The last thing you want is to accidentally wipe your FTP server without any backups. So create a directory on your computer called “testlocal” (we created it under f:\backups) and another called “testremote” on your FTP server (we created it at the root). Once you run the script and it executes successfully, save it as “sync.txt” to your computer (we saved ours in our testlocal folder).

Automating the script

Now you’re ready to automate the script. For this we can use Task Scheduler.


Click on Create Basic Task and follow the following screens. First insert a name for your task.


Select when you want to start the task.


Select Start a program in the next screen.


Now click on Browse... and find WinSCP executable file in your program folder.


Underneath, add

/console /script=f:\backup\sync.txt /log=f:\backup\log.txt 

to Add arguments. Be sure to change the arguments if your sync.txt is in a different location and if you want to generate the log file in a different location. Click Next.

So the task is created!

Feed Power BI from Application Insights

I’ve tried to connect PowerBi with Application Insights. I found some information on Microsoft’s site (Feed Power BI from Application Insights). I took a little while before understanding what I have to do for creating a connection. I’ll show you what you have to do.

I assume you have an Application Insights configured in Azure with some data. Open you Analytics.

For a new report, open PowerBi Desktop and select Get Data.


Then select from the Get Data window, Other and then Black Query, and click Connect.


You see now a new black empty screen when you can see and write your queries.


Click on Advanced Editor. Here we have to paste the code for Application Insights for your query.


Jump on Application Insights. I wrote a simple query in Analytics.

| order by timestamp desc


Now click on Export and select Export to Power BI (M Query).


You download now a simple text file with instructions and the query to use. Copy your query and paste it on the window in PowerBI. PowerBI asks you to define what kind of connection you want to use. In my case I selected Organization Account.


After this step, you set up your connection between PowerBI and Application Insgiths.


You got the connection and data from PowerBI. Save your dataset clicking on Close & Apply. In the main screen of PowerBI, you can create every report you want!

Show/Hide Hidden Files on macOS

Show/Hide Hidden Files the Long Way

The long way to show hidden Mac OS X files is as follows:

  • Open Terminal found in Finder > Applications > Utilities
  • In Terminal, paste the following:

    defaults write AppleShowAllFiles YES
  • Press return
  • Restart your Mac

This will show all hidden files. To hide them again, follow the same steps but replace the Terminal command with:

defaults write AppleShowAllFiles NO

It’s not the longest set of instructions or the biggest command to commit to memory but if you’re doing this a lot, it’s worth spending a few minutes now to save yourself a lot more time in the future.

The Essential Meta Tags for Social Media

These days, almost every website encourages visitors to share its pages on social media. We’ve all seen the ubiquitous Facebook and Twitter icons, among others, just begging to be clicked. This comes as no surprise as sharing via social media, the internet incarnation of word-of-mouth, is one of the most effective ways for businesses and individuals to gain awareness.

When users choose to share these links, it is tasked to the web developer to make sure that the associated web pages are properly prepared, which is what we’ll look at now. Facebook and Twitter are, by far, the most popular social media platforms, so let’s focus on those two.

Sharing on Facebook and Twitter

Facebook offers developers various options on how a shared web page appears in its timeline depending on the website’s content. Unless otherwise specified, every website defaults to the type called, appropriately, “website”, which is the example we’ll use.

Let’s say someone has shared the home page of a fictional travel company – Facebook displays it like this:


Twitter, as well, has multiple ways to format shared web pages that appear in its feed, but we’ll look at the one that’s quite similar to the above example from Facebook, which Twitter calls the “Summary Card with Large Image”:


As we can see, each features multiple attributes of the shared Web page:

  • a prominent image and title
  • a description
  • the domain name

Proprietary <meta> Tags

How do we specify these attributes? With <meta> tags. When a link is shared, both Facebook and Twitter scrape the associated web page and read its <meta> tags to display the appropriate information.

Facebook uses <meta> tags leveraging the Open Graph protocol, a classification system for Web pages that extends beyond those <meta> tags already defined in HTML5. A complete list of <meta> tags available can be found at the Open Graph Web site. There are so many from which to choose that it can be somewhat intimidating, but only four are actually required:

<meta property="og:title" 
      content="European Travel Destinations">
<meta property="og:description" 
      content="Offering tour packages for individuals or groups.">
<meta property="og:image" 
<meta property="og:url" 

Twitter has its own <meta> tags that are similar to the Open Graph protocol, but uses the “twitter” prefix instead of “og”. As with Facebook, only a few are required. The type of display format we’re requesting from Twitter is also specified:

<meta name="twitter:title" 
      content="European Travel Destinations ">
<meta name="twitter:description" 
      content=" Offering tour packages for individuals or groups.">
<meta name="twitter:image" content="">
<meta name="twitter:card" 

Reconciling <meta> Tags

There’s no harm with having multiple tags that appear redundant. Too much information never hurt anyone except by adding a few extra bytes to the HTML file.

But for our purposes, and for the sake of brevity, we can leverage the fact that Twitter allows us to substitute Open Graph <<meta> tags for its own. In the end, except for the necessity of specifying a display format, none of the custom Twitter <meta> tags are needed. This gives us the following, which could be considered the bare minimum of tags necessary to make a web page amenable for sharing on social media:

<meta property="og:title" 
      content="European Travel Destinations">
<meta property="og:description" 
      content="Offering tour packages for individuals or groups.">
<meta property="og:image" 
<meta property="og:url" 
<meta name="twitter:card" 

Reconciling the guidelines for the image is simple: follow Facebook's recommendation of a minimum dimension of 1200x630 pixels and an aspect ratio of 1.91:1, but adhere to Twitter's file size requirement of less than 1MB.

Validating <meta> Tags

If there are any doubts about the legitimacy of paring down to these five tags, we can use the helpful Facebook Sharing Debugger and Twitter Card Validator. Both these tools will scrape any Web page hosted on a public server for relevant <meta> tags and display how it would look when shared. It will also list any errors and provide suggestions. So how did we do with our particular example? Twitter seems fine with things, but Facebook, on the other hand, lists one item as a warning:


Social Media Analytics

What Facebook is indicating is that if you’re going to use their analytics tool, which they call Domain Insights, you must provide the unique ID number associated with your account. The <meta> tag would then look something like this:

<meta property="fb:app_id" content="your_app_id" />

Twitter has something similar that they call Twitter Card Analytics. To get the most out of this tool, Twitter recommends using the following <meta> tag that contains the Twitter username that you want associated with the shared Web page:

<meta name="twitter:site" content="@website-username">

Keep in mind, though, that if you have no particular interest in using these analytic tools, then omitting the above two <meta> tags has no effect on how a shared Web page appears on a Facebook timeline or Twitter feed.

What else?

Facebook documentation recommends one additional <meta> tag, though it’s not required. A <meta> tag that denotes the name of the Web site in which the shared page resides:

<meta property="og:site_name" content="European Travel, Inc.">

Twitter suggests one other <meta> tag as well that is recommended, but not required:

<meta name="twitter:image:alt" content="Alt text for image">

This provides an alternative image description for those who are visually impaired.

Final Markup

That should do it. To reiterate, when you look at documentation from Facebook and Twitter for sharing Web pages, there are many other <meta> tags available that can be used to specify different types of content. But, in general, the following will suffice:

<!--  Essential META Tags -->
<meta property="og:title" 
      content="European Travel Destinations">
<meta property="og:description" 
      content="Offering tour packages for individuals or groups.">
<meta property="og:image" 
<meta property="og:url" 
<meta name="twitter:card" 

<!--  Non-Essential, But Recommended -->
<meta property="og:site_name" 
      content="European Travel, Inc.">
<meta name="twitter:image:alt" 
      content="Alt text for image">

<!--  Non-Essential, But Required for Analytics -->
<meta property="fb:app_id" content="your_app_id" />
<meta name="twitter:site" content="@website-username">

Happy coding!

How to capitalize the first letter in a cell in Excel

If you’d like to capitalize all letters in a cell, it’s easy – just use the following formula (assuming cell A1 has the text you want to capitalize).


But what if you just want to capitalize the first word in the cell “A1”? For example, you have the following  text in a cell “A1” and you’d like to capitalize just the first letter:

How to have the First Letter of a sentence Capitalize

To capitalize “How” in cell “A1”, use one of the following formula:




The result:

How to have the first letter of a sentence capitalize

Not working for you?

Remember to replace A1 with the cell that contains the string of words you want to parse out.

Howto: Generate many files of a particular size in Windows

I shoud find a simple way to generate a file of exact size. Finally I found this command in the Prompt of Windows (Windows10 in my case but it presents in the previous version of Windows)


The syntax for using for this purpose fsutil is:

fsutil file createnew filename filesize

I used a simple loop to create files of a particular size using fsutil. Running from a command prompt:

For creating a file of 1 Mb you can type

fsutil file createnew C:\Users\e.rossini\1024kb.txt 1048276

Happy coding!

How to Get Access to WindowsApps Folder in Windows 10

Just like almost all the programs, Windows App installation files are also stored in the Program Files folder in your C drive.


However, the folder is hidden from plain sight. To see the folder, head over to the Program Files folder, click on the “View” tab and then select the “Hidden Items” checkbox.


This action will show you all the hidden folders including the “WindowsApps” folder.


Though you can see the folder, you cannot open the folder to see the files in it. If you try to open it, your access will be denied even if you are the administrator.


To get access to the WindowsApps folder, right-click on the folder and then select the “Properties” option from the list of context menu options.


The above action will open the Properties window. Here, navigate to the Security tab and click on the “Advanced” button appearing at the bottom of the Window.


Once the Advanced Security Settings window has been opened, click on the “Change” link. You will receive a UAC (User Access Control) prompt. Simply click on the button “Yes” to continue.


Now the window will show you all the permissions of the WindowsApps folder. As you can see, this folder belongs to the system, thus you are not able to access it. To change it, click on the “Change” link appearing next to “TustedInstaller.”


The above action will open the “Select User or Group” window. Here enter your administrator username and click on the button “Check Names.’ This action will automatically fill in the object name. Now, click on the “Ok” button to continue.


Here in the main window you can see the that the owner of the folder has been changed to your specified administrator account. Before applying the change, make sure that the “Replace owner on sub containers and objects” checkbox is selected. Otherwise you won’t be able to interact with other files and folders inside the WindowsApps folder.

After you’ve done everything, click on “Ok” button to save the changes.


As soon as you click on the Ok button, Windows starts to change the file and folder permissions. This process may take some time, so sit back and wait until the process is completed.


Once the file and folder permissions have been changed, you can easily access it like any other folder in the Program Files folder as long as you are an administrator or have administrator rights.


Do comment below sharing your thoughts and experiences about using the above method to get access to WindowsApps folder in Windows 10.

How To Setup Native Bash On Ubuntu On Windows 10

Alright, this post is for our developer friends only: the latest Windows 10 Insider Preview Build – build 14316 – includes the much-hyped Bash shell from Ubuntu. What’s the Bash shell, and how can you start using it in Windows 10? Find out after the bump.

Start Using Bash In Windows 10


As of typing this post, you need to be a Windows Insider running Insider Preview Build 14316 on your Windows 10 PC to be able to execute Bash commands and scripts. If you’ve met these requirements, you’re good to go.

Here’s what you need to setup Bash on Ubuntu Linux on Windows 10: first, go to Settings > Update & security > For developers and enable Developer Mode; second, search for Windows Features, and from Turn Windows features on or off  go ahead and enable Windows subsystem for Linux (beta); third and final, open the Command Prompt and type bash to install it. That’s it!

We will update this post later on when Microsoft releases this feature to the general public as part of the Anniversary Update later this year. Until then, happy scripting!

What is Bash, and why is it on Windows 10?


Bash is a hugely popular shell and command language that runs just below the Command Prompt, and it accepts a different, and much more accepted set of commands and scripts. Bash is popular on Linux and OSX where it serves as the primary command line language.

Windows is quite late to the party, but developers are happy because this means they’ll be able to use all their favorite, powerful Bash commands and scripts in Windows 10.

People have made a big deal out of Bash on Windows 10 because in order to bring Bash to their operating system, Microsoft had to develop a Linux subsystem just for Windows. So, in running Bash natively on Windows 10, you are – in a way – running Linux on Windows 10. That’s a big deal!