text:
The Profitable Benefits Of Genuine Estate Investing
You can have a piece of it all in Spain: elegance, background, tradition, way of life, sophistication. And you can have it all for a lot much less than you could a few years ago. How so? Property values in Spain have leveled out for the time being. Some areas are even considered "bargain locations." In these locations you can get luxurious and fashion for extremely little price. In a couple of many years, after the housing market turns about, you will be able to sell such properties for a revenue.
In genuine estate company, the danger is not as high as that of venturing into shares. It is easy for share costs to fluctuate but the property market can't be shaken effortlessly therefore you can have peace knowing that your home will maintain its worth for a good period of time. The other benefit or ought to we say bonus of buying singapore condominium property is that there are some tax benefits that come with it which means you will not be paying tax heavily like everybody else. Another thing is that you can use your property as security when looking for a mortgage. The financial institution will simply need to know the worth of the property.
You weren't ready to understand it right in entrance of you when you had been provided a genuine way to make money right now utilizing a fast start manual someone might have offered you in an email, in a categorized advertisement at the back again of a company chance journal, or at a seminar. Likewise, anyone educated in feng shui would have produced a killing in the Singapore HDB property marketplace in 2007. Many traders expected the property market to slow down when the subprime problems ravaged the stock market. Nevertheless, property market continue to appreciate a great run even following the ripples of subprime are felt in the stock marketplace after July 2007. These that are educated in feng shui would have adequately utilize this understanding to make a tidy profit from the home market.
Another key aspect of your online advertisement has to do with images. Simply place, you require to place pictures up or you will get no response. Pictures ought to consist of all the rooms, a view form the entrance, a view from the side, the garage, the kitchen area and any other rooms. Purchasers like to see images, so upload as numerous as the site will allow you. If they website enables it, you should also add brief narratives with every image. What does it show? What is the important factor about the region becoming photographed? Once more, the idea is to provide as much info as possible. Cost is an additional issue that you need to consider into thought. Even if there are lots of cheap provides, you should by no means be deceived by them. This is simply because there are some individuals who will consider advantage of you. Some of them are "bogus sellers". By no means get afraid of choosing the costly home you want. Keep in thoughts that costly houses investing in Singapore real estate they are durable and the cash you make investments with it is all really worth it.
It is important for you to understand depending on 1 real estate marketing tool though can be damaging to your results. That is because you can't forecast with certainty which of the genuine estate advertising resources will get the most attention. You require to have a couple of different methods in location so that at minimum 1 of them will be successful. Keep in thoughts that even people like Invoice Gates were discouraged from heading out on their own and taking a danger. We all know what occurred there. You will never know if you could make it big in real estate unless you take that first stage and invest. Don't allow the naysayers in your lifestyle maintain you from achieving your complete potential.


text:
EAST Clare author Edna O'Brien has been honoured with her appointment as Dame of the British Empire for her services to literature. It comes six weeks after the Tuamgraney native was named as the winner of the PEN/Nabokov award for achievement in international literature. Her nephew, Michael Blake, said this was "a long time coming" and said, having spoken to her on Wednesday and Tuesday of this past week, that Edna is delighted with the honour. He said she is currently busy working on her latest book and has found the last few weeks very busy, but rewarding. "She is very happy to have this title, she got it for her contribution to literature and that is what her life is about, it's not about monetary reward. She got the Pen award and now she's got this so now she feels 'maybe I'm doing something right and maybe all those hours of frustration and desperation were worth it'. A writer …Read More »
International award for Edna O'Brien
East Clare author Edna O'Brien has won the 2018 PEN/Nabokov Award for Achievement in International Literature. It is a major award with a prize of $50,000 and it will be presented at the 2018 PEN American Literary Awards Ceremony in New York on Tuesday next. According to PEN America, the award is "conferred annually to a living author whose body of work, either written in or translated into English, represents the highest level of achievement in fiction, non-fiction, poetry and/or drama, and is of enduring originality and consummate craftsmanship". PEN said Ms O'Brien's "acclaimed work broke down social and sexual barriers for women in Ireland and beyond". Born in Tuamgraney in 1930, the now 87-year-old Ms O'Brien went to school in Scariff and Loughrea. In 1960, her first novel, The Country Girls, was banned in Ireland, as were a number of subsequent novels. She has been a prolific writer in the years since and in 2002, In The Forest was …Read More »
Edna's birthplace ideal as writer's retreat
CLARE TD Michael McNamara has called on the State to acquire Drewsboro House, the birthplace of acclaimed author Edna O'Brien, with a view to turning it into a writer's retreat and museum. In a letter to the newly appointed Minister for Arts, Heritage and the Gaeltacht Heather Humphreys TD, Deputy McNamara highlighted the cultural significance of the house, which is located in Tuamgraney. The property, which consists of 7.025acres, failed to sell at auction earlier this month and the Clare TD believes if the State were to acquire the property it would represent "good value for the State". "The primary importance of Drewsboro is cultural. Readers of The Country Girls and many other Edna O'Brien novels are very familiar with the house. In her memoir Edna describes her childhood home as 'a large two storey house with bay windows, and could be approached by two avenues an old and a new'," he stated in his letter to Minister Humphreys. He …Read More »
Edna O'Brien's Birthplace remains unsold
THE birthplace of renowned author Edna O'Brien has failed to sell at auction after the guiding price of €300,000 to €350,000 was not reached. The property went to public auction on Tuesday in the Old Ground Hotel in Ennis. The highest bid placed on the property was €200,000 and came after approximately six bids from two separate bidders. On this basis Noel Corcoran Auctioneers, of Tipperary town withdrew the house from auction. They remain open to offers on the property and it has not been withdrawn from the market. By Carol ByrneRead More »

subset: commoncrawl


text:
Thursday, June 14, 2007
SNP abolish graduate endowment fee
I was also pleased to hear Justice Minister Kenny McAskill saying that too many non-violent criminals are locked up and that instead we should put resources into dealing with the really dangerous criminals such as sex offenders. Of course with by far the highest prison population per capita in Europe what alternative do they have? Another positive thing has to be the cancelling of the decision to close A&E at Ayr and Monklands hospital as well as the government expressing its opposition to nuclear power.
So I'm a bit happier than I was the last time I wrote about the SNP and it's nice for a government to do something I agree with for once. But still I'm sure, like all the main parties, they've got their own opportunistic reasons for doing what they have. The question is whether or not the Scottish Executive can move on from taking a few populist measures and show they're really serious about changing Scotland for the better. It's not good enough to drop key policies like an independence referendum or, for that matter, the pledge to wipe out existing student debts.
Monday, June 04, 2007
Calls for campaign to target men who buy sex
I was reading in the Sunday Herald that anti-prostitution campaigner Jan Macleod has called on the Scottish Executive to establish a publicity campaign aimed at the men who buy sex now that doing so will, for the first time in Scotland, be a crime. Such an approach could, in my view, help change public attitudes and make clear, in a society where women's bodies are increasingly being seen as any other commodity, that the actions of these men are unacceptable as well as showing who's to blame for the existence of prostitution in the first place. But, as pointed out by the Scottish Coalition Against Sexual Exploitation, misogynistic attitudes among men towards sex begin at an early stage and far more attention needs to be paid, in school sex education classes, to the promotion of egalitarian relationships. Sexuality has to be portrayed not as something which is all about one person's enjoyment but instead as an expression of people's mutual love and respect for each other.
Going back to the recent change the Scottish Executive made in regards to prostitution laws it was certainly welcome but still the priorities are all wrong in that both prostituted women and the so-called "clients" who use money to buy control over their bodies will be held equally responsible for the existence of this vile industry. Sweden offers an alternative approach, one which the Norwegian government is also likely to implement and which the SSP had in its manifesto for the May election. That is to bring in and enforce real penalties against the "clients" while decriminalising prostitutes and giving them help to leave the industry which enslaves them. In Sweden trafficking has been almost completely eradicated and prostitution drastically reduced since the law was introduced in 1999 - so while an end to patriarchy and capitalism will likely be the only way we can fully eradicate the sex industry there is a lot which could be done by the government if the will was there.
Sunday, June 03, 2007
Same old anti-abortion crap
Today I was again reminded of the extent of the hostility shown towards abortion rights by many in our society – both at a personal level and from letters in the newspapers. The letters were in response to yet more of the same old sexist pronouncements made by Cardinal Keith O'Brien several days ago. Mr O'Brien himself has compared abortion in Scotland to "two Dunblane massacres a day" – as if a woman deciding to exercise her control over a certain part of her body is somehow equivalent to a psychopathic serial killer gunning down children. This is a truly sickening statement and one which serves to severely devalue the pain and horror of Scotland's worst ever act of mass murder.
Recent news which the church didn't hesitate to comment on is that the number of abortions in Scotland over the last year has risen from 12,603 to 13,081. So what? Why do media outlets like the BBC even bother to mention the fact that another 500 women decided to have an abortion? Of course we remain a deeply misogynistic, deeply patriarchal, society and so you could say it's hardly surprising that such attitudes remain. Yet I still have difficulty comprehending just how twisted the logic of some of the people who oppose abortion really is. Do those who constantly rant about women being personally responsible really believe that men have no role in regards to the pregnancy?
The question is not, as some people suggest, whether or not we should allow the bigoted Mr O'Brien to express his views. It is whether or not he's talking shite and if we believe so then let's make our opinions loud and clear. Let's denounce the insane hypocrisy of an organisation which calls abortion "anti-child, anti-women and anti-person" yet did nothing to prevent the systematic sexual abuse of children at the hands of its own priests.
Saturday, June 02, 2007
Brown congratulates Salmond
Let's take a look at the programme Salmond and the SNP have announced:
Scrap trams and put more money into improving roads
Cut business rates
End supermarket offers on alcohol
Abandon bridge tolls
Stop building nuclear power stations
Some good, some bad, but what of their own policies have they decided to keep silent on? Well an independence referendum seems to be the most glaring as is scrapping the council tax, two of their most radical policies and the ones which would do the most to benefit ordinary people in Scotland. Most in the SNP may support them but Salmond isn't going to try to push anything through if he doesn't think he'll get it passed in parliament which is likely to mean a lot of disappointed SNP voters at the time of the next election.
And there's all the other things they could do (but won't) if they were serious about building a better society. Things like free school meals, free public transport and taxing those who deserve to be taxed. As always we're not going to get what we want from this government and while the end of the SSP's presence in parliament was a disappointment the fight against inequality and injustice continues, on the streets, in the communities and in the workplace.


text:
Building a NLTK FreqDist on Redis
Say you want to build a frequency distribution of many thousands of samples with the following characteristics:
- fast to build
- persistent data
- network accessible (with no locking requirements)
- can store large sliceable index lists
The only solution I know that meets those requirements is Redis. NLTK's FreqDist is not persistent , shelve is far too slow, BerkeleyDB is not network accessible (and is generally a PITA to manage), and AFAIK there's no other key-value store that makes sliceable lists really easy to create & access. So far I've been quite pleased with Redis, especially given how new it is. It's quite fast, is network accessible, atomic operations make locking unnecessary, supports sortable and sliceable list structures, and is very easy to configure.
Building a FreqDist allows you to create a ProbDist, which in turn can be used for classification. Having it be persistent lets you examine the data later. And the ability to create sliceable lists allows you to make sorted indexes for paging thru your samples.
Here's some more concrete use cases for persistent frequency distributions:
I put the code I've been using to build frequency distributions over large sets of words up at BitBucket. probablity.py contains
RedisFreqDist, which works just like the NTLK FreqDist, except it stores samples and frequencies as keys and values in Redis. That means samples must be strings. Internally,
RedisFreqDist also stores a set of all the samples under the key __samples__ for efficient lookup and sorting. Here's some example code for using it. For more info, checkout the wiki, or read the code.
def make_freq_dist(samples, host='localhost', port=6379, db=0): freqs = RedisFreqDist(host=host, port=port, db=db) for sample in samples: freqs.inc(sample)
Unfortunately, I had to muck about with some of FreqDist's internal implementation to remain compatible, so I can't promise the code will work beyond NLTK version 0.9.9. probablity.py also includes
ConditionalRedisFreqDist for creating ConditionalProbDists.
For creating lists of samples, that very much depends on your use case, but here's some example code for doing so.
r is a redis object,
key is the index key for storing the list, and
samples is assumed to be a sorted list. The
get_samples function demonstrates how to get a slice of samples from the list.
def index_samples(r, key, samples): r.delete(key) for word in words: r.push(key, word, tail=True) def get_samples(r, key, start, end): return r.lrange(key, start, end)
Yes, Redis is still fairly alpha, so I wouldn't use it for critical systems. But I've had very few issues so far, especially compared to dealing with BerkeleyDB. I highly recommend it for your non-critical computational needs 🙂
Deploying Django with Mercurial, Fab and Nginx
Writing web apps with Django can be a lot of fun, but deploying them can be a chore, even if you're using Apache. Here's a setup I've been using that makes deployment fast and easy. This all assumes you've got
sudo access on a remote server running Ubuntu or something similar.
This setup assumes you've got 2 mercurial repositories: 1 on your local machine, and 1 on the remote server you're deploying to. In the remote repository, add the following to .hg/hgrc
changegroup = hg up
This makes mercurial run
hg up whenever you push new code. Then in your local repo's .hg/hgrc, make sure the default path is to your remote repo. Here's an example
[paths] default = ssh://email@example.com/repo
Now when you run
hg push, you don't need to include the path to the repo, and your code will be updated immediately.
Since I'm using nginx instead of Apache, we'll be deploying Django with FastCGI. Here's an example script you can use to start and restart your Django FastCGI server. Add this script to your mercurial repo as
# kill current fcgi process if it exists
if [ -f $PIDFILE ]; then
kill `cat -- $PIDFILE`
rm -f -- $PIDFILE
python manage.py runfcgi socket=$SOCKET pidfile=$PIDFILE method=prefork
Important note: the FastCGI socket file will need to be readable & writable by nginx worker processes, which run as the www-data user in Ubuntu. This will be handled by the
fab restart command below, or you could add
chmod a+w $SOCKET to the end of the above script.
Nginx is a great high performance web server with simple configuration. Here's a simple example server config for proxying to your Django FastCGI process. Add this config to your mercurial repo as
server {
listen 80;
# change to your FQDN
server_name YOUR.DOMAIN.COM;
location / {
# must be the same socket file as in the above fcgi script
fastcgi_pass unix:/tmp/django.sock;
On the remote server, make sure the following lines are in the
http section of
include /etc/nginx/sites-enabled/*;
# fastcgi_params should contain a lot of fastcgi_param variables
include /etc/nginx/fastcgi_params;
You must also make sure there is a link in
/etc/nginx/sites-enabled to your
django.nginx config. Don't worry if
django.nginx doesn't exist yet, it will once you run
fab nginx the first time.
email@example.com$ cd /etc/nginx/sites-enabled
email@example.com$ sudo ln -s ../sites-available/django.nginx django.nginx
Fab, or properly Fabric, is my favorite new tool. It's designed specifically for making remote deployment simple and easy. You create a
fabfile where each function is a fab command that can run remote and sudo commands on one or more remote hosts. So let's deploy Django using fab. Here's an example
fabfile with 2 commands:
restart and
nginx. These commands should only be run after you've done a
hg push.
config.fab_hosts = ['YOUR.DOMAIN.COM'] config.projdir = '/PATH/TO/YOUR/REMOTE/HG/REPO' def restart(): sudo('cd %(projdir)s; run_fcgi.sh', user='www-data', fail='abort') def nginx(): sudo('cp %(projdir)s/django.nginx /etc/nginx/sites-available/', fail='abort') sudo('killall -HUP nginx', fail='abort')
You only need to run
fab restart if you've changed the actual python code. Changes to templates or static files don't require a restart and will be used automatically (because of the
hg up changegroup hook). Executing
run_fcgi.sh as the www-data user ensures that nginx can read & write the socket.
If you've changed your nginx server config, you can run
fab nginx to install and reload the new server config without restarting the nginx server.
Wrap Up
Now that everything is setup, the next time you want to deploy some new code, it's as simple as
hg push && fab restart. And if you've only changed templates, all you need to do is
hg push. I hope this helps make your Django development life easier. It has certainly done so for me 🙂
Django Datetime Snippets
I've started posting over at Django snippets, which is a great resource for finding useful bits of functionality. My first set of snippets is focused on datetime conversions.
The Snippets
FuzzyDateTimeField is a drop in replacement for the standard DateTimeField that uses dateutil.parser with
fuzzy=True to clean the value, allowing the parser to be more liberal with the input formats it accepts.
The isoutc template filter produces an ISO format UTC datetime string from a timezone aware datetime object.
The timeto template filter is a more compact version of django's timeuntil filter that only shows hours & minutes, such as "1hr 30min".
JSON encode ISO UTC datetime is a way to encode datetime objects as ISO strings just like the isoutc template filter.
JSON decode datetime is a simplejson object hook for converting the
datetime attribute of a JSON object to a python datetime object. This is especially useful if you have a list of objects that all have
datetime attributes that need to be decoded.
Use Case
Imagine you're making a time based search engine for movies and/or events. Because your data will span many timezones, you decide that all dates & times should be stored on the server as UTC. This pushes local timezone conversion to the client side, where it belongs, simplifying the server side data structures and search operations. You want your search engine to be AJAX enabled, but you don't like XML because it's so verbose, so you go with JSON for serialization. You also want users to be able to input their own range based queries without being forced to use specific datetime formats. Leaving out all the hard stuff, the above snippets can be used for communication between a django webapp and a time based search engine.
Dates and Times in Python and Javascript
If you are dealing with dates & times in python and/or javascript, there are two must have libraries.
Datejs, being javascript, is designed for parsing and creating human readable dates & times. It's powerful parse() function can handle all the dates & times you'd expect, plus fuzzier human readable date words. Here are some examples from their site.
Date.parse("February 20th 1973"); Date.parse("Thu, 1 July 2004 22:30:00"); Date.parse("today"); Date.parse("next thursday");
And if you are programmatically creating Date objects, here's a few functions I find myself using frequently.
// get a new Date object set to local date var dt = Date.today(); // get that same Date object set to current time var dt = Date.today().setTimeToNow(); // set the local time to 10:30 AM var dt = Date.today().set({hour: 10, minute: 30}); // produce an ISO formatted datetime string converted to UTC dt.toISOString();
There's plenty more in the documentation; pretty much everything you need for manipulation, comparison, and string conversion. Datejs cleanly extends the default Date object, has been integrated into a couple date pickers, and supports culture specific parsing for i18n.
Like Datejs, dateutil also has a powerful parse() function. While it can't handle words like "today" or "tomorrow", it can handle nearly every (American) date format that exists. Here's a few examples.
>>> from dateutil import parser >>> parser.parse("Thu, 4/2/09 09:00 PM") datetime.datetime(2009, 4, 2, 21, 0) >>> parser.parse("04/02/09 9:00PM") datetime.datetime(2009, 4, 2, 21, 0) >>> parser.parse("04-02-08 9pm") datetime.datetime(2009, 4, 2, 21, 0)
An option that comes especially in handy is to pass in fuzzy=True. This tells parse() to ignore unknown tokens while parsing. This next example would raise a ValueError without fuzzy=True.
>>> parser.parse("Thurs, 4/2/09 09:00 PM", fuzzy=True)
It don't know how well it works for international date formats, but parse() does have options for reading days first and years first, so I'm guessing it can be made to work.
dateutil also provides some great timezone support. I've always been surprised at python's lack of concrete tzinfo classes, but dateutil.tz more than makes up for it (there's also pytz, but I haven't figured out why I need it instead of or in addition to dateutil.tz). Here's a function for parsing a string and returning a UTC datetime object.
from dateutil import parser, tz def parse_to_utc(s): dt = parser.parse(s, fuzzy=True) dt = dt.replace(tzinfo=tz.tzlocal()) return dt.astimezone(tz.tzutc())
dateutil does a lot more than provide tzinfo objects and parse datetimes; it can also calculate relative deltas and handle iCal recurrence rules. I'm sure a whole calendar application could be built based on dateutil, but my interest is in parsing and converting datetimes to and from UTC, and in that respect dateutil excels.
Chunk Extraction with NLTK
Chunk extraction is a useful preliminary step to information extraction, that creates parse trees from unstructured text. Once you have a parse tree of a sentence, you can do more specific information extraction, such as named entity recognition and relation extraction.
Chunking is basically a 3 step process:
- Tag a sentence
- Chunk the tagged sentence
- Analyze the parse tree to extract information
I've already written about how to train a part of speech tagger and a chunker, so I'll assume you've already done the training, and now you want to use your tagger and chunker to do something useful.
Tag Chunker
The previously trained chunker is actually a chunk tagger. It's a Tagger that assigns IOB chunk tags to part-of-speech tags. In order to use it for proper chunking, we need some extra code to convert the IOB chunk tags into a parse tree. I've created a wrapper class that complies with the nltk ChunkParserI interface and uses the trained chunk tagger to get IOB tags and convert them to a proper parse tree.
import nltk.chunk import itertools class TagChunker(nltk.chunk.ChunkParserI): def __init__(self, chunk_tagger): self._chunk_tagger = chunk_tagger def parse(self, tokens): # split words and part of speech tags (words, tags) = zip(*tokens) # get IOB chunk tags chunks = self._chunk_tagger.tag(tags) # join words with chunk tags wtc = itertools.izip(words, chunks) # w = word, t = part-of-speech tag, c = chunk tag lines = [' '.join([w, t, c] for (w, (t, c)) in wtc if c] # create tree from conll formatted chunk lines return nltk.chunk.conllstr2tree('\n'.join(lines))
Chunk Extraction
Now that we have a proper chunker, we can use it to extract chunks. Here's a simple example that tags a sentence, chunks the tagged sentence, then prints out each noun phrase.
# sentence should be a list of words tagged = tagger.tag(sentence) tree = chunker.parse(tagged) # for each noun phrase sub tree in the parse tree for subtree in tree.subtrees(filter=lambda t: t.node == 'NP'): # print the noun phrase as a list of part-of-speech tagged words print subtree.leaves()
Each sub tree has a phrase tag, and the leaves of a sub tree are the tagged words that make up that chunk. Since we're training the chunker on IOB tags, NP stands for Noun Phrase. As noted before, the results of this natural language processing are heavily dependent on the training data. If your input text isn't similar to the your training data, then you probably won't be getting many chunks.
Test Driven Development in Python
One of my favorite aspects of Python is that it makes practicing TDD very easy. What makes it so frictionless is the doctest module. It allows you to write a test at the same time you define a function. No setup, no boilerplate, just write a function call and the expected output in the docstring. Here's a quick example of a fibonacci function.
def fib(n): '''Return the nth fibonacci number. >>> fib(0) 0 >>> fib(1) 1 >>> fib(2) 1 >>> fib(3) 2 >>> fib(4) 3 ''' if n == 0: return 0 elif n == 1: return 1 else: return fib(n - 1) + fib(n - 2)
If you want to run your doctests, just add the following three lines to the bottom of your module.
if __name__ == '__main__': import doctest doctest.testmod()
Now you can run your module to run the doctests, like python fib.py.
So how well does this fit in with the TDD philosophy? Here's the basic TDD practices.
- Think about what you want to test
- Write a small test
- Write just enough code to fail the test
- Run the test and watch it fail
- Write just enough code to pass the test
- Run the test and watch it pass (if it fails, go back to step 4)
- Go back to step 1 and repeat until done
And now a step-by-step breakdown of how to do this with doctests, in excruciating detail.
1. Define a new empty method
def fib(n): '''Return the nth fibonacci number.''' pass if __name__ == '__main__': import doctest doctest.testmod()
2. Write a doctest
def fib(n): '''Return the nth fibonacci number. >>> fib(0) 0 ''' pass
3. Run the module and watch the doctest fail
python fib.py ********************************************************************** File "fib1.py", line 3, in __main__.fib Failed example: fib(0) Expected: 0 Got nothing ********************************************************************** 1 items had failures: 1 of 1 in __main__.fib ***Test Failed*** 1 failures.
4. Write just enough code to pass the failing doctest
def fib(n): '''Return the nth fibonacci number. >>> fib(0) 0 ''' return 0
5. Run the module and watch the doctest pass
python fib.py
6. Go back to step 2 and repeat
Now you can start filling in the rest of function, one test at time. In practice, you may not write code exactly like this, but the point is that doctests provide a really easy way to test your code as you write it.
Unit Tests
Ok, so doctests are great for simple tests. But what if your tests need to be a bit more complex? Maybe you need some external data, or mock objects. In that case, you'll be better off with more traditional unit tests. But first, take a little time to see if you can decompose your code into a set of smaller functions that can be tested individually. I find that code that is easier to test is also easier to understand.
Running Tests
For running my tests, I use nose. I have a tests/ directory with a simple configuration file, nose.cfg
[nosetests] verbosity=3 with-doctest=1
Then in my Makefile, I add a test command so I can run make test.
test: @nosetests --config=tests/nose.cfg tests PACKAGE1 PACKAGE2
PACKAGE1 and PACKAGE2 are optional paths to your code. They could point to unit test packages and/or production code containing doctests.
And finally, if you're looking for a continuous integration server, try Buildbot.
How to Train a NLTK Chunker
In NLTK, chunking is the process of extracting short, well-formed phrases, or chunks, from a sentence. This is also known as partial parsing, since a chunker is not required to capture all the words in a sentence, and does not produce a deep parse tree. But this is a good thing because it's very hard to create a complete parse grammar for natural language, and full parsing is usually all or nothing. So chunking allows you to get at the bits you want and ignore the rest.
The general approach to chunking and parsing is to define rules or expressions that are then matched against the input sentence. But this is a very manual, tedious, and error-prone process, likely to get very complicated real fast. The alternative approach is to train a chunker the same way you train a part-of-speech tagger. Except in this case, instead of training on (word, tag) sequences, we train on (tag, iob) sequences, where iob is a chunk tag defined in the the conll2000 corpus. Here's a function that will take a list of chunked sentences (from a chunked corpus like conll2000 or treebank), and return a list of (tag, iob) sequences.
import nltk.chunk def conll_tag_chunks(chunk_sents): tag_sents = [nltk.chunk.tree2conlltags(tree) for tree in chunk_sents] return [[(t, c) for (w, t, c) in chunk_tags] for chunk_tags in tag_sents]
So how accurate is the trained chunker? Here's the rest of the code, followed by a chart of the accuracy results. Note that I'm only using Ngram Taggers. You could additionally use the BrillTagger, but the training takes a ridiculously long time for very minimal gains in accuracy.
import nltk.corpus, nltk.tag def ubt_conll_chunk_accuracy(train_sents, test_sents): train_chunks = conll_tag_chunks(train_sents) test_chunks = conll_tag_chunks(test_sents) u_chunker = nltk.tag.UnigramTagger(train_chunks) print 'u:', nltk.tag.accuracy(u_chunker, test_chunks) ub_chunker = nltk.tag.BigramTagger(train_chunks, backoff=u_chunker) print 'ub:', nltk.tag.accuracy(ub_chunker, test_chunks) ubt_chunker = nltk.tag.TrigramTagger(train_chunks, backoff=ub_chunker) print 'ubt:', nltk.tag.accuracy(ubt_chunker, test_chunks) ut_chunker = nltk.tag.TrigramTagger(train_chunks, backoff=u_chunker) print 'ut:', nltk.tag.accuracy(ut_chunker, test_chunks) utb_chunker = nltk.tag.BigramTagger(train_chunks, backoff=ut_chunker) print 'utb:', nltk.tag.accuracy(utb_chunker, test_chunks) # conll chunking accuracy test conll_train = nltk.corpus.conll2000.chunked_sents('train.txt') conll_test = nltk.corpus.conll2000.chunked_sents('test.txt') ubt_conll_chunk_accuracy(conll_train, conll_test) # treebank chunking accuracy test treebank_sents = nltk.corpus.treebank_chunk.chunked_sents() ubt_conll_chunk_accuracy(treebank_sents[:2000], treebank_sents[2000:])
The ub_chunker and utb_chunker are slight favorites with equal accuracy, so in practice I suggest using the ub_chunker since it takes slightly less time to train.
Training a chunker this way is much easier than creating manual chunk expressions or rules, it can approach 100% accuracy, and the process is re-usable across data sets. As with part-of-speech tagging, the training set really matters, and should be as similar as possible to the actual text that you want to tag and chunk.
Part of Speech Tagging with NLTK – Part 3
In part 2, I showed how to produce a part-of-speech tagger using Ngram tagging in combination with Affix and Regex tagging, with accuracy approaching 90%. In part 3, I'll use the BrillTagger to get the accuracy up to and over 90%.
Brill Tagging
The BrillTagger is different than the previous taggers. For one, it's not a SequentialBackoffTagger, though it does use an initial tagger, which in our case will be the raubt_tagger from part 2. The BrillTagger uses the initial tagger to produce initial tags, then corrects those tags based on transformational rules. These rules are learned by training with the FastBrillTaggerTrainer and rules templates. Here's an example, with templates copied from the demo() function in nltk.tag.brill.py. Refer to part 1 for the backoff_tagger function and the train_sents, and part 2 for the word_patterns.
import nltk.tag from nltk.tag import brill raubt_tagger = backoff_tagger(train_sents, [nltk.tag.AffixTagger, nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger], backoff=nltk.tag.RegexpTagger(word_patterns)) templates = [ brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,1)), brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (2,2)), brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,2)), brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,3)), brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,1)), brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (2,2)), brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,2)), brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,3)), brill.ProximateTokensTemplate(brill.ProximateTagsRule, (-1, -1), (1,1)), brill.ProximateTokensTemplate(brill.ProximateWordsRule, (-1, -1), (1,1)) ] trainer = brill.FastBrillTaggerTrainer(raubt_tagger, templates) braubt_tagger = trainer.train(train_sents, max_rules=100, min_score=3)
Brill Tagging Accuracy
So now we have a braubt_tagger. You can tweak the max_rules and min_score params, but be careful, as increasing the values will exponentially increase the training time without significantly increasing accuracy. In fact, I found that increasing the min_score tended to decrease the accuracy by a percent or 2. So here's how the braubt_tagger fares against the other taggers.
There's certainly more you can do for part-of-speech tagging with nltk, but the braubt_tagger should be good enough for many purposes. The most important component of part-of-speech tagging is using the correct training data. If you want your tagger to be accurate, you need to train it on a corpus similar to the text you'll be tagging. The brown, conll2000, and treebank corpora are what they are, and you shouldn't assume that a tagger trained on them will be accurate on a different corpus. For example, a tagger trained on one part of the brown corpus may be 90% accurate on other parts of the brown corpus, but only 50% accurate on the conll2000 corpus. But a tagger trained on the conll2000 corpus will be accurate for the treebank corpus, and vice versa, because conll2000 and treebank are quite similar. So make sure you choose your training data carefully.
Part of Speech Tagging with NLTK – Part 2
Following up on Part of Speech Tagging with NLTK – Part 1, I test the accuracy of adding an AffixTagger and a RegexpTagger to my SequentialBackoffTagger chain.
Affix Tagging
The AffixTagger learns prefix and suffix patterns to determine the part of speech tag for word. I tried inserting the AffixTagger into every possible position of the ubt_tagger to see which method increased accuracy the most. As you'll see in the results, the aubt_tagger had the highest accuracy.
ubta_tagger = backoff_tagger(train_sents, [nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger, nltk.tag.AffixTagger]) ubat_tagger = backoff_tagger(train_sents, [nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.AffixTagger, nltk.tag.TrigramTagger]) uabt_tagger = backoff_tagger(train_sents, [nltk.tag.UnigramTagger, nltk.tag.AffixTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger]) aubt_tagger = backoff_tagger(train_sents, [nltk.tag.AffixTagger, nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger])
Regexp Tagging
The RegexpTagger allows you to define your own word patterns for determining the part of speech tag. Some of the patterns defined below were taken from chapter 3 of the NLTK book, others I added myself. Since I had already determined that the aubt_tagger was the most accurate, I only tested the RegexpTagger at the beginning and end of the chain.
word_patterns = [ (r'^-?[0-9]+(.[0-9]+)?$', 'CD'), (r'.*ould$', 'MD'), (r'.*ing$', 'VBG'), (r'.*ed$', 'VBD'), (r'.*ness$', 'NN'), (r'.*ment$', 'NN'), (r'.*ful$', 'JJ'), (r'.*ious$', 'JJ'), (r'.*ble$', 'JJ'), (r'.*ic$', 'JJ'), (r'.*ive$', 'JJ'), (r'.*ic$', 'JJ'), (r'.*est$', 'JJ'), (r'^a$', 'PREP'), ] aubtr_tagger = nltk.tag.RegexpTagger(word_patterns, backoff=aubt_tagger) raubt_tagger = backoff_tagger(train_sents, [nltk.tag.AffixTagger, nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger], backoff=nltk.tag.RegexpTagger(word_patterns))
Affix and Regexp Tagging Accuracy
As you can see, the aubt_tagger provided the most gain over the ubt_tagger, and the raubt_tagger had a slight gain on top of that. In Part 3 I'll discuss the results of using the BrillTagger to push the accuracy even higher.
Part of Speech Tagging with NLTK – Part 1
An important part of weotta's tag extraction is part of speech tagging, a process of identifying nouns, verbs, adjectives, and other parts of speech in context. NLTK provides the necessary tools for tagging, but doesn't actually tell you what methods work best, so I decided to find out for myself.
Training and Test Sentences
NLTK has a data package that includes 3 tagged corpora: brown, conll2000, and treebank. I divided each of these corpora into 2 sets, the training set and the testing set. The choice and size of your training set can have a significant effect on the tagging accuracy, so for real world usage, you need to train on a corpus that is very representative of the actual text you want to tag. In particular, the brown corpus has a number of different categories, so choose your categories wisely. I chose these categories primarily because they have a higher occurance of the word food than other categories.
import nltk.corpus, nltk.tag, itertools from nltk.tag import brill # PRESS: REVIEWS brownc_sents = nltk.corpus.brown.tagged_sents(categories="c") # POPULAR LORE brownf_sents = nltk.corpus.brown.tagged_sents(categories="f") # FICTION: ROMANCE brownp_sents = nltk.corpus.brown.tagged_sents(categories="p") brown_train = list(itertools.chain(brownc_sents[:1000], brownf_sents[:1000], brownp_sents[:1000])) brown_test = list(itertools.chain(brownc_sents[1000:2000], brownf_sents[1000:2000], brownp_sents[1000:2000])) conll_sents = nltk.corpus.conll2000.tagged_sents() conll_train = list(conll_sents[:4000]) conll_test = list(conll_sents[4000:8000]) treebank_sents = nltk.corpus.treebank.tagged_sents() treebank_train = list(treebank_sents[:1500]) treebank_test = list(treebank_sents[1500:3000])
Ngram Tagging
I started by testing different combinations of the 3 NgramTaggers: UnigramTagger, BigramTagger, and TrigramTagger. These taggers inherit from SequentialBackoffTagger, which allows them to be chained together for greater accuracy. To save myself a little pain when constructing and training these taggers, I created a utility method for creating a chain of SequentialBackoffTaggers.
def backoff_tagger(tagged_sents, tagger_classes, backoff=None): if not backoff: backoff = tagger_classes[0](tagged_sents) del tagger_classes[0] for cls in tagger_classes: tagger = cls(tagged_sents, backoff=backoff) backoff = tagger return backoff ubt_tagger = backoff_tagger(train_sents, [nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger]) utb_tagger = backoff_tagger(train_sents, [nltk.tag.UnigramTagger, nltk.tag.TrigramTagger, nltk.tag.BigramTagger]) but_tagger = backoff_tagger(train_sents, [nltk.tag.BigramTagger, nltk.tag.UnigramTagger, nltk.tag.TrigramTagger]) btu_tagger = backoff_tagger(train_sents, [nltk.tag.BigramTagger, nltk.tag.TrigramTagger, nltk.tag.UnigramTagger]) tub_tagger = backoff_tagger(train_sents, [nltk.tag.TrigramTagger, nltk.tag.UnigramTagger, nltk.tag.BigramTagger]) tbu_tagger = backoff_tagger(train_sents, [nltk.tag.TrigramTagger, nltk.tag.BigramTagger, nltk.tag.UnigramTagger])
Accuracy Testing
To test the accuracy of a tagger, we can compare it to the test sentences using the nltk.tag.accuracy function.
nltk.tag.accuracy(tagger, test_sents)
Ngram Tagging Accuracy
The ubt_tagger and utb_taggers are extremely close to each other, but the ubt_tagger is the slight favorite (note that the backoff sequence is in reverse order, so for the ubt_tagger, the TrigramTagger backsoff to the BigramTagger, which backsoff to the UnigramTagger.)
Update: in Part of Speech Tagging with NLTK – Part 2, I do further testing using the AffixTagger and the RegexpTagger to get the accuracy up past 80%.


text:
Testing Local Resources, chapter 7 of 'Nagios: System and Network Monitoring'
Keep track of your network activity with open source monitoring app, Nagios. Chapter 7, "Testing Local Resources" explains how to test plug-ins over a local network since some lack their own network protocols.
Open source Nagios is an enterprise-class tool, which runs on Linux and Unix, used for monitoring networks. By running periodic checks on user-specified resources and services, Nagios ensures faster fixes for network issues.
Chapter 7 -- "Testing Local Resources" -- of Nagios: System and Network Monitoring details the various plug-ins needed to work with Nagios and how to test them over a local network since some lack their own network protocol.
Read the rest of the excerpt in this PDF.
Excerpted from Nagios: System and Network Monitoring, First edition by Wolfgang Barth (ISBN: 1-59327-070-4). Copyright © April 2006 No Starch Press, Inc. All rights reserved.


text:
SANJAY'S SUPER TEAM
Genre: Animation/Short
Rating: TBD
U.S. Release Date: November 25, 2015
Director: Sanjay Patel
Producer: Nicole Paradis Grindle
In "Sanjay's Super Team,†the new short film from Pixar Animation Studios, accomplished artist Sanjay Patel uses his own experience to tell the story of a young, first-generation Indian-American boy whose love for western pop culture comes into conflict with his father's traditions. Sanjay is absorbed in the world of cartoons and comics, while his father tries to draw him into the traditions of his Hindu practice. Tedium and reluctance quickly turn into an awe-inspiring adventure as the boy embarks on a journey he never imagined, returning with a new perspective that they can both embrace.


text:
Updated: 2017-12-01 00:02
I now propose to say something on the mule's limbs and feet. It will be observed that the mule has a jack's leg from the knee down, and in this part of the leg he is weak; and with these he frequently has to carry a horse's body. It stands to reason, then, that if you feed him until he gets two or three hundred pounds of extra flesh on him, as many persons do, he will break down for want of leg-strength. Indeed, the mule is weakest where the horse is strongest. His feet, too, are a singular formation, differing very materially from those of the horse. The mule's feet grow very slow, and the grain or pores of the hoof are much closer and harder than those of the horse. It is not so liable, however, to break or crumble. And yet they are not so well adapted for work on macadamized or stony roads, and the more flesh you put on his body, after a reasonable weight, the more you add to the means of his destruction.
Observe, for instance, a farmer's mule, or a poor man's mule working in the city. These persons, with rare exceptions, feed their mules very little grain, and they are generally in low flesh. And yet they last a very long time, notwithstanding the rough treatment they get. When you feed a mule, you must adjust the proportions of his body to the strength of his limbs and the kind of service he is required to perform. Experience has taught me, that the less you feed a mule below what he will eat clean, just that amount of value and life is kept out of him.
In relation to feeding animals. Some persons boast of having horses and mules that eat but little, and are therefore easily kept. Now, when I want to get a horse or a mule, these small eaters are the last ones I would think of purchasing. In nine cases out of ten, you will find such animals out of condition. When I find animals in the Government's possession, that cannot eat the amount necessary to sustain them and give them proper strength, I invariably throw them out, to be nursed until they will eat their rations. Animals, to be kept in good condition, and fit for proper service, should eat their ten and twelve quarts of grain per head per day, with hay in proportion--say, twelve pounds.
I wish here again to correct a popular error, that the mule does not eat, and requires much less food than the horse. My experience has been, that a mule, twelve hands high, and weighing eight hundred pounds, will eat and, indeed, requires just as much as a horse of similar dimensions. Give them similar work, keep then in a stable, or camp them out during the winter months, and the mule will eat more than the horse will or can. A mule, however, will eat almost any thing rather than starve. Straw, pine boards, the bark of trees, grain sacks, pieces of old leather, do not come amiss with him when he is hungry. There were many instances, during the late war, where a team of mules were found, of a morning, standing over the remains of what had, the evening before, been a Government wagon. When two or more have been kept tied to a wagon, they have been known to eat each other's tail off to the bone, And yet the animal, thus deprived of his caudal appendage, did not evince much pain.
In the South, many of the plantations are worked with mules, driven by negroes. The mule seems to understand and appreciate the negro; and the negro has a sort of fellow-feeling for the mule. Both are sluggish and stubborn, and yet they get along well together. The mule, too, is well suited to plantation labor, and will outlast a horse at it. The soil is also light and sandy, and better suited to the mule's feet. A negro has not much sympathy for a work-horse, and in a short time will ruin him with abuse, whereas he will share his corn with the mule. Nor does the working of the soil on southern plantations overtax the power of the mule.
The Value of Harnessing properly.--In working any animal, and more especially the mule, it is both humane and economical to have him harnessed properly, Unless he be, the animal cannot perform the labor he is capable of with ease and comfort, And you cannot watch too closely to see that every thing works in its right place. Begin with the bridle, and see that it does not chafe or cut him, The army blind-bridle, with the bit alteration attached, is the very best bridle that can be used on either horse or mule. Be careful, however, that the crown-piece is not attached too tight. Be careful, also, that it does not draw the sides of the animal's mouth up into wrinkles, for the bit, working against these, is sure to make the animal's mouth sore. The mule's mouth is a very difficult part to heal, and once it gets sore he becomes unfit for work. Your bridle should be fitted well to the mule's head before you attempt to work him in it. Leave your bearing-line slack, so as to allow the mule the privilege of learning to walk easy with harness on. It is too frequently the case, that the eyes of mules that are worked in the Government's service are injured by the blinds being allowed to work too close to the eyes. This is caused by the blind-stay being too tight, or perhaps not split far enough up between the eyes and ears. This stay should always be split high enough up to allow the blinds to stand at least one inch and a half from the eye.
Another, and even more essential part of the harness is the collar. More mules are maimed and even ruined altogether by improperly fitting collars, than is generally believed by quartermasters. It requires more judgment to fit a collar properly on a mule than it does to fit any other part of the harness. Get your collar long enough to buckle the strap close up to the last hole. Then examine the bottom, and see that there be room enough between the mule's neck or wind-pipe to lay your open hand in easily. This will leave a space between the collar and the mule's neck of nearly two inches. Aside from the creased neck, mules' necks are nearly all alike in shape, They indeed vary as little in neck as they do in feet; and what I say on the collar will apply to them all, The teamster has always the means in his own hands of remedying a bad fitting collar. If the animal does not work easy in it, if it pinch him somewhere, let it remain in water over night, put it on the animal wet the next morning, and in a few minutes it will take the exact formation of the animal's neck. See that it is properly fitted above and below to the hames, then the impression which the collar takes in a natural form will be superior to the best mechanical skill of the best harness-maker.
There is another thing about collars, which, in my opinion, is very important. When you are pursuing a journey with teams of mules, where hay and grain are scarce, the animals will naturally become poor, and their necks get thin and small. If once the collar becomes too large, and you have no way of exchanging it for a smaller one, of course you must do the next best thing you can. Now, first take the collar off the animal, lay it on a level, and cut about one inch out of the centre. When you have done this, try it on the animal again; and if it still continues too large take a little more from each side of the centre until you get it right. In this way you can effect the remedy you need.
In performing a long journey, the animals will, if driven hard, soon show you where the collar ought to be cut, They generally get sore on the outer part of the shoulder, and this on account of the muscle wasting away. Teamsters on the plains and in the Western Territories cut all the collars when starting on a trip. It takes less time afterward to fit them to the teams, and to harness and unharness.
When you find out where the collar has injured the shoulder, cut it and take out enough of the stuffing to prevent the leather from touching the sore. In this way the animal will soon get sound-shouldered again. Let the part of the leather you cut hang loose, so that when you take the stuffing out you may put it back and prevent any more than is actually necessary from coming out.
See that your hames fit well, for they are a matter of great importance in a mule's drawing. Unless your hames fit your collar well, you are sure to have trouble with your harness, and your mule will work badly. Some persons think, because a mule can be accustomed to work with almost any thing for a harness, that money is saved in letting him do it. This is a great mistake. You serve the best economy when you harness him well and make his working comfortable. Indeed, a mule can do more work with a bad-fitting collar and harness than a man can walk with a bad-fitting boot. Try your hames on, and draw them tight enough at the top of the mule's neck, so that they will not work or roll round. They should be tight enough to fit well without pinching the neck or shoulder, and in fine, fit as neatly as a man's shirt-collar.
Do not get the bulge part of your collar down too low. If you do, you interfere with the machinery that propels the mule's fore legs. Again, if you raise it too high, you at once interfere with his wind. There is an exact place for the bulge of the collar, and it is on the point of the mule's shoulder. Some persons use a pad made of shee
Jean Wen sacrificed herself for family interests. Before her husband divorced her, she made every effort to please him.
"You are inexperienced in bed," he said coldly.
"You! Give that land to my family, or I won't agree to divorce," Jean replied furiously.
"Fine. It is exactly what I am thinking about," he sneered.
pskin on the toe of the collar. Take it off, for it does no good, and get a piece of thick leather, free from wrinkles, ten or twelve inches long and seven wide; slit it crosswise an inch or so from each end, leaving about an inch in the centre. Fit this in, in place of the pad of sheepskin, and you will have a cheaper, more durable, and cooler neck-gear for the animal. You cannot keep a mule's neck in good condition with heating and quilted pads. The same is true of padded saddles. I have perhaps ridden as much as any other man in the service, of my age, and yet I never could keep a horse's back in good condition with a padded saddle when I rode over twenty-five or thirty miles a day.
There is another evil which ought to be remedied. I refer now to the throat-latch. Hundreds of mules are in a measure ruined by allowing the throat-latch to be worked too tight. A tight throat-latch invariably makes his head sore. Besides, it interferes with a part which, if it were not for, you would not have the mule--his wind. I have frequently known mules' heads so injured by the throat-latch that they would not allow you to bridle them, or indeed touch their heads. And to bridle a mule with a sore head requires a little more patience than nature generally supplies man with.
Let a mule's ears alone. It is very common with teamsters and others, when they want to harness mules, to catch them by the ears, put twitches on their ears. Even blacksmiths, who certainly ought to know better, are in the habit of putting tongs and twitches in their ears when they shoe them. Now, against all these barbarous and inhuman practices, I here, in the name of humanity, enter my protest. The animal becomes almost worthless by the injuries caused by such practices. There are extreme cases in which the twitch may be resorted to, but it should in all cases be applied to the nose, and only then when all milder means have failed.
But there is another, and much better, method of handling and overcoming the vices of refractory mules. I refer to the lariat. Throw the noose over the head of the unruly mule, then draw him carefully up to a wagon, as if for the purpose of bridling him. In case he is extremely hard to bridle, or vicious, throw an additional lariat or rope over his head, fixing it precisely as represented in the drawing. By this method you can hold any mule. But even this method had better be avoided unless where it is absolutely necessary.
It is now August, 1866. We are working five hundred and fifty-eight animals, from six o'clock in the morning until seven o'clock at night, and out of this number we have not got ten sore or galled animals. The reason is, because we do not use a single padded saddle or collar. Also, that the part of the harness that the heaviest strain comes on is kept as smooth and pliable as it is possible for it to be. Look well to your drawing-chains, too, and see that they are kept of an even length. If your collar gets gummy or dirty, don't scrape it with a knife; wash it, and preserve the smooth surface. Your breeching, or wheel harness, is also another very important part; see that it does not cut and chafe the animal so as to wear the hair off, or injure the skin. If you get this too tight, it is impossible for the animal to stretch out and walk free. Besides obstructing the animal's gait, however, the straps will hold the collar and hames so tight to his shoulder as to make him sore on the top of his neck. These straps should always be slack enough to allow the mule perfect freedom when at his best walk.
And now I have a few words to say on Government wagons. Government wagons, as now made, can be used for other purposes besides the army. The large-sized Government wagon is, it has been proved, too heavy for four horses. The smaller sized one is nearer right; but whenever you take an ordinary load on it (the smaller one) and have a rough country to move through, it will give out. It is too heavy for two horses and a light load, and yet not heavy enough to carry twenty-five hundred or three thousand pounds, a four-horse load, when the roads are in any way bad. They do tolerably well about cities, established posts, and indeed anywhere where the roads are good, and they are not subject to much strain. Improvements on the Government wagon have been attempted, but the result has been failure. The more simple you can get such wagons, the better, and this is why the original yet stands as the best. There is, however, great difference in the material used, and some makers make better wagons than others. The six and eight-mule wagon, the largest size used for road and field purposes, is, in my humble opinion, the very best adapted to the uses of our American army.
During the rebellion there were a great many wagons used that were not of the army pattern. One of these, I remember, was called the Wheeling wagon, and used to a great extent for light work, and did well. On this account many persons recommended them. I could not, and for this reason: they are too complicated, and they are much too light to carry the ordinary load of a six-mule team. At the end of the war it was shown that the army pattern wagon had been worked more, had been repaired less, and was in better condition than any other wagon used. I refer now to those made in Philadelphia, by Wilson & Childs, or Wilson, Childs & Co. They are known in the army as the Wilson wagon. The very best place to test the durability of a wagon is on the plains. Run it there, one summer, when there is but little wet weather, where there are all kinds of roads to travel on and loads to carry, and if it stands that it will stand any thing. The wagon-brake, instead of the lock-chain, is a great and very valuable improvement made during the War. Having a brake on the wagon saves the time and trouble of stopping at the top of every hill to lock the wheels, and again at the bottom to unlock them. Officers of the army know how much trouble this used to cause, how it used to block up the roads, and delay the movements of troops impatient to get ahead. The lock-chain ground out the wagon tire in one spot. The brake saves that; and it also saves the animal's neck from that bruising and chafing incident to the dead strain that was required when dragging the locked wheel.
There is another difficulty that has been overcome by the wagon-brake. In stopping to lock wheels on the top of a hill, your train get into disorder. In most cases, when trains are moving on the road, there is a space of ten or fifteen feet between the wagons. Each team, then, will naturally close up that space as it comes to the place for halting to lock. Now, about the time the first teamster gets his wheel locked, the one in the rear of him is dismounting for the same purpose. This being repeated along the train, it is not difficult to see how the space must increase, and irregularity follow. The more wagons you have to lock with the drag-chain, the further you get the teams apart. When you have a large body of wagons moving together, it naturally follows that, with such a halt as this, the teams in the rear must make twenty-five halts, or stops, and starts, for everyone that the head team makes.
When the teamster driving the second team gets ready to lock, the first, or head team, starts up. This excites the mule of the second to do the same, and so all along the train. This irritates the teamster, and he is compelled to run up and catch the wheel-mules by the head, to make them stop, so that he can lock his wheels. In nine cases out of ten he will waste time in punishing his animals for what they do not understand. He never thinks for a moment that the mule is accustomed to start up when the wagon ahead of him moves, and supposes he is doing his duty. In many cases, when he had got his wheels locked, he had so excited his mules that they would run down the hill, cripple some of the men, break the wagon, cause a "smash-up" in the train, and perhaps destroy the very rations and clothes on which some poor soldier's life depended. We all know what delay and disaster have resulted from the roads being blocked up in this manner. The brake, thanks to the inventor, offers a remedy for all this. It also saves the neck and shoulders of every animal in the train; it saves the feet of the wheelers; it saves the harness; it saves the lead and swing mules from being stopped so quick that they cut themselves; and it saves the wheels at least twenty per cent. Those who have had wagons thrown over precipices, or labored and struggled in mud and water two and three hours at a time, can easily understand how time and trouble could have been saved if the wagon could have been locked in any way after it started over those places. The best brake by all odds, is that which fastens with a lever chain to the brake-bar. I do not like those which attach with a rope, and for the reason that the lazy teamster can sit on the saddle-mule and lock and unlock, while, with the chain and lever, he must get off. In this way he relieves the saddle-mule's back.
We all know that, in riding mules down steep or long hills, you do much to stiffen them up and wear them out.
* * *


text:
Nirmal Integrated Consultancy (NIC)
Nirmal Integrated Consultancy, much popular by the name of "Team–NIC", founded in year 2010 which and is later registered with Govt. of National Capital Territory of Delhi – India in year 2012. The first and formal name of the company has been blessed by Mrs. Nirmal Jain, a great educationalist and visionary, retired from Municipal Corporation of Delhi (INDIA), one of the largest municipal bodies in the world, and the honorable founder of Team – NIC.
Team–NIC brings together the professional forces working in diversified fields to consult upon providing benefits towards a common goal of "Global Economic and Social Growth". Team – NIC believes in "Business of Quality for Ethical Progresses". Team – NIC gives special values to the growth of its members while it works for growth of its customers.
Team-NIC has been honored with ICT-Excellence award in cooperation with Ministry of Electronics and Information Technologies for its unique most business methodology and excellence in customer services.
The noble cause of existence of Team-NIC and its mission is "Empowering Ethical Business". Team-NIC strongly believes that this mission would be achieved by development of the most appropriate infrastructure, professional skills, and ethical business practices across the globe.
Vision of Team – NIC is to become a "Quality Name of Ethical Business". Team – NIC is visionary to introduce and implement "Ethical Business Practices" to improve "Quality of Human Living Standards".


text:
Want any photos from our website? Not a problem!
It's now even easier to get your hands on a digital copy of any of the photos you see on the website, watermark free!
All digital photos cost £3, but email Scott White at firstname.lastname@example.com to request a photo!
To the left are five of Scott's favourite photos, all available to buy today.
Ollie Rowe celebrates after scoring a header against Walton Casuals | 2015/16.
Frannie Collin takes his penalty at home to Guernsey | 2016/17.
Harry Stannard celebrates opening the scoring for the U's against Whytealeafe | 2016/17
Guensey's Tardif flies through the air as Medlock's 35-yard freekick beats him | 2015/16.
Billy Medlock celebrates after scoring against Herne Bay at the Pilot Field | 2015/16.


text:
I'm a paramedic – I'm not supposed to feel
A paramedic takes on the gut-wrenching task of informing the family of a patient's death
By Dani Freed, EMS1 Contributor
I arrived on scene as the first transporting paramedic. It was the middle of the night. We located the scene and parked our ambulance. As I approached the car, I was led to the driver's side of a demolished what-appeared-to-be a car at one point.
My eyes go straight to the driver's seat, which is no longer part of the car, but now hanging and resting on the street as if a giant ripped it from the car and placed it next to where it's supposed to be. I notice the seatbelt still buckled, then the lifeless body staring at me with those all-too-familiar dead eyes. "Oh God he's young, that sucks."
Keep in mind, I'm in my paramedic brain now. The one that doesn't think, it just knows what needs to be done. I don't feel, just see. I reach down to check for any chance of life, even though I already know. I know, yet I don't feel.
I lift this kid's chin up and find a hole where his brain is visible in the back of his skull. I look down to the normally black asphalt and see the copious amount of blood that makes it now red. I smell copper. I smell, but I don't feel. I place my fingers on his neck to check for a pulse. I still don't feel, anything. I look at the fire medic and shake my head. I move on to the next patient. I walk to him, but don't feel.
I approach a white helmet chief. He informs me this patient is the passenger of the same car. This patient is the DOA's brother and has yet to be informed. I copied the situation and took over care. I copied, yet I didn't feel. I made eye contact, changed my demeanor from strong, in-charge medic, to empathetic, concerned, now his paramedic. I change, but I don't feel.
I perform my rapid trauma assessment to rule out any life threats, there are none. He's upset, anxious, worried. He keeps looking to the car, asking the status of his brother. I dance around the question. I dance, but I don't feel. I assist him to my gurney and continue to ask him questions – questions about what hurts, his medical history, his allergies and his medications. I question, yet I don't feel.
I have the fire medic do the call in so he won't hear me say, "death in the same compartment." He tells me he was knocked out, tells me the last thing he remembers was a loud crash sound, tells me he saw his brothers face. He grabs for my hand, I hold him. I embrace, but I don't feel.
I start my IVs, walk him through what will happen when we get to the ED. He asks if his brother will be taken to the same hospital. I tell him no. I tell him no, but I don't feel.
We arrive, I give my report to the trauma team. I do my paperwork. I input my vital signs and treatment. I write my narrative, yet I still don't feel.
An officer arrives with father of the two boys. I introduce myself to them, take the father to his son. The officer states, "I'm not telling them. My sergeant can do it." I inform staff that they don't know. They don't know about the dead son/brother that I had to leave, that I couldn't help. Multiple nurses say, "I'm not telling them, someone else can do that." I feel annoyed. The sergeant tells the captain he can do it. The captain says he will wait for the chaplain to come to inform.
I walk into the room with the father and son. My patient reaches for my hand again and asks about his brother. I hold his hand and take a seat on a stool next to his bed. I sit, but don't feel.
A very rude staff member enters the room asking who the father was, if I brought in the patient. I answer. Loud and snippy she asks, "well then where is the other brother?" Ok now I feel. I feel anger, I feel betrayal for my patient, I feel no one wanted to do their job. I feel my blood start to boil and I know I have to handle what nobody else wants to do.
I speak in a soft compassionate voice. I speak, but I no longer feel. I explain how he died, how it was instantly and there was no pain. How he didn't pass alone because he had his little brother with him. I hear the cries, the self-blame, the hurt. I see the pain, yet I don't feel.
My pager goes off, another call to run. I ask if I can get them anything, I ask if I can call anyone for them. I ask, but I don't feel. I walk to my ambulance, I back up my partner, I climb into the rig and start mapping him to our next call. I give directions, but still, I don't feel.
I'm a paramedic, and we're not supposed to feel.
About the author
Dani Freed is a paramedic in Riverside, Calif., who has been writing a log of her EMS calls for 15 years.


text:
The BEST Episodes of The Wrong Mans
Every episode ever - ranked by fan votes!
Last Updated: Nov 25, 2019
Network: BBC Two
Two lowly office workers Sam (Mathew Baynton) and Phil (James Corden) become caught up in a deadly criminal conspiracy after Sam answers a ringing phone at the scene of a horrific car crash.
#1 - Action Mans/Wise Mans
Season 2 - Episode 2
Busted out of prison and soaring away from Texas, Sam and Phil's spirits are momentarily lifted, until another case of mistaken identity finds them risking their lives again. Their only hope is to play their part in a high-stakes heist with a ruthless gang of mercenaries.
#2 - Running Mans
Season 1 - Episode 6
Chased by the MI5, Sam and Phil must warn Lizzie of the true nature of Reid's development plans.
#3 - X-Mans/White Mans
Season 2 - Episode 1
Having earned their status as hometown heroes in the first series, Sam and Phil are blasted back to zero again. Now in hiding, Phil is relishing the chance to reinvent himself but Sam pines for his old life.
#4 - Wanted Mans
Season 1 - Episode 5
After taking care of the wounded Marat, Sam and Phil agree to meet with the MI5 to hand them over Marat.
#5 - Dead Mans
Season 1 - Episode 3
Sam and Lau agree to exchange their hostages, but Phil gets in the way. They manage to escape and take Scarlett back to her husband.
#6 - Bad Mans
Season 1 - Episode 2
Sam and Phil are sent in Nick Stevens' place to negotiate with Mr Lau, the kidnapper of his wife, Scarlett.
#7 - Inside Mans
Season 1 - Episode 4
To get Scarlett and the police off their back, Sam and Phil must find a music box which was sold to a mysterious Russian exile.
#8 - The Wrong Mans
Season 1 - Episode 1
The life of Sam Pinkett, a council employee, goes from bad to worse when, after witnessing a car accident, he answers a mobile phone found at the site.


text:
Dozens of US-based cleric's supporters arrested in Turkey soccer crackdown
Turkish authorities on Tuesday detained 38 people suspected of "framing" soccer team Fenerbahce's players and directors in a match-fixing investigation in 2011, as the government pressed ahead with a crackdown on supporters of a U.S.-based Muslim cleric.
The state-run Anadolu Agency said police had warrants for the arrest of 64 people suspected of involvement in the alleged plot against Fenerbahce officials.
At least 38 of them were detained in raids in Istanbul and 27 other cities. The suspects, who include former police chiefs, lawyers and at least one journalist, face possible charges of forming and belonging to a "terror organization" and conducting illegal wiretaps, the agency reported.
Several Fenerbahce officials, including club President Aziz Yildirim, were arrested and put on trial as part of the match-fixing scandal in 2011 but were all acquitted in a re-trial last year.
Fenerbahce has long maintained that the case was orchestrated by prosecutors and police affiliated with Fethullah Gulen's moderate Islamic movement as part of an alleged bid to take control of one of Turkey's top clubs.
The government, for its part, accuses Gulen's followers of being behind a corruption investigation in 2013 that ensnared people close to President Recep Tayyip Erdogan. Authorities have since labeled the movement a terror organization, accusing it of attempting to overthrow the government, although it is not known to have engaged in any acts of violence.
The government has been clamping down on the organization, purging alleged supporters within the police and judiciary and seizing newspapers and businesses associated with Gulen.
Gulen, who is in self-imposed exile in Pennsylvania, is on trial in absentia accused of plotting against the government. His movement denies the accusations.


text:
In the context of team sports, researchers have assumed its inherent complexity and instability, acknowledging them as systems and broadened the research focus to the logic of the game and its patterns (Bar-Yam, 2003; McGarry et al., 2002; Reed and Hughes, 2006; Travassos et al., 2013). This trend presupposes the creation of models able to characterize: the relation between the quantities and qualities of the game actions, the organization of the game, the types of sequences that generate positive or negative results, the scenarios or geometry of the game in the evolution of teams in space and time, the interactions or co-adaptation between attackers and defenders (Barris and Button, 2008; Duarte et al., 2012; McGarry, 2009; Passos et al., 2013; Vilar et al., 2012).
Research regarding Paralympic team sports, still in its embryonic stage, has not consistently addressed this trend of match analysis to adapted sports, such as wheelchair basketball (Gómez et al., 2014; Wang et al., 2005), ice sledge hockey (Molik et al., 2012), and also goalball (Amorim et al., 2010; Mora, 1993). Goalball is a non-territorial invasion team sport created exclusively for people with visual impairment, which is based on hearing (ball with bells inside) and tactile (raised lines) clues. In this sport, two team with three athletes each stay positioned in the opposite end sides of a court with dimension similar to a volleyball court (18 m × 9 m), divided into two halves by a center line. From a restricted area, the attacking team throws a ball along the floor toward the opponent's goal. The defending team, positioned in an area with tactile markings, tries to block the thrown ball, usually by sliding on the floor (Gulick and Malone, 2011).
Assuming the complexity of team sports, Morato et al. (2012) identified the self-organizing cycle of goalball teams by using systematic video observation of an elite competition. These authors presented three principles each in the offensive (ball control, attack preparation and throwing) and defensive (defensive balance, throw reading and blocking) dimensions. While Team 1 attempts to control the ball after intercepting the throw by Team 2, the latter assumes a defensive balance, that is, the team returns to its tactical system and is attracted by the origin of the opponent throw to reconfigure itself, while moving as a block to rationally occupy the court (Fig. 1). As Team 1 controls the ball, it continues preparing its attack in order to throw the ball. Team 2 is still focusing on the defensive balance principle, changing the focus to read the throw as soon as the Team 1 thrower starts the run-up to throw the ball. When the attacker releases the ball, Team 2 will interpret the throw, defining its trajectory and categorizing it under time pressure in order to intercept it effectively. After intercepting the throw, Team 2 controls the ball and prepares the next attack while Team 1 moves from the offensive to the defensive dimension, focusing on the defensive principles until the thrown ball is recovered (see Video 1).
Thus, a game sequence includes one team's configuration to comply with the offensive principles, the configuration of the opponent team to comply with the defensive principles in response to the other team's attack, and the outcome of this interaction. The set of game sequences represents the goalball game, meaning the history of relations between the teams' opposite dimensions (Morato et al., 2012).
Based on the offensive and defensive principles of goalball, our purpose was to develop and evaluate an observational system for goalball match analysis.
In this study, we used a non-participant systematic game observation method (Anguera, 1999; Thomas et al., 2011). Some basic principles should be followed in this method: elaborating an ad hoc instrument to record the categories and indicators that are considered fundamental in the theoretical and specific practical framework, preparing expert observers, preserving the spontaneity of the system observed, focusing on the actual game/competition situation, and maintaining the temporal continuity, so that the patterns can be found amidst changeable and random behaviors (Anguera and Hernández-Mendo, 2014). The study was conducted according to the Declaration of Helsinki and the research project was reviewed and approved with no restrictions by an institutional ethics committee.
Goalball match analysis instrument elaboration
The observational system is a basic match analysis instrument. The observer should elaborate it based on the reality distinguished in his conception of the game and the theoretical framework this reality is based on, attempting to answer questions about: who, when, where and how the actions are executed (Hughes and Bartlett, 2002; Wright et al., 2014). The categories formulated should be exhaustive (need to classify all actions of the game) and mutually exclusive (each action should refer to only one of the indicators per category) (Anguera and Hernández-Mendo, 2014).
Therefore, Anguera and Hernández-Mendo (2013) consider that it is fundamental to dedicate great time to the creation, reformulation and establishment of each model, with a view to covering the full spectrum of constraints the observer considers fundamental. These authors suggest non-systematic, exploratory observation sessions before starting a systematic study, aiming to delimit the research problem; elaborating the ad hoc instrument; training of the observers to reduce the occurrence of future errors; and collecting information for decision making about the research planning.
In that sense, departing from the conception of the goalball game proposed by Morato et al. (2012), the three offensive (ball control, attack preparation and throwing) and three defensive principles (defensive balance, throw reading and blocking) were adopted as the structural criteria of our observational system. Therefore, we observed eight goalball games video recorded and randomly chosen from the IBSA World Games 2007.
While observing the games, an open list of team conducts was elaborated while performing each principle. Each principle was observed exhaustively, that is, until perceiving that all possible situations that represented the performance indicators had been listed. After observing one principle, the next was observed until obtaining a list of events for each of the six principles. With the list of performance indicators for each principle in hand, a thematic grouping process was started, representing the identification of the observational categories.
The next step was to present the match analysis protocol, with its observational categories and respective performance indicators, to four experienced coaches (all having at least 6 years of coaching club teams; two of them coaching national teams). Performance indicators were discussed and the selected items were included in the protocol. Following, clear operational definitions were established and agreed upon by the coaches involved in the process (Wright et al., 2014).
Reliability assessment
Two expert observers (more than 2 years of experience as referees and goalball coaches) went through a learning process of the instrument. Initially, they received a protocol with the observational categories and their performance indicators. Next, two supervised training sessions were performed on different days for the identification of the different indicators per categories in the recorded images and the practical application of the data recording by completing the ad hoc instrument, elaborated in an electronic worksheet. As doubts emerged during the training, the observers returned to the protocol to reach a consensus. The training terminated after solving the doubts.
After the training, the observers started the video analysis of two randomly selected goalball games from the Beijing 2008 Paralympic Games. This represented a sample of 314 game sequences (attack/defense/results). The second observation of the games took place 15 days after the end of the first. We calculated the inter and intra-rater reliability by using Cohen's Kappa coefficient (Fleiss et al., 2013).
In Fig. 2, we show the graphic representation of a goalball game. This model results from the systematic observation process of the offensive (ball control, attack preparation and throwing) and defensive principles (defensive balance, throw reading and blocking) of goalball.
Based on this goalball game model, at least one observational category with the respective performance indicators was obtained for each principle (see Tables 1–3).
|Observational categories
|Performance indicators
|Ball control
|Attacking team: Team that recovers the ball
|Three-letter initials of the country
|Preceding situation: Link with the previous game sequence to indicate how the team conquered the ball possession
|Received ball from the main referee at the beginning of the first or second half of the game
|Defense of opponent throw
|Out side throw
|Block out
|Infraction by the opponent
|Penalty by the opponent
|Defense of penalty shot
|Goal against
|Team time out
|Official time out
|Attack preparation
|Thrower: Identification of the player performing the attack
|Jersey number
|Left wing
|Right wing
|Offensive strategy: The strategy the attacking team uses for the throw
|Regular: player throws the ball from the same or surrounding sector in which (s)he defended or received a pass. For example, if (s)he defended the throw in sector 2, the throw from sector 1, 2 or 3 is considered regular (see Fig. 3)
|Fluctuation: player defends the ball or receives a pass and, before throwing, changes the sector beyond the neighboring sectors. Example: (s)he defended in sector 2 and throw from 4, 5 or 6 (see Fig. 3)
|Delivered ball pass: attacker receives a hand-to-hand passing before throwing
|Set piece: organized and practiced move, other than FL and DB.
|Counter-attack: attack is performed within four seconds after defense
|Quick attack: subsequent to an interruption, attack is performed within two seconds after referee calls "quiet please, play"
|Safety ball: when the player throws the ball so as not to commit penalties or to prioritize the defensive balance
|Slow ball: strategy used at the final moments of the games by the leading teams to spend the game time left
|Attack length: Time the team uses to perform the attack
|Short attack: up to 4 seconds after defense
|Standard attack: between 4 and 7 after defense
|Extended attack: more than 7 s after defense
|Throw origin an throw target: Categorization of the throw trajectory, based on court division presented in Fig. 3
|Sector in which the ball had the first contact with the ground after being thrown by the attacker, independently of his/her movement to perform the attack
|The place where the ball thrown reaches the orientation area front line of the opponent team
|Ball type: Thrown ball feature
|Bouncing: ball bounces at least once after the high ball line
|Rolling: ball straight and constantly touching the floor
|Curve: rolling ball with side spin
|Ball time: Duration of thrown ball
|Thrown ball duration to cross the distance between the high ball line to opposite orientation area front line
|Observational categories
|Performance indicators
|Defensive balance
|Defending team: Team that misses the ball possession
|Three-letter initials of the country
|Tactical system: The team configuration when waiting for the opponent attack (see Fig. 1)
|Basic triangle
|Forward triangle
|Backward triangle
|Inverse triangle
|Throw reading
|Defensive reaction: Defender response to the ball sound after opposite throw
|Early reaction: defender reacts too soon to any thrown ball sound by the opposite team
|Coherent reaction: defender reacts timely to the ball sound
|Late reaction: defender reacts too late to the ball sound, remaining no time to finish the defensive technique
|No reaction: defender does not react to the ball sound
|Defender: Identification of the player who performs the first defensive interception
|Jersey number
|Left wing
|Right wing
|Body segment: Body part used by player to block the ball
|Upper region: for head, shoulders, arms, forearms and hands
|Central region: for chest, abdomen, hips and thighs
|Lower region: for knees, legs, and feet
|No defensive contact with the ball
|Ball interception: Characterization of the blocking, referring to the result of the application of the defensive technique
|No rebound: defender intercepts and keeps the ball under control
|Frontal rebound: the blocked ball moves towards the center of the court
|Lateral rebound: the ball moves towards the lateral lines after the defense
|Backward rebound: the ball continues towards the goal line
|No defensive contact with the ball
|Observational categories
|Performance indicators
|Attack/defense interaction
|Outcome: Result of the interaction between the offensive dimension of one team and the defensive dimension of the other
|Defending team blocks the ball which remains inside their half court
|Ball passes the limits of the court after being blocked by the defenders
|Ball thrown out without contact with the defenders
|An infraction occurs
|A penalty occurs
|Attacking team scores
|Defender blocks the penalty shot
|Attacker throws the penalty shot out side
|Thrower commits a penalty in a penalty shot
|Penalty shooter scores
|Game notes: observations for references of each game sequence
|Game period
|First half
|Second half
|Game number
|According to the list of games observed
The reliability (Kappa) coefficients of the proposed model are presented in Table 4.
|Observational categories
|Observer 1
|Observer 2
|Ball control
|Attacking team
|Preceding situation
|Attack preparation
|Thrower number
|Thrower position
|Offensive strategy
|Attack length
|Throw origin
|Throw target
|Ball type
|Ball time
|Defensive balance
|Defending team
|Tactical system
|Throw reading
|Defensive reaction
|Defender number
|Defender position
|Body segment
|Ball interception
|Attack/defense interaction
|Game notes
|Game period
|Game number
Note: A kappa coefficient of 0.81-1.00 indicates almost perfect agreement (Landis and Koch, 1977).
In this study we developed and evaluated an observational system for goalball match analysis. The observed categories and the performance indicators proposed in the instrument represent all possible actions available in the goalball game (exhaustiveness) for each of the offensive and defensive principles included in the model. Each game situation was categorized by a single indicator (mutual exclusivity), reducing any observation bias (Anguera and Hernández-Mendo, 2014). This can be observed in the Kappa coefficients, as demonstrated in Table 4, ensuring that the instrument is rigorous enough for scientific use. For all observational categories, the intra and inter-rater reliability assessment showed high agreement levels between 0.81 and 1.00 (Fleiss et al., 2013; Lames and McGarry, 2007).
The use of this observational system to deal with performance analysis in goalball can help to evolve the base knowledge on technical and tactical aspects of this particular sport. This method is an inexpensive way of providing quantitative and qualitative feedback to players and coaches of how individual players can influence team patterns (Barris and Button, 2008; Hughes and Bartlett, 2002; Vilar et al., 2012). Up to now, there have been only a few studies trying to characterize particular situations of goalball (Amorim et al., 2010; Mora, 1993). Our model expands on the theme, proposing means to assess all the key elements occurring in male and female elite goalball games. We believe the interactive way the instrument was created, by gathering feedback through constant exchange of ideas with elite coaches, led us to comprehensively determine which were the most relevant offensive (how the ball is controlled; how the attack is prepared; and how the throw is performed) and defensive (how the team is positioned on the court; how the athletes reacted to the opponent's throw; and how the ball is blocked) aspects of the game.
Offensive principles
The opponent's throwing outcome is the starting point to the ball control principle. From our experience, this offensive principle is most commonly noted as a defense of the opponent's throw, as a ball controlled after a rebound or as the ball received from the referee. Different preceding situations will influence the offensive strategy choice in the following principle (attack preparation). For example, a ball controlled without a rebound or the one given by the referee after a ball out will allow less time pressure to build the attack within the ten seconds of ball possession a team has to attack. On the other hand, the ball controlled after a long rebound or given by the referee after a block out will reduce the available time to the throwing, hence reducing the possible offensive strategies.
The attack preparation principle is aimed to determine how the attack is planned. The identification of athlete's position and roles on court can clarify the throwing frequency executed by wing and center players providing relevant information for training specificity. For instance, based on eight games from the Barcelona 1992 Paralympic Games, Mora (1993) showed that wing players tend to attack more frequently than centers. Although this is an important information of the game patterns, the author did not take into consideration the teams' tactical systems. The athletes' role and their spatial occupation on court is likely to be determined by the tactical system adopted by each team (Morato et al., 2012), which may further influence the frequency of attacks per players. When assessing the attack length one may find whether shorter or longer attacks are more effective under different scenarios. We also believe it is very important to identify how different offensive strategies (i.e., regular, fluctuation, delivered ball pass, set piece, counter-attack, quick attack, safety ball, or slow ball) influence the defensive balance of the defending team and its respective outcome.
Throwing, as the last attack principle, is thought to characterize how the throw is performed in a goalball game. The efficacy of ball type and ball time can be determined and its relation to throw origin and throw target can later be established. In practical terms, the initial application of our protocol allowed us to investigate the incidence of different ball types and the origin and target throws in elite level goalball. Among the identified three types of ball seen in goalball (rolling, bouncing, and curve) we found that the rolling balls were more common in females when compared to males and that the rolling and bouncing balls were more frequent than the curves balls for both genders (Morato et al., 2014). In another study, we detected higher occurrence of throws from the wing sectors in both genders, similar to Amorim et al. (2010), and higher incidence of balls arriving at the central sectors of the opposing team area (Morato et al., 2013).
Defensive principles
For the first defensive principle, defensive balance, we sought to identify how the team is positioned on the court (tactical system). The possible identification of throwing patterns, as discussed in the offensive principle, can contribute to the teams' organization to effectively comply with the defensive balance principle concept, moving as a block toward the opponent's throw origin (Morato et al., 2012). In addition, differences in the defensive tactical systems effectiveness can be identified with regard to the rational space occupation (see Fig. 1).
Besides the spatial issue, the model also enables the recognition of rhythms inherent to the game. In this way, in the second defensive principle (throw reading) the focus was to understand how athletes reacted to the opponent's throwing (defensive reaction). According to the observers who took part in the reliability testing stage of the study, the subjectivity may play some role in this principle when one tries to note an early, coherent or late defender's reaction to block the ball. However, although among the lowest values of inter-rater reliability, a good level of agreement was achieved (Kappa 0.82). In goalball, as the defenders identify the opponent's throw trajectory under a time pressure condition (Morato et al., 2012), it is relevant to understand if different ranges of attack ball possession or throwing ball time interfere in the defensive efficacy, as seem in other sports (Freeston et al., 2014; Wagner et al., 2012).
For the last defensive principle, blocking, our model permits to understand how the ball is blocked (defender number, defender position, body segment, and ball interception). Traditionally, goalball teams assume a triangular positioning, in which the center, more advanced on court, play the principal role of defending, while wings have the main role of attacking (Morato et al., 2012). However, this may not be true for the all of the possible defensive tactical systems, as proposed in Fig. 1. Another relevant issue of investigation refers to which body segment is more and less efficient to block the ball. From our experience, it seems reasonable that defending the ball with the body extremities may be less effective to securely control the ball than defending it with the trunk, hip and thigh, and the use of protocol can help to test this hypothesis.
Possible interactions between the principles
In team sports with field invasion, the game patterns derive from the continuous interaction between attackers and defenders, mainly in a tight spatial relation. Both teams constantly re-organize their position on field according to the opponent's unpredictable behaviors, depending on spatial-time information from the game, which is clearly visual and acoustic (Passos et al., 2013). In goalball, where field invasion is not allowed, the temporal restriction is more noticeable in the defensive principles of throw reading and blocking, which exclusively depend on the auditory perception to identify the characteristic, rhythm and speed of the opponent's throw. From another perspective, provided that the ball is controlled effectively, teams in the offensive situation have more freedom to prepare the attack sequence.
Therefore, changes in the game strategies represent fluctuations in the system (Morato et al., 2012) and the proposed protocol can identify them by recording the event history of each game. With this register in hand, the most appropriate statistical methods still need to be identified to define the secrets of the goalball game. The use of complex mathematical models can contribute to the identification of predictive factors of competitive performance in goalball, positively influencing the teams' preparation process in the training and choice of appropriate strategic plans for competitions (Duarte et al., 2012; Hughes, 2004; Memmert and Perl, 2009; Perl, 2004).
To investigate spatial-time configurations among athletes and teams, different methods are available for the cinematic analysis of athletes in competitive situations (Barris and Button, 2008; Bourbousson et al., 2010; Travassos et al., 2013; Vilar et al., 2014). These methods employ manual or semi-automatic image capturing and data treatment techniques and, while promising for match analysis, they are costly tools that would limit their use in a team sport with amateur characteristics and low budget, which is the case in goalball. In that sense, the model here proposed is democratic, as analysts who are novel in this sport can easily learn it, besides the fact this is a low cost tool. Using an open software (e.g., Kinovea) can favor more refined analysis of the game and provide consistent data when compared to the analysis in loco (e.g., ball time with manual chronometer versus frame-by-frame video analysis). In addition, the real-world demands of an elite competition ensured that ecological validity was maintained to examine the game characteristics.
The observational system for goalball match analysis here presented is thought to represent all possible actions available in the offensive (how the ball is controlled; how the attack is prepared; and how the throw is performed) and defensive principles (how the team is positioned on the court; how the athletes reacted to the opponent's throw; and how the ball is blocked) of the sport. The comprehensive method of development and its ideal reliability levels ensure the generation of quantitative and qualitative information for players and coaches and the rigor required for scientific use. Finally, we understand this innovative and low budget tool is a rare and important work dedicated to systematically study goalball (Fig. 3).