text:
ACV vs ARR: Formulas, Tips, and Tricks for 2022
Revenue analytics is a crucial part of understanding how well your SaaS is doing. There are a ton of different metrics that you can use to measure your business's current situation. ACV and ARR are two of the most important ones, right after Monthly Recurring Revenue (MRR).
In this article, I will go into detail about these two metrics so that you have a better understanding of your revenue analytics.
What is ACV?
Annual Contract Value (ACV) takes the average value an ongoing customer brings to a business in a year. This metric is mainly used by SaaS businesses operating on an annual or multi-year subscription basis, though businesses that use monthly subscriptions and different plans can use the Annual Contract Value by projecting their monthly revenue to a year as well.
What is ARR?
Annual Recurring Revenue (ARR) is the annual version of the MRR. Put simply, ARR is MRR*12.
When should you use ACV?
Annual Contract Value is not often used as a metric to measure growth: it's used more as a means to measure customer success on a case-by-case basis. You could use ACV:
- To measure the success of your marketing team in terms of demand generation: if the ACV is high for a customer or for multiple customers, they are creating demand and getting a lot of people to sign contracts.
- To calculate the revenue brought by a single customer in order to understand the value they bring to your business,
- To compare the revenue generated by customers in different contracts more accurately.
Based on what you want to measure, you may include or exclude one-time contract charges. Excluding them may result in a better comparison between customers, but it may create a distorted image in terms of your long-term marketing success.
When should you use ARR?
Annual Recurring Revenue is the metric you should go to while measuring the yearly growth of your company. This metric is less focused on individual cases since it's just the sum of all types of recurring revenue in a year (as explained below in the calculations.) You can use ARR:
- To make future predictions and investments: you'll need to know how much revenue you're expecting in a year or in multiple years,
- Since ARR only takes into account revenue from subscriptions, and not one time purchases, it can be used to determine the success of a subscription model,
- Comparing the ARR of different years tells you about your different marketing decisions' impacts.
If your subscriptions have non-standard lengths, such as 8 months or 9 months and 30 days, your ARR may not give you a logical picture. You may need to adjust the calculations accordingly or use a similar SaaS marketing metric, MRR.
How do you calculate ACV?
Calculating Annual Contract Value is pretty easy. The equation is:
ACV = Total contract values / Total years in contract
Let's assume that two customers signed up to your company with different plans:
- Customer X chose a $420 per year plan for 2 years. One-time fee for this plan is $70.
- Customer Y chose a $200 per year plan for 2 years. One-time fee for this plan is $50.
PS. If you charge a one-time fee (for set-up or training), your ACV for the first year will be higher than the other years in a multi-year subscription plan.
Here's what your ACV will be when you look at both customers at the same time:
- ACV for the first year = ($420 + $70 + $200 + $50)/2 = $370
- ACV for the second year = ($420 + $200)/2 = $310
As you can see, the ACV for the first year is obviously higher than the second year because of the one-time fee for the transaction in the first year. You could also measure the ACV of X and Y separately, which would look like:
- ACV customer X = ($420 + $70)/2 = $245
- ACV for customer Y = ($200 + $50)/2 = $125
How do you calculate ARR?
Annual Recurring Revenue is the sum of the amount each customer pays you in a calendar year.
This is the equation for ARR:
ARR (annual recurring revenue) = Total annual revenue – Nonrecurring revenue
We can look at an example with three different customers with different subscription plans.
Customer A: Chose the plan to pay $1500/year for 1 year
Customer B: Chose the plan to pay $1200/year for 2 years
Customer C: Chose the plan to pay $1700/year for 3 years
In this scenario, ARR value will be:
Year 1: $1500 + $1200 + $1700 = $4400
Year 2: $1200 + $1700 = $2900
Year 3: $1700 = $1700
If you were to calculate ACV in this example, the result would be:
Year 1: ($1500 + $1200 + $1700)/3 = $1466.6
Year 2: ($1200 + $1700)/2 = $1450
Year 3: ($1700)/1 = $1700
ACV is the average of all subscription revenue. ARR is the sum of what each customer pays for the subscription plan in a year. They have similar points about functions but there are these little nuances.
Typical ACV for SaaS Businesses
It seems like there is no specific "Typical ACV value" or structure for SaaS businesses. There is a huge variation in subscription models, pricing, business to the customer versus business to business sales, and own calculations of the companies.
Research shows that values and requirements vary tremendously according to the scale of companies and the actions they take.
Let's look at a study of RJMetrics. This study indicated that the ACV value differs a lot between B2B and B2C. According to the research, the average ACV of B2C SaaS companies is $100, while for B2B it is $1,079.
Other revenue metrics that you should track
MRR measures the monthly recurring revenue a SaaS gets from subscriptions.
CAC (Customer Acquisition Costs)
CAC refers to the total amount you spend to obtain a new customer – including all the sales and marketing expenses that you pay to get those customers.
ACV is directly proportional to CAC.
A good CAC ratio for your company depends on the customer lifetime value of your business.
CAC and LTV (customer lifetime value) go together in this path:
Measures the cost to acquire a customer
LTV (Lifetime value)
It is a prediction of the aggregate contribution of an average customer to the company generally during the lifetime of the customer. The lifetime value of a customer.
But if you have more than one customer –hopefullyyou will be in a need to use two more metrics to benefit LTV completely in your analysis. They are Churn Rate and Average Revenue Per User (ARPU).
Churn rate refers to the number of customers who unsubscribed or stopped their payments for the subscription of your service. This cancellation information will keep you updated about the current situation of your SaaS company.
Example: If the number of subscribers was 1000 last year and lost 70, your churn rate is 7%.
ARPU(Average Revenue Per User / Unit)
Measures the overall revenue generated per user or unit. Total revenue of your business / the total number of customers you have in a given duration.
Example: If you have 1000 accounts in your company, and from 500 of them, you made $20 per year, and from the other 500 you made $30 per year, then your ARPU is $25 yearly.
Tools to track ARR
- Price: Has a free forever plan
- Capterra rating: 4.9/5
HockeyStack is an end-to-end analytics tool for SaaS companies. It unifies marketing, revenue, sales, and product data into one dashboard with no code so that you can understand what really drives revenue at your SaaS. It's completely no code, and it doesn't require any setup.
HockeyStack has one-click integrations with Stripe and Paddle to track ARR, MRR, and other revenue metrics. Moreover, you can integrate with HubSpot to uncover invaluable insights and answer questions, such as:
- What is the average LTV of a blog post?
- Which marketing channel brings the most engaged users?
- What is the demo close rate of my blog posts?
- What is the average churn rate of users who signed up for a blog post?
- What are the common sales objections of users who signed up from my ad campaigns, blog posts, or top-of-the-funnel content?
and many more.
- Price: Free
- Capterra Rating: 4.7/5
Profitwell provides you to have revenue automation products that automatically reduce cancellations, optimize pricing, and give you accurate, free revenue reporting. It provides absolutely accurate, real-time subscription reporting and analytics, incredibly detailed analytics for subscription-based businesses. From MasterClass and Zenefits to Shipt and Vice, over 20,000 recurring revenue companies depend on ProfitWell to track their businesses.
- Price: Free trial is available. Subscription plans start from $29/month
- Capterra Rating: 3.3/5
Baremetrics is a tool that provides metrics, forecasting, analytics, insights and engagement tools for teams using Stripe, Braintree, Chargify, Recurly, and more. With zero configuration it is able to give you important business metrics like M


Setting User IDs
User IDs should be set for each of your users. These should be unchanging and accessible when a user opens the app. A database ID or a hashed email address/username is usually a good reference to use. We strongly recommend providing this identifier as it will allow you to:
 - Track your users across devices and platforms, improving the quality of your behavioral and demographic data.
 - Import data about your users using our User Data API.
 - Target specific users with our Messaging API for both general and transactional messages.
If such an identifier is not available, Braze will assign a unique identifier to your users, but you will lack the capabilities above. You should avoid setting User IDs for users for whom you lack a unique identifier that is tied to them as an individual. Passing a device identifier offers no benefit versus the automatic anonymous user tracking Braze offers by default.
These User IDs should be private and not easily obtained (e.g. not a plain email address or username).
Assigning a User ID
You should make the following call as soon as the user is identified (generally after logging in) in order to set the user id:
1
[[Appboy sharedInstance] changeUser:@"YOUR_USER_ID_STRING"];
1
Appboy.sharedInstance()?.changeUser("YOUR_USER_ID")
Do not call changeUser() when a user logs out. changeUser() should only be called when the user logs into the application. Setting changeUser() to a static default value will associate ALL user activity with that default "user" until the user logs in again. Additionally, we recommend against changing the user ID when a user logs out, as it makes you unable to target the previously logged-in user with reengagement campaigns. If you anticipate multiple users on the same device, but only want to target one of them when your app is in a logged out state, we recommend separately keeping track of the user ID you want to target while logged out and switching back to that user ID as part of your app's logout process.
Implementation Example
changeUser is utilized in UserAttributesViewController.m file of the Stopwatch sample app.
Automatic Preservation of Anonymous User History
Identification Context Preservation Behavior
User has not been previously identified Anonymous history is merged with user profile upon identification
User has been previously identified in-app or via API Anonymous history is not merged with user profile upon identification
Additional Notes and Best Practices
Please note the following:
 - If your app is used by multiple people, you can assign each user a unique identifier to track them.
 - Once a user ID has been set, you cannot revert that user to an anonymous profile
 - Do Not change the user ID upon a user "log out".
 - Doing so separates the device from the user profile. You will be unable to target the previously logged out user with re-engagement messages. If you anticipate multiple users on the same device, but only want to target one of them when your app is in a logged out state, we recommend separately keeping track of the user ID you want to target while logged out and switching back to that user ID as part of your app's logout process. By default, only the last user that was logged in will receive push notifications from your app.
 - Switching from one identified user to another is a relatively costly operation.
 - When you request the user switch, the current session for the previous user is automatically closed and a new session is started. Furthermore, Braze will automatically make a data refresh request for the News Feed, slideup and other Braze resources for the new user.
 If you opt to use a hash of a unique identifier as your userID take care to ensure that you're normalizing the input to your hashing function. For example, if you're going to use a hash of an email address, ensure that you're stripping leading and trailing whitespace from the input, and taking localization problems into account.
Aliasing Users
An alias serves as an alternative unique user identifier. Use aliases to identify users along different dimensions than your core user ID:
 - Set a consistent identifier for analytics that will follow a given user both before and after they have logged in to a mobile app or website.
 - Add the identifiers used by a third party vendor to your Braze users in order to more easily reconcile your data externally.
Each alias consists of two parts: a name for the identifier itself, and a label indicating the type of alias. Users can have multiple aliases with different labels, but only one name per label.
1
 [[Appboy sharedInstance].user addAlias:ALIAS_NAME withLabel:ALIAS_LABEL];
1
Appboy.sharedInstance().user.addAlias(ALIAS_NAME, ALIAS_LABEL);
WAS THIS PAGE HELPFUL?
New Stuff!


Skip to content
RP_logo 01
You play a Rodent, an innocent woodland creature that happens upon a wooden plank protruding from the ground. Rodent soon finds out that this is no mere piece of wood as it is a sentient being that grants unlimited power to whoever has the self-confidence to use it.
However, as soon as Rodent chooses to wield Plank – and so become one of the galaxy's most powerful being – a secret organization, calling themselves the Knights of the Round, appears. Who is this mysterious group, and what do they want with Rodent and Plank?
Rodent and Plank is a run 'n gun shooter that borrows heavily from genre classics such as Gunstar Heroes, Earthworm Jim, and Metal Slug. You play as the titular Rodent, a small rat that gains incredible power when he unwittingly comes into contact with a sentient piece of cosmic driftwood. Not long after this chance meeting Rodent finds himself up against the mysterious Knights of the Round. Who are they? And what could they possibly want with Plank?
 1. Players can choose from one of four starting weapon types. Each weapon type can be combined with any other in order to create a massive arsenal of incredibly deadly weaponry.
 2. Each level takes on a life of its own: one minute you're platforming, and the next you're piloting a submarine while being chased by a laser wielding shark.
 3. All of the art in the game is drawn by hand which gives it a storybook quality (despite the fact that there's exploding teddy bears everywhere.)
 4. Rodent and Plank's music has a unique flair to it that we lovingly refer to as "techno-organic"; it's like Dave Wise had a baby with the techno Viking.
 5. Rodent and Plank is a difficult game, but like the games we've drawn inspiration from it's been finely tuned and balanced for maximum replay-ability.
Screen Shots
Contact the Team
Your Name
Your Email *
Subject *
Message *


Physical activity and tobacco: Let's join forces!
Two people running in winter
Share Click here for a print copy (4 pages, PDF).
By Angela Torry, BSHK, MSc, CSEP-CEP, Health Promotion Facilitator, Chronic Disease Prevention–Healthy Living, Alberta Health Services
Summary
Physical activity and healthy eating are often targeted as the key health behaviours in healthy living programming. Tobacco use is rarely discussed in physical activity programming. Find Your Stride is a new learn to walk/run program for individuals who use tobacco or have recently quit. This article provides some rationale and information about incorporating tobacco reduction promotion in healthy living programming.
Introduction
Most of us are aware that an unhealthy diet, physical inactivity and tobacco use are key, modifiable risk factors associated with the major chronic diseases (e.g., cardiovascular disease, cancer, chronic obstructive pulmonary disease, and type 2 diabetes). An integrated risk factor approach to health promotion has been proposed as an effective intervention strategy for reducing modifiable risk factors1. In the field of health promotion, physical activity and healthy eating are typically promoted together, while tobacco use is often on its own. However, there is a growing interest in changing this.
Programs that combine tobacco cessation and physical activity participation are relatively new. As such, researchers are just starting to explore this area2. This article will explore and provide an overview of:
 - tobacco use in Alberta,
 - why physical activity and tobacco reduction should be promoted together,
 - tobacco use, physical activity participation and stigma,
 - highlights of an Alberta pilot program: Find Your Stride - a walk/run program for people who use tobacco, and
 - what we can do as practitioners.
Tobacco Use in Alberta
In 2013, 16% of the population (514,000 Albertans) reported smoking, which is higher than the national average of 14.6% 3. In Alberta, smoking is higher among men (18.9%) than women (13.1%) 3.
Two thirds of people who currently smoke are seriously considering quitting in the next 6 months and 3 in 10 are considering quitting in the next month3. Personal health is the main reason people who smoke want to quit3. However, quitting is not easy. The body is physiologically addicted, making the withdrawal process very uncomfortable. Additionally, both emotional and psychological triggers can encourage a person to continue smoking.
Why Physical Activity and Tobacco Reduction Should be Promoted Together
There is growing evidence that physical activity can play a beneficial role for those who use tobacco and for those who wish to quit.
Physical activity can be a harm-reduction strategy.
A person, who uses tobacco and participates in regular physical activity, has a decreased risk of premature death and disease (including cancer) compared to a tobacco user who is not physically active4. It is well known that physical activity can improve cardiovascular, pulmonary and immune functions5. These benefits may partially counteract the negative effects of tobacco use in some individuals6.
Moderate levels of physical activity can reduce cravings and other withdrawal symptoms.
Changes in the body during and after physical activity can help control and manage nicotine cravings2, 6. This in turn can help support a person when they quit tobacco.
Physical activity may help with managing weight gain.
Many tobacco users are concerned about weight gain associated with tobacco cessation7. Weight gain often occurs during tobacco cessation and is typically due to dietary changes, diminished metabolism, decreased physical activity and changes with how the body stores lipids8. Regular and ongoing moderate to vigorous intensity physical activity can help limit weight gain associated with smoking cessation.
Tobacco Use, Physical Activity Participation and Stigma
Physical activity levels in Canada are poor, with only 15% of Canadians engaging in enough physical activity to receive health benefits9. It is speculated that physical activity levels are likely even lower in subsamples of Canadians who use tobacco10.
However, it may not be easy for tobacco users to become active. Anti-tobacco campaigns have de-normalized tobacco and have made the behaviour unappealing. Though this may discourage tobacco use, they have also led to stigmatization of individuals who do use tobacco11. Those who do use tobacco may have lower self-esteem, feel judged and feel social stigma, especially at places where they may not feel welcome12. Recreation centres, fitness classes, and sport or activity clubs may not be aware of the social stigma tobacco users experience. Therefore, it is important for this issue to be addressed.
Find Your Stride - a learn to walk/run program for people who use tobacco
In the fall of 2015, Alberta Health Services piloted Find Your Stride, an 8-week physical activity program that targets individuals who use tobacco or who have recently quit.
The goals of Find Your Stride are to:
 - help individuals develop confidence and skills to become physically active, and
 - become tobacco-free.
The Find Your Stride program is a non-traditional cessation program. Participants are provided with support to quit or reduce their tobacco-use throughout the program, although there is no expectation or requirement that participants quit. This approach created a welcoming, non-judgmental environment.
Find Your Stride was piloted in partnership with local health promotion departments, Primary Care Networks and recreation facilities. Evaluations will inform the direction and changes to the program. In spring 2016, Find Your Stride will be formally launched, whereby practitioners can access materials and support to deliver the program in their community.
Recommendations: What can we do?
Invite tobacco reduction to the health promotion table in physical activity and healthy eating initiatives.
 - Ensure local physical activity opportunities are welcoming and accepting to those who use tobacco. Allow those who use tobacco to discuss their struggles with the addiction, without judgment, and help create a welcoming environment.
 - When providing education on physical activity, consider including the benefits of tobacco reduction. You never know who may be using tobacco.
 - Get comfortable talking about tobacco by engaging in the training opportunities offered through Alberta Quits (see links below).
 - Seek out and partner with a local tobacco reduction expert. They are often found through your local public health office or through Alberta Quits.
Tobacco reduction programs can also consider integrating physical activity.
 - Educate participants on the benefits of physical activity as a coping strategy to those attempting to quit or reduce their tobacco use.
 - If programming offers counselling, consider walking or other forms of physical activity as part of your sessions.
 - Find and partner with physical activity experts, who may be able to support your program. You can find them in local recreation or fitness centres, Primary Care Networks or local health promotion departments.
Finally, you can consider offering a program that promotes physical activity and also addresses tobacco reduction, such as Find Your Stride. Additionally, familiarize yourself with tobacco reduction resources and training available through Alberta Health Services.
By working together, physical activity and tobacco reduction practitioners and programs can help more Albertans see health benefits by becoming physically active and tobacco-free.
About the Author
Angela Torry works on the Chronic Disease Prevention team, within Alberta Health Services. Her current role focuses on the promotion of physical activity and reduction of sedentary behaviour across Alberta. She is currently project lead for Find Your Stride pilot program and can be reached at [email protected]
Useful Links
References
 1. World Health Organization [Internet]. Switzerland: World Health Organization; 2015. Integrated chronic disease prevention and control; 2015 [cited 26 November 2015]; [7 screens]. Available from: _URL_
 2. Ussher M, Taylor A, Faulkner G. Exercise interventions for smoking cessation. Cochrane Database of Systematic Reviews. 2014;1:CD002295.
 3. Reid JL, Hammond D, Rynard VL, Burkhalter R. Tobacco use in Canada: patterns and trends. 2015 ed. Waterloo, ON: Propel Centre for Population Health Impact, University of Waterloo
 4. deRuiter W, Faulkner G. Tobacco harm reduction strategies: the case for physical activity. Nicotine & Tobacco Research. 2006;8(2):157-168.
 5. Warburton DER, Nicol CW, Bredin SSD. Health benefits of physical activity: the evidence. Can Med Assoc J. 2006;174:801-809.
 6. Roberts V, Maddison R, Simpson C, Bullen C, Prapavessis H. The acute effects of exercise on cigarette cravings, withdrawal symptoms, affect, and smoking behaviour: systematic review update and meta-analysis. Psychopharmacology. 2012;222(1):1-15.
 7. Levine M, Bush T, Magnusson B, Cheng Y, Chen X. Smoking-related weight concerns and obesity: differences among normal weight, overweight, and obese smokers using a telephone tobacco quitline. Nicotine & Tobacco Research. 2012;15(6):_PHONE_.
 8. Filozof C, Fernadez Pinilla MC & Fernandex-Cruz A. Smoking cessation and weight gain. Obesity Reviews. 2004; 5(2):95-103.
 9. Colley RC, Garriguet D, Janssen I, Craig CL, Clarke J. & Tremblay, M. Physical activity of Canadian adults: accelerometer results from the 2007 to 2009 Canadian health measures survey. Health Reports. 2011;22(1):7-14.
 10. Azagba S & Asbridge M. Nicotine dependence matters: Examining longitudinal association between smoking and physical activity among Canadian adults. Preventive Medicine. 2013;57(5).
 11. Bayer R, Stuber J. Tobacco control, stigma, and public health: rethinking the relations. Am J Public Health. 2006;96(1):47-50.
 12. McCool


With the average daily U.S. commute at about 25 minutes, many workers are spending at least an hour traveling each day to and from work. For some densely populated cities, such as Chicago or New York, this average is 30 to 35 minutes, sometimes more.
Then, there are workers who are considered "extreme commuters," who travel more than 90 minutes each way to their jobs each day (as defined by the U.S. Census Bureau). That's at least three hours spent in the car, on the bus, or otherwise, traveling every day to work.
While you might be eager at the chance to jump at any job opportunityno matter the commutethere are important things to consider before taking a job with a long commute. Here are some questions you may want to ask yourself:
1. Can you afford the costs? If you plan to commute with your personal car, the costs can be killer. Gas, car repairs, regular car maintenance, and public transportation costs are just some of the costs you might incur on your daily commute. Not to mention adding to pollution and increasing your health risks for things such as high blood pressure and musculoskeletal disorders.
2. Is the job really worth it? Sure, you might be getting paid more money than if you accepted a job in your local area, but does the increased salary really make up for the other things you'll need to worry about? Commuting costs, lost time, and more stress are just a few to consider.
3. Can you handle it? Will the trade-off ultimately be worth it? There are a lot of stories of workers taking on long commutes for what they think are good reasons, only to regret their decision in the end.
4. Will it eliminate a lot of your free time? Do you enjoy spending time off with family and friends? Do you like going to the movies during the week or enjoy helping your kids with homework? Think about how much free time accepting a job with a long commute might eliminate, and consider if you can accept not having as much time for things you enjoy.
What do you think? Would you accept a great job with a long commute? Have you had one before? Share your thoughts in the comments below.


text:
Skip to Main Content
This paper describes image processing methods for automatic spotted microarray image analysis. Automatic gridding is important to achieve constant data quality and is, therefore, especially interesting for large-scale experiments as well as for integration of microarray expression data from different sources. We propose a Markov random field (MRF) based approach to high-level grid segmentation, which is robust to common problems encountered with array images and does not require calibration. We also propose an active contour method for single-spot segmentation. Active contour models describe objects in images by properties of their boundaries. Both MRFs and active contour models have been used in various other computer vision applications. The traditional active contour model must be generalized for successful application to microarray spot segmentation. Our active contour model is employed for spot detection in the MRF score functions as well as for spot signal segmentation in quantitative array image analysis. An evaluation using several image series from different sources shows the robustness of our methods.

source: m-a-p/FineFineWeb


ultDir
ExeDefaultDir As String
(Relevant only when running on a Microsoft Windows operating system.) Specifies the default unzip directory path to appear in the user-interface dialog box when the Windows-based self-extracting EXE is run.
top
ExeFinishNotifier
ExeFinishNotifier As Long
(Relevant only when running on a Microsoft Windows operating system.) If set to 1, a "Finished" dialog box is displayed when the self-extracting EXE is finished extracting. The caption, title, and button text of the finish notifier dialog may be customized by calling SetExeConfigParam. The default value is 0.
top
ExeIconFile
ExeIconFile As String
(Relevant only when running on a Microsoft Windows operating system.) Applies to creating self-extracting EXEs. This property can be set to a pre-existing icon filename (.ico) that will be embedded within the to-be-created EXE and set as its default icon.
Note: This property is only possible for 32-bit applications. (Meaning that the application that is creating the self-extracting EXE must be a 32-bit application if an ExeIconFile is to be used.)
top
ExeNoInterface
ExeNoInterface As Long
(Relevant only when running on a Microsoft Windows operating system.) Applies to creating Windows-based self-extracting EXEs. When set to 1, the to-be-created EXE will run without a user-interface. The default value is 0.
Note: The ExeSilentProgress property needs to be set to 1 for the extract to be truly silent.
Important: If the AutoTemp property = 1 and there is no AutoRun EXE, and there is no ExeUnzipDir set, then the self-extracting EXE will always display a dialog to get the unzip directory. The reason is that it makes no sense to silently unzip to an auto-selected (and unknown) temp directory without anything happening afterwards.
Important: If the self-extracting EXE is encrypted, a password dialog will be displayed. The password dialog may be suppressed if the password is provided on the command line via the -pwd command-line option.
top
ExeSilentProgress
ExeSilentProgress As Long
(Relevant only when running on a Microsoft Windows operating system.) Determines whether a progress dialog is displayed when the self-extracting EXE is run. If ExeNoInterface = 0 (i.e. there is a main dialog with the ability to select the unzip directory), then the progress dialog is (by default) shown as a progress bar within the main dialog -- and this property has no effect. If ExeNoInterface = 1, then a progress-only dialog is displayed if ExeSilentProgress = 0. The default value of ExeSilentProgress is 1.
top
ExeTitle
ExeTitle As String
(Relevant only when running on a Microsoft Windows operating system.) Applies to creating Windows-based self-extracting EXEs. Sets the title of the main user-interface dialog that appears when the self-extracting EXE runs.
top
ExeUnzipCaption
ExeUnzipCaption As String
(Relevant only when running on a Microsoft Windows operating system.) Applies to creating MS Windows-based self-extracting EXEs. Sets the unzipping caption of the main user-interface dialog that appears when the self-extracting EXE runs.
top
ExeUnzipDir
ExeUnzipDir As String
(Relevant only when running on a Microsoft Windows operating system.) Applies to creating MS Windows self-extracting EXEs. Stores a pre-defined unzip directory within the self-extracting EXE so that it automatically unzips to this directory without user-intervention.
Environment variables may be included if surrounded by percent characters. For example: %TEMP%. Environment variables are expanded (i.e. resolved) when the self-extracting EXE runs.
Note: UNC paths, such as \\servername\path, are not supported.
Note: To create a self-extracting EXE with no user-interaction, set the following properties to these values:
ExeSilentProgress = 0

ExeNoInterface = 1

ExeFinishNotifier = 0
top
ExeWaitForSetup
ExeWaitForSetup As Long
(Relevant only when running on a Microsoft Windows operating system.) If 1, the self-extracting EXE will wait for the AutoRun EXE to complete before it exits. If 0, the self-extracting EXE dialog (or process if running silently with no user-interface), is allowed to exit prior to the completion of the AutoRun EXE. The default value is 1.
top
ExeXmlConfig
ExeXmlConfig As String
(Relevant only when running on a Microsoft Windows operating system.) Allows for an XML config document to be used to specify all possible options for self-extracting EXEs. This property is a string containing the XML config document.
The XML should have this format:
<SfxConfig>
 <ErrPwdTitle>Title for incorrect password dialog</ErrPwdTitle>
 <ErrPwdCaption>Caption for incorrect password dialog</ErrPwdCaption>
 <FinOkBtn>Text on finish notifier button</FinOkBtn>
 <PwdOkBtn>Text on password challenge dialog's "OK" button.</PwdOkBtn>
 <PwdCancelBtn>Text on password challenge dialog's Cancel button.</PwdCancelBtn>
 <ErrInvalidPassword>Incorrect password error message.</ErrInvalidPassword>
 <MainUnzipBtn>Text on main dialog's unzip button</MainUnzipBtn>
 <MainCloseBtn>Text on main dialog's quit/exit button</MainCloseBtn>
 <MainBrowseBtn>Text on main dialog's browse-for-directory button.</MainBrowseBtn>
 <MainUnzipLabel>Caption displayed in main dialog.</MainUnzipLabel>
 <AutoTemp>"1|0 (Maps to the AutoTemp property)"</AutoTemp>
 <Cleanup>"1|0 (Deletes extracted files after the SetupExe is run.)"</Cleanup>
 <Debug>"1|0 (If 1, the EXE will not extract any files.)"</Debug>
 <Verbose>"1|0 (If 1, then verbose information is sent to the log.)"</Verbose>
 <ShowFin>"1|0" Maps to ExeFinishNotifier property.</ShowFin>
 <ShowMain>"1|0" Maps to ExeNoInterface property.</ShowMain>
 <ShowProgress>"1|0" Maps to ExeSilentProgress property.</ShowProgress>
 <WaitForSetup>"1|0" Maps to ExeWaitForSetup property.</WaitForSetup>
 <Encryption>"1|0" 1=Yes, 0=No</Encryption>
 <KeyLength>128|192|256</KeyLength>
 <SetupExe>EXE to run after extracting. (Maps to AutoRun property)</SetupExe>
 <UnzipDir>Pre-defined unzip directory. (Maps to ExeUnzipDir property,
 UNC paths, such as \\servername\path, are not supported.)>
 <DefaultDir>Default unzip directory to appear in the main dialog.
 (Maps to ExeDefaultDir property)</DefaultDir>
 <IconFile>Icon file to be used (Maps to ExeIconFile property)</IconFile>
 <Url>Maps to ExeSourceUrl property.</Url>
 <MainTitle>Maps to ExeTitle property.</MainTitle>
 <MainCaption>Maps to ExeUnzipCaption property.</MainCaption>
 <FinTitle>Title for the finish notifier dialog.</FinTitle>
 <FinCaption>Caption for the finish notifier dialog.</FinTitle>
 <ProgressTitle>Title for the progress dialog.</ProgressTitle>
 <ProgressCaption>Caption for the progress dialog.</ProgressCaption>
 <PwTitle>Title for the password challenge dialog.</PwTitle>
 <PwCaption>Caption for the password challenge dialog.</PwCaption>
</SfxConfig>
A self-extracting EXE can be run from the command line with the "-log {logFilePath}" option to create a log with information for debugging.
top
FileCo


Main Content
A People So Bold: the Justice UU University Track
Justice and Congregational Mission
 - How does our faith hold brokenness, injustice, suffering?
 - How do we develop prophetic voice?
 - How do we create prophetic congregations?
 - How do we mend a broken world?
Congregations which thrive focus not only on serving their members, but understand that serving the larger world is central to their mission. The Justice Track provided tools so that justice work is focused, effective and relevant to the whole congregation and the wider community.
 - Rev. Meg Riley, Director, Advocacy and Witness, Unitarian Universalist Association
 - Rev. Louise Green, Minister for Social Justice, All Souls in Washington, DC
Dean Biographies
Presenter Biographies
Event Reports
Share, Print, or Explore
For more information contact


text:
ANNOUNCING OUR LATEST WORKSHOPS AND MNEMONIC ARTS CLASSES
The Orality Centre is pleased to announce our latest day of workshops teaching participants the technique of constructing their own Memory Palaces. Followed by a separate workshop in the afternoon focused on creating and using Memory Boards.
Our workshops on Memory Palaces have been the most popular workshops so far, and the basic skills taught underpin all known memory techniques.
The memory palace consists of a sequence of locations in which information is stored by linking it to the physical properties of the location. It is the single most effective memory system known, used by all indigenous cultures (such as Australian Aboriginal songlines and Native American pilgrimage trails). They are best known from the orators of the ancient Greeks from Homer to Cicero. All contemporary memory champions use this method.
Paul Allen will teach the method using the example of the countries of the world in population order. The workshop will then adjust to working with participants to encode information of their choice to a unique memory palace of their own. Participants will need to bring their information with them.
The cost of this single workshop is $60. Light refreshments will be supplied.
Memory boards are incredibly effective portable devices, found in various forms right across indigenous cultures, from the songboards and birchbark scrolls of Native Americans to the tjuringa of Australian Aboriginal elders. We will model our memory boards on the well-documented West African lukasa of the Luba people. In its simplest form, the lukasa consists of beads and shells attached to a piece of wood, just the right size to hold comfortably – which we will call a TOC-lukasa. A personal TOC-lukasa is a gorgeous object which is hugely practical as well.
Alice Steel will instruct participants in how to encode information of their choosing and design their memory boards accordingly. Please bring information for any topic with you. We will also have examples of suitable information on offer.
This single workshop costs $65 and includes all materials needed in the creation of your own TOC-lukasa. Light refreshments will be supplied.
The Mnemonic Arts
The Orality Centre is also pleased to announce the first of our newly developed classes in the Mnemonic Arts. These classes, which run over 10 weeks in second term, are designed specifically for Primary or Secondary school children. Each particular set of classes will be directed at the appropriate level of your child's learning and their particular subject of interest, using the Arts as the fundamental memory tool.
For further enquiries, bookings and enrollments please email us at _EMAIL_ with your name, contact details and the particular class or workshop you are interested in attending.
Alternatively you can call Paul Allen on 0404 127 038 or Alice Steel on 0401 441 292


text:
In This Section:
Some information in this chapter applies only to block storage databases and is not relevant to aggregate storage databases.
To create an application and database:
See Creating a Database.
An Essbase application is a management structure that contains one or more Essbase databases and related files. Essbase applications and databases reside on an Essbase Server. The server computer can store multiple applications.
An Essbase database is a data repository that contains a multidimensional data storage array. A multidimensional database supports multiple views of data so that users can analyze the data and make meaningful business decisions. See Understanding Multidimensional Databases and Storage Allocation.
Files that are related to databases are called artifacts (or objects). Database artifacts perform actions against one or more Essbase databases, such as defining calculations or reporting against data. By default, artifacts are stored in their associated database folder on the Essbase Server, and can also be saved to a client computer or to other available network directories. You cannot, however, load data or calculate data on a client computer.
Some of these artifacts are optional, such as calculation scripts and LROs. See Application and Database File Types.
Database outlines define the structure of a multidimensional database, including all the dimensions, members, aliases, properties, types, consolidations, and mathematical relationships. The structure defined in the outline determines how data is stored in the database.
When a database is created, Essbase creates an outline for that database automatically. The outline has the same name as the database (dbname.otl). For example, when the Basic database is created within the Sample application, an outline is created in the following directory:
An Essbase database contains no data when it is created. Data load rules files are sets of operations that Essbase performs on data from an external data source file as the data is loaded, or copied, into the Essbase database. Dimension build rules files create or modify the dimensions and members in an outline dynamically based on data in an external data source. Rules files are typically associated with a particular database, but you can define rules for use with multiple databases. One rules file can be used for both data loads and dimension builds. Rules files have a.rul extension.
Calculation scripts are text files that contain sets of instructions telling Essbase how to calculate data in the database. Calculation scripts perform calculations different from the consolidations and mathematical operations that are defined in the database outline. Because calculation scripts perform specific mathematical operations on members, they are typically associated with a particular database. You can, however, define a calculation script for use with multiple databases. Calculation scripts files have a.csc extension.
Report scripts are text files that contain data retrieval, formatting, and output instructions to create a report from the database. Report scripts are typically associated with a particular database, but you can define a report script for use with multiple databases. Report scripts have a.rep extension.
Essbase provides a comprehensive system for managing access to applications, databases, and other artifacts. Each application and database contains its own security definitions that restrict user access.
Within Spreadsheet Add-in, users can create and save queries using Query Designer (EQD). Users with access to the query can access it later. Query files created using Query Designer have a.eqd extension.
The triggers feature enables efficient monitoring of data changes in a database. If data breaks rules that you specify in a trigger, Essbase logs relevant information in a file or, for some triggers, sends an e-mail alert; for example, to notify the sales manager if, in the Western region, sales for a month fall below sales for the equivalent month in the previous year.
When you create an application on the Essbase Server, Essbase creates a subdirectory for the application on the Essbase Server in the ARBORPATH/app directory. The new subdirectory has the same name as the application; for example, ARBORPATH/app/app1. In Administration Services Console, applications and databases are displayed in a tree structure in Enterprise View.
Before naming the application, see Naming Restrictions for Applications and Databases.
You can also create an application that is a copy of an existing application. See Copying or Migrating Applications.
When you create a database, Essbase creates a subdirectory for the database within the application directory. The new subdirectory has the same name as the database; for example, ARBORPATH/app/app1/dbname1. In Administration Services Console, applications and databases are displayed in a tree structure in Enterprise View.
You can create normal databases or currency databases. See Designing and Building Currency Conversion Applications.
Before naming the database, see Naming Restrictions for Applications and Databases.
To create a database, use a tool:
Except for databases requiring use of the Currency Conversion option, creating one database per application is recommended.
A database note can provide useful information when you need to broadcast messages to users about the status of a database, deadlines for updates, and so on. Users can view database notes in Spreadsheet Add-in.
For example, many reports depend on reporting periods; if you generate a report based on the current month, you must update the report script manually every month. With a substitution variable, such as CurMnth, set on the server, you can change the assigned value each month to the appropriate time period. When you use the variable name in a report script, the information is dynamically updated when you run the final report.
See Using MDX Formulas.
See these Oracle Essbase Administration Services Online Help topics: "Setting Headers in the Rules File" and "Mapping Field Names."
See Oracle Essbase SQL Interface Guide.
See Oracle Essbase SQL Interface Guide.
See the Oracle Essbase Spreadsheet Add-in User's Guide.
The substitution variable name must comprise alphanumeric characters or underscores ( _ ) and cannot exceed the limit specified in Limits.
The substitution variable name cannot include nonalphanumeric characters, such as hyphens (-), asterisks (*), and slashes (/). Do not use spaces, punctuation marks, or brackets ([ ]) in substitution variable names used in MDX.
If substitution variables with the same name exist at server, application, and database levels, the order of precedence for the variables: a database-level substitution variable supersedes an application-level variable, which supersedes a server-level variable.
The substitution variable value may contain any character except a leading ampersand (&). The substitution variable value cannot exceed the limit specified in Limits.
To set a substitution variable value to a duplicate member name, use the qualified member name enclosed in double quotation marks; for example, a value for &Period could be ".[Qtr1]".
If a substitution variable value is a member name that begins with a numeral or contains spaces or any of the special characters listed in Naming Restrictions in Calculation Scripts, Report Scripts, Formulas, Filters, and Substitution and Environment Variable Values, different rules apply for how you enter the variable:
If it is not used in MDX statements, enclose a substitution variable value in quotation marks; for example, if the variable name is Month, and its corresponding value is 01 (corresponding to January), place quotation marks around 01 ("01"). Substitution variables usually are used with block storage databases; they are not used in MDX statements.
If a substitution variable value is numeric or a member name starting with a numeral or containing the special characters referred to above is to be used both in MDX and non-MDX situations, create two substitution variables, one without the value enclosed in quotation marks and one with the value in quotation marks.
You can set substitution variables on the Essbase Server at the server, application, or database level. Before setting a substitution variable, see Rules for Setting Substitution Variable Names and Values.
To set a substitution variable, use a tool:
To ensure that a new substitution variable value is available in formulas, partition definitions, and security filters, stop and restart the application. All other uses of substitution variables are dynamically resolved when used.
To delete a substitution variable, use a tool:
You can modify or update existing substitution variables. Before updating a substitution variable, see Rules for Setting Substitution Variable Names and Values.
To update a substitution variable, use a tool:
A location alias is a descriptor for a data source. A location alias maps an alias name for a database to the location of that database. A location alias is set at the database level and specifies an alias, a server, an application, a database, a user name, and a password. Set the location alias on the database on which the calculation script is run.
You can use location aliases only with the _USER_ and _USER_ functions. With _USER_, you can retrieve a data value from another database to include in a calculation on the current database. In this case, the location alias points to the database from which the value is to be retrieved. With _USER_, you can write values to another Essbase database, or to the same database. See the Oracle Essbase Technical Reference.
The following considerations apply when using location aliases in secure (SSL) mode:
To enable Essbase to use SSL connectivity, you must set ENABLESECUREMODE to TRUE.
If the location alias is being set up to a secure port, you must append :secure to the server name specification. For example, using MaxL,
create location alias EasternDB from Sample.Basic to East.Sales at Easthost:6423:secure as User1 identified by password1;
To edit or delete a location alias, use a tool:

source: HuggingFaceFW/fineweb-edu


text:
Our System Engineers have decades of collective experience developing systems servicing Medical, Automotive, Aviation, Optoelectronics, Telecommunications, Mining, Construction, Energy and Environment.
- Design, supply, develop and document your Turnkey System
- Help you prototype your concept, don't spend a fortune on custom electronics, use off the shelf solutions.
- Design and develop an in Circuit Test (ICT) system including jigs and test fixtures.
- Hook your transducers into a measurement system to provide, logging, automation, analysis, reporting, and control.
- Provide IoT solutions and wireless sensor networks for remote control and logging.
- Connect just about anything to a computer, write a driver, provide a user Interface etc.
- Develop machine vision and motion control systems such as inspection, pattern matching, sorting, optical character recognition and robotics.
- Provide Industrial Automation and Control solutions using Programmable Automation Controllers.
- Develop and supply Real Time and FPGA solutions that provide high speed industrial deterministic measurement and control.
Medulla Technologies Pty Ltd
c/o Fledge Innovation Labs
36 Brandfield Road, Lindfield NSW 2070 Australia
+61 434 832 771


text:
Charles Bell and his wife had reached their time for retirement, but nothing was known about the background of Charles' parents. Charles did know about his early theatrical time on the stage, which information he had refrained from telling his sons or his in-laws. However, it was known that he had been a very successful businessman. It was later discovered that in his teens he set himself on the road of self taught studies into clerical work and then into the business world of customs. He was orphaned at the age of nine and raised in foster care, then his sister died young, but his life became complete when he met his future wife Edna Taylor. Charles was at first questioned in 1965 as much as he would permit. From then on many years of research was carried out in Australia and overseas endeavouring to piece together a story involving kidnapping,
secrecy, tragedy, success, discouragement, and love. At the end of Edna's life she related as much as she could remember towards their story.
Comience a crear su propio libro hoy desde 3.99 US $.

source: openbmb/Ultra-FineWeb


ARRL
Making Your First Contact
Operating Tips
Watch other hams make contacts to familiarize yourself with the process, but don't be afraid to make your first contact. The more contacts you make, the more comfortable you will feel. Here are some tips.
The phonetic alphabet is helpful when the other station can't hear you well or when the operator is not a fluent speaker of English. Don't make up your own phonetics.
A - Alpha N - November
B - Bravo O - Oscar
C - Charlie P - Papa
D - Delta Q - Quebec
E - Echo R - Romeo
F - Foxtrot S - Sierra
G - Golf T - Tango
H - Hotel U - Uniform
I - India V - Victor
J - Juliet W - Whiskey
K - Kilo X - Xray
L - Lima Y - Yankee
M - Mike Z - Zulu

 - Single Sideband (SSB)
 Your transceiver manual tells you how to properly set up your rig for SSB voice operating. Some general rules apply:

 - Position the microphone about one inch from your lips. Speak in a normal tone of voice.

 - Select the ALC (Automatic Limiting Control) meter and watch it as you speak. If the meter indicates that your voice is bouncing it out of the ALC range, you'll need to find the microphone gain control and turn it down or try speaking a little softer. A high ALC reading indicates that you are overdriving your radio and possibly distorting your signal.

 - Hams usually switch their radios from transmit to receive (and back) by pressing the Push to Talk (PTT) button on the microphone or by using a foot switch. For hand or desk microphones, avoid stabbing or punching the switch. Not only does this shorten the life of the switch, it can send a loud click at the beginning of your transmission.

 - Nearly every modern radio has a Voice-Operated Switch (VOX). When the VOX is on, the sound of your voice will automatically switch the transceiver into the transmit mode. If you must use VOX, speak into the microphone at a normal voice level. When you start speaking, the transmitter should activate automatically. When you finish speaking, the transceiver should return to the receive mode (after a short delay). Sometimes the VOX may trigger in response to background sounds. If so, look for the VOX Gain control. You can adjust this control to eliminate the problem.

 - You'll also find speech processing (or speech compression) as a feature on most radios. This is a method of boosting your average output power when you're operating SSB. A speech processor takes a normal voice signal, which varies constantly as you speak, and processes the signal to minimize fluctuating power levels. The result is an SSB signal that has consistent power at the highest level possible. Speech processing is good when you are operating at low power or with a poor antenna. On the other hand, speech processing can distort your signal. If you use speech processing, keep the processing level set at medium and ask for reports on your signal quality. Turn the level down if other operators tell you that your signal is distorted.
 - Calling and Answering "CQ"
 To start a contact, call "CQ" or answer someonecalling CQ. A CQ is a general call to get a random contact.

 Before calling CQ, listen to find a frequency that unoccupied by any other station. This may not be easy, particularly in crowded band conditions. If the frequency seems clear, ask if the frequency is in use, followed by your call. "Is the frequency in use? This is NY2EC." If nobody replies, you're clear to call. Keep your CQ very short. If no one answers, call again. If you call CQ three or four times and don't get a response, try another frequency.
 A typical SSB CQ goes like this:

 "CQ CQ Calling CQ. This is AD5UAP, Alfa-Delta-Five-Uniform-Alfa-Papa."
 When answering a CQ, keep the answer short. Say the call sign of the station once or twice, followed by your call:

 "N2EEC N2EEC, this is AB2GD, Alfa-Bravo-Two-Golf-Delta."

 - Rag Chew - A Long Enjoyable Conversation
 "Rag chewing" is ham lingo for a long, enjoyable conversation. Start with the basics: your name, location, the signal report, and a brief summary of your station (how much power you're running and the kind of antenna you're using). Then get the other person to talk about himself. Hams can talk about anything, but there are some topics we try to avoid. Discussions of politics and religion tend to attract controversy and start arguments on the air. If it looks like your rag chew is heading in those directions, use good judgment. Does the other operator agree with your views? If not, will you be offended? Will he (or others) be offended? If you have doubts, it is best to change the subject. Conduct yourself as though anyone in the world might be listening at any time. Whenever you transmit, you're representing all of Amateur Radio.
 - When to Keep it Short
 Hams love to talk, but there are times when you should keep the conversation short. For example, a DX operator may be trying to contact as many people as possible, as rapidly as possible. Listen before you call. If the DX operator seems to be making short contacts (signal report and "good-bye"), it is best to do the same. If you are heard by the DX station, only give the information he is looking for – a signal report and your location. Do not attempt to engage him in conversation.
 You may occasionally hear hams operating special event stations. These are temporary stations set up at events throughout the country: at county fairs, boat races, etc. Unless the special event operator sounds like they want talk more, keep the conversation short. This gives everyone else a chance to make their contacts.
 If you hear a call like this: "CQ Contest! CQ Contest! This is W1AW. Contest!" you've stumbled across an on-the-air contest. The idea: Contact as many stations as possible during the contest period. You don't have to be involved in the contest to participate; your contact will count regardless. Just listen to the contest station and determine what he is looking for. Contest contacts require the exchange of specific information such as your state, county, etc. Find out what he needs before you call and make the contact short. Time is essential when it comes to a contest!
 - Joining a Conversation in Process
 Remember that private conversations don't exist in Amateur Radio. If you don't want to call CQ to start a conversation, you can join a conversation that is already in progress. Listen carefully to the operators. Are they having an animated, involved discussion? If so, it may be a bit rude to interrupt unless you have something important to offer. If the chat seems casual, the operators may not mind someone else joining. So how do you politely interrupt? The best approach is to wait for one station to stop transmitting and then quickly announce your call sign:

 "Yes, Charlie, I hope to get the dipole soldered together this weekend if the weather holds up." "N1RL." "Ah…we have a breaking station. N1RL, go ahead!"
 Do not use the word "break." You may hear other hams doing this, but you should only say "break" when you need to interrupt because of an emergency.
 - Amplitude Modulation (AM)
 Amplitude Modulation (AM) dominated Amateur Radio voice communication until Single Sideband (SSB) started after the end of World War II. SSB packs a great deal of power into a small slice of the radio spectrum, allowing many more conversations to occupy the same band and SSB is also very efficient in terms of transceiver design, but it doesn't have the audio quality of AM. Nothing rivals AM for audio quality except FM, but FM is only legal when you are operating above 29.500 MHz. You'll find AM conversations primarily on 80 and 40 meters, and occasionally on 10 meters just above 29 MHz. Most amateur transceivers have AM capability, so if you hear an AM conversation put your radio into the AM mode and give it a try!
 - Morse Code (CW)
 The best way to start with CW is to tune around until you hear someone calling CQ. CQ means, "I wish to contact any amateur station." When answering a CQer you should zero beat the other ham's frequency. That means setting your transmit frequency as close to theirs as possible. So how do you zero beat? One method is to tune down through the other CW signal, the pitch going from high to low, until the other signal disappears. Then, slow tune back up until you hear a pleasant CW note in your receiver (typically 600 Hz). This should put your signal close enough. An alternative is to use the Receiver Incremental Tuning (RIT) feature found on many transceivers. (On some radios this may be called a clarifier.) With the RIT off, tune down into the signal until it disappears. Then, turn the RIT on and adjust until you hear the signal again. The RIT adjusts your receive frequency slightly, but leaves your transmit frequency unchanged. If you can't find anyone calling CQ, perhaps you should try it yourself. A typical CQ goes like this:

 CQ C


text:
last line of the proof uses the only premise(s) that is given; or no premise if nothing is given.
Then if no premise is given, the sequent is called theorem. Therefore, the definitions of a theorem in system L is:
- a theorem is a sequent that can be proved in system L, using an empty set of assumption.
or in other words:
- a theorem is a sequent that can be proved from an empty set of assumptions in system L
An example of the proof of a sequent (Modus Tollendo Tollens in this case):
|p → q, ¬q ├ ¬p [Modus Tollendo Tollens (MTT)]|
|Assumption number||Line number||Formula (wff)||Lines in-use and Justification|
|1||(1)||(p → q)||A|
|3||(3)||p||A (for RAA)|
|1,2,3||(5)||q ∧ ¬q||2,4,∧I|
An example of the proof of a sequent (a theorem in this case):
|├p ∨ ¬p|
|Assumption number||Line number||Formula (wff)||Lines in-use and Justification|
|1||(1)||¬(p ∨ ¬p)||A (for RAA)|
|2||(2)||¬p||A (for RAA)|
|2||(3)||(p ∨ ¬p)||2, ∨I|
|1, 2||(4)||(p ∨ ¬p) ∧ ¬(p ∨ ¬p)||1, 2, ∧I|
|1||(5)||¬¬p||2, 4, RAA|
|1||(7)||(p ∨ ¬p)||6, ∨I|
|1||(8)||(p ∨ ¬p) ∧ ¬(p ∨ ¬p)||1, 7, ∧I|
|(9)||¬¬(p ∨ ¬p)||1, 8, RAA|
|(10)||(p ∨ ¬p)||9, DN|
Each rule of system L has its own requirements for the type of input(s) or entry(es) that it can accept and has its own way of treating and calculating the assumptions used by its inputs.
- Jennings, R. E., Continuing Logic, the course book of 'Axiomatic Logic' in Simon Fraser University, Vancouver, Canada
- Zarefsky, David, Argumentation: The Study of Effective Reasoning Parts I and II, The Teaching Company 2002
- Abductive reasoning
- Correspondence theory of truth
- Defeasible reasoning
- Hypothetico-deductive method
- Inductive reasoning
- Propositional calculus
- Retroductive reasoning
|General: Philosophy: Eastern - Western | History of philosophy: Ancient - Medieval - Modern | Portal|
|Lists: Basic topics | Topic list | Philosophers | Philosophies | Glossary of philosophical "isms" | Philosophical movements | Publications | Category listings...more lists|
|Branches: Aesthetics | Ethics | Epistemology | Logic | Metaphysics | Philosophy of: Education, History, Language, Law, Mathematics, Mind, Philosophy, Politics, Psychology, Religion, Science, Social philosophy, Social Sciences|
|Schools: Agnosticism | Analytic philosophy | Atheism | Critical theory | Determinism | Dialectics | Empiricism | Existentialism | Humanism | Idealism | Logical positivism | Materialism | Nihilism | Postmodernism | Rationalism | Relativism | Skepticism | Theism|
|References: Philosophy primer | Internet Encyclo. of Philosophy | Philosophical dictionary | Stanford Encyclo. of Philosophy | Internet philosophy guide|
cs:Dedukce da:Deduktion de:Deduktion es:Razonamiento deductivo fr:Déduction logique ko:연역법 hr:Dedukcija he:דדוקציה hu:Dedukció nl:Deductieno:Deduksjon (filosofi) nn:Deduksjonru:Дедукция sl:Dedukcija sv:Deduktionuk:Дедукція zh:演绎推理
|This page uses Creative Commons Licensed content from Wikipedia (view authors).|


text:
City of Loveland, CO
Infrastructure associated with the City of Loveland's water treatment plant was compromised as a result of the 2013 floods. After emergency repairs were completed, the City desired restoration work that would not only protect infrastructure but also improve the ecological function of the damaged river. ERC's design/build work focused on reestablishing natural channel form and function to this degraded reach. In areas where excessive stream widening occurred during the 2013 flood, ERC returned the stream to its appropriate width. Riprap that had been installed immediately following the flood was filled and vegetated to promote ecological value and natural stream planform and profiles were reestablished through channel reshaping and construction of riffle/pool sequences that had been lost.


text:
BiH have some of the most beautiful landscapes in the world. Our forests and rivers are home to one of the most diverse collection of plants and animals in Europe.
However, our country is changing. As we grow, we are polluting the natural world around us and putting pressure on our resources, and as a result, putting at risk people's health and livelihoods.
Are we prepared to take responsibility for the environmental problems we are creating? Can the citizens of BiH become real allies of nature?
Watch this film about some of the environmental problems that BiH is facing and about the new environmental strategy being developed for the country.
Just like Lana Pudar, Robert Dacesin, Mirela Lakovic and others are talking about in the film; Do you care about the Prenje alpine salamander, about the rivers of BiH, and in how we can reduce air pollution in our cities? After two years of development, BiH is on track to get its first Environmental Strategy and Action Plan. Read more below how you can get involved.
The new strategy is made available for you to comment and feedback on
This strategy are the result of a participatory process, in which a wide range of stakeholders have been involved in developing the draft. The next step is for it to be made available for the citizens of Bosnia and Herzegovina. This represents a great opportunity for those interested in the environment to provide their feedback on the environmental policy agenda for the next decade in BiH. Don't miss out on your chance to have your voice heard!
By getting involved, you can contribute to make the strategy more effective and more reflective of local needs and solutions.
The public consultations in Bosnia and Herzegovina have started. Below you find the link to the public consultations in Federation of BiH, which will last until the 30th of June. All information can be found on the websites of the Federal Ministry of Environment and Tourism and the Federal Ministry of Agriculture, Watershed and Forestry, giving further instructions on how to give input.
Below you find the link to the public consultations in Republika Srpska, which opened at the end of June. A public hearing will be held on the 19th of July and the possibility to give feedback will be opened within from 30 days after the public hearing. All information can be found on the website of the Ministry of Spatial Planning, Construction and Ecology of Republika Srpska, giving further instructions on how to give input.
Also, the consultation process in the Brcko District is now open and lasts until July 16. You can find all the information on the website of the Department for Spatial Planning and Property Affairs of the Brčko District.
Public consultations have now begun in all jurisdictions in Bosnia and Herzegovina. Keep yourself updated on our website: _URL_
Want to know more of why you should get involved?
Public participation in environmental matters refers to the sharing by citizen or communities of their views on decisions-making processes regarding the environment, through mechanisms such as voting, participating in consultations, petitioning, and campaigning, among others. Public participation in environmental matters is an important part of a democratic society, and it helps improve the quality and effectiveness of environmental decision-making. Indeed, it can help identify environmental challenges and their solutions and enable policymakers to rely on valuable and unique local knowledge. It also raises the sense of ownership among citizens around policy developments, while increasing the legitimacy and public acceptance of decisions and thus reducing conflicts, and empowering citizens. It is especially important to have the inputs from people that tend to be more marginalized socially, so that their needs and proposed solutions can be taken into account.
In Bosnia and Herzegovina, the Aarhus Centre has for a long time been promoting public participation in environmental policymaking. Indeed, BiH is part of the United Nations Economic Commission for Europe's Convention on Access to Information, Public Participation in Decision-making and Access to Justice in Environmental Matters. However, when it comes to public participation, improvements can be made, for instance in strategic environmental assessments and environmental impact assessments in BiH.
How the strategy will aim to improve public participation
The ESAP for BiH recognises these challenges and proposes many ways to improve public participation in the next decade in BiH. For instance, public participation features in the Strategy at BiH level in several priority areas (such as biodiversity and chemicals), where regular consultations and cooperation with the civil sector are envisaged, including awareness-raising campaigns for citizens.
Moreover, the Strategy aims to improve the inclusion of citizens into decision-making about the environment, especially in the processes of environmental impact assessment and the issuing of environmental permits.
The interview was initially published on the Klix.ba portal on June 6, 2022.


Survey: Is There Room in the Environmental Movement for "Non-Scientific" Causes?
George Monbiot is at it again, causing controversy by saying "Environmentalism may be emotional but it should always be based on science, not like the wishful thinking behind natural remedies."-Environmentalism must be fact based and there is no room for squishy stuff like alternative medicine. On the other hand, not too long ago vegetarians were considered squishy non-scientific flakes and George loves them. Not long ago the "healthy home" was the realm of a few kooks and now it is an accepted part of architecture.
Tags: George Monbiot
New to TreeHugger?
treehugger on phone
treehugger slideshows


text: This is the first comprehensive study to examine how urbanization affects the microclimate of Istanbul using the urban climate model MUKLIMO_3 with a 200 m horizontal resolution. In this study, the parameters in the land use table were estimated for Istanbul by combining different land use data sets and creating a high-resolution land use distribution. A specified heat wave episode was simulated via MUKLIMO_3 by using defined land use, meteorological sounding, and surface measurements. The findings suggest that MUKLIMO_3 can reasonably capture the 24-h daily temperature variation in both rural and urban locations, but it has a negative bias compared to station observations. We also employ eight mitigation scenarios by changing the albedo of roofs and implementing green-roofs and walls. All scenarios reduced air temperatures to varying degrees in urbanized areas along the northern Marmara coastline on both sides of Istanbul during daylight hours. The white and hybrid scenarios resulted in a temperature drop of up to 2 K at 12:00 UTC, with the most significant cooling effect observed in hybrid 4. Increasing the albedo of roofs from 0.5 to 0.7 resulted in the spatial expansion of cooled areas towards the north of the city along the Bosphorus. However, green roof scenarios are not found to be as effective as high-albedo scenarios.


1. Home
 2. Knowledge Base
 3. DataLog
 4. DropBox Conflicted Files
 1. Home
 2. Knowledge Base
 3. ClickForms
 4. DropBox Conflicted Files
Dropbox doesn't contain any functionality that enables it to merge various copies into a single file. You will have to either go through all the instances of a single file by yourself or use a third-party software, if you can find one. Going by the manual way can particularly be very tiring as well a time consuming, but this is probably the only way you can be assured of not unintentionally erasing any critical change that was made to the parent file and saved in one of the copies.
Understanding the problem
Conflicted copies arise most commonly because two people have attempted to edit a file at the same time from different locations. Each person has a copy open on their end, they're constantly making changes, and then all of them try to save those changes, resulting in a complete mess like situation. This is one situation which Dropbox simply isn't equipped to resolve. Instead of making an assumption and deleting one version, or attempting to merge multiple versions on its own, Dropbox creates conflicting copies to preserve the work done across different locations.
Solution 1: Removing the conflicted files
If you simply wish to cleanly delete the conflicted variants of your document and continue with the existing primary document, that is as easy as it can be! All you've got to do is make sure you don't have any conflicting versions still networked in from any other location(s) and then go ahead and delete the conflicting versions from Dropbox. The problem stands resolved in an instance.
How to identify conflicted copies
Edit the files as usual, and then check for any conflicted files in the Dropbox folder. If there are any conflicting files indeed, they will appear as the following screenshot. Remove one of them to solve the conflicted file problem.
Conflicted copies detected
Solution 2: Use Read-only lock for Windows users
Windows users can use the Read-only attribute from the properties area of the files that are more likely to be conflicted. But this may be not an ideal solution when the user is dealing across multiple kinds of platforms.
 1. Right-click on the appropriate file, and select Properties.
 2. Select Read-only from the attribute list.
Solution 3: Use a folder named "Your Name –in USE"
Files are more likely to be conflicted when all the parties working on them, aren't aware of changes being continuously made to them. For this reason, use a separate folder and name it as In USE to signal to all the parties that files in this folder are being edited from edited from multiple locations simultaneously.
How to merge Dropbox files that have become conflicted
Now, if you want to preserve both sets of changes, that's going to be a little more tricky. Dropbox doesn't have any built-in solutions for such a situation, so you're going to need to work it out with third party tools or a manual solution. This can be a major pain or very easy, depending on what sort of file you're looking at, how familiar you are with iteration software for that file type, and how many differences exist between the versions.
In a worst-case scenario, you'll need to manually adjust one version to contain all of the appropriate content from the variants, then follow the previous set of instructions to delete the redundant versions. This can be very time consuming, but it well might be your only option if you want to preserve everything from two or more conflicted files.
Avoiding future conflicted copies
Once you've resolved the issue one way or the other, you can take further steps to avoid this in the future. Whether the issue arose because two or more people worked on the document at the same time or because you had it open on multiple systems, there are three ways to prevent it from arising in the future.
 - Improve communication between collaborators
 - Move documents that are being modified to a different subfolder, so only the most relevant people can access and edit them
 - Move documents from Dropbox to a local folder while they're being worked on, so nothing can possibly interfere
And there you have it—simple solutions to a common difficulty with Dropbox (and many similar backup and file sharing solutions). If mistakes are made again, and conflicted copies pop up, you'll know exactly what to do next time.
Was this article helpful?
Related Articles


text:
Among the Millet
IMARTI company manufactures millet and supplies this product to the EU and the CIS countries
The exclusively natural ingredients, i.e. millet grown in natural conditions, are used for the production of this cereal
Groats made from millet grains, have excellent nutritional properties and contain large amount of protein compounds. This is why millet is considered a nutritious and healthy food. Product is made according to the
European Union Environmental Standards, therefore there are no extraneous toxic inclusions in it.
Modern agricultural technology of growing millet allows to produce both organic and "traditional" cleaned grains which are the "raw material" for millet groats production. Bioproducts of plant origin are grown in natural conditions but without use of any artificial fertilizers.
Millet does not contain gluten - a protein found in almost all cereal crops, which makes this groats accessible to people who suffer from intolerance to this substance
Fulfillment of the obligations in a proper way favours high goodwill of our company
With our help you will be able to buy millet
IMARTI produces millet groats and supply it to the European Union countries. For cultivation of environmentally friendly millet special seeds are used that have not been processed with synthetic compounds.
Healthy fertile soil, absence of herbicides and pesticides, use of exclusively organic substances as fertilizers, professional control of all production stages - these factors allow to fulfill all the conditions necessary to obtain a quality certificate.


Forcing for dummies
824 views
Skip to first unread message
tc...@lsa.umich.edu
unread,
Mar 10, 2001, 12:20:03 PM3/10/01
to
Veterans of this group may recall that a long time ago, I said that I would
write an expository article entitled "Forcing for dummies" and post it here.
Well, here it is at last. I'm still not totally happy with it, but I
figured if I postponed any longer I might never post it.
Logicians may wish to skip right to the end where I have some questions that
I don't know the answer to.
I am deeply indebted to Matthew Wiener and Andreas Blass, who have patiently
answered my many stupid questions on the subject. The book I have studied
most is Kunen's _Set_Theory_.
I apologize that this article is so long; I have tried to be concise but the
subject is complex.
1. Models of ZFC
Perhaps the most famous theorem proved using forcing is the independence of
the continuum hypothesis (CH). More precisely, what Cohen proved was that
if ZFC is consistent, then CH is not a theorem of ZFC. Goedel had already
proved that if ZFC is consistent then ~CH, the negation of CH, is not a
theorem of ZFC (using his concept of "constructible sets").
Just how does one go about proving such a result? At a very high level, the
structure of the proof is what you would expect: one writes down a very
precise statement of what the axioms of set theory are (ZFC) and what ~CH
is, and then one constructs a mathematical structure that satisfies both ZFC
and ~CH. This structure is said to be a "model" of the axioms. Although
the term "model" is not often seen in mathematics outside of formal logic,
it is actually a familiar concept. For example, in group theory, a "model
of the group-theoretic axioms" is just a group, i.e., a set with a binary
operation satisfying blah blah blah.
Analogously, we could invent a term---say, "universe"---to mean "a structure
that is a model of ZFC." Then we could begin a course in set theory with a
definition like, "A 'universe' is a set M together with a binary relation E
satisfying..." followed by a long list of axioms such as
If x and y are distinct elements of M then either there
exists z in M such that z E x but not z E y, or there
exists z in M such that z E y but not z E x. (This is
the "Axiom of Extensionality.")
[Note: It so happens that the term "universe" is not a standard one; for
some reason there is standard name for the *axioms* but no standard name for
the *structures that satisfy the axioms*, even though in the rest of
mathematics it's the other way around. But the point is still valid.]
Early on in a course in group theory, one gives lots of examples of groups.
Here we encounter the first awkward feature of ZFC; strictly speaking,
nobody has ever exhibited even *one* model of ZFC (without using assumptions
that are not universally accepted among all mathematicians)! Moreover,
Goedel's second incompleteness theorem essentially says that nobody ever
will.
Fortunately, this is not as nasty a problem as it might seem at first. For
example, one object that is almost a model of ZFC is V, the class of all
sets. If we take M = V and we take E to mean "is a member of," then we see
that the axiom of extensionality simply says that two sets are equal if and
only if they contain the same elements---a manifestly true statement. The
rest of the axioms of ZFC are similarly self-evident when M = V. The catch,
of course, is that V is too large to actually be a *set*, and we stipulated
that M had to be a set.
Furthermore, Goedel incompleteness notwithstanding, nobody has ever proved
that there *aren't* any models of ZFC, so if we are bothered by this point,
we can treat the existence of models of ZFC like any other unproved
hypothesis, such as the Riemann hypothesis or P != NP. That is, we can
assume it freely as long as we remember to put a conditional clause in our
theorems. So from now on, let us assume that models of ZFC exist.
A second possible stumbling block is that some people initially approach
axiomatic set theory with the expectation that we have to suspend all our
previous preconceptions about sets. It may therefore seem surprising that
I suggested starting the discussion by saying, "A 'universe' is a *set*
together with..." Wait a minute---what's a set? Isn't it circular to
define axioms for sets in terms of sets?
Different people give different answers to this question. My recommendation
is to approach the study of ZFC like the study of any other mathematical
subject. In particular, you should use your ordinary, "naive" mathematical
knowledge of sets to understand the sentence, "A 'universe' is a set
together with..." Do not harbor expectations, at least not at first, that
ZFC will tell you what sets "really are" or which mathematical practices are
"really rigorous." If it helps, think of ZFC as axioms for "universe
theory" not "set theory"; then the apparent circularity goes away.
Next point: In group theory, the deepest theorems are not theorems about
*all* groups, but about special classes of groups (finite simple groups,
compact Lie groups, etc.). Similarly, in the theory of forcing, we will be
interested in models of ZFC with some additional properties. The first
property we will require is that the elements of M be "well-founded sets."
This means sets that are built up from the empty set recursively, using
operations such as union, pairing, powerset, etc. Thus the empty set {} is
well-founded, as are {{}} and {{}, {{}}, {{{}}}, ...}. This requirement is
not really crucial; as in the rest of mathematics, it doesn't really matter
what the "atoms" out of which your structures are built are, so long as they
have the properties you want them to have. In fact, it might seem rather
confusing that not only is M a set, but now the elements of M (and the
elements of the elements of M, and...) are also sets! However,
well-foundedness turns out to be very convenient.
The second requirement is a requirement on the relation E. We will require
that x E y if and only if x is a member of y. (Remember, x and y, being
elements of M, are [well-founded] sets, and hence it makes sense to talk
about x being a member of y.) This might again seem like a confusing
requirement. Naively, we might guess that to construct "weird" models of
ZFC in which ~CH holds, we might have to let E be some kind of weird
relation that bears no resemblance whatsoever to ordinary set membership.
Once we require E to coincide with ordinary set membership, we might wonder
whether there is any model of ZFC other than V itself (ignoring temporarily
the fact that V is not a set). Surprisingly, it turns out that there is
still plenty of "wiggle room" left after this requirement.
The third requirement is that M be "transitive," i.e., that every member of
M is actually a subset of M. If you have worked with ordinal numbers
before, you will not be too surprised that transitivity turns out to be a
very useful condition. Otherwise, it might seem unmotivated; however, some
motivation will become apparent later.
The final requirement is perhaps the most important (from the point of view
of forcing), and that is that M be a *countable* set. If you have studied
some logic then you may remember the Loewenheim-Skolem theorem, which says
that if a countable set of axioms has any models at all, then it has a model
which is a countable set. Otherwise, the countability condition may make
you even more incredulous that any such M could exist. Since our main
purpose here is to discuss forcing and I don't want to spend any more time
on preliminaries, I will simply have to ask you to take it on faith that a
very rich array of examples remains even after the countability condition is
imposed.
We use the standard abbreviation "c.t.m." (countable transitive model) for
models of ZFC that satisfy the four extra requirements above.
2. What a c.t.m. satisfying ~CH looks like
What do c.t.m.'s look like? It turns out that every c.t.m. M contains
all the integers, if we adopt the understanding that 0 is the empty set,
1 = {{}}, 2 = {{}, {{}}}, and in general n is the set {0, 1, ..., n-1}.
It also contains omega, the infinite set of all the integers. What about
the powers


text:
Barriers To Justice In The Gambia
Aside from the limited provision of state-funded legal aid, a large number of Gambians have no access to the proper legal advice and representation needed to access the Gambian judicial system.
The main barriers to accessing the justice system in The Gaambia incude the folowing:
- the high costs associated with legal proceedings, including court filing fees and physically attending court proceedings
- lack of physical access to court buildings and lawyers in many of The Gambia's administrative divisions
- an intimidating formal court atmosphere, replete with technicalities and complex procedures
- significant delays in resolving matters before the courts, with civil matters taking between two and six years on average to conclude with frequent adjournments


text:
Tom Lewis, FaHN VISTA sat down with Margaret Ball, Agriculture Development Specialist with Cornell Cooperative Extension of Tioga County (CCE Tioga) to learn more about her work and the different projects that CCE Tioga is currently involved with.
Cornell Cooperative Extension associations operate throughout New York and have a presence in every county in the state. According to their website the mission of the extension system is to, "put knowledge to work in the pursuit of economic vitality, ecological sustainability and social well-being." CCE Tioga runs a variety of different programs that cover diverse subject areas such as agriculture, 4H youth development, gardening, nutrition, and family development. Each of those areas has many different functions, roles, and projects associated with them. The majority of my conversation with Margaret focused on their agriculture programing and CCE Tioga's role in the local food system.
The role of agriculture in Tioga County:
According to Todd Schmit, Associate Professor of Applied Economics and Management at Cornell University, agricultural industry in Tioga County (including production, support services and manufacturing) has a total direct output of $261 million, employs more than 860 people and contributes $79 million (6.24%) to the Tioga County GDP. Margaret stated that, "Tioga county has quite a diversity of types of farms and different products. Almost anything you can think of there are at least a few places in Tioga County that produce it, and quite a range of sizes of farms. There's a multigenerational farming community and also a lot of folks getting into farming, trying to start up new operations. There are also folks who have lived elsewhere and have moved here trying to set up a nice rural lifestyle."
Last summer, CCE Tioga hosted four Cornell undergraduates who carried out an interdisciplinary research project called Our Farms, Our Stories. With support from CCE Tioga staff and Cornell advisors, the students documented stories, contributions, and needs of farmers in Tioga County. They interviewed farmers and community leaders, participated in local cultural events, and quantified agriculture's contribution to the Tioga County economy. Our Farms, Our Stories results are available on the CCE Tioga website, including a 20-minute video, reader-friendly profiles of 14 Tioga County farms, and a comprehensive written report.
On the Tioga County Agriculture and Farmland Protection Plan:
"Tioga County updated its Agriculture and Farmland Protection Plan in 2015 and the County is funding part of my position to help coordinate the implementation of that plan." Margaret added, "New York State Department of Ag and Markets offers funding to counties to do these plans. Basically it's a chance for many diverse stakeholders who have an interest in farming issues to come together and discuss priorities." She added, "Some of the most important work moving forward will involve working with local and regional economic development organizations – securing sources of grant and loan funding for Tioga County's agricultural businesses." A few goals of Tioga County's Ag Plan are: to achieve sustainable growth in the agricultural economy, attract new and beginning farmers to the agricultural sector, maintain adequate access to quality farmland, and improve communication between farmers, rural land owners and public agencies.
Margaret stated, "Right now I'm working with Tioga County Economic Development and Planning, Soil and Water Conservation District, and the Chamber of Commerce on a campaign to change the narratives around agriculture in the county. Even though agriculture is such an important economic driver in Tioga County, there are still some disconnects between the farming community and the economic development and business folks. We're starting to discuss the intersections of agriculture and business in the county in multiple media outlets."
Other agriculture projects and events that CCE Tioga is working on:
Margaret stated that one successful annual event that CCE Tioga is involved with is Sundaes at the Farm. "The idea is to get the general public on to a farm to see what it is all about and to have fun." She said, "Last year it was at King Dairy Farm in Spencer and we had over 700 people come on to the farm." Last year's event had several different features including tours of the milking barn, kids activities, and of course free ice cream Sundaes! The Tioga County Agricultural Resource Group organizes the event, of which CCE is a member.
Tioga County also holds other events that promote agriculture. CCE Tioga hosts a "Taste of Tioga" dinner each year to highlight locally produced foods. Collaborative groups promote agriculture through the Tioga Farm Trail and the County Fair. The Fair added a new building dedicated to agriculture last year. Margaret also added, "there are a lot of people working to build the presence of agriculture at the County Fair. We have a strong 4-H program at CCE, a new Future Farmers of America (FFA) chapter at Spencer Van-Etten High School, and agricultural classes in at least two school districts."
On Margaret's role as an Agricultural Development Specialist:
"My job is to basically do whatever I can to support economic viability of farms in Tioga County. Farms means anyone who is producing farm products for sale, everything from large scale dairy farms to small back yard bees, or someone who wants to get into farming and doesn't know where to start." Margaret also added that she works to host educational workshops for farmers and get them connected to beneficial resources.
On the local food system:
While discussing the local food system and agriculture in Tioga County, Margaret spoke about the importance of farm labor. She stated, "Labor on farms is an important challenge to consider right now, especially with immigration enforcement and the average age of farmers continuing to increase. Finding ways to plug young people into the agriculture labor force is a big challenge that needs some serious collaboration and creativity." She also added that land access and start-up capital for people who are trying to become involved with farming are issues that need more attention.
On the importance of the Food and Health Network in the local food system:
Margaret stressed that she believes FaHN's work is important. She added that, "there are so many different pieces in the puzzle in food systems and each of us is just doing our tiny part. The more we can network and understand different sectors, the better off everyone's work is going to be. I think FaHN does a really great job of making those connections."


Octopus Deploy Documentation
Authoring an Octopus Server extension
Last updated
This is the key NuGet package you will need in order to build an Octopus Server extension.
This namespace contains the interfaces and structures an extension can implement, which the Octopus Server will go looking for.
The key interface to be aware of is IOctopusExtension, as this forms the entry point for your extension and without it the server cannot load your extension. An example of its usage is as follows:
 [OctopusPlugin("Directory Services", "Octopus Deploy")]
 public class DirectoryServicesExtension : IOctopusExtension
 public void Load(ContainerBuilder builder)
The second important component here is the OctopusPluginAttribute, which provides the description and author metadata for the extension.
Octopus Deploy itself uses Autofac as its IoC container, and as such the extensions are provided with the container builder during startup, so they can register their own internal services.
Extension configuration
Many extensions will want to store configuration related to their own specific functionality, certainly all of the Octopus Deploy extensions do. To facilitate this, the server provides the extensions the ability to register their need to store a configuration object in the Configuration table in the database. Below is an example of a configuration object and its mapping class:
 public class DirectoryServicesConfiguration : IId
 public string Id { get; set; }
 public bool IsEnabled { get; set; }
 public string ActiveDirectoryContainer { get; set; }
 public AuthenticationSchemes AuthenticationScheme { get; set; }
 public bool AllowFormsAuthenticationForDomainUsers { get; set; }
 public class DirectoryServicesConfigurationMapping : IConfigurationDocumentMapper
 public Type GetTypeToMap() => typeof(DirectoryServicesConfiguration);
Things to note here are:
 - The configuration object is a POCO stored as serialized JSON in the database, so properties that are enums (as above) or POCOs themselves are supported.
 - The configuration object itself must implement IId, to provide the Id for the JSON data. This is typically a constant unique to your extension.
 - The mapping class must be registered as an IConfigurationDocumentMapper in Autofac when the extension is loaded.
Configuration stores and the configure command
Now that your extension has configuration, how do you set the configuration values? The pattern we're using involves a Configuration Store and a class that implements the IContributeToConfigureCommand interface. The IContributeToConfigureCommand interface is the key part. The store is a pattern that we've found works well for us (because in some cases we have data that may need to be migrated from the server.config into the DB), but is not mandatory. An example of an extension contributing to the configure command is as follows:
 public class DirectoryServicesConfigureCommands : IContributeToConfigureCommand, IHandleLegacyWebAuthenticationModeConfigurationCommand
 readonly ILog log;
 readonly IDirectoryServicesConfigurationStore activeDirectoryConfiguration;
 public DirectoryServicesConfigureCommands(
 ILog log,
 IDirectoryServicesConfigurationStore activeDirectoryConfiguration)
 this.log = log;
 this.activeDirectoryConfiguration = activeDirectoryConfiguration;
 public IEnumerable GetOptions()
 yield return new ConfigureCommandOption("activeDirectoryIsEnabled=", "Set whether active directory is enabled.", v =>
 var isEnabled = bool.Parse(v);
 log.Info($"Active directory IsEnabled set to: {isEnabled}");
 yield return new ConfigureCommandOption("activeDirectoryContainer=", "Set the active directory container used for authentication.", v =>
 log.Info($"Active directory container set to: {v}");
 yield return new ConfigureCommandOption("webAuthenticationScheme=", "When Domain authentication is used, specifies the scheme (Basic, Digest, IntegratedWindowsAuthentication, Negotiate, Ntlm)", v =>
 var scheme = (AuthenticationSchemes) Enum.Parse(typeof(AuthenticationSchemes), v);
 log.Info("Web authentication scheme: " + scheme);
 yield return new ConfigureCommandOption("allowFormsAuthenticationForDomainUsers=", "When Domain authentication is used, specifies whether the HTML-based username/password form can be used to sign in.", v =>
 var allowFormsAuthenticationForDomainUsers = bool.Parse(v);
 log.Info("Allow forms authentication for domain users: " + allowFormsAuthenticationForDomainUsers);
Services provided by the host
This section contains the interfaces and structures related to'services' that the extensions can consume from the Octopus Server itself. In this section, we'll detail a couple of interfaces you're most likely to need. To use them install the relevant NuGet package and take a dependency in your extension constructor.
ILog from Octopus.Diagnostics
This interface provides access to the server's logging infrastructure, so your extension can log Info, Warnings, Errors etc.
IKeyValueStore from Octopus.Configuration
This interface provides access to the server.config XML file, should your extension need to read/write configuration values there.
Building the extension
An extension is simply a.NET dll, so you can build it in any way that you would normally build your.NET code.
Extension points
At the moment you can only extend Authentication but we plan to expose more of Octopus internals in the future so stay tuned and check this page every now then for updates.
Install a custom extension
Need support? We're here to help.