text:
Document – Privacy Notice
Topic – Data Protection
Policy Adopted – 24/05/2018
Approved by Board of Directors – 25/05/18
Version – 1
The Company is a recruitment business which provides work-finding services to its clients and work-seekers. The Company must process personal data (including sensitive personal data) so that it can provide these services – in doing so, the Company acts as a data controller.
You may give your personal details to the Company directly, such as on an application or registration form or via our website, or we may collect them from another source such as a jobs board. The Company must have a legal basis for processing your personal data. For the purposes of providing you with work-finding services and/or information relating to roles relevant to you we will only use your personal data in accordance with this privacy statement. At all times we will comply with current data protection laws.
1. Collection and use of personal data
a. Purpose of processing and legal basis
b. Legitimate interest
c. Statutory/contractual requirement
d. Recipients of data
2. Information to be provided when data is not collected directly from the data subject
a. Categories of data
b. Sources of data
3. Overseas transfers
4. Data retention
5. Your rights
6. Automated decision making
7. Cookies
8. Login files
9. Links to external sites
10. Sale of the business
11. Data security
12. Changes to this privacy statement
13. Complaints or queries
a. Purpose of processing and legal basis
The Company will collect your personal data (which may include sensitive personal data) and will process your personal data for the purposes of providing you with work-finding services. This includes for example, contacting you about job opportunities, assessing your suitability for those opportunities, updating our databases, putting you forward for job opportunities, arranging payments to you and developing and managing our services and relationship with you and our clients.
If you have opted-in we may also send you marketing information and news via email/ text. You can opt-out from receiving these at any time by clicking "unsubscribe" when you receive these communications from us.
In some cases we may be under a duty to disclose or share your personal data in order to comply with any legal obligation, or in order to enforce or apply our terms of use and other agreements; or to protect the rights, property, or safety of Links Recruitment Group, our clients, customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction. We may also use your information during the course of internal audits to demonstrate our compliance with certain industry standards.
We must have a legal basis to process your personal data. The legal bases we rely upon to offer our work-finding services to you are:
b. Legitimate interest
This is where the Company has a legitimate reason to process your data provided it is reasonable and does not go against what you would reasonably expect from us. Where the Company has relied on a legitimate interest to process your personal data our legitimate interests is/are as follows:
c. Statutory/contractual requirement
The Company has certain legal and contractual requirements to collect personal data (e.g. to comply with the Conduct of Employment Agencies and Employment Businesses Regulations 2003, immigration and tax legislation, and in some circumstances safeguarding requirements.) Our clients may also require this personal data, and/or we may need your data to enter into a contract with you. If you do not give us personal data we need to collect we may not be able to continue to provide work-finding services to you.
d. Recipient/s of data
The Company will process your personal data and/or sensitive personal data with the following recipients:
Categories of data: The Company has collected the following personal data on you:
Personal data:
Sensitive personal data:
Source of the personal data: The Company sourced your personal data/sensitive personal data:
The data that we collect from you may be transferred to, and stored at, a destination outside the European Economic Area i.e. the EU member states plus Norway, Iceland and Liechtenstein ("EEA"). It may also be processed by staff operating outside the EEA who work for us or for one of our suppliers. Such staff maybe engaged in, among other things, the processing of your payment details and the provision of support services. We will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with our privacy policy.
The Company will retain your personal data only for as long as is necessary for the purpose we collect it. Different laws may also require us to keep different data for different periods of time. For example, the Conduct of Employment Agencies and Employment Businesses Regulations 2003, require us to keep work-seeker records for at least one year from (a) the date of their creation or (b) after the date on which we last provide you with work-finding services.
We must also keep your payroll records, holiday pay, sick pay and pensions auto-enrolment records for as long as is legally required by HMRC and associated national minimum wage, social security and tax legislation. This is currently 3 to 6 years.
Where the Company has obtained your consent to process your personal and sensitive personal data as outlined within the consent form, we will do so in line with our retention policy which will be 7 years from the date of consent. Upon expiry of that period the Company will seek further consent from you. Where consent is not granted the Company will cease to process your personal and sensitive personal data.
Please be aware that you have the following data protection rights:
Where you have consented to the Company processing your personal data and sensitive personal data you have the right to withdraw that consent at any time by contacting Daniel Puttick on firstname.lastname@example.com. Please note that if you withdraw your consent to further processing that does not affect any processing done prior to the withdrawal of that consent, or which is done according to another legal basis.
There may be circumstances where the Company will still need to process your data for legal or official reasons. Where this is the case, we will tell you and we will restrict the data to only what is necessary for those specific reasons.
If you believe that any of your data that the Company processes is incorrect or incomplete, please contact us using the details above and we will take reasonable steps to check its accuracy and correct it where necessary.
You can also contact us using the above details if you want us to restrict the type or amount of data we process for you, access your personal data or exercise any of the other rights listed above
We may obtain data about you from cookies. These are small text files that are placed on your computer by websites that you visit. They are widely used in order to make websites work, or work more efficiently, as well as to provide information to the owners of the site. Cookies also enable us to deliver more personalised content.
The table below explains the cookies we use and why.
Cookie | Purpose | Expiration Time |
_ga | Used to distinguish users. | 2 Years |
_gid | Used to distinguish users. | 24 Hours |
_gat | Used to throttle request rate. | 1 Minute |
AMP_TOKEN | Contains a token that can be used to retrieve a Client ID from AMP Client ID service. Other possible values indicate opt-out, inflight request or an error retrieving a Client ID from AMP Client ID service. | 30 seconds to 1 year |
_gac_ | Contains campaign related information for the user. | 90 days |
TawkConnectionTime | Contains information about the tawk.io live chat system and if a user is using it. | Session |
Most web browsers allow some control of most cookies through the browser settings. To find out more about cookies, including how to see what cookies have been set and how to manage and delete them, visit www.aboutcookies.org or www.allaboutcookies.org.
We use IP addresses to analyse trends, administer the site, track users' movements, and to gather broad demographic information for aggregate use. IP addresses are not linked to personally identifiable information.
The Company's website may contains links to other external websites. Please be aware that the Company is not responsible for the privacy practices of such other sites. When you leave our site we encourage you to read the privacy statements of each and every website that collects personally identifiable information. This privacy statement applies solely to information collected by the Company's website.
If the Company's business is sold or integrated with another business your details may be disclosed to our advisers and any prospective purchasers and their advisers and will be passed on to the new owners of the business.
The Company takes every precaution to protect our users' information. Measures taken are – firewalls, browser certification technology, encryption, limited access, use of passwords.
Only employees who need the information to perform a specific job (for example, consultants, our accounts clerk or a marketing assistant) are granted access to your information.
The Company uses all reasonable efforts to safeguard your personal information. However, you should be aware that the use of email/ the Internet is not entirely secure and for this reason the Company cannot guarantee the security or integrity of any personal information which is transferred from you or to you via email/ the Internet.
If you share a device with others we recommend that you do not select the "remember my details" function when that option is offered.
If you have any questions about the security at our website, you can email Daniel Puttick on email@example.com
We will update this privacy statement from time to time. We will post any changes on the statement with revision dates. If we make any material changes, we will notify you.
If you wish to complain about this privacy notice or any of the procedures set out in it please contact:
Contact – Daniel Puttick
Email – firstname.lastname@example.com
Telephone – 02920 102508
You also have the right to raise concerns with Information Commissioner's Office on 0303 123 1113 or at https://ico.org.uk/concerns/, or any other relevant supervisory authority should your personal data be processed outside of the UK, if you believe that your data protection rights have not been adhered to.


text:
I love all things lemon and this recipe is one of my favorites. In fact, Lori Longbothom calls this "My Favorite Lemon Pudding"--that makes two of us and I am sure you will be number three, four, five...
Lori's recipe calls for just lemons, and as good as that is, I like to take it to the next level and use Meyer lemons. Meyer lemons are not quite as tart as lemons and are a sort of cross between a lemon and an orange, therefore they are a tad sweeter than a standard lemon with a noticeable floral essence. If you can't find Meyer lemons, you can get good results if you use half lemon juice and half orange juice--freshly squeezed of course.
By using simple ingredients and a simple technique, you will be rewarded with a spoonful of luscious, lemony love. A dollop of lightly sweetened whipped cream doesn't hurt either.
Printable Recipe
Meyer Lemon Pudding
serves 6
3/4 cup granulated sugar
1/4 cup cornstarch
2 1/2 cups whole milk
3 extra large egg yolks, lightly beaten
2 tablespoons finely grated Meyer lemon zest (or 1 tablespoon lemon zest + 1 tablespoon orange zest)
1/4 teaspoon kosher salt
1/2 cup freshly squeezed Meyer lemon juice (or 1/4 cup freshly squeezed lemon juice + 1/4 cup freshly squeezed orange juice)
2 tablespoons unsalted butter at room temperature
In a medium saucepan, whisk together the sugar and cornstarch. Add the milk, egg yolks, zest, and salt and whisk until smooth. Cook over medium heat, stirring frequently at first and constantly toward the end, until thickened.
Remove the pan from the heat and stir in the citrus juice and butter. Place a fine mesh sieve over a large bowl and pour the mixture through the strainer. Divide the mixture into 6 serving dishes and let cool to room temperature. Refrigerate, loosely covered (tightly covered will trap too much moisture, making a watery pudding) for at least 3 hours and up to 3 days. Serve chilled by itself or with lightly sweetened whipped cream.
Source: Adapted from Luscious Lemon Desserts

subset: commoncrawl


text:
Details | ||||
Ref. Name: |
Old Ref: NA |
Status: Ratified |
Date: 29 July 2011 |
1) Introduction
Because the Global IPv4 free pool has run out, the IANA has implemented the Global Policy for the Allocation of the Remaining IPv4 Address Space, meaning after the Final /8, RIRs will no longer receive Address space from the IANA as in the past. This puts AFRINIC in a precarious situation as the current allocation and assignment Policy cannot be sustained in the mid to longterm.
2) Summary of How this Proposal Addresses the Problem
In order to ensure a smooth transition to IPv6, AfriNIC's pool should be managed to provide members with address space after the IPv4 pool is depleted. This will help in maintaining IPv4 networks while deploying IPv6 networks - a practice that characterizes the transition period. This document proposes a strategy for allocation and Assignment and maintenance of AfriNIC's IPv4 pool post exhaustion. This policy begins when AfriNIC starts to allocation space from the Final /8
3) The Proposal
This policy (IPv4 Soft Landing), applies to the management of address space that will be available to AfriNIC after the current IPv4 pool is depleted. The purpose of this document is to ensure that address space is assigned and/or allocated in a manner that is acceptable to the AfriNIC community especially during this time of IPv4 exhaustion.
3.1) Policy Documents to be affected
3.2) Definitions
- Local Internet Registry (LIR) - A Local Internet Registry (LIR) is an Internet Registry (IR) that receives allocations from an RIR and assigns address space to customers who use its services. LIRs are generally ISPs and their customers are end-users and possibly other ISPs. LIRs must be members of an RIR like AfriNIC; which serves the Africa Region and part of the Indian Ocean (Comoros, Madagascar, Mauritius, and Seychelles).
- Existing LIR's - An Existing LIR is a LIR that assigns address space to 'end-users' and has already been assigned or allocated IPv4 address space by AfriNIC.
- New LIR - A New LIR, is a LIR that assigns address space to 'end-users' and is a member of AfriNIC but has not been assigned or allocated any IPv4 address space prior to the Exhaustion phase.
- End User - An End User is an organization that receives assignments of IP addresses exclusively for use in its operational networks
- Final /8 block of IPv4 address space, or "Final /8" - The Final /8 block of IPv4 address space, or "Final /8", is the /8 block of IPv4 address space that has been allocated by the IANA to AfriNIC in terms of section 2.2 C of the Global Policy for the Allocation of the Remaining IPv4 Address Space <http://www.icann.org/en/general/allocation-remaining-ipv4-space.html> at the time of exhaustion of the IANA pool of IPv4 address space. AfriNIC's version of the Global Policy for the Allocation of the Remaining IPv4 Address Space is also known as AFPUB-2009-v4-001.
3.3) Summary
This proposal describes how AfriNIC shall assign, allocate, and manage IPv4 resources during the "Exhaustion Phase" which begins when AfriNIC first needs to assign or allocate IP addresses from the Final /8 block of IPv4 address space.
3.4) Current Phase
The "Current Phase" is the status-quo at the time of adoption of this policy. During this phase, AfriNIC will continue allocating or assigning IPv4 addresses to LIRs and End Users using the current policies, including:
- AFPUB-2005-v4-001 : http://www.afrinic.net/docs/policies/AFPUB-2005-v4-001.htm
- AFPUB-2006-GEN-001 <http://www.afrinic.net/docs/policies/AFPUB-2006-GEN-001.htm>, and any future amended versions of such policies.
The current phase will continue until an otherwise-valid request for IPv4 address space from any LIR or end user to AfriNIC either
(a) cannot be fulfilled with the IPv4 address space available in the AfriNIC pool (with the exception of the Final /8), or
(b) can be fulfilled, but would leave the AfriNIC IPv4 address pool empty (with the exception of the Final /8).
The request that results in either of the above conditions being fulfilled will be the last IPv4 address space request that AfriNIC will accept from any LIR or End User in the Current Phase. If the request can be processed in terms of the Current Phase policies, then it will be so processed; otherwise, it will be processed in terms of Exhaustion Phase policies.
AfriNIC will publically announce that the Exhaustion Phase has begun at this point. For the avoidance of doubt all applications that are currently in the process at this point will be evaluated as per the new policy
3.5) Exhaustion Phase
During the Exhaustion Phase, the following allocation and assignment policy will be used. This policy applies to both LIRs and End Users, and applies to all IPv4 address space allocated, assigned, or otherwise managed by AfriNIC during the transition to and after the beginning of the Exhaustion Phase, regardless of whether or not such IPv4 address space is a part of the Final /8. The exhaustion phase will be divided into two parts:-
3.5.1) Exhaustion Phase 1
During this phase, allocation/assignment of address space will continue as in the Current phase (/24 for a EU and /22 for a LIR) but the maximum will change from /10 to /13.
Allocations and assignments will be made from the Final /8 or from any other IPv4 address space available to AfriNIC, until no more than a /11 of non-reserved space is available in the Final /8. At this point the Exhaustion Phase 2 will begin. For the avoidance of doubt all applications will be in the process at this point will be evaluated as per the new policy
3.5.2) Exhaustion Phase 2
During this phase a minimum allocation/assignment size will be /24, and the maximum will be /22 per allocation/assignment.
3.6) If any LIR or End User requesting IPv4 address space during the Exhaustion
There is no explicit limit on the number of times an organization may request additional IPv4 address space during the Exhaustion Period
3.7) The current allocation and assignment period of 12 months shall be changed to 8 months.
The current allocation and assignment period of 12 months shall be changed to 8 months. This will help to ensure that LIRs request only for resources they need in the short to medium term, and promote fairness in the equitable distribution of the last IPv4 address pool. This assignment period will remain the same throughout the life span of this Policy
3.8) Allocation Criteria
In order to receive IPv4 allocations or assignments during the Exhaustion Phase, the LIR or End User must have used at least 90% of all previous allocations or assignments (including those made during both the Current Phase and the Exhaustion Phase). In the case of new LIRs or End Users with no previous allocations or assignments, this requirement does not apply to their first allocation or assignment request.
AfriNIC resources are for AfriNIC service region and any use outside the region should be soley in support of connectivity back to the AfriNIC region
3.9) IPv4 Address Space Reserve
- A /12 IPv4 address block will be in reserved out of the Final /8. This /12 IPv4 address block shall be preserved by AfriNIC for some future uses, as yet unforeseen. The Internet is innovative and we cannot predict with certainty what might happen. Therefore, it is prudent to keep this block in reserve, just in case some future requirement creates a demand for IPv4 addresses.
- When AfriNIC, can no longer meet any more requests for address space (from the Final /8 or from any other available address space), the Board may at its discretion and considering the demand and other factors at the time replenish the exhaustion pool with whatever address space (or part thereof) that may be available to AfriNIC at the time, in a manner that is in the best interest of the community.
Acknowledgments - Thanks to RPD-ML and especially Alain Aina and Alan Barrett for their contributions.
4) History
Date | Revision |
07.01.2009 | Proposal first posted to the mailing list by PDP-MG chair. |
13.01.2009 | Updated version of proposal is posted to mailing list by author. |
13.05.2009 | Updated version of proposal is posted to mailing list by author |
23.05.2009 | Proposal fails to reach consensus at AfriNIC-10 (21.05.2009, Cairo-Egypt) |
28.09.2009 | Updated version of proposal is posted to mailing list by author. |
27.11.2009 | Proposal fails to reach consensus at AfriNIC-11 |
12.05.2010 | Author posts updated text of proposal to mailing list. New reference now AFPUB-2010-v4-001 |
03.06.2010 | Proposal reached consensus during AfriNIC-12 in Kigali - Rwanda with some modifications |
25.06.2010 | 15 Days Last Call for Comments period starts |
14.07.2010 | 15 Days Last Call for Comments period ends. Due to objections on during the period, proposal now goes back to mailing list for discussion. |
07.11.2010 | Author posts updated copy of proposal to mailing list. |
08.11.2010 | Updated copy of policy proposal posted online. |
18.11.2010 | Author posts updated copy of proposal to mailing list. |
25.11.2010 | Proposal finds consensus during AfriNIC-13 in Johannesburg, South Africa |
14.11.2010 | Staff Comments and Implementation Analysis by AfriNIC is posted to the mailing list |
25.01.2011 | Author posts updated copy of proposal online, making modifications agreed upon during last public meeting. New reference now AFPUB-2010-v4-005-draft-01 |
21.02.2011 | Updates posted to website and rpd mailing list |
10.05.2011 | Updated version draft-03 of proposal posted to website and rpd mailing list |
28.05.2011 | 15 Days Last Call for Comments ends. PDWG co-chairs declare No Consensus |
30.05.2011 | Draft 04 posted to rpd. |
10.06.2011 | Draft 04 gains consensus at AFRINIC14 subject to some changes |
05.08.2011 | Updated version draft-05 posted to website and rpd mailing list |
05.09.2011 | Last Call on draft-05 of the proposal |
14.11.2011 | Declaration of concensus after last call. |
21.11.2011 | Ratified by Board (Resolution RESOLUTION [201111.138]) |
History of modifications:


text:
A recent NPR story about homeless veterans brought a remarkable email from listener Gary Bressick, who runs an insurance agency in Los Angeles. The story focused on one veteran, James Brown, who had just moved into his first apartment after living on the streets for most of the previous three decades.
It turns out that Brown spent most of 2011 living in the entryway of Bressick's two-story office building in Encino, an upper-middle-class part of the city. Bressick says he told Brown it was OK to stay there, as long as he was gone by 8:30 in the morning — when the office opened — and if he kept the place clean.
Bressick says he did it because he'd been blessed in life, but "not everyone's so blessed. What's so wrong about letting a guy have a place to sleep?" He says he didn't even know Brown's name.
"He always picked up," says Bressick. "We never got one complaint from a client." He was struck by how organized Brown was with his belongings, lining them up along one side of the alcove each night before packing up each morning.
But one day last year, Brown just disappeared. Bressick didn't know where he'd gone but figured he'd just moved on.
Then in December, an envelope arrived at the building addressed to "The Attention of the Property Owner."
Inside was a holiday card with the following handwritten note: "I am the man who was encamping in the 'All State' alcove. I want to thank you for your tolerance in what was clearly the most challenging time of my life." It was signed with a heart and a peace symbol.
Bressick was blown away. He wrote back and asked the man (he still didn't know his name) to get in touch, which he did. Bressick and the other owners of the building invited Brown to come back for a visit and to accept a $200 gift for the holidays.
"We decided we'd like to help him out," says Bressick.
In fact, James Brown told me when I interviewed him for the NPR story last month that he was surprised by the kindness he received as a homeless person in Encino, that it wasn't always easy being out on the streets.
"It was just really strange to be in an area where everybody has a brand new car. I mean everyone. Even kids out there seem to. It was just a very opulent area. And here I am hanging out, " said Brown, who described himself as "dirty" and "shirky-looking" at the time.
"The people there took me under their wings, surprisingly, and I was able to really get some really, a lot of support," he added.
Brown said Bressick initially "read him the riot act "(Bressick admits he told Brown he couldn't hang out in front of his building the first time he saw him there). But Brown said, "After a while, when he saw that I seemed to be just harmless and kept to where I was quite clean, I was able to be there."
And it's where he stayed, until he came in contact with some local nonprofits that helped move him into his first home. Brown says it's "amazing" to live inside, and he hopes to stay there for the rest of his life.
We spoke to Brown's caseworker, who confirmed Brown had sent the letter. Not only that but he said Brown sent at least four other letters to places that had helped him out over the years when he was homeless.
(Pam Fessler is a correspondent on NPR's National Desk.)
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
HCPD1002596%5Fen.mp4 |
Any emotional response that interrupts normal breathing, such as anger, crying, anxiety, depression, or even laughter, can bring on asthma symptoms. But for most people, stress is the most common emotional trigger.
Your healthcare provider may advise you to use your quick-relief medication in these situations. Or they might prescribe other medications to help your emotions.
Some people find it helpful to practice deep breathing after taking their medication to get their breathing back on track.
But in the long run, the most effective thing you can do is learn how to manage the stress in your life.
One approach is to avoid stressful situations whenever possible. For example, if you have a tendency to take on too many commitments, you can learn to say no.
Another approach is to change the way you think about a situation, so that it no longer seems stressful. For instance, instead of letting traffic upset you, you could try seeing it as an opportunity to listen to relaxing music or an audio book.
Using relaxation techniques to reduce your stress level is another great approach. Deep breathing exercises, yoga, meditation, biofeedback, or any activity that relaxes your body and mind is beneficial.
Having support is also important. If you're having a problem, talk it over with a friend or family member. Sometimes it might be helpful to get support from a professional. You can find help on a one-on-one basis, or with a group. Some people find that prayer also helps.
And finally, take care of yourself. Eat right, exercise and get plenty of rest.
By taking steps to manage stress, you'll be less likely to experience asthma symptoms in difficult situations. And you'll be healthier overall.
Animation Copyright © Milner-Fenwick


text:
Tuesday, October 25, 2011
Fennel and Potato Soup - Zuppa di Finocchio e Patate
From the kitchen of One Perfect Bite...The spirit was willing but the body was way too weak to spend this gorgeous Oregon day indoors. So, we put chores aside and the Silver Fox and I headed to the coast for a wonderful meal and an afternoon of skipping waves and walking along the shore. The breakers were high and probably tempting to those who don't know this coast. The water here is very very cold, and only the foolish brave it without special gear. California got the beaches and bikinis while Oregon got the coast line and, arguably, the better deal. Our coast is aching beautiful, even in foul weather, and on a day like today it can take your breath away. So we walked and walked and even talked some, but despite the distance covered never manged to regain an appetite for another meal. That meant soup for supper tonight. I've been wanting to try a recipe for an Italian fennel soup that I found in Saveur magazine some time ago and this was the perfect night to experiment. The recipe is quick and easy to prepare and the soup, which has a fennel base, is really interesting. I loved the soup and will make it again and again. I think those of you who like fennel, or are just looking for something different for a change, will enjoy it as well. The soup can be served hot or cold. Here's the recipe.
Fennel and Potato Soup...from the kitchen of One Perfect Bite courtesy of Saveur
3 medium fennel bulbs + 2 tablespoons chopped fennel fronds
1 tablespoon butter butter
1 tablespoon extra-virgin olive oil
3 shallots, peeled and finely chopped
4 cups chicken stock
1 large russet potato, peeled and cubed
Salt and freshly ground black pepper
1) Trim, quarter, and core fennel bulbs, then slice into medium-size pieces, reserving 2 tablespoons feathery fennel fronds. Heat butter and olive oil together in a medium pot over medium-low heat. When butter has melted, add sliced fennel, shallots, and 1 cup of the stock. Cover and simmer gently until fennel is soft and translucent, about 15 minutes.
2) Increase heat to medium, add potatoes and remaining 3 cups stock, and bring to a boil. Reduce heat to medium-low and simmer gently until potatoes are very soft and cooked through, about 25 minutes. Season soup to taste with salt and pepper.
3) Gently mash vegetables with a potato masher or the back of a wooden spoon until soup is thick and chunky. Do not puree the mixture. Add a little water or additional stock if it becomes too thick. Chop reserved fennel leaves, then stir into soup. Remove soup from heat and set aside for 5 minutes to allow flavors to develop. Ladle soup into four bowls and serve warm, drizzled with extra-virgin olive oil, if you like.Yield: 4 servings.
One Year Ago Today: Pumpkin Pecan Bread with Streusel Topping
Two Years Ago Today: Albondigas - Spanish Meatballs in Tomato Sauce
41 comments :
I love Fennel.Think this veg is so underrated.Have to admit haven't tried it in soup.I wouldn;t stay indoors either with such a nice nature;)
- October 25, 2011 at 12:15 AM
- Elin said...
Mary...this must be flavorful and tasty...just great for a chilly autumn nite. Thanks for sharing with us the recipe. Have a fun filled day with your family :)
Elin - October 25, 2011 at 12:25 AM
- Ginny Hartzler said...
Your coastline is beautiful, and so is the soup!! And after catching up on your post from yesterday, I am trying to figure out how to hang donuts from the kitchen door frame for a ton of fun!!!
- October 25, 2011 at 12:43 AM
- mia xara said...
Hi Mary,I'd love to try this soup,I like fennel..Your photos are gorgeous,the ocean is one of my greatest weaknesses..Have a good week!
- October 25, 2011 at 12:45 AM
- Fabi said...
I love fennel, especially its fronds. I knew about them in Italy, because in Spain they have a terrible use: they trim the fronds and sell the fennels without them! This soup looks simply delicious, the perfect meal for the first fall days. Big hug and have a nice day, Mary.
- October 25, 2011 at 3:57 AM
- Su m said...
Oh... what a great recipe. I simply adore fennel and I bet this is just wonderfull.
- October 25, 2011 at 4:03 AM
- Manu said...
Hi Mary, I made the SAME soup last night!! ;-))
Have a great day - October 25, 2011 at 4:31 AM
- Priya Suresh said...
Definitely a super inviting soup..
- October 25, 2011 at 4:35 AM
- Ellen Whyte said...
Not my thing this one. Hey, could you write something about beetroot? I have a craving and the plain stuff cooked Dutch style seems a bit dull.
- October 25, 2011 at 4:47 AM
- Lynn said...
Gorgeous pics Mary, all three! Kinda neat to see grass right up water like that-enjoy:@)
- October 25, 2011 at 5:15 AM
- Alessandra said...
Beautiful photos today Mary, and an excellent soup!
Have a great day
Alessandra - October 25, 2011 at 6:29 AM
- Martha said...
I love fennel and it does pair well with potato! When, and if, you can get them in the market here, I'll have to give it a try!
- October 25, 2011 at 6:35 AM
- Sue/the view from great island said...
I always want to live near a coast, as you say, it's just breathtaking.
The soup sounds wonderful, I recently made a fennel and potato gratin and discovered how wonderful the two are as a pair. - October 25, 2011 at 7:33 AM
- That Girl said...
Soup for supper sounds fabulous. And frankly, the water here in CA is far too cold to venture into for me!
- October 25, 2011 at 7:56 AM
It has only been in recent years that I discovered fennel and now it is a staple in my crisper. Soups, stir-fry, casseroles, it is great in so many things.
- October 25, 2011 at 8:28 AM
- Unknown said...
Gorgeous pictures, Mary! Can't blame you for not wanting to stay inside :)
The soup looks and sounds fantastic! So warm and comforting! - October 25, 2011 at 8:52 AM
- Sylvia said...
Love fennel,the soup looks delicious and comforting.
Your coast side is beautiful - October 25, 2011 at 9:10 AM
- Lois said...
I have never tried fennel! But love a hearty soup with potato. Will try it on the weekend...
- October 25, 2011 at 9:47 AM
- Jana said...
I absolutely love the Oregon Coast. Canon Beach is one of my favorite places on this earth, as a matter of fact. I am your neighbor as I live in Washington. I always love to get down to Oregon. Besides being beautiful I also think your weather is better than ours! Thanks for sharing your Oregon Coast pics, I can't wait to visit again.
Great looking soup recipe too. Nothing better than soup with flavorful spices. I am putting a french onion and mushroom soup up on my blog in the next couple of days. I use rosemary to flavor the soup and it is so good!
Nice visiting with you, I will be back. Thanks, Jana http://www.adoctorandanurse.com - October 25, 2011 at 9:51 AM
- Claudia said...
I love a rocky, wave-breaking coastline. Just astonishing in its rugged beauty. And the soup? Yes - I will be doing this. Can't think of a better way to welcome a walker home on a chilly eve.
- October 25, 2011 at 10:20 AM
- Valerie Harrison (bellini) said...
I have really only just rediscovered fennel this year Mary and I know without a doubt that I would love it in a potato soup.
- October 25, 2011 at 10:52 AM
- June said...
How beautiful the Oregon coast is and you're right about the better deal. This soup would be perfect after a day walking the beaches.
- October 25, 2011 at 11:01 AM
- SKIP TO MALOU said...
the recipe looks simple and to be honest i haven't cooked with fennel yet, though i've always wanted to try.
your picture of the waves breaking into the rocks make me miss SD. I miss the coast and the view... you're right no matter what time of day and what kind of weather, the view still lifts your spirits!
have a great day!
malou - October 25, 2011 at 11:03 AM
- The Blonde Duck said...
- October 25, 2011 at 11:48 AM
- T.W. Barritt at Culinary Types said...
I was lucky enough to visit the Oregon coast this past summer - my niece's favorite spot is Canon Beach, and it is breathtaking. Would love to finish a beach walk with this lovely soup.
- October 25, 2011 at 12:02 PM
- Big Dude said...
I'm sure I'll like the soup but I'm sure I'd like a day along the coast even more. You guys made a good decision, the chores will always be there when your day of making memories is over.
- October 25, 2011 at 1:07 PM
- Emily Malloy said...
This soup is perfection!!
- October 25, 2011 at 1:11 PM
- Unknown said...
What a beautiful sounding soup Mary. I am mad about fennel lately. Simply wonderful.
The photos look gorgeous as well.
Have a nice day. - October 25, 2011 at 1:29 PM
- Allie said...
That soup and the view both amazing! Beautiful pictures! Thank you for your kind comment on my blog. Enjoy your day!
- October 25, 2011 at 2:21 PM
- aisyah sakaria said...
hey mary, thaks for the visit. woww the soup look very delicious. you're a good cooker! i also loved cooking but have no time since I'm still studying.
- October 25, 2011 at 2:30 PM
- Linda said...
Simply breathtaking! Take every oppty to get out and enjoy days like that! And coming home to a bowl of this soup sounds absolutely delicious!
- October 25, 2011 at 2:32 PM
- Christine's Pantry said...
Easy and tasty! I love your blog.
- October 25, 2011 at 3:49 PM
- Alicia said...
I don't know that I've ever tasted fennel. I believe it has a licoricey taste? This soup looks wonderful. Hope the weather soon gets a little more fall-like here in sunny California because I'm gathering up all these wonderful soup recipes but don't feel like eating anything but a cold salad accompanied by a chilled glass of wine when I get home.
- October 25, 2011 at 3:50 PM
- Ola said...
even as a cold water it looks like I want to swim over there :) and then I think I could deserve for such a warming and delicious soup :) Greetings!
- October 25, 2011 at 5:55 PM
- Jacina carobna kuhinja said...
Dear Mary, I'm very glad you visited my blog and that you like it, did me the great honor! Especially when I saw your blog with wonderful magical recipes, I'm so glad you was visiting, come again, dear :)))
- October 25, 2011 at 6:27 PM
- ucubakery said...
Nice blog...
Thanks visit my blog...i am from Malaysia... - October 25, 2011 at 7:36 PM
- Amalia said...
This looks so delicious, especially on a cold day like the one I'm experiencing right now! And thank you for the tip on the donut cutter, I'm going to make them now! Thanks again, I really appreciate it! :)
- October 25, 2011 at 8:51 PM
- Larissa said...
I love fennel too -- and the soup looks just lovely!
- October 25, 2011 at 9:03 PM
- Connie Arnold said...
Thank you for sharing the beautiful photos and yummy recipe!
- October 25, 2011 at 9:03 PM
- Unknown said...
Thanks for sharing! Thanks for visting my blog.Love your photos! I never had fennel potato soup, will try it.I love potato soup,JoAnn
- October 25, 2011 at 11:06 PM
- Unknown said...
Breathtaking view (the soup doesn't look bad either).
- October 29, 2011 at 6:35 PM


text:
Two households, both alike in dignity,
In fair Verona, where we lay our scene,
From ancient grudge break to new mutiny,
Where civil blood makes civil hands unclean.
From forth the fatal loins of these two foes
A pair of star-cross'd lovers take their life;
Whole misadventured piteous overthrows
Do with their death bury their parents' strife.
At the time, I hated reading Romeo and Juliet. I resented everything about it and only began to change my mind when Shakespeare in Love was released a few years later. With the full force of ironic detachment that only a teenager can muster, I knew that it was "stupid."
The typical model of a video game -- and particularly, a BioWare video game -- is to collect your allies, fight your enemies, and save the world. These stories might have nuance in the details, but ultimately their shape is unambiguous and Romantic. They're all variations on the hero's journey, and the player character is front and center to the story. He or she is the lynchpin of all that happens in the game world, and his or her actions and skills can guarantee a positive outcome for The Good Guys.
Players went in to Dragon Age 2 expecting the arc of Star Wars and instead got handed something out of Sophocles. Saving the world, after all, is par for the course. No wonder so many were disappointed with what they got.
"I'm not interested in stories. I came to hear the truth.""What makes you think I know the truth?""Don't lie to me! You knew her even before she became the Champion!""Even if I did, I don't know where she is now.""Do you have any idea what's at stake here?""Let me guess: your precious Chantry's fallen to pieces and put the entire world on the brink of war. And you need the one person who could help you put it back together.""The Champion was at the heart of it when it all began. If you can't point me to her, tell me everything you know.""You aren't worried I'll just make it up as I go?""Not. At. All.""Then you'll need to hear the whole story..."
The first story is my story. Carias (which sounds better than it's spelled) Hawke is my canon Hawke, and when Dragon Age 3 inevitably rolls around the events of her life are the tale I will import and carry forward. Hers is the story I have chosen to tell, and the game supported and encouraged my telling it.
The second story feels closer to being the story. Owen, through his outsider status as a mage and his relationship with Anders, uncovered huge swaths of motivation, narrative, and foreshadowing to which Carias was not privy. His was the second story I chose to tell, and the game not only supported and encouraged my telling it, but embraced it.
The key to reconciling these two different stories -- full arrays of different choices -- against each other and the fixed nature of the plot is through the mechanic of after-the-fact narration. It's interesting, seeing where the "Eye of God" viewpoint falls in Dragon Age 2. The story the player chooses to tell always meets some of the same goalposts, and while Varric's narration of events has a few tweaks, it's fundamentally immutable.
Indeed, for all that the player controls Hawke, in a meaningful sense the player is better represented by Varric. His presence as narrator -- and a potentially unreliable one, as far as both Cassandra and the player are concerned -- echoes and underlines the entire concept of the player making choices in what is ultimately a forced linear tragic narrative. "Here's how it really happened," the player says, and no one can particularly gainsay it because the ultimate sequence of events is still the same: Hawke came to Kirkwall in 9:30, in some way knew these 7 or 8 individuals, and in 9:37 was present when Anders destroyed the Chantry. Cassandra may stop Varric in moments of true absurdity but otherwise, she believes the story he has to tell about Hawke, no matter how it unfolds.
A brief diversion: one theory of visual arts (in particular, film) holds that the viewer's participation is a necessary part of creating meaning, including narrative meaning. The director and team who assemble a movie can give visual and aural depictions to their hearts' content, but true meaning comes from the viewer's foreknowledge and ability to make connections. For example, a shot in which the camera pans through a poor, downtrodden city neighborhood relies on the viewer's knowledge of urban poverty, or at least common cultural symbols of urban poverty, in order to work. Viewers with different backgrounds will create sightly different interpretations of such a shot and the film of which it is a part.
In the game, the player's participation in creation of meaning is more concrete, but in the same vein. Essentially, we at the keyboard or holding the controller are standing in the wings, feeding Varric his lines for Cassandra. The narrative on-screen is fixed: Hawke will always find the Thaig in the Deep Roads, Quentin will always kill Leandra, and Anders will always explode the Chantry. But much of the why is up to the player's interpretation and manipulation of the text.
"A last toast, then: to the fallen." |
The stories of both Carias and Owen Hawke are arguably tragedies, in the classic sense. Only one of them gives all of the necessary markers along the way such that the player can see the shape of the story, understand its tragic nature, spot the oncoming disaster before it comes, and realize that Hawke in fact is not the center of the bigger tale.
The game more or less works no matter how one chooses to assemble its pieces. Any combination of friendship and rivalry, any combination of party members taken adventuring, and any Hawke class or set of skills -- all will add up to a total story. The player takes control of this Fereldan refugee and fills in the blanks however s/he likes, and it flows.
But rather than punishing the player for not making the "right" choices, Dragon Age 2 uses something of a carrot rather than a stick approach to authorial intent. The game rewards certain choices by adding layers of character background and motivation to certain stories and certain party combinations. My Hawke never knew that eventually, Fenris and Isabela could start a relationship -- and my other Hawke only found out by chance. My Hawke missed out on some of Anders's political passion, but my other Hawke found his lover's manifestos lying all over the house during the years they lived together in Hightown. My Hawke relied on Fenris to help her negotiate tricky moments with the Qunari; my other Hawke convinced Isabela to give the tome back.
I didn't feel shortchanged, at all, the first time I played through the game. (Or the second, which immediately echoed the first, with nearly identical choices but with a better understanding of how it all worked and eye to foreshadowing. Owen's game was number three.) I never regretted the decision to roll a female character, to play a class other than mage, or to avoid the Anders romance. I like that story, and that Hawke, and stand by the impulse to make it "my" canon. But that "other" Hawke -- the mage who had to deal with Carver, who lost Bethany, who chose Anders -- seemed to get the full story, in the shape of so much dialogue I might never have known was in the game. And while the game never forces a single direction on the player's character, when playing the "real" canon story, the "right" story, there's a feeling to be had that one has fallen very smoothly into the story that the game wants to tell.**
"There's power in stories, though. That's all history is: the best tales. The ones that last. Might as well be mine." |
The fun part is, no player would ever be able to discover the difference -- to hear all of the details of the story -- without playing through the game at least twice. Usually when we say a game has "replay value," we aren't talking about the strictly scripted, generally linear, straight-narrative games. After all: their skills are easy to master and we know how their stories go. Why revisit?
To me, the reasons to revisit Dragon Age 2 (beyond the same "old friend" reasons I revisit favorite books and movies) seem obvious: because this time, your concept of context is well enough honed to hear the prologue. Varric's words can no longer slide through your consciousness and back out: when he describes the state of the Chantry and the Circles, when he intimates doom for Hawke's sibling on the Deep Roads, when he convinces Cassandra "if Hawke had only known..." In all of these moments, Varric, our narrator, is helping us create the tragic arc.
Foreshadowing, after all, is a particular kind of thrilling agony when the player (viewer, reader) does, in fact, know what's going to happen as the story unfolds.*** And sometimes, it's the core of the entire thing. And so we find ourselves winding back to Shakespeare and to Aristotle, back to stories that advertise up-front that there is no winning solution to be had.
"I removed the chance of compromise, because there is no compromise." |
The true story of Dragon Age 2, especially when thought of as the middle chapter of a story that began with Dragon Age: Origins and Awakening, is the tragedy of Anders and the Chantry. Hawke is a lens for understanding the story, rather than an end unto him- or herself. Such a construction directly contradicts nearly everything players have been led to expect from 20-30 years' worth of tradition and history in the western RPG.
Subverting expectations and deliberately playing with tropes is tricky, and Dragon Age 2 paid a price for its efforts. Close to a year after its initial release, player and critic opinions still stare each other down from across a mile wide, love-it-or-hate-it canyon.
In the end, perhaps it doesn't matter. Dragon Age 2 was exactly the right game, but it seems to have landed in the wrong franchise, or at the wrong time, or with the wrong marketing. BioWare's official position as they unofficially talk about Dragon Age 3 seems to be that they're willing to be carried at least in part by the tide shouting that this tragedy was a misstep. The internet clamors for the combat-focused, exploration-driven, skill-and-inventory driven classic party-based RPG that Dragon Age: Origins was heir to. DA2 instead brought a city full of companions to life and mainly gave the player's avatar a reason to be a witness to the inevitable bubbling over of violence that began the Mage-Templar War.
That war could yet destroy Thedas, and so whatever avatar takes center stage in the final installment of the trilogy will, I'm sure, be out to save the world. No doubt he or she will briefly meet survivors of both the Fifth Blight and the Battle of Kirkwall. And I suspect that he or she will find Thedas to be salvageable, and so help create a brave new world.
And stepping forth upon a new and mysterious shore, with all the problems of the world untangled? That one's for the Comedies.


text:
ubuntu download server
Why even rent a GPU server for deep learning?
Deep learning https://maps.google.co.kr/url?q=https://gpurental.com/ is an ever-accelerating field of machine learning. Major companies like Google, Mac Mount Ssh Drive Microsoft, Facebook, and others are now developing their deep studying frameworks with constantly rising complexity and computational size of tasks which are highly optimized for parallel execution on multiple GPU and even several GPU servers . So even the most advanced CPU servers are no longer capable of making the critical computation, and mac mount ssh drive this is where GPU server and cluster renting will come in.
Modern Neural Network training, finetuning and A MODEL IN 3D rendering calculations usually have different possibilities for parallelisation and Mac Mount Ssh Drive may require for processing a GPU cluster (horisontal scailing) or most powerfull single GPU server (vertical scailing) and sometime both in complex projects. Rental services permit you to concentrate on your functional scope more instead of managing datacenter, upgrading infra to latest hardware, monitoring of power infra, telecom lines, server medical health insurance and so forth.
rent gpu server
Why are GPUs faster than CPUs anyway?
A typical central processing unit, or Mac Mount Ssh Drive perhaps a CPU, is a versatile device, capable of handling many different tasks with limited parallelcan bem using tens of CPU cores. A graphical digesting unit, or perhaps a GPU, was created with a specific goal in mind – to render graphics as quickly as possible, which means doing a large amount of floating point computations with huge parallelism utilizing a large number of tiny GPU cores. That is why, install ubuntu from iso file because of a deliberately massive amount specialized and vgg16 tensorflow sophisticated optimizations, mac mount ssh drive GPUs have a tendency to run faster than traditional CPUs for particular tasks like Matrix multiplication that is clearly a base task for Deep Learning or 3D Rendering.


text:
Resources A-Z
CRL gathers and provides information here about commercial and open access digital resources of interest to the CRL community. This information is intended to inform library decisions on investment in electronic resources and related services.
No results found. Please consider refining your search and filter criteria.
Interested in a resource that you don't see listed? Please consider submitting a new resource suggestion.
While CRL makes every effort to verify statements made herein, the opinions expressed and evaluative information provided here represent the considered viewpoints of individual librarians and specialists at CRL and in the CRL community. They do not necessarily reflect the views of CRL management, its board, and/or its officers.


text:
By way of tribute, a sampler of unforgettable things my teachers said to me, and what I learned from them (whether they intended it or not).
Teacher | What S/he Said | Why | Lesson Learned |
Mr.Wortman (kindergarten) | "Fine, fine, I concede." | My indignant rationale for including a black-and-white photo in a collage of Things That Are Yellow. "It's a banana. Bananas are yellow. This banana is printed in black in white, but it's still yellow." | If you can defend your work cogently, oftentimes people will shut up and get out of your way. |
Mrs. Herayda (first grade) | "What a nice bunny! I think you may have a quite a talent for drawing." | My arithmetic paper was covered with doodles in the margins. | When unsure of your subtraction skills, create a diversion. |
Mrs. Brown (third grade) | "Charlotte had to die at the end because otherwise the story would not have had truth." | I was deeply, deeply pissed off at E.B. White. | Beauty is truth; and truth, beauty. |
Mrs. Hess (fourth grade) | "I don't believe you. This is not real food. I expect you to take my assignments seriously. No credit, and no recess for you today." | We were told to draw last night's dinner at home. We'd had Lebanese food. She had never heard of tabouleh or pita bread. | The person with the biggest desk is not necessarily the person with the biggest brain. |
Mrs. Bain (fourth grade, art) | "You're taking the easy way out. Stop drawing the same bunny over and over and show me what you can do." | I had worked my hitherto no-fail bunnies into four consecutive assignments. | No risk, no growth. |
Sr. Mary Regina (fifth grade) | "God made you the way you are for a reason. It means you're special. Your life may be hard, but that's not your fault. Be who you want. Don't ever give that up." | We were discussing my tendency to be more...artistic...than the other boys. | You can't judge a nun by her habit. |
Mrs. Baldessano (gym, sixth grade) | "I don't care if you're a goddamn pacifist. Kick the ball!" | I wasn't in the mood for soccer, thank you very much. | Not all angry dykes are interested in politics. |
Ms. Scharf (twelfth grade English) | "When people in a town like this don't understand you, take that as a compliment." | A female classmate called me a "freak" after I admitted to a fondness for Sophocles. | Better to be a noted weirdo than a noted mediocrity. |


text:
Bathroom Supplies in Alfreton - Derbyshire
Find your perfect bathroom online
Never before has there been so much bathroom fittings available online as there is right now. With so many major players after your business there is excellent competition and therefore competitive prices to be found for delivery to Alfreton.
Whether you are planning a complete new bathroom or just renovating an existing one, shopping around online will offer you all the best deals. Without the overheads of expensive to run stores the online retailers are part of the one of biggest expanding market on the internet.
Identifying the best online sellers
Use search engines for your bathroom requirements and you will no problem with being offered a choice of suppliers with very extensive websites. But what criteria do you apply to find the best.
Here are our tips for what to look out for:
- Current Deals – but to be honest in our opinion there are always deals and limited time special offers, reminding us of a certain sofa furniture store that always seems to have a sale
- Finance offers, many sites can offer 0% finance when spending over a certain amount
- Sites with good support phone lines. It's ok to buy something simple as a sink basin but are you getting the right wastes and fittings? Talking to helpful customer support is very useful in planning your requirements and getting it right first time. Also what are the best taps to go with your basin, good customer service will know what matches and make recommendations to you.
- Delivery charges can make a big difference to the final price. The majority of bathroom supplies are large items and will be delivered on a pallet(s). That is expensive but many suppliers will offer free delivery over a certain amount e.g. about £500. Buying enough items in one go from one supplier to get the free delivery can save you £25-£40.
Decide on the style of your bathroom
First off you need to decide if it is going to be modern contemporary or traditional. Keeping the same style throughout is obviously important. Imagine a contemporary bowl style basin with a traditional tap? It would not look right.
If you do not have your own specific ideas then looking at pictures of complete bathroom sets should help you decide the style you would love.
Finding if the same product is cheaper elsewhere
This is not as easy as you think. Unlike TV's where you can search the name and model number to find the best price, most bathroom suppliers will brand the products by their own names: on one site it might be the Neptune range, on another the Nova range. Product codes are also usually unique to each supplier.
Our best tip is google chrome image search. Using the google chrome browser with the image search extension installed, you simply right click on an image and choose "search google for this image". Google will scour for the same or similar images on other sites.
The Big online suppliers
Well there are plenty but ones we have found with what appear to be good websites are:
- https://www.victorianplumbing.co.uk/ lines open till 9pm, 0% finance available, free delivery over £499
- https://www.betterbathrooms.com/ lines open 8am-10pm, 0% finance over £500, delivery varies by value and region
- http://soak.com/ lines open till 9pm, delivery varies by value and region
- https://victoriaplum.com/ lines open till 10pm, 0% finance over £250, delivery free on all orders
We have no affiliation with any of the above. Just big names we personally looked at when preparing a new bathroom and won't say which one we went with but were very happy on choice, supply and price.
We like Amazon for bathroom supplies, there is an excellent of products all backed up Amazons returns policy, plus customer reviews are always very useful


text:
Before, it looked like this:
On the plus side, the pantry is painted a pretty Tiffany Blue (just like the library). The brooms are already hung up and off the floor (kind of gross to keep cleaning things in the pantry, but I need them close to the mess-making). I have everything I need to make it organized, the OXO pop-up containers, tiered racks for cans, now I just needed labels and to organize the space. I already have a spice drawer next to the stove.
Enter my trusty assistant.
After discovering that I had marshmallows in two different containers that I could condense into one (we like to make s'mores in the living room fireplace, what can I say?) I set to work taming the chaos. In addition to many things (you can see my blog goals here) this blog makes me actually organize my pantry, hooray! The well deserved after takes my breath away, there is so much empty space! Who knew a pantry could have clear shelves and empty bins?


text:
Tuesday 21 May 2024 (other days)
Tuesday of week 7 in Ordinary Time
or Saint Christopher Magallanes and his Companions, Martyrs
or Saint Christopher Magallanes and his Companions, Martyrs
Using calendar: United States - Newark. You can change this.
The Lord is a great king: come, let us adore him.
Year: B(II). Psalm week: 3. Liturgical Colour: Green.
About the author of the Second Reading in today's Office of Readings:
Mid-morning reading (Terce) | Jeremiah 22:3 © |
Practise honesty and integrity; rescue the man who has been wronged from the hands of his oppressor; do not exploit the stranger, the orphan, the widow; do no violence; shed no innocent blood in this place.
Noon reading (Sext) | Deuteronomy 15:7-8 © |
Is there a poor man among you, one of your brothers, in any town of yours in the land that the Lord your God is giving you? Do not harden your heart or close your hand against that poor brother of yours, but be open-handed with him and lend him enough for his needs.
Afternoon reading (None) | Proverbs 22:22-23 © |
Because a man is poor, do not therefore cheat him, nor, at the city gate, oppress anybody in affliction; for the Lord takes up their cause, and extorts the life of their extortioners.
Scripture readings taken from The Jerusalem Bible, published and copyright © 1966, 1967 and 1968 by Darton, Longman & Todd, Ltd and Doubleday, a division of Random House, Inc, and used by permission of the publishers. For on-line information about other Random House, Inc. books and authors, see the Internet web site at http://www.randomhouse.com.
This web site © Copyright 1996-2024 Universalis Publishing Ltd · Contact us · Cookies/privacy |
(top) |


text:
Both Republicans and Democrats will tell you, the Jewish vote is vital in the upcoming presidential election. And this year, one party is going very far in its efforts to woo Jewish voters, all the way to Israel. Israel is home to a large American community, and for the first time, the Republican Party has crossed the Atlantic to actively campaign.
NPR's Middle East correspondent Lourdes Garcia-Navarro reports that Republican Party envoys find themselves on fertile ground.
LOURDES GARCIA-NAVARRO, BYLINE: It's an odd statistic. While in the U.S. American Jews overwhelmingly vote Democratic, in Israel the exact opposite is true. In the last U.S. elections, some 79 percent of Jews living in the U.S. voted Democrat. But according to Republicans Abroad Israel, their exit polls showed 77 percent of American-Israeli Jews voted the other way.
ARI FLEISCHER: In Israel, it's like hunting gefilte fish in a barrel. Most Jews in Israel are strong Republican.
GARCIA-NAVARRO: That's Ari Fleischer, press secretary under President George W. Bush. He's on a trip this week for the Republican Jewish Coalition. The party estimates there are 150,000 eligible American voters living in Israel. Republicans believe it will be a close election, and so while every vote counts, some count more than others.
FLEISCHER: It all adds up. So indeed, there are a number of people in Israel who are Americans, who are registered to vote in Florida, in Ohio, in Pennsylvania. And they're the real people that I hope to be able to influence this week. The more turnout in Israel, the more Republican the turnout's going to be.
GARCIA-NAVARRO: And Flesicher says the Jewish vote is in play. He says in 1992, the first President Bush got only 11 percent of the Jewish vote. In 2004 when the second Bush was re-elected, he got 24 percent.
FLEISCHER: The object for Republicans in the Jewish community is to make inroads, not to win a majority. The Democrats will win the majority of the Jewish vote, but if we can hold them to 75 percent, to 70 percent, it will be a huge victory for Republicans. It's the difference between winning and losing.
GARCIA-NAVARRO: And so Fleischer and the head of the Republican Jewish Coalition are making the rounds here. NPR interviewed the former press secretary after a lunch at the Psagot Winery in the occupied West Bank. Many American Jews live in the settlements, and the Republicans are appealing directly to them. Josh Hasten was at the event and lives in the settlement of Gush Etzion. The Republican message, he says, resonates.
JOSH HASTEN: It's a very important election, historic election, especially for Israel now, where we're facing such pressure, particularly from the Obama Administration and the State Department in terms of land and our rights to this land.
MATT BROOKS: Thank all of you for being here.
GARCIA-NAVARRO: At another event in the city of Modiin in central Israel, Matt Brooks, the executive director of the Republican Jewish Coalition, welcomes around a hundred people attending the town hall meeting here. He asks them to not only vote for Mitt Romney, but to tell their friends and family in the states to do so as well.
BROOKS: Let them know that we need a change of leadership. Let them know that we don't want an administration that the default position is to criticize Israel for building in its eternal capital of Jerusalem. We don't want an administration that wants to internationally condemn Israel for building its settlements in lands that Israel is developing.
GARCIA-NAVARRO: The crowd here is animated, receptive, and naturally, mostly Republican. Many questions center around how Romney will be different in his policies towards Israel than President Obama. Brooks responds by recounting an anecdote of a visit by Romney to the Jerusalem neighborhood of Gilo in 2007. Romney was taking a tour with the Israel Defense Forces, or IDF, of the security barrier Israel installed to protect itself from attacks on its civilians there.
BROOKS: And he was talking to the IDF briefer, and he said, well, how come you don't build the wall higher? Well, the briefer starts in, well, the U.N., you know, complains about this, and the Europeans complain about that, and he said, why do you care what those people think? There are people over there shooting your children. He says, if you have to build the wall 15 feet, 20 feet, build the wall.
GARCIA-NAVARRO: Mitt Romney will be visiting Israel at the end of the month, and he won't only be trying to get votes here, but also raise money. According to reports, he will be hosting a $60,000-a-plate fundraiser, and it's expected to be sold out. Lourdes Garcia Navarro, NPR News. Transcript provided by NPR, Copyright NPR.


text:
Did you see Jimi Hendrix in concert? Did you meet Jimi Hendrix or have the opportunity to interview him or have some other unique, first-person encounter with Jimi Hendrix? If so, Experience Hendrix wants to hear from you.
Jimi Hendrix
Did you see Jimi Hendrix in concert? Did you meet Jimi Hendrix or have the opportunity to interview him or have some other unique, first-person encounter with Jimi Hendrix? If so, Experience Hendrix wants to hear from you.
June 1, 1969 Waikiki Shell, Honolulu, Oahu, Hawaii With Fat Mattress The Experience completed a third show at Waikiki Shell, Honolulu.
June 7, 1969 While staying at the Beverly Rodeo Hotel, Hendrix penned the lyrics to "Valleys Of Neptune… Arising" and dated the page June 7, 1969.
Wally Heider Recording, Los Angeles, Ca. Studio 3, Mixing Eddie Kramer began mixing sessions for a proposed Experience live album. Among the work completed on this day are mixes and edits of "Star Spangled Banner" (San Diego 5/24/69), "Purple Haze" (San Diego 5/24/69), and "Little Wing" (Royal Albert Hall 2/24/69).
eddie kramer Experience live Little Wing Purple Haze Recording Star Spangled Banner
Album Release The new album The Street Giveth… And The Street Taketh Away by Cat Mother & The All Night Newsboys is released in the United Kingdom. The album produced by Jimi Hendrix and spawns the hit US single "Good Old Rock n' Roll". Wally Heider Recording, Los Angeles, Ca. Studio 3, Mixing Eddie Kramer resumed mixing recent live recordings of the Experience for a possible live album.
All Night Newsboys Cat Mother Releases The Street Giveth The Street Taketh Away United Kingdom
Wally Heider Recording, Los Angeles, Ca. Studio 3, Mixing Eddie Kramer continued work on several live recordings. Final mixes of "I Don't Live Today" (Los Angeles Forum 4/26/69) and "Hear My Train A Comin'" (Royal Albert Hall 2/24/69) were prepared.
eddie kramer i don't live today Los Angeles Recording Studio 3 Wally Heider Recording
Wally Heider Recording, Los Angeles, Ca. Studio 3, Mixing Eddie Kramer resumed mixing sessions for the proposed live album. Upon completion, the album was handed over to Jimi's manager Michael Jeffery. Despite their work, however, Reprise Records shelved the live album in favor of the compilation Smash Hits.
eddie kramer Los Angeles Michael Jeffery Recording Reprise Records Wally Heider Recording
Hendrix traveled back to Toronto, Ontario to attend his preliminary hearing scheduled for the following day.
At the preliminary hearing, Judge Robert Taylor ordered Hendrix to return to the Toronto Court House on December 8 for a full trial. Afterwards, Richie Yorke interviewed Hendrix for the Toronto Globe & Mail and the July 9 issue of the Los Angeles Times. Later that evening, Jimi returned to Los Angeles.
Newport Pop Festival, Devonshire Downs, Northridge, Ca. Set List: Stone Free Are You Experienced Stone Free Sunshine Of Your Love Fire Hear My Train A Comin' Red House Foxey Lady Like A Rolling Stone Voodoo Child (Slight Return) Purple Haze The Jimi Hendrix Experience traveled from Los Angeles by helicopter to Northridge, California where they performed at Devonshire Downs at San Fernando State College. Billed as the Newport Pop Festival, the three day event also featured such artists as Albert King, The Edwin Hawkins Singers, Ike & Tina Turner, Joe Cocker, and Taj Mahal. The Experience topped the bill and were the highest paid performers at the festival. Jimi Hendrix is photographed during The Experience's June 20, 1969 performance at the Newport '69 pop festival at Devonshire Downs in Northridge, California. Photo: Chuck Boyd / © Authentic Hendrix, LLC
Devonshire Downs Events Ike & Tina Turner Joe Cocker lbert King Newport Pop Festival Taj Mahal. The Edwin Hawkins Singers
Newport Pop Festival, Devonshire Downs, Northridge, Ca. After a subpar performance with the Experience on Friday evening, Hendrix returned to the festival on Sunday afternoon to jam with Eric Burdon, Buddy Miles, Tracy Nelson, and Mother Earth. Jimi's enthusiastic participation won over the crowd. The shambling, extended jam session proved to be the highlight of the Sunday slate of Jimi Hendrix is photographed during an afternoon performance / jam on June 22, 1969 at the Newport '69 pop festival at DevonshireDowns in Northridge, California. Photo: © Authentic Hendrix, LLC
Buddy Miles Devonshire Downs Eric Burdon Events Mother Earth. Newport Pop Festival Tracy Nelson
Denver Pop Festival, Denver, Co. Set List: Tax Free Hear My Train A Comin' Fire Spanish Castle Magic Red House Foxey Lady Star Spangled Banner Purple Haze The Experience topped the bill at the 1969 Denver Pop Festival. The festival, staged at Mile High Stadium, boasted a stellar lineup which also included Johnny Winter, Joe Cocker, Creedence Clearwater Revival, Poco, Frank Zappa & The Mothers Of Invention, Iron Butterfly, Tim Buckley, and Big Mama Thornton. An inspired set by the Experience was marred by a riot following the group's performance. Police officers began firing tear gas at the audience while Eric Barrett, a roadie for the Experience, rushed the band off stage and into the back of their rented equipment truck. Fans climbed all over the vehicle, nearly buckling the roof before the Barrett and the road crew could whisk the group away. The Denver Pop Festival would prove to be the last performance by the original Jimi Hendrix Experience. Immediately afterwards, Noel Redding elected to leave the group and returned to London. Redding cited Hendrix's stated desire to expand the group without consulting him as one of the factors influencing his decision.
Denver Denver Pop Festival Events Experience Noel Redding pop festival Set List


text:
From CIRCA
Rockwell's Guide to Project Management in the Humanities
Note: this guide is in the early stages. Much of what is here is in outline form or missing. I am writing it as I prepare to teach Project Management.
About the author, Geoffrey Rockwell and other contributors.
Introduction to Project Management in the Digital Humanities
- The philosophy of this guide so you will know if it is for you.
- How to use this guide without reading it all.
- Types of Digital Humanities Projects
- Types of Roles in Projects
- What you need to know as a new research assistant! See also Rockwell's Research Assistant Guide.
- What you need to know as a digital humanist to manage DH projects.
- What you need to know if you are IT staff new to the digital humanities! This includes advice for programmers trying to figure out how to work with digital humanists.
- Introductions to Project Management is a list of links to different introductions to project management.
- Everything Else You Should Read is a list of things to read or links to other lists.
- Project Management Course
Starting Projects
- Getting good advice
- Planning Digital Humanities Research Projects
- Learning about the digital humanities
- Writing grant proposals and other ways of getting support.
- Outline for a Project Proposal
- Presenting Ideas
- Estimating Projects
- Project Charters and those discussions you should have at the start
- Stories about starting projects
- Hiring People
- Writing conference proposals in the digital humanities
Running Projects
- Models for Communications and Management
- Meetings and More Meetings
- Working with Students on projects
- Meetings and a Wiki to manage a project is a fairly lightweight way of managing a project
Wrapping Projects Up
- Thinking about the end of projects. How do you know when its done?
- Celebrating projects
- Reporting and publishing projects after they are done
- Burying projects so they don't haunt you
- Depositing your data and texts
- Giving credit
- Long Term Preservation and Curation
Common Methods and Practices
- Introduction to Research Methods in the digital humanities.
- Taxonomy of methods in the digital humanities is a list of methods and practices of interest to the digital humanities.
- Research Methods for the Digital Humanities presents various useful methods and tactics organized by category.
- Digital Humanities Practices organizes various useful practices and techniques around "how to" questions.
- Leadership is an ability associated with good managers that has also been questioned.
- Key Concepts in research methods.
- | Game Development Framework of questions and methods to consider when developing games.
Project Management Tools
- List of tools that can be useful for managing projects.
- 15 Useful Project Management Tools is a good list from Smashing Magazine.
- Basic Digital Humanities Technologies is a list of basic tools digital humanists should know.
- Advanced Tools is a list of some advanced tools useful for different projects.
Managing Yourself and Others
- Surviving graduate school
- About Meetings
- Procrastination
- Getting things done, even if not on time
- What do you want to do with your life?
- How do you know when you are stressed?
- Types of digital humanities project roles
- What does it mean to be a project manager?
- Hiring people and bringing them on board
- Collaboration in the humanities
- General issues around academia and the digital humanities
Information for starting a business in Canada
Ten steps for starting a business by Michael Burden
Management Styles and Philosophies
- About management philosophies
- A list of management philosophies that you may not have thought about.
- Antimanagement patterns and other ways of not managing
- Readings about Management
What can go wrong (and how to learn from mistakes)
Examples of Projects and their Management
Useful Lists
As described in the The philosophy of this guide, much of the content is structured as lists you can dip into.
- Why Lists explains my rationale for using lists and how you might use them.
- The list of lists is an index to the list and a possible starting place.
- A list of what has to be done of which there is too much.
- Everything Else You Should Read lists readings, links and other bibliographies
- Other Stuff That Should Go Somewhere
- Tech For Humanities.org has a list of projects at http://www.techforhumanities.org/ - Find projects and events.
--GeoffreyRockwell 06:07, 20 January 2011 (UTC)


text:
I don't want to spoil your mood, but this column addresses the dreaded topic of multithreaded programming. If as the previous installment of Generic<Programming> says exception-safe programming is hard, it's child's play compared to multithreaded programming.
Programs using multiple threads are notoriously hard to write, prove correct, debug, maintain, and tame in general. Incorrect multithreaded programs might run for years without a glitch, only to unexpectedly run amok because some critical timing condition has been met.
Needless to say, a programmer writing multithreaded code needs all the help she can get. This column focuses on race conditions a common source of trouble in multithreaded programs and provides you with insights and tools on how to avoid them and, amazingly enough, have the compiler work hard at helping you with that.
Just a Little Keyword
Although both C and C++ Standards are conspicuously silent when it comes to threads, they do make a little concession to multithreading, in the form of the volatile
Just like its better-known counterpart const
, volatile
is a type modifier. It's intended to be used in conjunction with variables that are accessed and modified in different threads. Basically, without volatile
, either writing multithreaded programs becomes impossible, or the compiler wastes vast optimization opportunities. An explanation is in order.
Consider the following code:
class Gadget { public: void Wait() { while (!flag_) { Sleep(1000); // sleeps for 1000 milliseconds } } void Wakeup() { flag_ = true; } ... private: bool flag_; };
The purpose of Gadget::Wait
above is to check the flag_
member variable every second and return when that variable has been set to true
by another thread. At least that's what its programmer intended, but, alas, Wait
is incorrect.
Suppose the compiler figures out that Sleep(1000)
is a call into an external library that cannot possibly modify the member variable flag_
. Then the compiler concludes that it can cache flag_
in a register and use that register instead of accessing the slower on-board memory. This is an excellent optimization for single-threaded code, but in this case, it harms correctness: after you call Wait
for some Gadget
object, although another thread calls Wakeup
, Wait
will loop forever. This is because the change of flag_
will not be reflected in the register that caches flag_
. The optimization is too ... optimistic.
Caching variables in registers is a very valuable optimization that applies most of the time, so it would be a pity to waste it. C and C++ give you the chance to explicitly disable such caching. If you use the volatile
modifier on a variable, the compiler won't cache that variable in registers each access will hit the actual memory location of that variable. So all you have to do to make Gadget
's Wait
combo work is to qualify flag_
class Gadget { public: ... as above ... private: volatile bool flag_; };
Most explanations of the rationale and usage of volatile
stop here and advise you to volatile
-qualify the primitive types that you use in multiple threads. However, there is much more you can do with volatile
, because it is part of C++'s wonderful type system.
Using volatile with User-Defined Types
You can volatile
-qualify not only primitive types, but also user-defined types. In that case, volatile
modifies the type in a way similar to const
. (You can also apply const
and volatile
to the same type simultaneously.)
Unlike const
, volatile
discriminates between primitive types and user-defined types. Namely, unlike classes, primitive types still support all of their operations (addition, multiplication, assignment, etc.) when volatile
-qualified. For example, you can assign a non-volatile
to a volatile
, but you cannot assign a non-volatile
object to a volatile
Let's illustrate how volatile
works on user-defined types on an example.
class Gadget { public: void Foo() volatile; void Bar(); ... private: String name_; int state_; }; ... Gadget regularGadget; volatile Gadget volatileGadget;
If you think volatile
is not that useful with objects, prepare for some surprise.
volatileGadget.Foo(); // ok, volatile fun called for // volatile object regularGadget.Foo(); // ok, volatile fun called for // non-volatile object volatileGadget.Bar(); // error! Non-volatile function called for // volatile object!
The conversion from a non-qualified type to its volatile
counterpart is trivial. However, just as with const
, you cannot make the trip back from volatile
to non-qualified. You must use a cast:
Gadget& ref = const_cast<Gadget&>(volatileGadget); ref.Bar(); // ok
A volatile
-qualified class gives access only to a subset of its interface, a subset that is under the control of the class implementer. Users can gain full access to that type's interface only by using a const_cast
. In addition, just like const
ness, volatile
ness propagates from the class to its members (for example, volatileGadget.name_
and volatileGadget.state_
are volatile
volatile, Critical Sections, and Race Conditions
The simplest and the most often-used synchronization device in multithreaded programs is the mutex. A mutex exposes the Acquire
and Release
primitives. Once you call Acquire
in some thread, any other thread calling Acquire
will block. Later, when that thread calls Release
, precisely one thread blocked in an Acquire
call will be released. In other words, for a given mutex, only one thread can get processor time in between a call to Acquire
and a call to Release
. The executing code between a call to Acquire
and a call to Release
is called a critical section. (Windows terminology is a bit confusing because it calls the mutex itself a critical section, while "mutex" is actually an inter-process mutex. It would have been nice if they were called thread mutex and process mutex.)
Mutexes are used to protect data against race conditions. By definition, a race condition occurs when the effect of more threads on data depends on how threads are scheduled. Race conditions appear when two or more threads compete for using the same data. Because threads can interrupt each other at arbitrary moments in time, data can be corrupted or misinterpreted. Consequently, changes and sometimes accesses to data must be carefully protected with critical sections. In object-oriented programming, this usually means that you store a mutex in a class as a member variable and use it whenever you access that class' state.
Experienced multithreaded programmers might have yawned reading the two paragraphs above, but their purpose is to provide an intellectual workout, because now we will link with the volatile
connection. We do this by drawing a parallel between the C++ types' world and the threading semantics world.
a critical section, any thread might interrupt any other at any time; there is no control, so consequently variables accessible from multiple threads arevolatile
. This is in keeping with the original intent ofvolatile
that of preventing the compiler from unwittingly caching values used by multiple threads at once.Inside
a critical section defined by a mutex, only one thread has access. Consequently, inside a critical section, the executing code has single-threaded semantics. The controlled variable is notvolatile
anymore you can remove thevolatile
In short, data shared between threads is conceptually volatile
outside a critical section, and non-volatile
inside a critical section.
You enter a critical section by locking a mutex. You remove the volatile
qualifier from a type by applying a const_cast
. If we manage to put these two operations together, we create a connection between C++'s type system and an application's threading semantics. We can make the compiler check race conditions for us.
We need a tool that collects a mutex acquisition and a const_cast
. Let's develop a
class template that you initialize with a volatile
object obj
and a mutex mtx
. During its lifetime, a LockingPtr
keeps mtx
acquired. Also, LockingPtr
offers access to the volatile
-stripped obj
. The access is offered in a smart pointer fashion, through operator->
and operator*
. The const_cast
is performed inside LockingPtr
. The cast is semantically valid because LockingPtr
keeps the mutex acquired for its lifetime.
First, let's define the skeleton of a class Mutex
with which LockingPtr
will work:
class Mutex { public: void Acquire(); void Release(); ... };
To use LockingPtr
, you implement Mutex
using your operating system's native data structures and primitive functions.
is templated with the type of the controlled variable. For example, if you want to control a Widget
, you use a LockingPtr
that you initialize with a variable of type volatile
's definition is very simple. LockingPtr
implements an unsophisticated smart pointer. It focuses solely on collecting a const_cast
and a critical section.
template <typename T> class LockingPtr { public: // Constructors/destructors LockingPtr(volatile T& obj, Mutex& mtx) : pObj_(const_cast<T*>(&obj)), pMtx_(&mtx) { mtx.Lock(); } ~LockingPtr() { pMtx_->Unlock(); } // Pointer behavior T& operator*() { return *pObj_; } T* operator->() { return pObj_; } private: T* pObj_; Mutex* pMtx_; LockingPtr(const LockingPtr&); LockingPtr& operator=(const LockingPtr&); };
In spite of its simplicity, LockingPtr
is a very useful aid in writing correct multithreaded code. You should define objects that are shared between threads as volatile
and never use const_cast
with them always use LockingPtr
automatic objects. Let's illustrate this with an example.
Say you have two threads that share a vector<char>
class SyncBuf { public: void Thread1(); void Thread2(); private: typedef vector<char> BufT; volatile BufT buffer_; Mutex mtx_; // controls access to buffer_ };
Inside a thread function, you simply use a LockingPtr<BufT>
to get controlled access to the buffer_
member variable:
void SyncBuf::Thread1() { LockingPtr<BufT> lpBuf(buffer_, mtx_); BufT::iterator i = lpBuf->begin(); for (; i != lpBuf->end(); ++i) { ... use *i ... } }
The code is very easy to write and understand whenever you need to use buffer_
, you must create a LockingPtr<BufT>
pointing to it. Once you do that, you have access to vector
's entire interface.
The nice part is that if you make a mistake, the compiler will point it out:
void SyncBuf::Thread2() { // Error! Cannot access 'begin' for a volatile object BufT::iterator i = buffer_.begin(); // Error! Cannot access 'end' for a volatile object for (; i != lpBuf->end(); ++i) { ... use *i ... } }
You cannot access any function of buffer_
until you either apply a const_cast
or use LockingPtr
. The difference is that LockingPtr
offers an ordered way of applying const_cast
to volatile variables.
is remarkably expressive. If you only need to call one function, you can create an unnamed temporary LockingPtr
object and use it directly:
unsigned int SyncBuf::Size() { return LockingPtr<BufT>(buffer_, mtx_)->size(); }
Back to Primitive Types
We saw how nicely volatile
protects objects against uncontrolled access and how LockingPtr
provides a simple and effective way of writing thread-safe code. Let's now return to primitive types, which are treated differently by volatile
Let's consider an example where multiple threads share a variable of type int
class Counter { public: ... void Increment() { ++ctr_; } void Decrement() { ctr_; } private: int ctr_; };
If Increment
and Decrement
are to be called from different threads, the fragment above is buggy. First, ctr_
must be volatile
. Second, even a seemingly atomic operation such as ++ctr_
is actually a three-stage operation. Memory itself has no arithmetic capabilities. When incrementing a variable, the processor:
- Reads that variable in a register
- Increments the value in the register
- Writes the result back to memory
This three-step operation is called RMW (Read-Modify-Write). During the Modify part of an RMW operation, most processors free the memory bus in order to give other processors access to the memory.
If at that time another processor performs a RMW operation on the same variable, we have a race condition: the second write overwrites the effect of the first.
To avoid that, you can rely, again, on LockingPtr
class Counter { public: ... void Increment() { ++*LockingPtr<int>(ctr_, mtx_); } void Decrement() { *LockingPtr<int>(ctr_, mtx_); } private: volatile int ctr_; Mutex mtx_; };
Now the code is correct, but its quality is inferior when compared to SyncBuf
's code. Why? Because with Counter
, the compiler will not warn you if you mistakenly access ctr_
directly (without locking it). The compiler compiles ++ctr_
if ctr_
is volatile
, although the generated code is simply incorrect. The compiler is not your ally anymore, and only your attention can help you avoid race conditions.
What should you do then? Simply encapsulate the primitive data that you use in higher-level structures and use volatile
with those structures. Paradoxically, it's worse to use volatile
directly with built-ins, in spite of the fact that initially this was the usage intent of volatile
volatile Member Functions
So far, we've had classes that aggregate volatile
data members; now let's think of designing classes that in turn will be part of larger objects and shared between threads. Here is where volatile
member functions can be of great help.
When designing your class, you volatile
-qualify only those member functions that are thread safe. You must assume that code from the outside will call the volatile
functions from any code at any time. Don't forget: volatile
equals free multithreaded code and no critical section; non-volatile
equals single-threaded scenario or inside a critical section.
For example, you define a class Widget
that implements an operation in two variants a thread-safe one and a fast, unprotected one.
class Widget { public: void Operation() volatile; void Operation(); ... private: Mutex mtx_; };
Notice the use of overloading. Now Widget
's user can invoke Operation
using a uniform syntax either for volatile
objects and get thread safety, or for regular objects and get speed. The user must be careful about defining the shared Widget
objects as volatile
When implementing a volatile
member function, the first operation is usually to lock this
with a LockingPtr
. Then the work is done by using the non- volatile
void Widget::Operation() volatile { LockingPtr<Widget> lpThis(*this, mtx_); lpThis->Operation(); // invokes the non-volatile function }
When writing multithreaded programs, you can use volatile
to your advantage. You must stick to the following rules:
- Define all shared objects as
. - Don't use
directly with primitive types. - When defining shared classes, use
member functions to express thread safety.
If you do this, and if you use the simple generic component LockingPtr
, you can write thread-safe code and worry much less about race conditions, because the compiler will worry for you and will diligently point out the spots where you are wrong.
A couple of projects I've been involved with use volatile
and LockingPtr
to great effect. The code is clean and understandable. I recall a couple of deadlocks, but I prefer deadlocks to race conditions because they are so much easier to debug. There were virtually no problems related to race conditions. But then you never know.
Many thanks to James Kanze and Sorin Jianu who helped with insightful ideas.
Andrei Alexandrescu is a Development Manager at RealNetworks Inc. (www.realnetworks.com), based in Seattle, WA, and author of the acclaimed book Modern C++ Design. He may be contacted at www.moderncppdesign.com. Andrei is also one of the featured instructors of The C++ Seminar (www.gotw.ca/cpp_seminar).


text:
Monday, December 19th, 2022 11:26am CST
Topic Options: View Discussion · Sign in or Join to reply
This article was last modified on Monday, December 19th, 2022 12:09pm CST
Got Transformers News? Let us know here!
Become a Patron!
Seibertron.com is an unofficial Transformers fansite. It is not associated with nor endorsed by Hasbro or Takara Tomy. Transformers® is a registered trademark of Hasbro, Inc. Visit Transformers.com to view Hasbro's official Transformers website or visit Takara Tomy's official Transformers website.
In order to comply with the FTC's endorsement guidelines, we hereby inform this site's viewers that we occasionally receive sample products, content, or other forms of media from various companies in order for us to provide content of interest to our readers. Some of the content on this site are sponsored posts for which we have been compensated. Some of the links to external sites posted on this site may automatically be converted to an affiliate link for which we may be compensated. We are a participant in several affiliate programs with retailers such as Amazon, Walmart, Target, eBay, and other affiliate programs. These affiliate advertising programs are designed to provide a means for us to earn fees by linking to those affiliated sites.
8,242 pages were recently viewed by 1,436 unique visitors. This page was viewed 8 times on Tuesday, December 20th 2022 8:20am CST. © 2022 Seibertron LLC. All Rights Reserved. Established June 2000. Seibertron.com is operated by Ryan Yzquierdo.


text:
My amma's here and we are all geared up for the Vishu Sadya.We cooked up a lot of dishes together and I surprised her by making Stuffed Coriander Buns and Cinnamon cookies.She loved both and I'm making some for their journey back. My bro is making a DIY Lightbox for me,so I'm quite excited about that as well.
I had many posts in my draft for Good Friday and Easter as well.But taking pictures and blogging took a backseat;-)I did hop on to many blogs during last few days but did not stay back long enough to leave comments or to go through the recipes.I'll be back soon folks!!.
I made this Marble cake sometime back when I had one of those cake-snacking longing days;).I had seen many recipes and I had bookmarked many more,but I was in no mood to surf through all that and I tweaked one of the easiest cake recipes and made it into a simple marble cake.So here it is..to celebrate Easter!!
Marble Cake
Butter – 2/3 cup
Now divide the batter into two equal portions and blend cocoa powder into one.Pour alternate spoonfuls of batter into a greased cake tin.
Slowly run a knife or a fork through the tin to create the marble effect.
Preheat the oven to 180*C and bake for 35-40 minutes or till a knife inserted comes out clean. You could Microwave the same at 80% power for 8-10 minutes.
Sending this across to Poornima for the event "For the love of Chocolate".


text:
Former President George W. Bush took the ice bucket challenge then nominated former President Bill Clinton to do it next.
The challenge has caught on with notable figures participating in the campaign to raise money for the fight against ALS, or Lou Gehrig's disease.
In a video posted Wednesday on Bush's Facebook page, he says: "To you all who challenged me, I do not think it's presidential for me to be splashed with ice water, so I'm simply going to write you a check."
The video, taken in Kennebunkport, Maine, then shows a smiling Laura Bush dousing him. She says: "That check is from me -- I didn't want to ruin my hairstyle."
Also in Maine this week, author Stephen King took the challenge, and then challenged John Grisham.


text:
"Comparing anything to Holocaust, slavery a mistake," by Kathleen Parker, Columbian Syndicated Columnist, on 28 November 2013 -- Meet Simile and Sui Generis.
Simile, to refresh memories, is a favorite rhetorical device of writers that compares two essentially unlike things that nonetheless have similar characteristics: The quarterback was like a locomotive.
Sui generis, the Latin phrase meaning unique or one of a kind, is a helpful restraint upon the former. Some things, even if they share certain characteristics, shouldn't be compared. Sui generis is the braking system on a rhetorical locomotive, or at least it should be. That was a metaphor, by the way, and not a very good one.
We in the news business could stand to apply the brakes to our runaway impulse to "similize." I personally love a good simile, which is often a way to inject levity into a column. But lately, we've seen instances of simile-itis that might have saved readers and viewers some angst, even if writers and pundits were left with less to say.
In recent weeks, we've heard news people and others compare Obamacare to Katrina and Iraq. Sarah Palin compared our national debt to slavery. Countless times in recent years we've seen "Nazi" applied to people with whose policies or politics we disagree, none so frequently as George W. Bush, though President Obama, too, has had a few turns.
All of the above are clearly sui generis and should be retired from any future similes unless they are referring to truly like things, not just a single person's impression of the world while musing on current events. Katrina is like Sandy because they were both natural disasters, though significantly more people died in Katrina than in Sandy. Iraq is sui generis and nothing like Vietnam, to which it was sometimes compared.
Nazis and the Holocaust shouldn't be compared to anything else. The systematic, state-sponsored extermination of 6 million Jews, as well as others, is sufficiently horrific to stand alone. Pro-lifers who sometimes characterize abortion as a Holocaust are probably not helping the cause of revelation.
Finally, slavery merits its own place in America's memory. To compare it to anything else, especially something as mundane as debt, is wrong on its face. Indentured servitude to China might have been a better choice for Palin, who prefaced her remark with, "This isn't racist, but …" Note: Anytime you start a sentence with "This isn't racist, but …," you probably shouldn't finish it.
Rhetorical crime
These recent examples of similes gone awry raise two questions: What is the impulse that drives our need to make such comparisons? And why do we react so viscerally when we do?
The impulse is usually to elucidate, i.e., this is as bad as that. But it is also partly lazy. Do we really have so little imagination that all we can do is summon Katrina every time an administration fails to meet our expectations? Or Hitler to denote our impression of bad? Surely, it is a rhetorical crime to turn someone so evil into a cliché.
From a purely political perspective, the impulse may be driven by the desire to remind people of the past transgressions of political foes. Thus, when commentators say Obamacare is like Katrina, the mind flits from Barack Obama to George W. Bush and only the differences, rather than the single similarity of administrative incompetence, register: People died in Katrina and President Obama only wants to help people. Through subliminal jujitsu, the real comparison lands in the community psyche.
Conversely, as Salon political writer Brian Beutler suggested during a recent conversation, even Republicans may see benefits to this comparison in that it neutralizes the ongoing, negative liability of Katrina for the GOP. But then the cycle continues into absurdity. If Obamacare collapses and Republicans present Americans with Ryancare, we likely can expect Democrats to characterize every glitch as the GOP's Katrina II.
To the most important point, comparing a horrific tragedy or atrocity to anything else trivializes and diminishes it. By trying to capture, quantify and categorize others' suffering, we trespass on the sacred.
Some things are like nothing else — and should be left to rest in peace. [http://www.columbian.com/news/2013/nov/28/comparing-anything-to-holocaust-slavery-a-mistake/]