Predicting an Antiaromatic Benzene Ring in the Ground State Caused by Hyperconjugation
Benzene, the prototype of aromatics, has six equivalent C‐C bonds (1.397 Å), which are intermediate between a C‐C double bond and a C‐C single bond. For over 80 years, chemists have spent much effort on freezing a localized structure to obtain a distorted bond‐length alternating benzene ring in the ground state, leading to various localized trisannelated benzene rings. However, most of the central benzene rings are still aromatic or nonaromatic. Here we report an antiaromatic benzene ring caused by hyperconjugation.
Unconventional Aromaticity in Organometallics: The Power of Transition Metals
Aromaticity, one of the most fundamental concepts in chemistry, has attracted considerable attention from both theoreticians and experimentalists. Much effort on aromaticity in organometallics has been devoted to metallabenzene and derivatives. In comparison, aromaticity in other organometallics is less developed. This Account describes how our group has performed quantum chemical calculations to examine aromaticity in recently synthesized novel organometallic complexes.
Probing Hyperconjugative Aromaticity of Monosubstituted Cyclopentadienes
Hyperconjugation and aromaticity are two of the most important concepts in chemistry. Mulliken and co‐workers combined both terms to explain the stability of cyclopentadiene. Here, we carried out DFT calculations on a series of mono‐ and disubstituted cyclopentadiene derivatives to investigate their hyperconjugative aromaticity. Our results revealed that one electropositive substituent can induce aromaticity, whereas one electronegative substituent prompts nonaromaticity rather than antiaromaticity.
Probing the Strongest Aromatic Cyclopentadiene Ring by Hyperconjugation
Hyperconjugation, an interaction of electrons in a σ orbital or lone pair with an adjacent π or even σ antibonding orbital, can have a strong effect on aromaticity. However, most work on hyperconjugative aromaticity has been limited to main-group substituents. Here, we report a thorough density functional theory study to evaluate the aromaticity in various cyclopentadienes that contain both main-group and transition-metal substituents.
Probing the Most Aromatic and Antiaromatic Pyrrolium Rings by Maximizing Hyperconjugation and Push–Pull Effect
Hyperconjugation, a weak interaction in organic chemistry, can have a strong effect on aromaticity, leading to the concept of hyperconjugative aromaticity, which was first proposed by Mulliken in 1939. However, most studies are limited to main group chemistry. Here we report the most aromatic and antiaromatic pyrrolium ring by maximizing the hyperconjugation caused by transition metal fragments and the push–pull effect.
Synthesis of tetraand octa-aurated heteroaryl complexes towards probing aromatic indoliums
Polymetalated aromatic compounds are particularly challenging synthetic goals because of the limited thermodynamic stability of polyanionic species arising from strong electrostatic repulsion between adjacent carbanionic sites. Here we describe a facile synthesis of two polyaurated complexes including a tetra-aurated indole and an octa-aurated benzodipyrrole. The imido trinuclear gold(I) moiety exhibits nucleophilicity and undergoes an intramolecular attack on a gold(I)-activated ethynyl to generate polyanionic heteroaryl species.


text:
Synonyms for septet
WordNet 3.0 Copyright © 2006 by Princeton University.
All rights reserved.
- 1. seven, 7, VII, sevener, heptad, septet, septenary, digit, figure
- usage: the cardinal number that is the sum of six and one
- 2. septet, septette, musical organization, musical organisation, musical group
- usage: seven performers or singers who perform together
- 3. septet, septette, set
- usage: a set of seven similar things considered as a unit
- 4. septet, septette, sevensome, gathering, assemblage
- usage: seven people considered as a unit
- 5. septet, septette, musical composition, opus, composition, piece, piece of music
- usage: a musical composition written for seven performers

source: openbmb/Ultra-FineWeb


Community™ Skills
Measure Skills and Knowledge
With Community™ Skills, organizations finally have an explicit way to measure knowledge and experience, providing a solid foundation to establish equity in the workforce.
Community™ Skills Measures Experience
You can finally understand your employees' accumulated skills and knowledge to make confident talent management decisions for your organization.
"Community Skills is objective and deliberate at the same time. We like how it aligns our internal programs on recruitment, recognition through pay, capacity planning and learning, and development, and our staff feel empowered knowing where they are and what development activities they need to do to grow more in the company."
— Carel Ariola, Corporate Services Manager, Birches Group
What Community Skills Can Do for You
Community™ Skills consists of a progression of five Skills stages, which can be used to measure the growth of an employee's capacity. Skills ratings can be aligned to compensation, recruitment, learning and development, succession planning, and more.
Managing Pay Movement
As employees build skills, they increase their value to the organization. Using Community™ Skills, compensation policies can be developed to align and link skills growth with pay increases.
Guiding Learning and Development
Creating a learning plan starts with understanding the skills required for the job and the skills gaps in your workforce.
Assessing Capacities in the Workforce
Staff development can be tailored at every job level to be able to push out more of the work that is essential to the organization's success.
Community™ Skills Products and Services
Community™ Skills is about measuring the stages of skill and knowledge growth. Using the Birches Group Community™ job levels, we have developed explicit measures for each job evaluation indicator, arrayed over five separate skill levels.
The Community™ Skills framework defines the five stages of progression from Basic to Master aligned to the same three factors and levels used in the Community™ Jobs standard. For each job evaluation factor, two indicators have been identified, resulting in a total of thirty milestones of Skills through which staff progress within their grade, and can serve as milestones for the progression to the next higher grade.
The Community™ Skills assessment tool can be used for multiple purposes, including ensuring unbiased application of starting salaries, managing pay, learning and development planning, succession planning, and promotion readiness to name a few.
Track Employee's
Learning and Growth
Through the articulation of the five Community™ Skills stages and six indicators for each stage, managers can now measure the skill levels of their staff and identify indicators where further development is needed. Over time, it is possible to observe Skills growth and align it with pay adjustments and determine readiness for the next grade or assignment.
Establish Fair
and Equitable Hiring Practices
Community™ Skills makes it possible for organizations to target the right candidate they need by allowing them to define the appropriate skill level required for a role. And because assessments are purely based on the candidate's skill level, setting starting salaries during the recruitment process is simpler, more objective, and easily justifiable to management.
Manage Pay Movement Clearly and Objectively
With the five stages of knowledge mapped across the different points in the salary range, Community™ Skills makes it possible for organizations to fully utilize their salary ranges and manage pay clearly and objectively. As staff build skills, they move across the stages driving movement in pay within their salary grade, and personal biases such as gender, race, etc. will have no impact on the increase that an employee receives.
Prepare for Career Pathing
Through the five stages of Community™ Skills, managers can plan the career paths of their staff ahead of time, ensuring promotion readiness to assume the responsibilities expected either at the next higher grade or deeper into the next skill stages of their current grade level.
Create Learning and
Development Assignments
Creating learning plans is now a collaborative effort between the manager and staff. Because each skill stage is predictable and explicit, staff can equally take ownership of their development by providing feedback/suggestions that will further refine their individual initiatives that facilitate skills growth.
Charting Your People's Growth and Skills
If you're ready to overhaul your talent management tools or just get access to better skills data,
Community™ Skills can finally connect careers with compensation.


text:
I helped a member at _URL_ with a problem last week that ended with an interesting solution. The explanation of how it worked was a bit complicated and worthy of sharing, hence this is the topic of today's post.
Count the Working Days Between Two Dates
The requirement was to count the working days between the arrival date (say of a request) and the approval date of that request.
I set up a simple data model as follows
The data table has a unique identifier (ID), a received date and a approved date.
I created a simple calendar table that has just 2 columns; a Dates column and a flag to indicate if each date is a working day. I used 0s and 1s in this second column so that it would be easy to add up this column to calculate the total working days.
I then created a single join between the calendar date and the received date. Technically I could have created the join on the Date Approved column as an alternative, however it is possible (even likely) that some requests will be "open" and hence will not have an Approved Date at some point in time. For this reason I have used the Date Received column to make the join.
Calculated Column or Measure?
There are many ways to write a formula that will work. Of course it is possible to write a calculated column in the data table that contains the total business days for each request. This would not be a complete disaster in this case as the cardinality of this column is likely to be relatively low. However this is not the best approach for a number of other reasons, the main one being that "Measures" are the turbo charged super tools of Power Pivot (read all the reasons here). You should invest time to learn how to write Measures, even (especially) when it is hard. In doing so you will build your skills and depth of understanding of how to use and leverage Power Pivot.
If you laze about in calculated columns world, you will never develop your skills enough to be really good at DAX.
Part Solution: A Simple SUM Measure
The first part of the Measure I wrote to solve this problem is as follows:
= CALCULATE( SUM(Calendar[Is Weekday]), FILTER( ALL('Calendar'), 'Calendar'[Date] >= MAX(Data[Date Received]) && 'Calendar'[Date] <= MAX(Data[Date Approved]) ) )
When reading a CALCULATE formula, you always start with the second parameter – in this case the FILTER function (lines 3 through 7). Filter is an iterator, and in this case it is iterating over the CALENDAR table AFTER any existing filters on the Calendar table are first removed (line 4).
FILTER works through each row in the Calendar table and checks to see if the date of each row in the Calendar table is greater than the maximum Date Received (in the current filter context) and also if that date is less than the maximum Date Approved (also in the current filter context). The FILTER function keeps the rows in the Calendar table that pass this test, and then CALCULATE (line 1) applies this FILTER prior to adding up the week days (line 2). Actually, This FILTER function is not very efficient – a better solution is provided below.
It is easier to understand how the formula works with an example, so read on.
Worked Through Example in a Pivot Table
Look at Request ID 2 in the pivot table below (the second row in the pivot). Pivot tables naturally provide initial filter context to the data model – that's what they do; that's why they are so great.
When looking at Request ID 2 in the above pivot table, the data model has an initial filter context so that only a single row in the Data table is "visible". It is possible to simulate this initial filter context into the Data table by physically applying a filter to the source table (like shown below ID = 2). You can do this in the Power Pivot window, or in this case I have used the linked table in Excel to simulate the filter as shown below.
When you simulate the initial filter context like this, it is much easier to understand how the formula works. Referring back to the formula (lines 6 and 7), you need to ask yourself "What is the MAX value of Date Received in the current filter context?". The answer is clearly 4th Jan and the maximum of Date Approved in the current filter context is 9th Jan. Once you know the answer to the MAX parts of this FILTER function (lines 6 & 7), it is then a lot easier to understand what the FILTER function is actually doing. Remember line 5 of the formula first removes all filters on the Calendar[Date] column (in this example there actually are no filters on the calendar table as there are no columns from Calendar in the pivot). Then FILTER checks each row of the Calendar table to see if the date in each row is >= 4th Jan and also <= 9th Jan. FILTER keeps all rows in the Calendar table that pass this test. Note I could have used MAX or MIN or even VALUES to "harvest" the value in the current filter context. In some cases you can even use SUM or AVERAGE – it really depends on your data and what you are trying to do. In short, the Aggregation functions and VALUES when used this way will "harvest" the value in the current filter context – very useful.
It is possible to simulate the results of this FILTER function on the Calendar table the same way as I showed with the Data table above. In the image below, note how I have used the standard Excel table filter feature to simulate the FILTER function in DAX. After applying the filters in Excel, there are 6 rows left in the table, and 5 of those rows have an "IS Weekday" value of 1.
So when SUM in the formula kicks in, it will return the value 5 – exactly the value shown in the pivot table above.
Note how much easier it is to understand and learn how these functions work when you simulate what is happening in the actual tables? This is a great way to learn to "think in tables".
The First Problem with this Partial Formula
You may have noticed that there is a problem with the partial formula shown above. Referring back to the pivot table (shown here again), see how the Grand Total row is blank?
What is really needed is for the Grand Total row to be the sum of the values shown in the rows in the pivot table ie the Grand Total should be 10. To understand why the Grand Total it is blank, you have to go through the same process I walked through above. In short, the initial filter context of the Grand Total in the pivot table is "completely un-filtered". So MAX of Date Received is 15th Jan and MAX of Date Approved is 11th Jan. If you go ahead and simulate this by applying these filters onto the Excel Calendar table (like before), there are no rows in the Calendar table that pass the test. The Calendar table is therefore completely filtered of all rows – none is visible, and hence the SUM formula returns BLANK (note it is BLANK, not 0).
A More Complete SUMX Solution (Still Not Optimal)
Whenever you get this "Grand Totals don't add up" problem, you should think of SUMX as the solution. I like to think of SUMX as a way to "simulate the natural filtering behaviour provided by the rows of the pivot table". Each row of the pivot table is providing initial filter context for one record in the Data table and hence the formula works on row level. But no such Data table filtering is provided by the Grand Total row and hence the formula doesn't work on Grand Total level. I cover this SUM vs SUMX behaviour in more depth in a blog post here.
Here is a formula that you may think should work, but it actually doesn't work at all.
Work Days SUMX Wrong = SUMX(Data, CALCULATE( SUM('Calendar'[Is Weekday]), FILTER( ALL('Calendar'), 'Calendar'[Date] >= MAX(Data[Date Received]) && 'Calendar'[Date] <= MAX(Data[Date Approved]) ) ) )
In the above formula, SUMX iterates over the Data table (line 2). For each row in the Data table, the formula lines 3 through 10 are executed. Intermediate DAX users can be forgiven for thinking that Context Transition occurs because of the CALCULATE function on line 3 – but in this case it does not happen. Remember earlier in the post I explained that the second parameter of CALCULATE is the first part of the formula to be executed. So in the above formula, the FILTER portion (lines 5 through 9) is executed in the initial filter context without any context transition. The CALCULATE isn't executed until after the FILTER portion is complete. That is why CALCULATE in this case does not force Context Transition and that is why this formula doesn't work.
Here is a formula that does work (Still Not Optimal)
Work Days SUMX= SUMX(Data, CALCULATE( CALCULATE( SUM('Calendar'[Is Weekday]), FILTER( ALL('Calendar'), 'Calendar'[Date] >= MAX(Data[Date Received]) && 'Calendar'[Date] <= MAX(Data[Date Approved]) ) ) ) )
Note above in this new correct formula the addition of a second CALCULATE on line 4. The CALCULATE function (ending on line 12) only has a single parameter (which is the second CALCULATE from line 4 through 11). Because the inner CALCULATE function is the first parameter of the outer CALCULATE, the outer CALCULATE is executed first (note if the inner CALCULATE was the second


Automate Windows VM Creation using PowerShell
Automate Windows VM Creation using PowerShell
This article is focuses on how new latest AZ PowerShell module can be used to provision a Windows virtual machine on Azure.
You would need Azure account in order to execute these script. If you don't have one, you can create a free Azure account here.
If you are not planning for any Azure certification, I would strongly recommend to at least go for AZ-203 certification which is about knowing Azure products from developer perspective.
Please refer my blog article below and it should help you get prepared for the exam.
Plan your AZ-203 certification today !
Let's Get Started for creating a windows VM on Azure.
Setup few variables
Before logging in to Azure and starting VM creation, let's setup few variables.
Resource Group – All Azure resources are organized in Resource Groups. We are going to create new resource i.e. Virtual Machine inside resource group of this name.
Location – The Azure region in which we want to place the new resource
VM Name – to specify the name of virtual machine
[code language='powershell'] $resourceGroup = "Fully-Configured-Windows-VM-WE" $location = "westeurope" $vmName = "MyFirstVM" [/code]
Login to Azure
Below command would help to login to Azure. Once this command is executed, it would open a popup where you can enter your email id and password for logging into Azure. Once you are logged in PowerShell would show command prompt and you will be able to type the next command.
[code language='powershell'] # Login to Azure Connect-AzAccount [/code]
Create credentials object
This statement would show a popup where you can enter the username and password. This same username and password can be used by you to login to the Virtual Machine.
We are going to use this object in subsequent steps.
[code language='powershell'] # Create user credential object # which would be used for Virtual machine $cred = Get-Credential ' -Message "Enter a username and password for VM." [/code]
Create Resource Group
This statement would create the resource group. The virtual machine would be placed inside this resource group.
If this resource group is deleted, all resources inside this resource groups would be deleted.
[code language='powershell'] # Create a resource group New-AzResourceGroup ' -Name $resourceGroup ' -Location $location [/code]
Create subnet
This would create a new SubNet and it would also reserve the IP address space.
[code language='powershell'] # Create a subnet configuration $subnetConfig = New-AzVirtualNetworkSubnetConfig ' -Name mySubnet ' -AddressPrefix [/code]
Create virtual network
The virtual network allows virtual machines to securely communicate with one another.
[code language='powershell'] # Create a virtual network $vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup ' -Location $location ' -Name MYvNET ' -AddressPrefix ' -Subnet $subnetConfig [/code]
Create public IP and DNS configuration
This command to reserve a static public IP address. Even if you boot multiple times, the static IP does not change. This IP can be used to connect with virtual machine using RDP.
[code language='powershell'] # Create a public IP address and specify a DNS name $pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup ' -Location $location ' -Name "mypublicdns$(Get-Random)" ' -AllocationMethod Static ' -IdleTimeoutInMinutes 4 [/code]
Create Network Security Group & Inbound rule for 3389 Port
The Network Security Group has rules which either allow or deny the traffic inbound to virtual network or outbound from virtual network.
The 3389 port is the port for allowing remote desktop.
[code language='powershell'] # Create an inbound network security group rule for port 3389 $nsgRuleRDP = New-AzNetworkSecurityRuleConfig ' -Name myNetworkSecurityGroupRuleRDP ' -Protocol Tcp ' -Direction Inbound ' -Priority 1000 ' -SourceAddressPrefix * ' -SourcePortRange * ' -DestinationAddressPrefix * ' -DestinationPortRange 3389 ' -Access Allow # Create a network security group $nsg = New-AzNetworkSecurityGroup ' -ResourceGroupName $resourceGroup ' -Location $location ' -Name myNetworkSecurityGroup ' -SecurityRules $nsgRuleRDP # Create a virtual network card # and associate with public IP address and NSG $nic = New-AzNetworkInterface ' -Name myNic ' -ResourceGroupName $resourceGroup ' -Location $location ' -SubnetId $vnet.Subnets[0].Id ' -PublicIpAddressId $pip.Id ' -NetworkSecurityGroupId $nsg.Id [/code]
Create virtual machine configuration
This block selects the virtual machine size, virtual machine operating system image, and network interface card. This object is then used to create the actual virtual machine.
[code language='powershell'] # Create a virtual machine configuration $vmConfig = New-AzVMConfig -VMName $vmName ' -VMSize Standard_D1 | ' Set-AzVMOperatingSystem ' -Windows -ComputerName ' $vmName -Credential $cred | ' Set-AzVMSourceImage ' -PublisherName MicrosoftWindowsServer ' -Offer WindowsServer ' -Skus 2016-Datacenter ' -Version latest | ' Add-AzVMNetworkInterface -Id $nic.Id [/code]
Create the virtual machine
This command uses all the configurations done till now and creates the virtual machine.
You will have to wait around 5 minutes of time to get the virtual machine created.
[code language='powershell'] # Create a virtual machine New-AzVM -ResourceGroupName $resourceGroup ' -Location $location ' -VM $vmConfig [/code]
Login to this virtual machine
You can login to this virtual machine using below PowerShell command
[code language='powershell'] # Login to virtual machine Get-AzRemoteDesktopFile ' -ResourceGroupName $resourceGroup ' -Name $vmName ' -Launch [/code]
Something to remember…
If you have created this VM only for learning purpose, please note that there is cost associated with every running virtual machine. So, please do not forget to delete your newly created resource group and all its contents by running below PowerShell commands
[code language='powershell'] _TAG_ all resources within this resource group Remove-AzResourceGroup -Name $resourceGroup [/code]
I hope you enjoyed this article. Please do not forget to comment and let me know if this information helped you.
Leave a Reply


text:
Views: 0 Author: Site Editor Publish Time: 2022-04-29 Origin: Site
Steam car wash machine is not unfamiliar to everyone, but how much do you know about the working principle of steam car wash machine? The following is an introduction to the principle and application of steam car wash machines.
Here is the content list:
A piston pump is a piston that moves back and forth through a fixed seal. The piston pump relies on the reciprocating motion of the piston, which makes the working volume of the pump chamber change periodically to achieve the suction and discharge of liquid. The piston pump of a steam car washer has a seal mounted on the plunger through a smooth cylinder wall. It mainly uses the plunger in the pump cylinder body reciprocating motion. The piston pump is through a fixed seal, a piston back and forth movement. The piston pump relies on the reciprocating motion of the piston to make the working volume of the pump chamber change periodically to achieve the inhalation and discharge of liquid. While the piston pump seal is mounted on the plunger, through a smooth cylinder wall. It mainly uses the plunger in the pump cylinder reciprocating motion, so that the plunger and the pump wall between the formation of volume change, repeatedly inhaling and discharging liquid and increase its pressure pump. The plunger pump generally has better initial use characteristics, the advantages of which are high rated pressure, compact structure, high efficiency, and easy flow rate adjustment, etc., but its disadvantage is that it cannot run too high pressure, the service life is also shorter.
The water capacity of the pump depends on the operating speed of the pump, and the pump must make the same amount of water into and out. The water flow parameter of the piston pump is stable, that is, regardless of the different pressure of the equipment ejected water flow is constant, therefore, if the nozzle or high-pressure pipe at the blockage, will lead to high-pressure pump pressure is too large. Therefore, the equipment system must be equipped with a pressure relief valve and other devices.
The most likely cause of failure of a high pressure car washing machine is usually not because of the pump, pump failure is generally caused by the wear and tear of components or parts, such as nozzle seal's wear. Generally speaking, the pump water intake is not enough, which is one of the main reasons for the failure of the pump in the early stage of use. Generally speaking, is because the inlet pipe diameter is too small or insufficient water supply, which leads to not enough water into the pump inside, making the pump cavitation phenomenon, cavitation makes the gas mixed in the water to produce a small explosion of overpressure damage, making the piston surface wear.
The above is a brief description of some of the high pressure car washing machine pumps, the pump is the heart of the operation of the high pressure car washing machine, so the quality of the pump affects the cleaning effect and service life of the machine.
Industrial steam washers have many places prone to arch, blockage, and crust phenomena. High pressure car washing machines to clear the blockage, many times you need to stop the downstream equipment and get inside the equipment to clear the material. At the same time, there are widely used in daily production, work, life, engineering vehicles, and transport vehicles cleaning, plant ground of, curtain wall, sculpture and so on cleaning work.
Kingkar Eco-Technologies Co., Ltd recommends you to read the working principle of steam car washers carefully. Our steam car wash machines are of excellent quality and are well received.
Besides，we provide GOCLEAN steam.
If you have related needs, welcome to our company's official website: _URL_. Thank you very much for your support.

source: m-a-p/FineFineWeb


text:
The yellow flag iris bears between four and twelve bright yellow flowers on each of its branching flower stalks. This iris thrives in wet areas and when no flowers appear, this iris is present as a tall clump of grayish green blade-shaped leaves.
The yellow flag iris can be propagated by root division in the late summer, after it has finished flowering. This iris can self propagate easily and is considered invasive in many wetlands around the country.
Iris pseudacorus, or yellow flag iris as it is commonly known, caught my attention because of its ability to survive and actually thrive in standing water. When I installed a fountain in my garden I selected this iris as an accent. I love how the strong vertical lines of the 4 foot tall foliage contrast with the flat surface of the water. My 4 Golden Orff fish spend their days in the roots of the iris and only venture into the open areas of water at dusk and through the night. If you have ever grown the yellow flag, you know that it is a vigorous grower to say the least. I have to divide the plants growing in a 3 gallon plastic bucket in my pool every other year.
Categoriesperennial, sun garden favorite, water garden
Bloom Timemid- to late summer
Height2 to 4 feet


text: We studied the diet composition and preference of giraffe in mosaic thicket. Diet composition was determined by direct observations throughout the year. The Jacobs index was used to calculate dietary preference indices. Although the recorded diet consisted of 20 browse species, 17 were tree/shrubs, and only two, Acacia karroo and the invasive alien Acacia cyclops, formed the bulk of the annual giraffe diet. On a seasonal basis, the deciduous A. karroo was the main food in spring/summer/autumn when it was preferred but it became less important in winter when it was not preferred. Although the evergreen A. cyclops was preferred by giraffe in all seasons, it became slightly more important as a forage source in winter when evergreen shrubs formed the bulk of the diet. Of the 17 shrub species recorded in the diet, only four were preferred by giraffe in spring/summer/autumn and seven in winter. A. karroo and other preferred species are therefore likely to be under pressure from heavy browsing in mosaic thicket, especially in situations when the alien A. cyclops is absent. We suggest that A. karroo and the palatable Grewia occidentalis could be used to prompt adjustments to giraffe stocking rates on wildlife ranches in mosaic thicket of the southern Cape.


Brining is not a new concept. Curing meat is recorded throughout history, dating back thousands of years, and as long as there have been curing techniques, brining has been alongside. It was originally used to preserve meat for later consumption. But what is wet brining and how does it fit into today's world? Together with the benefit of preservation came a few other bonuses. Adding flavor was a big perk since a good wet brine recipe soaks salt deeply into the meat.
What Is Wet Brining
Wet Brining
Now that refrigeration is so accessible, wet brining isn't used for preservation as often. Instead, it is a culinary tool to improve the meat people are planning to cook. It is a simple process, with high-end results. One of the most important necessities with brining is patience. It is a slow process, requiring plenty of wait time. But be assured, the end result is worth planning ahead for.
What Is Wet Brining?
Wet brining is basically the process of soaking your meat in a salt water bath. Using a salt water brine ratio that both extracts moisture from the piece of meat and helps the meat absorb other moisture, the bath helps to deeply season the meat. So what is wet brining? It's a culinary art to help season and perfect your meat.
What Does Brining Meat Do
What Is Wet Brining
What Does Brining Meat Do?
Brining meat does several things. By placing the meat in water that has a high solution of salt (higher than the air at least) the meat's juice and water are drawn out. At the same time, the meat continues to absorb other water, basically swapping the moisture inside. By swapping the water, the seasonings in the brine (salt and whatever else you'd like) soak through the meat and season it to the core.
What is Gained By Brining Meat?
Meat that has been brined gains a few characteristics. The first thing you will notice is immediately after brining meat, the piece of meat will have gained a bit of water weight. That is great because that can help keep the meat from drying out when it's cooked. If the meat even lost as much weight as usual when getting cooked, it would be left with the extra moisture it started with.
Can You Over Salt When Brining?
While you don't want to over-salt the water, a good salt water brine ratio has an awesome effect on the meat. The salt water acts as a loosening agent to the muscles within the brined meat. Think of it as a relaxer for all the muscles. When the muscles are loosened they don't tighten up as much during the cooking process. This is yet another way the brine helps keep meat moist. Since it isn't tightening up so much, the moisture isn't squeezed out of the meat, keeping it super juicy. Beyond keeping the meat juicy, the relaxed muscles also have a nice texture. Loosened muscles tend to be less chewy and rubbery… nice!
Because of the soaking process, the seasoning you put into your brine absorbs all throughout the piece of meat. It is a much better season compared to a basic surface seasoning. You can be sure it will be seasoned evenly as well since there aren't any nooks or crannies that water won't find. Brining is great because it works with slow cooked meats or meats for stews as well. There isn't much point to surface seasoning a chicken breast that is going into a slow cooker since it will be washed right off. By brining the breast first it gets the seasoning throughout the meat, and won't be rinsed away so easily.
Wet Brine Recipe
Salt Water Brine Ratio
Getting Ready To Boil The Water To Dissolve The Salt
Wet brining recipes are great because they are so versatile. The basic brining recipe is based on using about 1 cup of salt for every gallon of water necessary to completely submerge your meat. To be completely sure that the salt is dissolved into the water, I suggest heating it to a simmer, stirring until the salt is totally dissolved, then letting it cool again. Don't set your meat into the water before it is at least as cool as room temperature. You don't want the water to start cooking your meat.
Be Creative With Your Brining Solution
The reason wet brine recipes are so versatile is because any seasoning you add into the brine alongside the salt will be absorbed into the meat you are soaking. It is a great way to be creative with your cooking. Make sure to keep the salt as the main seasoning though. It is the only essential ingredient (besides water) in the process.
Wet Brine Recipe
A Salt Brine With Added Seasoning For Awesome Flavor
If you are going to brine a small amount of meat, say a few chicken breasts, it is possible to do it in a Ziplock bag. I still recommend placing the bag in a crockpot or other large pot to make sure any leaked water is contained.
Once you have the water seasoned and cooled, you can place your meat in. The amount of time you should leave the meat to soak will depend on the weight of the meat. An accepted idea is to leave the meat in for about one hour for every pound of meat. I tend to lean a little longer than that, pushing closer to 1.5 hours for every pound. It is possible to soak your meat too long, so don't push it too far, lest the meat turns mushy and unappetizing.
Brining Safety
A word to the wise, I always brine my food in the fridge. It isn't worth the risk of bacteria growing in my food to leave it out on the counter. I know it can be a pain to fit something so large in the refrigerator, but it is well worth the annoyance to avoid excess bacteria. Yuck!
Remove The Excess Surface Moisture For Better Browning
When your meat is done soaking, pull it out and pat it dry with a dish towel. Paper towels will work too. If you have time, let the meat sit on a plate in the refrigerator for an hour or so to let it air dry further. The wet surface can slow the meat from browning, so drying it will add even better texture in the long run.
The brining process can easily take a full day, but luckily most of it is very hands off. If you don't have much time, pat drying the meat instead of letting it air dry should be the first time you trim off. Try not to shorten the time in the brine too much. It takes quite a while to soak all the way through a piece of meat, especially larger pieces. It is well worth the patience as well. Starting the day before is a wonderful way to ensure you are getting the best amount of time possible in the brine.
To finish off, here is a quick recap.
What is wet brining? An awesome technique to make your meat juicier, tastier, and give it a great texture.
Soak your meat in a salt water brine ratio of 1 cup water to 1-gallon water.
Add any additional spices you would like in the water as well.
Soak it for 1 to 1.5 hours per pound of meat.
Pat it dry when you are done soaking it.
This simple technique is well worth the extra time, and the patience necessary. After you learn your favorite seasonings, wet brining will be a must for any meat in your household.
You can also check out this article on How To Brine Meat – An Intro And Guide To Brining for a more in depth introduction to wet and dry brining meat.
As always, if you or someone you know find this information on What Is Wet Brining; please consider sharing it with your Grilling friends and on social media!
If you would like to leave a comment or have useful tips of your own to share on how to wet brine meat, please do so below. We always welcome your input.
Pin It on Pinterest


This is an old revision of the document!
 - You may need to change your BIOS to allow legacy and unsecured boot
 - Unplug any attached storage or controllers
In order to get more information on your boot sequence, you can edit the /boot/boot/syslinux/syslinux.cfg file (for Batocera 5.25+, or /boot/boot/syslinux.cfg for Batocera 5.24 and earlier) and replace:
APPEND label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0
APPEND label=BATOCERA console=tty3 loglevel=9 vt.global_cursor_default=0
How to get access to a Linux console for troubleshooting?
 - If you can't use SSH because the network is not available, you can plug a USB keyboard on your Batocera box and:
 - on an x86_64 or x86 PC you can get a console with full graphical capabilities by pressing the [F1] key from the main system menu (to get into the file manager) and then [F4] for an xterm.
 - for other architectures, you can get to a text console by pressing simultaneously [Ctrl][Alt][F3].
Several video issues on PC x86 and x86_64 can be investigated with xrandr as described on this page.
If you use Batocera with a display that provides a high resolution like a 4K monitor, you might have trouble reading the text on the file browser (F1 on a PC) or the configuration screens of a few emulators. You can change the default DPI settings by editing batocera.conf and look for the section:
## DPI
## Workaround when correct DPI setting is not detected
## if fonts are too small, uncomment next line
No sound on EmulationStation and/or when launching emulators? Then your audio output might not be initialized correctly. The best way to diagnose audio issues is:
 1. Lauch Kodi from the main menu, and check that you have sound on when playing a media file (audio or video). You might need to tweak the audio sources from Kodi settings to make it work.
 2. Identify what audio output is used by Kodi. Go back to the audio settings in EmulationStation and find the audio output that looks as close as possible to the one used in Kodi. The names are not exactly the same, but you can identify what is the HDMI output number of sound card ID this way.
 3. You can also diagnose some sound issues with the alsamixer sound mixer that is available when pressing [Ctrl][Alt][F4] (text-mode sound mixer). Make sure that all the outputs are enabled, and they have their volume up.
If you have sound on EmulationStation, and in the emulators, but you can't hear the sound of the video snapshots, here are several steps that may help you:
 1. First, make sure you have enabled video snaps sounds in the menu SOUNDS SETTINGSENABLE VIDEO AUDIO
 2. Then, you can try to connect to Batocera through SSH and enter the following command:
wget -O /userdata/system/.asoundrc
This command will create an alsa config file as /userdata/system/.asoundrc. It should fix your video snap sounds for most SBC like Odroid Go Advance, but maybe not on a PC.
On a PC, depending on your hardware configuration, your GPU and audio chipset, it might be trickier to get it working.
First, through SSH, get the list of audio outputs with the command aplay -l. In my setup, I get:
# aplay -l
card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog [ALC255 Analog]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
 Subdevices: 0/1
 Subdevice #0: subdevice #0
 Subdevices: 1/1
 Subdevice #0: subdevice #0
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
If I want to use the audio output from HDMI0, I can see that it is card 0 and device 3. So, to make audio work on my setup, I need to edit the /userdata/system/.asoundrc file and replace pcm "hw:0,0" with pcm "hw:0,3", and then save and on reboot, it worked. This method might not work in 100% cases, but it's worth a try.
Worst case, if it doesn't work and you want to go back to the original state, just remove the file /userdata/system/.asoundrc (or \system\.asoundrc from the network share).
When you try to launch a game, the emulator stops and gets you back to EmulationStation. In most cases, you will find some useful information in /userdata/system/logs/es_launch_stderr.log (or /system/logs/ from the network shared drive).
In case you want to share a snapshot of your system log files to help developers diagnose your systemm you can use the menu SYSTEM SETTINGSDEVELOPERCREATE A SUPPORT FILE It will generate a tarball in /userdata/saves/ named batocera-support-YYYYMMDDHHMMSS.tar.gz (with year/date/time of creation in the filename).
Emulators will not show up in the EmulationStation system meny unless you have a rom in their respective folders. All available cores are always installed by Batocera, you never need to "add" cores.
 - Does not support Encrypted Games - they must be Decrypted
 - Bios may be needed if having graphical issues and boot issues
 - Most games let you invert your controls if you feel the left stick is swapped
 - Compatibility between games and PCSX2 emulator can be checked on this webpage.
 - To access all configuration options for PCSX2, you need to run its app in APPLICATIONS menu of the File Explorer that you can access by pressing F1 on your PC keyboard, from the systems menu.
Gamecube and Wii (Dolphin emulator).
 - To access all configuration options for Dolphin, you need to run its app in APPLICATIONS menu of the File Explorer that you can access by pressing F1 on your PC keyboard, from the systems menu.
When things go really wrong, and you want to "factory reset" your Batocera, i.e. putting all the settings to their default values without losing your ROMs, saves and scraped metadata, there is a method to do it:
 - If you access your Batocera user data from the network, simply rename the directory system from the SHARE network drive into system.old and reboot your Batocera.
 - Or, if you are connected through SSH, just enter mv /userdata/system /userdata/system.old and then reboot.
Those two commands are the same, and upon reboot, all your settings will be cleared out to their default values. You'll have to re-enter some parameters like your wifi credentials and so on… or, you can look at what you have in the previous configuration files like /userdata/system.old/batocera.conf and the files in /userdata/system.old/configs/ and one by one you can set up your previous configuration without re-entering everything (in particular for batocera.conf, you might have many options set in there).
 - troubleshooting._PHONE_.txt.gz
 - Last modified: 5 months ago
 - by lbrpdx


text:
- How much does a 2 liter bottle of soda pop weigh in pounds?
- How heavy is a full Coke can?
- What is something that weighs 1 pound?
- How much does a 2 liter of water weigh?
- How much does a 20 oz bottle of soda weigh?
- How much does a soda weigh?
- What is 5kg in Litres?
- How heavy is a 24 pack of soda?
- How heavy is a 330ml can of Coke?
- How much does a 12 pack of soda weigh?
- How many kg is 2 Litres?
- How much do I weigh in water?
- Does soda weigh more than water?
- What does 1 liter of water weigh?
- Which is heavier 1kg or 1 Litre?
- Is 1kg equal to 1 liter?
- How many liters is a pound?
- What is 3 kg in Litres?
How much does a 2 liter bottle of soda pop weigh in pounds?
How much does a 2-liter bottle of soda pop weigh in pounds.
(Assume that the pop has the density of water, namely 1 kg/liter, and that the weight of the bottle itself is negligible.) (1 kg = 2.2 lb.) Answer.
How heavy is a full Coke can?
about 384 g.Each can of regular Coke currently on hand has a mass of about 384 g.
What is something that weighs 1 pound?
A block of butter. A loaf of bread. A can of soup. Three medium-sized bananas.
How much does a 2 liter of water weigh?
Specifically and roughly speaking, the density of water is 1000kg/m3. In practical terms, this means that one liter of water weighs about one kilogram, so two liters weigh two kilograms or a little under 4.5 pounds.
How much does a 20 oz bottle of soda weigh?
Four ounces equals a quarter of a pound. So 1.25 pounds is 20 ounces." I then pulled up an ounce to pound conversion website and showed her that I wasn't lying and that I was, indeed, right.
How much does a soda weigh?
According to Density of Coke and Diet Coke , regular Coke has a density of 1.042g/mL, so just multiply that by 330 and you get 343.86g. A little bit of digging on the internet tells me that the can itself weighs approximately 15g, so the total is 358.86g.
What is 5kg in Litres?
Convert 5 Kilograms to Liters5 Kilograms (kg)5 Liters (L)1 kg = 1 L1 L = 1 kg
How heavy is a 24 pack of soda?
12-OunceAmazon.com : Coca Cola Classic, 12-Ounce Cans (Pack of 24) : Grocery & Gourmet Food.
How heavy is a 330ml can of Coke?
About 350 gmsFurthermore, how heavy is a 330ml can of Coke? About 350 gms. The liquid fill in a can is not as exact as it could be on a high speed filling line, plus different can manufacturers have slightly different cans.
How much does a 12 pack of soda weigh?
Think about it. A 12 oz. can that weighs 11 pounds. Packed with extra goodness, and heavy metals, or other amazing substances, this can of coke is a bargain at $11.92 + $56.96 shipping.
How many kg is 2 Litres?
Convert 2 Liters to Kilograms2 Liters (L)2 Kilograms (kg)1 L = 1 kg1 kg = 1 L
How much do I weigh in water?
At room temperature (70°F / 21°C), the density of water is 0.99802 g/ml. This means that for a US gallon of water at room temperature, the weight would be around 8.33 pounds.
Does soda weigh more than water?
Regular soda contains sugar as a sweetener. … The difference in the amount of dissolved sweeteners leads to a difference in density. Cans of regular soda tend to be more dense than water, so they sink. Cans of diet soda are usually less dense than water, so they float.
What does 1 liter of water weigh?
2.20 pounds1 liter of water (l) = 2.20 pounds of water (lb wt.)
Which is heavier 1kg or 1 Litre?
One litre of water has a mass of approximately one kilogram (depending on temperature, isotope mix etc), but one litre of molten lead has significantly more mass!! … A kilogram is mass. A liter is volume. A liter of water will mass about a kilogram.
Is 1kg equal to 1 liter?
A litre of liquid water has a mass almost exactly equal to one kilogram. … Because volume changes with temperature and pressure, and pressure uses units of mass, the definition of a kilogram was changed. At standard pressure, one litre of water has a mass of 0.999975 kg at 4 °C, and 0.997 kg at 25 °C.
How many liters is a pound?
How many liters are in a pound of water? 1 l = 2.2 lb wt.
What is 3 kg in Litres?
Convert 3 Kilograms to Liters3 Kilograms (kg)3 Liters (L)1 kg = 1 L1 L = 1 kg


text:
Pre-recruitment medical examination
The employer has to organise the pre-recruitment medical examinations when hiring employees. It is to ensure that the employees are physically fit and able to fulfill the contract of employment.
The pre-recruitment medical examination is a compulsory medical examination.
The French labor code, article R 4624-10 states that :
This medical examination concerns every employee, whatever the length of his employment contract. This examination takes place not later than the end of the trial period. But in case of strengthened medical supervision, the pre-recruitment medical examination does take place before the employee starts working for the enterprise.
The pre-recruitment medical examination includes :
- A questioning to know personal and family medical history, workstations occupied in the past (what risks was the employee exposed to).
- A physical examination
- Tests such as :
- Eye test
- Urinary examinations
- Lung function test
- Hearing test
- The occupational physician can also prescribe other tests according to the occupational risks observed within the company : blood test, urine cytology, etc
Labor code, article R 4624-11, defines the objectives of this examination :
1° to be sure the worker is physically fit to perform the work for which he would be recruited,
2 to propose modifications of the workstation, if it is necessary,
3° to know if the employee has a dangerous illness for the other workers,
4° to inform the worker about risks at the workstation, which health surveillance will be necessary,
5° and how he can protect from this hazards.
A report is filed by the occupational physician after each medical examination. The doctor has to give his opinion : the employee is fit or unfit to work, a workstation layout is necessary, etc
One copy of this certificate is given to the employer and the other is for the employee. Usually the occupational physician keep a copy too in the medical record of occupational health.
Time spent on the medical examination and on prescribed tests is taken on working time or is compensated and tranport costs too.


text:
SikaGrind®-108 (TH) is a liquid cement grinding aid with performance enhancing properties.
SikaGrind®-108 (TH) has been specifically designed to increase the output of cement grinding plants and obtain improved early strength development for cements.
- Neutralisation of electrical charges on the surface of the cement particles
- Separation of the cement particles
- Enhanced grinding properties of the cement mill due to less accumulation of material on grinding balls and mill-liners
- Higher separator efficiency due to improved cement particle dispersion
- Reduced relative power consumption per ton of cement due to increased output of the grinding system (tons per hour)
- Easier achievement of the desired cement fineness (Blaine, particle fraction > 32μm, granulometry) due to reduced re-agglomeration of the sufficiently ground cement particles
- Minimized problems with "plugging" due to improved powder flow characteristics
- Reduced quantity of "over-milled" particles in the cement granulometry
- Easier discharge of the silos
- Economic cement design with clinker replacements


text:
Locate the Touch ID sensor
The Touch ID sensor is located in the upper-right corner of your keyboard.
To set up and use Touch ID on a Magic Keyboard with Touch ID, you need a Mac computer with Apple silicon and macOS Big Sur 11.4 or later.
To use the built-in Touch ID on a Mac laptop computer with Touch ID, just set up Touch ID in System Settings (Or System Preferences) > Touch ID & Password.
Try these steps
Try using Touch ID after each step:
- Make sure that you have the latest version of macOS.
- Make sure that your fingers and the Touch ID sensor are clean and dry.* Use a clean, lint-free cloth to wipe off any dirt or debris on the Touch ID sensor.
- Your finger should cover the Touch ID sensor completely. While Touch ID is scanning, you shouldn't tap too quickly or move your finger around.
- Choose Apple menu > System Settings (or System Preferences), click Users & Groups, then click the lock to make changes. Click Login Options, then make sure that Automatic login is off.
- Choose Apple menu > System Settings (or System Preferences), click Touch ID & Password, then turn on the setting to use Touch ID to unlock your Mac.
- Try to add a different fingerprint. Choose Apple menu > System Settings (Or System Preferences), click Touch ID & Password, then click Add Fingerprint.
- For Magic Keyboard with Touch ID, turn your keyboard off and on, then connect your keyboard to your Mac with the USB to Lightning cable. After you turn Magic Keyboard off then on, Touch ID may be unavailable for up to 10 seconds.
- Restart your Mac.
If you need to enter your password
The first time you log in after you turn on, restart, or log out of your Mac, you must log in by entering your password manually. After that, you can use Touch ID to log in.
Additionally, you might need to enter your password instead of using Touch ID in these situations:
- Your fingerprint isn't recognized five times in a row
- You haven't unlocked your device in more than 48 hours
- You're trying to change settings in the Touch ID & Password pane of System Preferences
* Moisture, lotions, sweat, oils, cuts, or dry skin might affect fingerprint recognition. Certain activities can also temporarily affect fingerprint recognition, including exercising, showering, swimming, cooking, or other conditions or changes that affect your fingerprint.


text:
The sort order for files and folders whose names contain numerals is different in Windows Vista, Windows XP, and Windows Server 2003 than it is in Windows 2000
In this example, 401 is a numerically higher value than 6. Therefore, the Ie401sp2 folder is listed after the Ie6 folder when you sort the folders by name in ascending order. In the following example, note how the following files, whose names contain numerals, are sorted.
To configure a policy setting to modify sort order in Windows Vista, Windows XP, or Windows Server 2003Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
You can configure a policy setting to use either the newer sort order or the sort order that is used in Windows 2000. The policy setting is stored in the following registry entries:
- Click Start, click Run, type regedit, and then click OK.
- Use one of the following methods, as appropriate for your situation:
- To configure the policy for all users of the computer, locate and then click the following registry key:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer
- To configure the policy for the current user, locate and then click the following registry key:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer
- To configure the policy for all users of the computer, locate and then click the following registry key:
- On the Edit menu, point to New, and then click DWORD Value
- Type NoStrCmpLogical, and then press ENTER.
- On the Edit menu, click Modify.
- To set the sort order that you want to use for files and folders whose names contain numerals, use one of the following methods, as appropriate for your situation:
- To configure Windows XP or Windows Server 2003 to use the method that Windows 2000 uses for sorting files and folders, in the Value data box, type 1, and the click OK.
- To configure the default Windows XP or Windows Server 2003 method for sorting files and folders, in the Value data box, type 0, and then click OK.
Note When theNoStrCmpLogicalvalue does not exist or when it is set to 0 (zero), the default Windows XP sort order is used.
- Exit Registry Editor, and then restart the computer.
Article ID: 319827 - Last Review: 08/28/2007 16:00:24 - Revision: 1.9
- kbhotfixserver kbqfe kbfix kbbug kbwinxpsp1fix KB319827


Analyzing W3C IIS Log with PowerBI
IIS and HTTP.sys logs contain incredible source of information to help in identifying potential issues.
When I first started troubleshooting IIS/Websites issues, LogParser (and LogParser Studio) was my go to tool - writing queries to find information, or generate charts to impress people.
I have been using PowerBI for quite sometime and it never occurred to me to use it as a tool for log analysis. In this post, I will explain on how to transform raw W3C Extended Log File Format into CSV, and then import it to PowerBI.
Tools needed:
 1. Log Parser (free!)
 2. PowerBI Desktop (free!)
Transforming W3C IIS Logs to CSV
You most likely have over hundreds of log to be analyzed, I wrote a script to help in converting them into CSV. In my most recent customer, they have 500 logs, over period of just one year.
 1. Make sure you have logparser installed, and note down the install location. I wrote a small batch file to convert W3C IIS logs to CSV using logparser. You can get the .bat here, make sure to modify the script to include your logs location, and logparser.exe location.
 2. Run the script, and the converted .CSV will be placed in the same folder as your logs.
 [caption id="attachment_435" align="alignleft" width="1024"] Converting W3C IIS Logs into CSVs[/caption]
Import Converted .CSVs into PowerBI
 1. Open Power BI
 2. Choose Get File and select the folder where your converted CSV Logs reside, click OK
 3. You will notice that it is importing the file's binary (column 1) and its metadata (rest of columns). We don't want the metadata, we want the binary within these files. Click Edit.
 4. In the Query Editor, remove all the other columns except the one contains the binary data.
 5. Once you remove the rest of the columns, click on the button (next to Content, with two downward arrows) as shown below to expand the binary data
 6. Once expanded, in the Query Editor, click "Close and Apply"
 7. Wait for a few minutes, and you should see the "report" windows.
 8. You can then build any report or charts you like based on the CSV you have imported. The example I have shows table with highest average return time, sc-status, etc.
A sample of the PowerBI Model (.pbix) used in this blog can be downloaded from my GitHub repository
Happy charting.


text:
Tryon County, as Montgomery County was originally known, was set off from Albany County in 1772 on the petition of Sir William Johnson and named Tryon in honor of his friend, the Colonial Governor William Tryon. Johnstown was set up as the county seat. After the close of the Revolutionary War, the name of the county was changed to Montgomery in honor of General Richard Montgomery. All the land south of Oneida Lake and west of Utica to the present city of Buffalo was named Whitestown, in honor of early pioneer Hugh White, and was added to Montgomery County.
Visit the U.S. Census Website for an array of demographic information.
U.S. Census information
Your link for the official Montgomery County Website.

source: HuggingFaceFW/fineweb-edu


Complemento eVis 257
QGIS User Guide, Verso 2.2
19.6.3 Especificando o local e o nome de outros documentos suportados
Supporting documents such as text documents, videos, and sound clips can also be displayed or played by eVis. To
do this, it is necessary to add an entry in the file reference table that can be accessed from the Configure External
Applications window in the Generic Event Browser that matches the file extension to an application that can be
used to open the file. It is also necessary to have the path or URL to the file in the attribute table for the vector
layer. One additional rule that can be used for URLs that dont contain a file extension for the document you want
to open is to specify the file extension before the URL. The format is file extension:URL. The URL
is preceded by the file extension and a colon; this is particularly useful for accessing documents from wikis and
other web sites that use a database to manage the web pages (see Table evis_examples).
19.6.4 Using the Event Browser
When the Event Browser window opens, a photograph will appear in the display window if the document refer-
enced in the vector file attribute table is an image and if the file location information in the Options window is
properly set. If a photograph is expected and it does not appear, it will be necessary to adjust the parameters in the
Options window.
If a supporting document (or an image that does not have a file extension recognized by eVis) is referenced in the
attribute table, the field containing the file path will be highlighted in green in the attribute information window if
that file extension is defined in the file reference table located in the Configure External Applications window. To
open the document, double-click on the green-highlighted line in the attribute information window. If a supporting
document is referenced in the attribute information window and the file path is not highlighted in green, then it
will be necessary to add an entry for the files filename extension in the Configure External Applications window.
If the file path is highlighted in green but does not open when double-clicked, it will be necessary to adjust the
parameters in the Options window so the file can be located by eVis.
If no compass bearing is provided in the Options window, a red asterisk will be displayed on top of the vector
feature that is associated with the photograph being displayed. If a compass bearing is provided, then an arrow will
appear pointing in the direction indicated by the value in the compass bearing display field in the Event Browser
window. The arrow will be centered over the point that is associated with the photograph or other document.
To close the Event Browser window, click on the [Close] button from the Display window.
19.6.5 Ferramenta ID de Evento
The Event ID module allows you to display a photograph by clicking on a feature displayed in the QGIS map
window. The vector feature must have attribute information associated with it to describe the location and name of
the file containing the photograph and, optionally, the compass direction the camera was pointed when the image
was acquired. This layer must be loaded into QGIS before running the Event ID tool.
Iniciando o mdulo Identificao de Evento
Event ID
To launch the Event ID module, either click on the icon or click on Database eVis Event ID
Tool. This will cause the cursor to change to an arrow with an i on top of it signifying that the ID tool is active.
To view the photographs linked to vector features in the active vector layer displayed in the QGIS map window,
move the Event ID cursor over the feature and then click the mouse. After clicking on the feature, the Event
Browser window is opened and the photographs on or near the clicked locality are available for display in the
browser. If more than one photograph is available, you can cycle through the different features using the [Previ-
ous] and [Next] buttons. The other controls are described in the ref:evis_browser section of this guide.
19.6.6 Conexo com o Base de Dados
The Database Connection module provides tools to connect to and query a database or other ODBC resource,
such as a spreadsheet.
258 Captulo 19. Complementos
QGIS User Guide, Verso 2.2
eVis can directly connect to the following types of databases: PostgreSQL, MySQL, and SQLite; it can also
read from ODBC connections (e.g., MS Access). When reading from an ODBC database (such as an Excel
spreadsheet), it is necessary to configure your ODBC driver for the operating system you are using.
Iniciando o mdulo Conexo com a Base de Dados
eVis Database Connection
To launch the Database Connection module, either click on the appropriate icon or click
on Database eVis Database Connection. This will launch the Database Connection window. The window
has three tabs: Predefined Queries, Database Connection, and SQL Query. The Output Console window at the
bottom of the window displays the status of actions initiated by the different sections of this module.
Conectar a uma base de dados
Click on the Database Connection tab to open the database connection interface. Next, use the Database Type
combo box to select the type of database that you want to connect to. If a password or username is required,
that information can be entered in the Username and Password textboxes.
Enter the database host in the Database Host textbox. This option is not available if you selected MS Access as
the database type. If the database resides on your desktop, you should enter localhost.
Enter the name of the database in the Database Name textbox. If you selected ODBC as the database type, you
need to enter the data source name.
When all of the parameters are filled in, click on the [Connect] button. If the connection is successful, a message
will be written in the Output Console window stating that the connection was established. If a connection was not
established, you will need to check that the correct parameters were entered above.
Figura 19.12: The eVis Database connection window
1. Database Type: A drop-down list to specify the type of database that will be used.
19.6. Complemento eVis 259
QGIS User Guide, Verso 2.2
2. Base de dados hospedeiro: O nome da base de dados hospedeiro.
3. Port: The port number if a MySQL or PostgreSQL database type is selected.
4. Database Name: The name of the database.
5. Connect: A button to connect to the database using the parameters defined above.
6. Output Console: The console window where messages related to processing are displayed.
7. Nome de Usurio: Nome de usurio para uso quando uma base de dados protegida por senha.
8. Senha: Senha para uso quando uma base de dados protegida por senha.
9. Consultas pr-definidas: Guia para abrir a janela Consultas pr-definidas.
10. **Conexo com a base de dados **: Guia para abrir a janela Conexo com a Base de dados.
11. Consulta SQL: Guia para abrir a janela Consulta SQL.
12. Help: Displays the online help.
13. OK: Fecha a janela principal do Conexo com a Base de Dados.
Execuo de consultas SQL
SQL queries are used to extract information from a database or ODBC resource. In eVis, the output from these
queries is a vector layer added to the QGIS map window. Click on the SQL Query tab to display the SQL query
interface. SQL commands can be entered in this text window. A helpful tutorial on SQL commands is available at
_URL_ For example, to extract all of the data from a worksheet in an Excel file, select
* from [sheet1$] where sheet1 is the name of the worksheet.
Click on the [Run Query] button to execute the command. If the query is successful, a Database File Selection
window will be displayed. If the query is not successful, an error message will appear in the Output Console
window.
In the Database File Selection window, enter the name of the layer that will be created from the results of the
query in the Name of New Layer textbox.
1. Janela de Texto de Consulta SQL: Uma tela para escrever consultas SQL.
2. Run Query: Button to execute the query entered in the SQL Query Window.
3. Janela Console: A janela console onde as mensagens relacionadas ao processamento so exibidas.
4. Help: Displays the online help.
5. OK: Closes the main Database Connection window.
Use the X Coordinate and Y Coordinate combo boxes to select the fields from the database that
stores the X (or longitude) and Y (or latitude) coordinates. Clicking on the [OK] button causes the vector layer
created from the SQL query to be displayed in the QGIS map window.
To save this vector file for future use, you can use the QGIS Save as... command that is accessed by right-clicking
on the layer name in the QGIS map legend and then selecting Save as...
Dica:


text:
- Does putting meat tenderizer stop dogs eating poop?
- What is the best Coprophagia deterrent?
- Can I give my dog Pumpkin everyday?
- Will pumpkin stop dog eating poop?
- What happens if I give my dog too much pumpkin?
- Is pumpkin bad for dogs?
- What can I give my dog for constipation at home?
- How do you get a dog Unconstipated?
- What can I give my dog to help him poop?
- How much pumpkin should I add to dog food?
- Can pumpkin give dogs diarrhea?
- Why does pineapple stop dogs from eating poop?
Does putting meat tenderizer stop dogs eating poop?
Breaking the Habit There are two approaches to stopping the behavior.
The most common approach is to use either Adolph's meat tenderizer or a product called "For-bid".
These products are supposed to give the stool a bitter flavor when eaten.
In my experience, these products are only successful some of the time..
What is the best Coprophagia deterrent?
NaturVet Coprophagia Deterrent Plus Breath Aid Dog Soft Chews are a must-have for dogs who like to snack on stool. This veterinarian-formulated functional chew tastes like a treat and keeps your pup from eating unpleasant and stinky findings from the backyard.
Can I give my dog Pumpkin everyday?
Generally, 1 tsp of canned (or cooked and pureed) pumpkin per 10 lbs of body weight per day is a good standard to go by. If your dog has a health condition such as diabetes, please talk to your vet before feeding pumpkin to your dog.
Will pumpkin stop dog eating poop?
Coat stools with hot sauce or lemon juice. Add a few tablespoons of canned pumpkin to his food bowl each day. Pumpkin tastes good in food, but disgusting in dog poop. Add meat tenderizer to your dog's food (it will make the dog waste taste VERY bad).
What happens if I give my dog too much pumpkin?
Risks of Pumpkin for Dogs However, if you are feeding your dog at home, too much pumpkin isn't a good thing. An excess of fiber in a dog's diet can cause digestive distress and inhibit the absorption of other nutrients in his food. Additionally, the vitamin A found in pumpkins can turn deadly.
Is pumpkin bad for dogs?
"The stem and leaves are covered with prickly hairs that could hurt your pets, and raw pumpkin isn't particularly digestible for them," says Dr. Becker. So, although your dog could eat a whole, raw pumpkin, it's not recommended.
What can I give my dog for constipation at home?
How Can I Treat My Dog's Constipation?A stool softener or other laxative agent.Medication to increase the contractile strength of the large intestine.Adding fiber to your dog's diet with canned pumpkin, wheat bran or a product such as Metamucil.A veterinarian-prescribed, high-fiber diet.An increase in exercise.More items…
How do you get a dog Unconstipated?
What To Do If Your Dog Is ConstipatedPumpkin—Weirdly, this dietary fix works in some dogs for either constipation or diarrhea. … Canned dog food—Elevated moisture content of canned food may help regulate the system.Powdered fiber supplements.More items…•
What can I give my dog to help him poop?
A tried-and-true food remedy is canned pumpkin, which contains lots of dietary fiber as well as moisture to help with dried-out stools. Other sources of fiber that you can add to your dog's diet include psyllium husk powder (unsweetened, unflavored Metamucil) or ground dark leafy vegetables, such as spinach.
How much pumpkin should I add to dog food?
To help abate your dog's diarrhea, add 1-to-4 tablespoons of pumpkin to your dog's meal. It is a good idea to start out with smaller quantities to avoid adding too much fiber to your dog's diet, and if you have any questions about exactly how much pumpkin to feed your dog, consult your veterinarian.
Can pumpkin give dogs diarrhea?
This festive gourd is a miracle food for dogs. Good for both diarrhea and constipation, canned pumpkin (not raw, not the sugary, spicy pie filling) is loaded with fiber and beta-carotene, which the body converts to vitamin A.
Why does pineapple stop dogs from eating poop?
Try putting small chunks of fresh pineapple into your dog's food. The theory is that any subsequent faeces then has an unpleasant, bitter or acidic taste, which deters your dog from eating it.


What's the difference between a "cold read" and a "prepared material" workshop?
Important question! A "cold read" means the workshop instructor (the casting director) provides material, usually from the shows he or she may have worked on, that you then read "cold" (without much time to rehearse). Usually the instructor gathers each actor's headshot, and then assigns scenes, sometimes pairing actors together. You then will have 5-15 minutes to work on your scene, and then perform them for the instructor (see classroom vs 1-on-1 style for more info). Generally you should hold your sides while performing a cold read.
A "prepared material" workshop means you must bring in your own scene or monologue (be sure to check if the studio provides a reader) and perform for the instructor. Whether or not you hold your sides/script is entirely up to you, but prepared material should be just thatprepared. Some workshop studios require you to get your own scenes approved prior to your workshop. When registering always be sure to ask what that studio's policy is, as well as how to get your scene approved, if need be.
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request


text:
Torpedoing Conventional Thinking on the Cheonan
The narrative around the Mar. 26 sinking of the South Korean Navy Corvette Cheonan, and the death of 46 sailors, seems pretty straightforward: the ship was sunk by a North Korean (DPRK) torpedo. That was the conclusion by a South Korean (ROK) panel of 47 military and military-research experts and three international representatives. The only question left unanswered was the DPRK's motive, with fallout from an internal power struggle holding the inside track.
But two researchers from the University of Virginia and Johns Hopkins University are suggesting there may have been a rush to judgment, and that the evidence presented by the panel is deeply flawed. Seunghun Lee, a professor of physics at Virginia, and J.J. Suh, an associate professor of Korean Studies at Johns Hopkins, have analyzed the findings of the Joint Civil-Military Investigation Group (JIG) and found them wanting.
The JIG concluded that the Cheonan was ripped in two by an external explosion from a North Korean torpedo, which ROK naval units recovered. But according to Lee and Suh, those conclusions are "riddled with such serious flaws as to render the JIG's conclusion unsustainable." They even suggest that some of the X-ray data used to tie the torpedo to the explosion "may have been fabricated."
Americans who watch television saw a sobering re-creation of the event in which an exploding torpedo's powerful bubble destroyed a similar sized ship. But according to the two authors, the South Korean Navy has not been able to "produce a bubble simulation consistent with the information presented in the JIG report." The simulations run by the JIG instead show a bubble forming, striking the ship, deforming the hull, and making a small rupture, not tearing the ship in half.
According to the authors, "If the bottom of the ship was hit by a bubble, it should show a spherical concave deformation resembling the shape of a bubble, as the JIG's own simulation suggests, but it does not." Instead, the damage seems more consistent with a "collision with a hard object."
What is also missing is any sign of what is called the "pre-bubble shock wave," nor does internal damage and crew casualties appear to be consistent with those inflicted by a shock wave.
Lee and Suh also take issue with the chemical and X-ray analysis of the residue on the hull that the JIG found to be consistent with the chemical signature of an explosion caused by the recovered torpedo. According to the authors, the "critical evidence" used by the JIG "to link the Cheonan sinking to the alleged explosion of the torpedo is scientifically groundless and perhaps fabricated."
The two researchers also question the torpedo itself, and particularly a blue ink marking on the weapon spelling out "Hangul "in Korean. The torpedo's deeply corroded surface is consistent with an explosion that would burn off the weapon's protective paint. The only problem is that ink boils at a much lower point than paint, 150 degrees Celsius and 350 degrees Celsius respectively. "This inconsistency—the high heat tolerant paint was burnt but the low heat tolerant ink was not—cannot be explained and casts serious doubt on the integrity of the torpedo as 'critical evidence,'" write the two authors.
"While we emphatically note that our findings do not prove that North Korea did not do it, we conclude that the JIG has failed to prove that it did," the authors argue. "The seriousness of the inconsistencies in fact casts doubt not only on the validity of the JIG conclusions but also on the integrity of its investigation."
If North Korea didn't sink the ship, who did? Maybe it was not a "who but a "what." Some of the damage is consistent with a collision. Is there damage that might indicate an internal explosion? The DPRK certainly has a history of doing provocative things, but part of that reputation comes from the relentless demonization of Pyongyang. The North Koreans have always shown an affection for bombast, but they have been generally careful not to do something that would provoke a war.
It may turn out that the North Koreans did sink the Cheonan, but the evidence is hardly the slam-dunk it has been represented as in the media. And doubts about the DPRK's guilt may well explain China's reluctance to join in the pile-on condemnations of Pyongyang, as well as for the careful wording of the recent United Nations resolution that condemned the incident but avoided assigning blame.
What is clear is that in-house investigations are always open to suspicion. No matter what the Israeli's handpicked panel to investigate the attack on a Turkish ship comes up with, it will have no credibility outside of Israel.
Lee and Suh conclude that "given the inconsistencies" of the JIG investigation, the South Korean government should "re-open the investigation and form a new, and more objective" investigation. "The dead sailors deserve such a report. So does the international community."
Visit Conn's blog, Dispatches from the Edge.


8. echo "\nProperty Value: " . $p->value . "\n\n";
 9. }
 10. }
This will create a Zend_Gdata_Gapps_OwnerFeed object which holds each member for the selected group.
Check to see if an email is the owner of a group
To check to see if an email is the owner of a group, simply call the isOwner() convenience method:
 1. $isOwner = $gdata->isOwner('_EMAIL_', 'friends');
 2. var_dump($isOwner);
The method returns a boolean value. If the email is the owner of the group specified, the method returns true, else it returns false.
Removing an owner from a group
To remove an owner from a group, call the removeOwnerFromGroup() convenience method:
 1. $gdata->removeOwnerFromGroup('_EMAIL_', 'friends');
Interacting with email lists
Email lists allow several users to retrieve email addressed to a single email address. Users do not need to be a member of this domain in order to subscribe to an email list provided their complete email address (including domain) is used.
Each email list on a domain is represented as an instance of Zend_Gdata_Gapps_EmailListEntry.
Creating an email list
Email lists can be created by calling the createEmailList() convenience method:
 1. $gdata->createEmailList('friends');
Email lists can also be created by instantiating EmailListEntry, providing a name for the list, then calling insertEmailList() on a service object to upload the entry to the server.
 1. $list = $gdata->newEmailListEntry();
 2. $list->emailList = $gdata->newEmailList('friends');
 3. $list = $gdata->insertEmailList($list);
Retrieving all email lists to which a recipient is subscribed
To retrieve all email lists to which a particular recipient is subscribed, call the retrieveEmailLists() convenience method:
 1. $feed = $gdata->retrieveEmailLists('_EMAIL_');
 2.
 3. foreach ($feed as $list) {
 4. echo ' * ' . $list->emailList->name . "\n";
 5. }
This will create a Zend_Gdata_Gapps_EmailListFeed object which holds each email list associated with the specified recipient.
Alternatively, create a new Zend_Gdata_Gapps_EmailListQuery, set its recipient property to the desired email address, and submit the query by calling getEmailListFeed() on a service object.
 1. $query = $gdata->newEmailListQuery();
 2. $query->setRecipient('_EMAIL_');
 3. $feed = $gdata->getEmailListFeed($query);
 4.
 5. foreach ($feed as $list) {
 6. echo ' * ' . $list->emailList->name . "\n";
 7. }
Retrieving all email lists in a domain
To retrieve all email lists in a domain, call the convenience method retrieveAllEmailLists().
 1. $feed = $gdata->retrieveAllEmailLists();
 2.
 3. foreach ($feed as $list) {
 4. echo ' * ' . $list->emailList->name . "\n";
 5. }
This will create a Zend_Gdata_Gapps_EmailListFeed object which holds each email list on the domain.
Alternatively, call getEmailListFeed() on a service object with no arguments.
 1. $feed = $gdata->getEmailListFeed();
 2.
 3. foreach ($feed as $list) {
 4. echo ' * ' . $list->emailList->name . "\n";
 5. }
Deleting an email list
To delete an email list, call the deleteEmailList() convenience method:
 1. $gdata->deleteEmailList('friends');
Interacting with email list recipients
Each recipient subscribed to an email list is represented by an instance of Zend_Gdata_Gapps_EmailListRecipient. Through this class, individual recipients can be added and removed from email lists.
Adding a recipient to an email list
To add a recipient to an email list, simply call the addRecipientToEmailList() convenience method:
 1. $gdata->addRecipientToEmailList('_EMAIL_', 'friends');
Retrieving the list of subscribers to an email list
The convenience method retrieveAllRecipients() can be used to retrieve the list of subscribers to an email list:
 1. $feed = $gdata->retrieveAllRecipients('friends');
 2.
 3. foreach ($feed as $recipient) {
 4. echo ' * ' . $recipient->who->email . "\n";
 5. }
Alternatively, construct a new EmailListRecipientQuery, set its emailListName property to match the desired email list, and call getEmailListRecipientFeed() on a service object.
 1. $query = $gdata->newEmailListRecipientQuery();
 2. $query->setEmailListName('friends');
 3. $feed = $gdata->getEmailListRecipientFeed($query);
 4.
 5. foreach ($feed as $recipient) {
 6. echo ' * ' . $recipient->who->email . "\n";
 7. }
This will create a Zend_Gdata_Gapps_EmailListRecipientFeed object which holds each recipient for the selected email list.
Removing a recipient from an email list
To remove a recipient from an email list, call the removeRecipientFromEmailList() convenience method:
 1. $gdata->removeRecipientFromEmailList('_EMAIL_', 'friends');
Handling errors
In addition to the standard suite of exceptions thrown by Zend_Gdata, requests using the Provisioning API may also throw a Zend_Gdata_Gapps_ServiceException. These exceptions indicate that a API specific error occurred which prevents the request from completing.
Each ServiceException instance may hold one or more Error objects. Each of these objects contains an error code, reason, and (optionally) the input which triggered the exception. A complete list of known error codes is provided in Zend Framework's API documentation under Zend_Gdata_Gapps_Error. Additionally, the authoritative error list is available online at » Google Apps Provisioning API V2.0 Reference: Appendix D.
While the complete list of errors received is available within ServiceException as an array by calling getErrors(), often it is convenient to know if one specific error occurred. For these cases the presence of an error can be determined by calling hasError().
The following example demonstrates how to detect if a requested resource doesn't exist and handle the fault gracefully:
 1. function retrieveUser ($username) {
 2. $query = $gdata->newUserQuery($username);
 3. try {
 4. $user = $gdata->getUserEntry($query);
 5. } catch (Zend_Gdata_Gapps_ServiceException $e) {
 6. // Set the user to null if not found
 7. if ($e->hasError(Zend_Gdata_Gapps_Error::ENTITY_DOES_NOT_EXIST)) {
 8. $user = null;
 9. } else {
 10. throw $e;
 11. }
 12. }
 13. return $user;
 14. }
Using Google Spreadsheets


text:
UCRC Index of Sections
|SECTION 336B STRUCTURAL REGULATIONS|
366B.1. Gravity Loads.
The capacity of the structure to resist gravity loads shall be
evaluated and the structure strengthened as necessary. The evaluation
shall include all parts of the load path. Where no distress is
evident, and a complete load path is present, the structure may
be assumed adequate by having withstood the test of time if anticipated
dead and live loads will not exceed those historically present.
366B.2. Wind and Seismic Loads.
The ability of the structure to resist wind and seismic load
shall be evaluated. The evaluation shall be based on the requirements
of Section 8-706.


Skip to Content
Aims of the BRISK project
The BRISK project responses to an increased risk of accidents and environmental damages in the Baltic Sea. The overall aim of the project is to increase the preparedness of all Baltic Sea countries to respond to major spills of oil and hazardous substances from shipping and enhance sub-regional co-operation. The BRISK project will:
 - Offer the first overall risk assessment of pollution caused by shipping accidents covering the whole Baltic Sea area,
 - Identify gaps in existing emergency and response resources needed in all sub-regions of the Baltic to effectively tackle major spills of oil and hazardous substances,
 - Prepare concrete pre-investment plans on how the Baltic Sea countries can jointly fill in the gaps, and
 - Facilitate the development and conclusion of sub-regional agreements between neighboring countries for joint response operations.
The BRISK project will focus on "medium-size" spills, i.e. spills which require assistance from several neighboring countries. The project area covers all transnational maritime areas divided into six sub-regions. The sub-regional approach is cost-efficient as countries can share their resources to build a common pool of response vessels and equipment sufficient for a given sub-region.
Work packages
The project consists of five work packages (WP):
 1. Project management and administration (by Admiral Danish Fleet)
 2. Communication and Information (by the HELCOM Secretariat)
 3. Risk analysis
 4. Development of agreements to remove administrative obstacles for international response
 5. Investment plans
Back to top


DN v5.1 : Find by unique key
With JDO and JPA APIs you have the ability to find individual objects using their "identity". This "identity" may be a field value for a single field that defines the primary key, or may be an identity object representing a composite primary key made up of multiple fields.
Some classes have other field(s) that are known to be unique for the particular class (termed in some places as "natural id", or "unique key"), and so it makes sense to allow the user to find objects using these unique key(s). In the latest release (5.1.0 M2) we provide access to this mechanism. Be aware that this is a vendor extension and so you have to make use of DataNucleus classes (and hence not portable until included in the JDO / JPA specs).
Lets take an example, we have a class representing a driving license. We represent this with an identity that is a unique number. We also have a unique key that is what the driver is provided with.
With JDO the class is
@PersistenceCapable
public class DrivingLicense
{
 @PrimaryKey
 long id;
 String driverName;
 @Unique
 String number;
}
Consequently we can do as follows to get an object using its identity.
DrivingLicense license = pm.getObjectById(DrivingLicense.class, 1);
retrieving the license with id 1. If however we want to use the new retrieval via unique key we do this
JDOPersistenceManager jdopm = (JDOPersistenceManager)pm;
DrivingLicense license = jdopm.getObjectByUnique(DrivingLicense.class,
 {"number"}, {"ABCD-1234"});
retrieving the license with number set to "ABCD-1234". See the JDO docs.

Using JPA for the same example we have
@Entity
public class DrivingLicense
{
 @Id
 long id;
 String driverName;
 @Column(unique=true)
 String number;
}
To get an object using its identity we do
DrivingLicense license = em.find(DrivingLicense.class, 1);
and to get an object using its unique key we do
JPAEntityManager jpaem = (JPAEntityManager)em;
DrivingLicense license = jpaem.findByUnique(DrivingLicense.class,
 {"number"}, {"ABCD-1234"});
See the JPA docs.
Notes:
 1. You can have as many unique keys as you want on a class, and this mechanism will support it, unlike with Hibernate "NaturalId" where you can only have 1 per entity.
 2. You use standard JDO/JPA annotations/XML to define the unique key(s), unlike with Hibernate "NaturalId" where you have to use a vendor specific annotation.
 3. If your unique key is made up on multiple fields then you simply specify multiple field name(s) to the second argument in the call, and multiple field value(s) to the third argument in the call.
Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.
Leave a Reply
Fill in your details below or click an icon to log in:
WordPress.com Logo
You are commenting using your WordPress.com account. Log Out / Change )
Google+ photo
You are commenting using your Google+ account. Log Out / Change )
Twitter picture
You are commenting using your Twitter account. Log Out / Change )
Facebook photo
You are commenting using your Facebook account. Log Out / Change )
Connecting to %s


4
I have an odd case where creating a GIST index slows down my query instead of speeding it up.
The setup consists of two tables, one with multi-polygons, another with points. I want to calculate which polygons contain which points. My query is:
create table as test
select polygons.name, points.name
from polygons, points where st_contains(polygons.geom, points.location);
To clarify, geom is of type st_multipolygon, location is of type st_point. I make sure to perform a vacuum analyze on tables after creating or deleting indexes. With timing on I get:
no indexes: 14784 ms, index on geom: 79849 ms, index on geom, location: 3826 ms
How could this be? If I understand correctly, GIST uses bounding boxes to speedup the st_contains function. Hence, it only makes sense to create bounding boxes for polygon geometries, right? My statement for making a GIST index is
create index poly_index on polygons using gist(geom)
and for points
create index point_index on points using gist(location)
checking queries with the explain keyword tells me the index is used properly. As I'm new to Postgis, with the information available, I'm really confused whether this is normal behaviour or whether it's an error on my side. Lastly, my PostgreSQL version is 9.5.2, PostGIS version 2.2.2 (GEOS: 3.4.2, PROJ: 4.9.1, GDAL: 1.11.2)
Explain results (polygons = top500, points = data_items):
No indexes (14784 ms)
Nested Loop (cost=0.00..685544.56 rows=23820 width=25)
 Join Filter: ((top500.geom && data_items.location) AND _st_intersects(top500.geom, data_items.location))
 -> Seq Scan on top500 (cost=0.00..231.59 rows=859 width=52033)
 -> Materialize (cost=0.00..139.15 rows=3010 width=49)
 -> Seq Scan on data_items (cost=0.00..124.10 rows=3010 width=49)
Index only on polygons (79849 ms)
Nested Loop (cost=0.14..2308.30 rows=23820 width=25)
 -> Seq Scan on data_items (cost=0.00..124.10 rows=3010 width=49)
 -> Index Scan using poly_index on top500 (cost=0.14..0.72 rows=1 width=52033)
 Index Cond: (geom && data_items.location)
 Filter: _st_intersects(geom, data_items.location)
Index only on points (3822 ms)
Nested Loop (cost=0.15..1084.66 rows=23820 width=25)
 -> Seq Scan on top500 (cost=0.00..231.59 rows=859 width=52033)
 -> Index Scan using item_index on data_items (cost=0.15..0.98 rows=1 width=49)
 Index Cond: (top500.geom && location)
 Filter: _st_intersects(top500.geom, location)
Index on everything (3826 ms)
Nested Loop (cost=0.15..1084.66 rows=23820 width=25)
 -> Seq Scan on top500 (cost=0.00..231.59 rows=859 width=52033)
 -> Index Scan using item_index on data_items (cost=0.15..0.98 rows=1 width=49)
 Index Cond: (top500.geom && location)
 Filter: _st_intersects(top500.geom, location)
14
 - 1
 You are right that bounding box of a point is actually a point. But the point is that if you do not create point_index you do not have an index at all. It is interesting why creating index only for the polygons makes the query slower. However, the right way is to create indexes for both points and polygons and it gives clearly fastest result, so who cares?
 – user30184
 May 9, 2016 at 10:24
 - If the polygons are large enough, relative to the data envelope, they won't provide any useful selectivity (and therefore could slow access)
 – Vince
 May 9, 2016 at 11:09
 - In this case I believe that the polygon index is selective because the "both indexes" option is five times faster than "no indexes".
 – user30184
 May 9, 2016 at 11:13
 - Who cares ? me for example :). Would be nice to understand perfectly those results... and sadly I don't...
 – WKT
 May 9, 2016 at 11:21
 - Row counts aren't provided, and one case is missing (index only on location). The gain may be from inverting to a within test using the location index.
 – Vince
 May 9, 2016 at 11:23
1 Answer 1
3
The answer is right in your explain results. When you put the index on the polygons, the planner thinks: "aha, I can do a nested loop on the points and quickly get each polygon that is of interest for the points".
This ends up being wrong, probably because you (a) have more points than polygons and (b) evaluating the index condition is only the cheapest part of the join. The expensive part is doing the point-in-poly test, which is optimized in PostGIS for cases where the nested loop is driven from the polygon table.
Hence, when you reverse things, and have an index on the points, but not on the polygons, things get nice and fast, as the nested loop is driven off the polygon table, with fast indexed searches into the points table, along with optimized cached point-in-poly calculations for the exact containment.
Your Answer
By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.
Not the answer you're looking for? Browse other questions tagged or ask your own question.


text:
Hawaii's Migratory Animals
Students act as travel agents to plan a trip for a migratory animal. They conduct research and design a travel brochure that includes a migratory route, illustrations of planned stopovers and special tourist attractions the animal might enjoy.
3 Views 3 Downloads
Migration Activities for Kids
For as long as there has been life on earth, animals, including humans, have used migration as a means of survival. This collection of activities supports young scientists as they learn about this behavioral adaptation, encouraging them...
K - 3rd Science CCSS: Adaptable


text:
The population figures in Trenton reflect the historical development patterns in the Town along with current national trends. One of the earliest recorded population counts in Trenton was 625 persons in 1800. This number steadily grew and peaked at 3,540 in 1850. Most of this increase was due to the influx of people looking to establish farmsteads or related agricultural industries.
By 1900, the population had dropped to 2,628 people. Local industries declined as the railroad made access to distant locations easier for manufactured goods. Larger companies were able to produce goods at a lower cost than Trenton businesses. As a result, they took away the market share in the region and the smaller industries folded. And while tourism did have an impact on the population during the 19th Century, much of this activity had disappeared by the turn of the century.
The decline in population continued through 1930 when the Town had 2,262 residents. It was not until 1950 that Trenton began to experience any growth, when the census counted 2,522. Much of this increase was due to an improved highway system through the construction of New York State Route 12. People could more readily access areas of Trenton than in the past and as a result chose to move here. The post-World War II baby boom also contributed to population increases as the figure rose to 3,417 in 1960.
By 1970 this figure had risen to 4,429. Much of this increase can be attributed to the national trend of suburbanization. People were tired of the congestion in the central cities and moved outward toward more rural areas. This trend was facilitated by the extension of highway and road systems, thereby making access quicker and safer.
The population of Trenton rose to 4,683 in 1980 and 4,682 in 1990. This indicates the continued movement of people away from the Utica-Rome urbanized area. The 1990 population figure would be higher were it not for a decrease in average household size from 2.89 in 1980 to 2.54 in 1990. While there is continued demand for new housing as people move to Trenton, families are having fewer children than in the past. So even though additional new housing units are being built every year, the total population count has remained the same.


text:
The timing and synchrony of male and female flowering in wheat is a crucial determinant of seed set and may be an important factor affecting gene flow and resilience to climate change. Lukac et al. assess the anther and stigma activity of each floret on developing ears of wheat, Triticum aestivum, and find that synchrony between pollen dehiscence and stigma collapse within a flower is dependent on its relative position in a spike and within a floret. Modelling the observations indicates that the temporal and spatial variability of anther activity within and between spikes may influence the relative resilience of wheat to sudden, extreme climatic events.
Comments are closed.


Tyres FAQ: Why are tyres black?
By Marc Abbott -
Tyres
 05 August 2009 15:06
There isn't any natural rubber in a tyre's construction. But there are about 200 raw materials from man-made rubbers, reinforcing fillers, rayon, nylon, all sorts of additives and aramid fibres.
Aramids are heat-resistant synthetic fibres with tradenames like Kevlar and Nomex.
This mix is susceptible to damage from ozone and ultra-violet light so manufacturers add carbon black to absorb the UV radiation and convert it to heat which is dissipated harmlessly.
Carbon black is also very hard-wearing.