1. Installing ManageIQ
Installing ManageIQ consists of the following steps:
-
Downloading the appliance for your environment as a virtual machine image template.
-
Setting up a virtual machine based on the appliance.
-
Configuring the ManageIQ appliance.
After you have completed all the procedures in this guide, you will have a working environment on which additional customizations and configurations can be performed.
1.1. Obtaining the ManageIQ Virtual Appliance
-
In a browser, navigate to manageiq.org/download.
-
Select Microsoft Azure from the --Choose your platform-- list.
-
Select Stable from the --Choose a release-- list.
-
Follow the instructions to download the appliance.
1.2. Uploading and Provisioning the ManageIQ Virtual Appliance in Microsoft Azure
You can upload and provision the appliance in an Azure environment using the following two methods:
-
Using the Azure PowerShell script
-
Using the Azure Command-Line Interface (Azure CLI)
To upload the ManageIQ appliance file in Microsoft Azure, ensure the following requirements are met:
-
Approximately 2 GB of space for each VHD image; 44+ GB of space, 12 GB RAM, and 4 VCPUs for the ManageIQ appliance.
-
Administrator access to the Azure portal.
-
Depending on your infrastructure, allow time for the upload.
|
Azure requires that the uploaded Virtual Hard Disk (VHD) files are in a fixed format. The ManageIQ virtual appliance image VHD file is dynamic by default. Currently, the Azure Powershell script and Azure CLI do not automatically convert the dynamic VHD file to fixed during upload. To upload using either method, the ManageIQ virtual appliance image VHD file must be first converted from dynamic to fixed, and properly aligned to the nearest 1 MB boundary. Once converted and properly aligned, you can then upload the appliance virtual image VHD file using either the Azure PowerShell or Azure CLI method. |
1.2.1. Converting and Aligning the ManageIQ Virtual Appliance Image
Complete the following procedure to ensure the ManageIQ dynamic .vhd file is properly aligned to the nearest 1 MB boundary, and is in a fixed-size VHD format.
-
Convert the dynamic VHD file you downloaded in Obtaining the ManageIQ Virtual Appliance to RAW format.
$ qemu-img convert -f vpc -O raw <image-name.vhd> <image-name.raw> Example: $ qemu-img convert -f vpc -O raw example.vhd rexample.raw
-
Copy and paste the script below into a new bash shell script file, for example,
aligned-size.sh
. Change rawdisk="image-name" to the image name for your file. This script will calculate the rounded file size to the nearest 1 MB boundary.#!/bin/bash rawdisk="example.raw" MB=$((1024 * 1024)) size=$(qemu-img info -f raw --output json "$rawdisk" | gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1) * $MB)) echo "rounded size = $rounded_size" export rounded_size
-
Run the shell script. The file name
aligned-size.sh
is used in this example.$ sh aligned-size.sh rounded size =<PHONE_NUMBER>0
-
Resize the virtual appliance image using the rounded size.
$ qemu-img resize -f raw <image-name.raw> <rounded_size> Example: $ qemu-img resize -f raw example.raw<PHONE_NUMBER>0 Image resized.
-
Convert the appliance image to a fixed-size VHD file.
$ qemu-img convert -f raw -o subformat=fixed -O vpc <image-name.raw> <image-name.vhd> Example: qemu-img convert -f raw -o subformat=fixed -O vpc example.raw example.vhd
-
Get the virtual size for the VHD file.
$ qemu-img info --output=json -f vpc <path-to-image> Example: $ qemu-img info --output=json -f vpc example.vhd { "virtual-size":<PHONE_NUMBER>0, "filename": "example.vhd", "cluster-size": 2097152, "format": "vpc", "actual-size":<PHONE_NUMBER>, "dirty-flag": false }
-
Divide the virtual-size value by 1024, twice. If the result is a whole number, the VHD file is aligned properly. The example below shows that the file is properly aligned.
34361835520 / 1024 / 1024 = 32770
|
qemu-img version 1.5.3 is used in this procedure. Check the qemu-img version using the command: |
The ManageIQ Azure virtual appliance image is ready for uploading and provisioning in Microsoft Azure.
1.2.2. Using the Azure PowerShell Script
|
Make sure Azure Resource Manager cmdlets are available; see Azure Resource Manager Cmdlets for the latest installation information. |
-
Log in to Azure Resource Manager using the cmdlet:
## Customize for Your Environment $SubscriptionName = "my subscription" Login-AzureRmAccount Select-AzureRmSubscription -SubscriptionName $SubscriptionName
When prompted, enter your user name and password for the Azure Portal.
-
Upload the VHD file to a storage account. As shown in the example script below, you will first create a Resource Group through the Portal UI or PowerShell. Additionally, create the storage container defined in "BlobDestinationContainer" in advance.
Example Script: ## Customize for Your Environment $SubscriptionName = "my subscription" $ResourceGroupName = "test" $StorageAccountName = "test" $BlobNameSource = "example.vhd" $BlobSourceContainer = "templates" $LocalImagePath = "C:\tmp\$BlobNameSource" ## # Upload VHD to a "templates" directory. You can pass a few arguments, such as `NumberOfUploaderThreads 8`. The default number of uploader threads is `8`. See https://msdn.microsoft.com/en-us/library/mt603554.aspx Add-AzureRmVhd -ResourceGroupName $ResourceGroupName -Destination https://$StorageAccountName.blob.core.windows.net/$BlobSourceContainer/$BlobNameSource -LocalFilePath $LocalImagePath -NumberOfUploaderThreads 8
-
Create a virtual machine. Then, define your VM and VHD name, your system/deployment name and size. Next, you will set the appropriate Storage, Network and Configuration options for your environment.
Example Script: ## Customize for Your Environment $BlobNameDest = "example.vhd" $BlobDestinationContainer = "vhds" $VMName = "example" $DeploySize= "Standard_A3" $vmUserName = "user1" $InterfaceName = "test-nic" $VNetName = "test-vnet" $PublicIPName = "test-public-ip" $SSHKey = <your ssh public key> ## $StorageAccount = Get-AzureRmStorageAccount -ResourceGroup $ResourceGroupName -Name $StorageAccountName $SourceImageUri = "https://$StorageAccountName.blob.core.windows.net/templates/$BlobNameSource" $Location = $StorageAccount.Location $OSDiskName = $VMName # Network $Subnet1Name = "default" $VNetAddressPrefix = "<IP_ADDRESS>/16" $VNetSubnetAddressPrefix = "<IP_ADDRESS>/24" $PIp = New-AzureRmPublicIpAddress -Name $PublicIPName -ResourceGroupName $ResourceGroupName -Location $Location -AllocationMethod Dynamic -Force $SubnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $Subnet1Name -AddressPrefix $VNetSubnetAddressPrefix $VNet = New-AzureRmVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName -Location $Location -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig -Force $Interface = New-AzureRmNetworkInterface -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PIp.Id -Force # Specify the VM Name and Size $VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $DeploySize # Add User $cred = Get-Credential -UserName $VMUserName -Message "Setting user credential - use blank password" $VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $VMName -Credential $cred # Add NIC $VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id # Add Disk $OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + $BlobDestinationContainer + "/" + $BlobNameDest $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -CreateOption fromImage -SourceImageUri $SourceImageUri -Linux # Set SSH key Add-AzureRmVMSshPublicKey -VM $VirtualMachine -Path “/home/$VMUserName/.ssh/authorized_keys” -KeyData $SSHKey # Create the VM New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
These are the procedural steps as of the time of writing. For more information, see the following Azure documentation.
The steps covered in the following article are for a Windows machine, however, most of the items are common between Windows and Linux.
1.2.3. Using the Azure Command-Line Interface
Complete the following steps to upload and provision the ManageIQ virtual appliance using the Azure CLI.
Installing the Azure Command-Line Interface
|
For a complete Azure CLI 2.0 command reference, see Azure CLI 2.0: Command reference - az. |
-
Import the Microsoft repository key.
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
-
Create a local Azure CLI repository entry.
$ sudo sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
-
Update the yum package index.
$ yum check-update
-
Install the Azure CLI.
$ sudo yum install azure-cli
-
Log in to Azure.
$ az login Example: To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code GJP8Y33XY to authenticate. [ { "cloudName": "AzureCloud", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "isDefault": true, "name": "Demo Azure account", "state": "Enabled", "tenantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "user": { "name": "clouduser", "type": "user" } } ]
Creating Resources for the Appliance in Microsoft Azure Using the Azure Command-Line Interface
Complete the following steps to create resources in Microsoft Azure using the Azure CLI.
|
-
Create a resource group in an Azure region.
$ az group create --name <resource-group> --location <azure-region> Example: [clouduser@localhost]$ az group create --name azrhelclirsgrp --location southcentralus { "id": "/subscriptions//resourceGroups/azrhelclirsgrp", "location": "southcentralus", "managedBy": null, "name": "azrhelclirsgrp", "properties": { "provisioningState": "Succeeded" }, "tags": null }
-
Create a storage account; see SKU type descriptions.
$ az storage account create -l <azure-region> -n <storage-account-name> -g <resource-group --sku <sku_type> Example: [clouduser@localhost]$ az storage account create -l southcentralus -n azrhelclistact -g azrhelclirsgrp --sku Standard_LRS { "accessTier": null, "creationTime": "2017-04-05T19:10:29.855470+00:00", "customDomain": null, "encryption": null, "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Storage/storageAccounts/azrhelclistact", "kind": "Storage", "lastGeoFailoverTime": null, "location": "southcentralus", "name": "azrhelclistact", "primaryEndpoints": { "blob": "https://azrhelclistact.blob.core.windows.net/", "file": "https://azrhelclistact.file.core.windows.net/", "queue": "https://azrhelclistact.queue.core.windows.net/", "table": "https://azrhelclistact.table.core.windows.net/" }, "primaryLocation": "southcentralus", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "secondaryEndpoints": null, "secondaryLocation": null, "sku": { "name": "Standard_LRS", "tier": "Standard" }, "statusOfPrimary": "available", "statusOfSecondary": null, "tags": {}, "type": "Microsoft.Storage/storageAccounts" }
-
Get the storage account connection string.
$ az storage account show-connection-string -n <storage-account-name> -g <resource-group> Example: [clouduser@localhost]$ az storage account show-connection-string -n azrhelclistact -g azrhelclirsgrp { "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...==" }
-
Export the connection string. Copy the connection string and paste it into the following command. This connects your system to the storage account.
$ export AZURE_STORAGE_CONNECTION_STRING="<storage-connection-string>" Example: [clouduser@localhost]$ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...=="
-
Create the storage container.
$ az storage container create -n <container-name> Example: [clouduser@localhost]$ az storage container create -n azrhelclistcont { "created": true }
-
Create a virtual network.
$ az network vnet create -g <resource group> --name <vnet-name> --subnet-name <subnet-name> Example: [clouduser@localhost]$ az network vnet create --resource-group azrhelclirsgrp --name azrhelclivnet1 --subnet-name azrhelclisubnet1 { "newVNet": { "addressSpace": { "addressPrefixes": [ "<IP_ADDRESS>/16" ] }, "dhcpOptions": { "dnsServers": [] }, "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1", "location": "southcentralus", "name": "azrhelclivnet1", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceGuid": "0f25efee-e2a6-4abe-a4e9-817061ee1e79", "subnets": [ { "addressPrefix": "<IP_ADDRESS>/24", "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1/subnets/azrhelclisubnet1", "ipConfigurations": null, "name": "azrhelclisubnet1", "networkSecurityGroup": null, "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceNavigationLinks": null, "routeTable": null } ], "tags": {}, "type": "Microsoft.Network/virtualNetworks", "virtualNetworkPeerings": null } }
Uploading and Provisioning the ManageIQ Virtual Appliance Using the Azure Command-Line Interface
You can now upload and provision the appliance in an Azure environment using the Azure Command-Line Interface (Azure CLI).
-
Upload the image to the storage container. It may take several minutes. Note: Enter
az storage container list
to get the list of storage containers.$ az storage blob upload --account-name <storage-account-name> --container-name <container-name> --type page --file <path-to-vhd> --name <image-name>.vhd Example: $ az storage blob upload --account-name azrhelclistact --container-name azrhelclistcont --type page --file example.vhd --name example.vhd Finished[#############################################################] 100.0000%
-
Get the URL for the uploaded VHD file using the following command. You will need to use this URL in the next step.
$ az storage blob url -c <container-name> -n <image-name>.vhd Example: $ az storage blob url -c azrhelclistcont -n example.vhd "https://azrhelclistact.blob.core.windows.net/azrhelclistcont/example.vhd"
-
Create a reusable image from a blob and then use a managed disk.
Example: $ az image create -n <image-name> -g <miq-appliance-group> --os-type <linux> --source <https://miqstorageaccount.blob.core.windows.net/miqstoragecontainer/example.vhd>
-
Create the virtual machine. Note that the following command uses
--generate-ssh-keys
. In this example, the private/public key pair/home/clouduser/.ssh/id_rsa
and/home/clouduser/.ssh/id_rsa.pub
are created.$ az vm create --resource-group <resource-group> --location <azure-region> --use-unmanaged-disk --name <vm-name> --storage-account <storage-account-name> --os-type linux --admin-username <administrator-name> --generate-ssh-keys --image <URL> Example: az vm create --resource-group azrhelclirsgrp --location southcentralus --use-unmanaged-disk --name miq-appliance-1 --storage-account azrhelclistact --os-type linux --admin-username clouduser --generate-ssh-keys --image https://azrhelclistact.blob.core.windows.net/azrhelclistcont/example.vhd { "fqdns": "", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Compute/virtualMachines/miq-appliance-1", "location": "southcentralus", "macAddress": "00-0X-XX-XX-XX-XX", "powerState": "VM running", "privateIpAddress": "<IP_ADDRESS>", "publicIpAddress": "<IP_ADDRESS>", "resourceGroup": "azrhelclirsgrp" }
Make a note of the public IP address. You will need this to log in to the virtual machine in the next step.
-
Start an SSH session and log in to the appliance.
$ ssh -i <path-to-ssh-key> <admin-username@public-IP-address> Example: $ ssh -i /home/clouduser/.ssh/id_rsa<EMAIL_ADDRESS>The authenticity of host '<IP_ADDRESS>' can't be established. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts. Welcome to the Appliance Console For a menu, please type: appliance_console
-
Enter
sudo appliance_console
at the prompt. The summary screen appears.
You have successfully provisioned a ManageIQ virtual appliance in Microsoft Azure.
|
The exported storage connection string does not persist after a system reboot. If any of the commands in the above steps fail, export the storage connection string again using the following commands:
|
-
You will need to create a data disk for the database; see https://docs.microsoft.com/en-us/azure/virtual-machines/linux/add-disk for information about how to add a persistent disk to store your data.
-
See Database Requirements for some general guidelines for your database requirements.
-
For information about Azure ports used by ManageIQ, see https://access.redhat.com/documentation/en-us/red_hat_cloudforms/4.5/html-single/appliance_hardening_guide/#chap_red_hat_cloudforms_security_guide_firewall.
2. Enabling ManageIQ User Interface Access
To access the ManageIQ virtual appliance user interface, you need to enable access over ports 80
and 443
to the virtual machine. You can do this using the CLI or from within the Azure portal.
-
To enable a port using the CLI, enter
az vm open-port --port <port-number> --resource-group <resource-group> --name <vm-name>
. -
To enable a port using the Microsoft Azure portal, open the properties for the resource group where the appliance is located, click on Network Security Group, and add HTTP and HTTPS access.
3. Configuring ManageIQ
After installing ManageIQ and running it for the first time, you must perform some basic configuration. To configure ManageIQ, you must at a minimum:
-
Add a disk to the infrastructure hosting your appliance.
-
Configure the database.
Configure the ManageIQ appliance using the internal appliance console.
3.1. Accessing the Appliance Console
-
Start the appliance and open a terminal console.
-
Log in to the appliance using the SSH key.
-
Enter the
appliance_console
command. The ManageIQ appliance summary screen displays. -
Press
Enter
to manually configure settings. -
Press the number for the item you want to change, and press
Enter
. The options for your selection are displayed. -
Follow the prompts to make the changes.
-
Press
Enter
to accept a setting where applicable.
|
The ManageIQ appliance console automatically logs out after five minutes of inactivity. |
3.2. Configuring a Database
ManageIQ uses a database to store information about the environment. Before using ManageIQ, configure the database options for it; ManageIQ provides the following two options for database configuration:
-
Install an internal PostgreSQL database to the appliance
-
Configure the appliance to use an external PostgreSQL database
3.2.1. Configuring an Internal Database
|
Before installing an internal database, add a disk to the infrastructure hosting your appliance. See the documentation specific to your infrastructure for instructions for adding a disk. As a storage disk usually cannot be added while a virtual machine is running, Red Hat recommends adding the disk before starting the appliance. ManageIQ only supports installing of an internal VMDB on blank disks; installation will fail if the disks are not blank. |
-
Start the appliance and open a terminal console.
-
Log in to the appliance using the SSH key.
-
Enter the
appliance_console
command. The ManageIQ appliance summary screen displays. -
Press Enter to manually configure settings.
-
Select 5) Configure Database from the menu.
-
You are prompted to create or fetch an encryption key.
-
If this is the first ManageIQ appliance, choose 1) Create key.
-
If this is not the first ManageIQ appliance, choose 2) Fetch key from remote machine to fetch the key from the first appliance. For worker and multi-region setups, use this option to copy key from another appliance.
All ManageIQ appliances in a multi-region deployment must use the same key.
-
-
Choose 1) Create Internal Database for the database location.
-
Choose a disk for the database. This can be either a disk you attached previously, or a partition on the current disk.
Red Hat recommends using a separate disk for the database.
If there is an unpartitioned disk attached to the virtual machine, the dialog will show options similar to the following:
1) /dev/vdb: 20480 2) Don't partition the disk
-
Enter 1 to choose
/dev/vdb
for the database location. This option creates a logical volume using this device and mounts the volume to the appliance in a location appropriate for storing the database. The default location is/var/lib/pgsql
, which can be found in the environment variable$APPLIANCE_PG_MOUNT_POINT
. -
Enter 2 to continue without partitioning the disk. A second prompt will confirm this choice. Selecting this option results in using the root filesystem for the data directory (not advised in most cases).
-
-
Enter Y or N for Should this appliance run as a standalone database server?
-
Select Y to configure the appliance as a database-only appliance. As a result, the appliance is configured as a basic PostgreSQL server, without a user interface.
-
Select N to configure the appliance with the full administrative user interface.
-
-
When prompted, enter a unique number to create a new region.
Creating a new region destroys any existing data on the chosen database.
-
Create and confirm a password for the database.
ManageIQ then configures the internal database. This takes a few minutes. After the database is created and initialized, you can log in to ManageIQ.
3.2.2. Configuring an External Database
Based on your setup, you will choose to configure the appliance to use an external PostgreSQL database. For example, we can only have one database in a single region. However, a region can be segmented into multiple zones, such as database zone, user interface zone, and reporting zone, where each zone provides a specific function. The appliances in these zones must be configured to use an external database.
The postgresql.conf
file used with ManageIQ databases requires specific settings for correct operation. For example, it must correctly reclaim table space, control session timeouts, and format the PostgreSQL server log for improved system support. Due to these requirements, Red Hat recommends that external ManageIQ databases use a postgresql.conf
file based on the standard file used by the ManageIQ appliance.
Ensure you configure the settings in the postgresql.conf
to suit your system. For example, customize the shared_buffers
setting according to the amount of real storage available in the external system hosting the PostgreSQL instance. In addition, depending on the aggregate number of appliances expected to connect to the PostgreSQL instance, it may be
necessary to alter the max_connections
setting.
|
-
Start the appliance and open a terminal console.
-
Log in to the appliance using the SSH key.
-
Enter the
appliance_console
command. The ManageIQ appliance summary screen displays. -
Press Enter to manually configure settings.
-
Select 5) Configure Database from the menu.
-
You are prompted to create or fetch a security key.
-
If this is the first ManageIQ appliance, choose 1) Create key.
-
If this is not the first ManageIQ appliance, choose 2) Fetch key from remote machine to fetch the key from the first appliance.
All ManageIQ appliances in a multi-region deployment must use the same key.
-
-
Choose 2) Create Region in External Database for the database location.
-
Enter the database hostname or IP address when prompted.
-
Enter the database name or leave blank for the default (
vmdb_production
). -
Enter the database username or leave blank for the default (
root
). -
Enter the chosen database user’s password.
-
Confirm the configuration if prompted.
ManageIQ will then configure the external database.
3.3. Configuring a Worker Appliance
You can use multiple appliances to facilitate horizontal scaling, as well as for dividing up work by roles. Accordingly, configure an appliance to handle work for one or many roles, with workers within the appliance carrying out the duties for which they are configured. You can configure a worker appliance through the terminal. The following steps demonstrate how to join a worker appliance to an appliance that already has a region configured with a database.
-
Start the appliance and open a terminal console.
-
Log in to the appliance using the SSH key.
-
Enter the
appliance_console
command. The ManageIQ appliance summary screen displays. -
Press Enter to manually configure settings.
-
Select 5) Configure Database from the menu.
-
You are prompted to create or fetch a security key. Since this is not the first ManageIQ appliance, choose 2) Fetch key from remote machine. For worker and multi-region setups, use this option to copy the security key from another appliance.
All ManageIQ appliances in a multi-region deployment must use the same key.
-
Choose 3) Join Region in External Database for the database location.
-
Enter the database hostname or IP address when prompted.
-
Enter the port number or leave blank for the default (
5432
). -
Enter the database name or leave blank for the default (
vmdb_production
). -
Enter the database username or leave blank for the default (
root
). -
Enter the chosen database user’s password.
-
Confirm the configuration if prompted.
4. Logging In After Installing ManageIQ
Once ManageIQ is installed, you can log in and perform administration tasks.
Log in to ManageIQ for the first time after installing by:
-
Navigate to the URL for the login screen. (https://xx.xx.xx.xx on the virtual machine instance)
-
Enter the default credentials (Username: admin | Password: smartvm) for the initial login.
-
Click Login.
4.1. Changing the Default Login Password
Change your password to ensure more private and secure access to ManageIQ.
-
Navigate to the URL for the login screen. (https://xx.xx.xx.xx on the virtual machine instance)
-
Click Update Password beneath the Username and Password text fields.
-
Enter your current Username and Password in the text fields.
-
Input a new password in the New Password field.
-
Repeat your new password in the Verify Password field.
-
Click Login.
Appendix A: Appendix
A.1. Appliance Console Command-Line Interface (CLI)
Currently, the appliance_console_cli
feature is a subset of the full functionality of the appliance_console
itself, and covers functions most likely to be scripted using the command-line interface (CLI).
-
After starting the ManageIQ appliance, log in with a user name of
root
and the default password ofsmartvm
. This displays the Bash prompt for the root user. -
Enter the
appliance_console_cli
orappliance_console_cli --help
command to see a list of options available with the command, or simply enterappliance_console_cli --option <argument>
directly to use a specific option.
Option |
Description |
--region (-r) |
region number (create a new region in the database - requires database credentials passed) |
--internal (-i) |
internal database (create a database on the current appliance) |
--dbdisk |
database disk device path (for configuring an internal database) |
--hostname (-h) |
database hostname |
--port |
database port (defaults to |
--username (-U) |
database username (defaults to |
--password (-p) |
database password |
--dbname (-d) |
database name (defaults to |
Option |
Description |
--key (-k) |
create a new v2_key |
--fetch-key (-K) |
fetch the v2_key from the given host |
--force-key (-f) |
create or fetch the key even if one exists |
--sshlogin |
ssh username for fetching the v2_key (defaults to |
--sshpassword |
ssh password for fetching the v2_key |
Option |
Description |
--host (-H) |
set the appliance hostname to the given name |
--ipaserver (-e) |
IPA server FQDN |
--ipaprincipal (-n) |
IPA server principal (default: |
--ipapassword (-w) |
IPA server password |
--ipadomain (-o) |
IPA server domain (optional). Will be based on the appliance domain name if not specified. |
--iparealm (-l) |
IPA server realm (optional). Will be based on the domain name of the ipaserver if not specified. |
--uninstall-ipa (-u) |
uninstall IPA client |
|
Option |
Description |
--ca (-c) |
CA name used for certmonger (default: |
--postgres-client-cert (-g) |
install certs for postgres client |
--postgres-server-cert |
install certs for postgres server |
--http-cert |
install certs for http server (to create certs/httpd* values for a unique key) |
--extauth-opts (-x) |
external authentication options |
|
The certificate options augment the functionality of the |
Option |
Description |
--logdisk (-l) |
log disk path |
--tmpdisk |
initialize the given device for temp storage (volume mounted at |
--verbose (-v) |
print more debugging info |
$ ssh<EMAIL_ADDRESS>To create a new database locally on the server using /dev/sdb
:
# appliance_console_cli --internal --dbdisk /dev/sdb --region 0 --password smartvm
To copy the v2_key from a host some.example.com to local machine:
# appliance_console_cli --fetch-key some.example.com --sshlogin root --sshpassword smartvm
You could combine the two to join a region where db.example.com is the appliance hosting the database:
# appliance_console_cli --fetch-key db.example.com --sshlogin root --sshpassword smartvm --hostname db.example.com --password mydatabasepassword
To configure external authentication:
# appliance_console_cli --host appliance.test.company.com --ipaserver ipaserver.test.company.com --ipadomain test.company.com --iparealm TEST.COMPANY.COM --ipaprincipal admin --ipapassword smartvm1
To uninstall external authentication:
# appliance_console_cli --uninstall-ipa
A.2. Storage SKU Types
| SKU Type | Description |
|---|---|
Standard_LRS |
Locally Redundant Storage: Synchronous copies of data are created within a single data center. |
Standard_GRS |
Geographically Redundant Storage: Same as Standard_LRS with additional asynchronous copies stored in a secondary data center in a separate geographical location. |
Standard_RAGRS |
Read-Access Geographically Redundant Storage: Same as Standard_GRS with additional read access to the secondary data center. |
Standard_ZRS |
Zone Redundant Storage: For block blobs only. Stores three copies of data across multiple data centers within the region or across regions. |
Premium_LRS |
Premium Locally Redundant Storage: Same as Standard_LRS, but uses Premium Storage disks. |


|
Open source and partners
|
|
|
| |
|
HPE DEV
|
Monthly #49 |
|
|
|
|
|
|
|
|
|
Featured
|
|
|
|
|
|
|
|
|
Community
|
|
|
|
|
|
|
HPE Ezmeral Data Fabric
|
|
|
Find many of the blog posts that were written under the MapR brand (recently rebranded as HPE Ezmeral Data Fabric) here:
|
|
|
|
|
Free New eBook: AI and Analytics at Scale
|
|
|
Leading industry technologists, Ted Dunning and Ellen Friedman, offer lessons from real-world production systems in their newly released eBook. Get your free copy here.
|
|
|
|
|
HPE DEV Releases Two New Workshops-on-Demand
|
|
|
Check out our newest free, hands-on technical workshops; Managing HPE Cloud Volumes through API Calls and StackStorm 101. These on-demand courses leverage Jupyter Notebooks to give you an immersive experience in discovering how to use these new technologies.
|
|
|
|
|
|
|
|
Reserve Your Spot for our April Talk
|
|
|
Join us on April 21 to hear from Daniel Feldman, principal security software engineer, and Frederick Kautz, head of Edge Infrastructure at Doc.ai, on the specifics of building a foundation for zero trust with SPIFFE.
|
|
|
|
|
KubeDirector Podcast
|
|
|
Learn more about KubeDirector from its leading contributor and maintainer, HPE master technologist Kartik Mathur, in this Software Engineering Daily podcast.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Events
|
|
|
|
|
|
|
|
|
|
|
|
KubeCon and CloudNativeCon Europe 2021
|
|
May 4-7, 2021
|
|
|
Cloud Native Computing Foundation’s flagship conference gathers adopters and technologists from leading open source and cloud native communities.
|
|
|
|
|
|
|
HPE Discover 2021
|
|
June 22-24, 2021
|
|
|
Meet us in the Hack Shack at HPE Discover, the best virtual event to prepare you for the next wave of digital transformation, powered by the rise of the Intelligent Edge and the vital data it creates.
|
|
|
|
|
|
|
|
|
|
|
|
Engage
|
|
|
|
|
|
|
Hewlett Packard Enterprise leads with enterprise and open source solutions with the expertise to help developers and customers innovate and solve problems.
We're all developing something.
Come join
us in making the future.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This email was made with 💜 using
Grommet.
You received this email because you subscribed via the HPE Developer website or had it
forwarded from someone who did.
If you have not yet subscribed but would like to, you can do so
here.
We'll be sorry to see you go but you can
unsubscribe instantly
😢.
|
|
|
HPE Developer and its accompanying resources
are part of Hewlett Packard Enterprise, LP.
|
|
|
|
|
|
|
|
|


|
EmberZNet API Reference: For the EM35x SoC Platform
EmberZNet <IP_ADDRESS>
For the EFR32 and EM3xx Platforms
|
EmberZNet binding table API. More...
Functions | |
| EmberStatus | emberSetBinding (uint8_t index, EmberBindingTableEntry *value) |
Sets an entry in the binding table by copying the structure pointed to by value into the binding table. More... | |
| EmberStatus | emberGetBinding (uint8_t index, EmberBindingTableEntry *result) |
Copies a binding table entry to the structure that the result points to. More... | |
| EmberStatus | emberDeleteBinding (uint8_t index) |
| Deletes a binding table entry. More... | |
| bool | emberBindingIsActive (uint8_t index) |
| Indicates whether any messages are currently being sent using this binding table entry. More... | |
| EmberNodeId | emberGetBindingRemoteNodeId (uint8_t index) |
| Returns the node ID for the binding's destination if the ID is known. More... | |
| void | emberSetBindingRemoteNodeId (uint8_t index, EmberNodeId id) |
| Sets the node ID for the binding's destination. See emberGetBindingRemoteNodeId() for a description. More... | |
| EmberStatus | emberClearBindingTable (void) |
| Deletes all binding table entries. More... | |
| EmberZdoStatus | emberRemoteSetBindingHandler (EmberBindingTableEntry *entry) |
| A callback invoked when a remote node requests that a binding be added to the local binding table (via the ZigBee Device Object at endpoint 0). More... | |
| EmberZdoStatus | emberRemoteDeleteBindingHandler (uint8_t index) |
| A callback invoked when a remote node requests that a binding be removed from the local binding table (via the ZigBee Device Object at endpoint 0). More... | |
| uint8_t | emberGetBindingIndex (void) |
| Returns a binding index that matches the current incoming message, if known. More... | |
| EmberStatus | emberSetReplyBinding (uint8_t index, EmberBindingTableEntry *entry) |
| Creates a binding table entry for the sender of a message, which can be used to send messages to that sender. More... | |
| EmberStatus | emberNoteSendersBinding (uint8_t index) |
| Updates the routing information associated with a binding table entry for the sender of a message. More... | |
EmberZNet binding table API.
See binding-table.h for source code.
| bool emberBindingIsActive | ( | uint8_t | index | ) |
Indicates whether any messages are currently being sent using this binding table entry.
Note that this function does not indicate whether a binding is clear. To determine whether a binding is clear, check the EmberBindingTableEntry structure that defines the binding. The type field should have the value EMBER_UNUSED_BINDING.
| index | The index of a binding table entry. |
| EmberStatus emberClearBindingTable | ( | void | ) |
Deletes all binding table entries.
| EmberStatus emberDeleteBinding | ( | uint8_t | index | ) |
Deletes a binding table entry.
| index | The index of a binding table entry. |
| EmberStatus emberGetBinding | ( | uint8_t | index, |
| EmberBindingTableEntry * | result | ||
| ) |
Copies a binding table entry to the structure that the result
points to.
| index | The index of a binding table entry. |
| result | A pointer to the location to which to copy the binding table entry. |
| uint8_t emberGetBindingIndex | ( | void | ) |
Returns a binding index that matches the current incoming message, if known.
A binding matches the incoming message if:
0xFF
if there is no matching binding. | EmberNodeId emberGetBindingRemoteNodeId | ( | uint8_t | index | ) |
Returns the node ID for the binding's destination if the ID is known.
If a message is sent using the binding and the destination's ID is not known, the stack will discover the ID by broadcasting a ZDO address request. The application can avoid the need for this discovery by calling emberNoteSendersBinding() whenever a message arrives from the binding's destination, or by calling emberSetBindingRemoteNodeId() when it knows the correct ID via some other means, such as having saved it in nonvolatile memory.
The destination's node ID is forgotten when the binding is changed, when the local node reboots or, much more rarely, when the destination node changes its ID in response to an ID conflict.
| index | The index of a binding table entry. |
| EmberStatus emberNoteSendersBinding | ( | uint8_t | index | ) |
Updates the routing information associated with a binding table entry for the sender of a message.
This function should be used in place of emberSetReplyBinding() when a message arrives from a remote endpoint for which a binding already exists.
| index | The index of the binding to update. |
| EmberZdoStatus emberRemoteDeleteBindingHandler | ( | uint8_t | index | ) |
A callback invoked when a remote node requests that a binding be removed from the local binding table (via the ZigBee Device Object at endpoint 0).
The application is free to remove the binding from the binding table, ignore the request, or take some other action.
If the application includes emberRemoteDeleteBindingHandler(), it must define EMBER_APPLICATION_HAS_REMOTE_BINDING_HANDLER in its CONFIGURATION_HEADER and also include emberRemoteSetBindingHandler().
| index | The index of the binding entry to be removed. |
| EmberZdoStatus emberRemoteSetBindingHandler | ( | EmberBindingTableEntry * | entry | ) |
A callback invoked when a remote node requests that a binding be added to the local binding table (via the ZigBee Device Object at endpoint 0).
The application is free to add the binding to the binding table, ignore the request, or take some other action. It is recommended that nonvolatile bindings be used for remote provisioning applications.
The binding's type defaults to EMBER_UNICAST_BINDING. The application should set the type as appropriate for the binding's local endpoint and cluster ID.
If the application includes emberRemoteSetBindingHandler(), it must define EMBER_APPLICATION_HAS_REMOTE_BINDING_HANDLER in its CONFIGURATION_HEADER and also include emberRemoteDeleteBindingHandler().
| entry | A pointer to a new binding table entry. |
| EmberStatus emberSetBinding | ( | uint8_t | index, |
| EmberBindingTableEntry * | value | ||
| ) |
Sets an entry in the binding table by copying the structure pointed to by value
into the binding table.
value
.| index | The index of a binding table entry. |
| value | A pointer to a structure. |
| void emberSetBindingRemoteNodeId | ( | uint8_t | index, |
| EmberNodeId | id | ||
| ) |
Sets the node ID for the binding's destination. See emberGetBindingRemoteNodeId() for a description.
| index | The index of a binding table entry. |
| id | The ID of the binding's destination. |
| EmberStatus emberSetReplyBinding | ( | uint8_t | index, |
| EmberBindingTableEntry * | entry | ||
| ) |
Creates a binding table entry for the sender of a message, which can be used to send messages to that sender.
This function is identical to emberSetBinding() except that calling it tells the stack that this binding corresponds to the sender of the current message. The stack uses this information to associate the sender's routing info with the binding table entry.
| index | The index of the binding to set. |
| entry | A pointer to data for the binding. |


Set question.startWithNewLine property to false (true by default) to show it on the same line with the previous question.
Change question title location: top bottom default is 'top'.
survey.questionTitleLocation = 'yourValue'; survey.render();


Chelsea news: Jose Mourinho's Spurs move, Jadon Sancho's hint, transfer ban latest
The latest news from Stamford Bridge
by Joe DoyleWhile their rivals have decided to use the international break to chop and change managers, it has been a pretty quiet one for Chelsea.
The Blues went into the two week hiatus in third place in the Premier League table, joint on points with second placed Leicester City, meaning it has been so far a successful return to Stamford Bridge for Frank Lampard.
The team's 2-0 win over Crystal Palace last weekend means that they have now won six league games in a row, which is perfect preparation for the match coming up after the international break.
Chelsea travel to the Etihad Stadium to take on reigning Premier League Champions, Manchester City, in a mouthwatering fixture. Pep Guardiola's men are currently one point and one place behind the Blues in the table, in the fourth and last Champions League spot.
As preparations for the match start to take shape, check out the latest news from Stamford Bridge over the last 24 hours.
Jose Mourinho arrives at Spurs
Jose Mourinho was officially confirmed as the new Spurs manager on Wednesday morning.
The former Chelsea and Manchester United boss stated in the past that he would never join Spurs. But the world constantly throws up surprises.
Here is what Mourinho had to say after completing his move to north London.
Fans react to Mourinho's move
It's safe to say that not all of Chelsea's fans were happy about Mourinho's new job.
Some Blues supporters have reacted angrily to Mourinho's appointment, with others setting their sights set on the first clash with the Portuguese manager as Tottenham boss.
Chelsea and Spurs are yet to meet in the Premier League this season, with the first clash at Tottenham's new home on Sunday, December 22, before Mourinho is set to return to Stamford Bridge on February 22.
Transfer ban latest
Will Chelsea fans be set to find out their fate soon on the club's transfer ban?
Proceedings began on Wednesday as the Court of Arbitration for Sport opened Chelsea's appeal hearing.
Jadon Sancho hint
Borussia Dortmund forward Jadon Sancho is one of the most exciting youngsters in world football, having risen to prominence in the last few years with his performances in Germany, the Champions League and for England.
And there is strong interest in the winger, with a number of clubs said to be interested. But has he dropped a subtle hint where he'd like to be playing?


Since version 3.0 you can generate images of coordinate diagrams (resp. charts or graphs) at serverside (using PHP or ASP)
and save it as file or send it back as a stream. These 2 versions are independent from the clientside JavaScript version
of the script. The method calls of the 2 scripts are very similar to the method calls of the JavaScript version.
However, the methods for changing the properties of objects (MoveTo, ResizeTo, SetColor, etc.) are not available,
because it is not possible to change these properties after the image has been created. Because of this, the bar, box, dot,
pixel, line, area, arrow and pie objects in the JavaScript version, are methods of the diagram object in the PHP and ASP version.
The usage of the script versions is shown in the following table:
| Include the script file |
| JavaScript | <SCRIPT Language="JavaScript" src="diagram.js"></SCRIPT> |
| PHP | include ("diagram.php"); |
| ASP | <!--#include file="diagram.asp"--> |
| Generate a new diagram |
| JavaScript |
//_DiagramTarget=window; //only necessary, if the target is not the current window
D=new Diagram(); |
| PHP | $D=new Diagram();
$D->Img=@ImageCreate(480, 320) or die("Cannot create a new GD image.");
ImageColorAllocate($D->Img, 255, 255, 255); //background color |
| ASP |
Set D=New Diagram
Set D.Img=CreateObject("gdImage.Images.1")
D.Img.ImageCreate 480, 320
D.Img.ImageColorAllocate 0,255,255,255 'Background Color
|
| Add a bar, box, dot, etc... |
| JavaScript |
new Bar(10, 20, 80, 40, "#ff0000", "This is Text", "#000000", "This is TooltipText", "alert(\"This is onClick event.\")"); |
| PHP |
$D->Bar(10, 20, 80, 40, "#ff0000", "This is Text", "#000000", "This is TooltipText", "alert(\"This is onClick event.\")"); |
| ASP |
D.Bar 10, 20, 80, 40, "#ff0000", "This is Text", "#000000", "This is TooltipText", "alert(""This is onClick event."")" |
| Save the image as file |
| JavaScript | //not available and not necessary |
| PHP |
ImagePng($D->Img, "my_image.png");
ImageDestroy($D->Img); |
| ASP |
D.Img.ImagePng 0, Server.mappath("my_image.png")
D.Img.ImageDestroy 0
Set D.Img=Nothing |
| Send the image from the server back to the client as a stream |
| JavaScript | //not available and not necessary |
| PHP |
header("Content-type: image/png");
ImagePng($D->Img);
ImageDestroy($D->Img); |
| ASP |
'There is no direct support but you can get it working this way:
Set objFS=Server.CreateObject("Scripting.FileSystemObject")
FN = objFS.GetTempName()
FN=Server.mappath(FN)
D.Img.ImagePng 0, FN
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Charset = "x-ansi"
objStream.Type = 2
objStream.Open
objStream.LoadFromFile FN
Response.ContentType = "image/png"
Response.AddHeader "Content-Disposition","filename=image.png"
objStream.Position = 0
objStream.Type = 1
Response.BinaryWrite objStream.Read()
objStream.Close
Set objStream = Nothing
objFS.DeleteFile FN, false
Set objFS=Nothing
D.Img.ImageDestroy 0
Set D.Img=Nothing |
Differences between JavaScript version and
PHP/ASP version
In JavaScript you can use code like
D.Font="font-family:Verdana;font-weight:normal;font-size:10pt;line-height:13pt;";
_BFont="font-family:Verdana;font-weight:bold;font-size:10pt;line-height:13pt;";
to set the font for the Diagram object or the Bar/Box object.
In PHP (ASP) you will use code like
$D->Font=4; D.Font=4
$D->BFont=5; D.BFont=5
to set the font(1..5) for the Diagram object or the Bar/Box object.
You can set the font of the bar and box object BFont to -1..-5 for vertical text.
For vertical text of the X-axis use a Font value from -1..-5.
In JavaScript you can use the result of the predefined JavaScript function
Date.UTC(2001,0,1,0,0,0); //date/time: year, month(0..11), day, hour, min, sec
as argument for the SetBorder method of a diagram with date/time scale.
In PHP (ASP) you can use the function
UTC(2001,1,1,0,0,0); UTC(2001,1,1,0,0,0) //date/time: year, month(1..12), day, hour, min, sec
which is defined in the script file diagram.php diagram.asp.
Take care with the difference in the argument for the month!
PHP version
You can use the following methods:
- $D=new Diagram() //Constructor
- $D->SetFrame($theLeft, $theTop, $theRight, $theBottom) //Screen
- $D->SetBorder($theLeftX, $theRightX, $theBottomY, $theTopY) //World
- $D->SetText($theScaleX, $theScaleY, $theTitle) //Labels (optional)
- $D->ScreenX($theRealX) //Coordinate transformation world->screen
- $D->ScreenY($theRealY) //Coordinate transformation world->screen
- $D->RealX($theScreenX) //Coordinate transformation screen->world
- $D->RealY($theScreenY) //Coordinate transformation screen->world
- $D->GetXGrid() //returns array, which contains min, delta and max of the X grid
- $D->GetYGrid() //returns array, which contains min, delta and max of the Y grid
- $D->SetGridColor($theGridColor[, $theSubGridColor]) //Colors of X and Y grid lines
- $D->SetXGridColor($theGridColor[, $theSubGridColor]) //Colors of X grid lines
- $D->SetYGridColor($theGridColor[, $theSubGridColor]) //Colors of Y grid lines
- $D->Draw($theDrawColor, $theTextColor, $isScaleText[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]) //Display
Before drawing, you can set the following properties:
- $D->XScale // 0 = no scale; 1 = numeric (default); 2, 3, ... = date/time; string = numeric+unit
"function FunctionName" = FunctionName(ScaleValue)
- $D->YScale // 0 = no scale; 1 = numeric (default); 2, 3, ... = date/time; string = numeric+unit
"function FunctionName" = FunctionName(ScaleValue)
- $D->XScalePosition // "bottom" (default), "botom-left", "bottom-right", "top", "top-left", "top-right"
- $D->YScalePosition // "left" (default), "left-top", "left-bottom", "right", "right-top", "right-bottom"
- $D->XGridDelta //Grid interval in X-direction, if it is 0 (default) it will be detected automatically
- $D->YGridDelta //Grid interval in Y-direction, if it is 0 (default) it will be detected automatically
- $D->XSubGrids //Number of Sub-Grid intervals within one Grid interval in X-direction, if it is 0 (default) it will be detected automatically, if it is -1 then a logarithmic Sub-Grid will be drawn
- $D->YSubGrids //Number of Sub-Grid intervals within one Grid interval in Y-direction, if it is 0 (default) it will be detected automatically, if it is -1 then a logarithmic Sub-Grid will be drawn
- $D->Font //Text style for scale text (1..5), default=4
- $D->BFont //Text style for bar and box text (1..5), default=5
After calling $D->GetXGrid() / $D->GetYGrid() you can read:
- $D->XGrid[0], $D->XGrid[1] and $D->XGrid[2] // min, delta and max of the X grid
- $D->YGrid[0], $D->YGrid[1] and $D->YGrid[2] // min, delta and max of the Y grid
For the display of data you can use the following methods:
- $D->Bar($theLeft, $theTop, $theRight, $theBottom, $theDrawColor[, $theText[, $theTextColor[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]]])
- $D->Box($theLeft, $theTop, $theRight, $theBottom, $theDrawColor[, $theText[, $theTextColor[, $theBorderWidth[, $theBorderColor[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]]]]])
- $D->Dot($theX, $theY, $theSize, $theType, $theColor[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]])
- $D->Pixel($theX, $theY, $theColor)
- $D->Line($theX0, $theY0, $theX1, $theY1, $theColor[, $theSize[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]])
- $D->Area($theX0, $theY0, $theX1, $theY1, $theColor[, $theBase[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]])
- $D->Arrow($theX0, $theY0, $theX1, $theY1, $theColor[, $theSize[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]]])
- $D->Pie($theXCenter, $theYCenter, $theOffset, $theRadius, $theAngle0, $theAngle1, $theColor[, $theTooltipText[, $theOnClickAction[, $theOnMouseoverAction[, $theOnMouseoutAction]]]])
ASP version - VBScript language
You can use the following methods:
- D=New Diagram 'Constructor
- D.SetFrame theLeft, theTop, theRight, theBottom 'Screen
- D.SetBorder theLeftX, theRightX, theBottomY, theTopY 'World
- D.SetText theScaleX, theScaleY, theTitle 'Labels (optional)
- D.ScreenX(theRealX) 'Coordinate transformation world->screen
- D.ScreenY(theRealY) 'Coordinate transformation world->screen
- D.RealX(theScreenX) 'Coordinate transformation screen->world
- D.RealY(theScreenY) 'Coordinate transformation screen->world
- D.GetXGrid 'returns array, which contains min, delta and max of the X grid
- D.GetYGrid 'returns array, which contains min, delta and max of the Y grid
- D.SetGridColor theGridColor, theSubGridColor 'Colors of X and Y grid lines
- D.SetXGridColor theGridColor, theSubGridColor 'Colors of X grid lines
- D.SetYGridColor theGridColor, theSubGridColor 'Colors of Y grid lines
- D.Draw theDrawColor, theTextColor, isScaleText, theTooltipText, theEventActions 'Display
Before drawing, you can set the following properties:
- D.XScale ' 0 = no scale; 1 = numeric (default); 2, 3, ... = date/time; string = numeric+unit
"function FunctionName" = FunctionName(ScaleValue)
- D.YScale ' 0 = no scale; 1 = numeric (default); 2, 3, ... = date/time; string = numeric+unit
"function FunctionName" = FunctionName(ScaleValue)
- D.XScalePosition // "bottom" (default), "botom-left", "bottom-right", "top", "top-left", "top-right"
- D.YScalePosition // "left" (default), "left-top", "left-bottom", "right", "right-top", "right-bottom"
- D.XGridDelta 'Grid interval in X-direction, if it is 0 (default) it will be detected automatically
- D.YGridDelta 'Grid interval in Y-direction, if it is 0 (default) it will be detected automatically
- D.XSubGrids 'Number of Sub-Grid intervals within one Grid interval in X-direction, if it is 0 (default) it will be detected automatically, if it is -1 then a logarithmic Sub-Grid will be drawn
- D.YSubGrids 'Number of Sub-Grid intervals within one Grid interval in Y-direction, if it is 0 (default) it will be detected automatically, if it is -1 then a logarithmic Sub-Grid will be drawn
- D.Font 'Text style for scale text (1..5), default=4
- D.BFont 'Text style bar and box text (1..5), default=5
After calling D.GetXGrid / D.GetYGrid you can read:
- D.XGrid(0), D.XGrid(1) and D.XGrid(2) ' min, delta and max of the X grid
- D.YGrid(0), D.YGrid(1) and D.YGrid(2) ' min, delta and max of the Y grid
For the display of data you can use the following methods:
- D.Bar theLeft, theTop, theRight, theBottom, theDrawColor, theText, theTextColor, theTooltipText, theEventActions
- D.Box theLeft, theTop, theRight, theBottom, theDrawColor, theText, theTextColor, theBorderWidth, theBorderColor, theTooltipText, theEventActions
- D.Dot theX, theY, theSize, theType, theColor, theTooltipText, theEventActions
- D.Pixel theX, theY, theColor
- D.Line theX0, theY0, theX1, theY1, theColor, theSize, theTooltipText, theEventActions
- D.Area theX0, theY0, theX1, theY1, theColor, theBase, theTooltipText, theEventActions
- D.Arrow theX0, theY0, theX1, theY1, theColor, theSize, theTooltipText, theEventActions
- D.Pie theXCenter, theYCenter, theOffset, theRadius, theAngle0, theAngle1, theColor, theTooltipText, theEventActions
For theEventActions use either theOnClickAction or
Array(theOnClickAction, theOnMouseoverAction, theOnMouseoutAction)
|


Making group decisions with my friends is hard, especially when people are afraid to offend. I made this app for fun to see if we could solve the issue with an app.
Governments and health organizations frequently develop budgets that allocate available resources to different health-related expenditures, yet it is often challenging for officials to see how the resources would best be spent. For our Senior Design project, our team has built a website policy tool that helps users solve this resource allocation problem to optimally distribute resources over a network of cities to best contain the spread of epidemics.
Download presentationWorld overpopulation due to societal advances has always been a worry due to its implications for political policies, climate change, and natural resources. While historical models have worried about overpopulation, the 7th billion mark took an additional 13 years after the 6th billion, indicating the first decline in marginal growth. The UN currently predicts 9.6 billion for 2050 and 10.9 billion for 2100, with a large range of variability. My model estimates 10.4 billion in 2050 and does not make predictions for 2100, knowing that uncertainty increases the further out the point is.
Download PosterThe Intensive Care Unit's (PICU) system's work flow and key players were analyzed for sources of inefficiency. Since the unit is unpredictable and acuity is variably high, assigning patients and nurses to rooms in the PICU is a very important decision that can effect overall efficiency of resources and space. An app was designed to improve tasks that charge nurses, who are in charge of these decisions, have to perform. A prototype was tested on various charge nurses and a summary of results was presented to CHOP stakeholders. See a screenshot of the Prezi presentation to the left.
View PrototypeThe hospitalization system was analyzed in order to pinpoint readmission inefficiency using agent-based modeling. A clip of the model running is seen to the left. Data was inputted to measure particularly the differences between patients with serious mental illness and those without it. The results of the study were published in a book chapter called "Artificial Intelligence and Human Behavior Modeling: Simulation for Mental Health Conditions."
Download Book ChapterPennApps is one of the largest college hackathons, held at the University of Pennsylvania. Working a team of 4, we created a seat cushion thta battles sedentary life styles. When someone sits on it for too long, the seat cushion vibrates and sends a text to the user with an exercise suggestion. The time before buzzing and text can be adjusted. The seat cushion was created with an Edison/Arduino.
View Product WebsiteThis personality quiz website allows you to track data about your personality and the personality of your friends. It also matches your personality with a country. The motivation behind tracking data about your friends' personalities is to see if your personality type is more likely to be compatible with certain personality types, something I noticed in my own life. It can also track how your personality, which is not static, changes.
View ProjectThis game is a combination of pac-man and snake. There is a single ghost who chases the snake, that has a head of a pac-man. Besides avoiding walls and hitting itself, the pac-snake must also run from the ghost. This was programmed as a final project using Java's GUI library, Swing. See an example run of the game of the left
CitiBike is the bike rental system in place in NYC. They often have problems with bike distributions, as popular sations either get full from drop-offs or empty from pick-ups depending on the time of day. Live data about bike demand and supply was pulled from their website and inputted in a linear programming model. Given constraints on delivery and size of delivering trucks, the model outputted the best route to deliver bikes to those needing to be rebalanced.
Download Exec. SummaryThere are two types of advertising: transformational and informational. Transformational advertising appeals to emotions, while informational advertising provides concrete descriptions of the product being sold. Data was gathered through online and in-person surveys. That data was analyzed using hypothesis testing. Sensitivity analysis like linear regression was done using JMP, a statistical software, and Python scripts. It was found that transformational advertising is more effective for older age groups. See the poster presented to the left.
Download PaperAfter borrowing books from friends and often forgetting to return them as well as lending books and never getting them back, I decided to create a webapp using Ruby on Rails that keeps track of books that friends have borrowed from you. Furthermore, it allows you to see books that friends own that you may want to borrow.
View Project


Based on Keen IO template
This is a single static web page that can be displayed with any HTTP web server, offline as a HTML file.


Buhari congratulates Bello on reelection
by The Eagle OnlinePresident Muhammadu Buhari has congratulated Governor Yahaya Bello of Kogi State on his re-election in the November 16 gubernatorial poll.
The President described the election and emergence of the All Progressives Congress candidate as “a race well run and a victory well won.”
Buhari commended APC supporters for remaining steadfast and resolute even in the face of isolated incidents of violence.
Buhari condoled with the families and loved ones of those who lost their lives as a result of regrettable acts of violence by thugs doing the bidding of their political sponsors.
According to the President: “All political actors and stakeholders must take deliberate steps to eschew electoral violence as a peaceful and orderly process is vital to our quest for enduring democracy.”
He saluted officials of the Independent National Electoral Commission and security agencies for creditably discharging their responsibilities under difficult conditions.
President Buhari urged Bello to see his renewed mandate as another opportunity to build on the foundations already laid towards improving the lives of the people of Kogi State.
He also enjoined the governor to imbibe the spirit of magnanimity in victory by extending a hand of partnership to opposition candidates, while urging those dissatisfied with the outcome of the election to approach the courts.
Previous Post
Bayelsa election: Omo-Agege congratulates David Lyon
Next Post
Buhari congratulates Bayelsa Gov-elect Lyon


Tremors in Delhi as 5.9-magnitude quake hits Nepal
by PTIA medium-intensity earthquake measuring 5.9 hit Nepal on Tuesday, tremors of which were felt across several parts of north India and Delhi, an official said.
The epicentre of the quake is in Nepal and it was recorded in 7.01 pm, an official of the National Centre for Seismology said.
There were no immediate reports of loss of life or property.


Go Back
Home
AZE
About
OUR WORKS
Feature lengths
Shorts
Illustrations
Portraits
Sound mix
EXTRA
VFX&Test shots
Bloopers
Clips
Ads
Contact
Extra
VFX&Test shots
Hand to hand combat test
Superman 3D logo
Batman 3D logo
Flying super kid
Lightsaber test
Bullet time effect
Bloopers
Harry Potter and the ring of aurorship
The GRID
Məzə
Clips
Harry Potter and the ring of aurorship - Priori Incantatem
Harry Potter and the ring of aurorship - final fight
Harry Potter and the ring of aurorship - opening battle
Harry Potter and the ring of aurorship - harry abducted
Harry Potter and the ring of aurorship - fight over ring
The GRID - final challenge
The GRID - star wars challenge
The GRID - spaceship scene
The GRID - meeting with William Riddle
The GRID - Mrs Abbot scene
The GRID - Glitch
The GRID - Beginning scene
The GRID - Exam scene
The GRID - credits
Harry Potter and the ring of aurorship - short trailer
The GRID - short trailer
Ads
Qarabag playstation club


They say that soul mates are two souls that used to be one being.
That these beings were separated and that as they roam this earth they always feel
the lack of each other, the empty spot inside of them, until the momemnt they meet again.
Then they instantly know that they've met their soulmate
Then they connect and are whole again. There's no doubt in my
mind that my soul is connected to yours. With you I feel a peace,
a wholeness, I didn't know was even possible
«Previous »Next


Header
Tickets
To Do
Home 3
Home 4
Home 5
Home 6
Register here
Full Name*
Email*
Phone Number*
Password*
Generate New Tickets
To Do List
Submit
Edit
Remove
Hit the gym
Pay bills


England to host Denmark as part of Euros preparation
LONDON, Nov 20 ― England will host Denmark in one of two friendlies to be played at Wembley in March in preparation for next year's European championships.
The Three Lions will welcome the Danes, who sealed their place at Euro 2020 with a 1-1 draw against the Republic of Ireland on Monday, on March 31.
Three days earlier, England will also feature in a friendly at Wembley with the opposition to be confirmed early next year.
A final two friendlies before Euro 2020 in June will see England play one match at home outside London and one in Europe, with details over the opposition and location of those matches still to be finalised.
Gareth Southgate's men will enjoy home advantage for much of the Euros that will be hosted in 12 cities across the continent.
England will play all three of their group games at Wembley, which will also host the semi-finals and final. ― AFP


This tool lets you message each of your followers so you can tell them you moved elsewhere. Or whatever else you'd want to personally send to every one of your followers.
Log in with your Mastodon (or compatible) server:


Happy Birthday
Wait, what’s this letter? It looks like… could it be…?
Wait, what’s this letter? It looks like… could it be…?
🏰·🧙·💯
Only 19yrs late! We've known all along that your magical though, so it's not that much of a surprise. Nonetheless, congratulations... Yer a wizard Elli!
No, seriously. Or at least, you're going to be...👇
🚂·💼·🍻
On April 11th 2019, you'll be travelling to London with Robbie and Anne for an exciting event!
First of all, we'll have a morning of fun activities planned for you! These will include:
But those are just the appetizers! The real event will begin in the afternoon...👇
🕵·⚗·🔮
Get ready for your birthday treat: at 17:30, we'll be taking part together in Enigma Game's...
The School of Witchcraft and Wizardry
...an award-winning escape room based on "a certain young Wizard who will remain nameless for licensing reasons"! 🤐😅
Will you be able to prove yourself as a True Hufflepuff, or will you revealed as an evil Slytherin? Or worse, a Gryfindor?!
🍹·🎉·🎇
After a hard day of magical education, a witch just wants to have fun! And where better than in some of London's coolest hidden bars? 🍻
We hope you'll enjoy this day of magic, mystery and mayhem! 🤪 Most of all though, we're just so happy to be celebrating with you, and wish you the the biggest...
Happy Birthday


--- layout: post permalink: blousehouse.html Tags: Array NameOfCoupon: Blousehouse Cash Back Summary: See our Blousehouse Coupon Code, Blousehouse Rebate, Blousehouse Promo Code, Blousehouse Discount, Blousehouse Coupon Cash Back Rebate here. MetaKeywords: Blousehouse Coupon Code, Blousehouse Rebate, Blousehouse Promo Code, Blousehouse Cash Back Rebate, Blousehouse Discount, Blousehouse Coupon Image: images/19306.jpg LinkURL: http://www.shareasale.com/r.cfm?b=143935&u=412002&m=19306 affiliate_url_link: http://www.icouponblog.com/jane.php?id=728 thesis_readmore: See the Blousehouse Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=blousehouse.com Title: Save 5% - Blousehouse Coupon Code for blousehouse.com. Blousehouse Rebate & Discount thesis_description: Our Blousehouse Discount Coupon Code for blousehouse.com. We have the best Blousehouse Rebate anywhere. thesis_keywords: Blousehouse, Blousehouse Coupon Code, Blousehouse Discount, Blousehouse Rebate product_name: Blousehouse hop_url: http://www.icouponblog.com/hop.php?id=728 ---
If you wear a plus size and are looking to find trendy, fashionable and attractive clothing visit Blousehouse online. It is the best place to buy beautiful, smart and fashionable clothes in plus sizes. Blousehouse carries a great selection of trousers, tops, mustang pants, stylish v-neck baby dolls and so much more. Visit Blousehouse and save money on their great prices. Use our discount coupons to get an even better deal. Get business attire for your office or get smart, stylish casual wear. There is a lot to choose from at Blousehouse.
Blousehouse carries clothes from several reputable brand names. But most of their clothes come from the renowned brand, ‘A Personal Touch’ Get clothes in solid colors or prints. You can shop online with great ease. Blousehouse has a great, easy to use website. You can find all that you are looking for without wasting any time. You can shop by pattern or event or style. Most clothes are machine washable and easy to care for. Look your best in attractive, trendy and fashionable clothes from Blousehouse.
Blousehouse is a family business and cares about people and takes pride in offering the best products and services in the industry. For the most comfortable, stylish, trendy and attractive clothes in very affordable prices, check out Blousehouse online. You will love the products and our discount coupons will really give you a great price on great products!


Home
Pies
Contact
Pies
Apple Pie
$12.95
Our famous apple pie
Order
Cherry Pie
$15.95
A summer classic!
Order


Snookes1516.github.io
Henry VIII for children Tudor homework help Henry. Tudor Monarchs and wives of Henry VIII display by LissyLaw. Www.thecommunicationtrust.org.uk. Here are some facts about Catherine Parr, the sixth and final wife of King Henry VIII. Catherine Parr was born in 1512. Her father was Sir Thomas Parr and her mother. Henry the viii wives primary homework. Henry VIII was King of England from 1509 to 1547. He is probably most well-known for having six wives and for being very over-weight towards the end of his reign
Henry VIII timeline by J25 - Teaching Resources Henry the viii wives primary homework help - Get an A+ aid even for the hardest essays. 100% non-plagiarism guarantee of unique essays papers. Making a custom. Henry viii wives primary homework. A list of Henry VIII's royal palaces and houses adapted from Simon Thurley's map showing the distribution of royal houses Henry viii wives homework help NEOMIST. Henry viii wives homework help : Henry viii primary. Henry viii wives homework help essay writing help high school derek was doing his homework on his computer gamsat essay help pictures of someone doing homework.
Archives and past articles from the Philadelphia Inquirer, Philadelphia Daily News, and Philly.com. The Marriage of Henry VIII and Catherine Howard Opinion latest - The Daily Telegraph.
Editable Card Game Templates (Blue) - editable top trumps. A list of King Henry VIII’s Palaces Royal Houses. Facts About Henry VIII - Primary Facts.
Primary homework help co uk He became king henry viii and homework help co uk Kings queens who have been very different tudor kings henry viii wives. Henry the viii wives primary homework help – trading2day.com. The Tudors - Timeline of the Kings and Queens of England. A simple timeline to be displayed in the classroom giving significant dates and events in the life of Henry VIII. Can be added to as necessary.
Why did Henry VIII have six wives? - Primary Homework. 2-12-2017 · Henry divorced two of his wives (Catherine of Aragon and Anne of Cleves), he had two of his wives executed (Anne Boleyn and Catherine Howard) henry. A fun game to play for tou children - perfect for your children to design their own themed top trumps cards. Two sets of images to be used for Tudor displays: one of the Tudor monarchs and one for Henry's wives. Just a word document I made as I couldn
More information. King Henry Vlll. King Henry VIII and the Tudors-An interactive site. It's gruesome! There's some great gory pictures on the 'Wives'. Henry the viii wives primary homework help - Writing a custom dissertation means go through many steps Receive an A+ aid even for the most urgent writings. Compose.
Henry the viii wives primary homework help - witness the merits of qualified custom writing assistance available here experienced scholars working in the company. Henry viii wives homework help - Stop getting bad marks with these custom term paper tips If you want to know how to make a top-notch research paper, you are to study. Fascinating facts, did-you-knows, images, video and timeline about King Henry VIII to support primary school history topic. ค้นพบ Link ทั้งสิ้น 32049 รายการ 1. JWwdrxSoLOW tofathomthegist.com/groups/learn-101-jerriais-verbs-in-1-day-free-pdf. The best opinions, comments and analysis from The Telegraph. Henry the viii wives primary homework
On this day in history, the 28th July 1540 , Henry VIII married Catherine Howard. Henry VIII was 49 and Catherine was about 20 and it was again a love match Primary homework help co uk tudors kings henry 8 - Select. Henry divorced two of his wives (Catherine of Aragon and Anne of Cleves), he had two of his wives executed (Anne Boleyn and Catherine Howard) More information. King Henry Vlll. King Henry VIII and the Tudors-An interactive site. It s gruesome! There s some great gory pictures on the Wives. The Tudors (Find out more about the Tudors) The Tudors were Welsh. They brought peace to England after 150 years of virtually continuous warfare, encouraged.
Payakorn.com โหราศาสตร์ไทย ออนไลน์. Catherine Parr: Facts About the Sixth Wife of Henry. Homework: Ask the children to How can people in the UK help those people affected by war and poverty? Date: Lesson: History: Tudors: Henry VIII and his 6 Wives.


You push the boat out into the sea and hop in. The waves are quite a bit bigger than they looked from the beach.
The tide pulls you out to sea, and you notice that there's a hole in the bottom of the boat!
What do you want to do?


density_spplist()
: service no longer provided
densitylist()
: service no longer provided
gbifdata()
: service no longer provided
gbifmap_dens()
: service no longer provided
gbifmap_list()
: service no longer provided
occurrencedensity()
: service no longer provided
providers()
: service no longer provided
resources()
: service no longer provided
taxoncount()
: service no longer provided
taxonget()
: service no longer provided
taxonsearch()
: service no longer provided
stylegeojson()
: moving this functionality to spocc package, will be removed soon
togeojson()
: moving this functionality to spocc package, will be removed soon
gist()
: moving this functionality to spocc package, will be removed soon
The above functions have been removed. See https://github.com/ropensci/rgbif and poke around the code if you want to find the old functions in previous versions of the package, or email Scott at myrmecocystus@gmail.com


---
layout: page
title: Bill Spliter
subtitle: A convenient way to split your bills with friends.
css:
- "/css/bill-spliter.css"
js:
- "/js/bill-spliter.js"
---
Click the button to add a new record.
Warning! You should enter the amount of money correctly.


Hello! Base combines the depth of Hello! Project with the best of the modern web, providing an immersive experience for fans both new and old while striving to advance the Hello! Project fandom.
We not only love the Hello! Project fandom, we love giving back to the Hello! Project fandom. The best example of this? Hello! Party, home to the largest gatherings of international fans outside of Japan.


SPEED REDUCTION QUESTIONS: THE ORETICAL BASIS AND ENGINEERING DECISIONS QUESTIONS ON GROWTH OF SAFETTY OF MOVEMENT ACCORDING TO THE USE OF LIGHT-SCENARIOUS ELEMENTS
ABSTRACT
Osypov V.O. The issue of improving traffic safety by using new reflective elements. Visnyk National Transport University. Series «Technical sciences». Scientific and Technical Collection. - Kyiv: National Transport University, 2020. - Issue 1 (46).
The article presents the results of the development, production and implementation of modern high- tech products - micro-prism retroreflective elements for the arrangement of roundabouts of motorways, street and road networks in order to improve traffic safety at night.
KEY WORDS: LIGHT-ROTATING ELEMENT, MICROPRISMATIC STRUCTURE, MATRIXORIGINAL.
REFERENCES
- Born M. Fundamentals of Optics / Born, E. Wolff. // - M .: Science, 1973. - 720p.
- Bobrov V.F. Fundamentals of the theory of cutting metals / VF Bobrov // - M .: Mashinostroenie, 1979. - 344 p.
- US Patent 5,171,624, МКИ G02B 5/124. Retroreflective Microprismatic Material and Method of Making Same / H.Walter: 01.06.1990; 15.12.1992.
- Antonov E.E. Optical characteristics of retroreflective elements / E.E. Antonov, S.M. Shanoilo, A.V. Shikhovets, Ming Zhang, Kai Liu // Registration, zberigannya і obrobka danih. - 2008. - V. 10, No. 2.
- US Patent 1,591,572, МКИ G02B 5/124. Process and Apparatus for Making Central Triple Reflectors / J.C.Stimson; 05.02.1925; 06.07.1926.
- US Patent 3,926,402, МКИ G02B 5/124. Pin Having Nonaligned Cube Axis and Pin Axis and Bundle of Such Pins / S.A.Heenan: 18.02.1975; 16.12.1975.
- US Patent 6,015,214, МКИ G02B 5/124. Retroreflective Articles Having Microcubes, and Tools and Methods for Forming Microcubes / S.A.Heenan, A.J.Montalbano, L.A.Coman, D.I.Couzin; 30.05.1996;18.01.2000.
- Antonov E.E. Optical power systems of galvanic matrices of microcorrelate nflokoplopertalny structures / Antonov, A.V.Vankratova, O.V.Shikhovets // Reconc. - 2013. - T.15, No. 4. - P.41-50.
- Petrov V.V. Svitlopovertannya: problems and dosagnennya / V.Petrov, S.M.Shanojlo, E.Antonov [and I.] // Registration, zberigannya i drobik danih. - 2008. - Vol.10, No. 1. - P.3-15.
AUTHOR
Osypov Valentyn, National Transport University, Associate Professor Transport Technologies Department, е-mail<EMAIL_ADDRESS>тєі. +38 099-777-24-88, 01010, Kyiv, street M. Omeljanovich-Pavlenko, 1.
REVIEWER
Dmitriev M.M., First Vice-Rector, Vice-Rector for Scientific Work of the National Transport University, Doctor of Technical Sciences, Professor, Kyiv, Ukraine
Rutkovskaya I.A., Candidate of Technical Sciences, Professor, Postgraduate Student and NTU Doctorate, Kyiv, Ukraine
Article language: Ukrainian
Open Access: http://publications.ntu.edu.ua/visnyk/46/253.pdf
Print date: 15.04.2020
Online publication date: 27.10.2020


org.opcfoundation.ua.transport.https
Classes
HttpsClient
HttpsClientSecureChannel
HttpsServer
HttpsServerConnection
HttpsServerEndpointHandler
HttpsServerSecureChannel
HttpsSettings


Laser Cutting
Preparation
First, the thickness of the material used was measured and the parametrics of the [Lasercut Box] was changed accordingly. The sketches of the shapes I wanted to cut were then exported to DXF.
The files were then imported into LibreCad and collated into one file to be lasercut. This file was then brought to Coreldraw, where the final preparations were made, such as changing all the settings to those in the table below, and adding decals, such as my logo on the lid.
Machine and settings used.
| Machine | Epilog Fusion Pro | |
| Material Thickness and Type | 3.9mm Plywood | |
| Cut Settings | Speed - 25 | |
| Power - 80 | ||
| Frequency - 20 | ||
| Engrave Settings | Default |
Final Product
What went wrong
One error I made during the laser cutting process was forgetting to flip one of the sides before laser cutting. As the wood had a "nice" side and a "bad" side, without flipping, one of my side pieces had to be used with the "bad" side facing out. This is something I will keep in mind in the future.
Another error I made was not thinking about how small the logo was going to be in the final product. As such some of the outlines were too thin and werent properly engraved in the lasercutter.
3D Printing
Preparation
The 3D file of the [Knight Chess Piece] was exported as an STL file and opened in Cura to slice it.
Machine and settings used.
| Machine | Ultimaker 2+ | |
| Material | Green PLA | |
| Layer Height | 0.2mm | |
| Infill Density and Pattern | 20% Grid | |
| Supports | Zig Zag | |
| Build Plate Adhesion | Brim |


Classroom Library System
Checkin a Book
Checkout a Book
Book Checkout Page
Title:
Author:
Search
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
Return to Homepage
Submit
Choose a User to Checkin to
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
Return to Homepage
Return Book
Lost Book
Return to Users
Return to Homepage


Academic Faculty |
Industry Faculty |
Industry Expert |
|---|---|---|
|
India’s leading AI teaching and research group with decade of experience |
Industry experts from topmost tech companies like Microsoft Research, Amazon, Bell Labs, TCS, Cadence Systems, Mentor graphics, Yahoo! Etc. |
Industry experts with an immense experience in AI and ML technologies to mentor the Capstone Projects. |


You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Comments
-
Greg Hurrell
Marking as ASSIGNED.
-
Greg Hurrell
Changing assignment to reflect my new email address.
http://wincent.com/a/news/archives/2006/05/change_of_email.php
-
Greg Hurrell
See also this forum post:
http://wincent.com/a/support/forums/ubbthreads.php?ubb=showflat&Number=1233
-
Greg Hurrell
See also this forum post:
http://wincent.com/a/support/forums/ubbthreads.php?ubb=showflat&Number=1233
-
anonymous
Hi, I've stumbled on this old feature request after using Synergy for many years now and every now and then wishing it displayed the grouping tag, at least since iTunes added it, and perhaps also the comments tag. Synergy is getting updated quite a bit these days, but is there any chance we might see this in an update coming soon? Thank you!
-
Greg Hurrell
Summary changed:
- From: REQUEST: Show grouping in floater
- To: Show grouping in floater
Add a comment
Comments are now closed for this issue.


{% raw %} {% extends "layout.html" %} {% block page_title %}Forbidden{% endblock %} {% block content %}
You don't have the permission to access the requested resource. It is either read-protected or not readable by the server. Please log in or create a new account.


We're sorry but vue-custom-element-demo doesn't work properly without JavaScript enabled. Please enable it to continue.
begin


Enter a number and it will print out a list. If a number is equal to a multiple of 3, it will be replaced with "ping". If it is equal to a multiple of 5, it will display "pong". If it is a multiple of 15, it will display "pingpong".


|
|
static final int | FLAG_CLIP_OFF = (1 << 0) |
| |
|
static final int | FLAG_DITHER_OFF = (1 << 1) |
| |
| static final int | FORMAT_FLOAT_32 = (1 << 0) |
| |
|
static final int | FORMAT_INT_32 = (1 << 1) |
| |
|
static final int | FORMAT_INT_24 = (1 << 2) |
| |
|
static final int | FORMAT_INT_16 = (1 << 3) |
| |
|
static final int | FORMAT_INT_8 = (1 << 4) |
| |
|
static final int | FORMAT_UINT_8 = (1 << 5) |
| |
| static final int | HOST_API_TYPE_DEV = 0 |
| |
|
static final int | HOST_API_TYPE_DIRECTSOUND = 1 |
| |
|
static final int | HOST_API_TYPE_MME = 2 |
| |
|
static final int | HOST_API_TYPE_ASIO = 3 |
| |
| static final int | HOST_API_TYPE_SOUNDMANAGER = 4 |
| |
|
static final int | HOST_API_TYPE_COREAUDIO = 5 |
| |
|
static final int | HOST_API_TYPE_OSS = 7 |
| |
|
static final int | HOST_API_TYPE_ALSA = 8 |
| |
|
static final int | HOST_API_TYPE_AL = 9 |
| |
|
static final int | HOST_API_TYPE_BEOS = 10 |
| |
|
static final int | HOST_API_TYPE_WDMKS = 11 |
| |
|
static final int | HOST_API_TYPE_JACK = 12 |
| |
|
static final int | HOST_API_TYPE_WASAPI = 13 |
| |
|
static final int | HOST_API_TYPE_AUDIOSCIENCE = 14 |
| |
|
static final int | HOST_API_TYPE_COUNT = 15 |
| |
Java methods that call PortAudio via JNI. This is a portable audio I/O library that can be used as an alternative to JavaSound.
Please see the PortAudio documentation for a full explanation.
http://portaudio.com/docs/ http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html
This Java binding does not support audio callbacks because an audio callback should never block. Calling into a Java virtual machine might block for garbage collection or synchronization. So only the blocking read/write mode is supported.
- See also
- BlockingStream
-
DeviceInfo
-
HostApiInfo
-
StreamInfo
-
StreamParameters
- Author
- Phil Burk
Definition at line 69 of file PortAudio.java.
| static native int com.portaudio.PortAudio.getDeviceCount |
( |
| ) |
|
|
static |
- Returns
- the number of available devices. The number of available devices may be zero.
| static DeviceInfo com.portaudio.PortAudio.getDeviceInfo |
( |
int |
index | ) |
|
|
inlinestatic |
- Parameters
-
- Returns
- An DeviceInfo structure.
- Exceptions
-
| RuntimeException | if the device parameter is out of range. |
Definition at line 169 of file PortAudio.java.
| static native int com.portaudio.PortAudio.getHostApiCount |
( |
| ) |
|
|
static |
- Returns
- the number of available host APIs.
| static HostApiInfo com.portaudio.PortAudio.getHostApiInfo |
( |
int |
index | ) |
|
|
inlinestatic |
- Parameters
-
- Returns
- information about the Host API
Definition at line 188 of file PortAudio.java.
| static native int com.portaudio.PortAudio.getVersion |
( |
| ) |
|
|
static |
- Returns
- the release number of the currently running PortAudio build, eg 1900.
| static native String com.portaudio.PortAudio.getVersionText |
( |
| ) |
|
|
static |
- Returns
- a textual description of the current PortAudio build, eg "PortAudio V19-devel 13 October 2002".
| static native int com.portaudio.PortAudio.hostApiDeviceIndexToDeviceIndex |
( |
int |
hostApiIndex, |
|
|
int |
apiDeviceIndex |
|
) |
| |
|
static |
- Parameters
-
| hostApiIndex | A valid host API index ranging from 0 to (getHostApiCount()-1) |
| apiDeviceIndex | A valid per-host device index in the range 0 to (getHostApiInfo(hostApi).deviceCount-1) |
- Returns
- standard PortAudio device index
| static native int com.portaudio.PortAudio.hostApiTypeIdToHostApiIndex |
( |
int |
hostApiType | ) |
|
|
static |
- Parameters
-
| hostApiType | A unique host API identifier, for example HOST_API_TYPE_COREAUDIO. |
- Returns
- a runtime host API index
| static native void com.portaudio.PortAudio.initialize |
( |
| ) |
|
|
static |
- Parameters
-
| inputStreamParameters | input description, may be null |
| outputStreamParameters | output description, may be null |
| sampleRate | typically 44100 or 48000, or maybe 22050, 16000, 8000, 96000 |
- Returns
- 0 if supported or a negative error
- Parameters
-
| inputStreamParameters | input description, may be null |
| outputStreamParameters | output description, may be null |
| sampleRate | typically 44100 or 48000, or maybe 22050, 16000, 8000, 96000 |
| framesPerBuffer | |
| flags | |
- Returns
Definition at line 250 of file PortAudio.java.
| static native void com.portaudio.PortAudio.terminate |
( |
| ) |
|
|
static |
Library termination function - call this when finished using PortAudio. This function deallocates all resources allocated by PortAudio since it was initialized by a call to initialize(). In cases where Pa_Initialise() has been called multiple times, each call must be matched with a corresponding call to terminate(). The final matching call to terminate() will automatically close any PortAudio streams that are still open.
Referenced by com.portaudio.PlaySine.play().
| final int com.portaudio.PortAudio.FORMAT_FLOAT_32 = (1 << 0) |
|
static |
| final int com.portaudio.PortAudio.HOST_API_TYPE_DEV = 0 |
|
static |
These HOST_API_TYPES will not change in the future.
Definition at line 83 of file PortAudio.java.
| final int com.portaudio.PortAudio.HOST_API_TYPE_SOUNDMANAGER = 4 |
|
static |
The documentation for this class was generated from the following file:


---
layout: default
title: Puzzle
description: "Playground - puzzle"
permalink: /playground/puzzle/
group: playground-project
parent: playground
lang: en
language: English
thumbnail: playground-puzzle-2016-tile
order: 2
---
{% include image50vw.html basename="playground-puzzle-2016-02" alt="playground puzzle 2016" %}
{% include image50vw.html basename="playground-puzzle-2016-03" alt="playground puzzle 2016" %}
{% include image100vw.html basename="playground-puzzle-2016-01" alt="playground puzzle 2016" %}
{% include playground-tiles.html %}


THE LORD PROVIDES
"...So that Christ may dwell in your hearts through faith; and that you, being rooted and grounded in love, may be able to comprehend with all the saints what is the breadth and length and height and depth, and to know the love of Christ which surpasses knowledge, that you may be filled up to all the fullness of God. Now to Him who is able to do exceedingly abundantly beyond all that we ask or think, according to the power that works within us, to Him be the glory in the church and in Christ Jesus to all generations forever and ever. Amen".
SPONSOR OUR STAFF
Staff food, laundry, training materials, staff shirts, training weekends, administrative staff and the list goes on of budget items that continue to grow as our staff does. The focus of this campaign is two fold. First, to birth a community of Alumni that believes in the mission of Sonshine Ministries and desires to still impact campers' lives with the Gospel of Jesus Christ THROUGH Sonshine Staff. Second, our hope is that year after year our Alumni community would grow in number and in financial generosity providing future Sonshine Staff the opportunity to serve as a strategic "financial lifestyle" of the camp's Alumni to lower camper prices and expose more campers to Jesus Christ. We are calling on all Sonshine Ministries Alumni to support a current staff member for a minimum of one week. Call our office for more details!
SONSHINE MINISTRIES
Sonshine Specialized Camping Ministries
P.O. Box 1527 Woodbridge, CA 95258
209-367-0212 (phone)
209-368-1662 (fax)


!
10/14/19
This took an awful long time to get off the ground, but now that I have gotten back on my feet, I am able to continue the madness. After getting screwed on discrete math homework, I have realized that formatting is important. Much more than I previously thought. What I have today are a couple of terms from Blockchain club that will help get me off the ground. Hopefully tomorrow I will be able to maintain the level of productivity that I had today.


With our simple tool, you can easily organize lunches, board game nights, or anything you can think of with your friends
Find Out MoreSnakeDen primarily helps students and young professionals find time to meet new and old friends through an in-product suggestion engine. Overlaying schedules and typical behaviors for people like you, it will suggest times and durations for lunch or other activities. SnakeDen intelligently calculates time slots that work for multiple users as well as provides location-based suggestions for places to hang out or to meet new people.
Get Started!Enjoy amazing plans with friends that fit your schedule
Communicate plans with friends quickly
A detailed profile of plan options to decide from based on your calendar
We love building tools for you to connect with your crew
Reach out and provide us feedback
(510) 642-6000


{% extends "users/base.html" %} {% block title %} Log in {% endblock title%} Here is main.html. {% block content %}


The defendant's response
The defendant Mary Richards responded that they have paid what they believe they owe.
How much and when did they pay?
They paid £300 on the 1 October 2017
Their defence
Why they dispute the amount claimed
I the amount owed which was £300. Im not sure where the additional £1100 is coming from.
Their timeline of events
| Date | What happened |
|---|---|
| 03/01/2017 | I contacted Mary Richards to discuss building works on our roof. |
| 06/01/2017 | We agreed what work should be done and signed a contract. |
They disagree with your evidence
I didn't get an email from Jan about this, so I didn't get a chance to sort it out. It would be good to see a copy of the email.
How this dispute has affected them
I'm sorry you have felt stress during this process but would like claim resolved amicably.


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use RDFRDBException | |
|---|---|
| com.hp.hpl.jena.db | A general database backend for persistent storage of Jena models. |
| com.hp.hpl.jena.shared | This package defines some classes common to the Jena API and SPI levels, in particular the JenaException class from which all Jena-specific exceptions hang, and the interface PrefixMapping for translation to and from QNames. |
| Uses of RDFRDBException in com.hp.hpl.jena.db |
|---|
| Methods in com.hp.hpl.jena.db that throw RDFRDBException | |
|---|---|
void |
ModelRDB.clear()
Deprecated. Since Jena 2.0 this call is not recommended (it's name is misleading) - to clear an entire database use DBConnection.cleanDB, to remove just this Model use Model.remove(). |
boolean |
IDBConnection.containsDefaultModel()
Test if a default model is contained in the database. |
boolean |
DBConnection.containsDefaultModel()
|
boolean |
IDBConnection.containsModel(java.lang.String name)
Test if a given model is contained in the database. |
boolean |
DBConnection.containsModel(java.lang.String name)
|
static ModelRDB |
ModelRDB.create(IDBConnection dbcon,
java.lang.String databaseType)
Deprecated. Since Jena 2.0 this call is no longer needed - it is preferable to specify the database type when constructing the DBConnection. Then use the call ModelRDB.createModel(IDBConnection) |
static ModelRDB |
ModelRDB.create(IDBConnection dbcon,
java.lang.String layoutType,
java.lang.String databaseType)
Deprecated. Since Jena 2.0 this call is no longer needed - it is preferable to specify the database type when constructing the DBConnection and to modify the layout by using the properties in the DBConnection. Then use the call ModelRDB.createModel(IDBConnection) |
static ModelRDB |
ModelRDB.createModel(IDBConnection dbcon)
Create a new default model on an existing database. |
static ModelRDB |
ModelRDB.createModel(IDBConnection dbcon,
Model modelProperties)
Create a new model on an existing database. |
static ModelRDB |
ModelRDB.createModel(IDBConnection dbcon,
java.lang.String name)
Create a new model on an existing database. |
static ModelRDB |
ModelRDB.createModel(IDBConnection dbcon,
java.lang.String name,
Model modelProperties)
Create a new model on an existing database. |
static void |
ModelRDB.deleteModel(IDBConnection dbcon,
java.lang.String name)
Deprecated. Since Jena 2.0, to remove a model use the ModelRDB.remove() |
ExtendedIterator |
IDBConnection.getAllModelNames()
Retrieve a list of all models in the database |
ExtendedIterator |
DBConnection.getAllModelNames()
|
Model |
IDBConnection.getDatabaseProperties()
Returns a Jena Model containing database properties. |
Model |
DBConnection.getDatabaseProperties()
|
Model |
IDBConnection.getDefaultModelProperties()
Retrieve a default set of model customization properties. |
Model |
DBConnection.getDefaultModelProperties()
|
com.hp.hpl.jena.db.impl.IRDBDriver |
IDBConnection.getDriver()
Get the database-specific driver For this to work, it needs to know the type of database being used. |
com.hp.hpl.jena.db.impl.IRDBDriver |
DBConnection.getDriver()
|
com.hp.hpl.jena.db.impl.IRDBDriver |
IDBConnection.getDriver(java.lang.String layout,
java.lang.String database)
Deprecated. As of Jena 2.0 this call should not be used. Instead specify the database type when constructing a DBConnection and then pass that connection to the GraphRDB. There is no longer any need for applications to interact with the IRDBDriver. To customize the database configuration/layout use the formatDB(propertyModel) call. |
com.hp.hpl.jena.db.impl.IRDBDriver |
DBConnection.getDriver(java.lang.String layout,
java.lang.String database)
Deprecated. As of Jena 2.0 this call should not be used. Instead specify the database type when constructing a DBConnection and then pass that connection to the GraphRDB. There is no longer any need for applications to interact with the IRDBDriver. To customize the database configuration/layout use the formatDB(propertyModel) call. |
boolean |
IDBConnection.isFormatOK()
Return true if the database seems to be formated for RDF storage. |
static ExtendedIterator |
ModelRDB.listModels(IDBConnection dbcon)
List the names of all models stored in the database |
static ModelRDB |
ModelRDB.open(IDBConnection dbcon)
Open the default model from an existing rdf database. |
static ModelRDB |
ModelRDB.open(IDBConnection dbcon,
java.lang.String name)
Open an existing rdf database. |
void |
ModelRDB.remove()
Remove all traces of this particular Model from the database. |
void |
IDBConnection.setDatabaseProperties(Model propertyModel)
Sets database-specific properties. |
void |
DBConnection.setDatabaseProperties(Model dbProperties)
|
| Constructors in com.hp.hpl.jena.db that throw RDFRDBException | |
|---|---|
ModelRDB(GraphPersonality p,
GraphRDB graph)
A model which is stored persistently in a Relational DataBase Most applications should not call the constructor - use ModelRDB.createModel (to create a new model) or ModelRDB.open (to open an exising model). |
|
ModelRDB(IDBConnection dbcon)
Deprecated. Since Jena 2.0, this call is not recommended - in the short-term use ModelRDB.open or ModelRDB.createModel; in the longer-term use factory methods to construct persistent models. |
|
ModelRDB(IDBConnection dbcon,
java.lang.String modelID)
Deprecated. Since Jena 2.0, this call is not recommended - in the short-term use ModelRDB.open or ModelRDB.createModel; in the longer-term use factory methods to construct persistent models. |
| Uses of RDFRDBException in com.hp.hpl.jena.shared |
|---|
| Subclasses of RDFRDBException in com.hp.hpl.jena.shared | |
|---|---|
class |
AlreadyExistsException
Exception to throw when an attempt is made to create a named object (eg persistent model) when an object of that name already exists. |
class |
DoesNotExistException
Exception thrown when an attempt is made find an entity by name, but it cannot be located. |
class |
RulesetNotFoundException
RulesetNotFoundException - exception to throw when a Ruleset is not found (eg when handing reasoner specifications) |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


THE SUBSTITUTE A film review by Michael John Legeros Copyright 1996 Michael John Legeros
(Orion) Directed by Robert Mandel Written by Roy Frumkes, Rocco Simonelli, and Alan Ormsby Cast Tom Berenger, Diane Venora, Ernie Hudson, Glenn Plummer, Marc Anthony, William Forsythe, Luis Guzman MPAA Rating "R" (presumably for language and violence) Running Time 120 min. Reviewed at Carmike Cinemas, Raleigh, NC (21APR96)
==
Anyone who has ever taught public school should get a (mild) charge out of this one. Tom Berenger stars as an out-of-work "operative" who take his girlfriend's place at an inner-city high-school, after an assault (on her) by a gang member. He traces the attack back to a student, quickly arranges some fake credentials, and shows up the next day as "Mr. Smith." Just like that. Predictable, poorly lit, and possessing a tone that too easily shifts on a dime (from revenge fantasy to message movie to all points in-between), THE SUBSTITUTE is best enjoyed at face value.
The ensemble acting is surprisingly sincere, with Berenger lean and mean in the title role. (He reminds me of how the Marvel Comics' character The Punisher would behave on-screen, had he not been played by the unfortunate Dolph Lundgren in that unfortunate 1990 movie.) The film also has a strong sense humor, right down to the straight-faced Schwarzenegger accent attempted by Berenger. Of course, to enjoy this nonsense, you have accept a harsh moral stance that allows, among other things, all drug dealers to be shot on sight. Exploitative? Yes. Gratuitous? Yes. Just remember to check your testosterone level before entering.
THE SUBSTITUTE kicks effective butt for about an hour and a half, at which point the story finally-- inevitably?-- begins to repeat itself. The last twenty minutes are the worst: Yet Another Showdown, except this one so poorly lit that we can't tell who is shooting whom. Leave a half-hour early and you won't miss a thing. Really. Now, if only someone had thought to make DANGEROUS MINDS with Linda Hamilton instead of Michelle Pfieffer. She'd be back.
Grade: C+
--
Mike Legeros - Raleigh, NC
<EMAIL_ADDRESS>(h) -<EMAIL_ADDRESS>(w)
Visit me in MOVIE HELL
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews