Speed up the Windows 10 user interface

Windows 10 has pretty effects to fade in and out windows, animate the opening of menus and other objects.

If you prefer a relaxed appearance, it is for you, but if you want to complete your tasks and view the result of your actions faster, here is the way to turn the effects off.

  • Press the Windows and R keys together to open the Run dialog box
  • Enter sysdm.cpl into the box
  • On the Advanced tab click the Settings button
  • Unselect the items
    • Animate windows when minimizing and maximizing
    • Fade or slide menus into view
    • Fade or slide ToolTips into view
    • Fade out menu items after clicking

Configure Epson WF-3520 scanning on Windows 10

Install the Epson WF-3520 scanner driver and scanning utility

Connect to the Epson WF-3520 printer

  • Start the EPSON Scan Settings utility
  • Select Network and click the Add button
  • When the search is complete click the found IP address and the OK button
  • To test the scanner connection click the Test button
  • Click the OK button to save the settings

Scan with the Epson WF-3520

  • Open the EPSON Scan app

Generate the Chef cookbook dependency diagram

The Brew viz command reads the Berksfile.lock in the current Chef cookbook directory and saves the cookbook dependency diagram in the graph.png file.

The command requires the graphviz utility

Install graphviz

In the terminal window execute

brew install graphviz

Generate the cookbook dependency diagram and open it in Preview

In the Chef cookbook directory execute

berks viz;open graph.png

Install TeamCity agent remotely

To install the TeamCity agent on a remote computer in the TeamCity UI on the Agents page select the Agent Push tab.

Make sure the remote computer is accessible by PSEXEC. See Configure the target server for PSEXEC

If the remote server is in the domain, make sure you prefix your username with the domain name to avoid the error message:

The handle is invalid.
Couldn’t access SERVER_NAME:

… was executed with error message(s): Execution error. Return code=6

Configure the target server for PSEXEC

PSEXEC is a remote procedure execution tool written by Mark Russinovich at Microsoft and available for download at https://docs.microsoft.com/en-us/sysinternals/downloads/psexec.

To use PSEXEC you need to open ports 135 (TCP) and 445 (TCP) on the target computer. 

  • Enable the ports in the security group
  • Open the ports inbound in the server’s firewall

You also need to have the IPC$ and ADMIN$ shares enabled. To test the availability of the IPC$ and ADMIN$ shares

  • Open a command prompt on the target computer, and use its IP address in the test
net use \\COMPUTER_IP\ipc$ /user:ADMIN_USER_NAME "ADMIN_USER_PASSWORD"

You should get the message:

The command completed successfully.

Make the GantChart Excel template smarter

There is a great, free Excel Gantt chart template on the Vertex42 web site at https://www.vertex42.com/ExcelTemplates/excel-gantt-chart.html

The free version lacks a few features that could make project planning easier. We can update our version of the template to make it smarter. Make these changes before you start to use the template, because inserting task rows can multiply the number of conditional formatting formulas to an unmanageable number.

Skip the weekends in the task end date calculation

When the template calculates the task end dates, it includes the weekends as worked days in the calculation. To make sure the task end date falls on a work day and the weekends are not included in the task duration, update the calculation. Update the cell in the first task row and copy the updated cell down to every row.

Change the formula in F9 from
=IF(ISBLANK(E9)," - ",IF(G9=0,E9,E9+G9-1))
to
=IF(ISBLANK(E9)," - ",IF(G9=0,E9,WORKDAY(E9,G9-1)))

Short tasks or headers with no task duration

There are task rows that should not be planned as a full day of work. If

  • a row is a group header
  • the task execution time is shorter than a day
  • multiple tasks can be done the same day

This change will start the task on the same day if the prior task has zero or empty “Days” value.

Update the start time formula in one cell and copy the updated formula down to every task row.

Change he formula in F10 from
=WORKDAY(F9,1)
to
=WORKDAY(F9,IF(G9=0,0,1))

Extend the range of the GantChart Excel template

The GantChart Excel template is configured to display the blue blocks only in an 8 week range.

If your project runs longer, you need to extend the range of the display area.

Copy the calendar blocks

  • Copy paste the calendar block on the top of the page
  • Select the columns of the newly created calendar headers and set the column width of all of them to 1.67




Extend the conditional formatting range

  • On the Home tab in the Conditional Formatting dropdown select Manage Rules
  • On the top select This Worksheet, and replace “$BN” with “$zz” in every formula.

Failed to complete #create action: [You are not authorized to perform this operation

When launching an instance in AWS with Chef Test Kitchen you get the error message

>>>>>>     Failed to complete #create action: [You are not authorized to perform this operation. Encoded authorization failure message:...
  • Make sure the image does not require the acceptance of the license before you first use it. This applies to Ubuntu, CentOS

Read and Update Google Sheet data with Python

In this example we will use python to read data from Google Sheets and update another one using the Google API.

Enable the Google API

  • Navigate to https://console.developers.google.com/
  • Log in with your Google account
  • Click the Create Project link
  • Enter a project name, you can have 12 free project.
  • Click the API panel
  • Click the ENABLE APIS AND SERVICES link
  • In the G Suite section click theVIEW ALL link
  • Click the Google Sheets API panel
  • Click the Enable button
  • Navigate back to the API panel list and click the Google Drive API panel
  • Click the Enable button

Create API credentials

OAuth 2.0 Client credentials

Create the Consent Screen

First, we need to create a Consent Screen before we create our first OAuth 2.0 credential

  • On the left side select Credentials, click the CREATE CREDENTIALS button and select OAuth client ID
  • Click the CONFIGURE CONSENT SCREEN
  • Select External and click the CREATE button
  • Enter the application name, select an email address from the list, enter the developer’s email address and click the SAVE AND CONTINUE button
  • Add a Space
  • Select ../auth/drive.file
  • Click SAVE AND CONTINUE
  • Save again

Create the OAuth 2.0 credential

  • Create the credential
  • In our case, we build a desktop app
  • Enter a Name and click the CREATE button
  • Close the popup

Download the OAuth2 credentials

  • On the Credentials page click the name of the OAuth 2.0 credential name
  • Click the DOWNLOAD JSON button

Read data from Google Sheets with Python

We will use the Google tutorial at https://developers.google.com/sheets/api/quickstart/python

  • Copy the downloaded OAuth 2.0 credentials file to the application directory.
  • Add the file name to the .gitignore file to avoid committing it to GitHub
  • Enter the downloaded credentials file name in the line
            flow = InstalledAppFlow.from_client_secrets_file(
                'MY_OAUTH_CRED_FILE.json', SCOPES)
  • Set the Google sheet ID and data range in
SAMPLE_SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'
SAMPLE_RANGE_NAME = 'Class Data!A2:E'
  • The rows of your Google sheet are stored in rows of the values[] array. Adjust the row displayed column numbers in the line
print('%s, %s' % (row[0], row[4]))

Run the application

  • The app will open a page in the default web browser and will ask for a Google login
  • Click Advanced
  • Click the Go to … link
  • Grant the permission
  • Allow the access
  • Confirmation is displayed
  • Your application should display the data from the Google spreadsheet

To use a service account to read Google Sheets

Create a Google Service account

  • Click the CREATE CREDENTIALS button
  • Select the Google Drive API, Other non-UI, Appication data, No, I’m not using them options
  • Click the What credentials do I need? button
  • For the Role select Project, Owner
  • Keep JSON as the private key format, click the Continue button
  • The JSON private key downloads, save it to be able to access the API

Share the Google sheet with the Service Account

  • Open the downloaded JSON key file and copy the client_email value
  • Open the Google Sheet you want to read from
  • Click the Share button
  • Make the service account a Viewer to read the data, but if you later want to update the sheet with the same account make the service account an Editor

Reading Google sheets with a Service Account

Install the gspreadoauth2client, and pandas Python libraries on your workstation

  • Open a terminal window and execute the commands
pip3 install gspread
pip3 install --upgrade google-api-python-client oauth2client
pip3 install pandas
  • Save the code in a .py file
# import the libraries
import gspread
import pandas as pd
from oauth2client.service_account import ServiceAccountCredentials

# define the scope
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

# get the credentials from the JSON file
creds = ServiceAccountCredentials.from_json_keyfile_name('MY_CREDENTIALS_FILE.json', scope)

# authorize service account in the the clientsheet 
client = gspread.authorize(creds)

Kovászos, Vajas, Tejes Kifli

Hozzávalók 15 kis kiflihez

  • 200 g 80%-osra hidratált kovász (etessünk fel 50 g kovászt 120 g liszttel és 96 g vízzel kb. 8 órával a dagasztás kezdete előtt)
    Hogy ne legyen savanykás a kifli, akkor kezdjünk dagasztani a kovásszal, amikor emelkedik, és még csak a kétszeresére nőtt. Amikor hagyjuk a kovászt tovább nőni, kezd savanyú íze lenni.
  • 600 g liszt (BL55)
  • 350 ml langyos tej
  • 15 g vaj
  • 12 g kristálycukor
  • 10 g só

Autolízis

  • Szitáljunk 600 g lisztet a dagasztó tálba
  • Adjunk hozzá 350 ml langyos tejet
  • Keverjük össze, hogy a liszt felvegye a folyadékot
  • 30 percig lefedve pihentessük

Dagasztás

  • Adjunk a liszt – tej keverékhez
    • 200 g kovászt
    • 15 g vajat
    • 12 g cukrot
  • Lassú fordulaton 5 percig dagasszuk
  • Adjunk hozzá 10 g sót
  • Lassú fordulaton még 5 percig dagasszuk
  • Vékonyan olajozzuk ki egy tálat
  • Olajos kézzel tegyük át a tésztát a kiolajozott tálba
  • A tálban hajtogassuk fel a tészta négy oldalát a tetejére
  • Fedjük le a tálat a fedelével, vagy fóliával
  • 1 órát langyos, max 30 fokos helyen kelesszük

1. Hajtogatás

  • A tálban hagyva a tésztát hajtogassuk fel a mind a négy oldalát a tetejére és óvatosan nyomkodjuk meg az ujjbegyünkkel
  • 1 órát kelesszük

2. Hajtogatás

  • A tálban hagyva a tésztát újra hajtogassuk fel mind a négy oldalát a tetejére és óvatosan nyomkodjuk meg az ujjbegyünkkel
  • Még egy órát kelesszük

Adagolás

  • Felosztjuk a tésztát 75 g-os darabokra
  • Gombócokat sodrunk
  • Sütőpapírral bélelt tepsire tesszük a gombócokat
  • Fóliával és konyharuhával letakarjuk
  • 30 percet pihentetjük

Formázás

  • Kevés lisztet teszünk a gyúródeszka sarkára, nem a deszkára
  • A gombóc alját óvatosan belenyomjuk a lisztbe
  • Sodrófával hosszúkásra nyújtjuk
  • Ha leragad, kicsit meglisztezzük az alját
  • Felhengergetjük
  • A slusszal felfelé kicsit meggörbítve sütőpapíros tepsibe tesszük
  • 2 órát kelesztjük

Sütés

  • Tegyünk be a sütő alsó polcára egy vízzel töltött tepsit, vagy lábost
  • Melegítsük fel a légkeveréses sütőt 220 °C-ra
  • Vízzel jó alaposan permetezzük le a kifliket és a sütőpapírt
  • 15 percig sütjük