Ministry of Home Affairs (MHA) Intelligence Bureau, Govt of India has now announced the date of publishing the MHA IB Personal Assistant Admit Card 2016. Applicants, those who have appeared for the Personal Assistant examination can download their IB Personal Assistant Exam Hall Ticket 2016.
All such applicants who are eagerly looking for the MHA IB Personal Assistant Admit Card 2016 they can download it which will be available on 01-03-2016. The Ministry of Home Affairs is all set to upload the Hall Ticket only for those aspirants who have submitted their Application Form before the last in a proper manner.
The written test for the Personal Assistant posts will be held on 20th March 2016 at the various examination centers. To check the proper address of the examination venues, applicants need to download their Hall Ticket from the official website or by using a direct link which is mentioned below.
Latest Updates: Admit cards for the Personal Assistant written examination will be sent to the applied candidates at their registered email ID which they have mentioned on the applications after Feb 29, 2016. Applicants without wasting time just check your Email daily.
Recently the Ministry of Home Affairs had invited applications for 69 posts of Personal Assistant, General Central Service, Group‐'B' in the Intelligence Bureau. A Large no of applicants have been submitted the applications and now waiting for their IB Personal Assistant Exam Hall Ticket 2016 which will be available after 29th Feb.
A written test for the above mention posts will be conducted in the month of March 2016. As we all know, applicants have less time for preparing for the written that's why here we update the Exam Pattern as well as Syllabus so, applicants can well prepare for examination within less time.
The written Exam contains Objective & Subjective type Questions.
The applicants will get total Time Duration for written exam is 02:00 hours (120 minutes).
There will be 4 Topics given by the department in the English Section.
The Essay in English/Hindi of not more than 300 words on a topic out of 4 choices and the marks of this section is 25 marks.
Test of English/Hindi language, antonyms, synonyms, one-word substitution, etc and this part contains 30 marks.
The Hall Ticket is an important document which will be check by the department at the day of examination. Without call letter, Participants will not be permitted to appear in the exam. So, contenders are strongly advised to download your Admit Card from your email and keep it safe for the examination.
Candidates firstly, need to visit the official site which is www.mha.nic.in.
Then select the appropriate link and click on it.
Now fill the necessary information like roll number and date of birth.
Submit the information and wait for a few seconds.
Now, download admit card and save it on the desktop.
At last, take a hard copy printout for exam use.


>>> as a service in GNUnet, let's call it Guix service) as of now.
>>> distribution is made through a HTTP server.
> server over GNUnet's MESH, right?
> (info "(guix) Invoking guix archive").
>>>>> * optional: users' servers could be dht nodes themselves.
>>> and for this you need to run the DHT service.
>>> packages are added to the Guix store.
> items (as per 'guix gc --list-live') and publish those.
channel number ~= port number.


In our prayers for you we always thank God, the Father of our Lord Jesus Christ, for we have heard of your faith in Christ Jesus and of the love that you have for all the saints, because of the hope laid up for you in heaven. You have heard of this hope before in the word of the truth, the gospelthat has come to you. Just as it is bearing fruit and growing in the whole world, so it has been bearing fruit among yourselves from the day you heard it and truly comprehended the grace of God. This you learned from Epaphras, our beloved fellow-servant. He is a faithful minister of Christ on your behalf, and he has made known to us your love in the Spirit.


text:
Q: Winforms scrolling text control I'm looking for a control that can hold a list of text items.
For example:

Item 1
Item 2
Item 3

When I add a new item to this list (Item 4 for example), I want the new item to appear at the bottom of the list, and the other items to shift up 1 position. So in this example, adding Item 4, will mean that Item 1 will disappear from the list.
The reason I have not just gone with a listview is because I want the items to scroll up, like an animated transition if that makes sense?
Is there something out there that can do this, or should I be writing my own control?
EDIT: An example of a web based control:
http://buildinternet.s3.amazonaws.com/projects/totem/index.html
EDIT 2: I'm also not after a horizontal marquee control.

A: You can do that with a ListBox. It isn't exactly a beautiful solution, but adding to its collection and then either scrolling or setting the selected index to ListBox.Items.Count - 1 works.
[Edit:] Oh right, animated. I believe the scrolling is animated if you set the selected index, but I doubt it will be satisfying if you are going for nice graphics.

redpajama_set_name: RedPajamaStackExchange


for $80,000 with 3 bedrooms and 1 full bath. This 1,189 square foot home was built in 1900 on a lot size of 92/87 X 125/125.
Are you wanting a Rustic log Cabin but don't want a long commute to get to it? Well take a look at this beauty! Log Cabin with some new updates and flare but still true to its roots. The home offers 3 bedrooms or you could make the third bedroom into the formal dinning room with coat closet for your guest. Private back yard and patio area. The logs on the outside of the home are a truly a labor of love. The lumber was milled in the 1900. The Home is currently used as a Air B&B Property so you could make this your next income investment as well.NEW WINDOWS AND WASHER AND DRYER HAVE BEEN PURCHASED.


text:
Christophe Lemaitre (ur. 1990) – lekkoatleta francuski, sprinter
 Georges-Henri Lemaître (ur. 17 lipca 1894 w Charleroi – zm. 20 czerwca 1966 w Leuven) belgijski ksiądz katolicki i astronom.
 (1565) Lemaître (1948 WA) – planetoida z grupy przecinających orbitę Marsa

redpajama_set_name: RedPajamaWikipedia


text:
I Want That 0% Interest Rate!
Apr 21 4 minutes read
What happens to mortgage rates when the Fed drops the rate to zero? There are a lot of factors that make up mortgage rates. We will discuss them here as well as a big take away so you can get the very lowest rate available!
So the Fed just slashed interest rates to zero. What does that mean for your mortgage?
We certainly saw the Fed slash rates to zero a little bit ago and we've had a lot of calls from our clients saying how do we get that rate?
So there's four things to really keep in mind when you're talking about mortgage rates and interest rates in general.
The first thing to know is the Fed rate, which they dropped just recently to near 0%, that's actually their rate that they loan other banks. That affects short term lending. That's more like home equity lines, lines of credit. Unfortunately, it doesn't affect mortgage rates directly.
However, there are a number of things that do affect that. First of all, mortgage rates go more off the 10 year treasury bond, which is bonds and right now in this unstable stock market, lot of people pulling money out of the stock market, putting it into treasury and so that's keeping that stable and that's helping keep rates low.
With that, rates did drop also because the Fed did release billions of dollars into the economy to help keep it stimulated during these changing times.
Quantitative easing.
Those are big words.
I had a practice that one.
Quantitative easing, which actually did affect mortgage rates a bit and drop them down.
We saw them come at almost three.
Yeah, we saw almost had 3%. So with that, what happened then, there was a flood of refinancing, a flood of people trying to refinance and get new mortgages and things like that and a lot of the banks and systems were overwhelmed, so they actually raised rates because of volume to slow it down. S.
Slow it down.
So you know, value, other actions by the Fed to stimulate the economy. The bond market are things that affect it more. Thing to take to consider.
The big takeaway here everybody is a have a good relationship with a mortgage lender.
If you have that relationship with a mortgage lender and you see these fluctuation in rates and you see them pop down, you want to be on their radar because as soon as you are, or when you are and those rates pop down, you're going to be hearing from them or you're going to be calling them directly to say, "Get me refinanced. Get me locked in."
You want to be ready to act.
You don't want to be at the end of their line. You want to be at the beginning of that line because as refinances come in or as mortgages get locked, those rates could start to go up as volume goes up.
So our preferred lender, Nathan Hartseil at Main Street Home Loans is certainly a person to be in contact with about these.
We'll have as contacts here for you below, so feel free to reach out to him. If you have any other questions, reach out to us. We'll do our best to hook you up or get the answers that you need.
Until next time, thanks for watching.
Both Erik&Randal:
And stay tuned and stay focused.
Dropped their interest rates to zero. How do I get that rate? .

redpajama_set_name: RedPajamaCommonCrawl


text:
Sheridan Smith's message to inspirational people at Pride of Isle Awards
The actress is a patron of the charity
North Lincolnshire actress Sheridan Smith has shared her message to the inspirational people celebrated at this year's Pride of the Isle Awards.
Sheridan Smith OBE, who grew up in Epworth and was born in Scunthorpe, is a patron of the charity and has previously attended some of the ceremonies.
Sheridan Smith has shared her message
Wallet stolen from kind-hearted man who let visitor claiming to be homeless and cold into his house
She was unable to make it this year but shared this message below before the event. It was read out to the 540 guests by her mum, Marilyn.
"I'm really sorry that I can't be with you tonight because I am on location in London filming Clean Break - a drama for ITV.
"I'm really disappointed to be missing this year's amazing Pride of The Isle Awards but I will be thinking of you all and I am sure it will be a wonderful, exciting, emotional and heartwarming evening. Please give my love to everyone especially those nominated for the awards…..of course, in everyone's eyes, you are all winners.
"I feel really privileged to be the Patron of the Pride of the Isle Awards and I am immensely proud to support the wonderful work you all do on behalf of Lex's Legacy and Bluebell Wood. You really are an inspiration to everyone. So have a brilliant time, raise lots of money for the charities and really make it a night to remember. Lots of love. Sheridan."


The purpose of this article is to provide complementary explanations on LiPo battery technologies as well as battery management.
Discharge capacity: remaining charge of the battery.
Voltage: Defines the maximum rotation speed of the motors.
Discharge rate: How much capacity the aircraft draws from battery per second.
Internal resistance: It is a physical imperfection wich causes power losses and heating. Directly linked to temperature and ageing.
The most important indicators for the battery status are discharged capacity and voltage.
When the voltage is too low, the motors will not be able to spin fast enough to sustain hovering. On Elios, this critical point is reached at 9.5v. But, as we can see on the figures presented below, the discharge capacity can not be easily linked to the battery voltage as this relation is dependent on the discharge rate, the temperature, the internal resistor, and its age. Furthermore, the capacity of the battery is decreasing with the number of cycles.
Effect of the discharge rate of the battery discharge at a constant temperature. The first "low battery warning" happening when the battery reaches 25% of remaining capacity. The "battery critical warning" happening when the battery reaches 10% of remaining capacity. Due to the internal resistance of the battery, we can see that the voltage drops in a correlation of the discharge rate. Please note that those figures are just illustrations and are not resulting from a measurement.
It is thus important that the pilot and the co-pilot remain aware of the battery voltage and the battery capacity at all time. Those two values are displayed in Elios cockpit below as ''ROBOT BATT''. Please note that if the battery voltage is below than 12.4v upon Elios power up, Elios consider the battery as not fully charge and is not capable of measuring the remaining charge of the battery. Hence, Cockpit will display "??%" instead of the state of charge.
Also, the low battery warning and the battery critical warning are here to warn you that you have reached the limitation of the battery in normal operation. If can be avoided, don't reach the battery critical warning.
Effect of the temperature and the ageing of the battery on its internal resistance.
Effect of the temperature on the battery discharge at same discharge rate. The temperature has a direct effect on the internal resistance. The colder a battery gets, the higher its internal resistance gets and the higher the voltage drops. One can see on the highlighted red region spike going down. Please note that those figures are just illustrations and not resulting from a measurement.
While in operation keep batteries between 10ºC and 40ºC at all time.
Land immediately the aircraft when the battery critical warning cues in Elios Cockpit.
In addition to the battery percentage, pay attention at all time to the voltage displayed on Elios Cockpit – land at 10.2V. At 10V, the robot should be on the ground, disarmed.
If the battery's voltage drops at any time below 8V or if the battery's state of charge reaches 0%, it might be damaged, do not try to charge or use the battery anymore.
For any unusual behaviour, keep the battery in a battery safe bag and the Log file aside and contact Flyability.
Always check the battery mechanical integrity before any operation.
In addition to the battery percentage, pay attention to the voltage displayed on Elios Cockpit – land at 20% or 10.2V, whichever comes first. At 10% or 10V, whichever comes first, the robot should be on the ground, disarmed. Do not wait before unplugging the battery.
After a flight, let the battery cool down to room temperature before charging it. It generally takes about 30min.
Do not charge your batteries below 15ºC or above 35ºC.
Always place your battery in a battery safe bag while charging. Never leave it unattended.
The charger is designed to stop charging when the battery is fully charged. But it is good practice to monitor the charging process and disconnect the battery when fully charged.
It is strongly advised to track battery cycles. Battery should not be used beyond 40 cycles. As shown below.
Discharge the battery to 40%–60% if it will not be used for more than 3 days. It will greatly extend their service life. The discharge can be done by using your aircraft until the battery state of charge reaches 40%–60%.
Do not store the battery in the aircraft.


All machines are running 16.04, one with the latest updates, the others slightly behind on updates.
WORKAROUND: In Settings-Appearance-Theme change the theme from the default Ambiance to anything else.
... resolves this particular issue, however I'm not sure what side-effects that would have. In the original release the line was like that in the first place, so it would have been changed for a reason.
Thank you for taking the time to report this bug and helping to make Ubuntu better. This particular bug has already been reported and is a duplicate of bug 1725921, so it is being marked as such. Please look at the other bug report to see if there is any missing information that you can provide, or to see if there is a workaround for the bug. Additionally, any further discussion regarding the bug should occur in the other report. Feel free to continue to report any other bugs you may find.


The researcher or the author.
Let us look at these roles in a bit detail.
The author or the researcher is the main person everything revolves around. He/she does the most important work or creating an idea and making it happen to produce a paper or research. The effort can be done by a single person or a group of people. Only those people should be claiming the credit for the article who has any meaningful contribution into the creation of the research or the writing of the article.
The reviewers usually are the subject specialists who look at the work of the author or researcher and critically appraise it. They help the author find if there are any flaws or mistakes that can be corrected before the article reaches the audience. They are the helpers both for the author and the Editor to review the article as an expert of the subject. They can attain this value by either their clinical experience and work on the similar area as of the author or by virtue of their work in the relevant field of review. Sometimes two or three people need to review the article if it is so required like a subject specialist and a statistician.
This comprises of team of individuals that work directly with the editor to develop the journal and promote new initiatives. The editorial board is crated by invitation. The editor invites those individuals who he thinks are aligned to the journals idea and will work as the team. The editorial board routinely shuffles and individual people come and serve on the board for a specified period of time and leave to make room for the new members. There is no set member for editorial board and so it varies from journal to journal. The editorial board sets the direction of the journal with the help of editors, they promote the research and they also broaden the expertise the journal has to help the decision making process of accepting or rejecting the research.
The editors are the critical readers and the lovers of the words.They have the most important duty of making sure that the articles that are published are well polished and refined and so their readers gets the best research. They seek the value in the work of the author and make it further presentable. They help the author to make his/her work clear and precise, improve the flow and clarity and correct any mistake.
Now that we understand the people involved in the process of review and bringing research to the audience through the journal, let us see the process in a bit detail.
Peer review is done in a defined way with the editor directing the process. It is designed to assess the validity, quality and relevance to the strategy of the journal. Its ultimate purpose is to maintain the integrity of science by filtering out invalid or poor quality articles. It is in the best interest of the journal and the publisher to make sure that the best articles and best research is presented through the journal so they can create a name for the journal and also help the audience rely on the information presented.
The process of peer review maybe double blind or single-blind or open. It means the reviewer does not know the author, or they both don't know the identity of each other or the identity is revealed. These are ways to decrease the bias of the reviewer towards the researcher or the article presented.
Editors mediate all the interactions between reviewers and authors and try to do it in the best way they think can serve the purpose. The process may have an informal structure or a formal structure. The editor looks at the article and sees if it is aligned with the policies of the journal and the research is aligned with the scope of the journal. They normally check the articles to see if they meet the minimum criteria for publication in the journal and if not then they can send some of the articles for additional work by the author in order to maintain the quality of the journal. Once gone through the eyes of the editors and deemed acceptable, the editor sends the article to the best person the editor think should review this. Now the article comes in the hands of the reviewer. Following the invitation to review the reviewer acts as the helper for the editor as well as the author is adding value to the article. They do it by a methodical way so they can give good feedback to the author on areas that need improvement.
The reviewer makes sure that the main question is addressed by the researcher and is relevant and interesting for the readers of the journal. Then they see if it is well written and free from any grammatical mistakes or factual errors. They also see if the conclusion is consistent with the evidence and argument presented. If the paper includes tables and figures, what do they add to the paper. They also look into the article by the way of the title properly reflecting the subject of the article. The also look at the abstract to see that the abstract provides an accessible summary of the paper and that the keywords accurately reflect the content.
If it's a research article the authors should have included ethical statement regarding permission for the research to be conducted but also if human subjects involved it is also important to include a statement concerning protection of the research subjects. It is good practice to ensure that authors have considered all the open guidelines for the journal in relation to the article structure and content.
The role of the editorial board.
The editorial board offers their expertise in their own area and judge the article for the alignment to the policies of the journal. They work with the editor to ensure ongoing development of the journal and also addressing the hot topics of the present time. . They also recommend a conference which would help promote the research and presenting to the public. They also attract new and established authors an article submission, and also submit some of their own work for consideration ensuring that there are no conflict-of-interest. It is important that the editorial board have a regular communication either face-to-face in person or through other medium.
It is good practice to ensure that authors have considered all the open guidelines for the journal in relation to the article structure and content.
The scientific and clinical research is presented to the audience through the medical journals. The content of the journal follow the policy of the journal and through its editors and editorial board. The contents are selected by the editor and then it goes through the peer review process. The reviewer does extensive critique both for the scientific validity and the construct to make sure that when it gets printed it should be well written in the language of the journal with a good abstract. It should fit within scope of the journal and should add to the established knowledge on the topic. The review process should make sure that it results in positively elevating the level of research article and body of knowledge of the author and resulting in better article published in the journal.


The Keurig has become a common device in homes and offices because of its convenience: There's nothing like banging a K-Cup and getting an instant cup of hot, fresh coffee. The invention of the machine has even sparked similar products for various foods and drinks. However, there are times when a Keurig is not so comfortable – especially when it starts to clog up with dirt and lime, then it refuses to work properly.
In particular, the scale can be frustrating: water, mainly hard water, has traces of minerals floating in it. These mineral particles tend to react to high temperatures that push them out of their innocuous state and bind them to nearby surfaces. As this happens over and over again, a limestone-like layer, called the scale, builds up. It causes trouble for your Keurig because it reduces the flow of water, makes it impossible to properly measure a cup, and eventually blocks your Keurig completely.
To prevent accumulation of debris, avoid unpleasant odors and mold, make sure that your Keurig works as flawlessly as possible, it is important to clean it. That's why we've created a quick guide to guide you through cleaning your Keurig. We'll show you how to best clean this coffee maker, where to start, and what materials you use. You can also read our Lime Removal Guide.
First, remove the Keurig; You do not want to damage the electronics and risk electrocution. Then remove all the components you can, including the water tank, cup holder / drip tray and K-cup holder in the coffee maker. Take them to the sink and wash them thoroughly with soapy water as they used to. Set aside to dry while working on other components.
This is also a good time to take a washcloth or a wet paper towel and wipe the whole Keurig well. The coffee machine, especially in busy environments, can collect a lot of dust over time. You do not want dust mixed with your fresh water or coffee when you're done, so it's a good idea to thoroughly clean the surface.
Get a small cleaning brush (a toothbrush works well here) and a needle or paper clip. It's time to give your Keurig more thorough cleaning for the remaining components. Although this may seem like an unnecessary step, it is very important to ensure the purity of your water and the quality of the coffee you receive from your appliance. Over time, the Keurig's fissures can collect sand and dirt, causing blockages and impaired taste. Eliminate this detritus to improve durability and performance.
Begin cleaning around K-Cup Square, where the K-Cup holder is located. Different Keurig models have slightly different insertion methods, but the basics are the same. Use the brush to clean the pod holder and the deep corners in this part of the Keurig. Grit and lost coffee grounds tend to accumulate here. A flashlight or good ceiling lighting is helpful here. A nearby bowl of water or rags can help, but try to avoid soapy water at this stage – this soap may prove difficult and you do not want it to pollute your coffee.
When this is done, get your needle / paperclip out and examine those toothy components that are in the K-Cups. There should be a small hole in each "tooth" for the hot water / coffee to go through. Insert your pin through this hole and wiggle it around to loosen encrusted debris and remove blockages. If your Keurig is running slowly, it can cause blockages in one of these holes. Yes, there are special Keurig needle cleaning tools, but you probably only want one to dispose of a Keurig in a busy office or similar situation.
Many Keurig components are in the coffee machine, which is beyond your reach. Fortunately, there is a simpler way to perform an internal cleanse than to disassemble the entire machine: the ordinary kitchen vinegar is sour enough to remove limescale, but harmless to the rest of the Keurig. Take the water container and fill it with half white vinegar and half fresh water. Put it back in the Keurig socket, put all the other pieces back in its place, and take a cup with it. It's time to make some hot vinegar.
Run the Keurig at normal settings and refill the cups with the vinegar mixture until it is completely gone. This will stink a little, but as I said, it is not harmful to your Keurig and it will help to remove this scale. It is possible that a blockage will form during this descaling process. If this is the case, open the top and use your pen again to poke the holes and see if you can remove any trapped particles.
For a full clean, it's a good idea to run two full containers of half vinegar, half water. If your Keurig is still in good shape or you do not have much time, a single full container can work well.
Note: Keurig sells its own descaling solution if you really want a branded product to work with. White vinegar, however, is cheaper and easier to find. Also, the Keurig solution uses citric acid as the active ingredient and there are some complaints that the smell and taste linger over their welcome. There are also a number of other Keurig cleaning products on the market, such as "cleaning cups" and "rinse aid containers". We do not recommend any of them because vinegar can make the job much cheaper.
You do not want the vinegar to stay in Keurig, so refill the tank with fresh water and run through a full container again to rinse everything. Make sure it passes the smell test when it's done. Once completed, your Keurig performance should be improved, and scale problems should literally have disappeared.
It's a good idea to repeat this type of cleaning on a consistent basis, especially if your Keurig sees a lot of action. Depending on the source of water, Keurig recommends descale the device at least every three to six months. Remember that hard water causes more problems than soft water. If you are having problems with scaling, you should stay away from tap water and use filtered water or mineral water instead.
Some Keurig models are equipped with water filters that are part of the water reservoir. If your Keurig has one of these filters, you will occasionally need to replace the cartridge, such as all 60 tanks. These filters can improve the taste, but they can also help make blockages and other problems less likely.
You can make an even bigger difference by switching to bottled or fully filtered water rather than filling the container with tap water idea if your device does not have a filter). However, this could be a more expensive option.


text:
#include <linux/string.h>
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/slab.h>
#include <linux/blkdev.h>
#include <linux/errno.h>
#include <linux/ide.h>
#include <linux/dma-mapping.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/scatterlist.h>
#include <linux/io.h>

#include <asm/dma.h>
#include <asm/ecard.h>

#define DRV_NAME "icside"

#define ICS_IDENT_OFFSET		0x2280

#define ICS_ARCIN_V5_INTRSTAT		0x0000
#define ICS_ARCIN_V5_INTROFFSET		0x0004
#define ICS_ARCIN_V5_IDEOFFSET		0x2800
#define ICS_ARCIN_V5_IDEALTOFFSET	0x2b80
#define ICS_ARCIN_V5_IDESTEPPING	6

#define ICS_ARCIN_V6_IDEOFFSET_1	0x2000
#define ICS_ARCIN_V6_INTROFFSET_1	0x2200
#define ICS_ARCIN_V6_INTRSTAT_1		0x2290
#define ICS_ARCIN_V6_IDEALTOFFSET_1	0x2380
#define ICS_ARCIN_V6_IDEOFFSET_2	0x3000
#define ICS_ARCIN_V6_INTROFFSET_2	0x3200
#define ICS_ARCIN_V6_INTRSTAT_2		0x3290
#define ICS_ARCIN_V6_IDEALTOFFSET_2	0x3380
#define ICS_ARCIN_V6_IDESTEPPING	6

struct cardinfo {
	unsigned int dataoffset;
	unsigned int ctrloffset;
	unsigned int stepping;
};

static struct cardinfo icside_cardinfo_v5 = {
	.dataoffset	= ICS_ARCIN_V5_IDEOFFSET,
	.ctrloffset	= ICS_ARCIN_V5_IDEALTOFFSET,
	.stepping	= ICS_ARCIN_V5_IDESTEPPING,
};

static struct cardinfo icside_cardinfo_v6_1 = {
	.dataoffset	= ICS_ARCIN_V6_IDEOFFSET_1,
	.ctrloffset	= ICS_ARCIN_V6_IDEALTOFFSET_1,
	.stepping	= ICS_ARCIN_V6_IDESTEPPING,
};

static struct cardinfo icside_cardinfo_v6_2 = {
	.dataoffset	= ICS_ARCIN_V6_IDEOFFSET_2,
	.ctrloffset	= ICS_ARCIN_V6_IDEALTOFFSET_2,
	.stepping	= ICS_ARCIN_V6_IDESTEPPING,
};

struct icside_state {
	unsigned int channel;
	unsigned int enabled;
	void __iomem *irq_port;
	void __iomem *ioc_base;
	unsigned int sel;
	unsigned int type;
	struct ide_host *host;
};

#define ICS_TYPE_A3IN	0
#define ICS_TYPE_A3USER	1
#define ICS_TYPE_V6	3
#define ICS_TYPE_V5	15
#define ICS_TYPE_NOTYPE	((unsigned int)-1)

/* ---------------- Version 5 PCB Support Functions --------------------- */
/* Prototype: icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
 * Purpose  : enable interrupts from card
 */
static void icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
{
	struct icside_state *state = ec->irq_data;

	writeb(0, state->irq_port + ICS_ARCIN_V5_INTROFFSET);
}

/* Prototype: icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
 * Purpose  : disable interrupts from card
 */
static void icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
{
	struct icside_state *state = ec->irq_data;

	readb(state->irq_port + ICS_ARCIN_V5_INTROFFSET);
}

static const expansioncard_ops_t icside_ops_arcin_v5 = {
	.irqenable	= icside_irqenable_arcin_v5,
	.irqdisable	= icside_irqdisable_arcin_v5,
};

/* ---------------- Version 6 PCB Support Functions --------------------- */
/* Prototype: icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
 * Purpose  : enable interrupts from card
 */
static void icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
{
	struct icside_state *state = ec->irq_data;
	void __iomem *base = state->irq_port;

	state->enabled = 1;

	switch (state->channel) {
	case 0:
		writeb(0, base + ICS_ARCIN_V6_INTROFFSET_1);
		readb(base + ICS_ARCIN_V6_INTROFFSET_2);
		break;
	case 1:
		writeb(0, base + ICS_ARCIN_V6_INTROFFSET_2);
		readb(base + ICS_ARCIN_V6_INTROFFSET_1);
		break;
	}
}

/* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
 * Purpose  : disable interrupts from card
 */
static void icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
{
	struct icside_state *state = ec->irq_data;

	state->enabled = 0;

	readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1);
	readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2);
}

/* Prototype: icside_irqprobe(struct expansion_card *ec)
 * Purpose  : detect an active interrupt from card
 */
static int icside_irqpending_arcin_v6(struct expansion_card *ec)
{
	struct icside_state *state = ec->irq_data;

	return readb(state->irq_port + ICS_ARCIN_V6_INTRSTAT_1) & 1 ||
	       readb(state->irq_port + ICS_ARCIN_V6_INTRSTAT_2) & 1;
}

static const expansioncard_ops_t icside_ops_arcin_v6 = {
	.irqenable	= icside_irqenable_arcin_v6,
	.irqdisable	= icside_irqdisable_arcin_v6,
	.irqpending	= icside_irqpending_arcin_v6,
};

/*
 * Handle routing of interrupts.  This is called before
 * we write the command to the drive.
 */
static void icside_maskproc(ide_drive_t *drive, int mask)
{
	ide_hwif_t *hwif = drive->hwif;
	struct expansion_card *ec = ECARD_DEV(hwif->dev);
	struct icside_state *state = ecard_get_drvdata(ec);
	unsigned long flags;

	local_irq_save(flags);

	state->channel = hwif->channel;

	if (state->enabled && !mask) {
		switch (hwif->channel) {
		case 0:
			writeb(0, state->irq_port + ICS_ARCIN_V6_INTROFFSET_1);
			readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2);
			break;
		case 1:
			writeb(0, state->irq_port + ICS_ARCIN_V6_INTROFFSET_2);
			readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1);
			break;
		}
	} else {
		readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_2);
		readb(state->irq_port + ICS_ARCIN_V6_INTROFFSET_1);
	}

	local_irq_restore(flags);
}

static const struct ide_port_ops icside_v6_no_dma_port_ops = {
	.maskproc		= icside_maskproc,
};

#ifdef CONFIG_BLK_DEV_IDEDMA_ICS
/*
 * SG-DMA support.
 *
 * Similar to the BM-DMA, but we use the RiscPCs IOMD DMA controllers.
 * There is only one DMA controller per card, which means that only
 * one drive can be accessed at one time.  NOTE! We do not enforce that
 * here, but we rely on the main IDE driver spotting that both
 * interfaces use the same IRQ, which should guarantee this.
 */

/*
 * Configure the IOMD to give the appropriate timings for the transfer
 * mode being requested.  We take the advice of the ATA standards, and
 * calculate the cycle time based on the transfer mode, and the EIDE
 * MW DMA specs that the drive provides in the IDENTIFY command.
 *
 * We have the following IOMD DMA modes to choose from:
 *
 *	Type	Active		Recovery	Cycle
 *	A	250 (250)	312 (550)	562 (800)
 *	B	187		250		437
 *	C	125 (125)	125 (375)	250 (500)
 *	D	62		125		187
 *
 * (figures in brackets are actual measured timings)
 *
 * However, we also need to take care of the read/write active and
 * recovery timings:
 *
 *			Read	Write
 *  	Mode	Active	-- Recovery --	Cycle	IOMD type
 *	MW0	215	50	215	480	A
 *	MW1	80	50	50	150	C
 *	MW2	70	25	25	120	C
 */
static void icside_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)
{
	unsigned long cycle_time = 0;
	int use_dma_info = 0;
	const u8 xfer_mode = drive->dma_mode;

	switch (xfer_mode) {
	case XFER_MW_DMA_2:
		cycle_time = 250;
		use_dma_info = 1;
		break;

	case XFER_MW_DMA_1:
		cycle_time = 250;
		use_dma_info = 1;
		break;

	case XFER_MW_DMA_0:
		cycle_time = 480;
		break;

	case XFER_SW_DMA_2:
	case XFER_SW_DMA_1:
	case XFER_SW_DMA_0:
		cycle_time = 480;
		break;
	}

	/*
	 * If we're going to be doing MW_DMA_1 or MW_DMA_2, we should
	 * take care to note the values in the ID...
	 */
	if (use_dma_info && drive->id[ATA_ID_EIDE_DMA_TIME] > cycle_time)
		cycle_time = drive->id[ATA_ID_EIDE_DMA_TIME];

	ide_set_drivedata(drive, (void *)cycle_time);

	printk(KERN_INFO "%s: %s selected (peak %luMB/s)\n",
	       drive->name, ide_xfer_verbose(xfer_mode),
	       2000 / (cycle_time ? cycle_time : (unsigned long) -1));
}

static const struct ide_port_ops icside_v6_port_ops = {
	.set_dma_mode		= icside_set_dma_mode,
	.maskproc		= icside_maskproc,
};

static void icside_dma_host_set(ide_drive_t *drive, int on)
{
}

static int icside_dma_end(ide_drive_t *drive)
{
	ide_hwif_t *hwif = drive->hwif;
	struct expansion_card *ec = ECARD_DEV(hwif->dev);

	disable_dma(ec->dma);

	return get_dma_residue(ec->dma) != 0;
}

static void icside_dma_start(ide_drive_t *drive)
{
	ide_hwif_t *hwif = drive->hwif;
	struct expansion_card *ec = ECARD_DEV(hwif->dev);

	/* We can not enable DMA on both channels simultaneously. */
	BUG_ON(dma_channel_active(ec->dma));
	enable_dma(ec->dma);
}

static int icside_dma_setup(ide_drive_t *drive, struct ide_cmd *cmd)
{
	ide_hwif_t *hwif = drive->hwif;
	struct expansion_card *ec = ECARD_DEV(hwif->dev);
	struct icside_state *state = ecard_get_drvdata(ec);
	unsigned int dma_mode;

	if (cmd->tf_flags & IDE_TFLAG_WRITE)
		dma_mode = DMA_MODE_WRITE;
	else
		dma_mode = DMA_MODE_READ;

	/*
	 * We can not enable DMA on both channels.
	 */
	BUG_ON(dma_channel_active(ec->dma));

	/*
	 * Ensure that we have the right interrupt routed.
	 */
	icside_maskproc(drive, 0);

	/*
	 * Route the DMA signals to the correct interface.
	 */
	writeb(state->sel | hwif->channel, state->ioc_base);

	/*
	 * Select the correct timing for this drive.
	 */
	set_dma_speed(ec->dma, (unsigned long)ide_get_drivedata(drive));

	/*
	 * Tell the DMA engine about the SG table and
	 * data direction.
	 */
	set_dma_sg(ec->dma, hwif->sg_table, cmd->sg_nents);
	set_dma_mode(ec->dma, dma_mode);

	return 0;
}

static int icside_dma_test_irq(ide_drive_t *drive)
{
	ide_hwif_t *hwif = drive->hwif;
	struct expansion_card *ec = ECARD_DEV(hwif->dev);
	struct icside_state *state = ecard_get_drvdata(ec);

	return readb(state->irq_port +
		     (hwif->channel ?
			ICS_ARCIN_V6_INTRSTAT_2 :
			ICS_ARCIN_V6_INTRSTAT_1)) & 1;
}

static int icside_dma_init(ide_hwif_t *hwif, const struct ide_port_info *d)
{
	hwif->dmatable_cpu	= NULL;
	hwif->dmatable_dma	= 0;

	return 0;
}

static const struct ide_dma_ops icside_v6_dma_ops = {
	.dma_host_set		= icside_dma_host_set,
	.dma_setup		= icside_dma_setup,
	.dma_start		= icside_dma_start,
	.dma_end		= icside_dma_end,
	.dma_test_irq		= icside_dma_test_irq,
	.dma_lost_irq		= ide_dma_lost_irq,
};
#endif

static int icside_dma_off_init(ide_hwif_t *hwif, const struct ide_port_info *d)
{
	return -EOPNOTSUPP;
}

static void icside_setup_ports(struct ide_hw *hw, void __iomem *base,
			       struct cardinfo *info, struct expansion_card *ec)
{
	unsigned long port = (unsigned long)base + info->dataoffset;

	hw->io_ports.data_addr	 = port;
	hw->io_ports.error_addr	 = port + (1 << info->stepping);
	hw->io_ports.nsect_addr	 = port + (2 << info->stepping);
	hw->io_ports.lbal_addr	 = port + (3 << info->stepping);
	hw->io_ports.lbam_addr	 = port + (4 << info->stepping);
	hw->io_ports.lbah_addr	 = port + (5 << info->stepping);
	hw->io_ports.device_addr = port + (6 << info->stepping);
	hw->io_ports.status_addr = port + (7 << info->stepping);
	hw->io_ports.ctl_addr	 = (unsigned long)base + info->ctrloffset;

	hw->irq = ec->irq;
	hw->dev = &ec->dev;
}

static const struct ide_port_info icside_v5_port_info = {
	.host_flags		= IDE_HFLAG_NO_DMA,
	.chipset		= ide_acorn,
};

static int icside_register_v5(struct icside_state *state,
			      struct expansion_card *ec)
{
	void __iomem *base;
	struct ide_host *host;
	struct ide_hw hw, *hws[] = { &hw };
	int ret;

	base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
	if (!base)
		return -ENOMEM;

	state->irq_port = base;

	ec->irqaddr  = base + ICS_ARCIN_V5_INTRSTAT;
	ec->irqmask  = 1;

	ecard_setirq(ec, &icside_ops_arcin_v5, state);

	/*
	 * Be on the safe side - disable interrupts
	 */
	icside_irqdisable_arcin_v5(ec, 0);

	icside_setup_ports(&hw, base, &icside_cardinfo_v5, ec);

	host = ide_host_alloc(&icside_v5_port_info, hws, 1);
	if (host == NULL)
		return -ENODEV;

	state->host = host;

	ecard_set_drvdata(ec, state);

	ret = ide_host_register(host, &icside_v5_port_info, hws);
	if (ret)
		goto err_free;

	return 0;
err_free:
	ide_host_free(host);
	ecard_set_drvdata(ec, NULL);
	return ret;
}

static const struct ide_port_info icside_v6_port_info __initconst = {
	.init_dma		= icside_dma_off_init,
	.port_ops		= &icside_v6_no_dma_port_ops,
	.host_flags		= IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO,
	.mwdma_mask		= ATA_MWDMA2,
	.swdma_mask		= ATA_SWDMA2,
	.chipset		= ide_acorn,
};

static int icside_register_v6(struct icside_state *state,
			      struct expansion_card *ec)
{
	void __iomem *ioc_base, *easi_base;
	struct ide_host *host;
	unsigned int sel = 0;
	int ret;
	struct ide_hw hw[2], *hws[] = { &hw[0], &hw[1] };
	struct ide_port_info d = icside_v6_port_info;

	ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
	if (!ioc_base) {
		ret = -ENOMEM;
		goto out;
	}

	easi_base = ioc_base;

	if (ecard_resource_flags(ec, ECARD_RES_EASI)) {
		easi_base = ecardm_iomap(ec, ECARD_RES_EASI, 0, 0);
		if (!easi_base) {
			ret = -ENOMEM;
			goto out;
		}

		/*
		 * Enable access to the EASI region.
		 */
		sel = 1 << 5;
	}

	writeb(sel, ioc_base);

	ecard_setirq(ec, &icside_ops_arcin_v6, state);

	state->irq_port   = easi_base;
	state->ioc_base   = ioc_base;
	state->sel	  = sel;

	/*
	 * Be on the safe side - disable interrupts
	 */
	icside_irqdisable_arcin_v6(ec, 0);

	icside_setup_ports(&hw[0], easi_base, &icside_cardinfo_v6_1, ec);
	icside_setup_ports(&hw[1], easi_base, &icside_cardinfo_v6_2, ec);

	host = ide_host_alloc(&d, hws, 2);
	if (host == NULL)
		return -ENODEV;

	state->host = host;

	ecard_set_drvdata(ec, state);

#ifdef CONFIG_BLK_DEV_IDEDMA_ICS
	if (ec->dma != NO_DMA && !request_dma(ec->dma, DRV_NAME)) {
		d.init_dma = icside_dma_init;
		d.port_ops = &icside_v6_port_ops;
		d.dma_ops  = &icside_v6_dma_ops;
	}
#endif

	ret = ide_host_register(host, &d, hws);
	if (ret)
		goto err_free;

	return 0;
err_free:
	ide_host_free(host);
	if (d.dma_ops)
		free_dma(ec->dma);
	ecard_set_drvdata(ec, NULL);
out:
	return ret;
}

static int icside_probe(struct expansion_card *ec, const struct ecard_id *id)
{
	struct icside_state *state;
	void __iomem *idmem;
	int ret;

	ret = ecard_request_resources(ec);
	if (ret)
		goto out;

	state = kzalloc(sizeof(struct icside_state), GFP_KERNEL);
	if (!state) {
		ret = -ENOMEM;
		goto release;
	}

	state->type	= ICS_TYPE_NOTYPE;

	idmem = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
	if (idmem) {
		unsigned int type;

		type = readb(idmem + ICS_IDENT_OFFSET) & 1;
		type |= (readb(idmem + ICS_IDENT_OFFSET + 4) & 1) << 1;
		type |= (readb(idmem + ICS_IDENT_OFFSET + 8) & 1) << 2;
		type |= (readb(idmem + ICS_IDENT_OFFSET + 12) & 1) << 3;
		ecardm_iounmap(ec, idmem);

		state->type = type;
	}

	switch (state->type) {
	case ICS_TYPE_A3IN:
		dev_warn(&ec->dev, "A3IN unsupported\n");
		ret = -ENODEV;
		break;

	case ICS_TYPE_A3USER:
		dev_warn(&ec->dev, "A3USER unsupported\n");
		ret = -ENODEV;
		break;

	case ICS_TYPE_V5:
		ret = icside_register_v5(state, ec);
		break;

	case ICS_TYPE_V6:
		ret = icside_register_v6(state, ec);
		break;

	default:
		dev_warn(&ec->dev, "unknown interface type\n");
		ret = -ENODEV;
		break;
	}

	if (ret == 0)
		goto out;

	kfree(state);
 release:
	ecard_release_resources(ec);
 out:
	return ret;
}

static void icside_remove(struct expansion_card *ec)
{
	struct icside_state *state = ecard_get_drvdata(ec);

	switch (state->type) {
	case ICS_TYPE_V5:
		/* FIXME: tell IDE to stop using the interface */

		/* Disable interrupts */
		icside_irqdisable_arcin_v5(ec, 0);
		break;

	case ICS_TYPE_V6:
		/* FIXME: tell IDE to stop using the interface */
		if (ec->dma != NO_DMA)
			free_dma(ec->dma);

		/* Disable interrupts */
		icside_irqdisable_arcin_v6(ec, 0);

		/* Reset the ROM pointer/EASI selection */
		writeb(0, state->ioc_base);
		break;
	}

	ecard_set_drvdata(ec, NULL);

	kfree(state);
	ecard_release_resources(ec);
}

static void icside_shutdown(struct expansion_card *ec)
{
	struct icside_state *state = ecard_get_drvdata(ec);
	unsigned long flags;

	/*
	 * Disable interrupts from this card.  We need to do
	 * this before disabling EASI since we may be accessing
	 * this register via that region.
	 */
	local_irq_save(flags);
	ec->ops->irqdisable(ec, 0);
	local_irq_restore(flags);

	/*
	 * Reset the ROM pointer so that we can read the ROM
	 * after a soft reboot.  This also disables access to
	 * the IDE taskfile via the EASI region.
	 */
	if (state->ioc_base)
		writeb(0, state->ioc_base);
}

static const struct ecard_id icside_ids[] = {
	{ MANU_ICS,  PROD_ICS_IDE  },
	{ MANU_ICS2, PROD_ICS2_IDE },
	{ 0xffff, 0xffff }
};

static struct ecard_driver icside_driver = {
	.probe		= icside_probe,
	.remove		= icside_remove,
	.shutdown	= icside_shutdown,
	.id_table	= icside_ids,
	.drv = {
		.name	= "icside",
	},
};

static int __init icside_init(void)
{
	return ecard_register_driver(&icside_driver);
}

static void __exit icside_exit(void)
{
	ecard_remove_driver(&icside_driver);
}

MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ICS IDE driver");

module_init(icside_init);
module_exit(icside_exit);

redpajama_set_name: RedPajamaGithub


Taking place in a different destination every year, IGTM is organised by the world's leading exhibition organiser, Reed Exhibitions, in partnership with IAGTO, the International Association of Golf Tour Operators. This winning combination of event and industry expertise brings significant benefits and opportunities to the world's golf tourism professionals attending IGTM.
With a long history of success, IGTM facilitates over 14,000 quality 1:1 meetings bringing together 1,300 golf tourism professionals from over 65 countries including 400+ golf tour operators who collectively control 80% of the world's outbound golf tourism market.


text:
Q: Removing the words from the sentences I have a dataframe containing text, I am trying to remove certain words from the text that are stored in a vector. Please help me achieve this!
stopwords <- c("today","hot","outside","so","its")
df <- data.frame(a = c("a1", "a2", "a3"), text = c("today the weather looks hot", "its so rainy outside", "today its sunny"))

Expected Output:
   a                        text          new_text
1 a1 Today the weather looks hot the weather looks
2 a2        its so rainy outside             rainy
3 a3             today its sunny             sunny

A: Paste all the stopwords together and use gsub to remove them.
df$new_text <- trimws(gsub(paste0(stopwords, collapse = "|"), "", df$text))
df
#   a                        text          new_text
#1 a1 today the weather looks hot the weather looks
#2 a2        its so rainy outside             rainy
#3 a3             today its sunny             sunny

Or with str_remove_all
stringr::str_remove_all(df$text, paste0(stopwords, collapse = "|"))

Just to be extra-safe add word boundaries around each stopwords so that, "so" from "something" or "some" is not replaced.
df$new_text <- trimws(gsub(paste0("\\b", stopwords, "\\b",
               collapse = "|"), "", df$text))


The Lahore School of Economics Executive MBA Program has been specially designed to offer mid-career professionals the chance to realize their full potentials which will ultimately lead to career advancement and a brighter future. Executive MBA is a 2 years program requiring completion of 72 credit hours. Class timing would be from 6.00 PM to 9.00 PM from Monday to Saturday at City Campus (Liberty). Executive MBA is intended for full time working executives with minimum of three years work experience. Admission to the Lahore School Executive MBA Program is regulated through an entrance examination and interview process. BA, B.Sc, B.Com or BBA Degree is necessary pre-requisite for regular admission into the Exec-MBA Program. Dead line for applications for Session 2005 is July 31, 2005. For more details contact at Tel Numbers (92-42) 5714936, 5874385, 5751148, 5873094, 5876065 or visit Admission Office at Lahore School of Economics, City Campus, 104-C-2, Gulberg – III, Lahore.
DR. Muhammad Rafiq Khan, the Senior Research Fellow at the Center for Advanced Research in Economics and Business, gave out a talk on Socio Economic Analyses of Kasur Tannery Pollution Control Project in Lahore school of Economics. During the talks, the Guest Speaker explained the technology, plant design, cost analyses, and socio economic benefits of the Project – first of its kind in Pakistan.
The lecture was followed by question answer session.


Purchase of this Gift Certificate DOES NOT GUARANTEE that the recipient is accepted into an NRA BASIC PISTOL SHOOTING COURSE. If the recipient cannot pass pre-authorization for the course the full value of the Gift Certificate will be refunded to the buyer.
The Basic Pistol Shooting Course will begin at 8:00 on the day of the class and is eight hours.
Bring your handgun and 100 rounds of ammunition.
Click the button below to add the 2013-01-01 - NRA Basic Pistol Shooting Course Gift Certificate to your wish list.


Winning Post lets the player take control of a stable of horse, breeding and training them for the ultimate goal, to win the French Grand Prix. The player can hire breeders, trainers and jockeys and race in over 240 different races to earn more money to buy even better personnel and breed faster and stronger horses as well as keeping their horses healthy. Players can also bet on races as well. The gameplay consists of choosing options before races, such as choosing which horses to train and what regiment they undertake, view stats, hire personnel and place bets. However the player has no controls over races and cannot participate and only view as a spectator.


text:
Q: MySQL Connection Timeout Issue - Grails Application on Tomcat using Hibernate and ORM I have a small grails application running on Tomcat in Ubuntu on a VPS. I use MySql as my datastore and everything works fine unless I leave the application for more than half a day (8 hours?). I did some searching and apparently this is the default wait_timeout in mysql.cnf so after 8 hours the connection will die but Tomcat won't know so when the next user tries to view the site they will see the connection failure error. Refreshing the page will fix this but I want to get rid of the error altogether. For my version of MySql (5.0.75) I have only my.cnf and it doesn't contain such a parameter, In any case changing this parameter doesn't solve the problem.
This Blog Post seems to be reporting a similar error but I still don't fully understand  what I need to configure to get this fixed and also I am hoping that there is a simpler solution than another third party library. The machine I'm running on has 256MB ram and I'm trying to keep the number of programs/services running to a minimum.
Is there something I can configure in Grails / Tomcat / MySql to get this to go away?
Thanks in advance,
Gav
From my Catalina.out;
2010-04-29 21:26:25,946 [http-8080-2] ERROR util.JDBCExceptionReporter  - The last packet successfully received from the server was 102,906,722 milliseconds$
2010-04-29 21:26:25,994 [http-8080-2] ERROR errors.GrailsExceptionResolver  - Broken pipe
java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
         ...
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter  - Already closed.
2010-04-29 21:26:26,016 [http-8080-2] ERROR util.JDBCExceptionReporter  - Already closed.
2010-04-29 21:26:26,017 [http-8080-2] ERROR servlet.GrailsDispatcherServlet  - HandlerInterceptor.afterCompletion threw exception
org.hibernate.exception.GenericJDBCException: Cannot release connection
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Already closed.
        at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:84)
        at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181)
        ... 1 more

A: In grails 1.3.X, you can modify the evictor values in the DataSource.groovy file to make sure pooled connections are used during idle. This will make sure the mysql server will not time out the connection.
production {
  dataSource {
    pooled = true
    // Other database parameters..
    properties {
       maxActive = 50
       maxIdle = 25
       minIdle = 5
       initialSize = 5
       minEvictableIdleTimeMillis = 1800000
       timeBetweenEvictionRunsMillis = 1800000
       maxWait = 10000
    }
}

A quick way to verify this works is to modify the MySQL my.cnf configuration file [mysql] element and add wait_time parameter with a low value.

A: Referring to this article, you have stale connections in your DBCP connections pool that are silently dropped by OS or firewall.
The solution is to define a validation query and do a sanity check of the connection before you actually use it in your application.
In grails this is actually done by modifying the grails-app/conf/spring/Resource.groovy file and add the following:
beans = {
  dataSource(BasicDataSource) {
    //run the evictor every 30 minutes and evict any connections older than 30 minutes.
    minEvictableIdleTimeMillis=1800000
    timeBetweenEvictionRunsMillis=1800000
    numTestsPerEvictionRun=3
    //test the connection while its idle, before borrow and return it
    testOnBorrow=true
    testWhileIdle=true
    testOnReturn=true
    validationQuery="SELECT 1"
  }
}

A: Try increasing the number of open MySQL connections by putting the following in your DataSources.groovy:
dataSource {
     driverClassName = "com.mysql.jdbc.Driver"
     pooled=true
     maxActive=10
     initialSize=5
     // Remaining connection params
}

If you want to go the whole hog, try implementing a connection pool; here is a useful link on this.

A: For grails 1.3.X, I had to add the following code to Bootstrap.groovy :
  def init = {servletContext ->
  def ctx=servletContext.getAttribute(ApplicationAttributes.APPLICATION_CONTEXT)

    //implement test on borrow
    def dataSource = ctx.dataSource
    dataSource.targetDataSource.setMinEvictableIdleTimeMillis(1000 * 60 * 30)
    dataSource.targetDataSource.setTimeBetweenEvictionRunsMillis(1000 * 60 * 30)
    dataSource.targetDataSource.setNumTestsPerEvictionRun(3)
    dataSource.targetDataSource.setTestOnBorrow(true)
    dataSource.targetDataSource.setTestWhileIdle(true)
    dataSource.targetDataSource.setTestOnReturn(false)
    dataSource.targetDataSource.setValidationQuery("SELECT 1")

  }

I also had to import org.codehaus.groovy.grails.commons.ApplicationAttributes

A: Add these parameters to dataSource
        testOnBorrow = true
        testWhileIdle = true
        testOnReturn = true

See this article for more information
http://sacharya.com/grails-dbcp-stale-connections/

A: Starting from grails 2.3.6 default configuration already has options for preventing closing connection by timeout
These are the new defaults.
    properties {
       // See http://grails.org/doc/latest/guide/conf.html#dataSource for documentation
       ....
       minIdle = 5
       maxIdle = 25
       maxWait = 10000
       maxAge = 10 * 60000
       timeBetweenEvictionRunsMillis = 5000
       minEvictableIdleTimeMillis = 60000
       validationQuery = "SELECT 1"
       validationQueryTimeout = 3
       validationInterval = 15000
       testOnBorrow = true
       testWhileIdle = true
       testOnReturn = false
       jdbcInterceptors = "ConnectionState;StatementCache(max=200)"
       defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
    }

A: What does your JDBC connection string look like? You can set an autoReconneect param in your data source config, e.g.
jdbc:mysql://hostname/mydb?autoReconnect=true


text:
Australia outrage at greyhound 'live baiting' footage
Australia's greyhound racing industry is facing outrage after a television report showing illegal live baiting during training sessions.
An ABC Four Corners report showed live piglets, possums and rabbits being chased and eventually killed by dogs.
Greyhounds Australasia has begun an urgent review of animal welfare.
Industry authorities in New South Wales, Victoria and Queensland have suspended more than 20 people after raids on properties last week.
They were carried out after ABC handed over its footage ahead of Monday's broadcast.
Live baiting is outlawed but some trainers believe it gives their dogs an advantage in races.
'Profoundly disturbing'
The footage was secretly filmed at training tracks in Queensland and Victoria.
Some of the video showed struggling animals being flung around a mechanical lure before being torn apart by greyhounds. One possum was spun on the lure for almost an hour.
The footage also captured trainers apparently discussing ways of disposing of unwanted dogs, which is against racing regulations.
"What we have documented is sickening, shocking and profoundly disturbing, not only because of the horrific cruelty, but because of the human behaviour that is revealed," said Lyn White from Animals Australia, which helped gather the footage.
There has been condemnation from senior figures in Australia's greyhound industry.
In a statement, Greyhounds Australasia Chief Executive Scott Parker described the footage as "appalling", and called the use of live animals "disgusting, illegal, unethical and totally rejected by the industry".
Darren Condon, the CEO of Racing Queensland, said immediate action would be taken against individuals implicated.
Peter Caillard, chair of Greyhound Racing Victoria, said the use of live bait was "abhorrent and has no place in our sport".
"Any person engaged in live baiting can expect to be disqualified and prosecuted," he said, but added that he believed the practice was not widespread, and was isolated to one private facility in Victoria.
Depending on state laws, someone convicted of animal cruelty in Australia can face a jail term of between one and five years, and a substantial fine.
The Victoria state government has announced two separate investigations into the greyhound racing industry.
Animals Australia and Animal Liberation Queensland, who also helped make the report, have called for an end to greyhound industry self-regulation.


Monthly data released last week were sparse, but included a substantial increase in December factory orders, Productivity in the 4th quarter decreased, and unit labor costs increased. Consumer credit increased, and wholesale inventories decreased.
$137.6 B (adjusted -13.1% for 2013 payroll tax withholding changes) vs. $146.5 B, -6.2% YoY last 20 days. The unadjusted result was $158.1 B for a 7.9% increase.
Employment metrics were again weak this week. Initial claims remained in their 2012 range this week. In the second half of 2012 the ASA index's performance compared with 2011 declined significantly, although the absolute index was higher. In the last two weeks, however, the Index declined below its 2007 values and has lessened its increase over last year at this time.
I am adjusting my YoY tax withholding figures to reflect the increase in personal withholding taxes. While the YoY collections are up substantially, they should be up over 15% to compesnate for the tax increase. Since I can think of no reason why employment itself should have fallen off a cliff in January, it is very possible that there is a lag in the payment of withholding taxes with the new increase. In fact, the rolling 20 day average this week is much better than the average was last week compared YoY. If this hypothesis is correct, I would expect tax withholding to be much more reliable by the end of February.
Gallup remains significantly positive. The ICSC varied between +1.5% and +4.5% YoY in 2012. This week was again close to the bottom end of that range. Johnson Redbook is also in the lower part of its YoY growth range from 2012. Even in the worst case, it still looks like consumer spending has not collapsed due to the tax withholding increase.
Housing prices bottomed at the end of November 2011 on Housing Tracker, and have averaged an increase of +2.0% to +2.5% YoY for the last year.
Loans turned up at the end of 2011 and averaged about 1% gains YoY through most of 2012, and have recently shown somewhat more YoY strength. This week remained was closer to the bottom of its recent YoY range.
Purchase applications had been going sideways for 2 years,, but in recent weeks have finally looked like they may be breaking out of that range to the upside, but the move is not decisive yet. Refinancing applications were very high for most of last year with record low mortgage rates, which have recently increased.
Interest rates for corporate bonds have generally been falling since being just above 6% two years ago in January 2011, hitting a low of 4.46% in November 2012. Treasuries have fallen from about 2% in late 2011 to a low of 1.47% in July 2012. Spreads have varied between a high over 3.4% in June 2011 to a low under 2.75% in October 2012. The last several weeks have seen a marked increase in rates, although the YoY changes remain positive.
Real M1 made a YoY high of about 20% in January 2012 and has generally been easing off since. This week's YoY reading remained above a new low set several weeks ago. Real M2 also made a YoY high of about 10.5% in January 2012. Its subsequent low was 4.5% in August 2012. It weakened once again this week. Both are still quite positive in absolute terms.
Gas prices are increasing seasonally, although markedly so in the last week. Unusually for the last year plus, the 4 week average for the third week in a row was positive YoY.
Rail transport has been whipsawing between very positive and very negative readings over the last 2 months. This may well be the aftermath of the dock strikes. Traffic ex-coal returned to being positive this week. The Harpex index is still near its 3 year low of 352, and the Baltic Dry Index is still generally declining towards its 52 week low from last February.
The TED spread is barely above its 52 week low. LIBOR is again at a new 52 week low and is close to a 3 year low.
The most important issue at the moment is whether the 2% increase in withholding tax rates is having an effect on consumers. We can add to that the issues of the impending austerity of the budget sequestration, and the potential consequences of moving income and spending forward into 2012 from 2013 due to tax increases. This week and last week it looks like we got evidence for the first time that there has been an effect.
By far the most negative data was tax withholdings, although these were not so bad as last week. Temporary jobs also stalled, and initial claims are back in their 2012 range. Bond interest rates and spreads are also increasing. Money supply, while positive, is near the lower end of its range.
Continuing positives include the housing market, money supply, consumer spedning, bank lending rates, and commodity prices. Gas prices, while rising, haven't turned constrictive yet. Gas usage has turned positive. Rail traffic is also positive again.
If austerity measures emanating from Washington are enough to tip the economy into contraction, the evidence should accumulate in the next few weeks. While there is some evidence of a consumer and employment slowdown, most of the high frequency data continues to support economic expansion.
Is It Time to Buy Wheat?
On the yearly chart for wheat, we see the big price move starting in mid-June of 2012, which ultimately shows a move higher of about 21%. Prices moved sideways for the summer and fall, but eventually moved lower at the end of last year, hitting support in early January. Prices have been consolidating between the 7.5 and 8.00 a bushel level since.
As of Feb. 5, the U.S. Drought Monitor classified 92 percent of a six-state Great Plains region with soil-moisture levels below 20 percent of normal, including some at zero, with water shortages and crop damage likely.
Any improvement in consumption may boost demand for U.S. supplies. Wheat on the CBOT is about $1.23 a bushel cheaper than the grain on NYSE Liffe in Paris, compared with a premium of about 71 cents a bushel in July, according to data compiled by Bloomberg.
We're still in a major drought in the area of the country that grows wheat. Until that changes, I'd be going long wheat right now.
So far this month (which is basically this week), the SPYs have been consolidating gains. The 60 minute chart (top chart) shows that prices have hit resistance at the 151.5 area with a rising base. Also note the declining MACD for the entire duration of the chart. The daily chart (bottom chart) shows that prices are right at support with an MACD that has given a sell signal.
The daily long-term corporate chart (top chart) shows that prices have fallen below the shorter EMAs and are now using the 200 day EMA for technical support. The shorter EMAs are headed lower with the shorter below the longer and a negative CMF. The weekly chart (bottom chart) shows that the technical damage is becoming more severe. The long bull run is clearly over with prices breaking the trend at the end of last year. Now prices are right at the 200 week EMA with a declining MACD and higher volume. Also note the very weak position of the CMF.
The oil market broke the sharp upward trend this week, falling back to the 10 and 20 day EMA. The 998 price level provided sufficient resistance. The declining MACD indicates that a consolidation period is probably in order.
A decade ago, I concluded that we were in the early stages of a secular bear market, and that investors needed to adjust their risk postures accordingly. Back in December 2003, I penned a piece for the Stock Trader's Almanac, titled Managing the Very, Very Long Term, based on this blog post from November 2003.
Long time readers know this is a major theme to for me. Much of my commentary, presentations and investing posture has been about longer term, secular cycles. Search the Big Picture for the phrase "secular bear market" and 659 results come up (in quotes, 130).
This is a great piece -- one that everybody who is interested in the market should read. So go read the rest of it.
Global growth is forecast to be a little below average for a time, but the downside risks appear to have abated, for the moment at least. The United States has so far avoided a severe fiscal contraction and financial strains in Europe have lessened considerably over recent months. Growth in China has stabilised at a fairly robust pace. Around Asia generally, growth was dampened by the earlier slowing in China and the weakness in Europe, but again there are signs recently of stabilisation. Some commodity prices have firmed over recent months.
Since the Reserve Bank's last quarterly Policy Review in October 2012, headwinds holding back the global economy have begun to abate gradually, although sluggish conditions prevail. In the US, activity gathered momentum in the third quarter of 2012 but this is unlikely to have been sustained in the fourth quarter. While a political consensus to avert the 'fiscal cliff' has calmed financial markets, how the debt ceiling is managed will be crucial in shaping the market sentiment on the way forward. The euro area economy is threatened by continuing contraction, notwithstanding the liquidity firewall of the European Central Bank (ECB) and the EU's commitment to act collectively to backstop the union. Overall, however, apprehensions that the sovereign debt crisis will disrupt the global financial system have ebbed.
Yesterday, I noted the Mexican market is starting to lose momentum as prices move more and more sideways. This trend is continuing throughout Latin America. The Colombian market (top chart) has been trading in a tight trading range for the entire year. While the EMAs have been moving generally higher, the shorter EMAs are starting to lose momentum. Also note the downward trajectory of the MACD. The Argentinean market (bottom chart) has broken the trend started in mid November and is now headed for the 200 day EMA. Like the Colombian market, this market also has a declining MACD.
Recently, the Australian central bank kept their interest rate policy unchanged. This exacerbated the downward trend of the Australian dollar. On the daily chart (top chart) we see that prices have broken trend and are now headed for the 200 day EMA. We also see a degradation of the EMA picture with the shorter EMAs crossing through the longer EMAs as prices pull all lower. However, the real technical damage is on the weekly chart (lower chart) which shows that prices have attempted to breach the 105/106 level again, only to be rebuffed lower. As a result, we see a decrease in the CMF.
The Japanese ETF has been consolidating between the 9.7 and 10 price level for the month of January. Yesterday, prices broke through upside resistance on a decent volume spike. This was accompanied by the MACD printing a buy signal.
The Malaysian market continues its drop, which has been a little over 7% since peaking at the 15.4 level. Prices are now below the 200 day EMA which will eventually pull the other EMAs lower as well. Also note the increase spike in volatility as evidenced by the rising Bollinger Band width.
Over the last few days, it was announced that the DOJ had filed a suit against S&P regarding the AAA valuations they gave to crap securities. Barry over at the Big Picture has a very good summation of why the ratings agencies deserve to burn in hell. I would like to add the following to his great take down of these "credit enablers."
First, it used to be that less sophisticated fund managers would use a rating from a ratings agency as a primary reason for buying a bond. This was especially true in smaller markets where a portfolio manager either wore multiple hats or for whom finance was not his first line of business -- for example, small fraternal societies, smaller, regional banks, etc... In essence, the rating essentially did their job for them. That's is why what happened with S&P is so important.
Second, the agencies are going to lose. How do I know that? Email. A central component of all these cases is an email trail. And I guarantee you that after spending five years sifting through over 20 million pages of information, the DOJ has plenty of doozies. Within the confines of corporate communication, people say all sorts of incredibly stupid things that essentially incriminate themselves or the organization. As an example, read this report on the tax shelter industry that led to a criminal settlement with KPMG of over $600 million. In the KPMG investigation, an email trail was used multiple times to counter a witnesses statements and prove they were lying. I will bet anyone that the same situation exists here.
Third, the reason it takes so long to bring these cases is the size of the issue. Think about how many deals S&P rated over a 5 year period. I don't know for sure, but they were the preeminent player in the field. So, casting the widest net possible we now have literally the entire playing field of deals done in the credit boom. Now start to cull through all that data to the best cases to prosecute. Of all the deals the DOJ looks at, they're going to find the best. Remember, they get to pick their battlefield -- why not pick the ones with the greatest tactical advantage?
Fourth, like Barry I hope all of these agencies are destroyed by this case.
Yesterday, I looked at three reasons why the US economy might be moving into a higher growth mode. I did this analysis to essentially argue with a previous conclusion I came to hat argued for slow growth going forward. The three areas of the economy that I highlighted yesterday -- housing, auto sales and manufacturing -- could provide strong growth going forward, possibly kicking GDP growth into a higher gear. However, there are two decidedly negative developments at the national level which are going to hurt growth. Unfortunately, both emanate from Washington.
As of Jan. 1, the payroll tax that funds Social Security was raised two percentage points to its 2010 level of 6.2 percent. It is also by far the biggest component—$125 billion of the $190 billion—in tax increases approved by Congress to fend off a bigger wave of tax hikes from the "fiscal cliff."
The year over year percentage change in average hourly earnings of production workers have been declining for the duration of this expansion. This decline is to be expected when unemployment is still at 7.9%, leading to no upward wage pressures.
Under standard IS/LM analysis, an increase in taxes leads to a decrease in spending, and hence, national income.
First, what is the sequester?
It's a package of automatic spending cuts that's part of the Budget Control Act (BCA), which was passed in August 2011. The cuts, which are projected to total $1.2 trillion, are scheduled to begin in 2013 and end in 2021, evenly divided over the nine-year period. The cuts are also evenly split between defense spending — with spending on wars exempt — and discretionary domestic spending, which exempts most spending on entitlements like Social Security and Medicaid, as the Bipartisan Policy Center explains. The total cuts for 2013 will be $109 billion, according to the new White House report.
Under the BCA, the cuts were triggered to take effect beginning Jan. 1 if the supercommittee didn't to agree to a $1.2 trillion deficit-reduction package by Nov. 23, 2011. The group failed to reach a deal, so the sequester was triggered.
As people who read this blog regularly are well aware, a drop government spending leads to a drop in GDP. We saw this last quarter with the impact of a drop in defense spending. We've also seen this hit the UK, which has been engaging in austerity for the last few years having little success.
Under standard IS/LM analysis, a drop in government spending leads to a drop in GDP.
Thanks to the idiots in Washington, it appears that we have macro-level policies that are counter-productive to the economy as a whole. This at a time when the economy wants to move into a higher growth mode.
Earlier this week, we learned that the Brazilian inflation rate came in hotter than expected. As a result, the Brazilian central bank's policy bind is deepening. The Brazilian market is reflecting this problem. Despite gapping higher at the beginning of the year, the daily chart has been moving sideways for the last month (top chart). The declining MACD shows that momentum is slowing -- which can be a sign of consolidation. Prices overall are trading in a very narrow range (roughly 1.5-2 points). The weekly chart (bottom chart) places the movements in a broader perspective, with prices trapped by the 200 week EMA. However, this chart does have a positive and rising MACD.
The Japanese yen continues to move lower. Since the new Japanese government announced they would engage in more stimulus spending and accept a higher inflation target of 2%, the yen has dropped. Since the yen's absolute high on the six month chart of 127.36 it has dropped almost 18%.
The South Korean market has taken a hit over the last month. After spiking up at the beginning of the year to the 65 level, prices have continued to move lower, dropping about 10% to their current price of 59, right above the 200 day EMA. However, the real technical damage becomes apparent on the weekly chart (bottom chart). After breaking through the top side of a consolidation triangle in the late summer, the market was moving higher. However, now prices have broken that trend line, with the next logical price target the 50 week EMA.
The Mexican market is still moving higher, but notice the trajectory is starting to wane. This is confirmed by the declining MACD.
To sum up the national and international position, I just don't see strong enough overall growth in any economy to warrant a strong long position right now. The best reading of the data is that we'll see a stronger second half, with the US housing market providing sufficient domestic stimulus combined with a more settled fiscal situation. This would also allow the EU to continue strengthening or bottoming. The stronger second half argument leads could lead into the fact that the market is a leading indicator of anticipated future activity -- a fair point as far as it goes, but I just don't see the overall underlying strength to support the rally long term.
Then came Friday's move higher, which led me to question my analysis yet again. Over the weekend, I realized that my conclusion was based on a macro reading of other world economies, and not the fact that the US being the largest world economy could achieve a level of growth sufficient to propel it beyond the 2% GDP growth rate we've seen for the last few years. In addition, for the last few years I've been wedded to an analysis that calls for US growth between 0%-2% (an analysis that has been mostly correct).
So, as a thought exercise, let's look at a few data points that support the idea the US is about to move into a period of higher growth.
If any sector can help to move the economy into a higher gear, it's housing, largely because it provides a tremendous multiplier. When a house is built, it requires a large amount of raw materials converted into useful items (wood, copper, etc..). There is also a decent amount of labor involved. Finally, there is a large amount of durable goods that go into a house (furniture and appliances). All of these factors add up to a decent multiplier for the macro economy as a whole.
For me, the real story of housing is the low inventory levels we're seeing at the macro level, as shown in the following two charts.
Although they are coming off a low level, housing starts have clearly picked up and are rising at a strong clip.
Also note residential construction increased 22.3% last year -- a very strong number.
In short, housing still remains a big reason why the US economy may kick into a higher growth rate.
Sales of cars and light trucks have been in a strong uptrend since the bottom of the recession.
The top chart shows the figures for the last five years. While we do have some dips in the figure, the overall upward trend is clear. The longer chart (lower chart) puts the action in overall historical context. The drop in activity during the Great Recession was the sharpest we've seen since 1980. But now overall figures are at levels seen with the mid-1990s expansion.
The reason for the importance of auto sales is, like housing, they have a decent multiplier effect on the economy. There are still a fair number of employees in this industry -- especially in the industrial Midwest -- the the process of making a car still requires a large amount of ancillary activity.
The strongest evidence of a manufacturing resurgence is found in the latest ISM report, issued last week.
The report was issued today by Bradley J. Holcomb, CPSM, CPSD, chair of the Institute for Supply Management™ Manufacturing Business Survey Committee. "The PMI™ registered 53.1 percent, an increase of 2.9 percentage points from December's seasonally adjusted reading of 50.2 percent, indicating expansion in manufacturing for the second consecutive month. The New Orders Index registered 53.3 percent, an increase of 3.6 percent over December's seasonally adjusted reading of 49.7 percent, indicating growth in new orders. Manufacturing is starting out the year on a positive note, with all five of the PMI™'s component indexes — new orders, production, employment, supplier deliveries and inventories — registering above 50 percent in January."
Of the 18 manufacturing industries, 13 are reporting growth in January in the following order: Plastics & Rubber Products; Textile Mills; Furniture & Related Products; Printing & Related Support Activities; Apparel, Leather & Allied Products; Electrical Equipment, Appliances & Components; Miscellaneous Manufacturing; Fabricated Metal Products; Transportation Equipment; Petroleum & Coal Products; Machinery; Primary Metals; and Food, Beverage & Tobacco Products. The four industries reporting contraction in January are: Nonmetallic Mineral Products; Computer & Electronic Products; Wood Products; and Chemical Products.
Simply put, the report above is very bullish. It shows a broad path of growth over a variety of internal ISM figures (overall index, new orders, employment, supplier deliveries and inventories) along with a majority of industries growing.
The final Markit U.S. Manufacturing Purchasing Managers' Index™ (PMI™)1 signalled a strong expansion of the U.S. manufacturing sector at the start of 2013. Moreover, at 55.8, below the earlier flash estimate of 56.1 but higher than that recorded in December (54.0), the PMI signalled the fastest rate of growth in nine months.
The good news in the report is from the housing market. We see a statement to that effect along with business improvement in furniture and related products and increased orders in wood products.
It is interesting that these reports are not in sync with the regional Fed reports, a situation that I cannot explain.
All three of the above sectors -- housing, autos and manufacturing -- are bedrock components of the economy. If all three are doing fairly well, the worst that can happen is slow growth. There is simply too much of a multiplier effect of the combined total for a recession to occur with the above three expanding.
However, this is before we get to the latest and upcoming fiscal follies from the idiots in Washington. We'll touch on that tomorrow.
The big story yesterday was the equity market sell off in Europe caused by political scandal in Spain (top two charts) and an upcoming election in Italy (bottom two charts). The Spanish market's daily chart (top chart) shows that prices have dropped about 10% over the last few days. PRices have fallen through all the shorter EMAs and the 10 day EMA is about to move through the 20. Also note that technically, prices are already at the 50% Fib level -- a very strong technical shellacking. On the Spanish weekly chart (second from top) prices have already broken the trend established in July of last year.
The Italian market charts (bottom two charts) have similar technical profiles, albeit a bit less several in their implications. The daily chart (second from bottom) has only sold off to the 38.2% Fib level while the weekly chart shill has its long-term trend intact, albeit barely.
The sell-off also hit the French market, shich dropped over 3%, breaking a short, month-long trend. The market is now in retreat, with the next logical target being the 61.2% Fib lever or the top Fib fan level.
Finally, there is the German market, which sold off right to technical support.
There was a 30 minute black out during the Super Bowl last night, which seems like an appropriate time to bring up the terrible state of the US' infrastructure.
Would this be a great way to lower unemployment and get the economy moving again? It did work for China, after all.
I'm not sure who first coined the phrase "currency war." By my recollection, it was first used over the last four years by Brazil, as they started to complain about low US interest rates lowering the dollar's value. This in turn raised the price of commodities, which hurt Brazil which is more dependent on commodity exports for growth. Regardless, this term continues to be used by a variety of sources and people. But while this is a great way to gain traction for your website, it's terrible analysis that is factually incorrect for a number of reasons.
First, the standard policy response to a recession from any central bank is to lower interest rates. This is not with the intent to start a currency war; it occurs to stimulate the local economy. And while this move may lead to a lower currency value, that is also an intended result of lowering rates, as a lower currency value makes the home country's goods more competitive on the world stage.
But more importantly, the US was not the only country to lower interest rates after the Great Recession: in fact, interest rates from all around the world are at record low levels.
Yes, the euro was declining from mid-2011 to mid-2012. However, it was during this time that the entire trading world though the EU was going to implode. Talk of a "Grexit" were rampant. Editorial writers fell over themselves trying to predict the EUs imminent collapse. In other words, the macro-economic and political background against which traders make their bets was uniformly bearish.
But, starting at the end of last summer when the ECB chief said he would do whatever it takes to save the EU union, the euro has been rallying despite it still has a 75 basis point discount rate. The reason for the rally is a general impression that the economic and political environment is healing.
We see an overall rally that lasts nearly five years. It was only after the new government started to talk about deliberately devaluing the yen, accepting a higher inflation target and passive a stimulus bill that traders started to sell the yen.
Despite having record low rates since the end of the Great Recession, the dollar rallied from mid-2011 to mid-2012. And while the dollar has dropped since then, it's not at a record low as one would think in the current rate environment.
In times of economic hardship, central banks lower interest rates -- that's central banking 101. If they didn't lower rates because of a fear of starting a currency war, there would be an uproar from traders and economists about their non-movement. In short, the idea that there is a global currency war going on just doesn't play out in the charts.
Of the four major averages, only one (the QQQs) are not in the middle of a rally. All have strong EMA positions and all are above their respective 200 day EMA. There are a few warning signs to consider, however. First, notice the large valume spike on the transports (bottom chart). That could be interpreted as a buying frenzy. In addition, all the MACDs are weakening. The IWMs and IYTs (bottom two charts) have flashed sell signals while the SPYs (top chart) is weakening.
However, these negative developments could just as likely be interpreted as the beginning of a consolidation rather than a sell off.
At the same time, we're finally seeing the treasury market begin to sell off. The longer end (bottom two charts) are clearly in a downward trend with prices below the 200 day EMA and the shorter EMAs crossing below the 200 day EMA. Also note that prices have moved through support established in early September. The 7-10 year section of the market (second from top), is right at support with a weakening technical position.
The next few weeks will be critical to seeing of the treasury market is finally going to meaningfully sell-off, thereby providing much needed funds for the equity markets.


text:
Houseboats of Shoreham
Shoreham-by-Sea, England
A motley, fantastical agglomeration of unlikely houseboats along the Shoreham-by-Sea riverbank.
The Verda from the side Rubix Fountain (Atlas Obscura User) (Used with Permission)
The Verda from the front (yes, those are torpedoes) Rubix Fountain (Atlas Obscura User) (Used with Permission)
The Verda from the deck; the bus is the events space Rubix Fountain (Atlas Obscura User) (Used with Permission)
The Dodge Rubix Fountain (Atlas Obscura User) (Used with Permission)
The Verda, neighbors, environs Rob (CC BY-SA 2.0)
Some are more understated ReflectedSerendipity (CC BY-SA 2.0)
50 to 60 of these bad boys Paul Pitman (CC BY 2.0)
Houseferry Les Chatfield (CC BY 2.0)
Housebarge Les Chatfield (CC BY 2.0)
Not a bad spot Les Chatfield (CC BY 2.0)
The neighborhood Adam Tinworth (CC BY-ND 2.0)
Paul Pitman
Top Places in England
East Sussex, England
Crossbones Graveyard
The Francis Trigge Chained Library
Grantham, England
Normality ebbs away as you edge along the river path revealing a hodgepodge of has-been boats restored and reimagined.
Shoreham-by-Sea is a small beach town at the mouth of the River Adur that is often overlooked thanks to its vicinity to more popular weekend destinations like Brighton or Littlehampton — which is all the better for the motley, fantastical agglomeration of unlikely houseboats that have accrued on the riverbank.
What has grown along the "Bloomin' Adur" is a unique bridge between land and sea of cobbled treasures made from another's trash. The obscure houseboat art collective has been growing since the end of World War II, when decommissioned military ships were retired to Shoreham's tidal mud flats. Today there are some 50 to 60 boats to be found at the site and, since the structures are waterborne, few building regulations apply, meaning owners can unleash their greatest structural/architectural/artistic fancies in the midst of a wild, natural setting.
The result is a labyrinthine dream afloat — a gaudy Gaudi vision made with love and a lot of hard work. Some highlights include: the Verda, which is made of parts and portions of seven or eight different boats, as well as two buses and a Reliant Robin; the Dodge, which incorporates an old fire engine and is available for rent on Airbnb, making it one of the most magically odd apartments ever conceived; the Clive, a former World War II Motor Torpedo Boat (with an aeroplane fashioned on top, of course) now home to a huge workshop and pop-up cafe; and the Fische, a mid-century German minesweeper that — having been designed for a crew of 30 — now provides its owners with more-than-ample living space.
The Verda, Dodge, and Clive (as well as five others) are all owned by Hamish, a creative crafter of second-hand materials as well as a leading light in the Shoreham houseboat community. The Verda is not only his home, but also includes a community social space that hosts meditation, yoga, film nights, live music, markets, healing sessions, and even a monthly pub night. Hamish is also the guy to talk to if you want to volunteer to get involved in the ongoing creation and maintenance of a unique neighborhood that seems to exist outside of familiar reality.
The boats are open for the Adur Festival, Adur Arts Festival and the River Festival - check online for dates.
Train station is in the twee town of Shoreham a hop over the glass bridge, 700 coastal bus service runs regularly from Brighton and beyond.
boats unique places to stay outsider architecture houses sculptures art
Rubix Fountain
Blindcolour, RHyzer
http://anotherescape.com/stories/something-new-from-old
https://jamescalbraith.com/2012/09/26/shoreham-by-sea-where-warships-go-to-rest/
http://www.independent.co.uk/arts-entertainment/property-the-water-gypsies-of-shoreham-living-on-a-houseboat-is-certainly-cheap-but-is-it-always-1491332.html
https://www.facebook.com/HouseboatVerda/?fref=ts
19 Riverside Rd
Shoreham-by-Sea, England, BN43 5RB
Brighton City Airport
Armada Beacon
Everest's Grave
This tiny 1930s Art Deco airport is a beautiful remnant of a bygone era.
Portslade, England
This large torch on the Hove coastline helped Sir Francis Drake defend England from the Spanish fleet.
Brighton and Hove, England
An unassuming churchyard is the resting place of a pioneering surveyor and reluctant namesake of a mountain.
Hove, England
The Goldstone
This craggy boulder is fabled to be either a druidic relic or Satan's stumbling block.
Amanlis, France
La Maison Sculptée
An enchanting work of outsider art, full of whimsical sculptures and carvings.
Tijuana, Mexico
Giant nude woman of Tijuana is also the artist's home.
Port Townsend, Washington
Starrett House
The building features one of the last remaining free-floating spiral grand staircases in the U.S.
Équihen-Plage, France
Inverted Boat Houses
These rustic holiday homes are made from discarded fishing boat hulls.