text:
1922 Encyclopædia Britannica/Optophone
|←Ontario||1922 Encyclopædia Britannica
|Orange Free State→|
|See also Optophone on Wikipedia, and the disclaimer.|
OPTOPHONE. The optophone is an instrument for enabling totally blind people to read ordinary letterpress, such as a printed book or newspaper, without the necessity of printing it in raised type to be read by touch. The instrument was invented in 1914 by Dr. E. E. Fournier d'Albe, then a lecturer in physics in the university of Birmingham. It is based upon the properties of selenium, an element which is a better electrical conductor in light than in darkness. A beam of light is rendered intermittent by the interposition of a revolving siren disc and is then concentrated into a small bright point on the paper to be read. If the point on the paper is white, it will reflect the light; if it is black it will not. A selenium cell placed close to the paper, on receiving the reflected beam of intermittent light, will respond to each flash by a change in conductivity, and if the frequency of the flashes is of the "musical" order (between 30 and 30,000 flashes per second), a telephone receiver connected with the selenium and a battery will sound a musical note. A blind person could thus tell whether the paper is black or white.
That is the principle of the optophone. In practice a small row of luminous points is substituted for a single point, and each point in the row is given a different frequency by suitably perforating the siren disc. The row, usually of five or six points, just fills up the size of the tall letters of the print to be read. When the whole row falls upon the black stem of a letter there is silence in the telephone. As the letters pass their various shapes are indicated by the sounding or silence of the different notes, and after some practice the blind person learns to recognize letters from their sounds, and so to read ordinary type.
The first reading test was given by the inventor in March 1917, the matter read being a leading article in The Times. In Aug. 1918, Miss Mary Jameson, a blind pupil from Norwood, gave the first public reading demonstrations, reading an unknown page from a book at a speed of about two words per minute. Later, with an improved instrument, she attained a speed of about 20 words per minute. A new type of optophone was brought out in 1920 by Barr & Stroud, of Glasgow. In this instrument two selenium cells were used, balanced against each other in such a manner that white paper produced silence, and the black letters themselves made the musical sounds. Reading demonstrations were also given with this instrument, but any advantage in the way of ease of reading was found to be counter-balanced by a greater delicacy and complexity of adjustment. The new type is known as the "black-sounder," and the original type is termed the "white-sounder." The latter type was approved by the Inventions and Research Committee of the National Institute for the Blind in 1921 after an exhaustive series of tests. The optophone is intended to place the world's printed literature once more within reach of the blind. It is applicable, without special preparation, to any language, and can also be used for reading typescript, but not handwriting.
See "A Type-reading Optophone," Roy. Soc. Proceedings (1914); "The Optophone," Journal of Roy. Soc. of Arts (1921); "The Optophone," St. Dunstan's Review, No. 55 (1921).
- (E. E. F. D'A.)


text:
INFORMS Journal on Computing vol:25 issue:3 pages:411-419
A variety of neighbourhood operators have been used in local search and metaheuristic approaches to solving nurse rostering problems. We test and analyse the efficiency of these neighbourhoods on benchmark problems taken from real world scenarios. A variable depth search is then developed based on the results of this investigation. The algorithm heuristically chains together moves and swaps which define the more effective search neighbourhoods. A number of heuristics for creating these chains were developed and we present experiments conducted to identify the best ones. As end users vary in how long they are willing to wait for solutions, a particular goal of this research was to create an algorithm that accepts a user specified computational time limit and uses it effectively. When compared against previously published approaches the results show that the algorithm is very competitive.

source: m-a-p/FineFineWeb


H2020. Lithuania.
Capital of LithuaniaVilnius city, today is facing quite a few sustainable mobility problems that could be solved through EU projects and with the help of consortium's.
We are very interested in taking part in related projects and making most of it and doing something good for Vilnius city.
1. Traffic light priority for Public Transport at crossings;
2. Testing and application of different types of innovative bicycle paths pavements (for example non-freezing, light-reflecting, etc.);
3. Public education in regards to urban mobility, raising awareness of the issues related to the usage of private cars in the city, the importance of sustainable transport modes. Working with different kind of groups, for example schools, kindergartens etc.;
4. Smart and integrated e-ticketing system;
5. Multimodal travel, sharing economy (in relation to urban mobility);
6. Travel optimization and prediction;
7. Adapting current trolley-bus transformer stations for e-mobility;
8. ICT for people with disabilities;
9. Trip Planning - free / busy parking spaces display in real-time, statistics, the probability of finding a free parking space.
Project proposer: Gintare Krusinskaite (Lithuania)
Partner role: Project participant
Partner organisation: Public administration
Call for proposal title: N/A
Partnet sought:
Public administration
Gintare Krusinskaite
Publicado por europa en mayo 12, 2017


text:
Recommended Year Group: Year 10 / 11 / 12 / 13
Recommended Group Size: Year group
Duration: 30 Mins - 1 Hour
- To introduce the students to vocational progression routes.
- To demonstrate the kind of careers that vocational training can lead to.
Students will :
- Gain a better understanding of what is meant by vocational training and the options it offers.
- Be better informed about the short and long term benefits of a vocational route.
- Understand how apprenticeships are structured.
- The detail relating to pay and minimum wage will need to be kept updated.
- The contact details for local FE colleges will need to be kept updated and any specific information on their application procedures can be added as required.

source: openbmb/Ultra-FineWeb


text:
Gran's Plotting for End Point Detection
©David L. Zellmer, Ph.D.
Gran's plotting is a method of end point detection that uses a linear decrease in the millimoles of chloride in the region well before the end point of the titration curve (Frontside Gran's). If the correct region is found, extrapolation to zero millimoles of chloride will intersect the volume axis at the end point. In the region following the end point, a similar linear plot of silver increase can also be extrapolated to the end point (Backside Gran's). The linearizing functions are based on the Nernst equation E=E1+S logC, where C is the molar concentration of the ion measured. S is the slope of the electrode used, typically +or- 59.2 mV for a univalent ion at 25o C. Solving for C and multiplying by the volume to get millimoles the functions become:
Vo is the initial volume of the solution in the titrated beaker. Vml is the volume added from the buret. E is the potential in millivolts. E1 is the first potential used in the Frontside Gran's Plot. A second value of E1 is used for the Backside plot. In the Backside case we choose the last value plotted. (I know this is confusing. Check out the Example below.) The Scale Factor in the Backside Gran's function is chosen to provide values that graph on the same chart as the Frontside values. The sign for the electrode slope S is reversed in the Backside equation. these differences between Front and Back arise from the fact that we first plot the decrease of the millimoles of Clon the Frontside, then we plot the increase in the millimoles of Ag+ on the backside. The concentrations of silver ion and chloride ion are inversely related through the Ksp expression.
This will all make a lot more sense when you actually try this on a spreadsheet.
To work up the data we have to:
A portion of the E vs. Volume data is shown on this part of the spreadsheet. The Gran's regions are chosen from the parts of the curve that lie on either side of the end point. Don't approach too closely to the end point or the Gran's function will go non-linear. You can check this by plotting the Gran's function vs. volume and checking it for linearity. A common error that students make is to compute the Gran's function for the entire curve, and then wonder why they can't fit a straight line through it.
The formula for the first cell in the Gran's function is shown in the graphic above.
When I first used this function I found that my values went UP as I approached the end point, rather than going down as they should. I fixed this by using a negative value for S, the slope of the electrode response. E1 Frontside is chosen as the first potential used in the Gran's function.
The E1 value for this Backside plot is chosen from cell B39, the last E used in the function. When both functions were plotted on the same graph, the Backside plot was somewhat higher on the graph, so the Scale Factor was adjusted until both plots were about the same size on the graph. (Remember, first plot the Frontside Gran's vs. Volume, then use Paste Special... to paste the Backside series on top of the existing Frontside series.)
The data look linear, so we will proceed with the Linear Least Squares analysis. See the LLS tutorials elsewhere for details on how to do this. In this example:
The values for the Backside column are analogous.
The potentials plotted in this example contain small amounts of potential measurement error common to real analyses. The volume intercepts are near the ideal value of 30.00 mL, but not exactly equal to it. The Frontside value is 30.08 mL and the Backside value is 30.11 mL. Dividing the standard deviation about regression (STEYX()) by the slope gives us an estimate of the volume standard deviation, about +or- 0.28 mL for these plots. The data you use from the lab may contain a lot more error than this, giving rise to some pretty strange looking plots. It is common that the Gran's method fails on one side or the other of the end point.
By the way, a common student error is to place the end point where the Frontside and Backside plots cross each other. This is not correct. Each graph is a separate estimate of the end point, and uses the point where the plot crosses the volume axis.
The lines in the plot shown were created using the Trendline... command in Excel 5.0. Options allow you to select the kind of line used, and how far past the data the line extends so the volume axis can be crossed.
David L. Zellmer, Ph.D.This page was last updated on 3 March 1997
Department of Chemistry
California State University, Fresno


text:
The Zetas said there will hardly be mountain building in the Alps, however they talk about a "rough ride" in the Alps during the shift. What is the minimum distance which I must keep from the rim of the Alps to avoid mountain building during the shift?
When an area of older mountains is no longer subject to mountain building, it experiences the same trauma during crustal movement and plate interaction that crust not in mountainous areas experiences. In other words, if the area is in a stretch zone then crevasses or sinkholes or dropping ground can occur. If an area is on a slip-slide fault line then crumbling ground can occur, or such a succession of jolts that structures are shaken to pieces. Quakes can be either horizontal or vertical and come in waves such that structures slam against each other. Where subduction is ongoing, mountain building occurs, and this involves sudden adjustments of the overriding rock strata, snapping rock layers jutting up at an angle to form a new mountain, or existing mountains tumbling down into valleys as they compress closer together. During the pole shift, all areas receive jolts, as all plates are in motion and slam into each other at the cession of motion. Thus, there will be no place on Earth where the ground will not move in waves, or experience horizontal or vertical thrusts. This is why we have stated that being entirely outside of buildings during the hour of the pole shift, and in a low trench, is the safest place. For areas such as Germany where the foothills of the Alps descend into lowland, the only safety difference is that the lowlands will also experience tidal sloshing. The foothills are safer, and there is no line of safety to be drawn where less trauma from the earthquakes will be experienced.
Ice has been melting around the globe at a very fast rate. But when the pole shift happens there will still be a vast amount of icebergs in the oceans and at the poles. These bergs are huge, the size of entire states. There is no doubt that they will plow deep into the land, scaring it for many miles as the waters of the oceans spill over the inhabited cities. Picture a glass of water with ice cubes tipping over. The cubes really fly across the room! So I am wondering will the Zetas step in and stop the icebergs from ripping across the land? Or will the huge bergs actually stay in the oceans away from land?
Icebergs will of course be in the water, and due to the earthquakes chunks of ice may loosen thus producing more icebergs near the poles or near the point where glaciers empty into the sea. And as icebergs are lighter than the seawater, and float atop the water, they might arrive inland during a large tidal slosh. They would likewise arrive as rapidly as the water is moving, as long as they did not catch at the bottom, and snag. Thus, they would either float back out to sea, being lighter than the tide that brought them in, or snag and provide nearby suvivors with clean drinking water for some time.
Any comment on the rumor regarding the resignation of chief justice roberts? As he is a Bush one team member is he now getting pressure to leave the bench? [and from another] Chief Justice Roberts Not Stepping Down Despite Report [Mar 4] _URL_ Chief Justice John Roberts is not stepping down from the Supreme Court, despite a celebrity gossip report, a source very close to Roberts told Fox News. RadarOnline.com reported Thursday that Roberts, 55, would be resigning for personal reasons. But the source said the report is "completely untrue." There is "no medical issue, no issue at all," the source said, adding that there is not even a 1 percent chance that Roberts is considering resignation. RadarOnline.com later published an update saying that Roberts will be staying on the bench.
Where there is smoke, there is fire. High profile targets have been getting very nervous about the coming Earth changes, wanting to be out of range. As chief on the Supreme Court, he stands out, and his location known as he sits on the court. There has been discussion on what the reason might be, for his resignation, and health reasons are the most compelling. What else would he say, that he wants to spend more time with his family? Since doctor/patient records are highly confidential, this is also a safe excuse.
The Zetas have stated many times that financial and economic systems will continue to erode and slowly collapse until the shift. If we take this prediction as a factual given per the Zetas why is there no appetite or critical mass for countries to print their own debt free money to spend for needed things - infrastructure, health care,education, industry, even PX preparations? I take it as factual that storms, earthquakes and the like will indeed damage economies worldwide. But there is still significant unused capacity in every economy now in the form of unemployed or under employed workers that could be used to repair damage, prepare for PX under the guise of "new deal" type work projects, regenerate industry, focus on solar or wind that will help after the shift, etc. All that is lacking is "money" to facilitate their ability to usefully apply themselves in many ways. Governments should be able to print their own money (as has been successfully done in the past) instead of borrowing it from banks. Money is just a construct to facilitate modern societies and the right to issue it should belong to citizens via their governments, not private bankers that charge us for using what they create for free. If the shift will be upon us in 6 months this is indeed a moot point but if it will not be upon us until 6 years it becomes very relevant to properly utilize and employ the citizens of the world. Given that the Zetas continue to state 6 months, 6 years or anything in between or even outside of this range is possible from a time line perspective it seems to me that much could be gained by governments empowering their citizens and issuing their own debt free currencies to facilitate full employment and economic productivity? Are we collectively just too deeply ensnared in the bankers 300 year old trap to break free? All it really takes is collective awareness. This would seem to be a very STO type step to me.
Of course, if the populace were to be informed of what is coming, this would be a very logical step! Everyone prepare! Everyone assigned to large community farms with earthquake resistant housing! All the former accountants and lawyers into the greenhouse to raise young plants for the spring planting! All the former beauty queens to the treddle sewing machines, to learn how to mend clothes! Any laggards or those in prisons to be assigned to chain gangs digging trenches! Does this sound like something the majority of the populace would go along with? Not those who find themselves today at what they consider a better standard of living, and this would be the vast majority of the populace in industrialized countries. But this is beside the point, as first the populace must be informed about what is coming, and the cover-up, as we have explained, is alive and well. The establishment is run by powerful men and women, wealthy or politically powerful, or those controlling organized religion, and they do not want their perch disrupted by a rowdy populace making demands. Thus, a semblance of normalcy is maintained, less the populace suspect!
Due to the tearing of the Atlantic will a tsunami hit Western Europe and the UK/Ireland prior to the pole shift or will it occur during the hour of the poleshift itself?
Both. As the holographic demonstration that Nancy attended last November, and reported upon, states: when the Atlantic tears significantly, water will rush into the void, and then backwash. Due to the motion of the Gulf Stream, this splash will turn toward Europe, as we have explained, to a possible tidal wave up to 200-300 feet high.
I noticed the next tendency. Great territories of Nothern America, Europe and Russia lie in the northern hemisphere. Here the battle for souls was won by STO aliens, here we see developed democratic countries and generally not so high density of population. So it seems there are more of STO people here and less of those with STS and unsparked souls. And these regions will less suffer from the PS. On the other hand, great territories of Central America, Brazil, South Asia and Indonesia lie in the Southern hemisphere. Here the battle of souls was not so brilliantly won by STO aliens, here we see poorer and not so democratic countries with many social problems and generally high density of population. So it seems there are not so many of STO people here and rather many of those with STS and unsparked souls. And these regions will more suffer from the PS. So was it planned that before the PS nations and countries would be set in a way those with STS and unsparked souls would be "struck a blow" more during the earth changes?
Before you proceed too far with your theory, consider that Russia will be almost entirely under water, except for the thin spine of the Urals. Where are those people to flee to? They must cross all of Russia and northern Europe including Finland, which will likewise be under water, to seek refuge in Sweden. Or perhaps go equally far east or south, and all within a 2 years period after the pole shift when roads and rail lines will be torn apart, and air travel not possible because of dashed planes and lack of fuel. North America will rip apart, along the New Madrid fault line, with the highly populated East Coast pulled under the waves at

source: HuggingFaceFW/fineweb-edu


Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary.

Syntax

[C#]
virtual Dictionary<string, string> ToStringDictionary(Atom atom)
[Visual Basic]
Overridable Function ToStringDictionary(atom As Atom) As Dictionary<string, string>

Params

Name Description
atom The DictAtom from which to obtain the values.
return The dictionary.

Notes

Attempts to convert a DictAtom into a Dictionary of strings, resolving any references as necessary.
If the atom does not resolve to an DictAtom, then the return value will be null.
Any entries which could not be coverted to the correct type will be null.

Example

None.


Homelessness declining in nation's cities, but hunger is on the rise
Homelessness declining in nation's cities
Posted at 11:37 AM, Dec 14, 2016
and last updated 2016-12-14 15:07:59-05
NEW YORK (CNNMoney) -- Even though homelessness in America's cities continues to decline, food banks and pantries are still being stretched thin as the number of people seeking emergency food assistance climbs, according to a survey of mayors from 38 of the nation's cities.
The majority, or 63%, of those seeking assistance were families, down from 67% a year ago, the survey found. However, the proportion of people who were employed and in need of food assistance rose sharply -- increasing to 51% from 42%.
The primary cause of hunger, the mayors said: low wages.
"We're looking at the wealth gap. Jobs in our cities are coming back, but they are not paying what they we're paying before the meltdown," said Mick Cornett, mayor of Oklahoma City.
High housing costs and poverty were also major reasons cited by the mayors.
"We're talking about the working poor and we may be looking at people who are sheltered but spending more of their income on housing and seeking food assistance," said Helene Schneider, mayor of Santa Barbara.
The growing number of hungry has put a strain on city food banks and pantries.
Nearly half of cities said they had to reduce the quantity of food an individual or a family could receive per pantry visit or the food received per meal. Due to a lack of resources, 47% of the cities said emergency food facilities had to turn people away altogether, a slight improvement from the 57% who said they had to do so a year prior.
Washington, D.C., estimated that the city was unable to meet nearly 24% of the overall demand for food assistance in 2016. Meanwhile, Des Moines said it could not meet 22% of the demand at its food pantries and kitchens.
One glimmer of hope: The homelessness rate continued to decline.
Approximately two-thirds of the cities surveyed by the Council of Mayors reported decreases in the rate of homelessness from 2009 to 2016. The largest reported decrease was in New York City, with 1,800 fewer homeless people, the report said.
About 5% of homeless people were veterans, the U.S. Conference of Mayors reported. With Durham, North Carolina, and Indianapolis reporting the highest proportion of homeless veterans.
The Council of Mayors stressed that the report on their cities doesn't necessarily reflect national trends, however. Nationally, 7.2% of homeless people are identified as veterans, they said.
A shift in policy away from transitional housing toward more permanent housing since 2009 has helped reduce the numbers of homeless people living in U.S. cities. However, there is more to be done. The mayors reported that even if every one of their cities' shelter beds were filled, more than 34,000 people would still lack shelter.
City officials overwhelmingly said housing assistance and affordable housing were what is needed most to reduce homelessness. They also want better employment and training, and better coordination with mental health and substance abuse services.
With about a month before the inauguration of President-elect Donald Trump, the mayors stressed the need for continued collaboration between federal, state and local governments.
"We look forward to meeting with the president-elect and his cabinet at our upcoming [Conference of Mayors] meeting on January 17th in D.C.," said Mitch Landrieu, mayor of New Orleans. "These are bipartisan issues and we will do everything we can to support these people with a strong federal partnership."


Ultimate Guide on How to Use an Oil Filter Strap Wrench with Tips and Tricks
If you're a car owner or mechanic, you know how important it is to regularly change the oil and oil filter in your vehicle. The oil filter helps to remove contaminants and debris from the engine oil, ensuring that it stays clean and performs optimally. However, removing an old oil filter can sometimes be a challenging task, especially if it's tightly stuck. That's where an oil filter strap wrench comes in handy. In this ultimate guide, we will walk you through the steps of using an oil filter strap wrench and share some tips and tricks to make the process easier.
Step 1: Choose the Right Size of Oil Filter Strap Wrench
Before using an oil filter strap wrench, it's important to choose the right size for your specific oil filter. Strap wrenches come in different sizes, so make sure to select one that fits snugly around the filter. Using the wrong size can result in slipping and damage to the filter or wrench.
Step 2: Position the Strap Wrench
Once you have the right size of oil filter strap wrench, position it on the oil filter. The strap should wrap around the entire circumference of the filter, ensuring a secure grip. Make sure the strap is tight but not overly tight as it may damage the filter.
Step 3: Apply Pressure and Turn
With the strap wrench securely positioned, apply pressure in the direction opposite to the tightening of the filter. This will help loosen the filter and make it easier to remove. Use your other hand to hold the wrench steady and turn it counterclockwise. The strap will grip the filter tightly, allowing you to loosen it with minimal effort.
Tips and Tricks:
– If the oil filter is excessively tight, you can use an extension pipe for extra leverage. Insert the pipe on the handle of the strap wrench and apply pressure to break the seal.
– Make sure to drain the oil from the engine before starting the filter removal process to avoid any spillage.
– Inspect the new oil filter before installation to ensure it's the correct size and has the proper seals.
– Additionally, it's recommended to hand-tighten the new oil filter as overtightening can cause damage to the filter or engine.
Using an oil filter strap wrench can save you time and frustration when it comes to changing your vehicle's oil filter. Follow the steps outlined in this guide and incorporate the tips and tricks to make the process even smoother. By doing so, you'll ensure that your engine stays well-maintained and runs smoothly for years to come.
What is an Oil Filter Strap Wrench and How Does it Work?
An oil filter strap wrench is a handy tool specifically designed to remove oil filters from vehicles. It consists of a flexible strap made of strong material, such as nylon or rubber, attached to a handle. The strap can be easily adjusted to fit around the oil filter, allowing the user to apply force and twist the filter for removal.
How does an oil filter strap wrench work?
To use an oil filter strap wrench, follow these simple steps:
 1. Adjust the strap: Start by adjusting the strap to fit tightly around the oil filter. The strap should be snug but not overly tight.
 2. Secure the strap: Once the strap is adjusted, secure it in place by pressing the handle of the wrench. This will tighten the strap around the filter.
 3. Apply force: Grip the handle firmly and use it to apply force in a counterclockwise direction. This will loosen the oil filter, allowing it to be easily removed.
 4. Remove the oil filter: Once the filter is loosened, continue twisting it with the wrench until it can be completely removed by hand.
Using an oil filter strap wrench offers several advantages:
 - Versatility: The strap on the wrench can be adjusted to fit various sizes of oil filters, making it suitable for use on different vehicles.
 - Durability: Oil filter strap wrenches are made of strong materials that can withstand the force needed to remove stubborn oil filters.
 - Easy to use: The strap wrench's design allows for easy gripping and application of force, making the task of removing an oil filter straightforward.
Overall, an oil filter strap wrench is a useful tool for any vehicle owner or mechanic. It simplifies the process of removing oil filters, saving time and effort.
Benefits of Using an Oil Filter Strap Wrench
An oil filter strap wrench is a versatile tool that offers several benefits when it comes to changing oil filters. Here are some advantages of using an oil filter strap wrench:
 1. Universal Fit: One of the biggest advantages of using an oil filter strap wrench is its universal fit. Unlike other types of wrenches that are designed for specific filter sizes, the strap wrench can fit a variety of filter sizes, ranging from small to large. This makes it a convenient tool to have in your toolbox as you don't need to worry about buying multiple wrenches for different filter sizes.
 2. Easy to Use: The strap wrench is designed for easy usability. It typically features a flexible strap made of durable material that wraps around the filter. The adjustable strap can then be tightened securely, providing a strong grip on the filter. This makes it easy to loosen or tighten the filter without exerting excessive force or causing damage.
 3. Prevents Filter Damage: Using an oil filter strap wrench helps prevent damage to the filter during removal or installation. The strap distributes the pressure evenly around the filter, reducing the risk of crushing, denting, or deforming the filter housing. This is especially important when dealing with delicate or sensitive filters that can be easily damaged by other types of wrenches.
 4. Improved Efficiency: The superior grip provided by an oil filter strap wrench makes the oil filter changing process more efficient. The strong grip allows for better control and grip on the filter, reducing the chances of slippage or accidental damage. This can help save time and effort during the oil change procedure.
 5. Versatility: The strap wrench can be used for more than just oil filter removal. It can also be used for other tasks such as opening jars, loosening or tightening various fittings, or gripping and turning objects with a rounded surface. This versatility makes it a useful tool to have in your toolbox for various DIY projects.
See also Best breaker bar wrench
In conclusion, an oil filter strap wrench offers a universal fit, easy usability, prevents filter damage, improves efficiency, and provides versatility. Investing in an oil filter strap wrench can make the oil filter changing process easier, faster, and more convenient.
Types of Oil Filter Strap Wrenches
When it comes to changing oil filters, having the right tools is essential. One tool that is commonly used is the oil filter strap wrench. A strap wrench is a versatile tool that can be used to remove and install oil filters in a variety of different applications. There are several types of oil filter strap wrenches available, each with its own unique features and benefits.
1. Adjustable Strap Wrench
1. Adjustable Strap Wrench
The adjustable strap wrench is one of the most common types of oil filter strap wrenches. It features a strap that can be adjusted to fit different sizes of oil filters. This makes it a versatile tool that can be used on a wide range of vehicles. The strap is typically made of a strong and durable material, such as nylon or rubber, which helps to ensure a secure grip on the filter.
2. Chain Strap Wrench
A chain strap wrench is another type of oil filter strap wrench that is commonly used. This type of wrench features a chain that wraps around the filter and is secured in place by a handle. The chain can be easily adjusted to fit different sizes of oil filters. The advantage of the chain strap wrench is that it provides a secure grip on the filter, making it easier to remove and install.
3. Loop Strap Wrench
A loop strap wrench is a smaller and more compact version of the adjustable strap wrench. It features a looped strap that can be adjusted to fit different sizes of oil filters. The loop is typically made of a strong and flexible material, such as rubber or silicone. The advantage of the loop strap wrench is that it is compact and easy to carry, making it a convenient tool to have on hand.
4. Filter Pliers
In addition to strap wrenches, there are also oil filter pliers available. These pliers feature a special design that allows them to grip and turn the oil filter. The advantage of filter pliers is that they provide a strong and secure grip on the filter, making it easier to remove and install.
5. Strap Wrench Set
For those who frequently work with oil filters of different sizes, a strap wrench set may be a good investment. These sets typically include multiple strap wrenches of different sizes, allowing you to easily tackle any oil filter job. This can be particularly handy for mechanics or home DIY enthusiasts who often work on different types of vehicles.
Overall, the type of oil filter strap wrench you choose will depend on your specific needs and preferences. However, no matter which type you choose, a good quality strap wrench will make changing oil filters a much easier and more efficient task.
Choosing the Right Size of Oil Filter Strap Wrench
When it comes to using an oil filter strap wrench, selecting the right size is crucial for a successful and efficient operation. The size of the wrench will determine its compatibility with different oil filter types and sizes. Here are some tips to help you choose the right size of oil filter strap wrench:
1. Measure the Oil Filter Diameter
Before purchasing an oil filter


On the feasibility of using physics-informed machine learning for underground reservoir pressure management
Dylan Robert Harp, Dan O'Malley, Bicheng Yan, Rajesh Pawar
Research output: Contribution to journalArticlepeer-review
32 Scopus citations
Abstract
We evaluate the feasibility of using physics-informed machine learning (PIML) for underground energy-related pressure management. To this end, we develop a PIML framework to manage underground reservoir pressures by training neural networks to determine fluid extraction rates for dedicated extraction wells during fluid injection operations given a range of reservoir conditions (e.g., transmissivity and storativity). We implement an automatically-differentiable analytical physics model of fluid flow in porous media within the PIML framework as a proxy for more complicated models. This allows us to execute a sufficient number of training scenarios to fully evaluate the feasibility of using PIML to support pressure management activities. We quantify the number of physics-model parameters required for automatic differentiation to become more efficient than finite-difference gradient calculations. We use a simple scenario with a single injector, extractor, and critical location for our feasibility analysis. We evaluate the effect of the size of the training dataset (i.e., the number of reservoir condition samples) on the accuracy and efficiency of the PIML framework. For an equivalent number of model evaluations, the larger training dataset took less time to train and produced a neural network that was able to more accurately manage reservoir pressures. We also evaluate the effect of the training dataset batch size (i.e., number of reservoir condition samples used to update the neural network coefficients during training; i.e., how the training dataset is partitioned). While training ran faster with larger batch sizes, they produced neural networks that managed pressures less accurately. We demonstrate the approach on a more complex scenario involving 10 injectors, 10 extractors, and 4 critical locations (a relatively high well density of 20 wells/km2). We provide the number of forward and adjoint model evaluations required in each case as an indication of the feasibility of using PIML for pressure management when more complicated physics models with longer execution times are used.
Original languageEnglish (US)
JournalExpert Systems with Applications
Volume178
DOIs
StatePublished - Sep 15 2021
Externally publishedYes
ASJC Scopus subject areas
 - Artificial Intelligence
 - General Engineering
 - Computer Science Applications
Fingerprint
Dive into the research topics of 'On the feasibility of using physics-informed machine learning for underground reservoir pressure management'. Together they form a unique fingerprint.
Cite this


Editor's Picks
Meet AV1: A Robot that Helps Sick Kids Remain Present in the Classroom
By Cait Etherington
March 24, 2018
There have been many recent reports about the role telepresence robots are about to play in our lives, but one Norwegian-based startup is already using them to transform people's lives on a profound level. No Isolation recently launched the AV1, which the company describes as "the world's first telepresence robot specifically developed for children and young adults with long-term illness."
Karen Dolva and colleagues, Marius Aabel and Matias Doyle, met in 2012 at Norway's largest launch pad for tech startups. From the start, they imagined coming up with a tech solution to a pervasive problem: social isolation. As they brainstormed their idea, they realized the far-reaching impacts of social isolation and loneliness. In 2015, they launched No Isolation. In the company's own words, No Isolation "tackles loneliness and involuntary social isolation by developing communication tools that can help those affected."
eLearning Inside News recently caught up with CEO Karen Dolva to learn more about No Isolation, the AV1, and the company's mandate to tackle social isolation with tech solutions.
How and Why the AV1 Came to Life
Cait Etherington: What initially led No Isolation to develop AV1? How did you realize there was a need for a telepresence robot in classrooms?
Karen Dolva: Both AV1 and No Isolation came as the result of meeting Anne Fi Troye, a mother who lost her teenage daughter, Cornelia, to cancer in 2005. Reflecting on her loss, Anna Fi noted that in the years following her diagnosis, the level of solitude Cornelia felt was "much worse than the diagnosis, the pain and the treatment." Anna Fi was already trying to find ways to reduce the loneliness of other children in Cornelia's situation when we met, and I knew I needed to help.
I, with my co-founders at No Isolation, immediately began researching the solutions that already existed and was shocked to learn that there was very little technology in place to help those suffering from long-term illness stay connected to the outside world. From speaking with various charities and organizations we knew that we wanted to build a tool that would allow children to participate both in their studies and in their social lives, so that they'd not fall behind in any area.
We actually didn't know we'd be making a telepresence robot when we started – it was only through testing ideas with different children that AV1 began to form.
CE: Why is AV1 a better option than simply a remote monitor? After all, couldn't students just use Facetime or Skype to be present at a distance? Why is this a more effective option?
KD: The main difference is security and control – with AV1 the child chooses when they log on and where they look, and it is safe and secure in a classroom situation because no data is stored – everything is transferred in real-time.
Also, the difference between AV1 and something like FaceTime or Skype is that AV1 has a one-way camera. During our prototype testing, we found that children preferred this, as they didn't need to worry about how they looked to their classmates, especially if they were feeling particularly poorly on any given day.
Additionally, No Isolation's AV1 is a physical robot that can mimic certain human gestures. For example, the user can use the robot to physically turn and look at whoever is speaking and can use their controller to nod, shake their head and move around on a 360-degree axis. We also added a 'whisper mode', where the user can speak quietly via their AV1 in class, rather than projecting their voice to the whole room. This creates a much more compelling and physical presence.
Most importantly though, AV1 is designed to be picked up and moved around. Our users can go out to the playground or the canteen at break time and won't miss out on socializing with their friends. AV1's also go on field trips and on family outings. We know of AVs that have been to the zoo, have been kayaking and that have been to concerts and theatre shows. By creating an avatar that is physically present, it is easier for the child to feel as though they are actually there, and for their classmates to involve them.
Reactions to the AV1
CE: How do children who are present in the classroom respond to No Isolation's AV1? Do they think it's weird to have their classmate mediated by a robot, or does the presence of the robot, in fact, add to the classroom dynamic?
KD: Interestingly, we find that the younger the kids, the more quickly they adapt to the technology! After a few minutes, they forget that there is a robot in class, and view it simply as their friend. It is the adults that take a little longer to get used to the idea.
Speaking with our users in the UK, we've heard that their classmates have all been very excited when an AV1 has been introduced into the classroom, and have asked lots of questions about how and why the technology is helping their friend. In fact, we've even heard that one child actually told a mother of a user that he wished his other friend who was currently off school with a long-term illness had access to an AV1, which is incredibly heartwarming.
No Isolation's Success Stories
CE: Can you share a success story?
KD: One of our users is a 12-year-old boy called Elliot, who is recovering from surgery to remove a brain tumor. As a result of his treatment, surgery and recovery, Elliot has been forced to miss a lot of school. He's also been incredibly self-conscious about his appearance, as a result of his illness, so has been reluctant to see his friends.
His teachers at Preston School, Somerset, were incredibly keen to help him get back up to speed, and so raised funds to purchase an AV1 for him to use. Now that Elliot has access to an AV1, he is able to attend class remotely – meaning that he is catch up on his studies and slowly begin to re-integrate himself back into school life on his terms.
CE: How much will it cost for schools or families to adopt an AV1? Do you have plans to make access to AV1 accessible, even to families who may be struggling financially?
KD: AV1 is available to rent in the UK, with prices for parents beginning at £280/month (including insurance and support) for users who expect to be away for less than six months, extending to £1800/year (including insurance and support) for those who have to be away for more than six months.
Organisations in the public sector, such as schools, can purchase AV1 through Atea – Northern Europe's market leader in IT infrastructure. Each avatar is sold at £2200 with a £90 extra monthly fee for 4G, support, and insurance. This monthly fee enables the school to contact No Isolation for tech assistance or a change of user, should the school wish to recycle the avatar once the pupil has returned to school.
We understand that loneliness and isolation affect thousands of people of varying financial circumstances, which is why an AV1 can be donated to a user or a school by a company, organization or foundation.
No Isolation's New Project Aims to Transform Seniors' Lives
CE: What's next for No Isolation? Do you have other projects in development at the moment or plans to expand AV1's presence in other contexts?
KD: Our next product, KOMP, is aimed at solving the loneliness epidemic among seniors. We have conducted extensive research into this topic and found that many seniors wished they could talk to their family more, while the family members felt guilty for not talking to their elderly relatives enough. We also learnt that while many families would give their elderly relatives devices like tablets and computers, many seniors found the systems too complex and not adapted for reduced hearing, touch and eyesight. We wanted to create something that would address all of these issues and reduce loneliness in seniors.
KOMP allows seniors to passively receive images, messages and video calls. It has one button, a large screen, and quality loudspeakers. The button allows for the device to be turned on and off, as well as controlling the volume. There is no touchscreen, and there are no pop-up messages, log-in details, emails or passwords.
The content in KOMP is managed from the connected app. Family and friends send messages, images and start video conversations. When video calling, the KOMP screen lights up and automatically starts counting down from 10. If the user wants to receive the call they just let it count down and it automatically starts, while if they want to reject the call they turn their KOMP off. If it is turned off already, the KOMP will call as a normal phone and the senior needs to turn it on to receive the call.
Having proven its success in Norway, with more than 200 seniors using KOMP, No Isolation's product will be coming to the UK very soon, and is available for pre-order now.


text:
Electronic drums are a great way to get creative with your playing. They offer a variety of sounds and are much more affordable than acoustic drums. Plus, you can easily connect them to a computer for further sound manipulation and recording. But what's the best way to connect electronic drums to your computer? In this blog post, we'll explore the various methods for connecting electronic drums to a computer, as well as provide some tips and tricks for setting up the connection properly. We'll also talk about how you can use software to make the most out of your electronic drum kit. Let's get started!
Different Ways to Connect Electronic Drums to a Computer
MIDI (Musical Instrument Digital Interface) is a protocol that allows electronic musical instruments, computers, and other devices to communicate with each other. MIDI allows you to connect your electronic drums to a computer so you can use drum software programs to create beats, record your playing, or even control other MIDI devices.
USB (Universal Serial Bus) is a standard that allows computers and electronic devices to communicate with each other. You can use a USB cable to connect your electronic drums to a computer so you can use drum software programs to create beats, record your playing, or even control other MIDI devices.
Wireless connections are becoming more and more common as technology advances. Many electronic drums come with wireless adapters that allow you to connect your drums to a computer without having to use any cables. This can be very convenient if you want to be able to move around while you're playing or if you want to eliminate the clutter of cables.
Advantages and Disadvantages of Each Method
There are three primary ways to connect electronic drums to a computer: MIDI, USB, and Bluetooth. Each method has its own advantages and disadvantages that should be considered before making a purchase.
MIDI is the most common method of connecting electronic drums to a computer. MIDI uses a special cable to connect the drum set to the computer. The advantage of MIDI is that it is very affordable and easy to find. The disadvantage of MIDI is that it can be difficult to set up and may not work with all computers.
USB is the second most common method of connecting electronic drums to a computer. USB uses a standard USB cable to connect the drum set to the computer. The advantage of USB is that it is very easy to set up and use. The disadvantage of USB is that it can be more expensive than MIDI.
Bluetooth is the third most common method of connecting electronic drums to a computer. Bluetooth uses wireless technology to connect the drum set to the computer. The advantage of Bluetooth is that it is very easy to set up and use. The disadvantage of Bluetooth is that it can be more expensive than MIDI and USB.
Which Method is Best for You?
There are a few different ways that you can connect your electronic drums to a computer. The best method for you will depend on what type of computer you have, and what type of drums you have.
If you have a PC, the best way to connect your drums is through a USB port. Most electronic drums come with a USB cable that you can use to connect the two devices. If your drums don't have a USB cable, you can usually buy one at an electronics store.
If you have a Mac, the best way to connect your drums is through an audio interface. An audio interface is a device that allows you to connect musical instruments to your computer so that they can be used with music software. Many audio interfaces also come with MIDI ports, which allow you to connect other types of musical equipment to your computer as well.
Once you've determined the best way to connect your electronic drums to your computer, all you need to do is follow the instructions that came with your equipment.
How to Get Started with Connecting Your Electronic Drums to a Computer
If you want to connect your electronic drums to a computer, there are a few things you need to do first. Here's a quick guide on how to get started:
1. Buy the necessary cables and connectors. You'll need a MIDI interface, which you can buy online or at most music stores. Make sure that the interface is compatible with your operating system (OS).
2. Install any required drivers for your MIDI interface. This should be included in the documentation that came with the device.
3. Connect the MIDI interface to your computer using a USB cable. If your OS doesn't recognize the device automatically, you may need to restart your computer.
4. Connect your electronic drums to the MIDI interface using standard MIDI cables (these are usually included with the drums). If your drums have multiple pads and/or inputs, you can use an adapter that allows you to connect multiple cables at once.
5. Open up your drum software of choice and configure it to use the MIDI interface as its input device. This will vary depending on the software, but usually involves going into the "Preferences" or "Settings" menu and selecting the MIDI interface from a list of available devices.
6. Start playing! Once everything is properly configured, you should be able to play your electronic drums just like you would if they were connected directly to a sound module or amplifier.
How Do I Connect My Yamaha Dtx Drum To My Computer?
Yamaha dtx drums can be connected to a computer in several ways. The most common way is to use a USB cable. To do this, simply connect the USB cable from the drum to the USB port on your computer.
Alternatively, you can use an audio interface to connect your drums to your computer. This will require an audio interface with MIDI ports.
To connect the drums using an audio interface, connect the MIDI out of the interface to the MIDI in of the drums, and then connect the audio out of the interface to the audio input of your computer. Finally, you will need to install drivers for your drum and audio interface, if they are not already installed.
How Do I Connect My Roland E Drums To My Computer?
If you want to connect your Roland electronic drums to your computer, there are a few things you need to do first. Make sure that your computer has a sound card that supports MIDI input and output. You will also need a MIDI interface, which is a device that allows your computer to communicate with MIDI devices.
Once you have all of the necessary equipment, you can begin connecting your drums to your computer. Start by connecting the MIDI out port on your drums to the MIDI in port on your interface. Then, connect the USB cable from your interface to your computer. Finally, open up your DAW (digital audio workstation) software and configure it to recognize your new MIDI device.
Now that everything is set up, you can start playing around with making music! Remember to experiment and have fun – that's what making music is all about.
How Do I Connect My Alesis Drums To My Computer?
Assuming you have an Alesis drum set, the process of connecting it to your computer is actually quite simple. All you need is a USB cable, which will connect from your drums to the USB port on your computer. Once connected, your computer should automatically recognize the drums and they will be ready to use with any compatible software.
Of course, you will need to install any necessary drivers for your particular model of Alesis drums before they will work properly. However, once that is done, simply connecting the USB cable should be all that is needed to get up and running.
Connecting electronic drums to a computer is an exciting way to enhance your musical experience. By connecting the electronic drum kit and computer, you can record and edit drum tracks using different software options available on the market. With the right setup, you can create unique sounds for your music without having to buy expensive instruments. Whether you're a beginner or an experienced musician, this set-up will give you plenty of opportunities for experimentation and creativity!
Hi, This is Alex, A professional drummer with over 10 Years of experience. We are here to help you to find your best electronic drum set! Today's electronic drums have come a long way. They now sound and feel more like an acoustic drum set. Have Fun on the Website!


but add Location (latitude, longitude) for each node. Then use arrows for connectors to show the "direction" of water flow (which node flows into which node). WPF uses XAML and not sure if this one can be implemented using XAML.
 20. vote
 Thanks for the codes. Ewald Bleiziffer said in his post he's actually done it. I'm hoping he'll provide a link to his work. If not, I'll try and adapt your code–with citations for your work, of course.
 21. vote
 Hi Bradley,
 first of all thank you for posting this helpful work.
 I want to use it for displaying a network diagram.
 To do this I need to add some extra functionality. First I want to add a text to each node, the name of the node. Have you made something similar before or have an idea how to do this?
 The second part is to add a ToolTip to each node. The problem where I stuck here, is that I need the absolute Position of each node to compare it with the current cursor position.
 Is there a way to get the current absolute position of each node?
 - vote
 Adding text to nodes is quite simple; just create a subclass of Node and override the DrawNode method.
 In order implement a ToolTip, you will need an additional method for determining if there is a node under the mouse pointer, e.g.:
 public Node HitTest(Point location, Rectangle bounds) {
 Point center = new Point(bounds.X + (bounds.Width / 2), bounds.Y + (bounds.Height / 2));
 // determine the scaling factor
 Rectangle logicalBounds = GetDiagramBounds();
 double scale = 1;
 if (logicalBounds.Width > logicalBounds.Height) {
 if (logicalBounds.Width!= 0) scale = (double)Math.Min(bounds.Width, bounds.Height) / (double)logicalBounds.Width;
 else {
 if (logicalBounds.Height!= 0) scale = (double)Math.Min(bounds.Width, bounds.Height) / (double)logicalBounds.Height;
 // then draw all of the nodes
 foreach (Node node in mNodes) {
 Point destination = ScalePoint(node.Location, scale);
 Size nodeSize = node.Size;
 Rectangle nodeBounds = new Rectangle(center.X + destination.X - (nodeSize.Width / 2), center.Y + destination.Y - (nodeSize.Height / 2), nodeSize.Width, nodeSize.Height);
 if (nodeBounds.Contains(location)) return node;
 return null;
 Note that the above assumes 'location' is relative to 'bounds' and that these are the same dimensions that are passed to the Draw() method. You can call the HitTest() method from the handlers for the mouse events on your form (or whichever control you draw the diagram on). The method will return a Node if there is one at the specified location, otherwise it will return null.
 - vote
 Hi Bradley,
 thank you for this very helpful answer.
 Now I managed to do all the things I wanted to do.
 Really nice work you have done here and good starting point to draw diagrams.
 Thank you again for posting this solution.
 22. vote
 Hi Bradley,
 Could you provide us how to add text to node, i did it as you reply to Markus ( via overriding the drawnode method, but it redraw the network again
 - vote
 Hi Xander,
 The code below provides a very basic example of how to draw text on a node. Note that the text is not taken into consideration when positioning the nodes – to do this, you would also need to override the Size property.
 public class TextNode : SpotNode {
 public string Text { get; set; }
 public TextNode(string text, Color color)
 : base(color) {
 Text = text?? String.Empty;
 public override void DrawNode(Graphics graphics, Rectangle bounds) {
 base.DrawNode(graphics, bounds);
 graphics.DrawString(Text, SystemFonts.DefaultFont, Fill, new PointF(bounds.Right + 3, bounds.Top));
 23. Pingback: Building a Better Tag Cloud | Brad Smith's Coding Blog
 24. vote
 Hi,
 I am porting this code portion into c++.
 I have one doubt regarding this bearing angle calculation.
 Simply finding the bearing angle is ok.
 But why do some other calculation depending on the the difference between x and difference between y?
 Please help me.
 - vote
 The 'tanh' function only works for values in the range (-1, 1) so the part of the code you're referring to keeps the input within those bounds. It checks whether the distance in the X direction is smaller than the distance in the Y direction and, if so, swaps the values and calculates the complement of the angle instead – this needs to be corrected before the method returns.
 I later discovered that if you replace the 'tanh' function with 'atan2', you do not need to perform this correction, i.e.
 private double GetBearingAngle(Point start, Point end) {
 Point half = new Point(start.X + ((end.X - start.X) / 2), start.Y + ((end.Y - start.Y) / 2));
 double diffX = (double)(half.X - start.X);
 double diffY = (double)(half.Y - start.Y);
 if (diffY!= 0)
 return Math.Atan2(diffY, diffX) * (180.0 / Math.PI);
 return (diffX < 0)? 180.0 : 0.0; }
 25. vote
 Thank you for posting the code – amazing work :).
 I have for you a question – I notice that the number of nodes is always random – can I have a way to make a large number of nodes(like 338)?
 I also need to make a minimal intersections of the graph edges – Do you have idea how to do that?
 Thank you for help – and again, nice job.
 - vote
 The example app I included with the code is just for demonstration purposes – when you use the classes in your own app, you can create as many or as few nodes as you like.
 Generally speaking, the interaction between the forces should inherently act to limit the number of intersections – but depending on the topology of the diagram, you might still get a few. Often, the easiest way to deal with this is to just re-run the layout algorithm until you get something you are happy with – or run it a finite number of times and evaluate the best solution; it's quite straightforward to check for intersecting lines in code.
Leave a reply to Bradley Smith Cancel reply


47.6. Logical Decoding Output Plugins
An example output plugin can be found in the contrib/test_decoding subdirectory of the PostgreSQL source tree.
47.6.1. Initialization Function
An output plugin is loaded by dynamically loading a shared library with the output plugin's name as the library base name. The normal library search path is used to locate the library. To provide the required output plugin callbacks and to indicate that the library is actually an output plugin it needs to provide a function named _PG_output_plugin_init. This function is passed a struct that needs to be filled with the callback function pointers for individual actions.
typedef struct OutputPluginCallbacks
 LogicalDecodeStartupCB startup_cb;
 LogicalDecodeBeginCB begin_cb;
 LogicalDecodeChangeCB change_cb;
 LogicalDecodeCommitCB commit_cb;
 LogicalDecodeMessageCB message_cb;
 LogicalDecodeFilterByOriginCB filter_by_origin_cb;
 LogicalDecodeShutdownCB shutdown_cb;
} OutputPluginCallbacks;
typedef void (*LogicalOutputPluginInit)(struct OutputPluginCallbacks *cb);
The begin_cb, change_cb and commit_cb callbacks are required, while startup_cb, filter_by_origin_cb and shutdown_cb are optional.
47.6.2. Capabilities
To decode, format and output changes, output plugins can use most of the backend's normal infrastructure, including calling output functions. Read only access to relations is permitted as long as only relations are accessed that either have been created by initdb in the pg_catalog schema, or have been marked as user provided catalog tables using
ALTER TABLE user_catalog_table SET (user_catalog_table = true);
CREATE TABLE another_catalog_table(data text) WITH (user_catalog_table = true);
Any actions leading to transaction ID assignment are prohibited. That, among others, includes writing to tables, performing DDL changes, and calling txid_current().
47.6.3. Output Modes
Output plugin callbacks can pass data to the consumer in nearly arbitrary formats. For some use cases, like viewing the changes via SQL, returning data in a data type that can contain arbitrary data (e.g., bytea) is cumbersome. If the output plugin only outputs textual data in the server's encoding, it can declare that by setting OutputPluginOptions.output_mode to OUTPUT_PLUGIN_TEXTUAL_OUTPUT instead of OUTPUT_PLUGIN_BINARY_OUTPUT in the startup callback. In that case, all the data has to be in the server's encoding so that a text datum can contain it. This is checked in assertion-enabled builds.
47.6.4. Output Plugin Callbacks
An output plugin gets notified about changes that are happening via various callbacks it needs to provide.
Concurrent transactions are decoded in commit order, and only changes belonging to a specific transaction are decoded between the begin and commit callbacks. Transactions that were rolled back explicitly or implicitly never get decoded. Successful savepoints are folded into the transaction containing them in the order they were executed within that transaction.
Note: Only transactions that have already safely been flushed to disk will be decoded. That can lead to a COMMIT not immediately being decoded in a directly following pg_logical_slot_get_changes() when synchronous_commit is set to off. Startup Callback
The optional startup_cb callback is called whenever a replication slot is created or asked to stream changes, independent of the number of changes that are ready to be put out.
typedef void (*LogicalDecodeStartupCB) (
 struct LogicalDecodingContext *ctx,
 OutputPluginOptions *options,
 bool is_init
The is_init parameter will be true when the replication slot is being created and false otherwise. options points to a struct of options that output plugins can set:
typedef struct OutputPluginOptions
 OutputPluginOutputType output_type;
} OutputPluginOptions;
output_type has to either be set to OUTPUT_PLUGIN_TEXTUAL_OUTPUT or OUTPUT_PLUGIN_BINARY_OUTPUT. See also Section 47.6.3.
The startup callback should validate the options present in ctx->output_plugin_options. If the output plugin needs to have a state, it can use ctx->output_plugin_private to store it. Shutdown Callback
The optional shutdown_cb callback is called whenever a formerly active replication slot is not used anymore and can be used to deallocate resources private to the output plugin. The slot isn't necessarily being dropped, streaming is just being stopped.
typedef void (*LogicalDecodeShutdownCB) (
 struct LogicalDecodingContext *ctx
); Transaction Begin Callback
The required begin_cb callback is called whenever a start of a committed transaction has been decoded. Aborted transactions and their contents never get decoded.
typedef void (*LogicalDecodeBeginCB) (
 struct LogicalDecodingContext *,
 ReorderBufferTXN *txn
The txn parameter contains meta information about the transaction, like the time stamp at which it has been committed and its XID. Transaction End Callback
The required commit_cb callback is called whenever a transaction commit has been decoded. The change_cb callbacks for all modified rows will have been called before this, if there have been any modified rows.
typedef void (*LogicalDecodeCommitCB) (
 struct LogicalDecodingContext *,
 ReorderBufferTXN *txn
); Change Callback
The required change_cb callback is called for every individual row modification inside a transaction, may it be an INSERT, UPDATE, or DELETE. Even if the original command modified several rows at once the callback will be called individually for each row.
typedef void (*LogicalDecodeChangeCB) (
 struct LogicalDecodingContext *ctx,
 ReorderBufferTXN *txn,
 Relation relation,
 ReorderBufferChange *change
The ctx and txn parameters have the same contents as for the begin_cb and commit_cb callbacks, but additionally the relation descriptor relation points to the relation the row belongs to and a struct change describing the row modification are passed in.
Note: Only changes in user defined tables that are not unlogged (see UNLOGGED) and not temporary (see TEMPORARY or TEMP) can be extracted using logical decoding. Origin Filter Callback
The optional filter_by_origin_cb callback is called to determine whether data that has been replayed from origin_id is of interest to the output plugin.
typedef bool (*LogicalDecodeFilterByOriginCB) (
 struct LogicalDecodingContext *ctx,
 RepNodeId origin_id
The ctx parameter has the same contents as for the other callbacks. No information but the origin is available. To signal that changes originating on the passed in node are irrelevant, return true, causing them to be filtered away; false otherwise. The other callbacks will not be called for transactions and changes that have been filtered away.
This is useful when implementing cascading or multidirectional replication solutions. Filtering by the origin allows to prevent replicating the same changes back and forth in such setups. While transactions and changes also carry information about the origin, filtering via this callback is noticeably more efficient. Generic Message Callback
The optional message_cb callback is called whenever a logical decoding message has been decoded.
typedef void (*LogicalDecodeMessageCB) (
 struct LogicalDecodingContext *,
 ReorderBufferTXN *txn,
 XLogRecPtr message_lsn,
 bool transactional,
 const char *prefix,
 Size message_size,
 const char *message
The txn parameter contains meta information about the transaction, like the time stamp at which it has been committed and its XID. Note however that it can be NULL when the message is non-transactional and the XID was not assigned yet in the transaction which logged the message. The lsn has WAL position of the message. The transactional says if the message was sent as transactional or not. The prefix is arbitrary null-terminated prefix which can be used for identifying interesting messages for the current plugin. And finally the message parameter holds the actual message of message_size size.
Extra care should be taken to ensure that the prefix the output plugin considers interesting is unique. Using name of the extension or the output plugin itself is often a good choice.
47.6.5. Functions for Producing Output
To actually produce output, output plugins can write data to the StringInfo output buffer in ctx->out when inside the begin_cb, commit_cb, or change_cb callbacks. Before writing to the output buffer, OutputPluginPrepareWrite(ctx, last_write) has to be called, and after finishing writing to the buffer, OutputPluginWrite(ctx, last_write) has to be called to perform the write. The last_write indicates whether a particular write was the callback's last write.
The following example shows how to output data to the consumer of an output plugin:
OutputPluginPrepareWrite(ctx, true);
appendStringInfo(ctx->out, "BEGIN %u", txn->xid);
OutputPluginWrite(ctx, true);
Submit correction
Privacy Policy | About PostgreSQL
Copyright © _PHONE_ The PostgreSQL Global Development Group


text:
With the explosion of smartphones and social network services, location-based social networks (LBSNs) are increasingly seen as tools for businesses (e.g., restaurants and hotels) to promote their products and services. In this article, we investigate the key techniques that can help businesses promote their locations by advertising wisely through the underlying LBSNs. In order to maximize the benefit of location promotion, we formalize it as an influence maximization problem in an LBSN, i.e., given a target location and an LBSN, a set of k users (called seeds) should be advertised initially such that they can successfully propagate and attract many other users to visit the target location. Existing studies have proposed different ways to calculate the information propagation probability, that is, how likely it is that a user may influence another, in the setting of a static social network. However, it is more challenging to derive the propagation probability in an LBSN since it is heavily affected by the target location and the user mobility, both of which are dynamic and query dependent. This article proposes two user mobility models, namely the Gaussian-based and distance-based mobility models, to capture the check-in behavior of individual LBSN users, based on which location-aware propagation probabilities can be derived. Extensive experiments based on two real LBSN datasets have demonstrated the superior effectiveness of our proposals compared with existing static models of propagation probabilities to truly reflect the information propagation in LBSNs.
ASJC Scopus subject areas
- Computer Science(all)


How the Trailer Breakaway System Works
Posted by Debbie Stice on 8/27/2015 to Horse Trailer Know-Hows
How the Trailer Breakaway System Works
The Trailer Breakaway System is designed to bring a trailer to a safe stop by activating the electric brakes on the trailer, should the trailer be disconnected from the tow vehicle while driving. You must have operational electric brakes on the trailer, the 12 volt battery must be charged& the switch cable must be attached to the vehicle.
Battery: At the front of your trailer is a black plastic case that holds a 12 volt battery. There are two wires connected to the battery at the top. One wire is the "ground" wire. The second wire (hot) connects to the breakaway switch. If there is a third wire, it's hooked to a small charger that charges the battery off the tow vehicle, through the trailer plug. If there are only two wires, there is no way that the battery can be recharged from the tow vehicle, and you must charge it by hooking an electric or solar battery charger to it. Or, you can install a small maintenance battery charger inside the battery box.
These 12 volt batteries often have a life of only two years, and since new batteries are not always fully charged, you must charge them before connecting the system. If you have a charger installed, it can charge the battery by plugging the trailer plug into a running tow vehicle for twenty minutes. Check the battery charge frequently. The entire battery can be depleted if the pin is pulled out of the switch for 20-25 minutes, IF it's fully charged. If it's not fully charged, it can deplete in 10 minutes or less. When checking the charge on the battery, first disconnect the trailer plug or you will be checking the tow vehicle's battery charge instead.
Switch: The breakaway switch is wired to the battery in the battery case & is mounted between the battery and the tow vehicle. It contains a pin that is attached to a wire cable, 44-48 inches long.
Pin & Cable: The pin must be inserted into the switch, facing the rear of the tow vehicle, with the attached wire cable in a direct path to where you secure it to the tow vehicle. The wire cable must be fastened to the tow vehicle independently. Never loop it through the safety chains! If the cable is not attached to the tow vehicle, the breakaway system will not work in case the trailer becomes disconnected from the tow vehicle. Pulling the pin out ANYTIME depletes the battery, and that's why we recommend clipping the cable to the tow vehicle with it's own clip. We never pull the pin from the switch, except to check if the switch is working or if the battery is charged.
WHY is it important to have your breakaway system working? There are several ways the trailer can become disconnected from the tow vehicle. An accident or a mistake in hitching the coupler to the ball can cause the safety chains or ball mount to break or come out of the receiver. If that happens, the heavy trailer with your animals in it could roll into oncoming traffic or into a ditch and land on it's side. If your breakaway system is working, the second the trailer becomes disconnected, the pin pulls out of the switch & engages the electric brakes ---and the trailer STOPS. This gives you between 10-25 minutes to chock the tires and stabilize the trailer before the battery charge depletes.
Header
2 Comments
Edgar Valenzuela
Date: 5/5/2017
Question...If the emergency breakaway system safety pin breaks in half inside the switch box, but the other half of the safety pin is still in place holding the prongs open can the breaks still lock up at any time. Nope. The broken end of the pin that is still in the switch will hold the prongs open & the brakes will not engage unless the pin is pulled all the way out. Once the pin is pulled out, the brakes will engage for about 20 minutes or until the battery dies. So, if there is no pin & the trailer is rolling fine, it means that there is a dead battery.
James johnson
Date: 5/27/2017
If every thing is hooked right how do you check to see if brakes are working
Add Comment
What's This?
Type the code shown


text:
Document Type : Research Paper
Department of Mathematics, Faculty of Science, Arak University, Arak, Iran
Department of Mathematics, Arak University, Arak, Iran
In this paper, by using C-sequentially sign property for bifunctions, we provide sufficient conditions that ensure the existence of solutions of some vector equilibrium problems in Hausdorff topological vector spaces which ordered by a cone. The conditions which we consider are not imposed on the whole domain of the operators involved, but just on a locally segment-dense subset of the domain.


text:
How To Prank Dna Test Results Form Typeable PDF Online?
Easy-to-use PDF software
What is Prank Dna Test Results Form?
The DNA test report you will receive shows numbers (in the first column) that indicate each of the 21 loci involved in the DNA testing process. The columns marked allele on the DNA test report contain numbers indicating the two alleles found at each locus (or one number if they are the same size).
How to start Typeable PDF for Prank Dna Test Results Form
To work on your PDF, you need to find a decent Typeable PDF for Prank Dna Test Results Form. Our web-based service helps you to simplify the editing process providing you with an array of professional tools. You can explore the entire suite in no time using an intuitive interface. The solution saves you time and effort and delights you with a high-level user experience. To start Typeable PDF for Prank Dna Test Results Form, use the step-by-step guidelines below:
- To begin, open up your form using our advanced editor.
- Pick a tool to modify your document properly.
- Click on any page and start applying your tool.
- Focus on text, changing the size and the font.
- Double check the PDF to eliminate typos and mistakes.
- Save the edits you've made by clicking Done.
Our tool is the fastest and easiest way to cope with red tape. Plus, the solution is safe and processes your data according to industry-standard security, complying with GDPR, ESIGN, and so on. Feel confident knowing that your information is under protection. Try out the service now and get the most out of it to establish a flexible and robust workflow.
Benefits of trying our Typeable PDF for Prank Dna Test Results Form
Looking for necessary tools can take hours. Plus, you have no guarantee that you will find a service that suits your needs. Try our Typeable PDF for Prank Dna Test Results Form, and you don't waste your time. The solution helps you complete and improve your documents in minutes providing you with professional editing tools. So that you forget about scanning and printing documents forever. This is the very first but important step towards paperless document management. Here are five reasons why you should give the solution a shot:
- Secure workflow
- Regular access to data
- Advanced editor
- Web-based solution
- User-friendly interface
Available from any device:
- Smartphone or iPhone
- Tablet or iPad
- Laptop or PC
Need a template of Prank Dna Test Results Form?
Transform other forms
Submit important papers on the go with the number one online document management solution. Use our web-based app to edit your PDFs without effort. We provide our customers with an array of up-to-date tools accessible from any Internet-connected device. Upload your PDF document to the editor. Browse for a file on your device or add it from an online location. Insert text, images, fillable fields, add or remove pages, sign your PDFs electronically, all without leaving your desk.


Ordinarily Extraordinary…
How would our leadership be described? Ordinary or extraordinary?
Ordinary is described with no special or distinctive features, normal, uninteresting, commonplace. Imagine where leadership leads with an ordinary approach.
Extraordinary is described as very unusual or remarkable, unusually great. It does not take long to know how we should answer the call to leadership.
If leadership remains ordinary, the results will be normal. However, if leadership strives to be extraordinary, the results are remarkable.
Consider the impact on taking that which is usual, with no special or distinct features and making it very unusual and remarkable.
When we consider our influence as spiritual leaders, followers deserve ordinarily extraordinary leadership.
Leave a Reply
%d bloggers like this:


text:
| Erskine Capreol|
| 17 September 1898 (1898-09-17) Ottawa, Ontario, Canada|
Flying instructor, test pilot, bush pilot, aviation executive
January 7, 1963, Baie-d'Urfe, Canada
Erskine Leigh Capreol Wikipedia
Erskine Leigh Capreol (September 17, 1898 – January 7, 1963) was a Canadian aviator.
Born in Ottawa, Ontario on September 17, 1898, Erskine Leigh Capreol enlisted on adulthood in the Canadian Army, serving with various battalions of the Canadian Expeditionary Force in France until he completed cadet training at Oxford, England and, in 1917, joined the Royal Flying Corps (RFC). A flying instructor, he was left dependent on a cane by an aircraft accident that required a year and a half stay in a hospital. He was not certified medically fit to fly until 1927, seven years after taking work at the American Bank Note Company at Ottawa. He joined the Royal Canadian Air Force at Camp Borden, Ontario as a flight instructor for slightly over a year before he took work at de Havilland Aircraft of Canada Limited as chief test and demonstration pilot, in charge of testing and displaying new aircraft. In 1934, he became General Manager and Chief Pilot of Capreol and Austin Airways, formed by J.A.M. and Charles Austin. With this company, he flew chartered flights into northern Ontario and Quebec, but only a year later returned to testing and demonstration, for Noorduyn Aviation Limited, Montreal, Quebec. He performed the first flight test of the Noorduyn Norseman, the first Canadian bushplane designed to withstand harsh Canadian flight conditions. While on loan from Noorduyn, he also tested the first Lysander aircraft built at National Steel Car, Malton, Ontario and was involved with the first flight of the North American Yale trainer. When he tired of flying, he became manager of Dorval Airport. He died at Baie D'Urfe, Quebec on January 7, 1963.Canada's Aviation Hall of Fame (1981)


text:
The deforestation and destruction of natural resources around the world is continually on the rise. Lee Gil Rae in his most recent gallery title 'Pine Tree' constructed copper trees to capture the beauty of these natural elements in the world. Each tree is intricately woven with copper wire showing the importance and detail that comes into creating a tree. There is a sense of permanence with each tree in the gallery which adds conversation to how natural trees should be treated in the world. While Lee Gil Rae didn't see a necessary need for his inspiration to be a pine tree, they are the faces of the worlds forests.
What makes the gallery so surreal is the leaflessness of each of the trees. Instead, visitors get to follow the winding paths of the copper wires that lead to extensions of branches from each trunk. By creating leafless tress, Lee Gill Rae is commenting on the future of our planet with how the world treats deforestation. The natural environment is traded out for large cities and buildings. Instead of nature that is created untouched by humans, the world is turning towards man made nature with large landscapes that no longer hold the same purity. This is to bend to the ever growing population, but at what cost?
Lee Gil Rae uses the copper wire to form the shapes and structure of a tree trunk. This is able to resemble the shapes and patterns that people can see when they are looking at a tree. He compares working with the copper wire when he connects different links to be similar to brush strokes on Oriental paintings.
To view more of Lee Gil Rae's work, go here.


text:
Deactivates a cluster tree.
deactivate clusterTree --NAME=object_name
deactivate clusterTree -n object_name
Content of a
 element in the XML document.
This example deactivates a cluster tree named Topic Tree:
SES>deactivate clusterTree --NAME="Topic Tree" The object "[name=Topic Tree]" was successfully deactivated.


Premium Market Analysis
Market Statistics
Low Volatility Drag Is As Bad Or Even Worse Than High Volatility Drag
Everyone has heard of volatility drag and how it negatively impacts compound returns. However, very low volatility can also have a detrimental effect on growth. Below are some examples.
Everyone understands that if there is a loss of 50%, then a gain of 100% must be realized to break even. High volatility imposes a drag on equity growth. The volatility drag is the difference between arithmetic and compound return but this is only an approximation that is useful for all practical purposes. As the volatility drag increases, compound returns decrease and may even get negative.
However, there is rarely a reference to the low volatility drag on returns possibly because risk of ruin is lower. As I will demonstrate below with examples, low volatility drag can be more detrimental than high volatility drag.
For this study, we set all daily arithmetic returns higher than +2% and lower than -2% to +2% and -2% relatively, and all negative daily arithmetic return larger than -0.5% to -0.5% and all positive arithmetic returns smaller than +0.5% to +0.5%. Therefore, If Ri represents the daily arithmetic return, the transformations are as follows:
 - If Ri > +2% then Ri = +2%
 - If Ri < -2% then Ri = -2%
 - If Ri > 0 and Ri < +0.5% then Ri = +0.5%
 - If Ri < 0 and Ri > -0.5%, then Ri = -0.5%
Case 1. SPY since inception to 12/20/2017
The first pane shows the evolution of prices after setting low volatility returns to ±0.5% and the second pane the evolution of prices after setting high volatility returns to ±2%. The results confirm the impact of high volatility drag. Without high volatility prices would have been at 350.10 versus the current 267.58. But without low volatility price would have been still higher at 282.22 but not as high as 350.10. Therefore, both low and high volatility impact prices negatively but in this case high volatility has a more negative effect.
Case 2. S&P 500 index from 01/02/1961 to 12/20/2017
This is now getting interesting: removing low volatility has a more positive effect than removing high volatility. Specifically, by setting all low volatility daily returns to ±0.5%, price growth is much higher along with CAGR as compared to capping high volatility daily returns to ±2%. The index would have been at 4,673 if with some magical way all low daily changes were set to ±0.5% versus a 3.729 if the magic was used to cap large daily returns at ±2%.
Note that in both cases price is higher but we are interested in relative performance. In the case of the S&P 500 it appears the low volatility drag has been more pronounced than high volatility drag.
The relative difference of the impact of low and high volatility drag depends on the distribution of returns. However, in most academic papers and in articles the impression left is that (high) volatility drag has a more pronounced effect. As I show here, this is not always the case. This can also be seen from the NASDAQ chart:
Price and CAGR after removing low volatility are higher than when capping high volatility. However, this does not hold for NASDAQ-100:
In this case high volatility drag is much more pronounced than low volatility drag and removing high volatility results in a much higher price and CAGR but also at a much lower maximum drawdown as may be seen from the chart above.
The conclusion is that low volatility can be a worse drag then high volatility in some cases. The relative difference depends on the distribution of returns but also on their sequence of occurrence in the time domain. But in general, assuming that volatility drag is related only to high volatility may not be a correct assumption. Markets are more complicated than the simple formulas finance and economics use. Drawing conclusions about highly non-linear stochastic processes from simplified models has helped many people in getting advanced degrees, securing tenure or publishing papers and books but reality is much more complicated than that as practitioners and others with skin-in-the-game know.
Charting and backtesting program: Amibroker
Copyright Notice


text:
If you're thinking about expanding your feathered family, you may be wondering whether a cockatiel and a budgie can live together. Or maybe your cockatiel and your budgie get along well, and you'd like to know if it's possible to save on space by keeping them in a single cage.
Let's go into whether a cockatiel and budgie can live together and why (not)!
Can a cockatiel and budgie live together?
These two parrot species are pretty similar in many aspects. They're both seed eaters that can naturally be found in Australia, where flocks of both sometimes forage side-by-side. The two are actually the most popular pet parrots available today (with budgies ranking #1 and cockatiels #2).
Both species are very intelligent and make great pets, but many folks think too lightly of adding one to their family. Although they're often seen as "beginner animals", they do need some special care, including plenty of space, attention and mental stimulation.
All this being said, unfortunately, it's generally still not recommended to keep a cockatiel and budgie in the same cage. Despite their many similarities, it can lead to stress for your birds. In rare cases, it can even turn out fatal. We'll go into why below.
The Psittacology household currently contains both budgies and cockatiels, and let me tell you from my own experience: these species are quite different in terms of personality.
Cockatiels are known for being among the more laid-back, calm parrots. Budgies… not so much. They're pocket rockets that seem to live life ten times faster than the average cockatiel.
Although you can let your cockatiel and budgie play in the same space under supervision, their personality differences alone make it a bad idea to make them live in one cage.
Budgies can be real pests, stressing out your 'tiel with their hyperactive and curious behavior. That's not too much of a problem in an open area (although you should still separate them if either appears stressed), but it can cause issues in an enclosed cage.
What happens if your budgie doesn't relent, and your cockatiel has nowhere to go? It isn't unheard of for budgies to nip at feet and eyes. Will the stress cause it to become ill? Will the cockatiel lash out, injuring its smaller cage mate?
Did you know? Cockatiels are prone to night frights if they get spooked during nighttime. A cockatiel's thrashing and flapping during one of these night frights can injure a budgie or cause it to injure itself in fright.
Speaking of being pests, budgies especially are known to become territorial about nesting areas. This is especially relevant in large aviaries that contain both species and feature nesting boxes. However, it can become an issue indoors as well.
What happens when your cockatiel or budgie becomes broody? They can start to view certain spaces in the cage as their nest and become violently protective of them. Suddenly, they won't be so tolerant towards the other species anymore, and things can easily get out of hand.
Again, it's unlikely for anyone to get hurt if the birds are on neutral, open ground like a cage-top playground. A large aviary also allows them flee any territorial attackers. In a closed cage, however, the risk of injury is a lot more real.
Did you know? Cockatiel cages are often unsuitable for budgies. The bars tend to be spaced too far apart, causing an escape risk or making it possible for your budgie to get themselves stuck.
Are there exceptions?
As mentioned, indoor cages are more of a problem than large, outdoor aviaries. Cockatiels and budgies are kept together by aviary owners all the time, but I still want to mention that it's not my favorite option.
Territorial budgies can become violent if they've got their sights set on a specific nesting box. This can cause injuries and dead chicks if there were already cockatiels nesting in the box.
In short: it can be done, but I wouldn't. If you want to add some extra life to a cockatiel or budgie aviary, why not consider small quail like the genus Coturnix? Because quail stick to the bottom of the enclosure, they're usually simply ignored, which is perfect for peaceful co-existence.
Should I get a budgie or a cockatiel?
As the two species can't be kept together, you'll have to choose, unless you're okay with setting up two separate cages.
Not sure whether a budgie or a cockatiel is the perfect feathered companion for you? That's not surprising, both can make great pets and have many wonderful qualities. Which matches you best depends mostly on what you're looking for in your pet, although of course, there are no guarantees as to how individual birds' personalities turn out.
Want to know more? The article on budgie vs cockatiel can help you make an informed decision.
Frequently asked questions
Yes, the two would eat similar things in the wild. The only issue would be if the cockatiel food is on the large side for the budgie, but it should usually manage.
They might try, but as they belong to different species, the two will never be able to produce offspring.
If you have any more questions or if you'd like to share your experiences with cockatiels or budgies, don't hesitate to leave a comment below.


Take the 2-minute tour ×
In Java instance variables can be initialized by an initialization block as shown below:
class Example {
 private int varOne;
 private int varTwo;
 // Instance Initializer
 varOne = 42;
 varTwo = 256;
Is there an equivalent construct in C#?
[Edit] I know that this can be inline with the instance variable declaration. However, I am looking for is something similar to the static constructor in C# but for instance variables.
share|improve this question
Point of pedantry: instance initialiser blocks and instance field initialisation are executed by the constructor immediately after calling super. – Tom Hawtin - tackline Mar 28 '09 at 13:05
_USER_ - You are right about the calling order. The source code comment is removed. – maxyfc Mar 28 '09 at 13:16
Why not just make it a method and call it from the constructor, if that is what happening behind the scene anyway? – toxvaerd Mar 28 '09 at 13:19
_USER_ - Sometimes we can't create constructors (e.g. anonymous class in Java). But, I think you can use different constructs like delegates in C# to do what anonymous classes are used for in Java (e.g. GUI event handlers). Just wondering if there is an equivalent construct. – maxyfc Mar 28 '09 at 13:35
add comment
2 Answers
up vote 5 down vote accepted
There really is no equivalent in C#. C# has only 2 ways to initialize instance varibles
 1. In the constructor
 2. By explicitly initializing the variable at it's declaration point
There is no way to do an initialization after the object is created but before the constructor runs.
share|improve this answer
add comment
Create an instance constructor that any other local constructor will call in the initialization list:
private Example ()
 //initialize all fields here
public Example (/*list of parameters*/) : this()
 //do specific work here
If the default constructor is already required by the logic of the application, then susbstitute
private Example ()
private Example (object dummy)
and, of course, accordingly modify the initilization call.
share|improve this answer
unfortunately that doesn't let you have multiple instance initializer blocks... but for the common case would be reasonable. – TofuBeer Mar 28 '09 at 16:34
Curious - what is TofuBeer? and also, why would you want multiple instance initializer blocks? For the latter - it seems it would lead to confusion with blocks scattered throughout the class code, separate from constructors and separate from the member decls. – Cheeso Mar 28 '09 at 22:26
a concrerte example - there is a private readonly field I need to initialize based on some class methods that are unavailable at the static initialization. – Roland Tepp Feb 10 '11 at 8:59
In Java (static/instance) initialization block is usually (!) used in conjunction with static/instance variables that need some sort of special initialization incantation. Using initializer blocks allows you to keep the initialization code close to the fields being initialized this way, thus lessening the cognitive distance between declaring something and setting up it's value. It's not perfect, but sometimes necessary – Roland Tepp Feb 10 '11 at 9:03
add comment
Your Answer


text:
Assessment and Mitigation of Akagera River Avulsion
Regional Rusumo Falls Hydroelectric Project (RRFHP) is a joint development undertaken by the governments of Rwanda, Burundi and Tanzania.
The hydropower plant with an installed capacity of 80 MW is currently under construction at the Akagera River.
Between 2015 and 2016 an avulsion occurred at Lake Rweru, which changed the course of the Akagera River about 50 km upstream of the dam site. Previously, the Akagera River bypassed Lake Rweru. However, since the avulsion the Akagera River flows into the lake. There are concerns that this might have negative impacts on downstream river flows at RRFHP.
The objective of this study is to analyse the impacts of the avulsion on the flow conditions and electricity generation at the hydropower plant. The study uses a combination of field surveys as well as advanced hydraulic and hydrological modelling tools.
AFRY provides the modelling and hydropower expertise in this study, whereas project management and field work is covered by the partner Hydroc (Germany).
The methodology and results are discussed and presented at workshops in Rwanda and Burundi.
Facts to Project
Client: Nile Equatorial Lakes Subsidiary Action Plan (NELSAP)
- Collection of hydro-meteorological data from national authorities.
- Field measurements to collect river cross sections, bathymetry at avulsion zone, flow velocity and sediment transport data.
- Sediment assessment before/after the avulsion and sediment transport to the hydropower plant.
- Detailed 2D hydraulic modelling of the inflow-outflow relationship between the river channel and Lake Rweru.
- Hydrological analyses with a rainfall-runoff model to assess inflow to the hydropower plant from Akagera River as well as lateral inflow from Ruvubu River. Consideration of evaporation losses at Lake Rweru.
- Impact assessment of avulsion on electricity generation at the hydropower plant for 40 year scenarios with/without avulsion.
- Outline of possible mitigation measures.
Project period: 2019 - 2020
Location: Rwanda, Burundi and Tanzania
Interested in our offering? Contact us!


Adam Siemion Adam Siemion - 8 months ago 48
reST (reStructuredText) Question
Why the domain model should not be used as resources in REST API?
I came across a statement that the domain model designed in accordance with DDD should not be used as resources in a REST API (source).
It is clear that a REST API is a contract of the application while the domain model is part of the implementation and therefore it is the best to keep these two things separate, so that a change in the domain model does not automatically imply a change in the REST API.
However, I think in case of small projects (where the REST API has just one consumer - the javascript frontend, developed by one team) the benefits of having separate models does not justify the cost of separating the models (different classes - domain model and resource representations and mapping code between the models). Obviously the domain layer cannot have any references to REST specific infrastructure code (to keep separation of concerns).
Should the domain and the REST models be separated?
Answer
When using DDD, the REST API should always be separated from the domain model.
The main reason for this is simplification - you don't want to leak the complexity of the domain model through the API to the clients. Otherwise, clients need to know about the nuances and intricacies of your domain, which most probably makes the API hard to use.
And the main driver for using DDD is a complex problem domain, so this is always a problem.
However, I think in case of small projects (…) the benefits of having separate models does not justify the cost of separating the models (…).
I agree that there are projects where a separated domain model and REST API is over-engineering. However, these cases aren't candidates for DDD, because you will not benefit from DDD enough to justify its cost.