How a Business Can Benefit From Interactive Marketing
Interactive marketing allow person to pay online using a credit card
Tetra Images / Jamie Grill / Getty Images
In a world in which consumers have come to expect increasing responsiveness from the companies they do business with, interactive marketing is one of several methods (social media is another) in which business owners can better meet their market's needs.
Interactive marketing involves a marketing tactic that is in direct response to something a consumer does. Sometimes called trigger-based or event-based marketing, interactive marketing relies completely on an action started by the consumer.
For example, "Do you want fries with that?" is a form of interactive marketing. It's usually asked if you order a hamburger, but not if you order a shake. The act of ordering a hamburger triggers the push towards adding another product.
Example of Interactive Marketing
One of the biggest innovators in interactive marketing is It collects and analyzes visitor behavior, then uses it to show meaningful information to the customer in the present. Amazon offers "suggested reading" selections based on previous book searches or purchases. This type of online environment makes for a personal shopping experience, leading to longer stays within a site (sometimes referred to as "site stickiness") and more purchases (also referred to as conversions).
Amazon not only tells you what others are browsing that are similar to your search, but also, if you buy an item, Amazon will tell you what others who have bought that item also bought. Amazon remembers your preferences and will send you emails or highlight online new similar and related items based on your browsing and buying history.
The benefits of interactive marketing can be significant. For one, it makes the consumer feel like they're heard, understood, and receiving personal service. Other benefits to interactive marketing include:
 1. Increase sales: Interactive marketing increases the odds that you'll deliver what the consumer needs thereby leading to a sale, as well as increase sales by recommending related items that result in the buyer tacking on other items that fit with their purchase.
 2. Increase consumer satisfaction: Consumers like to buy things that most closely fit what they need. Since interactive marketing is based on actions by the consumer, you're more likely to match them with the right product/service.
 3. Lower marketing costs: Consumers like interactive marketing because they don't have to repeat themselves. It's like having a personal shopper. Happy customers not only stay with you but will refer you. It's cheaper to keep a customer than get a new one.
 4. It can be automatic: No one sits at Amazon and watches what you do on its site. Computers track consumer actions and, based on algorithms, they suggest recommendations. Even the statement, "Do you want fries with that?" is part of a system.
Interactive marketing requires detailed planning and implementation. While a system can execute it, you have to set the system up to understand the triggers and what to deliver. Other cons include:
 1. Some customers don't like it. Let's face it, to deliver recommendations, you have to track what consumers do, and for some, tracking their every move is a little creepy.
 2. Not everyone is alike. Interactive marketing works a great deal on probabilities. But just because 99 people out of 100 bought item Y at the same time they bought item X, doesn't mean everyone who buys X also wants Y. Someone might prefer Z. When it goes wrong, it highlights that you don't know your customer.
How to Set Up Interactive Marketing
If you'd like to use interactive marketing in your business, you'll need to spend time understanding your market, its wants, and needs, as well as what actions can lead to results.
 1. Identify the triggers that can lead to an interactive marketing event. The best way to do this is through surveys and analyzing data.
 2. Determine the marketing event for the trigger. When the consumer does X, what do you want to happen? Recommend Y? Ask if they want fries?
 3. Set up your system. Online, this requires tech know-how to set up a program that will take the data input and delivers an output. Face-to-face, you can develop your "sales system" to include responses to certain questions or purchases your client/customer asks.
 4. Assess. Is it working? Is your interactive marketing system it leading to more sales? Are you getting complaints? Use the data to tweak your system.


language-c-0.4.2: Analysis and generation of C code
Safe HaskellNone
This module provides the notion of identifiers in C, speed up using hashing. Identifiers are associated optionally associated with a NodeInfo, i.e. with a unique Name and a source location (Position). The ordering relation on identifiers is based on the hash and does not follow the lexical order.
data SUERef Source
References uniquely determining a struct, union or enum type. Those are either identified by an string identifier, or by a unique name (anonymous types).
isAnonymousRef :: SUERef -> BoolSource
Return true if the struct/union/enum reference is anonymous.
mkIdent :: Position -> String -> Name -> IdentSource
build an identifier from a string.
 - only minimal error checking, e.g., the characters of the identifier are not checked for being alphanumerical only; the correct lexis of the identifier should be ensured by the caller, e.g., the scanner.
 - for reasons of simplicity the complete lexeme is hashed.
builtinIdent :: String -> IdentSource
returns a builtin identifier (has builtin position and no unique name)
internalIdent :: String -> IdentSource
returns an internal identifier (has internal position and no unique name)
internalIdentAt :: Position -> String -> IdentSource
return an internal identifier with position info
isInternalIdent :: Ident -> BoolSource
return True if the given identifier is internal
identToString :: Ident -> StringSource
string of an identifier
dumpIdent :: Ident -> StringSource
dump the identifier string and its positions for debugging purposes


Fun Games to Play With Your Husky
There are many fun games you can play with your Husky to keep them mentally stimulated.
In this guide, let's go through some great games you can play with your Husky as well as look at how each game stimulates your Husky.
Playing games with your Husky can help prevent destructive behavior such as digging holes or escaping your property.
Benefits of Playing With Your Husky
Huskies, like all dog breeds, love to play. Even though they are technically classified as 'working dogs', Huskies, like any other breed, enjoy playing games and spending time with others.
A Husky's curious and playful nature, coupled with extreme bursts of energy means that if they don't play, they quickly become bored.
This can lead them to destructive or negative behaviors to keep themselves entertained.
Husky digging hole
When a Husky starts escaping or digging up holes, it could be a sign of a lack of mental stimulation.
Playing games, either with humans or other pets, can ease that boredom, help them expel energy, and help strengthen any bonds they share with others.
If your Husky has been digging holes, check out this guide to deal with it properly.
What Games do Huskies Like to Play?
Huskies like to play all sorts of games that involve human/dog interaction or mental stimulation. Being an extremely energetic breed, they also enjoy games where they have the chance to run around or be active.
Huskies like to play games like tug-of-war, hide and seek, bubble chasey, and other games that involve running around.
Of course, every Husky is different, so it may take you a few failed games before you figure out what your Husky enjoys.
Husky running
For example, my Husky Sasha loves it when I chase her around the backyard. While she's obviously much faster than me and I could never catch her, she enjoys circling around and sprinting.
Once you find a game or two that your Husky loves, you'll find it easy to keep them mentally stimulated.
Let's go through a few games you can play with your Husky.
How to Play Tug-of-War With Your Husky
Tug-of-War is a great game to play with your Husky and is an easy way to incorporate some training into their routine.
Because of the rough-house nature of the game, some people misunderstand it and think that it encourages aggression.
But if you follow some simple rules, you will see that it is a fun game for all, that will improve overall fitness (for you and your Husky) and help enforce training commands.
Husky chew toy
Follow these steps to play Tug-of-War with your Husky:
 1. Hold out a tug toy to your Husky (check out recommended toys here) and tell them to take it (this is assuming you have already taught the 'take' command).
 2. Move the tug toy from side to side to keep their attention and make encouragement sounds when they 'tug back' to keep their interest and encourage them to continue. Make sure you hold on tight otherwise it won't be much of a game!
 3. After a little back and forth tugging, 'freeze' the game by stopping all movement. By doing this, the tug toy is effectively 'dead' and your Husky should lose interest. This is a great way to stimulate their prey and working drives without risk to smaller animals who may become victim to the game.
 4. Tell your Husky to drop the toy and give them a food reward when they do so. This enforces the obedience training and impulse control and keeps your Husky's mind stimulated. If they know that they will be rewarded for such behavior, they are more likely to listen to and obey the command.
 5. Pick up the toy immediately and tell your Husky to sit so that they can recover from the excitement of the game and reward.
 6. Once your Husky is calm, you can continue the game by repeating the above steps. Gradually delay the food reward for dropping the tug toy as the game progresses, and eventually faze it out, giving verbal encouragement instead.
For this game to be successful, there are a few things that you should note.
Be aware that only you should initiate this game. If your Husky wants to play Tug-of-War and is instigating it (in that way that only Husky's can), take note that they're interested but do not engage.
Wait until they have 'lost interest' before starting a game. This will press the point that you are the one in charge and that the game will only happen if you want it to.
The point of doing this is to prevent your Husky from thinking it's okay to start tugging at anything you're holding. You want your Husky to learn that this game can only be played at certain times.
Also, make them aware that any contact with your skin will mean the end of the game. If this happens, you need to walk away with the tug toy to show your Husky that the game is over. The only thing your Husky should come into contact with during this game is the tug toy.
Husky tug of war game
On ending the game, always make sure you take the toy with you. The tug toy is only for playing Tug-of-War and is not an 'everyday' toy. Only bring it out when playing this game with your Husky.
Can You Play Tug-of-War With a Puppy?
While most Huskies will enjoy playing this game, it is probably best to wait until your Husky is at least one year old before introducing this game to them.
Their bodies will still be growing and developing, and you don't want to risk hurting them (or putting unnecessary pressure on their teeth) at this age.
Younger Huskies will also have less knowledge of the commands involved, so it might be better to wait until they are a bit older to play this game.
How to Make a Fun Agility Course for Your Husky
You've probably seen videos of dogs that have been trained to run obstacle coursescompeting to finish the course in the best time and with as few mistakes as possible.
These competitions often involve a lot of dedication and commitment from both trainers and dogs to achieve the best results possible.
But this can also be a fun game for your Husky if you have the space and a little bit of time and patience. You don't even need to buy any equipmentyou can just use items you find lying around the house or yard.
This game is great for mental stimulation and expelling excess energy, and the course possibilities are endlesscheck out some videos for inspiration on how to turn your household items into a fun agility course for your Husky.
Here are some household items that can be used for different tasks:
 - Logs, sticks, PVC pipes, or broom handles can be used to jump over.
 - Hula hoops can be used to jump through (as long as you can find one big enough!)
 - Washing baskets can be used to jump over
 - Old doors or planks of wood can be used as ramps (make sure they are sturdy so that they don't collapse underneath your Husky)
 - Small cones or upside-down bowls can be used to weave between
 - Garden chairs or tables can be used to jump onto
Of course, if you're really serious about the game, you can always buy tunnels for your Husky to run through, or ready-made hurdles for them to jump over. There are a lot of items available to purchase.
Be aware that if you're taking the homemade option, you are careful that there are no sharp edges on the items you use. You don't want your Husky to injure themselves if they don't clear a jump properly, or if they fall onto a piece of equipment.
Once you've set up your course, you need to work through it with your Husky so they can learn how to complete it.
The best way to do this is to lead by example, walking through the course with your Husky so they can see exactly what is involved to complete it. Use treats as a way of leading them through each stage and reward them with the treat at the end of each section.
It is best to work through the course in stages, rather than all at once, as this makes it much more manageable to succeed without losing the interest of your Husky. Once they have mastered the course in this way a few times, see how they go with the whole thing.
It might take a little while, and there will be plenty of mistakes, but the end result (when they can complete the course successfully) will make it well worth it.
Of course, not all Huskies will be interested in a full agility course. The below video shows the challenges of training a Husky to focus on an agility course.
But you may find that even a simple agility prop is enough to stimulate your Husky.
How to Play Hide-and-Seek With Your Husky
Hide-and-Seek is an easy game to play that tests the problem-solving abilities of your Husky and is a lot of fun at the same time.
There are two variations to this game: you can hide a special toy or treat for your Husky to find, or you can hide and see how clever your Husky is at locating you.
Playing Hide-and-Seek with a toy or treat:
 1. Show your Husky the toy or treat. Allow them to sniff it so that they can recognize it. This works even better with a beloved toy or favorite treat because they will want to play with it


Babylon 10
Simply the best definition!
Download it's free
Babylon Spanish English dictionary
Download this dictionary
nf. gravity, attractive force which causes all bodies to move toward the center of the earth; weight, heaviness; severity; seriousness; solemnity
Download this dictionary
(n.) = seriousness ; severity ; gravity.
Ex: Each member state is allocated a fixed quota in proportion to the seriousness of its regional problems.
Ex: Exuberance and enthusiasm are proper to the young, as Quintillian remarked: 'The young should be daring and inventive and should rejoice in their inventions, even though correctiveness and severity are still to be acquired'.
Ex: The islands had been part of the British community since 1833 and the invasion was termed a matter of 'great gravity' by the Prime Minister.
* enfermo de gravedad = seriously ill.
* gravedad de la enfermedad = severity of illness ; seriousness of illness.
* gravedad de la situación, la = seriousness of the situation, la ; gravity of the situation, the.
(n.) = gravity.
Ex: Examples include terms arising from energy (force, gravity, heat), matter (molecular states, elements, compounds), earth, plants, animals, man.
* centro de gravedad = centre of gravity.
* desafiar la gravedad = defy + gravity.
* falta de gravedad = weightlessness.
* fuerza de gravedad = gravitational force.
* fuerza de la gravedad = G-force ; gravity pull ; gravitational pull.
* fuerza de la gravedad, la = force of gravity, the.
* ley de la gravedad, la = law of gravity, the.
* teoría de la gravedad, la = theory of gravity, the.
(adj.) = gravitas.
* con gravedad = grimly.
| gravedad in Spanish | gravedad in German | gravedad in Turkish | gravedad in Catalan | gravedad in Bulgarian | gravedad in Danish | gravedad in Finnish | gravedad in Farsi


Group texting failures and how to fix them
It can be frustrating when not everyone receives your group text. It can be even more annoying when you receive 20 individual text responses from a single message you blasted to a group. There are reasons behind the madness. - photo by Amy Iverson
You agree to coach your kids soccer team and excitedly send out that first group text to all the parents. First off, half of them never get it. Secondly, you start receiving a ton of separate responses. And why wont it let you add certain phone numbers? Welcome to the stupefying world of group texting.
Why does it have to be so complicated?
When you send a group text, depending on your settings, your phone will decide how that message is delivered.
From an iPhone, there are three options.
iMessage can send texts to other iOS devices using iMessage. The texts are always encrypted, are sent through Apple instead of your carrier if possible, and appear in blue text bubbles. Everyone in the group text will be able to receive photos, videos, audio messages and any included special effects. Using this method allows anyone in the group text to share their location. All responses will be in one beautiful, continual thread. With this method, you will be able to add or remove people at any time.
MMS stands for multimedia messaging service. Your phone may pick this method when not everyone is using iMessage. Messages are sent through your carrier and will appear in green text bubbles. These texts are not encrypted, but everyone with proper phone capability will be able to see photos and videos. Responses on this will also be in one thread. You will not be able to later add or delete people with this type of group text.
SMS or Short Message Service may be the method of delivery when some people in the group text are not using iOS devices. Again, the messages are not encrypted, go through your carrier and will appear as green text bubbles. Recipients will not be able to see photos, videos or any effects added to the message. These are the annoying group texts where every single response shows up as a separate text on your phone. That means, other people in the group text never see those responses. You are not able to add or delete people.
For Android users, there is no universal way phones send group texts. Many Android users want to be able to customize their phones and may be thrilled there isnt a standardized group text method.
If you want the group text and all responses to appear in one thread, enable MMS/group texts, but note this will use data. Create a group, and if its a collection of people to whom you regularly send group texts, name it. That group will appear as a contact and is editable. That way, you are able to easily add or remove people from this group next time you want to send a group message.
With all group texting, no matter if you are an Android or iOS user, carriers sometimes impose limits on the number of people who can be part of a group text.
When group texts seem to multiply upon themselves and grow unmanageable, you can always leave the conversation, but everyone will get a notification that youve left and may get snippy. Plus, some people feel guilty if they ditch a group thread. With iOS, you can instead turn on the Do Not Disturb feature for that particularly bothersome group text. That will simply mute the conversation, so your phone quits buzzing every few seconds when someone adds a thumbs-up emoji to the thread.
Android users generally have a similar option. For people using Google Messenger, for instance, tap the three dots in the upper-right corner. Then choose People & options, and turn off Notifications for that group text.
Finally, if you don't want to deal with any of this, there are some great group messaging apps. These options will do away with any Android/iOS group text problems you may have.
The one Ive been using is GroupMe: Free for Android & iOS. It has an easy setup, and offers location sharing and custom emojis. The app also just added an RSVP, so you can schedule that extra soccer practice and see exactly who will be there and ready to go in their shin guards and cleats.
Sign up for our e-newsletters


text:
Vermont Cooperative Fish and Wildlife Research Unit Spreadsheet Project
Exercises in Occupancy Modeling and Estimation
The exercises presented here are designed as a teaching tool to explore the occupancy models described in the book, Occupancy Estimation and Modeling, by Darryl MacKenzie, James D. Nichols, J. Andrew Royle, Kenneth Pollock, Larrisa L. Bailey, and James E. Hines. You should purchase this book before getting started.
Each exercises consists of a spreadsheet exercise, followed by an analysis in programs PRESENCE, MARK, or GenPres. In the near future, we will add coding in program R to each exercise.
Please cite this work as: Donovan, T. M. and J. Hines. 2007. Exercises in occupancy modeling and estimation. < _URL_ >
Last modified August 16 2010 01:40 PM

source: HuggingFaceFW/fineweb-edu


Debugging Server Starts
If a server isn't starting, the first thing to run is the server log command. It will show you the console log for that server. Note, this dumps the entire log file to the console, which may be very large. We recommend using the tail or --follow tricks below.
server log
server log serverName
Tailing and Following logs
If the log is very large, use the tail command to just see the last few lines of it.
server log | tail
server log | tail lines=100
To get a live stream of the console log from a running server, use the --follow flag and the command will continue streaming new lines to the console until you press Ctrl-C to stop.
server log --follow
You can also look at your server's access log (if enabled) and rewrite log (if enabled).
server log --follow -access
server log --follow --rewrite
Start server in console mode
You can use the --console flag to the server start command to start a server in the foreground. The console log will be live-streamed to the CLI and the log will continue streaming as long as the server is running. Press Ctrl-C to stop the server and stop streaming the log file.
server start --console
Debug Logging
You can get additional information about a server start with the --debug flag. When debug is set, the start command will not exit immediately, but wait for the server to come up and live stream the debugging information and server logs to the console while the server is coming up.
server start --debug
server start --debug --console
Maximum logging! (trace)
You may still really be having issues getting your server to start up correctly due to a setting not getting picked up, rewrites not working, or maybe a jar not loading. You can "drink from the firehose" so to speak by turning on trace level logging. This works best when starting the server via the console so you can watch the logging as it streams past.
server start --trace --console


text:
Duplicating a Node
To duplicate a node in the network display in the display area, proceed as follows:
- Select a node in the display area by clicking on it.
- Click on the Duplicate pushbutton in the toolbox or choose Edit
The alignment of the network display in the display area changes. A copy of the selected node appears.
Click on the Adjust pushbutton in the toolbox to re-align the network display. Depending on the setting for the Duplicate function, the new node is appended to the original node as its first or last predecessor, left or right brother or its first or last successor.

source: openbmb/Ultra-FineWeb


text:
The Water Management Program
The Trent-Severn Waterway is a 386-kilometre inland canal system crossing central Ontario from Trenton on the Bay of Quinte to Port Severn on Georgian Bay. Natural rivers and lakes are connected by canal cuts, locks, and dams to form a navigable route through two neighbouring watersheds – the Trent and the Severn. There are three key components to the Waterway: the Trent River watershed, the Reservoir Lakes, and the Severn River watershed (Figure 1
). The characteristics of the three components are summarized here and described in more detail in fact sheets provided as appendices.
Figure 1. Watersheds of the Trent-Severn Waterway© Parks Canada
Runoff and Evaporation
Runoff rates and evaporation losses are determined by the characteristics of the lands in the watersheds and weather conditions.
South of the Shield
- Primarily rock and shallow soils
- Rapid runoff
- Less evaporation due to deeper lakes
- Deeper soils
- Slower runoff: depending on the time of year, only about 25% of precipitation appears as runoff flows
- Greater evaporation due to shallower lakes with larger surface
The Trent River watershed drains to Lake Ontario. The river basin has an area of 12,200 square kilometres and includes the reservoir lakes. Approximately one third of the basin lies in the Canadian Shield, with the other two thirds in the rolling farmlands of southern Ontario. The Trent River basin contains the Kawartha Lakes: Rice, Katchewanooka, Clear, Stony, Lovesick, Lower Buckhorn, Buckhorn, Chemong, Pigeon, Sturgeon, Scugog, Cameron and Balsam. These lakes lie primarily south of the Canadian Shield in rolling countryside, where rainfall runoff is usually slow and evaporation losses in the summer are high. The Otonabee and the Trent are the two primary rivers, with the Otonabee connecting Katchewanooka Lake and Rice Lake and the Trent connecting Rice Lake and the Bay of Quinte.
The Reservoir Lakes to the north consist of forty-four lakes in the Haliburton Highlands area that are dammed to collect spring runoff water. Water from the Reservoir Lakes is released over the summer to supply the Trent component of the Waterway. These lakes lie in the Precambrian Shield on the tributaries of the Gull, Burnt, and Mississagua River, as well as Nogies, Eels, and Jack Creek. The drainage area of the Haliburton tributaries (Gull and Burnt River) is in the order of 3,200 square kilometres.
The Severn River watershed
lies immediately west of the Trent River watershed and drains into Georgian Bay. This 6,160 square kilometre drainage area has three major components:
- The Lake Simcoe and Couchiching basin, including the Talbot River
- The Black River watershed that feeds into the Severn River downstream of Lake Couchiching
- The lakes and channels of the Severn River below Washago, including Sparrow Lake, Six Mile Lake and Gloucester Pool
Most of the drainage area for the Lake Simcoe-Couchiching basin is in the rolling farmland and deeper soils characteristic of the southern area. As a result, water run-off is slow and evaporation losses from both land and lake surfaces are high.
The Black River watershed, located in the thin soils and rock of the Precambrian Shield, is virtually unregulated and produces rapid run-off of precipitation with lower evaporation losses. Consequently, even though the Black River watershed is less than half of the area of the Simcoe-Couchiching basin, its long-term average flow is comparable. The Black also has high peak flows during the spring period. The watercourses of the Black and the Severn Rivers contain numerous narrow sections and natural constrictions that increase water levels in the river and create upstream flooding during high flows.


Multiple Animations
Just before WWDC I answered an interesting question on Stack Overflow asking where to update the model value when following Core Animation best practices. It may sound like a simple question but it touches on deep topics like implicit vs. explicit animations, stand-alone vs. backing layers, and multiple animations. I'm not going to reiterate the whole question and answer here, but I'm going to start with the same question. The original question and answer still contain useful information, so if you are interested I can recommend it as a complement to this post.
Let's start with some quick background to get everyone on the same page. Not removing an animation after it finishes is considered bad practice. I've written about it in the context of clear code and a follow-up gist explaining why I don't think there is any reason to do it. There are plenty of people in the community that also talk about it, so I hope that we can all accept that it is a bad practice and start doing it "the other way".
The "other" way is to update the model value by setting the property being animated to its final value. This means that once the animation finishes and is removed, the model both is and appears to be in the correct state. The question then is: where exactly is it best practice to update the value when adding an animation? Before creating the animation? Before adding the animation to the layer? Or after adding the animation to the object?
// 1. Before configuring the animation?
var myAnimation = CABasicAnimation(keyPath: "position.x")
myAnimation.fromValue = oldValue
myAnimation.toValue = newValue
myAnimation.duration = 1.0
// 2. Before adding the animation?
view.layer.addAnimation(myAnimation, forKey: "move to the right")
// 3. After adding the animation?
The only meaningful distinction to Core Animation is whether the model is updated before or after adding the explicit animation, so from that perspective, the first and second case can be treated as one case: the "before" case. Exactly where before adding the animation that the model is updated only affects how the animation values are configured. If the model is updated before configuring the animation, the old state might need to be saved first, so that the animation can be configured to animate from the old state to the new state. Since there is no real technical difference between the two cases (1 and 2), we should only optimize for clarity. I usually find that code that configures the animation before updating the model is easier to follow but there are cases where the opposite is true. In the end it comes down to personal preference.
That leaves us with only two cases to compare: before adding the animation and after adding the animation. This is when things start to get interesting. Depending on if we are animating a stand-alone layer or a backing layer (a layer that is attached to a view), we will see some differences between the before and after cases. This has to do with the way that layers implicitly animate property changes and the way that views disable this default layer behavior. Before explaining the difference between the two, let's look at what an implicit animation is and what the default layer behavior is.
When a layer property changes, the layers looks for an appropriate "action" to run for that change. An action is an object that conforms to the CAAction protocol. In practice, it's going to be a subclass of CAAnimation. The steps that the layer takes to look for the action is described in detail in the documentation for the actionForKey: method on CALayer.
The layer starts by asking its delegate which can return with one out of three things:
 1. An action to run
 2. nil to keep looking
 3. NSNull to stop looking
Next, the layer looks for the property as the key in its actions dictionary. It can end up in one out of three cases:
 1. An action to run is found for that key.
 2. That key doesn't exist, telling the layer to keep looking.
 3. NSNull is found for that key, telling the layer to stop looking.
After that the layer looks for an actions dictionary in the style dictionary (something that I've never used myself or seen any other developer use). It then checks if there are any specific actions for that class by calling defaultActionForKey:. If no action if found the layer uses the implicit action that is defined by Core Animation.
In the normal case, we end up with the implicit animation. This animation object is then added to layer, using the addAnimation:forKey: method, just like we would add an animation object ourselves. This all happens automatically, just by changing a property. Hence the name: implicit animation.
The important part to take away is that when a property of a stand-alone layer changes, an animation object is added to the layer automatically.
For layers that are attached to views, things work differently. Every view on iOS has a backing layer and the view is always the layers delegate. This means that when the property changes, the view has first say for whether an animation should run or not. As we all know, views don't implicitly animate. This is because the view returns NSNull when asked to provide an action (except when inside of an animation block). You can read more about this interaction between the view and its backing layer in my article.
Getting back to updating the model and adding an explicit animation. In the case of the backing layer, the property change doesn't cause an animation so it doesn't matter if the layer is updated before or after adding the explicit animation. There is only going to be one animation anyway.
For the stand alone layer however, the property change causes and implicit animation to be added and we are adding an explicit animation so the layer ends up with two animations at the same time! This leads us to the next very interesting and deep topic: multiple animations.
Multiple animations
It's no surprise that different properties can be animated at the same time but multiple animations for the same property‽ Surely one must cancel out the other. Well, that is actually not the case. An animation is only canceled if another animation is added for the same key. So both animations are added to the layer, in order, and run until they are finished. It's easy to verify by becoming the delegate of both the implicit and explicit animation and logging the "flag" in the animationDidStop:finished: callback. Another, more visual way to see that both animations are running is to see how the animation looks in the two cases. If the model is updated first, then only the explicit animation can be seen. However, if the model is updated last so that the implicit animation added last, then the implicit animation can be seen running until completion and then the layer continues with the explicit animation as if it was running all along.
The two different animations when updating the model before and after adding the explicit animation.
There are two things to note in the above figure:
 1. When the implicit animation completes, the layer doesn't skip back to the beginning of the explicit animation.
 2. In both cases the explicit animation end after the same amount of time.
To better understand what is happening it is best to look at how the animation is rendered.
Disclaimer: I don't work at Apple and I haven't seen the source code for Core Animation. What I'm about to explained is based on information available in documentation, WWDC videos, or information based on observations and experimentation.
The animation object is created and configured by our application but the application process is not doing the actual rendering. Instead the animation is encoded together with a copy of the layer hierarchy and send over inter-process communication to the render server (which is part of the BackBoard daemon). With both a copy of the layer tree (called the "render tree") and the animations, the render server can perform each frame of the animation without having to communicate back and forth with our application process all the time.
For each frame the render server calculates the intermediate values for the animated properties for the specific time of that frame and applies them to the layers in the render tree.
If there are multiple animations going on at the same time, they are all sent to the render server and all of their changes are applied to the render tree for each frame being rendered. If there are two (or more) animations for the same property, the first will apply its intermediate value and the next will apply its intermediate value on top of that, overwriting the first value. Even animations that are completed but not removed apply their changes to the layers in the render tree, leading to some unnecessary overhead.
Knowing this, our two cases with the order of the implicit and explicit animations can be explained and visualized as follows.
In both cases the model value is changed to its new value at the start of the animation. It doesn't matter if it happens before or after the explicit animation, the model value is updated in the copy of the layer tree that gets sent to the render server.
For the case where the model is updated first, the implicit animation is added to the layer first and the explicit animation is added after that. Since the implicit animation is much shorter than the explicit animation, the intermediate values ii applies to the render tree is always overwritten by the intermediate values of the explicit animation. After a short while, the implicit animation finishes and is removed and the explicit animation runs alone until it finishes, applying its intermediate values directly over the model values. When the explicit animation finishes, it gets removed and we are left seeing the model values (which matches the end value of the explicit animation). The result looks like a smooth animation from the old value to the new value and the implicit animation is never seen.
Note: there may be implementation details


text:
Old English slāw'slow-witted, sluggish', of Germanic origin
The word slow is normally used as an adjective (a slow learner; the journey was slow). It is also used as an adverb in certain specific contexts, including compounds such as slow-acting and slow-moving and in the expression go slow. Other adverbial use is informal and usually regarded as nonstandard, as in he drives too slow and go as slow as you can. In such contexts, standard English uses slowly instead. The use of slow and slowly in this respect contrasts with the use of fast, which is completely standard in use as both an adjective and an adverb; there is no word 'fastly'.


text:
Feasibility Study: Ductless Hydronic Distribution Systems with Fan Coil Delivery
The primary objectives of this study are to estimate potential energy savings relative to conventional ducted air distribution, and to identify equipment requirements, costs, and barriers with a focus on ductless hydronic delivery systems that utilize water-to-air terminal units in each zone. Results indicate that annual heating and cooling energy use can be reduced by up to 27% assuming replacement of the conventional 13 SEER heat pump and coil with a similarly rated air-to-water heat pump.
- Publication Date:
- OSTI Identifier:
- Report Number(s):
KNDJ-0-40340-00; TRN: US201217%%392
- DOE Contract Number:
- Resource Type:
- Technical Report
- Resource Relation:
- Related Information: Work performed by Alliance for Residential Building Innovation (ARBI), Davis, California
- Research Org:
- National Renewable Energy Laboratory (NREL), Golden, CO.
- Sponsoring Org:
- USDOE Office of Energy Efficiency and Renewable Energy Building Technologies Program
- Country of Publication:
- United States
- 32 ENERGY CONSERVATION, CONSUMPTION, AND UTILIZATION; AIR; BLOWERS; DISTRIBUTION; HEAT PUMPS; HEATING; POTENTIAL ENERGY ARBI; DUCTLESS HYDRONIC DISTRIBUTION; AIR TO WATER HEAT PUMP; TERMINAL FAN COIL; LOW LOAD HOMES; EFFICIENT SPACE COOLING; EFFICIENT SPACE HEATING; Electricity, Resources, and Buildings Systems; Buildings
Enter terms in the toolbar above to search the full text of this document for pages containing specific keywords.


PT - JOURNAL ARTICLE AU - Marlo, Timothy AU - Stark, Jeffrey R. TI - Capture Ratios: Seizing Market Gains, Avoiding Losses, and Attracting Investors' Funds AID - 10.3905/joi.2019.1.100 DP - 2019 Sep 20 TA - The Journal of Investing PG - joi.2019._PHONE_ - AB - We examine how mutual fund ability varies across up and down market conditions by exploring the Upside and Downside Capture Ratios. We find convincing evidence that Capture Ratios persist and successfully identify mutual funds that subsequently outperform in their respective market conditions. We show that mutual funds that possess the ability to both outperform in up markets and reduce losses in down markets significantly outperform over the subsequent year, and we further show that mutual fund investors utilize Capture Ratios when allocating money to mutual funds. Our findings provide evidence that Capture Ratios provide valuable information to investors, and that investors take this information into account when making mutual fund allocation decisions.TOPICS: Mutual funds/passive investing/indexing, mutual fund performanceKey Findings• Capture Ratios provide information about fund performance in up and down markets.• A set of identified funds continue to outperform in both up and down markets.• Investors respond strongly to Capture Ratios demonstrated through fund flows.


text:
Fisheries managers need to understand herring stock genetics in order to set management objectives that aid herring recovery in PWS. The purpose of this study is to use the genetic makeup of herring populations to determine if one or multiple stocks exist in Prince William Sound. For example, are the fish that spawn on Montague different than those that spawn in Port Gravina or are they different portions of one large population.
Researchers from NOAA are coordinating with the Alaska Department of Fish and Game (ADFG) and other researchers to collect herring samples from different spawning locations in and around Prince William Sound. Genetic markers (genes or DNA-sequences that identify the relatedness of individuals) will be used to identify the genetic identity of each herring sample, which will then be evaluated to determine how related the various spawning populations are.
Evaluation of stock genetics will allow researchers to determine if sub-populations exist in Prince William Sound. This valuable herring life history information will be used to determine if the models need to treat the spawning locations as independent or a single model for Prince William Sound herring can be used.


ICBA - Online Education Courses - Online: Introduction to Consumer Lending
Online: Introduction to Consumer Lending
Consumer lending is a cornerstone of the U.S economy. Customers need access to credit to purchase goods such as cars and services such as education. When goods and services are purchased, jobs are created and the economy grows.
This course will provide you with an introduction consumer lending in the United States by discussing the history of consumer credit, different types of consumer loan and credit criteria.
This program containes1 module(s)
1 CPE Credit(s)
Category: Compliance - Bank Specific
Please log in to view course prices
Add to Cart
Find more courses


text:
District and TAH Workshops
When providing professional development programs, Choices collaborates with teachers and administrators to create programs that meet the specific needs of the schools or districts.
Programs focus on the Choices approach to addressing contested current and historical international issues. All programs take an interactive approach, giving participants first-hand experience with the Choices methodology from the students' perspective. Participants engage in one or more model lessons from our curriculum units, including taking part in a role-play simulation that places students at the center of a debate on a critical current issue or at an historical turning point. All of our workshops provide an overview of the Choices approach and philosophy and suggest strategies for successfully implementing the Choices curriculum in the classroom. Further, the workshops engage participants in reflection and discussion around issues such as relevance to common core, 21st century skills and, differentiated instruction.
Teaching American History Programs
The goal of Choices' TAH programs is to strengthen and expand the teaching of U.S. foreign policy and international content within the core U.S. history curriculum. Multi-Day Teaching Institutes focus on an international theme within U.S. history, engage participants with scholars on the topic, and provide opportunities for teachers to explore ways to incorporate the Choices Program's resources and approach to make these topics come alive for students in their classrooms. One-Day TAH Workshops are similar to district workshops (above). In addition, depending on arrangements, one or more scholars may provide an on-site session, appear via video conference, or be integrated through our Scholars Online videos.
Email Mimi Stephens, Professional Development Director to discuss possibilities for future programming.
The United States in Afghanistan: History and Civic Engagement in the Classroom
2012 Chicago Summer Institute
Choices Approach to History: Teaching about American Entry into the Age of Imperialism
One-day workshop, Riverside Unified School District, Riverside, CA
Slavery in New England: An Institute for Teachers
One-day workshop, Brown University, Providence, RI
Teaching about the Cold War from Multiple Perspectives
Southeastern Regional Educational Service Center, Bedford, NH
The Age of Imperialism to the Second World War
Five day summer institute
The Slave Trade to Brown v Board of Education: Race in America
Eight-day summer institute


Map and Requirements > FAQs >
CDC and BioSense 2.0
How is BioSense 2.0 funded?
BioSense 2.0 is funded through annual federal appropriation to the CDC. In 2012, $7 million in BioSense funding was allocated to state and local jurisdictions through the BioSense Program's Cooperative Agreement.
What happens if states/locals go to the cloud to take advantage of the potential financial savings by not having to maintain their own systems, and CDC decides not to fund the local system any longer? Or asks states to pay into the cloud?
CDC is committed to supporting the nation's public health surveillance infrastructure, and believes that state and local health departments are the foundation of that infrastructure. While every effort will be made to maintain financial support for the distributed data model for public health surveillance, it is impossible to predict future budgets or the future cost to maintain the BioSense 2.0 cloud environment. Further, CDC and the BioSense 2.0 team are happy to work with current surveillance systems as well as all types of data aggregators at the jurisdiction's discretion, and it is not CDC's intention to dismantle any systems already in place.
Does CDC provide any funding for states and localities that participate in BioSense 2.0?
In 2012, the BioSense Program issued its first grant, awarding $7M to 35 jurisdictions in order to assist in the implementation of BioSense 2.0 and further the practice of syndromic surveillance. Please refer to the CDC site for information of other funding opportunities in the future. FAQs specific to the current grant can be found here.
How will CDC use the data we contribute to BioSense 2.0?
The Centers for Disease Control and Prevention is a large organization of centers that focus on understanding and preventing infectious, chronic, workplace, and environmental diseases and injuries. Each center will benefit from more timely and representative population health information. At a minimum, CDC will use BioSense 2.0 data help guide regional or national policy and program management decisions. Sharing BioSense 2.0 data with CDC will in no way change the collaborative relationship CDC maintains with states, wherein state and local jurisdictions speak for their population's status of health. Jurisdictions will ultimately have control of what data are shared with partners, including CDC. CDC will use the information to help provide regional or national picture for all-hazards. Under the new arrangement, CDC is one of several participants in the governance of BioSense 2.0.
If a copy of my state's data is downloaded to CDC for analysis, it could be subject to FOIA requests. This will be problematic for policymakers in my state. Will CDC be able to do analyses with data in the cloud without downloading it?
With the BioSense sharing model, users can define how and what type of access CDC will have to analyze and receive data. All data/information that external organizations provide to CDC or other federal agencies is subject to the Freedom of Information Act (FOIA) requirements.
Data shared with CDC for analysis using BioSense 2.0 are no exception. Jurisdictions will ultimately have control of what data are shared with partners including CDC, and should always consider FOIA and open records laws when they determine what and how much data they share.


text:
NGE >> The Arts >> Architecture, Landscape Architecture, and Historic Preservation >> Landscape >> Gardens >> Vernacular Gardens
Vernacular gardens, by definition, are gardens of ordinary people, not those designed by professionals or owned by the elite. The vernacular garden is a result of community-held beliefs about gardening aesthetics and utility as well as the traditional use of space and how it should function.
A General Homestead Plan
Some southern regional generalities can be seen, but no set pattern in Georgia becomes evident, other than a distinction between coastal and mountain locales. In the rolling hills of north Georgia, dooryard paths were often lined with privet hedges to prevent erosion, but in the lower regions of the state, the yard was traditionally swept bare to avoid giving snakes and other pests a place to hide. In the twentieth century, with the advent of the lawnmower, the dooryard evolved into a grass lawn.
No description of a southern rural farmhouse can omit the porch—a shady place to work and rest in a hot climate, as well as a means of cooling the interior of the house. The porch railings would sport containers of houseplants or colorful annuals planted in unserviceable household vessels. Front pathways to the porch were often lined with white-painted river rocks, lighting the way in the moonlight.
Scuppernong or muscadine grapes were grown to be used for juice, preserves, and in some homes, wine. Most Georgian rural homesteads had some type of arbor for the greenish red scuppernong or the blue-black muscadine grape. The arbor, built very high, was located to receive full sun at the side of the house or barn and to provide a screen for some of the less attractive outbuildings. Today, the grape arbor is one of the most important clues for identifying a vernacular garden of the rural South.
Orchards were planted close to the house as well. Pears, peaches, figs, pomegranates, and damson plums, also known as "bullace," were pollinated by bees, usually kept in hives along the fence bordering the orchard.
Women's Roles in the Garden
European Americans also worked according to an accepted division of labor. For women in rural Georgia, the traditional role was to plant, tend, and use the "kitchen" gardens and yards. This was distinct from the masculine role, which was to care for the large acreage of crops and numerous animals.
The European origins of the white farmer's wife, who began a homestead on a more or less wild plot of land, influenced what types of plants she put in the ground and where she planted them. Seeds, carefully protected and carried from other long-lost homesites, and hardy cuttings of shrubs and trees were planted near the door of the house. Plants were scouted from the wilderness surrounding the farm's clearing. Fruit trees, vegetables, and beehives were placed around the perimeter of the clearing. The women of the family were subsequently responsible for harvesting the fruit and vegetables and preserving them. Gardens raised by white rural settlers tended to reflect their practical outlook: an occasional whirligig or gourd birdhouse might be evident in the neatly clipped yards, but the overall appearance was generally utilitarian.
Various descriptions of slave quarters and plantation life document garden plots in which slaves raised produce to supplement their diets. Most often tended by women, who could not depend on men to be available, the garden provided an area of self-reliance. This independence was carried forward upon emancipation. The garden practices and traditions learned in slavery were handed down orally to subsequent generations.
Richard Westmacott, the author of African-American Gardens and Yards in the Rural South, identifies three major functions of the rural garden for free African Americans: its contribution to subsistence; its utility as a kitchen extension for household chores; and its use for entertainment, recreation, and display.
Vernacular Gardens Today
The heritage of a handed-down culture of gardening in the rural South, both European and African American, can be characterized as coming from folk or nonscholarly sources. These rural gardening traditions have been the farmer's basis for adapting and viewing the spatial functioning of a dooryard from the last century to the present. The layout of today's southern farms is based on these cultural principles, and an observant traveler can still see the characteristics of a folkway landscape in the rural areas of Georgia.
Steve Bender and Felder Rushing, Passalong Plants (Chapel Hill: University of North Carolina Press, 1993).
John Dixon Hunt and Joachim Wolschke-Bulmahn, eds., The Vernacular Garden (Washington, D.C.: Dumbarton Oaks Research Library and Collection, 1993).
The Influence of Women on the Southern Landscape, Proceedings of the Tenth Conference on Restoring Southern Gardens and Landscapes, October 5-7, 1995, Old Salem, N.C.
John Michael Vlach, Back of the Big House: The Architecture of Plantation Slavery (Chapel Hill: University of North Carolina Press, 1993).
Richard Westmacott, African-American Gardens and Yards in the Rural South (Knoxville: University of Tennessee Press, 1992).
Ced Dolder, Ray and Associates
A project of the Georgia Humanities Council, in partnership with the University of Georgia Press, the University System of Georgia/GALILEO, and the Office of the Governor.


text:
Early Learning Center
SPRINGFIELD? The Illinois State Board of Education (ISBE) encourages families to establish and maintain good health and study habits as schools across the state open doors for the start of a new academic year. The onset of the school year provides a prime opportunity to review academic skills and implement positive habits and routines.
"Students need to arrive at school ready for new challenges and experiences," said State Board of Education Chairman Gery J. Chico. "Families can help their children excel by developing habits that ensure children get enough sleep, a good breakfast and a dedicated study time and place. Most importantly, they can pass on a positive attitude about education. Learning doesn't just happen during the school day but every moment adults spend with children."
As students approach the new school year, families might start new bedtime hours for an easier transition during the first week of school. Setting aside a quiet dedicated study space, with good light and appropriate supplies, may help children focus as they do homework.
A review of academic skills before the start of the school year may also help students succeed in the classroom. Some ideas include:


P8 Tech Ref Chapter 6 - wiki.apple2.org
P8 Tech Ref Chapter 6
Jump to: navigation, search
Chapter 6 - Adding Routines to ProDOS
Page 103
This chapter explains device-handling routines that can be used with the ProDOS MLI. Because such routines are connected to and interact with the MLI, they are essentially invisible to the BASIC system program described in Appendix A of this manual and in BASIC Programming With ProDOS.
Appendix A explains the rules for installing routines when the BASIC system program is active.
The types of routines described in this chapter are:
 - clock/calendar routines
 - interrupt handling routines
 - disk driver routines.
Note: These routines must all begin with a CLD instruction and end with an RTS.
Clock/Calendar Routines
ProDOS has a built-in clock driver that queries a clock/calendar card for the date and time. After the routine stores that information in the ProDOS Global Page ($BF90-$BF93), either ProDOS or your own application programs can use it. See Figure 6-1.
Figure 6-1. ProDOS Date and Time Locations
 49041 ($BF91) 49040 ($BF90)
DATE: | year | month | day |
TIME: | hour | | minute |
 49043 ($BF93) 49042 ($BF92)
You can cause ProDOS to call the clock driver and to update the date and time by issuing a GET_TIME call (see Section 4.6.1).
ProDOS calls the clock driver routine for every call that might need the date and time: CREATE, DESTROY, RENAME SET_FILE_INFO CLOSE, and FLUSH.
Page 104
The ProDOS clock driver expects the clock card's firmware to return information in a certain way. The ROM on the clock card must also follow Apple's identification convention if it is to be recognized by ProDOS at startup.
The ProDOS clock driver expects the clock card to send an ASCII string to the GETLN input buffer ($200). This string must have the following format (including the commas):
mo is the month (01 = January...12 = December)
da is the day of the week (00 = Sunday...06 = Saturday)
dt is the date (00 through 31)
hr is the hour (00 through 23)
mn is the minute (00 through 59)
For example:
would represent Thursday, July 14, 10:46 p.m. The year is looked up in a table in the clock driver.
When the ProDOS system file is executed, it installs the address of the clock routine at $BF07, $BF08 -- whether there is a recognized clock card or not.
ProDOS recognizes a clock card if the following bytes are present in the Cn00 ROM:
$Cn00 = $08
$Cn02 = $28
$Cn04 = $58
$Cn06 = $70
The address is preceded by a $4C (JMP) if a clock card is recognized, or by a $60 (RTS) if not.
The ProDOS clock driver uses the following addresses for its I/O to the clock:
Cn08 - READ entry point
Cn0B - WRITE entry point
The accumulator is loaded with an _TAG_ before the JSR to the WRITE entry point. This value could be used to let the clock card's firmware know in what format to leave the time.
The ProDOS driver takes the ASCII values sent by the clock, converts them to binary, and stores them in the ProDOS Global Page.
Page 105
The driver uses zero page locations $3A through $3E. It also saves and restores the peripheral RAM card location $F8+n, where n is the slot where the card resides.
Other Clock/Calendars
To support clock cards that do not follow the ProDOS protocol defined above, you can locate your code in a number of places. The cleanest solution is to replace the ProDOS routines with your own, if they fit.
If you look at $BF07,$BF08, you will find the location to put your code.
There is room for 125 bytes.
To install your code, simply write-enable the language card area, and move your code. Your relocation code must justify the absolute addresses as part of the relocation procedure. Finally, restore any soft switches you have changed. (There is no guarantee as to the absolute location of the clock-driver code on future revisions of ProDOS, only that its location can be found by examining the global page.) All that your code needs to do is get the time from the clock card, convert it to the ProDOS format, and store it in the date and time locations in the global page.
Your installation routine can be called either from an application program, or as part of the STARTUP program.
Interrupt Handling Routines
To aid the development of software that can handle interrupts, the MLI provides a convention for interfacing interrupt driven devices.
To use interrupts, you must install from one to four interrupt receiving routines somewhere in memory. It is up to you to check and update the system bit map to be sure that the routines do not conflict with ProDOS or other concurrently executing programs.
Once a routine is installed, you must use the ALLOC_INTERRUPT call to inform the MLI of the starting address of the receiving routine. After this call has been successfully completed, you may enable the hardware for interrupts.
Page 106
When an interrupt occurs, the MLI's interrupt handler preserves the 6502's registers, zero page locations $FA thru $ff, and, if the stack is more than 3/4 full, 16 bytes of the stack. Then it calls each receiving routine (via JSR), one by one, in the order in which they were installed. Each installed routine must begin with a CLD instruction.
When the routine that can process the interrupt is called, it should carry out its task, clear the interrupt on the hardware, and return (via an RTS) with the carry flag clear. When a routine that cannot process the interrupt is called, it should return (via an RTS) with the carry flag set so that the MLI knows to call the next routine in the list.
As mentioned above, all 6502 registers, locations $FA thru $FF and if the stack is more than 3/4 full, 16 bytes of the stack, are preserved.
The interrupt routine may use these resources freely for temporary data storage.
Note: There is no general way for an interrupt routine to identify whether or not its device was the source of the interrupt. This task depends on the specific characteristics of the device; in fact, some devices provide no mechanism for interrupt verification. It is necessary to service such a device after all others have been polled.
If no installed and allocated routine claims a pending interrupt, a SYSTEM FAILURE message will be displayed and program execution will be halted.
When finished with a interrupt driven device, a DEALLOC_INTERRUPT call should be made, but only after the device itself is disabled.
This Warning does not apply to the Apple IIc nor to Apple IIe's with enhanced ROMs. Because the Apple II Monitor program relies on a zero-page location ($45) that is overwritten when an interrupt occurs, you should disable interrupts while you are using the Monitor program. The system also uses location $7F8 to store the I/O slot location that was in use before an interrupt occurred; do not use this location.
Page 107
Interrupts During MLI Calls
The preceding section does not discuss what a program should do if an interrupt were to occur during the execution of an MLI call and your interrupt handling routine itself makes calls to the MLI.
The interrupt routine must allow the MLI to complete its current call before initiating a new call to the MLI. The mechanism for doing this consists of changing the globals so that the MLI completes its call and returns to your routine rather than to the the routine that originally called it. Then your routine can use the MLI as needed. When it is finished, it must restore the 6502 registers to the state they would have been in at completion of the MLI call had the interrupt not occurred, and then jump back to the proper address in the original routine.
To do this, the interrupt handling routine should first check the status of the MLI. If the flag MLIACTV ($BF9B) has the high bit set, then the MLI was in the middle of a call. Your routine should then:
1. Save the return address of the original caller (CMDADR, $BF9C), replacing it with the address to which the MLI should return on completion of the current call.
2. Claim the interrupt by disabling interrupts on the hardware, and clearing the carry flag.
3. RTS
4. The MLI's interrupt handler believes that the interrupt has been processed, so it completes the current MLI call and returns to the address in CMDADR, which is actually in your routine. Your routine should now do this:
5. Save the A, X, Y, and P registers as the return state for the routine whose call just completed.
6. Use the MLI as needed.
7. Restore the A, X, Y, and P registers.
8. Jump to the original CMDADR.
The original program sees only that its MLI call was successfully completed, and it continues execution.
Page 108
Sample Interrupt Routine
Here is a sample interrupt routine that reads the


text:
On February 28, 2003 the Government of Nova Scotia proclaimed the Fire Safety Act Bill 101 and the Fire Safety Regulations. The Act requires all municipalities in the province appoint a Fire Inspector to provide a basic fire safety inspection service commencing September 1, 2003. The intention of the legislation is to make Nova Scotia a fire safe province through a cooperative effort between the province and the municipalities.
Role of Fire Inspector
The duty of a municipality under the Act is to establish a system of fire-safety inspections of land and premises as required by the Regulations to provide for compliance with the Fire Safety Act, Fire Safety Act Regulations, and the Fire Code.
Municipal Fire Inspectors work in concert with the Office of the Fire Marshal and Deputy Fire Marshal in establishing a basic fire inspection service within the municipal jurisdiction.


Category:Horse spotting patterns
From Wikimedia Commons, the free media repository
Jump to: navigation, search
In horses, there are two main classes of spotting patterns. One is the Leopard complex, created by the Lp gene, characterized by small spots, seen in breeds such as the Appaloosa and the Knabstrupper. The other group is Pinto, also known as piebald, skewbald, tricoloured, blagdon, and calico in various English-speaking nations. The Pinto group consists of at least four genetically distinct patterns: 1) Tobiano, a dominant gene (TO); 2) Frame overo, an incomplete dominant that create spotting when heterozygous, but is lethal when homozygous, (O); 3) Splashed white, which has yet to be genetically mapped, and may be created by more than one genetic mechanism; and 4) Sabino, which is also created by more than one genetic mechanism, with one form, SB-1 mapped, but SB-1 does not encompass all sabino horses.
 - Overo(5 C, 3 P, 2 F)
S cont.
Pages in category "Horse spotting patterns"
This category contains only the following page.
Media in category "Horse spotting patterns"


Posts Tagged 'better living'
Obese Primates
February 22, 2011
from The New York Times
Update: The following post is very rant-like, my apologies. The research on monkeys upsets me. Do we have to do this to these creatures who can't make choices to prove that not getting outside and moving one's body and eating poorly can be deleterious to health? I'm glad we have medical interventions that can help. I also wish that we all could observe a better social ethic around living healthily. Seeing monkeys and humans lose the graciousness of their being in this way makes me ache. There is no other way to say it.
* * *
This article in the NYTimes described obesity research being conducted on primates. Why does reading about primates confined to cages, eating bad foods as they gain pound after pound, tear me apart more than my knowledge of all the people who live this way? So many people get out of bed, trudge to work, eat donuts/muffins/bagel with coffee on the go, sit or stand all day enclosed in a small space, snack to forestall boredom and fatigue, eat unhealthy take-out lunch, then sit, stand and snack some more until its time to go home and watch TV (and snack). Are we any different than those poor research primates, save the fact that no one is studying us? (more…)
%d bloggers like this:


text: Eating enough food to meet nutritional needs and maintain good health and good performance in all aspects of life--both at home and on the job--is important for all of us throughout our lives. For military personnel, however, this presents a special challenge. Although soldiers typically have a number of options for eating when stationed on a base, in the field during missions their meals come in the form of operational rations. Unfortunately, military personnel in training and field operations often do not eat their rations in the amounts needed to ensure that they meet their energy and nutrient requirements and consequently lose weight and potentially risk loss of effectiveness both in physical and cognitive performance. This book contains 20 chapters by military and nonmilitary scientists from such fields as food science, food marketing and engineering, nutrition, physiology, psychology, and various medical specialties. Although described within a context of military tasks, the committee's conclusions and recommendations have wide-reaching implications for people who find that job-related stress changes their eating habits.


:
It's at this point that you need to enlist the help of the built-in command-line tool atos. In the remainder of this post, we're going to learn what it does and how to use it to find the line in our source code that caused the crash.
How does atos help?
The beauty of atos is that it will give you a reference to the source file, function and even line number in your code where the crash occurred. Given that it can do this for a crash that occurred on another user's machine that you can't reproduce locally and don't have access to, this seems like nothing short of magic.
Here's an example of what atos might provide from a crash log like the one above:
ViewController.checkReg(isCli:) (in DetectX Swift) (ViewController.swift:4042)
The output from atos tells me the name of the Swift source file, the name of the function and — here's the truly wonderous part — even the line number: 4042.
This is all part of the magic of symbollication, which is such an esoteric word I'm not even going to try to spell it again :-). Instead, let's just get down to the practical nitty-gritty of how to get this kind of data out of our users' crash reports.
How to use atos
The method is fairly simple and goes like this:
1. Create a folder called "CrashWork".
2. Go to Xcode's 'Organizer', and right-click on the archive of the version of the app that crashed.
Choose "Show in Finder". That takes you to the .xcarchive file in Finder, from which right-click again and choose "Show Package Contents" to open the package:
3. Click on the .dSYM file and make a copy of it. Switch back to your CrashWork folder and paste the copy in there. Grab a copy of the same version of your app that crashed (you can also get that from the Products folder in the.xcarchive package, if you don't have one handy elsewhere) and place it in the same folder:
Important: Be sure you're working with the same version of your app as the user; atos needs that to match up the addresses in the crash report, and any other version will produce incorrect results or an error.
4. It's now time to head on over to the Terminal. cd into your CrashWork directory:
cd ~/Desktop/CrashWork
5. The format of the command is generally going to be like this (see man atos for options):
atos -o -arch x86_64 -l
 is the path all the way to the Mach-O binary in your app bundle in the CrashWork folder, so the path in my example looks like this:
atos -o DetectX\\ Swift -arch x86_64 -l
You need to be careful to get the and the the right way around. They are the reverse order of what you see in the crash log:
Now my complete example looks like this:
atos -o DetectX\\ Swift -arch x86_64 -l 0x10a10e000 0x000000010a16a601
6. Hitting 'return' produces the magic:
7. Now, going to my source file, I see exactly where the app crashed (lo! and behold, what do you know? An unwrapped optional, of course!):
Enjoy! 🙂
Featured pic: crash by febra-febra
accessing TCC.db without privileges
One particular comment in Wardle's article caught my eye:
Just call me 'root'
Did they put a CCTV in there?
1. Authorisation dialogs
defaults read ~/Library/Preferences/
2. Distributed Notifications
3. AppleScript – everyone's favourite 'Swiss Army Knife'
Enjoy! 🙂
Featured pic: Can't STOP Me by smilejustbcuz
reduce unwanted alerts in DetectX Swift
4. Click the 'OK' button to finish.
Enjoy! 🙂
browsers' anti-phishing protections easily defeated
While troubleshooting a user's mac the other day, I happened to come across a curious line in one of the logs:
Screen Shot 2018-06-11 at 16.28.05
After a bit of digging, it occurred to me that this and the other flags being sent in the process command were possibly Preferences or Settings in the Looking at chrome://settings/privacy revealed, of course, Google's phishing and malware protection setting, 'Protect you and your device from dangerous sites'.
Here it is set to 'On', which is the default setting:
Screen Shot 2018-06-11 at 16.31.28
A quick test proved that setting it to 'Off' produced the '—disable-client-side-phishing-detection' flag in the browser's process output. Setting it back to 'On' and relaunching the browser produced no output, confirming my theory.
Screen Shot 2018-06-11 at 16.40.39
A quick message to my user also confirmed that he wasn't aware that phishing protection had been disabled, and to the best of his memory, had not been disabled by himself.
A simple preference setting
That got me to wondering whether that setting could be turned off programmatically by another, possibly malicious, process. To my surprise, it turns out that it's trivial to do so.
All Chromium browsers have a Preferences file located in their Application Support folder. Usually this is within another folder called 'Default', but not always. Chrome and Vivaldi, for example, have it there, but Opera (and Opera Developer) store the Preferences file at the root level of their respective support folders.
The file contains the setting for whether the Phishing protection should be enabled or not. To determine how the preference was encoded in the file, I made a copy of the current Preferences file, toggled the setting, then made another copy. BBEdit's 'Find Differences' function quickly told me the name of the key (if you don't have BBEdit, you can also use Xcode's FileMerge to run diffs, though it isn't as pretty or as full-featured):
Screen Shot 2018-06-11 at 16.56.36
Again, there are differences among browsers. As shown above, Opera uses the key "fraud_protection_enabled" which takes a boolean. Chrome and Vivaldi, on the other hand, use a "safebrowsing" key which takes an array of key-value pairs, with the first item of the array being the key "enabled:", and taking a bool for its value, like this:
With this information, it's a pretty simple thing for another process running under your username to write to the Preferences file and turn off the built-in protections.
What about Safari?
Safari isn't vulnerable to quite the same tactic as it doesn't store its preferences in the same way. However, it's even easier to defeat Safari's 'Warn when visiting a fraudulent website' setting:
Screen Shot 2018-06-11 at 17.44.08
Apple hardened some of Safari's preferences (like setting the Home page) some time ago to stop adware from making unauthorised changes, but this one is still unprotected in the current public release of macOS High Sierra. A one-liner in Terminal removes the preference:
defaults write WarnAboutFraudulentWebsites 0
Screen Shot 2018-06-11 at 18.04.48
What can you do?
The ease with which these protections can be surreptitiously turned off in all major browsers is a worry. And let's face it, who would notice if this setting was quietly turned off? In both Chrome and Safari, the change takes effect immediately and does not even require a restart of the browser.
Fortunately, my shareware app DetectX Swift will warn you if browsing protection is off when you run a search and prompt you to turn it back on. To ensure that all insecure pages have been removed after turning the setting back on, DetectX Swift will continue to show the warning until you restart the browser and execute another search.
Screen Shot 2018-06-14 at 12.24.44
The protection covers all the browsers mentioned above. If you're running some other browser and would like to know if it's similarly vulnerable, drop a line in the Comments or contact Sqwarq Support and request support for your browser to be added.
Stay safe, folks! 😀
Featured pic: Nature by PichieArt
Xcode 10: where did snippets go?
Xcode 10 beta has got some nice new touches (as well as the return of some old favourites, hello again the code folding ribbon!), but one that might disorientate you at first is the absence of the Snippets, Objects and Media libraries that typically live in the bottom right corner of IB in the Utilities sidebar.
I've always found this position and size to be somewhat awkward, so I'm overjoyed to find that Apple have now given the libraries their own floating panel. You can access the libraries either with the keyboard shortcut Command-Shift-L, or by clicking the button that's now in the top-right of the toolbar, just to the left of the editor buttons.
The new button is context-sensitive,


In the board game Dead of Winter, certain actions a player can take result in rolling a 12-sided die. On one face of the die, there's a tooth, representing instant death by zombie. Two faces of the die result in a frostbite wound, and three faces of the die result in a regular wound. Half the time one rolls the die, there is no e ffect. Suppose the game calls for a player to roll the die three times in a row. Assume that if a tooth is rolled, death occurs and no further rolls are made. Assume also that if three wounds of any kind are rolled, death occurs. What is the probability that a player rolling the die three times escapes death?
I tried (11/12)(11/12)(6/12), but I don't think that this accounts for the order of the die. For example, if I rolled a non-wound on the second roll, wouldn't that change my third probability?
 - 1
 $\begingroup$ frost bite = regular wound in this exercise? $\endgroup$ – marmouset Sep 14 '16 at 13:06
First of all, you must avoid that tooth three times running. The probability of that is $\left(\frac {11}{12}\right)^3$.
Now, let's suppose that you have dodged the tooth. That means that each of your three rolls is one of the other eleven options. Five of these are wounds, though, and you mustn't get three of those. What is the (conditional) probability of getting three of those? Well, it's $\left(\frac {5}{11}\right)^3$. Therefore the conditional probability that you don't get three wounds is $1-\left(\frac {5}{11}\right)^3$.
As you need both things to occur the final answer is $$\left(\frac {11}{12}\right)^3\times\left(1-\left(\frac {5}{11}\right)^3\right)=0.697916667$$
| cite | improve this answer | |
Your Answer


Alex Rahin is the chief product & technology officer at Cervest, a startup that uses artificial intelligence to predict the risks and effects of climate volatility.
The insights created from Cervest's Earth Science AI can then be used to help businesses protect their assets from climate events, such as extreme heat, fire, flood or drought. In 2019, Cervest raised £3.8m in a pre-Series A funding round.
Rahin has over 25 years' experience working with technology companies such as Just Eat, Microsoft and Amazon. In this Q&A, the 22nd in our weekly series, Rahin shares the core values he lives by, describes what it's like joining a company during a pandemic, and explains why we should worry about an overreliance on technology.
Alex Rahin: I'm a scientist and engineer by trade. Before joining Cervest in March, I served as CPTO at Beamly, and as chief data officer at Just Eat.
Outside of my career, I've always enjoyed being outside and have developed a real love for nature, in particular mountains.
There are not many opportunities where you find a role that matches both the personal and professional trajectory you are on. Cervest is the perfect combination of two of my passions – the opportunity to work on such exciting technology whilst working towards the collective goal of protecting the planet.
At Cervest, we are building Earth Science AI. This involves providing personalised data-led insights that help organisations and their value chain predict and manage the short and long term effects of the changing climate.
Climate risk is at a crossroads where a fundamental behavioural shift is needed to ensure that all organisations are held accountable for their contribution towards climate change, yet its inclusion on the agenda of major corporations and organisations is near non-existent. We're continually working towards the visualisation of this information through innovation.
Across the industry, in my opinion, the most important thing happening is the accelerating pace of innovation in machine learning – especially deep learning – enabled by advances in algorithms, increasing availability of data and easy access to computing power at decreasing prices. Fundamentally, this increase in availability allows for the constant innovation needed to build solutions to some of mankind's toughest challenges.
First and foremost, AI applied to use cases in climate security. As businesses continue to see more emphasis being placed on environmental targets, the potential use of innovative technology in predicting, solving and actioning these risks is huge. This is an emerging area of AI where we now have the critical mass of data, algorithms, computation and market demand. This has long been a view of mine, especially with my love of the environment, so having the opportunity to work at Cervest at this particular point in time is very exciting for me.
Another area that comes to mind is the applications of AI across the healthcare industry. The nature of the Covid-19 pandemic means the potential of this area has been highlighted, and developments in medicine, biology, genetics, drug discovery all have a part to play in overcoming this virus and others.
Moving away from the developments of AI, the area of 3D printing is also very exciting to watch with implications for manufacturing and construction industries, as well as a potential roll-out in the consumer industry in the near future.
How do you separate hype from disruptor?
The emergence of a wealth of high-functioning startups across Europe, unfortunately, means that it's getting hard to differentiate the real disruptors from the hype. At Cervest, we have always focused on the research and science behind building our solution. There are no shortcuts on this journey, and we are at a happy medium where the research we do in the initial stages of our continued climate analysis informs the platform itself with the end goal to create a system that enables interconnected climate and land risk analysis to drive better decisions.
From a more holistic point of view, it is fundamental to dive deep into what's different about an emerging product or solution. From there, you can explore whether it's better than what already exists and by how much. Of course, there are exterior factors to this such as its dependencies, underlying economics, broader macro-level implications and resistance.
What's the best bit of advice you've been given?
I like to live by the advice to be motivated, driven and passionate for your work, and surround yourself with individuals who have this same motivation, drive and passion. If you stick to these core principles, then you will find that every other echelon of your work will fall into place. Important parts of the modern workplace such as collaboration and team development become a lot easier when you remember those core values.
Alex Rahin Cervest
Alex Rahin, Cervest CPTO. (via Cervest)
Where did your interest in tech come from?
I have been in love with maths and science for as long as I can remember. Early in my studies I became inspired with using science to 'build things', which is in a sense a definition of technology. Then I made a transition from maths and physics to electrical engineering and computer science, which I studied at UC Berkeley.
What does a typical day look like for you?
My typical day at Cervest has been atypical since day one. I joined the Cervest team since the government enforced lockdown and therefore have been working and onboarding remotely. Whilst I'm keen to get into the office and integrate with the team in a more traditional sense, the fact that we are able to work so efficiently and effectively shows what an incredible team I've joined. Some of the challenges you have as a leader of an organisation has been validated by the fact that I haven't been in the office, but then these are opportunities for learning, especially since it is likely we will be working remotely for a good while yet.
Typically, I try to hold one-to-one meetings with members of my team every day, whether that be about planning, strategy execution or decision making. Adapting to this new way of working has led me to find that some of the processes we may take for granted in the office are now critical to day-to-day processes. Being able to chat through feedback and performance in-person is part of what makes workplaces special, and being able to maintain this remotely requires discipline and understanding.
We're fundraising for our Series A, arguably the most critical funding round in a startup's life and we're not only doing it remotely, but during a time of unprecedented change. This is a big focus for the team and in turn means that no one day is the same.
What do you do to relax?
Typically, I enjoy sports. I do a lot of mountaineering, climbing, cycling. Physical activity is a big pillar for me. Music is also a huge part of my life. When I moved to UC Berkeley from France, I took one suitcase packed with CDs.
I also practice meditation, and I can't say enough about its importance both professionally and personally.
Who is your tech hero?
My tech heroes are scientists of the past. Galileo, Isaac Newton and Michael Faraday for example. I have drawn inspiration from their work, but also their life. Faraday had to fight for everything he's earned, and his life was in no way easy. I can take inspiration from that.
The progress they made set the path for where we are today and is part of the reason that I am so pleased to be working with a team that is pioneering a whole industry and for such an important cause.
What's the biggest technological challenge facing humanity?
In some cases, there is an overreliance on technology. Technology is a tool but the root of the problem is political and economical. Technology can be a catalyst for telling us where to make these changes, but without humans acting on these decisions we have no way of actioning this.
Read more: CTO Talk: Q&A with Dynatrace's Bernd Greifeneder


text:
Missing pulse detector circuit using NE555
An NE555 timer IC connected as shown here can detect a missing pulse or abnormally long period between two consecutive pulses in a train of pulses. Such circuits can be used to detect the intermittent firing of the spark plug of an automobile or to monitor the heart beat of a sick patient.
The signal from the pick up transducer is shaped to form a negative going pulse and is applied to pin 2 of the IC which is connected as a mono stable. As long as the spacing between the pulse is less than the timing interval,the timing cycle is continuously reset by the input pulses and the capacitor is discharged via T1. A decrease in pulse frequency or a missing pulse permits completion of time interval which causes a change in the output level.
Circuit diagram with Parts list.
- Assemble the circuit on a good quality PCB or common board.
- The circuit can be powered from a 9V battery or 9V DC power supply.
- The IC1 NE555 could be mounted on a holder.


text:
For many, carrying with a round in the chamber is a step that hasn't been taken yet. The reasons vary, but it's definitely an issue for a lot of people. In this article, I am going to discuss a simple thing that you can do to ease your mind.
If you came here to say something along the lines of "Carrying with an empty chamber is stupid" or "Why even carry if your pipe is empty?", save it. This article isn't for you.
If you're still reading, I hope that you're here for the tip in this article.
First, keep this in mind: For a modern handgun to fire, the trigger needs to be depressed. For the following example, I am going to be referring to Glock pistols as the example, since they have no external safety (aside from the trigger safety).
If you don't already, start to carry your firearm with the trigger in the forward position, shown below:
At the end of the day when you take your firearm out of your holster to put it away, chances are the trigger is still in that position. If it is, congrats, you did not 'experience' a negligent discharge. The word 'experience' is in quotes because we are under the assumption that a round was not in the chamber, rendering a negligent discharge impossible unless you racked the slide before the trigger was accidentally depressed.
Now, if you ever unholster your firearm and see the trigger pulled back, we have a real problem. Again, if your trigger is in the position shown below when you unholster, you need to take a serious look at your carry setup. Something or someone is pulling your trigger back:
If you are using a proper holster (by our standards, one that is molded to your particular firearm) and follow all of the safety protocols, a depress of the trigger should never occur if the firearm remains in the holster.
Another area of concern is holstering the firearm. This is rather obsolete given the scenerio above, but I'll touch on it anyway. Holstering is something that everyone should practice on a regular basis. If you are still concerned with holstering with a round in the chamber, try the same thing as we just discussed. If you holster and unholster, and your trigger is still forward, you're good to go. The main concern with holstering would be getting a piece of clothing inside the trigger guard, or a part of the holster itself. With the right setup and continued practice, this will become a non-issue.
I hope that this article helps at least one person who has been hesitant to carry with a round in the chamber. We're all on different levels of carrying, and it's nothing to be ashamed of.
You may also be interested in the following articles:
Why We Recommend Carrying With A Round In The Chamber (Warning: Graphic)


Skip to navigation Skip to content
How To Remove Limescale From Your Toilet
Limescale is a common problem in the UK that can leave unsightly stains in your toilet. In this guide we outline how you can remove limescale from your toilet, where it comes from and how you can prevent it coming back.
How To Remove Limescale From Your Toilet:
 1. Pour vinegar into the toilet bowl
 2. Leave for 3-4 hours
 3. Scrub the toilet bowl
 4. Flush the toilet
 5. Repeat as necessary
Step 1: Pour Vinegar Into Your Toilet
Vinegar is a great natural cleaner which will be cheaper than most specialist cleaners your can buy. First, pour a litre of white vinegar into your toilet bowl. As your pour make sure the vinegar reaches all parts of the bowl. Pay close attention to covering areas with particularly bad limescale.
Step 2: Allow The Vinegar To Sit
After you've poured the vinegar into your toilet, leave it to work its magic for 3-4 hours. If your limescale is particularly bad you can leave it overnight.
Step 3: Scrub The Toilet Bowl
Now you've let the vinegar work, it's time to use your toilet brush to scrub the areas of limescale. At this point you can also add some more vinegar if the stains don't appear to be shifting.
If you have some particularly stubborn stains, grab a pair of gloves & scrub the areas more vigorously with the scourer side of a kitchen sponge. When scrubbing, it's important to apply vinegar or water to the area first and be very careful not to scratch the surface of the toilet.
Step 4: Flush The Toilet
Once you feel you've scrubbed all of the limescale away, flush the toilet a few times to clear any remaining vinegar and mineral deposits.
Step 5: Repeat Until The Toilet Is Clean
If you've followed these steps and your toilet still isn't clean, you can repeat the process above until you can hopefully remove all of the limescale. If the stains are really stubborn, try leaving the vinegar in your toilet overnight, which should hopefully shift the limescale. If this method doesn't work for you, it could be time to replace your toilet with a shiny new one.
Remove Limescale With Cola
The acidity of cola makes it really useful for cleaning purposes, particularly when trying to break down limescale. This is another method which will save you having to buy expensive specialist cleaners.
1. Pour Cola Around The Bowl
First you'll need to pour the cola, making sure you coat the whole bowl whilst paying close attention to any problem limescale areas. Although there isn't a specific amount to use, roughly the size of a regular can of cola should be enough.
2. Leave To Sit
Next you'll need to leave the cola to get to work. This should be for at least an hour but you can leave it overnight if there's a large amount of limescale.
3. Scrub The Limescale
As with the vinegar, you'll next need to scrub the limescale with your toilet brush. You can again use gloves and a kitchen sponge to work harder at particularly stubborn areas.
4. Flush The Toilet
You can now flush your toilet and hopefully see that the limescale is removed. If it doesn't work the first time you can always repeat the process again.
Removing Limescale With Specialist Products
There's a whole host of specialist limescale cleaning products available which should help remove any stains. If you choose to use one of these cleaners, make sure it will actually remove the limescale, rather than just altering its colour.
Sandpaper Or Pumice Stones
You might hear that people have had success removing limescale by scrubbing with something harsher such as sandpaper or a pumice stone. Although this may help remove the limescale, there's also a chance that you could damage the finish of your toilet, so this isn't something we'd recommend.
What Is Limescale?
Limescale is a chalky substance that you'll find on many items throughout your home that come into contact with water. When water moves through softer rocks like limestone or chalk, it will pick up some of their minerals. These minerals will remain in the water when it reaches your home which then leads to limescale stains.
Limescale, which is mainly composed of calcium carbonate, will appear in your toilet as a brown, orange or pink coloured stain.
Hard Water Areas
Limescale is a problem in hard water areas. Hard water has high concentrations of minerals within it, compared to soft water which will have a very small or no mineral content.
Whether you have hard water or soft water will largely depend on where you live. You can check with your water company but overall, over 60% of people in the UK live in a hard water area.
Preventing Limescale In Your Toilet
As limescale is caused by the mineral content of the water supply to your home, rather than a lack of cleaning, preventing limescale buildups can be difficult. However, using the methods above regularly will help remove the limescale before it becomes a harder problem to tackle.
Lemon Or Vinegar
Pouring a small amount of lemon or vinegar into your toilet once a month can help prevent the build up of limescale deposits. The acidity of these will help wash away any smaller limescale deposits without the need for intense scrubbing.
Water Softeners
Another, albeit more expensive approach is installing a water softener in your home. These devices will remove the minerals in the hard water supply, which should prevent the buildup of limescale in your toilet.
Keeping your toilet free of limescale isn't easy but with a little bit of work, you should be able to keep it looking great. If you've scrubbed your toilet and the limescale doesn't want to budge, it could be time to replace it. Luckily, Tap Warehouse have an excellent selection of toilets to choose from.
You might also like
Back to top


text:
When you do the exact same boring tasks at your job every single day, this is an example of monotony.
- sameness of tone or pitch, or continuance of the same tone without variation
- lack of variation or variety
- tiresome sameness or uniformity
Origin of monotonyFrench monotonie ; from Classical Greek monotonia: see monotonous
- Uniformity or lack of variation in pitch, intonation, or inflection.
- Tedious sameness or repetitiousness: the monotony of daily routine.
Origin of monotonyGreek monotoni&amacron;, from monotonos, monotonous; see monotonous.