Apache Felix Framework Usage Documentation
- Downloading the Framework
- Starting the Framework
- Framework Shell
- Bundle Auto-Deploy
- Configuring the Framework
- Configuring Bundles
- Feedback
Downloading the Framework
Go to the downloads page and download the latest Felix framework distribution.
Starting the Framework
Start the framework from the installation directory by typing:
java -jar bin/felix.jar
The framework launcher starts the framework and installs and starts all bundles contained in the bundle directory of the current directory. By default, the bundle directory contains shell-related bundles providing a textual user interface to interact with the framework. Bundles installed into the framework are copied into a bundle cache directory for subsequent executions. By default, the framework creates a cache directory, called felix-cache, in your current working directory. If you want to start the framework using a different bundle cache directory, you can do so like this:
java -jar bin/felix.jar <cache-path>
Where <cache-path> is the path you want to use as the bundle cache. If you specify a relative cache path, then it will be treated as relative to the current working directory.
| Useful Information Previous versions of the framework prompted for a profile name when executed. The profile name was used to create a directory inside .felix/ in the user home directory. This approach allowed users to have different sets of bundles for different purposes, e.g., testing, production, etc. If this behavior is still desired, it is very easy to mimic. Modify conf/config.properties to include "felix.cache.rootdir=${user.home}/.felix". Now, if you start Felix with something like "java -jar bin/felix.jar foo", it will use "${user.home}/.felix/foo/" as the bundle cache directory, where "${user.home}" is automatically substituted with the appropriate system property by the launcher. |
Framework Shell
The main way to interact with the framework is via the supplied Apache Felix Gogo shell. After starting the framework, type help into the shell to see the list of the available commands and help <command-name> to get help for a specific command.
| Useful Information In Gogo, command names are made up of two parts: <scope>:<name>. This is similar to a fully qualified class name in Java and is used to avoid naming collisions. If the <name> portion of the command is unique, then you only need to type it. If not, then you must either type the full <scope>:<name> or arrange the scope search path accordingly. |
To install bundles, use the felix:install command, which is described in more detail in the next sub-section. To list installed bundles, use the felix:lb command. To stop the framework type stop 0 to stop the System Bundle; any installed bundles will automatically be reloaded (and potentially restarted) the next time you launch with the associated cache.
Installing Bundles
A bundle is the OSGi term for a component for the OSGi framework. A bundle is simply a JAR file containing a manifest and some combination of Java classes, embedded JAR files, native code, and resources. A bundle may provide some specific functionality for the user or it may implement a service that other bundles can use; bundles can only use functionality from other bundles through shared services and packages.
The Felix framework distribution comes with three bundles, which are located in the bundle/ directory of the framework distribution installation directory. These bundles include the Gogo Runtime (core command processing functionality), Gogo Shell (text-based shell user interface), Gogo Command (basic set of commands), and Bundle Repository (a bundle repository service). In addition to these bundles, the bundle repository provides access to other bundles for easy installation. The bundle repository service provides a set of shell commands in the obr:* scope; refer to the Apache Felix OSGi Bundle Repository for more information.
Before installing any bundles, it is important to understand how bundles are manually deployed into the framework. Bundles are deployed in two stages; first they are installed, then they are started. To install a bundle use the felix:install shell command followed by a bundle URL. For example, to install a bundle.jar bundle you type:
felix:install file:/path/to/bundle/bundle.jar
Once a bundle is installed, it can then be started by using the felix:start command and the bundle identifier of the desired bundle. The felix:lb command is used to list installed bundles and to obtain the bundle's identifier. The following Felix shell session illustrates how to start the bundle.jar bundle:
g! install file:/path/to/bundle/bundle.jar g! lb START LEVEL 1 ID|State |Level|Name 0|Active | 0|System Bundle (3.0.0) 1|Active | 1|Apache Felix Bundle Repository (1.6.2) 2|Active | 1|Apache Felix Gogo Command (0.6.0) 3|Active | 1|Apache Felix Gogo Runtime (0.6.0) 4|Active | 1|Apache Felix Gogo Shell (0.6.0) 5|Installed | 1|Example Bundle (1.0.0) g! start 5 Hello from Bundle 5. g!
The felix:stop command is used to stop a bundle and the felix:uninstall command is used to remove a bundle from the bundle cache. As an alternative to using the felix:install and felix:start commands explicitly, it is also possible to install and start a bundle in one step by using the felix:start command with a bundle URL.
Bundles can be updated using the felix:update command. The update command allows you to specify an URL from which to retrieve the updated bundle, but if one is not specified it will try to update the bundle from the bundle's Bundle-UpdateLocation manifest attribute, if present, or the bundle's original location URL.
| Useful Information When you use felix:update or felix:uninstall, the changes appear to take effect immediately, but in reality the changes are only partially enacted. If a bundle is updated or uninstalled and it was exporting packages, these packages are not removed until the framework is refreshed using the PackageAdmin service. The Felix shell offers a convenient refresh command for this purpose. This is the correct behavior as defined by the OSGi specification. |
For an introduction to writing bundles and services, refer to the Felix bundle tutorial.
Web Proxy Issues when Installing Bundles
If you use a proxy for Web access, then you may run into difficulty using the Gogo shell to install bundles from remote URLs. To remedy this situation, certain system properties must be set to make the framework work with your proxy. These properties are:
- http.proxyHost - the name of the proxy host.
- http.proxyPort - the port of the proxy host.
- http.proxyAuth - the user name and password to use when connecting to the proxy; this string should be the user name and password separated by a colon (e.g., rickhall:mypassword).
These system properties can be set directly on the command line when starting the JVM using the standard "-D<prop>=<value>" syntax or you can put them in the lib/system.properties file of your Felix installation; see the next section on configuring Felix for more information.
Bundle Auto-Deploy
To minimize the amount of configuration necessary to install bundles when you launch the framework, the Felix launcher uses the concept of an "auto-deploy" directory. The Felix launcher deploys all bundles in the auto-deploy directory into the framework instance during startup. By default, the auto-deploy directory is "bundle" in the current directory, but it can be specified on the command line like this:
java -jar bin/felix.jar -b /path/to/dir
Specifying an auto-deploy directory replaces the default directory, it does not augment it. The framework distribution is configured to install and start bundles in the auto-deploy directory. Both the location of the auto-deploy directory and the deployment actions performed can be controlled by the following configuration properties, respectively:
- felix.auto.deploy.dir - Specifies the auto-deploy directory from which bundles are automatically deploy at framework startup. The default is the bundle/ directory of the current directory.
- felix.auto.deploy.action - Specifies the auto-deploy actions to be performed on the bundle JAR files found in the auto-deploy directory. The possible actions are install, update, start, and uninstall. If no actions are specified, then the auto-deploy directory is not processed (i.e., it is disabled). There is no default value for this property, but the default config.properties file installed with the Felix framework distribution sets the value to: install, start
The next section describes how to set and use configuration properties.
Configuring the Framework
Both the Felix framework and the launcher use configuration properties to alter their default behavior. The framework can only be configured by passing properties into its constructor, but the launcher provides a mechanism to configure the framework via a property file. The framework launcher reads configuration properties from conf/config.properties. This file uses standard Java property file syntax.
The launcher also supports setting system properties via the conf/system.properties file. This file is purely for convenience when you need to repeatedly set system properties when running the framework. While the framework itself does not look at system properties, the launcher does copy any framework configuration properties found in the system properties into the framework configuration map, also for your convenience.
It is possible to specify different locations for these property files using the felix.config.properties and felix.system.properties system properties when executing the framework. For example:
java -Dfelix.config.properties=file:/home/rickhall/config.properties -jar bin/felix.jar
Configuration and system properties are accessible at run time via BundleContext.getProperty(), but configuration properties override system properties.
The following configuration properties are for the launcher:
- felix.auto.deploy.dir - Specifies the auto-deploy directory from which bundles are automatically deploy at framework startup. The default is the bundle/ directory of the current directory.
- felix.auto.deploy.action - Specifies a comma-delimited list of actions to be performed on bundle JAR files found in the auto-deploy directory. The possible actions are install, update, start, and uninstall. An undefined or blank value is equivalent to disabling auto-deploy processing.
- felix.auto.install.<n> - Space-delimited list of bundle URLs to automatically install when Felix is started, where <n> is the start level into which the bundle will be installed (e.g., felix.auto.install.2).
- felix.auto.start.<n> - Space-delimited list of bundle URLs to automatically install and start when Felix is started, where <n> is the start level into which the bundle will be installed (e.g., felix.auto.start.2).
- felix.shutdown.hook - Specifies whether the launcher should install a shutdown hook to cleanly shutdown the framework on process exit. The default value is true.
The following configuration properties are for the framework (properties starting with "felix" are specific to Felix, while those starting with "org.osgi" are standard OSGi properties):
- org.osgi.framework.storage - Sets the directory to use as the bundle cache; by default bundle cache directory is felix-cache in the current working directory. The value should be a valid directory name. The directory name can be either absolute or relative. Relative directory names are relative to the current working directory. The specified directory will be created if it does not exist.
- felix.cache.rootdir - Sets the root directory used to calculate the bundle cache directory for relative directory names. If org.osgi.framework.storage is set to a relative name, by default it is relative to the current working directory. If this property is set, then it will be calculated as being relative to the specified root directory.
- org.osgi.framework.storage.clean - Determines whether the bundle cache is flushed. The value can either be "none" or "onFirstInit", where "none" does not flush the bundle cache and "onFirstInit" flushes the bundle cache when the framework instance is first initialized. The default value is "none".
- felix.cache.bufsize - Sets the buffer size to be used by the cache; the default value is 4096. The integer value of this string provides control over the size of the internal buffer of the disk cache for performance reasons.
- org.osgi.framework.system.packages - Specifies a comma-delimited list of packages that should be exported via the System Bundle from the framework class loader. The framework will set this to a reasonable default. If the value is specified, it replaces any default value.
- org.osgi.framework.system.packages.extra - Specifies a comma-delimited list of packages that should be exported via the System Bundle from the framework class loader in addition to the packages in org.osgi.framework.system.packages. The default value is empty. If a value is specified, it is appended to the list of default or specified packages in org.osgi.framework.system.packages.
- org.osgi.framework.bootdelegation - Specifies a comma-delimited list of packages that should be made implicitly available to all bundles from the parent class loader. It is recommended not to use this property since it breaks modularity. The default value is empty.
- org.osgi.framework.bundle.parent - Specifies which class loader is used for boot delegation. Possible values are: boot for the boot class loader, app for the application class loader, ext for the extension class loader, and framework for the framework's class loader. The default is boot.
- felix.bootdelegation.implicit - Specifies whether the framework should try to guess when to implicitly boot delegate to ease integration with external code. The default value is true.
- felix.systembundle.activators - A List of BundleActivator instances that are started/stopped when the System Bundle is started/stopped. The specified instances will receive the System Bundle's BundleContext when invoked. (This property cannot be set in the configuration file since it requires instances; it can only be passed into Felix' constructor directly.)
- felix.log.logger - An instance of Logger that the framework uses as its default logger. (This property cannot be set in the configuration file since it requires an instance; it can only be passed into Felix' constructor directly.)
- felix.log.level - An integer value indicating the degree of logging reported by the framework; the higher the value the more logging is reported. If zero ('0') is specified, then logging is turned off completely. The log levels match those specified in the OSGi Log Service (i.e., 1 = error, 2 = warning, 3 = information, and 4 = debug). The default value is 1.
- org.osgi.framework.startlevel.beginning - The initial start level of the framework once it starts execution; the default value is 1.
- felix.startlevel.bundle - The default start level for newly installed bundles; the default value is 1.
- felix.service.urlhandlers - Flag to indicate whether to activate the URL Handlers service for the framework instance; the default value is "true". Activating the URL Handlers service will result in the URL.setURLStreamHandlerFactory() and URLConnection.setContentHandlerFactory() being called.
The Felix framework distribution contains a default conf/config.properties.
Migrating from Earlier Versions
Apache Felix Framework 2.0.0 introduced some configuration property changes. This section describes the differences from older versions of the framework.
- Removed
- felix.embedded.execution - No longer needed, since the framework now never calls System.exit(); the creator of the framework is now always responsible for exiting the VM.
- felix.strict.osgi - No longer needed, since all non-specification features have been removed.
- felix.cache.dir - No longer needed, since Felix no longer uses bundle cache profiles for saving sets of bundles.
- felix.cache.profile - No longer needed, since the framework no longer uses bundle cache profiles for saving sets of bundles.
- felix.fragment.validation - No longer needed, since the framework supports fragments.
- Renamed
- felix.cache.profiledir - The equivalent of this property is now named org.osgi.framework.storage.
- felix.startlevel.framework - The equivalent of this property is now named org.osgi.framework.startlevel.beginning.
- Introduced
- org.osgi.framework.system.packages.extra - New property, as described above, added to align with standard framework API.
- org.osgi.framework.storage.clean - New property, as described above, added to align with standard framework API.
- felix.cache.rootdir - Introduced as a result of removing bundle profiles to help resolve relative bundle cache directories.
For the most part, these changes are minor and previous behavior achieved from older configuration properties is either easily attained with the new properties or no longer necessary.
System Property Substitution
It is possible to use system properties to specify the values of properties in the conf/config.properties file. This is achieved through system property substitution, which is instigated by using ${<property>} syntax, where <property> is the name of a system property to substitute. When the properties file is read, any such property values are substituted as appropriate. It is possible to have nested system property substitution, in which case the inner-most property is substituted first, then the next inner most, until reaching the outer most.
Configuring Bundles
Some bundles use properties to configure certain aspects of their behavior. It is a good idea, when implementing bundles, to parameterize them with properties where appropriate. To learn about the configuration options for specific bundles, refer to the documentation that accompanies them.
Bundle properties may also be defined in the conf/config.properties property file. Any property placed in this file will be accessible via BundleContext.getProperty() at run time. The property file uses the standard Java property file syntax (i.e., attribute-value pairs). For information on changing the default location of this file, refer to the section on configuring Felix.
Feedback
Subscribe to the Felix users mailing list by sending a message to<EMAIL_ADDRESS>after subscribing, email questions or feedback to users@felix.apache.org.


ACM Private Certificate Authority (ACM Private CA)
This workshop demonstrates how ACM Private Certificate Authority (PCA) service can be used to create a complete CA hierarchy, generate a private certificate, and apply the private certificate on an Application Load Balancer while following security best practices.
1. You will be using a AWS provided account for this workshop.
- If you are logged into your personal AWS account or your corporate AWS account, you should log out now.
- Open this link in a new browser tab: AWS provided account
- Log in with your hash
- Click on the AWS Console button
- It should bring up a pop-up screen. On the pop-up, under Login Link click on Open Console
- You should be logged into the AWS provided account
- Please verify that the region selected is N. Virginia or Oregon
Setup Certificate Authority Hierarchy
2. An IAM Role called CaAdminRole is the role that a CA administrator would assume.
-
Assume the role named CaAdminRole by using switch role on the AWS console in the AWS account that you are currently logged into
-
This role has permissions that a Certificate Authority administrator will need for CA administration. As a CA administrator you will be responsible for creating a root and subordinate certificate authority hierarchy
-
If you are not familiar with switching roles, follow this tutorial if needed: Assume Role in Console
3. Build the infrastructure needed for creating a CA hierarchy by deploying the cloudformation template below
Please download the CF template by right clicking and save link as the filename template-ca-admin.yaml CA Admin Cloudformation Stack by right clicking and saving the yaml file on your laptop.
Upload and launch the cloudformation stack in the AWS account that you are logged into. If you are not familiar with this, follow instructions here by right clickking and opening link in a new browser tab Deploy Cloudformation Stack Instructions
4. Create a Root CA.
- Navigate to ACM Service in the AWS Console
- Click Get Started under Private Certificate Authority
- Open this link in a new browser tab for the rest of the steps : Creating a Root CA
5. Create a Subordinate Issuing CA.
- Navigate to ACM Service in the AWS Console
- Under Private CA's click on the Create CA button
- Open this link in a new browser tab for the rest of the steps : Creating a Subordinate CA
6. Quiz time. Open this link in a new browser tab: quiz
Create Application
7. An IAM Role called AppDevRole is the role that an application developer would assume.
-
Assume the role named AppDevRole by using switch role on the AWS console in the AWS account that you are currently logged into
-
This role has permissions that a Application developer will need for building an web aplication which is fronted by an application load balancer and behind the load balancer is a lambda origin that provides the HTML code for a website. The application developer will also have permissions to issue a certificate under a certificate authority that they select.
-
If you are not familiar with switching roles, follow this tutorial if needed: Assume Role in Console
8. Build the application infrastructure by deploying the cloudformation template below
Please download the CF template by right clicking and save link as the filename template-appdev.yaml AppDev Cloudformation Stack by right clicking and saving the yaml file on your laptop.
Upload and launch the cloudformation stack in your AWS account. If you are not familiar with this, follow instructions here by right clicking and opening link in a new browser tab Deploy Cloudformation Stack Instructions This cloudformation deployment takes about 3 minutes to complete.
9. Next step is to issue a private certificate to put on the application load balancer.
Open this link in a new browser tab for steps : Issue a private certificate
10. Attach a HTTPS listener and private certificate to the ALB.
Open this link in a new browser tab for steps : Attach HTTPS Listener
11. Validate the identity of the ALB with the browser that your are using. Please open link in a new browser tab
For Firefox: Validate Certificate Identity on Firefox Browser
For Google Chrome: Validate Certificate Identity on Chrome Browser
For Microsoft Edge: Validate Certificate Identity on Microsoft Edge Browser
For Google Chrome on Windows: Validate Certificate Identity on Windows
12. Quiz time. Open this link in a new browser tab: quiz
13. Cloud9 IDE environment setup
- Navigate to the Cloud9 service within your AWS console
- Open the Cloud9 IDE environment called workshop-environment. It takes about 30 seconds for the environment to start up.
- In the Cloud9 IDE environment you will find a folder called data-protection in the folder pane on the left side of the screen
- Right-click (on MacOS: control-click) the file named environment-setup.sh in the IDE and select Run
- This script takes about a minute to complete
- In the runner window below you should see SUCCESS: installed python dependencies followed by a list of the installed packages
Security Monitoring:
In this section we will look at how to monitor privileged actions as you build your certificate management infrastructure. We will study two scenerios. The creation of a CA Certificate and mass revocation of end entity certificates.
14. [Scenerio 1]: Monitor Mass Revocation
This scenerio shows a developer revoking many end-entity certificates within a short period of time. We want to monitor and notify the security team if this type of privileged action takes place in order to investigate.
15. Create/Revoke End-Entity Certificates
First we will act as the Developer by creating and then revoking many certificates at once: Mass revocation
16. Quiz time. Open this link in a new browser tab : quiz
17. Mass Revocation Alarm Setup
Setup CloudWatch Alarms: Revocation Alarm setup
18. [Scenerio 2]: CA Certificate Created
Creating a CA Certificate is a privileged action that should only be taken by authorized personnel within the CA Hierarchy Management team. For this reason we want to monitor the creation of any CA Certificate within our hierarchy.
To do this we will setup a CloudWatch Alarm: CA Cert Alarm setup
19. Quiz time. Open this link in a new browser tab : quiz
20. Create Dashboard
Now we have two alarms that have produced ALARM states. This is due to our mass revocation of multiple certificates by the application developer and the creation of a CA Certificate upon creating our CA hierarchy. Organizations can use this mechanism to build dashboards to monitor and alert (SNS, Email, etc) when sensitive actions take place.
Create CloudWatch Dashboard: Create Dashboard
Advanced Section :
In this section we will learn about certificate extensions that can help you use certificates for applications beyond the common case of identifying TLS server endpoints. These include
- code signing
- signing Online Certificate Status Protocol (OCSP) responses
- TLS clients for two-way (mutual) authentication
What makes one certificate useful for signing code and another useful for terminating TLS are the extension fields in the certificate. Extension fields, or simply extensions, define the usage of the certificate. There are a few extensions defined in RFC 5280 that are widely commonly used and broadly supported, including
- Basic Constraints
- Key Usage
- Extended Key Usage
In this exercise let's create a codesigning certificate using the pre-built templates provided by ACM Private CA.
Follow these steps by right clicking and opening this link : Template ACM Private CA
Templates allow for constrained usage of certificates for specific usecases and IAM permissions can be used to control which principals - users or roles that can issue a specific kind of certificate.
Cleanup
AWS Event
Don't worry about cleanup, we will take care of it. Hopefully you've learned something useful in this workshop that you can take back your organization. Thank you for coming.
On Your Own
- Disable and delete Root CA and Subordinate CA
- Delete all three CloudFormation Templates
License Summary
This sample code is made available under a modified MIT license. See the LICENSE file.


Admin Profile
Amaechi Chuks
Edit ProfileParty Records
| S/N | Party | hdAddress | Party Logo | Date | Chairman | Edit | Delete |
|---|---|---|---|---|---|---|---|
| 1 | People's Democratic Party (PDP) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Amaechi Chuks Ebele | Edit | ||
| 2 | All Progressives Congress (APC) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 3 | All Progressives Congress (APC) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 4 | People's Democratic Party (PDP) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 5 | People's Democratic Party (PDP) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 6 | People's Democratic Party (PDP) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 7 | People's Democratic Party (PDP) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit | ||
| 8 | All Progressives Congress (APC) | Plot 5 Wuse Abuja Nigeria | 16-02-2011 | Jonathan Johnson John | Edit |
Office Records
| S/N | Office Type | Office Name | No of Candidates | CreatedAlt | UpdatedAlt | Edit | Delete |
|---|---|---|---|---|---|---|---|
| 1 | Federal | President | 67 | 16-02-2011 | 08-10-1989 | Edit | |
| 2 | State | Governor | 45 | 16-02-2011 | 08-10-1989 | Edit | |
| 3 | Local Government | Chairman | 120 | 16-02-2011 | 08-10-1989 | Edit | |
| 4 | Legislative | House of Rep. | 69 | 16-02-2011 | 08-10-1989 | Edit |
Delete Report
X


Pokémon Sword and Shield: How to camp and cook!
Source: iMore
The Wild Area in Pokémon Sword and Shield is a massive open world-like area in which you can run around, find a ton of Pokémon, battle Dynamax Pokémon, find useful items, and much more. One of the activities you can do in the Wild Area (and on the road in other places) is set up camp, which allows you to interact with the Pokémon you currently have in your party, and you can even cook meals for them. While you probably could go an entire game without setting up camp, it super useful to camp with your Pokémon in the Wild Area for many reasons. Here's a complete guide to camping in Pokémon Sword and Shield.
How to set up camp in Pokémon Sword and Shield
Source: iMore
Camping with your Pokémon provides a lot of value and allows you to fond a strong bond with Pokémon in your party. If Pokémon grows close to you, this will allow them to try extra hard in battles, which means they may hit for more damage on occasion or provide other benefits. The first thing you have to do is set up camp, and it's pretty simple!
- While in the Wild Area, press the X button to reach the menu.
- Select Pokémon Camp. Source: iMore
There you have it, you now are in camp with all the Pokémon in your current party and, you can start playing and cooking till your heart desires.
 Playing with a Pokémon develops a kinship with that Pokémon and, it gives them EXP, meaning they can level up faster, evolve quicker, and become stronger. Not only that, from a minute or two of attention, a Pokémon can gain hundreds or EXP, so it's a pretty huge return on investment. There are a couple of things you can do to give your Pokémon attention in camp one is simply chatting with them and, the other is playing with them.
How to speak to your Pokémon while camping in Pokémon Sword and Shield
- Move the camera around using the Right stick on your controller to center the Pokémon on the screen you want to engage with.
- Press the A button to attract the Pokémon. Source: iMore
- Press the A button to speak.
- Select the option you want by pressing the A button. Source: iMore
You can keep talking to your Pokémon for as long as you want, their reactions will change up sometimes, but eventually, you'll need to select the Go Play option to let them roam free again. Sometimes the Pokémon will even decide to leave on their own.
How to play with a Pokémon while camping in Pokémon Sword and Shield
Playing with your Pokémon gives them a ton of attention and EXP, but you have to start off by getting their attention first.
- Move the camera around using the Right stick on your controller to center the Pokémon on the screen you want to engage with.
- Press the A button to attract the Pokémon. Source: iMore
- Press the Y Button to take out a toy.
- Press the A Button to use that toy. Source: iMore
When you see an exclamation mark above your Pokémon's head, you know they are interested in the toy. Keep pressing the A button to interact with the Pokémon, they will even swipe at the toy (depending on the toy) and little hearts or music notes will appear above the theri heads - this means they are enjoying their time.
You start the game with two toys, a Pokéball you can play fetch with and a stick toy you can shake, you'll get more as you cook more curries (more on that below) which will allow you to entertain your Pokémon for longer as sometimes they will get bored of the same toys.
How to cook while camping in Pokémon Sword and Shield
Source: iMore
Cooking provides a number of benefits, on top of treating your Pokémon to a tasty treat which will cause them to like you more, it also allows you to heal your Pokémon — even fainted ones — in your party so you don't have to use expensive items like Potions and Restores all the time.
Everything you cook while camping in Pokémon Sword and Shield is a type of curry and there are two types of items you can throw into your pot to make curries; Ingredients and Berries. Ingredients are a bit rarer, you'll find them around the world as you explore the game and they typically make your curries better, meanwhile, Berries are pretty easy to find in trees around the world. You don't need ingredients to make curry, but you do need Berries, so you'll need to know how to get those first.
How to find Berries in Pokémon Sword and Shield
Berry trees look very specific so they aren't too hard to spot (pictured below on the left), you'll need to shake the Berries lose from trees to pick them up!
- Approach a Berry tree in the world.
- Press the A button to shake the tree. Source: iMore
- Select to Shake it More or Quit. Source: iMore
Don't get too greedy for berries
As you shake a Berry tree it will drop usually one or two Berries at a time, you can continue to shake the tree giving you the opportunity to have more fall on the ground; however, there is an element of luck.
 If this happens, even if you defeat the Pokémon, it will likely steal most (if not all) the Berries that fell on the ground. It's a little push your luck mechanism in the game that adds a bit of challenge.
How to cook a curry in Pokémon Sword and Shield
Once you have a few Berries in your inventory (and many some Ingredients) you can set up a camp and start cooking some yummy food!
- While in the Wild Area press the X button to reach the menu.
- Select Pokémon Camp. Source: iMore
- Press the X button to open the camping menu.
- Select Cooking from the menu. Source: iMore, and Select cooking from the camping menu
- Select all Ingredients you want to add. You can press the + button to skip this step.
- Select all the Berries you want to add. You can add multiple Berries of the same type or lots of different Berries.
- Press the + button when you want to start cooking. Source: iMore
- Repeatedly press the A button to fan the flames. You can also move the Joy-Con up and down.
- Repeatedly rotate the right stick clockwise to stir the pot/ You can also make a stirring motion with the Joy-Con. Source: iMore
- Press the A button to put your heart into it. You can also make a throwing motion with your Joy-Con Source: iMore
Kind of like how you catch Pokémon in Pokémon Go, you want to line up your throw so the moving out circle meets up with the green rings n the middle of the screen. The closer you get to the middle, the better your curry will turn out.
Spicing up your Curry Dex
Source: iMore
Once you've finished cooking and a short animation of you eating the food along with your Pokémon occurs, you'll see a rating (pictured above) pop up on the screen that tells you what the curry did for your team!
Every new curry you make will be added to your Curry Dex, so you can keep track of what Ingredients and Berries made what dishes. Plus, the more curries you have in your Curry Dex, the more impressed the Camping King will be with your skills!
The Camping King (pictured below) is located in the East Lake Axewell (in the Wild Area) an he's to the left of the giant staircase that leads to Motostoke.
Source: iMore
The Camping King will rate your Curry Dex and give you new toys and ingredients as you cook different curries. It appears he gives you something each time you have cooked five new curries, so visit the Camping King often.
Poké Ball Plus
A more immersive Pokémon experience
The Poké Ball Plus works with Pokémon: Let's Go, Pikachu!, Pokémon: Let's Go, Eevee!, Pokémon Sword, and Pokémon Shield! You can also take your favorite Pokémon with you. The ball vibrates when near a Pokémon or Poké Stop when you're playing Pokémon Go, too!
Any Questions?
Any questions about camping in Pokémon Sword and Shield? Let us know in the comments down below!
Get More Switch
Nintendo Switch
- Nintendo Switch Review
- Best microSD Cards for your Nintendo Switch
- Best Travel Cases for Nintendo Switch
- Best Nintendo Switch Accessories
- Nintendo Switch Jailbreak: Everything you need to know!
We may earn a commission for purchases using our links. Learn more.


| Revert Last Operation | ||
|---|---|---|
| Row 1 | Sample Content 1 | Sample Content 1 |
| Row 2 | Sample Content 2 | Sample Content 2 |
| Row 3 | Sample Content 3 | Sample Content 3 |
| Row 4 | Sample Content 4 | Sample Content 4 |
| Row 5 | Sample Content 5 | Sample Content 5 |
| Row 6 | Sample Content 6 | Sample Content 6 |
| Row 7 | Sample Content 7 | Sample Content 7 |
| Row 8 | Sample Content 8 | Sample Content 8 |
| Row 9 | Sample Content 9 | Sample Content 9 |
| Row 10 | Sample Content 10 | Sample Content 10 |


Multiple reactive forms
Edit form - 1 (left range)
work_start
work_end
unpaid_minutes
job_name
job_id
timecard_id
Edit form - 2 (right range)
work_start
work_end
unpaid_minutes
job_name
job_id
timecard_id


--- layout: post title: Tracking The Companies That Track You Online categories: [] tags: - geek - internet - privacy status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
I found the following story on NPR:
http://www.npr.org/templates/story/story.php?storyId=129298003&sc=17&f=1001
Tracking The Companies That Track You Online
- August 19, 2010
No surprises here, but what I found interesting is that some ad groups will allow you to see the info they've collected.


High quality equipment and products for your use.
With Hirespark,we aim to provide high quality equipment to cater for your needs.
We also specialise in hiring out equipment for a specific time period to ensure you get the most out of our products.
Our different arrayof products include;
Our tractors are the best quality performance vehicles you can find.
Able to carry large loads at a single go
Our array of bulldozers to push the dirt and debree.
Our high quality and effecient rollers ensure your land is flattened in no time
This heavy equipment vehicle that consists of a tractor-like unit fitted with a loader-style shovel/bucket on the front and a backhoe on the back
The Smarter, Safer, Better Solution for Soil Stabiliation and Dust control with Guaranteed results that out perform all other products.
These features allow for the operator to precisely and evenly apply a layer of tack coats or primer before paving.


R users:
install.packages("BiocManager")
BiocManager::install()
Python users:
(pick either R or Python)
#R
BiocManager::install("RCy3")
library(RCy3)
#Python
pip install requests pandas colorbrewer chardet decorator
pip install py4cytoscape
import py4cytoscape as py4
Make sure to launch Cytoscape first. Relaunch Cytosacpe if you see a CyREST error. Then try these R or Python functions:
#R
cytoscapePing()
cytoscapeVersionInfo()
#Python
py4.cytoscape_ping()
py4.cytoscape_version_info()
You are connected to Cytoscape! apiVersion': 'v1' cytoscapeVersion': '3.9.0'


Please fill out the survey and press the submit buttom at the botton of the page.


This browser does not have a Java Plug-in. Get the latest Java Plug-in here.
Source code: TimeView
Built with Processing


Photography is the art of taking and processing photograhs.
This website features photographs from various photographers from all over the world.


The Caesar cipher is named after Julius Caesar, who, according to Suetonius, used it with a
shift of three to protect messages of military significance. While Caesar's was the first
recorded use of this scheme, other substitution ciphers are known to have been used earlier.
"If he had anything confidential to say, he wrote it in cipher, that is, by so changing the order of
the letters of the alphabet, that not a word could be made out. If anyone wishes to decipher these,
and get at their meaning, he must substitute the fourth letter of the alphabet, namely D, for A, and
so with the others."


CL-TK provides a very basic bridge to Tcl/Tk. It will fire up a Tk window, handle events, and allow you to evaluate Tcl code.
25-11-2011: Version 0.2: Fixes several small issues in escaping and backend spawning.
16-03-2009: Version 0.1: The first public release of this library.
This library is released under a zlib-style license, which approximately means you can use the code in whatever way you like, except for passing it off as your own or releasing a modified version without indication that it is not the original. See the LICENSE file in the distribution.
CL-TK requires Tcl/Tk 8.5 to be
installed. It also has an optional dependence on CFFI (on platforms
other than Allegro Common Lisp). Not having CFFI installed means
the FFI backend is not available, and you have to use the
wish
based backend, which is somewhat slower.
The current release of CL-TK can be downloaded from http://marijnhaverbeke.nl/cl-tk/cl-tk.tgz, or installed with asdf-install.
A git repository with the most recent changes can be checked out with:
> git clone http://marijnhaverbeke.nl/git/cl-tk
The code is also available on github.
There is currently no mailing list, so mail me directly. I'll set something up when there is enough traffic.
To use CL-TK, a basic understanding of Tcl and Tk is indispensable. If you are completely new to those, you might want to read up on them first.
When working with Tk, the *tk*
special variable
has to be bound to a back-end object. The simplest way to do this
is:
(toplevel-tk)
This will automatically create a suitable Tk back-end. See below for details on what these back-ends are.
You should now see an empty window. Next, we'll want to put something into this window:
(tcl "pack [ttk::label .label -text {Hello world}]")
Or, if you don't want to pass the whole command as one big string:
(tcl "pack" (tcl[ "ttk::label" ".label" :text "Hello world"))
See the reference for information about the
way in which arguments to tcl
and
tcl[
are treated.
Depending on your platform and back-end, it's possible that you
don't see your label in the window yet. That's because it is not
reacting to events. mainloop
will run Tk's event pump until the window is closed.
(mainloop)
Another capability that this library provides is running Lisp code when Tk events occur. For example:
(with-tk () (tcl "pack" (tcl[ "ttk::button" ".exit" :text "Exit" :command (event-handler #'destroy))) (mainloop))
with-tk
locally binds
*tk*
. The destroy
function (predictably) destroys the Tk instance. But what does event-handler
do? Tk event
handlers are pieces of Tcl code, not Lisp functions.
event-handler
returns a piece of code that, when
executed, will notify the CL-TK event pump, which will call the
function that was passed to event-handler
. More about
this below.
There are two types of back-ends. It is never obligatory to
specify a back-end, and when you don't the sensible thing happens:
The system tries to use the faster FFI back-end, and falls back on
wish
when that fails.
class ffi-tk
Only available when you either have CFFI installed, or are using Allegro Common Lisp. A back-end that tries to load the Tcl and Tk shared libraries, and talk to them through a foreign-function interface.
class wish-tk
This back-end starts a wish
(windowing shell) process, and communicates with that through its
standard in and output channels. You can specify a
:binary
initarg to specify the name (and optionally
path) of the executable to run. This can be a single string or
pathname, or a list of strings and pathnames.
variable *tk*
Holds the 'current' back-end. This is used by most
of the function in the library. Bind with toplevel-tk
and with-tk
.
function toplevel-tk (&optional back-end)
Set *tk*
to a
back-end. When no argument is given, the library tries to create a
suitable back-end.
macro with-tk ((&optional back-end) &body body)
Execute body
with *tk*
bound to a back-end. Wraps an
unwind-protect
that makes sure the back-end is
destroyed when the body exits.
function destroy ()
Destroy the current back-end. This will close the top-level window, and dispose of any resources that were held.
function alive-p ()
Test whether the current back-end is still alive.
After the user manually closes or kills the top-level window, this
will return nil
.
The main thing to do with this library is sending Tcl commands to an interpreter, in order to make some windowing interface do what you want. The following commands try to make this easy.
function tcl (command &rest args)
Run a piece of Tcl code in the current back-end. The first argument is sent as-is, the rest are converted to strings by the rules below, separated by spaces, and appended to the first argument.
princ-to-string
.lit
function. They are inserted
into the command as they are, without any escaping.So, for example, the following packs the
.foo.scroll
widget into the right side of its
container.
(tcl "pack" ".foo.scroll" :side "right" :expand 1 :fill "y")
The return value of tcl
is the string
produced by evaluating the given expression. If Tcl signals an
error, a tcl-error
condition
is raised.
function lit (string)
Wraps the given string to be inserted literally into a Tcl command.
function tcl[ (command &rest args)
Like tcl
, but
instead of sending the result to the back-end, it is wrapped in
'[' and ']' and returned as a literal, so that it can be inserted
into another command. For example...
(tcl "grid" (tcl[ "ttk::frame" ".baz" :padding 10) :column 0 :row 1 :sticky "news")
function tcl{ (command &rest args)
Just like tcl[
, but wraps its result in
'{' and '}'.
function tcl-escape (string)
Escape a string so that it can be passed as an
argument to a Tcl operator. Disables all $
and
[ ]
magic by adding backslashes.
A Tcl application, or at least its interaction with Lisp (depending on your back-end) only runs when its event pump is running.
function doevent (&optional block)
Handle one event. When block
is true,
this will wait until an event becomes available, otherwise it will
return immediately. Returns a boolean indicating whether an event
was handled (always true in blocking mode).
function doevents ()
Handle events (without blocking) until no more events are available.
function mainloop ()
Handle events (blocking) until the current back-end is no longer alive.
CL-TK allows you to associate 'magic' Tcl commands with pieces of Lisp code. These commands are then registered as Tcl event handlers, and the CL-TK message pump detects when they are fired, running your Lisp code.
function event-handler (function &optional fields)
Return a string containing a Tcl command
associated with calling the given function. When
fields
is given (usually you don't need it), it
should be a list of characters, which will be put into the Tcl
command as %c
markers (see bind
),
with their substitutions passed as arguments to the function.
Returns the handler ID (see below) as a second value. For
example:
(tcl "ttk:button" :text "Exit" :command (event-handler #'destroy))
macro event-handler* (&body body)
Wraps the given body
in a lambda, and
passes it to event-handler
.
macro bind-event (tag event (&rest fields) &body body)
Binds the
given event for the given tag to a function containing the macro
body. If fields
is given, it should hold
(variable #\c)
pairs, where the second element is the
character to put into the Tcl event handler, and the first element
is the variable to which the substitution of this character will
be bound in the body. Returns an event ID.
(bind-event "." "<1>" ((x #\x) (y #\y)) (format t "You clicked at ~a,~a.~%" x y))
The tricky thing with associating Lisp code with Tcl strings is that the two systems have separate garbage collectors, and as such it is unclear how long the Lisp closures should live. In toy applications, or applications that don't dynamically register events, you can ignore this fact. But usually, you should take care to clean up your handlers, or you are leaking memory.
function unregister-event (id)
Release the closure stored in the current back-end under the given event ID.
function event-snapshot ()
Retrieve a 'snapshot' of the current event handler
set. At a later time, you can use clear-events
to release all
event handlers registered after this snapshot was taken.
function clear-events (snapshot)
Release all events registered since the given snapshot.
macro with-local-events (&body body)
Register an event snapshot before running the macro body,
and unwind-protect
the body to release that snapshot
when it unwinds.
Tk requires you to come up with a unique 'window name' (as in .main.foo.label20) for every widget you create. This gets pretty tiresome, but these functions try to ease the pain a little.
variable *wname*
If you decide to use CL-TK's wname facilities, you'll use this to store the window name of the widget you're currently populating.
macro with-wname (wname &body body)
Binds *wname*
to the given value in body
.
function wname (name &optional id)
Create a new window name, based on *wname*
. If *wname*
is .foo
, (wname "bar")
gives you
.foo.bar
, and (wname "bar" 10)
gives
.foo.bar10
.
function wname-cons (name base)
Extend a base window name. For example,
(wname-cons "button" ".frame")
yields
".frame.button"
.
function wname-car (wname)
Take the inner element of a window name.
function wname-cdr (wname)
Return the outer element of window name. For
example (wname-cdr ".dialog.top.scroll")
gives
.dialog.top
.
All errors raised by CL-TK have the type
tcl-error
, which is a subclass of
simple-error
without extra slots.


The Saxon package is a collection of tools for processing XML documents. The main components are:
An XSLT 2.0 processor, that can be used from the command line, or invoked from a Java application by use of the standard JAXP API. Saxon can be integrated with Java applications using the JAXP API, which means it is possible for a Java application to switch between different XSLT processors without changing the application code. As well as conforming closely with the XSLT 2.0 specification, Saxon offers a number of powerful extensions.
An XPath 2.0 processor accessible via an API to Java applications.
An XQuery 1.0 processor that can be used from the command line, or invoked from a Java application by use of an API.
An XML Schema 1.0 processor. This can be used on its own to validate a schema for correctness, or to validate a source document against the definitions in a schema. It is also used to support the schema-aware functionality of the XSLT and XQuery processors.
So you can use Saxon to process XML by writing XSLT stylesheets, by writing XQuery queries, by writing Java applications, or by combinations of the approaches.
Saxon implements the XSLT 1.0 recommendation, including XPath 1.0, in its entirety. Saxon 8.0 also implements nearly all the features defined in the XSLT 2.0, XPath 2.0, and XQuery 1.0 working drafts. New features beyond XSLT 1.0 include:
Support for multiple output files using xsl:result-document
Full processing capability on temporary trees (previously known as result tree fragments)
Support for sequences of nodes and simple values
Grouping facilities
Regular expression processing
Support for new XPath constructs such as if
, for
,
some
and every
Support for named collating sequences
Many new functions and operators
Support for new data types, such as dates, times, and durations
The small number of features not yet supported are listed on the Conformance page.
In addition, Saxon provides an extensive library of extension elements and extension functions, all implemented in conformance with the XSLT Recommendation to ensure that portable stylesheets can be written. These include the EXSLT extension libraries common, sets, math, and dates-and-times. Many of these extensions were pioneered in Saxon and have since become available in other products.
These extension functions are in general accessible from XQuery as well as XSLT, except where they depend on stylesheet information.
Saxon also provides an API allowing a Java application to execute XPath expressions and process the results. The XPath API is modelled on the proposed DOM Level 3 API, but adapted to the requirements of XPath 2.0. A separate API is available for XQuery 1.0, reflecting differences in the way the context is set up.


A Simple Sample Web Page
By Sheldon Brown
Demonstrating a few HTML features
HTML is really a very simple language. It consists of ordinary text, with commands that are enclosed by "<" and
">"
characters, or bewteen an "&" and a ";" .
You don't really need to know much HTML to create a page, because you can copy bits of HTML from other pages
that do what you want, then change the text!
This page shows on the left as it appears in your browser, and the corresponding HTML code appears on the
right. The HTML commands are linked to explanations of what they do.
Line Breaks
HTML doesn't normally use line breaks for ordinary text. A white space of any size is treated as a single space.
This is because the author of the page has no way of knowing the size of the reader's screen, or what size type
they will have their browser set for.
If you want to put a line break at a particular place, you can use the "
" command, or, for a paragraph
break,
the "
" command, which will insert a blank line. The heading command ("

") puts a blank
line above
and
below the heading text.
Starting and Stopping Commands
Most HTML commands come in pairs: for example, "
" marks the beginning of a size 4 heading, and
"
" marks
the end of it. The closing command is always the same as the opening command, except for the addition of the "/".
Modifiers are sometimes included along with the basic command, inside the opening command's <>. The modifier
does
not need to be repeated in the closing command.
This is a size "1" heading
This is a size "2" heading
This is a size "3" heading
This is a size "4" heading
This is a size "5" heading
This is a size "6" heading
If you would like to make a link or bookmark to this page, the URL is:
https://www.sheldonbrown.com/index.html


fun setCanDeletePaymentMethods(canDeletePaymentMethods: Boolean): Builder
canDeletePaymentMethods - controls whether the user can delete a payment method by swiping on it in PaymentMethodsActivity. Defaults to true.
canDeletePaymentMethods


#include <LayoutManager.h>
|
| | LayoutManager () |
| |
|
The methods under this section are responsible for modifying an instance of GraphCycleHandler.
|
| GraphLayoutErrorCodes::LayoutErrorCode | applyCircularLayout (QString sInputGraphMLFilePath, QString sOutputGraphMLFilePath, LayoutEnum::VertexOrderCriteria enVertexOrder=LayoutEnum::TopologicalOrder) |
| | applyCircularLayoutProcess More...
|
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyHierarchicalLayout (QString sInputGraphMLFilePath, QString sOutputGraphMLFilePath) |
| | applyHierarchicalLayoutProcess More...
|
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyGridBasedLayout (QString sInputGraphMLFilePath, QString sOutputGraphMLFilePath) |
| | applyGridBasedLayoutProcess applies Grid Based Layout algorithm to supplied graph and writes the output to graphml file. More...
|
| |
| void | applyGridBasedLayout (SubGraph *gMainInputGraph) |
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyForceDirectedLayout (SubGraph &gMainInputGraph, QString sInputGraphMLFilePath, int iIterations) |
| | applyForceDirectedLayout More...
|
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyForceDirectedLayout (SubGraph *gMainInputGraph, int iIterations) |
| | applyForceDirectedLayout More...
|
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyForceDirectedLayout (QString sInputGraphMLFilePath, QString sOutputGraphMLFilePath, int iIterations) |
| | applyForceDirectedLayout More...
|
| |
| void | setNumberOfIterations (int iterations) |
| | applyHierarchicalLayoutProcess More...
|
| |
| GraphLayoutErrorCodes::LayoutErrorCode | applyVertexOverlapRemoval (QString sInputGraphMLFilePath, QString sOutputGraphMLFilePath) |
| | applyVertexOverlapRemoval More...
|
| |
The LayoutManager class contains the main APIs of GraphLayoutLibrary. This is the starting poing for accessing the library.
| LayoutManager::LayoutManager |
( |
| ) |
|
applyCircularLayoutProcess
this method reads graphML file, apply circular layout on the input file data and writes the updated layout changes to the output file in the form of graphML file
- Precondition
- sInputFileName.trimmed().isEmpty() != true
- Parameters
-
| sInputFileName | |
| sOutputFileName | |
| enVertexOrder | |
- Returns
- GraphLayoutErrorCodes
- Exceptions
-
applyForceDirectedLayout
this method reads Graph object, applies force directed layout.
- Parameters
-
| gMainInputGraph | input graph. |
| sInputGraphMLFilePath | input graph file path |
| iIterations | number of iterations |
- Returns
- GraphLayoutErrorCodes::LayoutErrorCode
- Exceptions
-
applyForceDirectedLayout
this method reads Graph object, applies force directed layout.
- Parameters
-
| gMainInputGraph | input graph. |
| iIterations | number of iterations |
- Returns
- GraphLayoutErrorCodes::LayoutErrorCode
- Exceptions
-
applyForceDirectedLayout
this method reads Graph object, applies force directed layout.
- Parameters
-
| sInputGraphMLFilePath | input graph file path |
| sOutputGraphMLFilePath | output graph file path |
| iIterations | number of iterations |
- Returns
- GraphLayoutErrorCodes::LayoutErrorCode
- Exceptions
-
applyGridBasedLayoutProcess applies Grid Based Layout algorithm to supplied graph and writes the output to graphml file.
This method reads graph from input file, applies grid based layout on the input graph data and writes the updated layout changes to the output file in the form of graphML file
- Precondition
- gMainInputGraph not empty, sOutputGraphMLFilePath is valid.
- Parameters
-
| sInputGraphMLFilePath | input file which contains graph on which Grid Based Layout algorithm is to be applied. |
| sOutputGraphMLFilePath | output graphml file path where the output is to be written. |
- Returns
- GraphLayoutErrorCodes
- Exceptions
-
| void LayoutManager::applyGridBasedLayout |
( |
SubGraph * |
gMainInputGraph | ) |
|
This method reads main input graph, applies grid based layout on the input graph data
GraphLayoutErrorCodes::LayoutErrorCode applyForceDirectedLayout(SubGraph *gMaingraph, int iIterations); and writes the output to graphml file.
- Precondition
- gMainInputGraph not empty, sOutputGraphMLFilePath is valid.
- Parameters
-
| gMainInputGraph | input graph on which Grid Based Layout algorithm is to be applied. |
- Returns
- none
- Exceptions
-
applyHierarchicalLayoutProcess
this method reads graphML file, applies Hierarchical Layout on the input file data and writes the updated layout changes to the output file in the form of graphML file
- Precondition
- sInputFileName.trimmed().isEmpty() != true
- Parameters
-
| sInputFileName | input graphml file path |
| sOutputFileName | output graphml file path |
- Returns
- GraphLayoutErrorCodes
- Exceptions
-
applyVertexOverlapRemoval
this method reads Graph from input file, removes vertex overlaps, writes the resulting graph to output file.
- Precondition
- sInputGraphMLFilePath.trimmed().isEmpty() != true
-
sOutputGraphMLFilePath.trimmed().isEmpty() != true
- Parameters
-
| sInsputgraphPath | input graphML file path. |
| sOutputGraphMLFilePath | output graph file path |
- Returns
- GraphLayoutErrorCodes::LayoutErrorCode
- Exceptions
-
| void LayoutManager::setNumberOfIterations |
( |
int |
iterations | ) |
|
applyHierarchicalLayoutProcess
this method reads Graph Object, applies Force Directed on it.
- Precondition
- sInputFileName.trimmed().isEmpty() != true
-
gMainGraph != NULL
- Parameters
-
| gMainGraph | input graph object |
| sInsputgraphPath | input graphML file path. |
| iIteration | number of iterations |
- Returns
- none
- Exceptions
-
The documentation for this class was generated from the following files:
- D:/Store Room/GraphLayout/GraphLayoutLibrary/LayoutManager/LayoutManager.h
- D:/Store Room/GraphLayout/GraphLayoutLibrary/LayoutManager/LayoutManager.cpp


Steave
Dashboard
History
Employee
Table Management
Order Table and View Menu
Here is Menu Food for order list
View Menu
Dashboard
Order Food
Save


{% extends "base.html" %} {% block header %}
To use this Git LFS server in your project, follow these steps:
Add a file named .lfsconfig
to the root of your
repository with the following contents:
[lfs] url = "{{ api }}/my-org/my-repo"
...where my-org/my-repo
is the name of the Git repository.
Make sure .lfsconfig
is committed:
git add .lfsconfig
Select the file types you'd like Git LFS to manage (or directly edit
your .gitattributes
). You can configure additional file
extensions at anytime.
git lfs track "*.psd"
Make sure .gitattributes
is committed:
git add .gitattributes
Use git add
, git commit
, and git
push
as you normally would:
git add foo.psd git commit -m "Add design file" git push
Please see https://git-lfs.github.com/ for more information about how to use the Git LFS client.
{% endblock content %}


{% extends 'base.html' %} {% load static %} {% block title %}{{ block.super }}: Overview{% endblock %} {% block progress %}{% include "partials/dashnav.html" with active_page=active_page %}{% endblock %} {% block content %}
Your filing (submitting completed documents to the court registry) occurs in two parts. The initial filing initiates the divorce proceeding. Once initial filing is complete you will receive a Court Filing Number. This number is important as it will allow you or your spouse to file the remaining documents required to complete your divorce.
Missing a form required on this page? Check the Review Forms step.
Need help with Scanning your documents?
When you click Next, you will be taken to the Court Services Online e-filing hub. In the next few steps you will be able to do a final review of your filed documentation, pay for your filing and (if completed successfully) receive a Package Number.
Once your filings have been reviewed by the Court Registry (?), you will be provided a Court Filing Number (?) via e-mail. This may take up to one week.
You will need your Court Filing Number if you are filing any additional documentation.
{% elif how_to_file == 'In-person' %}You don't need to complete this step. Go to Swear Forms for further instruction.
{% else %}You must select how you want to file in the Signing & Filing Options step.
{% endif %} {% endblock %} {% block backToDashboard %} {% endblock %} {% block formBack %}{% url 'dashboard_nav' 'print_form' %}{% endblock %} {% block formNext %}{% url 'dashboard_nav' 'wait_for_number' %}{% endblock %} {% block sidebarNav %} {% endblock %} {% block sidebarText %} {% include "dashboard/partials/sidebar_help.html" %} {% endblock %} {% block extra_css %} {% endblock %} {% block extra_js %} {% endblock %}


These tests are for determining the physical memory from the data returned by /proc/meminfo on Linux hosts. The total physical memory of the linux system is reported as part of the enviornment values. The key used by the Python agent is ‘Total Physical Memory (MB)’.
The names of all test files should be of the form
meminfo_nnnnMB.txt
. The value nnnn
in the
filename is the physical memory of that system in MB.


Logan Paul insists he's not 'a sore loser' as he launches bid to contest KSI win
Logan Paul has announced he is launching an official appeal against KSI’s win in their recent boxing match.
When they squared off at the Staples Center in Los Angeles earlier this month KSI came out victorious against his fellow YouTube star following a split decision.
The American YouTuber was deducted two points in the match, which he has now said he feels he didn’t deserve.
In a new video, Logan told his fans: ‘The punishment simply did not fit the crime’.
He then addressed the referee for their clash, Jack Reiss, claiming Jack told him ‘if he’s made a mistake he’s down to correct it.’
The 24-year-old said he had been inundated with messages from fans, friends and family saying that he should have won against KSI were it not for the two point deduction.
He then revealed to his followers that his team will be contesting the result.
Advertisement Advertisement
Logan explained: ‘My team and I have decided to file an official appeal for the fight because we don’t believe the outcome is right.
‘It just resonates with me to my core.
‘I really had to check myself and make sure I wasn’t doing this because I was afraid of losing.’
He went on: ‘Historically I’ve taken big Ls. By no means am I afraid of losing. I welcome it because it’s the only way I tend to experience growth in my life. But I truthfully, 100 per cent believe I did not lost this fight.
‘This is just a plea to the California State Athletic commission, I would just hope that you guys give this the weight it deserves.’
Meanwhile his brother Jake has previously made the bold claim that the match was ‘rigged’.
The star added: ‘I believe in conspiracy theories and all the crazy stuff so I don’t put anything in this world past being true.’
Advertisement Advertisement
However he admitted that he had a new found respect for KSI, real name Olajide ‘JJ’ Olatunji, confessing: ‘I think KSI is a great fighter and I gained a level of respect I have for him that I didn’t have before.’
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Logged in as Username
Plow is render farm management software specifically designed for VFX workloads Plow is render farm management software specifically designed for VFX workloads..
New Project »


This calculator finds the estimated levelised cost of electricity (LCOE) for utility-scale photovoltaic power plants. Further Information can be found on this link. .


Operator
->>
infix operator ->>: AdditionPrecedence
The query results depdents on operator.
Implementations
RestQueryResult<Query> ->> RestQueryResult<Query> where Query: RestQuery
func ->> <Query>(lhs: RestQueryResult<Query>, rhs: RestQueryResult<Query>) -> RestQueryResult<Query> where Query: RestQuery
The query results depdents on operator.
Joins two queries on the success of the left-hand side. If the operation succeeds, the right-hand side is triggered.
Usage:
($someQuery <- someValue ->> $someDependentQuery<!).success {
...
}
Reference
Parameters
| Name | Type | Description |
|---|---|---|
| lhs | RestQueryResult<Query> |
The query instance used to make the dependable request. |
| rhs | RestQueryResult<Query> |
The dependent query that's triggered on the success of the left-hand side. |
Returns
A future that will resolve to the new value or an error.


{% extends base.html %} {% block title %}temBoard / {{instance}} / Login{% end %} {% block content %} {% if username is not None %}
You're logged in at {{instance.agent_address}}:{{instance.agent_port}} as {{username}}.
To access this section you must be authenticated by the agent at {{instance.agent_address}}:{{instance.agent_port}}


Applies
De Morgan's law
by replacing either
a or b
with
not(not a and not b)
or
a and b
with
not(not a or not b)
inside a boolean expression.


Your Luck is Waiting
We look forward to presenting you the Chuck's Pick 3 application! For now you can sign up to receive notifications, updates, surveys and demos.
{{errorMessage}}
Sign up
Sign up
{{errorMessage}}


@( form: Form[String] )(implicit request: RequestHeader, messagesProvider: MessagesProvider) @main("Start / Stop / Restart Meeting") {
This is only for the situation where you *know* that for some reason that a meeting failed to start. Do not do this without talking to Justin first!
@b4.horizontal.form(arisia.controllers.routes.ZoomController.startProgramItem(), "col-md-2", "col-md-10") { implicit hfc => @b4.text(form("itemId"), Symbol("_label") -> "Program Item ID") }This is only for the situation where you *know* that for some reason that a meeting is utterly broken. Usually, this is only for long-dead meetings that are clogging up the view. Do not do this without talking to Justin first!
@b4.horizontal.form(arisia.controllers.routes.ZoomController.stopProgramItem(), "col-md-2", "col-md-10") { implicit hfc => @b4.text(form("itemId"), Symbol("_label") -> "Program Item ID") }This should only be used in the extreme case where a Zoom Host has accidentally shut a Program Item down prematurely. In that case, put the item's ID (the number identifying it in the schedule) here, to reboot the Zoom meeting.
@b4.horizontal.form(arisia.controllers.routes.ZoomController.restartProgramItem(), "col-md-2", "col-md-10") { implicit hfc => @b4.text(form("itemId"), Symbol("_label") -> "Program Item ID") } }


Procedural Thinking --> Involves creating perfectly clear & unambiguous
instructions for a computer to follow.
Abstract Thinking --> Means finding similarity, generality amongst
seemingly different things.
System Thinking --> Break a big problem into smaller pieces.
Technological Thinking --> The ability to understand what a computer is & works.
Debugging --> Systematic process of relentlessly identifying the
cause of why a programm does not work.
HTTP
The main protocol of the Web
Servers
Componets that host files that make up the web
Internet
The world largest Computer Network
Browser
A program that runs on your computer to display files found on the Web
Text content --> What you see
Markup --> What it looks like
References to other Documents --> images + videos + etc.
Links to other pages -->
Udacity
HTML Markup is made up of things called tags.
<
-------------------element--------------------
Inline & Block elements
The difference is that in Block elements the content is inside like the tags in the last image.


string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $charset [, bool $double_encode = true ]]] )
Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with some of these conversions made; the translations made are those most useful for everyday web programming. If you require all HTML character entities to be translated, use htmlentities() instead. This function is useful in preventing user-supplied text from containing HTML markup, such as in a message board or guest book application. The translations performed are: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. "'" (single quote) becomes ''' only when ENT_QUOTES is set. '<' (less than) becomes '<' '
>' (greater than) becomes '>'
The converted string. If the input string contains an invalid code unit sequence within the given charset and the ENT_IGNORE flag is not set, then htmlspecialchars() will return an empty string.


Professional web development team. Make your dream a reality, order a web site, mobile or hybrid application, and start living your dream!
More about the teamOur team is a three person professional web development team. We offer high quality products for an affordable price. We guarantee for our products, so you will be happy. Realize your dreams, make a professional web site, let us do the work while you focus on more important things.
Take a look at our servicesDusan is a passionate back-end developer. He is always dedicated to solving a problem fully, and you can trust his code. Currently he is studying Software Engineering at "Metropolitan University" in Serbia. He also works at the Research and Development Center at the university.
Milica is a professional, creative front and back end developer. She is known for her high quality work, as she puts her maximum in solving problems and creating new solutions for all problems. She strikes a perfect balance between front and back end web development. Milica is studying Software Engineering at "Metropolitan University" in Serbia. She works at Research and Development Center at the university.
Dejan is a talented front-end developer, capable of designing and creating awsome web and mobile designs, providing you with powerfull web site that works on all devices you can imagine. Dejan is also a professional Graphics Designer, working with Photoshop. Currently Dejan is studying Information Technologies at the "Metropolitan University". He works at the Research and Development Center at the university.
We offer creating full professional web applications. With both back-end engines, and front-end high quality and modern designs. We have lots of experiance in many back-end technologies. We offer Java Spring, Java Play, Java Tapestry, PHP servers and engines, or you can demand to use some specific technology.
Your design will be done using one or more technologies, per your wish. We offer our great skills using AngularJS, ReactJS, Bootstrap, AJAX, jQuery and many more, so your users fall in love with your web site on the first click.
We offer cheap alternatives for you website hosting. You can order a domain with us, reserve web storage space for your new web site, or even open accounts for our cloud services. Additional services include e-mail services, and if you are into coding we can even provide you private git repository.
You have to make your websites with love these days!
We do put our most into building your web site, because we
do what we love.
We hope you will love your web site just like we loved creating it.
Ready to start your next project with us? Send us an email, explain what you need, and we will be with you in no time!


Chao's Portfolio
Home
About
Works
Contact
Full Name :
Email Address :
Phone Number :
Subject :
Message :
send


Child Poverty Figures show need for tax relief
by New Zealand Taxpayers' UnionToday’s child poverty figures , revealing that nearly 150,000 children are living in material hardship in New Zealand, show the need for tax relief says the Taxpayers’ Union.
Responding to the figures, Union spokesman Louis Houlbrooke says, “It is disturbing that the current tax burden on low income families means that even kids with parents in full time work are experiencing poverty. That is shameful.”
“Many measures being introduced by this government such as higher fuel taxes, higher taxes on cigarettes, higher waste levies on garbage, and hiked rates bills across the country, have a disproportionate effect on the poor.”
“You can’t kneecap family budget with new and higher taxes, and expect poverty figures to improve. Tax relief is needed, and for tens of thousands of families, needed right now.”


imagealphablending (PHP 4 >= 4.0.6, PHP 5, PHP 7) imagealphablending — 设定图像的混色模式 说明 bool imagealphablending ( resource $image , bool $blendmode ) imagealphablending() 允许在真彩色图像上使用两种不同的绘画模式。在混色（blending ）模式下，alpha 通道色彩成分提供给所有的绘画函数，例如 imagesetpixel() 决定底层 的颜色应在何种程度上被允许照射透过。作为结果，GD 自动将该点现有的颜色和画笔颜色 混合，并将结果储存在图像中。结果的像素是不透明的。在非混色模式下，画笔颜色连同 其 alpha 通道信息一起被拷贝，替换掉目标像素。混色模式在画调色板图像时不可用。如 果 blendmode 为 TRUE，则启用混色模式，否则关闭。成功时返回 TRUE，或者在失败时返 回 FALSE。 Note: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。 参数 image 由图象创建函数(例如imagecreatetruecolor())返回的图象资源。 blendmode Whether to enable the blending mode or not. On true color images the default value is TRUE otherwise the default value is FALSE 返回值 成功时返回 TRUE，或者在失败时返回 FALSE。 范例 Example #1 imagealphablending() usage example 注释 Note: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。 User Contributed Notes 14 notes =============================================================================== I have been looking around for a while to find a script which does the following: generates image with text using specified font with given color, but with totally transparent background (by alpha-channnel, not via color transparency). Finally, I have created the script by myself. It's just a rough idea how to do it.
=============================================================================== If you are trying to copy a transparant image on to another image, you might assume that you should apply the ImageAlphaBlending function to the image that has the transparancy, the source image. In reality, you must apply the ImageAlphaBlending function to the destination image. Basically it's saying, "make the specified image respect transparancy". Here's a real world example. Suppose you want to put your logo on the upper left corner of a photograph. Your logo is a PNG with transparancy, and the photo is a JPEG. Here's what you would do: =============================================================================== Your target image resource not must be paletted if you want to use blending. This means using ImageCreateTrueColor() rather than ImageCreate(). (If your source is e.g. a jpeg and you've used ImageCreateFromJPEG(), the above is irrelevant.) =============================================================================== I have create a little function for putting a watermark on any picture. Watermark can be png, with transparency, and the watermark can be placed anywhere on the image, using simple strings such as 'bottom-left', or 'center'. function imagelogo (&$dst_image, $src_image, $dst_w, $dst_h, $src_w, $src_h, $position='bottom-left') { imagealphablending($dst_image,true); imagealphablending($src_image,true); if ($position == 'random') { $position = rand(1,8); } switch ($position) { case 'top-right': case 'right-top': case 1: imagecopy($dst_image, $src_image, ($dst_w-$src_w), 0, 0, 0, $src_w, $src_h); break; case 'top-left': case 'left-top': case 2: imagecopy($dst_image, $src_image, 0, 0, 0, 0, $src_w, $src_h); break; case 'bottom-right': case 'right-bottom': case 3: imagecopy($dst_image, $src_image, ($dst_w-$src_w), ($dst_h-$src_h), 0, 0, $src_w, $src_h); break; case 'bottom-left': case 'left-bottom': case 4: imagecopy($dst_image, $src_image, 0 , ($dst_h-$src_h), 0, 0, $src_w, $src_h); break; case 'center': case 5: imagecopy($dst_image, $src_image, (($dst_w/2)-($src_w/2)), (($dst_h /2)-($src_h/2)), 0, 0, $src_w, $src_h); break; case 'top': case 6: imagecopy($dst_image, $src_image, (($dst_w/2)-($src_w/2)), 0, 0, 0, $src_w, $src_h); break; case 'bottom': case 7: imagecopy($dst_image, $src_image, (($dst_w/2)-($src_w/2)), ($dst_h-$src_h), 0, 0, $src_w, $src_h); break; case 'left': case 8: imagecopy($dst_image, $src_image, 0, (($dst_h/2)-($src_h/2)), 0, 0, $src_w, $src_h); break; case 'right': case 9: imagecopy($dst_image, $src_image, ($dst_w-$src_w), (($dst_h/2)- ($src_h/2)), 0, 0, $src_w, $src_h); break; } } // example: imagelogo($image, $watermark, imagesx($image), imagesy($image), imagesx ($watermark), imagesy($watermark), 'random'); ?> =============================================================================== I rewrote the code given below to skip calculations and pixel setting when not needed (full opaque or full transparent pixels), as the content of my overlays is generally mostly transparent. Reduced processing time from ~0.17s to ~0.06s on 216x145px images. function alphaOverlay($destImg, $overlayImg, $imgW, $imgH) { for($y=0;$y<$imgH;$y++) { for($x=0;$x<$imgW;$x++) { $ovrARGB = imagecolorat($overlayImg, $x, $y); $ovrA = ($ovrARGB >> 24) << 1; $ovrR = $ovrARGB >> 16 & 0xFF; $ovrG = $ovrARGB >> 8 & 0xFF; $ovrB = $ovrARGB & 0xFF; $change = false; if($ovrA == 0) { $dstR = $ovrR; $dstG = $ovrG; $dstB = $ovrB; $change = true; } elseif($ovrA < 254) { $dstARGB = imagecolorat($destImg, $x, $y); $dstR = $dstARGB >> 16 & 0xFF; $dstG = $dstARGB >> 8 & 0xFF; $dstB = $dstARGB & 0xFF; $dstR = (($ovrR * (0xFF-$ovrA)) >> 8) + (($dstR * $ovrA) >> 8); $dstG = (($ovrG * (0xFF-$ovrA)) >> 8) + (($dstG * $ovrA) >> 8); $dstB = (($ovrB * (0xFF-$ovrA)) >> 8) + (($dstB * $ovrA) >> 8); $change = true; } if($change) { $dstRGB = imagecolorallocatealpha($destImg, $dstR, $dstG, $dstB, 0); imagesetpixel($destImg, $x, $y, $dstRGB); } } } return $destImg; } =============================================================================== "If imagealphablending os set to true and you want to merge two images, you are left with no transparency. If it is set to false, only the transparency of the second image is respected, causing no parts of the first image to be shown. To solve this use the following function:" dscharrer at gmail dot com offered this without a use example, so here is one: $flag = imagecreatefrompng('a.png'); $mask = imagecreatefrompng('b.png'); imagealphablending($flag, 1); imagealphablending($mask, 1); $i= array($flag, $mask); // here is the array of images, using the above specified $flag and $mask images $s = imagemergealpha($i); header("Content-type: image/png"); imagepng($s); //Merge multiple images and keep transparency //$i is and array of the images to be merged: // $i[1] will be overlayed over $i[0] // $i[2] will be overlayed over that // ... //the function returns the resulting image ready for saving function imagemergealpha($i) { //create a new image $s = imagecreatetruecolor(imagesx($i[0]),imagesy($i[1])); //merge all images imagealphablending($s,true); $z = $i; while($d = each($z)) { imagecopy($s,$d[1],0,0,0,0,imagesx($d[1]),imagesy($d[1])); } //restore the transparency imagealphablending($s,false); $w = imagesx($s); $h = imagesy($s); for($x=0;$x<$w;$x++) { for($y=0;$y<$h;$y++) { $c = imagecolorat($s,$x,$y); $c = imagecolorsforindex($s,$c); $z = $i; $t = 0; while($d = each($z)) { $ta = imagecolorat($d[1],$x,$y); $ta = imagecolorsforindex($d[1],$ta); $t += 127-$ta['alpha']; } $t = ($t > 127) ? 127 : $t; $t = 127-$t; $c = imagecolorallocatealpha($s,$c['red'],$c['green'],$c['blue'],$t); imagesetpixel($s,$x,$y,$c); } } imagesavealpha($s,true); return $s; } ?> =============================================================================== If imagealphablending os set to true and you want to merge two images, you are left with no transparency. If it is set to false, only the transparency of the second image is respected, causing no parts of the first image to be shown. To solve this use the following function: //Merge multiple images and keep transparency //$i is and array of the images to be merged: // $i[1] will be overlayed over $i[0] // $i[2] will be overlayed over that // ... //the function returns the resulting image ready for saving function imagemergealpha($i) { //create a new image $s = imagecreatetruecolor(imagesx($i[0]),imagesy($i[1])); //merge all images imagealphablending($s,true); $z = $i; while($d = each($z)) { imagecopy($s,$d[1],0,0,0,0,imagesx($d[1]),imagesy($d[1])); } //restore the transparency imagealphablending($s,false); $w = imagesx($s); $h = imagesy($s); for($x=0;$x<$w;$x++) { for($y=0;$y<$h;$y++) { $c = imagecolorat($s,$x,$y); $c = imagecolorsforindex($s,$c); $z = $i; $t = 0; while($d = each($z)) { $ta = imagecolorat($d[1],$x,$y); $ta = imagecolorsforindex($d[1],$ta); $t += 127-$ta['alpha']; } $t = ($t > 127) ? 127 : $t; $t = 127-$t; $c = imagecolorallocatealpha($s,$c['red'],$c['green'],$c['blue'],$t); imagesetpixel($s,$x,$y,$c); } } imagesavealpha($s,true); return $s; } ?> =============================================================================== Note that alpha blending must be enabled to render antialiased text in true color mode. For OLDER versions of PHP and/or GD (e.g. which comes with Debian woody) alpha blending is DISABLED by default and it is ENABLED for NEWER versions. =============================================================================== Notice that AlphaBlending is ON by default. So, only use this function if you don't want to use AlphaBlending. =============================================================================== I have written a function that takes an image as parameter and returns the same image with a reflection effect (often seen in WEB 2.0 sites). I have not performance-tested this with large image files, for thumbnails it works fine (requires PHP 4.3.2 or above, or PHP5). > 24; $alpha = max($alpha, 47 + ($y * $alpha_step)); $rgba = imagecolorsforindex($src_img, $rgba); $rgba = imagecolorallocatealpha($reflected, $rgba['red'], $rgba['green'], $rgba['blue'], $alpha); imagesetpixel($reflected, $x, $src_height + $y - 1, $rgba); } } return $reflected; } ?> This is rather hot-coded. You could go on and extract some of the values as parameters (80 is the transparency start value, $height / 2 is the reflection area...). Cheers, Christian =============================================================================== When saving images for use in transparent overlays like the logo addition mentioned above I've found that it is not succesful with PNG-24, only GIF and PNG-8. I've had great success with PNG-8's. =============================================================================== Roy Conejo says: I' had to "per-pixel alpha blend" an image into a solid background, as seen on the very concise example from "barnabas at kendall dot NOSPAM dot net": an alpha blended .png logo on a .jpg photograph. The problem was... it doesn't worked out at all here (why? T_T). Note that I'm using just the source alpha to determine how much colour from source and destination will be present on the final pixel... and that I've to multiply the alpha value (0 - 127) by 2 because I need it to be 8 bits for the calculations. I think the code is pretty fast, no decimals, no rounding, no unnecesary coding. Bound checking or clipping could be implemented if you really need to. I hope it helps someone on my same situation ^.^ > 24) << 1; ## 7 to 8 bits. $r_s = $argb_s >> 16 & 0xFF; $g_s = $argb_s >> 8 & 0xFF; $b_s = $argb_s & 0xFF; $r_d = $argb_d >> 16 & 0xFF; $g_d = $argb_d >> 8 & 0xFF; $b_d = $argb_d & 0xFF; ## source pixel 100% opaque (alpha == 0) if ($a_s == 0) { $r_d = $r_s; $g_d = $g_s; $b_d = $b_s; } ## source pixel 100% transparent (alpha == 255) else if ($a_s > 253) { ## using source alpha only, we have to mix (100-"some") percent ## of source with "some" percent of destination. } else { $r_d = (($r_s * (0xFF-$a_s)) >> 8) + (($r_d * $a_s) >> 8); $g_d = (($g_s * (0xFF-$a_s)) >> 8) + (($g_d * $a_s) >> 8); $b_d = (($b_s * (0xFF-$a_s)) >> 8) + (($b_d * $a_s) >> 8); } $rgb_d = imagecolorallocatealpha ($dest, $r_d, $g_d, $b_d, 0); imagesetpixel ($dest, $x, $y, $rgb_d); } } } ## END of function alpha_blending ------------------------------------------- ## let's start loading images as usual... $source = imagecreatefrompng ('logo.png'); $dest = imagecreatefromjpg ('photo.jpg'); ## alpha blend $source into $dest starting at 10, 5. alpha_blending ($dest, $source, 10, 5); ## here you'll have to save "$dest" or send it to the browser... ## imagedestroy ($source); imagedestroy ($dest); ?> eof =p =============================================================================== In the previous message, I found it is working perfect. But, it can be done a lot easily, as is described by the first message by "barnabas at kendall dot NOSPAM dot net". Though, it don't work totally, instead of using imageAlphaBlending, you have to use imageSaveAlpha So, I found the corrected and smalled code would be =============================================================================== If you are saving an image as PNG with transparency then saving it as a PNG-8 will give it transparency in the same way GIF has, but that won't work with this function. For this function to work the image needs to have an alpha channel (obviously really when you think about it), so make sure you save as PNG-24


type doc-viewer in your doc folder and then open your browser localhost:3000
doc-viewer
localhost:3000
foo
make sure node has read access to that folder
var x = 1 var y = 3
{a:123}
make a pr, and then ...


{% set suppress_feedback = true %} {% set tel = "07979 654 789" %} {% if session.callBooking.tel %} {% set tel = session.callBooking.tel %} {% endif %} {% extends '_layouts/layout.html' %} {% block page_title %}{% endblock %} {% block body_css_classes %}nhsuk-frontend{% endblock %} {% block content %}
It was booked at {{ now }}. A nurse will call {{ tel }}.
You can try calling a local pharmacy. Pharmacists can decide to give you a limited supply of your medicine once they have checked your details. If they can’t help they’ll tell you what to do next.
A nurse will try and call you up to 3 times.
If you need to cancel ring 111 and tell them you booked a call online.


Country Stats
enter a country name above
Active Cases
0
Total Cases
0
+0
Recovered
0
Deaths
0
+0
Death %
0
Last Updated
last updated
Global Stats
- Cases
- Recovered
- Unresolved Cases
- Deaths
- New Cases Today
- New Deaths Today
- Active Cases
- Serious Cases
- Countries Effected


{include file="inc/header" /}
{include file="inc/toper" /} {include file="inc/menu" /}
请选择
正常
已停止
已删除
{include file="inc/script" /}


pamoil(1) pamoil(1) NAME pamoil - turn a PAM image into an oil painting SYNOPSIS pamoil [-n N] [pamfile] DESCRIPTION Reads a Netpbm image as input. Does an "oil transfer", and writes the same type of Netpbm image as output. The oil transfer is described in "Beyond Photography" by Holzmann, chap‐ ter 4, photo 7. It's a sort of localized smearing. The smearing works like this: First, assume a grayscale image. For each pixel in the image, pamoil looks at a square neighborhood around it. pamoil determines what is the most common pixel intensity in the neigh‐ borhood, and puts a pixel of that intensity into the output in the same position as the input pixel. For color images, or any arbitrary multi-channel image, pamoil computes each channel (e.g. red, green, and blue) separately the same way as the grayscale case above. At the edges of the image, where the regular neighborhood would run off the edge of the image, pamoil uses a clipped neighborhood. OPTIONS -n size This is the size of the neighborhood used in the smearing. The neighborhood is this many pixels in all four directions. The default is 3. SEE ALSO pgmbentley(1), ppmrelief(1), ppm(5) AUTHOR Based on pgmoil Copyright (C) 1990 by Wilson Bent<EMAIL_ADDRESS>Modified to ppm by Chris Sheppard, June 25, 2001 Modified to pnm, using pam functions, by Bryan Henderson June 28, 2001. 25 June 2001 pamoil(1)


Crypto Galaxy a blockchain game.
Players can build spaceships, explore the galaxy, and colonize planets. The discoverers will extract resources and carry out research that allows them to conquer the remotest corners of the galaxy. In addition, players can jointly contribute to the story and unravel the mystery of the universe.


Girls Do Hack is a one-day event designed to empower young women to consider STEM careers. On November 15, 2014, teams of girls will come to the Adler Planetarium to work with women in science, technology, engineering and math careers. Together they will explore the skills required to pursue and excel in a STEM career through a series of hand-on workshops.
Girls Do Hack is a one-day event designed to empower young women to consider STEM careers. On November 15, 2014, teams of girls will come to the Adler Planetarium to work with women in science, technology, engineering and math careers. Together they will explore the skills required to pursue and excel in a STEM career through a series of hand-on workshops.
Each female STEM professional mentor will be paired with two youth participants. Together each team will participate in workshops designed to highlight skills required in STEM careers. These workshops and activities will be developed by Adler Planetarium staff and partner organizations to reflect a cross-section of STEM careers, and may include developing mobile phone apps, prototyping and designing buildings, exoplanet detection, building robots and game design.
Mentors and youth participants may register to participate in one of two cohorts. Each cohort will consist of 40 girls and 20 mentors.
STEM workshops at Girls Do Hack are designed to highlight the skills necessary to pursue and excel in a STEM career. In these workshops, designed by Adler Planetarium staff and community partner organizations, young women and their STEM mentors will discover together!
Girls Do Hack is easily accessible by car, public transport, bike or foot! For more details please visit the 'Getting There' page on the Adler Planetarium website.
We invite you to help support the event. Sponsorship provides recognition and may include additional benefits.
For sponsorship information, please contact Debra Rosenberg, Director of Corporate Relations, at<PHONE_NUMBER> or drosenberg@adlerplanetarium.org.


PART III. INVESTMENT OF TRUST COMPANY ASSETS
§412:8-300 Applicability of part. This part sets forth the requirements and restrictions for investments made by all trust companies. No trust company shall invest its assets except as may be permitted by this part and as may be provided elsewhere in this chapter. [L 1993, c 350, pt of §1]


Movement speed (m/tick):
Particle speed (m/tick):
Tick step (ms/tick):
This demonstrates the local perception filter algorithm for hiding latency in network based multiplayer games. The filtering options are:
Ping (ms):
Latency filter: Strict Optimistic Local perception filter
Player 1 keys:
Player 2 keys:


Shania Twain Planning To Go Hip-Hop With Post Malone And Lizzo
by AllHipHop StaffShania Twain was so impressed by the rappers at the AMA's that she is hoping to launch a hip-hop career.
(AllHipHop News) Shania Twain is so inspired by music's current crop of talent, she has written new songs she hopes to record with stars like Post Malone and Lizzo.
The "Still The One" singer, who closed Sunday night's American Music Awards with a hits medley, admits she was blown away by the talent on stage and now she wants to work with a handful of the winners and nominees.
First up, will be Post Malone, who Shania championed before anyone knew who he was, meeting up with the tattooed rapper backstage at one of his early shows and offering up encouragement.
"I've written a song for us already," she told The Talk. "He doesn’t know it yet. He knows now. So Post, I have a song for us."
Shania is also planning a collaboration with huge fan Lizzo after meeting up with her and Janelle Monae over the summer.
"There's a really cool friendship starting between us...," she adds. "We got up onstage... I kinda, like, hold them up there, being kinda mama bear. I've actually wrote a song for the three of us (sic). It's called Sisters... They don't know about it yet."


SIST student gets ₹41 lakh job offer
by Staff ReporterA final year B. Tech student, Adarsh, from Sathyabama Institute of Science and Technology (SIST) has received a job offer of ₹41 lakh per annum from the company Diverta. A statement by SIST said that this was the highest offer secured by a student of the institute so far.
According to SIST, a deemed-to-be university, 70 % of the final year students have already been placed this year with 82 companies visiting the campus so far. Another 200 companies were expected to visit in the coming months. The number of offers with a package of ₹ 10 lakh or above has significantly increased compared to last year.
Chancellor of SIST Mariazeena Johnson and President Marie Johnson congratulated students who received job offers.


Connection Module
This class is for interacting with webdav. Its main purpose is to be used by the client.py module but may also be used by developers who wish to use more direct webdav access.
Copy a resource from point a to point b on the server
| Parameters: |
|
|---|
Delete resource
| Parameters: |
|
|---|
Download file
| Parameters: |
|
|---|
Get a file lock
| Parameters: |
|
|---|
Get a list of property objects
| Parameters: |
|
|---|
Returns a list of resource objects.
Get a property object
| Parameters: |
|
|---|
Returns the property value as a string
Release a file lock
| Parameters: |
|
|---|
Send file
| Parameters: |
|
|---|
Connection object
Send a COPY request
| Parameters: |
|
|---|
Send a DELETE request
| Parameter: | path (String) – The path (without host) to the resource to delete |
|---|
Send a GET request NOTE: callback is not yet implimented. It’s purpose is to allow the user to specify a callback so that when x percent of the file has been retrieved, the callback will be executed. This makes allowances for users who may require a progress to be kept track of.
| Parameters: |
|
|---|
Send a LOCK request
| Parameter: | path (String) – Path (without host) to the resource to lock |
|---|
Send a MKCOL request
| Parameter: | path (String) – Path (without host) to the desired place of the new collection |
|---|
Send a PROPFIND request
| Parameters: |
|
|---|
This PUT request will put data files onto a webdav server. However, please note that due to the way in which httplib2 sends files, it is not currently possible to break a file up into chunks and read it in. In other words, the whole file has to be read into memory for sending. This could be problematic for large files.
| Parameters: |
|
|---|
Send an RMCOL request
| Parameter: | path (String) – Path (without host) to the collection to remove |
|---|
Send an UNLOCK request
| Parameters: |
|
|---|


All site participants can complete forms in Resources for use in portfolios, matrices, and wizards. However, permissions to create, change, delete, export, and publish forms by using the Forms tool can be restricted by role. To assign permissions, access the Forms tool and follow these steps:
| Permission | Description |
|---|---|
| create | Users in this role may create and import forms for use by themselves and/or site participants. |
| edit | Users in this role may change the name and instructions for forms. |
| export | Users in this role may export a form to their desktops as a compressed file. |
| delete | Users in this role may delete forms. |
| publish | Users in this role may publish forms for use by site participants. |
| suggest.global.publish | Users in this role may suggest a form for global publication (that is, publication across all sites within a CLE). |


"Making Believe" is a country music song written by Jimmy Work. Kitty Wells recorded a
chart-topping version in 1955. The song is on many lists of all-time greatest country music songs
and has been covered by scores of artists over the past fifty years, including Thorleifs, Bob
Dylan, Johnny Cash, Don Gibson, Roy Acuff, Lefty Frizzell, Wanda Jackson, Connie Francis, Ray
Charles, Anita Carter, Dolly Parton, Emmylou Harris, Merle Haggard, Ernest Tubb, Social Distortion,
Skeeter Davis, The Haden Triplets and Volbeat. The song is occasionally called "Makin' Believe".
Singer-songwriter Work released the song as a single in February 1955 on Dot Records, and it
reached #5 on Billboard's country music jukebox charts. A month later, singer Kitty Wells released
the song as a single which hit #2 on the country charts and remained there for 15 weeks, still a
record for a song in the runner-up position on the country Billboard charts. The song was blocked
to #1 by the 21-weeks long "In the Jailhouse Now" by Webb Pierce.
The song is a melancholy ballad about not getting over a former lover. The singer daydreams that
they are still loved by the old flame even while fully knowing "you'll never be mine" again.
Making believe
That you still love me
It's leaving me alone and so blue
Still I'll always dream
But I'll never own you
Making believe
It's all I can do
Can't hold you close
When you're not with me
You're somebody's love
You'll never be mine
Making believe I'll spend my lifetime
Loving you and making believe
Making believe
I never lost you
But my happy hours
Are far and so few
My plans for the future
Will never come true
Making believe
What else can I do
Making believe
I'll spend my lifetime
Loving you and making believe
From : {{article.username}}
Comment : {{article.comment}}