text:
A common task when programming with GTViewer or GTVx is to get the Linkage off of an element (for more info on linkages, look here). For example, if an event were fired indicating that an element had been selected, you get the Category Id and the Element Offset of the selected element as parameters in the event. So, how do you get the Linkage stored on the element so that you can lookup database information? It turns out that there are several ways to do this, but I am going to provide a generic approach that should work for most cases.
It turns out that there is a method provided by both GTViewer and GTVx to retrieve the linkage from an element. It is aptly named GetElementLinkage; however, it returns an array of linkage values (since GTViewer data can have 1 to 7 linkage values per element). Most datasets use a 1 or 2 key linkage system and it sometimes, so it sometimes seems cumbersome to deal with an array when you know you will always be getting one or two linkage values. It is pretty easy to write a function in VB to just return you the one key or two keys without having to deal with the array. The example below is for 2 keys, but it should be obvious how to downgrade this code to a 1 key version.
Function GetElementLinkage(ByVal categoryId As Long, _
ByVal offset As Long, _
dataId As Long, _
key1 As Long, key2 As Long) As Boolean
' This function will get the linkage off of the element specified by its
' categoryId and offset. The dataId, key1, and key2 values will be populated.
' If the element contains only a 1 key linkage, key2 will be 0.
' The function returns True if a linkage was found and False otherwise.
GetElementLinkage = False
Dim linkageList As Variant
Dim linkCount As Long
key1 = 0
key2 = 0
If docObj.GetElementLinkage(categoryId, offset, linkageList, linkCount) Then
dataId = docObj.GetDataId(categoryId)
If linkCount > 0 Then
key1 = linkageList(0)
If linkCount > 1 Then
key2 = linkageList(1)
GetElementLinkage = True
The function above is for GTViewer, but it is very easy to use it with GTVx as well. You can either change the docObj reference to a GTVx1 (or whatever variable name you assigned to the control) or you can add something like the following to your code and use the same code for both GTViewer and GTVX. Write your code for GTViewer making sure to use the correct object when calling the methods (appObj, docObj, or viewObj). For GTVx, just define variables like the ones below in your general section:
Dim appObj As GTVx
Dim docObj As GTVx
Dim viewObj As GTVx
And somewhere in your code, assign the object variables to the GTVx control (Form_Load is a good place to do this):
Private Sub Form_Load()
Set appObj = GTVX1
Set docObj = GTVX1
Set viewObj = GTVX1
That is all you have to do. The function is provided in an appendix to the GTVx.doc file. There are other useful code snippets in this document as well.


Main Content
Bootstrapping a Default Probability Curve
This example shows how to bootstrap default probabilities from CDS market quotes. To bootstrap default probabilities from bond market data, see bondDefaultBootstrap. In a typical workflow, pricing a new CDS contract involves first estimating a default probability term structure using cdsbootstrap. This requires market quotes of existing CDS contracts, or quotes of CDS indices (e.g., iTraxx). The estimated default probability curve is then used as input to cdsspread or cdsprice. If the default probability information is already known, cdsbootstrap can be bypassed and cdsspread or cdsprice can be called directly.
The market information in this example is provided in the form of running spreads of CDS contracts maturing on the CDS standard payment dates closest to 1, 2, 3, 5, and 7 years from the valuation date.
Settle = '17-Jul-2009'; % valuation date for the CDS
MarketDates = datenum({'20-Sep-10','20-Sep-11','20-Sep-12','20-Sep-14',...
MarketSpreads = [140 175 210 265 310]';
MarketData = [MarketDates MarketSpreads];
ZeroDates = datenum({'17-Jan-10','17-Jul-10','17-Jul-11','17-Jul-12',...
ZeroRates = [1.35 1.43 1.9 2.47 2.936 3.311]'/100;
ZeroData = [ZeroDates ZeroRates];
[ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle);
The bootstrapped default probability curve is plotted against time, in years, from the valuation date.
ProbTimes = yearfrac(Settle,ProbData(:,1));
plot([0; ProbTimes],[0; ProbData(:,2)])
grid on
axis([0 ProbTimes(end,1) 0 ProbData(end,2)])
xlabel('Time (years)')
ylabel('Cumulative Default Probability')
title('Bootstrapped Default Probability Curve')
The associated hazard rates are returned as an optional output. The convention is that the first hazard rate applies from the settlement date to the first market date, the second hazard rate from the first to the second market date, and so on, and the last hazard rate applies from the second-to-last market date onwards. The following plot displays the bootstrapped hazard rates, plotted against time, in years, from the valuation date:
HazTimes = yearfrac(Settle,HazData(:,1));
stairs([0; HazTimes(1:end-1,1); HazTimes(end,1)+1],...
grid on
axis([0 HazTimes(end,1)+1 0.9*HazData(1,2) 1.1*HazData(end,2)])
xlabel('Time (years)')
ylabel('Hazard Rate')
title('Bootstrapped Hazard Rates')
See Also
| | | |
Related Topics


The Caterpillar Room
Our Caterpillar Room is led by Miss Chandler and is for our 2 year olds and early 3 year olds.
Of similar size but with fewer children than the Butterfly Room due to ratio, our Caterpillar room is a great space to spread your wings and explore.
Set out with so many areas to discover you can work on a construction project, have fun using your senses in the messy play area or create a masterpiece in the art area.
Why not let your imagination take over in our role play area. What will you be today, a Firefighter, Zoo Keeper or a Chef?
Role play is a key focus in the Caterpillar room as we watch and learn from our peers through play.
And after all that if you are ready for a rest you could take some time to relax in our sensory pod.
We offer support and encourage communication, speech and language through activities such as 'What's in the box' and 'Sound Bags' and 'Listen with Lola'
We learn about the wonderful world around us in small and large group activities. This helps us to develop wellbeing, friendships, communication and understanding.
Every day is filled with activities, crafts, art and music, singing and dance. All building confidence and encouraging physical development.
After a busy day with lots of outside play and maybe a walk in our enclosed woods, we always look forward to settling down in our cosy reading garden to enjoy a story or two.
Starting pre school is a big step where everything is new.
Our team at Little Crickets strive to maintain our positive, happy, caring and nurturing environment for our VIP's.
Student Login


text:
2 runners(Alice, Bob) are running on the oval track at a constant speed. The tracklength is 200 meters.
First Alice ran with such low speed that Bob passed him every 2 minutes. To run faster than Bob, Alice sped up 2 times and now she is passing him every 6 minutes. What speed did Bob ran at in km/h?
How much was Bob faster than Alice at first speed?
1/30h is 2 minutes x km/h * 1/30h = 0.2km x = 6km/h
How much was Alice faster than Bob at second speed?
1/10h is 6 minutes 2x km/h * 1/10h = 0.2km x = 1km/h
Don't know how to create equation out of this.

source: openbmb/Ultra-FineWeb


text:
10.9] % [c d]=min(abs(y(ones(size(x,1),1),:)-x)); out=x(d+(0:size(x,2)-1)*size(x,1));
- Given a matrix of points, find the distance between each pair of
points = [ 3 4 5; 6 5 7; 6 7 1; 7 6 0; 3 2 4; 1 0 3; 5 6 2; 9 0 1] m=8; p=3; % Here's a one-liner by Peter Acklam. Results are in D D= sqrt(sum(abs(repmat(permute(points, [1 3 2]), [1 m 1])... - repmat(permute(points, [3 1 2]), [m 1 1]) ).^2,3)); % Here's another solution by Peter Acklam which exploits symmetry [ i j ] = find(triu(ones(m),1)); E= zeros(m,m); E(i+m*(j-1) ) = sqrt(sum(abs(points(i,:) -points(j,:)).^2,2)); E(j + m*(i-1)) = E(i+m*(j-1)); % And here's a solution by Jyri Kivinen based on the notes in % Borg and Groenen's "Modern Multidimensional Scaling: Theory and % Applications" K=points*points'; d=diag(K); one=ones(length(d),1); D=sqrt(d*one'+one*d'-2*K);
- Suppose have a 4-column matrix and a row vector [0 1 0 1].
How can I create new matrix containing
the same column data as the original data when the corresponding row
vector element is 1, and a column of 0s otherwise?
GivenA= [1 2 3 4 6 7 1 2 1 2 4 3 1 2 3 1]; v=[0 1 0 1];
- [M,N] =size(A); B=A.*repmat(v,M,1)
- B=A*diag(v)(by /PB)
- B=A; B(:,~logical(v))=0;(by Fabio Gori )
- Given a vector how can each sequence of more than 1 zero be reduced to a single zero? E.g. given [0 0 1 5 6 0 7 0 7 0 0 9 8 0 0] produce [0 1 5 6 0 7 0 7 0 9 8 0]
a = [0 0 1 5 6 0 7 0 7 0 0 9 8 0 0] a( (a(1:end-1)==0) & (a(2:end)==0) )=(by Alan B)
- You have a logical vector l1 with n true values, and another logical vector l2
of length n. For all the positions i s.t l2(i) == false, set the i-th true
value of l1 to false.
E.g. given l1 =[0 0 1 0 1 0 0 1 1 1]and l2 =[0 0 1 1 1], l1 should end up as 0 0 0 0 0 0 0 1 1 1.
v=find(l1); v=v(l2); l1=false(size(l1)); l1(v)=true;(by Fabio Gori)
- Suppose you have a vector x=[2 6 99 3 10] and a vector y=['a' 'b' 'c' 'd' 'e']. How could you re-order y so that if the elements of x were re-ordered in the same way, the elements would be in order? (in this example the re-ordered y would be "adbec")
[dummy I]=sort(x); y=y(I)
- For each row of an array how do you find the longest sequence
of numbers that are less than the mean for that row?
(the actual question involved analysing an image of a vertical
crack, measuring the width of the crack).
% create a test array m=rand(10,10) % find mean of each row means=mean(m,2); for row=1:10 [Y,I] =max(diff([0 (find(~(m(row,:)=1 to the next element >=1, the number of steps being one plus the number of elements being <1 on the way, so the number you are interested in is
diff(find(~(A<1)) )-1You then have to take account of the first and final values, where you'll need to decide whether sequences can begin at an edge, etc.
You have 2 sets of (x,y,z) coordinates. Find the distance from each of the points in the 1st set to each of the points in the 2nd set
The following worked example may not be the most elegant solution, but I hope it's educational. Let's start with 2 little datasets.
Clearly one could use nested loops to solve this, but we're going to sacrifice space in the hope that we'll gain speed. First note that if we had 2 points a = [1 2 3] and b = [1 4 7] we can find the distance between them using sqrt(sum((a-b).^2)). How can we use this formula to find more distances at once? Suppose we have
- how much do we need to adjust the formula we used for a and b? sqrt(sum((aa-bb).^2)) gives 0 2 4 because sum has summed the columns, but sqrt(sum((aa-bb).^2,2)) sums the rows and gives [4.4721 ; 0 ], which is what we want in this case. So if we could take the initial matrices one and two and replicate their rows to form the matrices below, we could get all the distances we need by using the revised formula.
Getting bigone is easy enough. First we need to know the array sizes
Now bigone=repmat(one,r2,1). There's probably an easy way to get bigtwo as well, but at the moment all I can see is
will give us 6 distances as a column vector. We can put them into a more convenient shape by using reshape(a,r1,r2). Compressing these lines of code to avoid too many temporary variables (they slow things down) gives us
and the answer
The code above when using matrices with 5000 and 100 points (created using one=rand([5000,3]); two=rand([100,3]);) was 30 times faster than the following code
Each time the program goes round the loop it will look at the (1st 2nd), (3rd 4th),.... pairs, swapping the numbers if necessary, then it will look at the (2nd 3rd), (4th 5th)... pairs, swapping the numbers if necessary. The resulting code might not be very fast...
A user sent this code to the newgroup, asking how to optimise it
Having a complicated line within 3 levels of loops is likely to be costly. Matt Fig suggested
which gives the same answer without using loops. Ingenious, hard to understand, but if speed is important, who care? He then offered
which is nowhere near as impressive. When I tried these out, the non-looping solution was about 10% faster than the original code whereas the last solution was 10 times faster. The moral of the story is - measure. Matlab can be good at optimising code with loops as long as the code is simple. Vectorised code sometimes has hidden costs in terms of time or memory.

source: HuggingFaceFW/fineweb-edu


EPS Files
Encapsulated PostScript Files
EPS is a data directory which contains examples of "Encapsulated PostScript" files. They are a special kind of PostScript file, restricted to describing a single page. They are thus suitable for use as an included graphic inside a document. TeX files, for instance, can use a special environment called EPSFIG to include a graphic figure stored in an EPS file.
EPS File Characteristics:
 1. Adobe Systems, Inc,
 PostScript Language Reference Manual,
 Third Edition,
 Addison Wesley, 1999,
 ISBN: _PHONE_,
 LC: QA76.73.P67P67.
 2. Henry McGilton, Mary Campione,
 PostScript by Example,
 Addison-Wesley, 1992,
 ISBN: 0-201-63228-4,
 LC: QA76.73.P67M34.
Sample files:
You can go up one level to the DATA page.
Last revised on 14 March 2010.


Add2Exchange Administration Guide > Synchronization Concepts > Typical Scenarios
Navigation: Add2Exchange Administration Guide > Synchronization Concepts >
Typical Scenarios
Print this Topic Previous pageReturn to chapter overviewNext page
Example 1: Private-to-Public Folder Synchronization
Team members want a centralized calendar containing all the items from their personal calendars copied to a single public calendar for easy viewing of a composite schedule. For each user, the Add2Exchange Administrator will set up a normal, one-way relationship between each personal (source) calendar and the public (destination) calendar. Items made in the Source can be automatically copied and tied to the Destination. The relationship can be set to copy or not to copy items marked "Private" in Outlook.
Example 2: Public-to-Private Folder Synchronization
This type of relationship is useful if Management wants to place an item in the public calendar and automatically have it copied and tied to a user's personal calendar so items can be synchronized down to mobile devices. This scenario requires a normal, one-way or two-way calendar relationship between the public calendar and each user's personal calendar. If the user's personal calendar is to be copied to this (or another public) folder, another relationship of Example 1 can be set up as well. This is what is termed "mutual synchronization".
For mutual synchronization, you will need two relationships: a relationship from private-to-public and a relationship from public-to-private. In this case, since the Source and Destination folders are the same pair, the relationships are symmetric, but not tied together and act independently of one another.
Please Note: For editing in either location and having the edits go back to the Source, the relationship has to be two-way, where the Destination can overwrite the Source. There are many types of private-to-public, public-to-private, or private-to-private folder combinations available – with each relationship acting independently of the others.
The most common use of Add2Exchange is to synchronize group calendar, contact and task folders to a user's mailbox and vice versa, so your mobile device synchronization software (such as IntelliSync or Microsoft's ActiveSync or Windows Mobile) can bring it to your mobile device.
One limitation of the current version of Add2Exchange is that all folders must be within the same Exchange Server or Cluster. Add2Exchange can synchronize between public and personal folders on different Exchange Servers only if there is a trust set up between the Exchange Servers and the public folders are synchronized across the servers. This release of Add2Exchange will not synchronize private-to-private across Exchange Servers or without a working trust.
Once installed, you will use the Service Account and the Console to create relationships. The Console is available from a new shortcut on the desktop. The Console is used to build and manage synchronization relationships.
The following are scenarios of how Add2Exchange can solve common relationship needs. Our example uses calendars but is very similar for Contacts and Tasks. Add2Exchange does not support synchronization to PST files. If you need to synchronize between a PST file and an Exchange server, our Add2Outlook product supports this feature.
In this scenario, a user wants her mobile device to receive the meetings from the public calendar. A public-to-private relationship is built to the calendar folder in her personal mailbox, with which the mobile device then synchronizes to receive the appointments.
The same Source folder can be involved in more than one relationship, so the public calendar can also be synchronized to another user's mailbox by building a separate relationship.
Since this is a calendar relationship, not every appointment from the public calendar will be synchronized to the users' folders, only those which fall within the Synchronization Window. The Synchronization Window is configured to include everything within the next thirty days by default, so each user will see the next month's meetings appear on their calendar. It is possible to extend the Synchronization Window further into the future or into the past as well.
Items which have been synchronized to a user's folder and no longer fall within the Synchronization Window are not deleted from the Destination but will not receive updates from synchronization.
In this scenario, an executive wants to share her personal calendar with her administrative assistant. A private-to-private relationship is created from her calendar to the assistant's personal calendar.
Private-to-Private relationships require a Pivot Folder, a public folder that exists solely for the purpose of synchronizing Add2Exchange relationships. For more information on Pivot Folders, see the section Create Pivot Folders.
If the administrative assistant needs to make changes to her appointments, a two-way relationship would allow him to edit the meetings and have those edits synchronize back to her personal calendar. A one-way relationship does not permit changes to affect the Source folder. See the section Relationship Setting Reference for details on these settings.
Note that since the relationship is from the executive to the assistant, the items entered in the assistant's calendar are not synchronized to the executive's calendar. This means even if the original relationship is set to be two-way, there is no way for the assistant to add new appointments to the executive's calendar. The directionality of a relationship only affects whether changes made to items originally created in the Source travel in both directions. For Add2Exchange to add new items to a folder, the folder must be a Destination of a relationship. Therefore you would have to set up a separate relationship from the assistant's calendar to the executive's in order for Add2Exchange to let the assistant's calendar create new items in the executive's. This also means the executive would see all appointments from the assistant's calendar except for those marked "Private" in Outlook (as long as the relationship is set to not copy items marked "Private"). For more information, see the section Relationship Setting Reference.
Such a configuration where there are two relationships between the same two folders is called a mutual relationship (singular), although it is actually two distinct relationships. Each relationship is the mutual relationship of the other since the Source and Destination folders are swapped. The two relationships typically have the same settings, but are independent and can be configured separately, or even be created at different times. It is just the fact that they exist between the same folders which makes them mutual relationships, not when or how they were created.
Recall the scenario of synchronized items from the public calendar to the executive's personal calendar. Note that any of these items created in her folder by Add2Exchange will not be synchronized to the assistant's calendar. This is because Add2Exchange does not recognize items it has created as source items for other relationships, as it could lead to a synchronization loop which would fill up an Information Store. If you wanted the public calendar items from that scenario to show up on the administrative assistant's calendar as well, you would set up a separate public-to-private relationship for him just as we did for her.
Add2Exchange can also synchronize directly between public folders. This can be useful to consolidate calendars or contacts from departments within a Business Unit, for example.
Two-Way Public-to-Private:
In this scenario, a mobile device user wants to be able to both see items from the public calendar as well as add items to the public calendar by entering them on their mobile device. This requires a mutual relationship as described in the Private-to-Private Relationship scenario.
While this will allow items to be created in the public calendar from the user's mobile device, Add2Exchange will not synchronize these items to other folders as described in the Private-to-Private Relationship scenario. In order to do this, you must create private-to-private relationships from the user to every other user who needs to see that information.
blog comments powered by Disqus
Page url: _URL_


[Skip to page content]
City of Denton logo stacked
X icon
Bond Programs FAQ
 - What is a bond program?
 A bond is a form of a public security. When issued, bonds provide local governments with funds to finance large capital improvements. A bond program includes both the authority to issue bonds and a listing of the purposes for which the funds may be used. General (GO) bond programs require voter approval.
 - What is a capital improvement project?
 A capital improvement project is any major improvement to City facilities and/or infrastructure. Capital improvement projects typically include projects such as street construction, reconstruction, or rehabilitation; the construction or renovation of City facilities, such as fire stations and libraries; and park improvements. All of the proposed projects are referred to collectively as a Capital Improvement Program. Although capital improvement projects can be very different, most require multiple years to complete, are financed over a long period of time, and require a series of work phases to complete, such as planning, design, and construction.
 - What is a proposition, and how does it relate to the bond program?
 Under state law, the City is required to divide the bond program projects so that voters can consider one type of purpose or project at the time of casting their votes. The propositions are what appear on the voters' ballots, and each proposition involves all the projects that serve the same common, overarching single purpose such as fire safety or streets and transportation. If a proposition passes, the City must use the proceeds from the sale of the bonds for the purposes stated in that approved proposition.
 - Can funds approved in one proposition be used to fund projects in another proposition?
 Amounts approved for one proposition cannot be assigned to another proposition, even if there are excess funds available. Expenditures must strictly conform to what was approved by voters in the election. If voters approve a bond proposition on an election ballot, the City is authorized to sell bonds up to the amount indicated in the proposition language to fund capital improvement projects that meet the public purpose of that bond proposition.
 - If part of the property tax that I pay goes to fund the debt on capital improvement projects, will the additional projects proposed in the 2019 Bond Program result in an increase to my property tax rate?
 There is no anticipated property tax rate increase associated with passage of the proposed 2019 Bond Program. The program has been structured in a way that takes into account current financial conditions, trends, and forecasts, and that is intended to allow the debt to be issued without requiring a tax rate increase. Because the issuance of General Obligation (GO) Bonds is subject to economic conditions at the time of issuance within the City – such as possible decreases in property values, reduction of tax rates, and other factors – no assurance can be given that the projected impact on property taxes can be achieved.


may cause wind (flatulence).
2.2 Measuring pH The next activity gives you the opportunity to measure pH by looking for a change in colour of a solution that you can make from red cabbage. First, watch the following video to see how to carry out the experiment. Please note this video has no spoken audio. The video goes through the process of making a solution from red cabbage. The video begins with a quarter of red cabbage being chopped. The cabbage is then placed in a blender and 250 ml of water is added before blending it all together. The liquid is then strained through a sieve into a measuring jug. The liquid is then poured equally into four sample glasses. Each glass is labelled differently, one being bicarbonate of soda, a teaspoon of bicarbonate of soda is then added to the relevant glass.
Activity 2 Using an indicator to test pH Allow approximately 45 minutes. Chop up a quarter of a red cabbage. Place the chopped cabbage in a blender with 250 ml of water and blend well. Strain the indicator liquid and pour into sample glasses. Clearly label each glass before adding the samples you wish to test. Test samples that you think may be acid or alkali. Which colours indicate that an acid is present and which colours indicate an alkali? Try other substances from the kitchen, such as washing-up liquid, liquid soap, dishwasher powder (be especially careful not to get that on your hands), cola drink, tomato ketchup, etc. You can probably think of many more. Write two or three sentences in the box below to describe what your tests discovered. Click 'Save and Reveal Discussion' when you are satisfied with what you have written. We mentioned using an alkali to neutralise an acid (in antacid medicines). You could try that for yourself now. Take one of your acid solutions (lemon juice, for example) with the indicator, and start adding an alkali (such as baking powder or an antacid tablet). You should see the colour change from the acid colour, through the neutral colour, to the alkali colour. You may also see a lot of fizzing as carbon dioxide is released.
2.3 Why is the stomach so acidic? There seem to be two important reasons why the stomach produces so much acid. Firstly, it kills most of the bacteria that we accidentally take in with our food which might cause food poisoning. Unfortunately, some kinds of bacteria can resist the stomach acid and go on to cause problems, often because of the toxins they produce. More importantly in terms of digestion, the stomach acid coagulates some of the proteins in the food that you eat, this makes it easier for the enzymes to attach and digest them. It's not just in the stomach that acids coagulate proteins. Many people add a splash of vinegar (acetic acid) to the water when they boil eggs (Figure 4). Have you ever thought why?
Figure 4 Vinegar can help when boiling an egg An image of three eggs in a bowl next to a bottle of vinegar.
Egg white is mostly a mix of protein and water. If the egg shell cracks while the eggs are being boiled, the liquid white begins to escape from the crack. Vinegar makes it coagulate faster than it otherwise would and seals up the crack in the shell, so that no more escapes. Similarly, vinegar is often added to the water in which poached eggs are cooked, to make the white coagulate more quickly and spread out less in the water. A teaspoon of lemon juice or vinegar added to egg whites when making meringues has the same effect. It helps the meringue to keep its shape better by slightly solidifying the egg white protein. The coagulation effect is the same on any proteins in your diet. For instance, the proteins in meat are made more solid. Once the proteins are solidified, the enzymes produced by the stomach wall act on them.
2.4 Stomach ulcers Stomach acid is produced by some special cells in the stomach wall. But why doesn't the acid attack the stomach wall and coagulate the proteins in the cells of the stomach wall? The answer is that the stomach wall also produces a thick lining of sticky mucus, which generally keeps the acid away. But sometimes this barrier does not work, the acid gets through and an inflamed and sore patch called an ulcer develops in the stomach wall. Until the mid-twentieth century, it was thought that stress, a poor diet or both caused stomach ulcers. Eating a lot of spicy foods was also considered a possible cause. However, changes in diet and lifestyle rarely made any difference. Then it was suggested that ulcers were caused by excess acid in the stomach. A drug called ranitidine, which blocked acid production, was commonly prescribed. In the 1980s, ranitidine was the world's number one drug, with several billion pounds being spent on it annually. But it did not cure the problem – as soon as people stopped taking it, the ulcers came back. But things were changing. In the late 1950s, Dr James Likoudis, working in a small town in Greece, diagnosed himself with an ulcer. He successfully treated himself, and subsequently several of his patients, with a mix of antibiotics. However, his work was not well received by the medical establishment and it was another 30 years before it was widely recognised that he was right. A common bacterium, found in about half of the world's population, was the primary cause of most stomach ulcers. It doesn't have a common name but its scientific name is Helicobacter pylori, or H. pylori for short. The pioneering work on the role of H. pylori in causing stomach ulcers was done by two Australian scientists, Barry Marshall and Robin Warren in the 1980s. To convince the scientific world of their hypothesis that H. pylori caused stomach ulcers, Marshall deliberately infected himself with a culture of the bacteria. As expected, his stomach became painful and inflamed until he took the right antibiotics. It appears that the bacteria can burrow through the lining of mucus that normally protects the stomach wall from damage. Ultimately, the stomach wall becomes inflamed (Figure 5).
Figure 5 Bacterium penetrating the protective layer in the stomach and damaging cells in the wall A two-step diagram of the Helicobacter pylori bacterium burrowing through the mucus lining of the stomach.
Within a few years, the treatment of stomach ulcers was revolutionised. In 2005, Marshall and Warren were awarded the Nobel Prize in Physiology or Medicine for their discovery of the bacterium Helicobacter pylori and its role in gastritis and peptic ulcer disease.
2.5 Enzymes Have you ever noticed that if you keep chewing potatoes or rice for a few moments, you get a faintly sweet taste in your mouth? This is the effect of a digestive enzyme in your saliva called salivary amylase. It begins the breakdown of starch to sugars such as glucose which is what tastes sweet. Digestive enzymes, such as amylase, are specially shaped protein molecules that can latch on to a particular type of molecule (carbohydrate, protein or fat) and break it down into smaller molecules (Figure 6). Eventually, the molecules are small enough to be absorbed into the bloodstream through the cells of the intestines.
Figure 6 Enzyme (blue) breaking down some food (yellow) The diagram is of digestive enzyme. It shows four stages. The first stage shows the substrate and enzyme apart, with the active site labelled, and the label: substrate entering active site of enzyme. Second stage shows the two now together and points to the fact that the enzyme slightly morphs so the substrate fits. It has the label: enzyme/substrate complex. The third stage shows the enzyme breaking the substrate into products with the label: enzyme/products complex. The final stage shows the two products leaving the active site of the enzyme, with the label: products leaving active site of enzyme.
Each particular type of enzyme usually only works on one type of food molecule. They are named according to the sort of molecule that they affect. For example: enzymes that break down proteins are proteases those that break down fat are lipases (fats are also called lipids) those that break down carbohydrates are amylases (amylose is a component of starch).
2.6 Enzymes in washing powder If you use a biological washing product for your clothes, you are using enzymes to help to digest any food (and other) stains on the clothes (Figure 7). The product may contain one, two or all three of the types of enzyme (proteases, lipases and amylases).
Figure 7 Preparing to wash clothes with a biological washing powder An image of washing powder being poured into a washing machine.
Activity 3 How does a biological washing powder work? Allow approximately 15 minutes. Answer the following questions. What sort of food stains are likely to be removed by a biological washing powder? Why do you think the powder works best at low temperatures of around 40 °C and does not work well in boiling water? Why should you not use this washing powder on clothes made of silk? (Hint: think about what silk is and how it is made.) Write your answers in the box below. Click 'Save' when you are satisfied with what you have written.
2.7 Digestion inside and outside the body Biological washing powder contains enzymes that, although extracted from microbes such as bacteria, are very similar to those produced in our digestive system. Proteases work in much the same way inside and outside the body, by breaking down proteins. These proteins could be inside the digestive system – a po


ImageList provides a container for image data. The control is not visible directly. It is instead referenced from other controls such as ListView, which acquire the images from index values into the ImageList.
Info:The ImageList is simple to create. We add images manually or dynamically.
ImageList screenshot
Add ImageList
To begin, let's add an ImageList control to your Windows Forms program in Visual Studio by double-clicking on the ImageList entry in the Toolbox. The ImageList will appear in the tray of the designer at the bottom.
Next:Try right-clicking on the ImageList instance and select Properties. From there, you can add images manually in the dialog.
How can you reference the ImageList in other controls such as the ListView? First, create the ImageList. Then, find the LargeImageList and SmallImageList properties on the ListView.
Instance:Please select the ImageList instance you created as the value of these properties.
Then:You can use the ListView to specify the index of the images inside your ImageList.
Add Images
You can add any image to the ImageList dynamically by invoking the Add method. This method has several overloaded versions and you can call any of them. Here we look at code that uses the Add method.
In this example, we have a list of file names, and then add each as an Image object using the Image.FromFile method to read the data. The Form1_Load event handler is used to make sure the code is run at startup of the application.
Example of using Add method on ImageList: C#
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
 public partial class Form1 : Form
 public Form1()
 private void Form1_Load(object sender, EventArgs e)
 // Add these file names to the ImageList on load.
 string[] files = { "image.png", "logo.jpg" };
 var images = imageList1.Images;
 foreach (string file in files)
 // Use Image.FromFile to load the file.
C# language
By providing a container for images, the ImageList control gives Windows Forms programs another level of abstraction for managing images. You can reuse the same image in multiple places or with multiple controls.
Finally:You can add images manually through Visual Studio or dynamically through C# code using the ImageList.
C#: Windows


text:
National Coming Out Day
An internationally observed civil awareness day celebrating individuals who publicly identify as bisexual, gay, lesbian, transgender. Observed annually on October 11, the anniversary of the 1987 National March on Washington for Lesbian and Gay Rights.
Queer Community Reception
The other Homecoming dance where all are always welcome.
Trans Week of Remembrance
A week memorializing those who have been killed as a result of transphobia, or the hatred or fear of transgender and gender non-conforming people.
KINK on Campus
National Day of Silence
The Day of Silence is a national event that brings attention to bullying and harassment in schools. Students from middle school to college take a vow of silence in an effort to encourage schools and classmates to address the problem of anti-LGBT.
Night of Noise
After the Day of Silence, the Night of Noise is the time to break the silence, release tension, and celebrate.


Distance Murmansk Mainz. Directions, total distances, average speed, travel time, calculate cost and fuel consumption
Road distance Murmansk Mainz
The total distance represents the road distance in km or miles between Murmansk and Mainz. Initially this is displayed in km but you can always change it using the settings (by selecting the distance in miles or the distance in km):
Average speed
The average speed for the route Murmansk - Mainz is calculated by taking into account the speed limit on each road segment as well as their length.
Travel time
The time required for a car to travel the distance between Murmansk and Mainz, taking into account the speed allowed for each road segment.
Time of arrival
The time of arrival in Mainz is calculated considering that you are departing immediately from Murmansk It takes into account the total travel time.
Fuel price
Total consumption
It represents total fuel (in liters or gallons) needed to travel the road distance from Murmansk to Mainz.
Calculate a new route
Addresses containing a street number: - 10 Street Name, Murmansk
points of interest: - ATM Murmansk or Hotel Name, Mainz
postal codes: - 012345


text:
Cambridge Phenomenon: Global Impact
The second book in the Cambridge Phenomenon series explores how Cambridge's thriving entrepreneurial ecosystem has led to the creation of some of the world's most important science and technology companies.Buy now
Our interactive showcase highlights some of the globally significant discoveries and innovations that have their origins in Cambridge.Explore showcase
Take a look at our various initiatives that explore the factors behind Cambridge's success and celebrate the city's leading achievements.View our Initiatives
A unique cluster of innovation
The Cambridge Phenomenon charts the continuing evolution of globally significant companies and innovations across bioscience, medicine and technology.Learn about the phenomenon
This continually evolving community is like a perpetual motion engine attracting fresh, bright people inspired to do things differently.
Founder, Cambridge PhenomenonLearn about the company


text:
I've heard that the "smog" in NYC actually helps plants and vegetables grow better. Is there any truth to this, or is it one of those things New Yorkers say to make themselves feel better, like "We have the best drinking water in the country"?
-Sarah from Astoria, NY
I'm sorry to burst your Big Apple bubble, but this is just wishful thinking. I'll start by blowing your mind and totally turning the question around: Do plants affect the air quality in polluted cities?
Trees planted in urban areas have actually been proven to reduce air pollution by doing what they do naturally, which is filter the air. Plants suck in carbon dioxide (along with the pollution) and release clean oxygen back into the environment. Woohoo, new clean air! But the flipside of all this is that the plant is sucking in polluted carbon dioxide. And that pollution has gotta end up somewhere...
Toxins pulled in from air, water and soil can eventually be transferred to the leaves and fruit of the plant. All plants are affected differently: Tomatoes, for example, harbor toxins in their leaves and not in their fruit, so you're safe if you're only eating the tomatoes and not the leaves like a weirdo.
Trees planted along the streets of NYC are actually chosen for their high rate of filtration. High filtering trees help clean the air better, but they also have a strong tolerance for pollution so they can survive the tough NYC air conditions. To learn more about trees planted in NYC, check out the Million Trees Initiativeyou can request a tree to be planted on your block!
So, sorry Sarah... your New York City garden does not like the smog. But hey, at least you don't live in super-smoggy Los Angeles!
If anyone has a specific plant they're growing and would like to know how pollution is affecting it, comment below and I'll find the answer!
Have a question? Send it to Green Thumb Conundrums!


text:
TIMBER THEN AND NOW
In 1901 Australian forests gave up 1.1 million cubic metres of sawn or hewn timber. Nearly a century later, our forests produced about three and a half times this amount of sawn wood (3.6 million cubic metres in 1998-99); over the same period Australia's population grew five-fold. More use of timber substitutes such as steel, concrete and plastic can probably explain the disparity.
At the beginning of the 20th century, Queensland (31%), Western Australia (27%) and New South Wales (21%) produced the most timber, but by 1998-99 Victoria was cutting 25% and New South Wales 24%; Queensland dropped its share to 21%.
One hundred years ago, Australia was a net importer of timber and timber products. In 1901 Australia imported timber and timber products to the value of about $130m in today's terms, while exports then would be valued at about $60m now. In 1998-99 Australia was still a net importer, in broadly similar proportions; the value of exports of timber and timber products ($1.3b) was about 40% that of imports ($3.3b).
This page last updated 3 October 2007


run the SubProcessing library, which is a little version of the Processing Graphics library, written just for the TouchShield. From now on, any program written for the TouchShield Stealth will work on the Slide and vice versa, as well as being cross-compatible with any version of Processing you might have installed on your computer. This means I can prototype graphics on my PC, and then flash it down to the Arduino, and it'll look the same!
So the first step is to program the TouchShield. From December 18th, 2008 and onward, every TouchShield that gets mailed out will come pre-loaded with the latest version of the SubProcessing software as of that date, so if this is the first time you're using it, you can skip this step. Otherwise, continue to update the TouchShield's firmware:
Open up the TouchShield.txt file. It contains a small little program that puts the TouchShield into "canvas" mode. This means it sits there, waiting for display commands from the Arduino. That code looks like this:
void setup(void) {
void loop(void) {
Copy and paste this code into the Arduino IDE main window. Then, select the appropriate Serial port from the Tools->Serial Port menu. On my computer, it's serial port 18. Then, select the right board from the Tools->Board menu (either TouchShield Stealth or TouchShield Slide).
Click the compile (or play) button to compile the code. Now, press the reset button on the TouchShield. On the Stealth and the Slide, it's the button right next to the USB connector on the Arduino. This puts the TouchShield into reset mode, waiting for a program from the Arduino IDE.
Now press the program button, or "upload to I/O board". The LEDs will blink as the program is downloaded to the board, and then it'll finish. Done!
The final step is to load a program onto the Arduino.
Open the Arduino.txt file, and copy and paste this into a new program in the Arduino IDE window. Now, select "Arduino" from the Tools->Boards menu. Press play to compile, and then press the "upload to IO board" button to send the program to the Arduino. Done!
In about a second or two, the Arduino will reset, and will start sending commands to the TouchShield. The program is pretty simple, it just displays a little red square that you can drag around the screen. If you happen to have a Slide and a Stealth, you can hot-swap the two shields one after the other, and they'll both start displaying whatever the Arduino sends to them. In some cases, it might help to cycle the power on the Arduino and TouchShield, by reseting or re-plugging in the USB or Lithium Backpack.
If you have any questions, or want any help writing some code, or if anything at all doesn't work, or if you're just looking for someone to bounce ideas or talk to, just drop me an email!
Matt and Chris
(and Limor and Sheldon and Omar - thanks!)
Wednesday, December 17, 2008
A silly little Twilight Game
Although technicaaaaaallly...
if (choicedir) {
} else {
if (choicedir++ > 4) {
choicedir = 0;
xme += 2 * dirx2;
yme += 2 * diry2;
Tuesday, December 16, 2008
How would you change the Arduino?
Talk about Merry Christmas!
I just got back from meeting up with a former professor of mine here in New York City (the one who taught me signals and systems back in undergrad - ugh), and he told me that he's been using the Arduino in his class now for about a year. But, his students keep running out of I/O and memory for their projects, and assignments. Sooo... (drum roll) he was wondering if I'd be willing to make a few modifications for him (like finding a way to fit in more IO pins, for starters). But here's the best part yet... he's going to use part of his grant to help fund it all... Thanks!
Anyway, it's only fair to give back to the open source hardware community, so in the next few weeks, over my Christmas vacation, I'm going to be laying out a whole new board, hopefully in time for the first week or two of 2009, to usher in the new year with a new board. Chris, Justin, Mike, and I learned a lot about about the little details with AVR back when we first built the TouchShield, so hopefully that will all come in handy this time around.
Here's the catch. The whole thing, literally everything down to parts lists and schematics and you name it, is going to be Open Source. As in GNU and Creative Commons and Free Software Foundation Open Source. As in real, true, 100% USDA prime "open source hardware". In fact, everything I build and code will go straight to David Mellis from the Arduino team, and maybe it'll even make its way into future Arduino releases (fingers crossed).
Anyway, if you have any special requests, just let me know, and I'll try my best to include it in the design! :)
Thursday, December 11, 2008
RED = Angry
Blue = Hungry
Magenta = Tired
Black = Sleeping
White = Excited
Orange = Happy
Yellow = Worried
16,384 Red LEDs
16,384 Green LEDs
16,384 Blue LEDs
RGB Lamp Test from Mike Mc on Vimeo.
I rest my case.
Monday, December 8, 2008
Processing, meet Tom Duff
My girlfriend has turned me on to Taste Spotting, so I gave it whirl with chicken parmesan. The pictures are so enticing that I immediately started rifeling through the fridge, pushing leftover containers aside desperately searching for the ingredients. I knew they were in there somewhere, but it occurred to me that if there was a way to get rid of all those leftover containers faster, then I could get to my tasty meal that much sooner.
This reminded me of the pin register trick I wrote about in a previous post, but this trick starts to become really interesting when used with the concept of loop unrolling for hard-core code optimization.
Thanks to Tom Duff and his cleverly named "Duff Device", we can show this optimization technique in C and not assembler.
/* A Duff Device */
_TAG_ DUFF_DEVICE_8(aCount, aAction) \
do { \ int count_ = (aCount); \
switch (count_ & 7){\
case 0: do { aAction; \
case 7: aAction; \
case 6: aAction; \
case 5: aAction; \
case 4: aAction; \
case 3: aAction; \
case 2: aAction; \
case 1: aAction; \
} while (--times_ > 0); \ } \ } while (0)
This code listing takes a variable length loop action and unrolls it into batches of 8 sequential actions. What a clever exploit of the switch statement!
Thanks Tom, and now it's possible to enhance many of the low-level drawing routines of Matt's Sub-Processing library on the TouchShield to support screen painting at 60 frames per second. Not too shabby for an 8-bit device.
Ruby on Rails vs. Arduino Processing
Firstly, I'll just put it out there: yes, these two languages are meant to do two entirely, completely different things, and therefore cannot be directly compared with each other. But analogy and comparison are powerful (and fun) tools, so I'm going to use them today :)
I've gotten several emails over the past few weeks, asking if I could post the source code to the programs I've written in a zip file format, since blogspot tends to mess up the ampersands, greater, and less than signs in my Arduino sketches when I just copy and paste. Despite my attempts to try to fix each snippet I post, some inevitably mess up, so I decided to take a whirl at learning Ruby on Rails and made an open source "app store" (sort of like Apple, but 100% not really). All the app source code snippets I've posted ever are GNU licensed open source, and are now zipped into little packages over here. I'll try to do this from now on, too! Anyway, doing this made me learn a lot about the language underpinnings of Rails.
It was an odd juxtaposition: I had a chance to write Ruby code for the website, and in between functions I'd make some more progress on my Processing on Arduino app. Flipping back and forth between Rails and Arduino Processing was actually harder than I thought...
What is Ruby on Rails?
 - A script-based, runtime compiled, object oriented language called Ruby extended with a development framework called Rails
 - It's used for a lot of websites these days because of how easy it is to manage prototype, deploy, manage backend changes, etc.
 - It's lead users are all those spritely web coders running all over the place these days (and since everyone kept making such a big deal about it, I figured I'd try to learn it)
Arduino Processing
 - A narrow subset of Java (close to C and C++) called Processing compiled to bytecode to run on an embedded machine, within a development framework called "Arduino"
 - It's used for teaching electronics, creating art, making open gadgets and electronics
 - It's lead users are all those guys that post furiously over at (and a bunch of fellow Italian guys!)
So


text:
Have you ever wanted to use a super long word such as supercalifragilisticexpialidocious in an article on a web page, but didn't because it was too long, and you didn't want to mess up word wrapping? It would be supercalifragilisticexpialidocious to be able to use such long words and know that wrapping wasn't going to be an issue. The reality is that HTML provides a tag that lets you wrap words in the middle by telling the browser where the word can be broken!
The HTML wbr tag is used to indicate where a line break can occur. Note that the wbr tag doesn't mandate the break but is just an indicator that if a break is needed, then the location of the wbr tag is an acceptable place to break. This attribute is generally used in locations that would not otherwise be used for line breaks, such as in the middle of a word.
In the case of supercalifragilisticexpialidocious, the wbr tag could be added between every syllable, or simply in a couple of places in case breaks are needed. The following shows a bit of HTML code using the tag:
 The wbr tag is supercalifragilisticexpialidocious! The wbr tag is supercalifragilisticexpialidocious!
When you display this in your browser, you'll see that it shows the same sentence twice:
The magic, however, happens when you reduce the width of the browser window or view the page on a mobile device with a reduced width browser window. Then you'll see that the second line wraps much better than the first:
You might be thinking that this isn't that useful of a tag because, you are not likely to use the word supercalifragilisticexpialidocious or other extremely long words on your web pages. While this is true, there is a likelihood you'll use other strings of text that are long, such as a site URL.
The wbr tag is useful when listing long URLs on your web pages. The wbr tag can indicate locations to break the URL as well! While an URL will wrap at some punctuation and symbol locations, there are times you will want to control the breaking better. For example, not all browsers will wrap at a period in a ULR. For those that do, the URL will wrap after the period, which can make it look like the end of a sentence when a URL is embedded in text. To help avoid this, you can add the wbr tag before the periods in a URL. The following shows a snippet of code to help illustrate this:
 If you are looking for an article on IBM Bots, you should read "Using a Free Custom IBM Bot," which can be found at _URL_
Without the wbr tag, this wraps with a large gap:
By adding the wbr tag within the URL, you can get rid of the big gap as the following code shows:
 If you are looking for an article on IBM Bots, then you should read "Using a Free Custom IBM Bot", which can be found at _URL_
Using the same browser width, you can see the difference in wrapping:
The wbr tag is a simple tag and most people are unaware that it exists. If you find that you want things to wrap differently than the default, then the wbr tag is a perfect solution. Of course, like all code you use, you should verify that it is supported in all the browsers your user might employ. At the time of this writing, the major browsers (Chrome, Edge, Firefox, Opera, Safari) support the wbr tag. Internet Explorer is not guaranteed to support this.


This is the perfect pocket guide for nature and foraging enthusiasts keen to identify the most commonly found mushrooms and toadstools in Britain and northern Europe.
Authoritative text, beautiful photographs and detailed illustrations show the distinguishing features of each mushroom and toadstool, including details of size, habitat and when it can be found, whether it is edible or poisonous and most importantly, which similar species it can be confused with and why.
This new edition builds on the strengths of the unrivalled original, now expanded to include over 240 species of mushroom and toadstool.
Collins Gem Mushrooms


text:
My query SELECTs 1 row from table1, which has a number of fields plus one very long text field. It JOINs with a second table2, that may have many matching corresponding rows. I would like to be able to spread the long text field, from table1, out over multiple lines (the number determined by the matching rows in table2).
In the table above there is one row from Table1 where the key is table1_key = 'DU' and year = '2017'. Then there are four rows from Table2 with matching keys that include the programme_code and course_code. The field long_text_field, which I want to spread over multiple lines, comes from Table1.
Is it possible to extract a total row count for records that have been selected for output and still output the rows? Meaning that I want to see a count of 4 from the above and be able to work with this number in the displayed output. So that the result looks something like this:


Cheese Party Chinese Podcast Review
Name of Podcast: Cheese Party Podcast（知识派对pinyin: zhī shí pài duì）
What topics are covered? This is a podcast about knowledge. It has one themed podcast every week aimed at telling people useful knowledge.
Why is it good to listen to?
This is a podcast which has 3 podcasters: 何峰 (pinyin: hé fēng), a mathematician, 王宇 (pinyin: wáng yǔ), a international financial reporter, and 简丽丽 (pinyin: jiǎn lì lì), a psychologist. All of them speak very standard Mandarin without any obvious accent. The podcast is very conversational and has some jokes. The podcasters speak with the correct (academic) terminology all the time especially for the psychological episodes where you can hear many big medical terms.
To listen or subscribe to the podcast, you can search 知识派对 in iTunes or it can be listened to at:
How often are the podcasts updated? Programs are updated on a weekly basis, but released in several parts (so one podcast might have 4 parts labelled as 01, 02 etc.) but they follow on.
Length of each podcast: Each release of the podcast is about 10-20 minutes long.
Description of the podcast:
知识(meaning knowledge) and 芝士 (pinyin: zhī shì, meaning cheese) are homonymic in Chinese, and there comes the English name of this podcast: Cheese Party. In this podcast, people are not sharing cheese but knowledge. Three professional podcasters talk about things they know well, which listeners can learn and make use of in our lives.
In one podcast, psychological discussion comes from 简丽丽, a psychological consultant,and he describes several psychological illnesses with interesting facts about these illnesses and how to cope with these illnessese. There are many podcasts dedicated to different areas of knowledge. This podcast is a "study" podcast but the information is given in an accesible way with some humour.
知识派对 is a very good podcast to improve your knowledge.
Learn Chinese with Free Podcasts
Please Note


text:
History of Scotlandville High SchoolJanuary 3, 2013
By Peggy Carter.
This past school year, the students from a class at Scotlandville Magnet High School were assigned the task of writing the history of their school. They soon discovered that there was very little written information about their school. So Pamela Donaldson, a Library Technician who works with the Black Heritage Room at the East Baton Rouge Parish Scotlandville Branch Library, and Elva Jewel Carter (Peggy), the Reference Librarian at Scotlandville Branch Library, decided to research the subject so that we would have some written history about the school. We decided to create an InfoGuide on a useful topic.
We gathered information from a variety of sources: newspapers, newspaper archives, books, and people. It took a long time to get all the information and check for accuracy since the school began in 1952 and changed many times to fit the needs of the community. Scotlandville Magnet High School started as a junior high school, evolving into a junior/senior school, a senior high school, a magnet high school and finally a three-tier school with educational programs for magnet and community students as well as an engineering curriculum.
The final result of our research can be accessed through this The History of Scotlandville High School InfoGuide.


text:
Like other complex-looking expressions, the conditional expression
beginning-of-buffer can be disentangled by looking at it
as parts of a template, in this case, the template for an if-then-else
expression. In skeletal form, the expression looks like this:
(if (buffer-is-large divide-buffer-size-by-10-and-multiply-by-arg else-use-alternate-calculation
The true-or-false-test of this inner
if expression checks the
size of the buffer. The reason for this is that the old version 18
Emacs used numbers that are no bigger than eight million or so and in
the computation that followed, the programmer feared that Emacs might
try to use over-large numbers if the buffer were large. The term
'overflow', mentioned in the comment, means numbers that are over
large. More recent versions of Emacs use larger numbers, but this
code has not been touched, if only because people now look at buffers
that are far, far larger than ever before.
There are two cases: if the buffer is large and if it is not.


text:
Role modelling and its impact on the self-development of academics
Place of Publication
School of Business and Law
Academics in higher education are expected by their institutions to enhance their self-development. Role modelling is a means by which academics may achieve pertinent self-development goals. The focus of this chapter is to explore how role modelling can be used in this regard. Through a comprehensive literature review, the dynamics of role modelling in the context of higher education is explored. The author discusses the intricate processes involved in how role modelling can positively influence the personal and professional development of academics. Theoretical perspectives of professional identity construction through role modelling are examined. The author presents the position that academics will utilise role models for personal and professional development throughout their careers. In this context, the processes of role model selection are examined, and the theoretical underpinnings guiding the achievement of self-developmental goals are discussed. The author concludes that role modelling can be applied as an avenue to personal and professional development for academics. The author also proposes practical recommendations to facilitate role modelling interventions within the context of higher education and suggests avenues for future research.


Interfacial rheology, surface rheology
Interfacial or surface rheology is a branch of interfacial analysis which is concerned with the reaction of the interfacial tension (IFT) between two liquids respectively the surface tension (SFT) of a liquid to the deformation of an interface. It is relevant for studies on surfactant-stabilized systems such as emulsions and foams.
Viscoelastic behavior of interfaces
The SFT/IFT γ is the amount of work involved in increasing the area of a given interface. For pure liquids, this amount of work is proportional to the change of area independent from its extent or speed, so that the SFT/IFT is a substance constant.
However, if surfactants are present, the SFT/IFT depends on the concentration of molecules adsorbed at the interface (surface excess concentration Γ). When dilating the interface, the concentration with respect to the area decreases spontaneously so that the SFT/IFT increases. This process is referred to as the elastic behavior of an interface. It is reversible, i.e. the initial value of the SFT/IFT is reached when the original area of the interface is restored. For simplification, the following figure illustrates this process using an insoluble surfactant. The molecules are only at the interface but not in the bulk phase so that no equilibration of the concentration occurs.
If surfactant molecules are in the bulk phase, diffusion to the interface and adsorption thereat occurs. This process leads to a time-dependent, irreversible decrease of the SFT/IFT that is referred to as viscous behavior. Both elastic and viscous processes take place at the interface of a surfactant solution so that its reaction to dilatation is called viscoelastic.
Physical description
The viscoelastic reaction of an interface when stretching it is expressed by the complex viscoelastic modulus E*. It consists of the elastic modulus E' and the viscous modulus E'':
The viscoelastic modulus E is the absolute value of the complex viscoelastic modulus E*:
As a whole, E' and E'' together characterize the effect of the dilatation of an interface on the SFT/IFT, whereby E' stands for the impact of the changed area on the concentration change, while E'' describes the time-dependent change due to gradual concentration equilibration.
Emulsions and foams are systems with a large inner surface, which are created and stabilized with the help of surfactants. The viscoelastic modulus describes the increase in SFT/IFT when dilating an interface, i.e. the resistance of the interface against such deformation. E' can be interpreted as the elastic counterforce of the system, while E'' describes how fast the initial value of the SFT/IFT is restored after deformation. Various correlations between these quantities and different aspects of foam and emulsion stability have been found.
When displaying the moduli E*, E' and E'' in the complex number plane it becomes clear from the real part Re and the imaginary part Im that E' and E'' result from trigonometric functions.
During the measurement, the interface area of a pendant drop or a gas bubble, which is recorded with a camera, is changed periodically and exactly sinusidoidally by means of a dosing drive that operates with extreme precision. In doing this, the SFT/IFT is measured using drop shape analysis with a Young-Laplace fit to obtain its dependency from surface area A and time t. Due to the underlying sine function, the angle φ (see figure above) corresponds to the phase shift between the change in surface area and the SFT/IFT, which also displays a sine-curve progression.
Taking the relation between trigonometric functions and the exponential function into account, the interfacial rheological quantities E*, E', and E'' can be calculated (ω = angular frequency, A0 = mean value of the area, Δγ = amplitude of the SFT/IFT, ΔA = amplitude of the area).
 - S.C. Russev, N. Alexandrov, K.G. Marinova, K.D. Danov, N. D. Denkov, L. Lyutov, V. Vulchev, C. Bilke-Krause, "Instrument and methods for surface dilatational rheology measurements", Rev. Sci. Instr. 2008, 79, 104102.
 - F. Thomsen, "Stretching exercises for drops". KRÜSS Application Report AR 246.


Slim LG Smart Tv Tv Setup
Connecting the game console to the TV is a standard procedure, but sometimes users encounter certain difficulties. What is the reason for this? Not always used TV, monitor or laptop, equipped with the necessary connectors. Therefore, you have to buy adapters or use unpopular interfaces today. How to connect a PS4 to a TV? We will answer this question as much as possible, and also analyze the intricacies of connecting the console to a computer monitor and laptop.
PS4 Slim LG Smart Tv Tv Setup
How to connect a PS4 to a TV
The initial setup step is to connect the PS4 to the TV. In principle, there is nothing complicated about this. It is enough to follow the step by step instructions:
 1. Connect the HDMI cable to the TV with the appropriate connector located on the side or on the rear panel.
 2. Insert the second cable plug into the HDMI connector of the Sony PlayStation game console.
 3. Plug the power cord into the power outlet, and plug the other end into the set-top box connector.
 4. If you do not plan to connect to the Internet via Wi-Fi, then connect a network cable.
 5. Insert the small end of the microUSB cable to the DualShock joystick, and the second to the USB input of the game console.
To start the console, press the power button on the front of the console or hold down the PS4 key on the joystick. Setting up a PS4 and TV connection is only half the battle. For the console to work correctly, you need to connect it to the Internet. Now let's see how this is done.
Wired internet connection is considered more reliable. Therefore, if possible, then connect the game console to the Wi-Fi router using an Ethernet cable that must be inserted into the LAN connector.
What is an internet connection for? You can enter multi-user mode, as well as download games from the PlayStation Store. Of course, cable connection is more secure, but less practical. Therefore, users prefer a wireless connection. Instructions for setting up Wi-Fi connection on the game console:
 1. Open the top navigation bar. To do this, take the joystick, and then press the button "Up". Choose a section "Settings".
 2. Go to the tab "Net", and then select the option "Setting up an Internet connection". The user is offered two options. "LAN" and Wi-Fi. Choose the second one.
 3. A list of available networks will appear on the screen, select your home. Enter password. When prompted to use a proxy server, click on "Do not use".
 4. To test the correctness of the Internet connection, select the option "Check your internet connection".
When the connection is completed, register a new one or log in to an existing account. Choose a strong password, it is advisable to write it down so as not to forget in the future.
Connect PS4 to monitor
If you do not have a TV, then you can connect Sony Playstation to a computer monitor. We emphasize that setting up a connection will require much more effort and time than a standard connection to a TV. Many users believe that if you connect the game console to a PC, the image will immediately appear on the monitor screen. This is not true.
Computer cards that support the HDMI interface or any other ports for transmitting signals have only an output. This means that they are primarily intended for image transmission, not reception.
Using the Remote Play software, users can broadcast a picture from the game console to a computer monitor. However, if there is no access to the TV, then setting up the correct operation of all devices will still fail.
Almost all computer monitors are equipped with a DVI interface. You should save the adapter or HDMI-DVI wire to use it to connect the console. Do not forget that there are several versions of this interface: I, A, D. Before purchasing an adapter, check which connector the computer monitor is equipped with. Otherwise, serious connection problems may occur with the connection setup.
You can also use the VGA interface to connect a PC monitor and a PS4 console. Almost all computer displays are also equipped with it. There should not be a problem with the purchase of an HDMI-VGA adapter. If for some reason the adapter did not fit, then you can use the HDMI-VGA converter, equipped with an additional power system. It will convert the image to the desired stream. It is possible that you will have to slightly reduce the resolution. The cost of such a device varies in the range from 600 to 1200 rubles.
Visually, the converter resembles a small box in which there are three inputs:
 - Audio jack for headphones or speakers;
 - HDMI
 - VGA or DVI.
This option will definitely solve the problem. Converters without an additional power system will not allow you to configure synchronization with the PlayStation 4 game console. The audio jack in this unit is also not just like that. The fact is that the DVI and VGA interfaces are designed to transmit exclusively signal. Therefore, the adapter will also transmit sound.
Connect PS4 to laptop
Of course, all modern laptops are equipped with an HDMI interface, but users cannot connect the PS4 console in this way. The problem is that these connectors work to output information. Therefore, the logical question arises, how to connect the PlayStation 4 to a laptop? You need to get special adapters and an old RCA cable. To correctly configure the connection, follow a simple step-by-step instruction:
 1. We insert the plug into the special adapter, which is responsible for transmitting the signal, and then we connect the adapter to the laptop.
 2. Reset user console settings. To do this, press and hold the power button. As soon as the set-top box emits an appropriate sound signal, you can release the button.
 3. The white and red plugs of the RCA cable insert the audio jack using a special av-jack adapter.
Perhaps this is the easiest and most effective way to connect the game console to the laptop. Be sure to switch audio and modes directly on the console. To do this, open the PS4 settings, and then select the tulips icon.
If the TV does not have HDMI
Can I connect a PS4 to an old TV? Yes, make it real. The main problem is that older versions of TV technology were produced without HDMI. Therefore, to configure the connection, you will have to use special adapters to other connectors. The most common option is "Tulips".
Sony Playstation 4 is easily connected to the TV through an adapter for "tulips". The main disadvantage of this connection method is the low image quality. However, if there is no other way, then use this option. Connection is carried out according to the same principle as in the case of a laptop. Problems with synchronization should not arise. Just insert the adapters into the appropriate connectors. After turning on the TV, select the desired signal source using the remote control.


text:
Skip to Main Content
The precise control of Si oxidation is necessary for nano-fabrication of ultra-thin gate oxide layers at MOSFET??s in Si-based electronic devices. The translational kinetic energy (E,) of incident 0 2 molecules is a key to control surface reactions. Although the E, of incident 0 2 molecules has been known as an effective factor for both the passive and the active oxidation [ 1,2], the known data concerning the E, dependent oxidation are not enough to obtain the total understanding of incident energy roles. Therefore, the E, dependence of initial oxidation on the Si(OO1) surface has been investigated using a supersonic molecular beam (SSMB) technique and photoemission spectroscopy with high-resolution synchrotron radiation (SR) to make clear how the incident energy affected to the ultra-thin oxide layers formation. Although the saturated oxygen coverage on partially oxidized Si(O0 1) surfaces revealed two potential energy barriers, they have not been observed for clean Si(OO1) surfaces. The reason why such a deference appears is discussed on the basis of Si-2p photoemission spectra.


text:
Novgorod First Chronicle
||This article relies largely or entirely upon a single source. (September 2011)|
The Novgorod First Chronicle (Russian: Новгородская первая летопись) or The Chronicle of Novgorod, _PHONE_ is the most ancient extant chronicle of the Novgorod Republic. It reflects a tradition different from the Kievan Primary Chronicle. As was first demonstrated by Aleksey Shakhmatov, the later editions of the chronicle reflect the lost Primary Kievan Code (Начальный Киевский свод) of the late 11th century, which contained much valuable data suppressed in the later Primary Chronicle.
The earliest extant copy of the chronicle is the so-called Synod Scroll, dated to the second half of the 13th century, first printed in 1841 and currently preserved in the State Historical Museum. It is the earliest known manuscript of a major East Slavic chronicle, predating the Laurentian Codex of the Primary Chronicle by almost a century. In the 14th century, the Synod Scroll was continued by the monks of the Yuriev Monastery in Novgorod.
Other important copies of the Novgorod First Chronicle include the Academic Scroll (241 lists, 1444), Commission Scroll (320 lists, mid-15th century), Trinity Scroll (1563), and Tolstoy Scroll (208 lists, 1720s).


text:
In Can HCH epistemically dominate Ramanujan? Alex Zhu wrote:
If HCH is ascription universal, then it should be able to epistemically dominate an AI theorem-prover that reasons similarly to how Ramanujan reasoned. But I don't currently have any intuitions as to why explicit verbal breakdowns of reasoning should be able to replicate the intuitions that generated Ramanujan's results (or any style of reasoning employed by any mathematician since Ramanujan, for that matter).
And I answered:
My guess is that HCH has to reverse engineer the theorem prover, figure out how/why it works, and then reproduce the same kind of reasoning.
And then I followed up my own comment with:
It occurs to me that if the overseer understands everything that the ML model (that it's training) is doing, and the training is via some kind of local optimization algorithm like gradient descent, the overseer is essentially manually programming the ML model by gradually nudging it from some initial (e.g., random) point in configuration space.
No one answered my comments with either a confirmation or denial, as to whether these guesses of how to understand Universality / Informed Oversight and IDA are correct. I'm surfacing this question as a top-level post because if "Informed Oversight = reverse engineering" and "IDA = programming by nudging" are good analogies for understanding Informed Oversight and IDA, it seems to have pretty significant implications.
In particular it seems to imply that there's not much hope for IDA to be competitive with ML-in-general, because if IDA is analogous to a highly constrained method of "manual" programming, that seems unlikely to be competitive with less constrained methods of "manual" programming (i.e., AIs designing and programming more advanced AIs in more general ways, similar to how humans do most programming today), which itself is presumably not competitive with general (unconstrained-by-safety) ML (otherwise ML would not be the competitive benchmark).
If these are not good ways to understand IO and IDA, can someone please point out why?


text:
, such as multiple packet resends or more than expected reconnections.
Example collector destination topologies
You can use Packet Mirroring in various setups. The following examples show the location of collector destinations and their policies for different packet mirroring configurations, such as VPC Network Peering and Shared VPC.
Collector destination in the same network
The following example shows a packet mirroring configuration where the mirrored source and collector destination are in the same VPC network.
In the preceding diagram, the packet mirroring policy is configured to mirror
subnet-a and send mirrored traffic to the internal load balancer.
Google Cloud mirrors the traffic on existing and future instances in the
subnet. All traffic to and from the internet, on-premises hosts, or Google
services is mirrored.
Collector destination in a peer network
You can build a centralized collector model, where instances in different VPC networks send mirrored traffic to a central VPC network. That way, you don't need to build a destination collector in each network. The central VPC network hosts one or more collector destinations where all mirrored traffic is sent.
You can achieve this scenario by using VPC Network Peering. All VPC networks that include mirrored sources must be peered with the central network.
VPC networks can be in the same project or in different projects. For each peer VPC network, you must create a packet mirroring policy. In this case, the policy is in the project that contains the central network. The policy can also be in a project that has a network that is peered with the central network.
In the preceding diagram, the collector destination collects mirrored traffic
from subnets in two different networks. All resources (the source and
destination) must be in the same region. The setup in
network-a is similar to
the example where the mirrored source and collector destination are in the same
policy-1 is configured to collect
subnet-a and send it to
policy-2 is configured in
project-a but specifies
subnet-b as a mirrored
network-b are peered, the destination
collector can collect traffic from
The networks are in different projects and might have different owners. It's possible for either owner to create the packet mirroring policy if they have the right permissions:
If the owners of
project-acreate the packet mirroring policy, they must have the
compute.packetMirroringAdminrole on the network, subnet, or instances to mirror in
If the owners of
project-bcreate the packet mirroring policy, they must have
For more information about enabling private connectivity across two VPC networks, see VPC Network Peering.
In the following Shared VPC scenarios, the mirrored instances for the collector destination are all in the same Shared VPC network. Even though the resources are all in the same network, they can be in different projects, such as the host project or several different service projects. The following examples show where packet mirroring policies must be created and who can create them.
If both the mirrored sources and collector destination are in the same project, either in a host project or service project, the setup is similar to having everything in the same VPC network. The project owner can create all the resources and set the required permissions in that project.
For more information, see Shared VPC overiew.
Collector destination in service project
In the following example, the collector destination is in a service project that uses a subnet in the host project. In this case, the policy is also in the service project. The policy could also be in the host project.
In the preceding diagram, the service project contains the collector instances
that use the collector subnet in the Shared VPC network. The packet
mirroring policy was created in the service project and is configured to mirror
instances that have a network interface in
Service or host project users can create the packet mirroring policy. To do so,
users must have the
compute.packetMirroringUser role in the service project
where the collector destination is located. Users must also have the
compute.packetMirroringAdmin role on the mirrored sources.
Collector destination in host project
In the following example, the collector destination is in the host project and mirrored instances are in the service projects.
This example might apply to scenarios where developers deploy applications in service projects and use the Shared VPC network. They don't have to manage the networking infrastructure or Packet Mirroring. Instead, a centralized networking or security team, who have control over the host project and Shared VPC network, are responsible for provisioning packet mirroring policies.
In the preceding diagram, the packet mirroring policy is created in the host project, where the collector destination is located. The policy is configured to mirror instances in the mirrored subnet. VM instances in service projects can use the mirrored subnet, and their traffic is mirrored.
Service or host project users can create the packet mirroring policy. To do so,
users in the service project must have the
compute.packetMirroringUser role in
the host project. Users in the host project require the
compute.packetMirroringAdmin role for mirrored sources in the service
Multi-interface VM instances
You can include VM instances that have multiple network interfaces in a packet mirroring policy. Because a policy can mirror resources from a single network, you cannot create one policy to mirror traffic for all network interfaces of an instance. If you wanted to mirror other network interfaces, you must create a policy for each interface because each one is in a different network.


Termination of Assistance FAQs
Please click on a question below to view the answer. For answers to more frequently asked questions about the Housing Choice Voucher Program, please link to specific topics from the Housing Choice Voucher FAQs menu.
Can I lose my rental assistance?
There are a number of ways families can lose their rental assistance. Here is a partial list of typical reasons that are usually sufficient to cause HADC to stop rental assistance to a family:
 1. Not complying with the terms of the Housing Choice Voucher Program family obligations.
 2. If any member has been evicted from public housing
 3. Any member commits fraud, bribery or any other corrupt or criminal act in connection with any federal housing program
 4. Vacating the housing unit without proper notice
 5. Allowing unauthorized persons to live in the housing unit.
 6. Failing to report or under reporting changes in income or to provide information required by the Housing Authority for recertification of the family's continued eligibility for rental assistance.
 7. Owing money to any Public Housing Authority (PHA).
 8. If any family member residing in the unit is involved in drug-related or criminal activities.
 9. Serious or repeated lease violations.
What is considered drug related or violent criminal activity?
Drug related crime and violent crime are problems everywhere across the country. Federal regulations provide for termination of assistance to those who participate in these activities. Be sure that you and members of your family residing in your unit are not involved. Note that the regulations also state that a person does not have to be arrested or convicted in order for their assistance to terminate.


2 min read
Maximising Confluence cache effectiveness
Thu, 21 Aug 2014
Maximising Confluence cache effectiveness
Maximising Confluence cache effectiveness
Fine-tuning your cache management is often a trade-off between performance and memory usage. These hints and tips thing I wish I'd known when I started working with Confluence will show you how to achieve optimum efficiency.
The beauty of caches
Even in a simplified version of Confluence architecture, there are many stages between a user requesting access to a page and the page actually appearing in front of them. Maximising your Confluence cache effectiveness is a matter of understanding the separate levels of caching:
 1. the user accesses the webpage via a browser
 2. this request goes through the internet, firewall and reverse proxy and hits Confluence
 3. Confluence communicates with the database and storage media
 4. the information is passed back through the whole chain again and is displayed
This process can take ages particularly if you're loading a large amount of content. Caches are wonderful little components which allow the storage of data you've previously accessed in small reserves along the way, so that the next time you request it, your request doesn't have to travel through each stage.
Where are your caches?
There are three main points at which the responses to data requests can be cached:
 1. Your browser - browser caches are particularly useful for static content like CSS, Java Script and images
 2. The reverse proxy - once again, this saves Confluence from handling the workload of static content
 3. In Confluence itself - storing information in memory saves Confluence the laborious task of searching the database and file system for each request
Maximising caching potential at each of these levels can reduce your application workload tremendously, resulting in a serious performance boost.
Tuning your caches
Confluence provides your cache usage statistics with the Cache Statistics page within the admin user interface. Make sure you select the advanced display, as it provides a lot more information. The goal here is to increase the size of the correct caches, which you can do based on the following priorities (in order of importance). Look for caches that:
 1. are 100% used
 2. have a high number of hits and misses
 3. are not 100% effective
 4. are not too large
Once youve identified your target caches, you should increase their size. However, be careful here try to avoid large caches as they will drain your memory exceptionally fast. The database queries cache is a prime example of one which will run out of memory well before it's tuned by this definition.
Finally, aim to keep the size of the cache larger than the number of content objects e.g. attachments, content, comments, groups, spaces and users.
Did you find this post useful? Stay tuned in to our blog for more hints and tips.
For information on how Adaptavist can maximise your investment and performance with Atlassian applications, contact us to discuss your needs.
with the Adaptanews monthly email


Next: , Previous: Diversion support, Up: Programming in M4sugar
8.3.4 Conditional constructs
The following macros provide additional conditional constructs as convenience wrappers around m4_if.
— Macro: m4_bmatch (string, regex-1, value-1, [regex-2], [value-2],..., [default])
The string string is repeatedly compared against a series of regex arguments; if a match is found, the expansion is the corresponding value, otherwise, the macro moves on to the next regex. If no regex match, then the result is the optional default, or nothing.
— Macro: m4_bpatsubsts (string, regex-1, subst-1, [regex-2], [subst-2],...)
The string string is altered by regex-1 and subst-1, as if by:
 m4_bpatsubst([[string]], [regex], [subst])
The result of the substitution is then passed through the next set of regex and subst, and so forth. An empty subst implies deletion of any matched portions in the current string. Note that this macro over-quotes string; this behavior is intentional, so that the result of each step of the recursion remains as a quoted string. However, it means that anchors ('^' and '$' in the regex will line up with the extra quotations, and not the characters of the original string. The overquoting is removed after the final substitution.
— Macro: m4_case (string, value-1, if-value-1, [value-2], [if-value-2],..., [default])
Test string against multiple value possibilities, resulting in the first if-value for a match, or in the optional default. This is shorthand for:
 m4_if([string], [value-1], [if-value-1],
 [string], [value-2], [if-value-2],...,
— Macro: m4_cond (test-1, value-1, if-value-1, [test-2], [value-2], [if-value-2],..., [default])
This macro was introduced in Autoconf 2.62. Similar to m4_if, except that each test is expanded only when it is encountered. This is useful for short-circuiting expensive tests; while m4_if requires all its strings to be expanded up front before doing comparisons, m4_cond only expands a test when all earlier tests have failed.
For an example, these two sequences give the same result, but in the case where '$1' does not contain a backslash, the m4_cond version only expands m4_index once, instead of five times, for faster computation if this is a common case for '$1'. Notice that every third argument is unquoted for m4_if, and quoted for m4_cond:
 m4_if(m4_index([$1], [\]), [-1], [$2],
 m4_eval(m4_index([$1], [\\]) >= 0), [1], [$2],
 m4_eval(m4_index([$1], [\$]) >= 0), [1], [$2],
 m4_eval(m4_index([$1], [\']) >= 0), [1], [$3],
 m4_eval(m4_index([$1], [\"]) >= 0), [1], [$3],
 m4_cond([m4_index([$1], [\])], [-1], [$2],
 [m4_eval(m4_index([$1], [\\]) >= 0)], [1], [$2],
 [m4_eval(m4_index([$1], [\$]) >= 0)], [1], [$2],
 [m4_eval(m4_index([$1], [\']) >= 0)], [1], [$3],
 [m4_eval(m4_index([$1], [\"]) >= 0)], [1], [$3],
— Macro: m4_default (expr-1, expr-2)
— Macro: m4_default_quoted (expr-1, expr-2)
— Macro: m4_default_nblank (expr-1, [expr-2])
— Macro: m4_default_nblank_quoted (expr-1, [expr-2])
If expr-1 contains text, use it. Otherwise, select expr-2. m4_default expands the result, while m4_default_quoted does not. Useful for providing a fixed default if the expression that results in expr-1 would otherwise be empty. The difference between m4_default and m4_default_nblank is whether an argument consisting of just blanks (space, tab, newline) is significant. When using the expanding versions, note that an argument may contain text but still expand to an empty string.
 m4_define([active], [ACTIVE])dnl
 m4_define([empty], [])dnl
 m4_define([demo1], [m4_default([$1], [$2])])dnl
 m4_define([demo2], [m4_default_quoted([$1], [$2])])dnl
 m4_define([demo3], [m4_default_nblank([$1], [$2])])dnl
 m4_define([demo4], [m4_default_nblank_quoted([$1], [$2])])dnl
 demo1([active], [default])
 demo1([], [active])
 demo1([empty], [text])
 -demo1([ ], [active])-
 ⇒- -
 demo2([active], [default])
 demo2([], [active])
 demo2([empty], [text])
 -demo2([ ], [active])-
 ⇒- -
 demo3([active], [default])
 demo3([], [active])
 demo3([empty], [text])
 -demo3([ ], [active])-
 demo4([active], [default])
 demo4([], [active])
 demo4([empty], [text])
 -demo4([ ], [active])-
— Macro: m4_ifblank (cond, [if-blank], [if-text])
— Macro: m4_ifnblank (cond, [if-text], [if-blank])
If cond is empty or consists only of blanks (space, tab, newline), then expand if-blank; otherwise, expand if-text. Two variants exist, in order to make it easier to select the correct logical sense when using only two parameters. Note that this is more efficient than the equivalent behavior of:
 m4_ifval(m4_normalize([cond]), if-text, if-blank)
— Macro: m4_ifndef (macro, if-not-defined, [if-defined])
This is shorthand for:
 m4_ifdef([macro], [if-defined], [if-not-defined])
— Macro: m4_ifset (macro, [if-true], [if-false])
If macro is undefined, or is defined as the empty string, expand to if-false. Otherwise, expands to if-true. Similar to:
 m4_ifval(m4_defn([macro]), [if-true], [if-false])
except that it is not an error if macro is undefined.
— Macro: m4_ifval (cond, [if-true], [if-false])
Expands to if-true if cond is not empty, otherwise to if-false. This is shorthand for:
 m4_if([cond], [], [if-true], [if-false])
— Macro: m4_ifvaln (cond, [if-true], [if-false])
Similar to m4_ifval, except guarantee that a newline is present after any non-empty expansion. Often followed by dnl.
— Macro: m4_n (text)
Expand to text, and add a newline if text is not empty. Often followed by dnl.


text:
bed of coals forms. A cast iron bean pot (holds about eleven pounds of dried beans) is lowered into the pit, covered over with dirt and allowed to cook, usually overnight. Several bean pits could keep beans cooking at all times.
It is generally believed that the loggers learned to make bean hole beans form the Indians; others learned from the loggers. The tradition continued after the logging camps declined. Bean holes can be found not only at large community suppers, but also at summer vacation camps throughout Maine.
For more on Maine's bean hole beans visit our exhibits page.


text:
Differentiate, distinguish, compare and explain what is the main difference between Pteridophyta and Phanerogams.
Difference between Pteridophyta and Phanerogams
1. Pteridophyta have inconspicuous or less differentiated reproductive organs. Phanerogams have well developed reproductive organs.
2. Pteridophyta produce naked embryos called spores. Phanerogams produce seeds.
3. Ferns, Marsdea, Equisetum, etc. are examples of ptendophyta. Anus, Cycas, fir, etc. are examples of phanerogams.


text:
Eucalyptus deglupta is also known as the rainbow eucalyptus and one look at its color-streaked bark explains why. As the outside bark exfoliates, it exposes new, green bark beneath. As this bark ages, it changes to yellow, pink, orange, blue and brown, giving the trunk an ever-changing design of colors. Native to the Phillipines, E. deglupta thrives in a rain-forestlike environment with high annual rainfall and lots of humidity. The most important aspect when growing this tree is to never let the soil dry out. Grow Eucalyptus deglupta within zones 10 or 11 on the U.S. Department of Agriculture Plant Hardiness Zone Map, though in the U.S., it does best in Hawaii.
Choose a pot in which to germinate the Eucalyptus deglupta seed. It should have several holes in the bottom for drainage. Seeding flats are ideal if you plan on germinating more than one seed. Combine equal parts of sand and peat moss and moisten it well. Peat moss resists moisture when it is dry, so you may have to stir the mixture well to get it uniformly moist. Pour the mixture into the container, to within 1/2 inch of the rim.
Sowing the Seed
Eucalyptus deglupta seeds require light to germinate, so place the seed on the surface of the planting mix and don't cover it. Fill a spray bottle with tap water and adjust the nozzle to a fine mist. Mist the seeds and the surface of the planting mix. The seeds also require a bit of heat, so set a heat mat to 71 degrees Fahrenheit and place the pot on top of it.
For the first three days, the pot should remain in a lightly shaded area. On day four, move the pot into the sun for one hour then place it back in the shade. Over the course of the next week, gradually increase the amount of time the pot spends in the sun until it receives 50 percent sun. During this time, keep the soil moist by spraying it with the misting bottle. The Eucalyptus deglupta seed's germination period is erratic and may occur anytime between 14 and 90 days after sowing.
Care of the Seedling
Move the seedling into full sun all day when it has its third set of leaves. Continue to keep the soil moist. When the Eucalyptus deglupta reaches 10 to 12 inches in height, it is ready to be transplanted into the landscape. Harden off the seedling by reducing the amount of water given by half and gradually exposing it to increasing amounts of direct sun, over the course of two weeks.
- Propagate Texas Ebony Trees
- Grow Mangosteen From Seed
- Grow Eucalyptus Indoors
- Plant Mesquite Seeds
- Grow Tangelo Seeds
- Grow Florida Avocado from Seed
- Plant Hibiscus in Zone 4
- Grow Habanero Peppers From Seeds
- Root Eucalyptus Tree Cuttings
- Start a Lemon Tree From Seeds
- Directions for Planting Avocado Seeds
- Grow Ylang Ylang From Seed