The CBeebies Bedtime Story has become a British institution. Every evening, the BBC channel for the under 7s ends with a gentle bedtime story read by a different celebrity. This Friday, the 7th of December, Doctor Who star Jodie Whittaker becomes the latest to share the honour.
Whittaker will be reading Ada Twist, Scientist by Andrea Beaty and David Roberts. Ada Twist, Scientist tells the story of Ada, a young girl with an insatiable curiousity and determination to be a scientist. But her classroom antics as she tries to get answers to life's vital "What would happen IF…" questions can sometimes get her into bother. Now, her greatest investigation of all begins – what exactly IS that terrible smell?
Whittaker joins the ranks of previous Doctor Who stars to read the nightly bedtime story. Christopher Eccleston read four stories in 2010, including Man on the Moon (A Day in the Life of Bob). David Tennant was a reader for Christmas week in 2009, reading five stories including The Christmas Bear. Captain Jack actor John Barrowman was a reader for a week in 2006, reading Winnie the Witch and other stories. Martha Jones herself, Freema Agyeman, read That Rabbit Belongs to Emily Brown. Arthur Darvill turn his turn earlier this year and Pearl Mackie was the special reader for Christmas last year, reading stories including Ellie's Magic Wellies.
With a three year old of her own at home, we can safely assume Jodie Whittaker tells an awesome bedtime story. So fans of all ages can settle down next Friday to hear an inspiration tale of a young scientist from a reader who plays the brightest scientist on television.
Previous articleVIDEO: This Christmas on BBC One – Featuring Doctor Who!


text:
Pooja Goyal
COO and Co-founder at Avishkaar
Pooja Goyal is the Co-founder and COO of Avishkaar, a robotics and coding education
company, on a mission to create an army of young innovators across the globe. Her current role
is to work towards changing the face of next-generation technology education in K-12 schools
not only in India but across the world through Avishkaar's offerings. At Avishkaar along with her
co-founder Tarun, she has already set up innovation and robotics labs in over 1200 schools,
touching the lives of over 200,000 thousand children. The team is not far from the day when that
number will touch a million as they equip every child with tools and skills to understand
technologies like Robotics, IoT, Artificial Intelligence, Drones; technologies that are changing
the world that our children inhabit; technologies that children as young as 5 years of age are
using in their everyday lives but have no clue about how they work.
An engineer from IIT Delhi, during her studies she soon realised that her interest lies in the
process of creating something from scratch rather than in machines, which led her to be a serial
entrepreneur and an educator. Her last venture Intellitots Learning was acquired by Founding
Years in Dec 2017. Prior to that, she co-founded an enterprise software company in Silicon
Valley. Pooja has worked in the USA, Europe and India, and has successfully paired her work
experience at companies like Adobe Systems and being part of the founding team of Plaksha
University with her passion for education. She is an angel investor and advisor to many startups
and has been awarded the 'Woman of Substance' award.
Pooja has a strong inclination towards women entrepreneurship and is keen on changing the
policies for women and helping women-led companies perform better and grow on a larger
scale. As the pandemic worsened the situation,she initiated a group for women entrepreneurs called SheEOclub, a non-profit organization making funding, mentoring and connections
accessible to women entrepreneurs.
Pooja also holds an MBA from INSEAD, France. She is an avid speaker on the issues of
changing education paradigms, entrepreneurship, leadership and a voracious reader who finds
joy in yoga and is learning to play the piano.
All Sessions by Pooja Goyal
Day 2 - Workshops
Working towards building a more inclusive AI industry
In order to create a more gender-inclusive AI industry, it's important to address the skill gap that exists today and this cannot happen overnight. Bridging the demand-supply gap starts with education that focuses on building necessary lifeskills that make our future workforce job-ready. Moreover, building and nurturing an innovator mindset will transform the way our children think about and choose their career paths. This is specifically so the case with girls and women, who look for a tribe that they can belong to. Creating that conducive environment from them to thrive it at a very young age, in order to create this tribe and to feel belonged, and eventually lead these tribes is critical.

redpajama_set_name: RedPajamaCommonCrawl


The PostgreSQL ODBC Driver is a powerful tool that allows you to connect with live PostgreSQL data, directly from any applications that support ODBC connectivity.
The PostgreSQL ODBC Driver is a powerful tool that allows you to connect with PostgreSQL high-performance data stores, directly from any applications that support ODBC connectivity. Read, write, and update PostgreSQL data through a standard ODBC Driver interface.
The PostgreSQL ODBC Driver is a powerful tool that allows you to easily connect-to live PostgreSQL data through any ODBC capable application or tool! With the Driver users can access PostgreSQL the same way that they would connect to any other ODBC data source. The Drivers are completely self-contained; no additional software installation is required.
Access PostgreSQL data through widely available tools - standard ODBC interface offering the greatest accessibility from applications and developer -technologies.
Developers can use PostgreSQL ODBC Driver to rapidly build Web, Desktop, and Mobile applications that interact with live PostgreSQL data!


Teka cooktops come in all shapes and sizes, different finishes, trims and styles. This cooktop review touches gas, electric and induction hobs, but with only two examples for each type, be sure to visit Teka website to see them all. The availability varies depending on the region, so not every cooktop in this short review is readily available to you. And if you live in United States or Canada, and really want one, the closest place would be Mexico.
Teka gas cooktops are pleasure to review. These two hobs illustrate beautiful design and finish offering power and performance as well as bringing completely different look to your kitchen. Above is the smooth 4-burner gas-on-glass hob with black frontal knobs, individual cast iron grids and 3.5 kW triple ring burner. Available with LPG or natural gas, this cooktop has bevelled tempered glass, crystal surface with ceramic treatment, and integrated auto-ignition and auto-lock safety devices for each burner. Other 3 burners are 3.0 kW fast, 1.75 kW semi-fast and 1.0 kW auxiliary.
Gas cooktop below shows that your typical square or rectangular 4-burner cooktop can look modern and very stylish. Only by Teka Portugal division, the hob has embedded controls, 3.0 kW rapid burner, 2 semi-rapid 1.75 kW burners and 1.0 kW auxiliary burner. Electronic ignition, safety gas cutoff and stainless steel trim add to the impressive feature list, making the hob the center piece of your kitchen.
The first Teka electric cooktop in this review is triple-element vitroceramic, bevelled glass hob with touch control panel, Stop and Go function, residual heat indicators, acoustic sensor and security blocking feature, and clock with alarm. You can program cooking times up to 99 minutes. The high performance triple element and two electric double elements give you up to 6.6 kW in total power. This is one of the most popular and readily available configurations.
The 60cm wide 4-element electric hob comes with timer, minute minder, Keep Warm, Stop and Go functions, child safety lock, auto shutoff and residual heat indicator. Total power output of 7.2 kW includes front-left triple cooking element, right-front dual, left-rear single and versatile rectangular rear-right roaster element.
No cooktop review can happen today without mentioning induction hobs, and Teka offers many configurations and designs. Above is the 3-zone induction hob with faceted glass surface with diamond effect, touch controls with acoustic sensors, safety lock, Keep Warm function, timer and residual heat indicators. Three induction zones with 1.8 kW, 2.3 kW and 3.2 kW provide plenty of power in compact modern design. Available in Spain.
Below is the 4-zone induction cooktop with unique shape and 7.4 kW power output. 4-way timer with minute minder, Keep Warm, Stop and Go, locking controls, safety lock, safety shutdown and residual heat indicator. Teka. Previously, induction cooktop reviews and Teka hobs.


text:
Q: Getting Enter key to submit a dojo.form I have a form element I want to use in many forms, a standard submit button.
<div dojoType='dijit.form.Button' type='submit'
    iconClass='dijitEditorIcon dijitEditorIconRedo'
    style='float:left;margin:0 2px 00;padding:0;'
    onClick=\"filter{$this->_grid->getId()}(); return false;\">Refresh
</div>

Current, this submit buttons works when clicked on, but the form does not submit when the enter key is pressed.  Others have suggested a custom onkeypress event handler to submit the form when it catches the Enter key, but I'm hesitant because I don't want to break other forms on the page.

A: Stuff that you want running on form submission should be on form onsubmit, not a particular button.

redpajama_set_name: RedPajamaStackExchange


One of the biggest challenges that small business owners face is; what is the most effective way to take my big ideas and manifest them into reality? As a small business owner, I would often find myself stressed by the seemingly immense scope of the projects at hand and without a clear starting point or pathway to success. The result of these circumstances was a lot of frustration and very little productivity. About three years ago I decided to take a step back to focus on the true problem I was facing, I lacked a successful procedure on how to best execute my ideas and work in a way that would optimize my time while dramatically reducing my stress levels. Below I will outline the current methodology of strategic planning used by both myself and my team to drive Love2brew to achieve an average annual growth of 30% over the last six years as well found the non-profit OurSociety.
Before we get into the details we should define what strategic planning is.
Strategic planning is a method for taking your ideas (no matter how large or small) and breaking them down into several layers of organization, ending with a list of actionable tasks.
Actionable being the key word here, because none of your planning matters if you do not have a clear path of action to complete it. At both Love2brew and OurSociety I spend a lot of my time mapping out the vision of what needs to be completed in order to best create focus for myself and my teams. A critical part of this is dedicating a consistent block of time to the planning process. The consistency within your daily routine will make it easier for you to develop the discipline to evaluate your business/personal projects from an objective level ensuring that your actions align with your vision. Strategic planning is also transparent; having your vision and plans broken down in front of you gives both you and your organization a very clear indicator about the status of projects and allows for more agility within your weekly schedule. Finally the most important part of strategic planning is creating actionable tasks which ensure that everything that takes place in the planning process directly translates into a specific action. When that action is complete it can be "checked off" or removed from your list. This type of action based approach will allow you to accomplish massive goals by breaking them down into minute tasks that can be done whenever the time allows. Business owner or not, many of us understand how detrimental stress can be in the face of productivity; strategic planning offers a solution to managing projects and the subsequent stress that often follows behind them. By taking the time to break down your ideas into manageable tasks it enables you to spend significantly more time working towards the completion of the goal and less time trying to establish what to do or where to start.
So if we understand what strategic planning is the next question we need to answer is why should we plan? First and foremost strategic planning is a tangible way to visualize your success. Visualizing your success has been spoken about ad nauseam from thousands of successful people in all walks of life and that is because it is true and it works. When you have outlined your vision and a plan of action the mystique of the project is removed and replaced by a very clear and detailed path to accomplishing what you desire. As mentioned earlier stress reduction is a major benefit of strategic planning, I can only speak for myself but implementing strategic planning for my projects has been an incredible boon to my own mental health and daily attitude. If you want to take on big ideas and challenges it is necessary to keep your mental state in a positive place and avoid the pitfalls of poor decision making that come from over stress and fear of failure. Another important "Why?" of strategic planning is that it places a large focus on the growth of your organization. No matter what project you are undertaking, business or personal, growth is a quintessential part of success.
Here we see a Project Tree in its natural habitat.
Objective: At the top of your tree is your main objective that you are focused on accomplishing. It is an idea, a goal, a vision, a plan, or a purpose. Keep it to a few words or less. Be specific.
Major Milestones: The next level of your tree focuses on every major milestone that will need to be accomplished before your goal is complete. Think of major milestones as a very broad but distinct category. For example, if I was starting a new business my Major Milestones would be "Product/Service", "Marketing", "Finance", and "Company" and I would break everything else down into one of those four categories/milestones.
Minor Milestones: Depending on the complexity of your project you may assign another level of minor milestones or for smaller projects you may skip this level and go directly to the tasks. Minor milestones are categories similar to Major Milestones but more specific. For example, if I was starting a new business today I might breakdown my "Company" Major Milestone into the following Minor Milestones: "Website", "Staff", "Identity", and "User Volunteers". All of these are variable and depend on your overall objective.
Tasks: Tasks are actionable items that can be distinctly measured and completed by doing something. The objective of setting these tasks is to clearly define what needs to be done in order to accomplish each Minor Milestone. Ideally you should be able to view your current tree and immediately know exactly what you need to focus your thoughts and engagement on. Tasks may also serve as a checklist of items to be crossed off when complete. Using our above example of Company > Website my tasks under website might be: "Purchase Domain", "Wireframe", "Outsource Design", "Google Analytics", "SEO Services", "Setup WordPress", etc. Notice how all of these tasks are one to two words, the objective is to concisely record what you need to accomplish, leaving room for interpretation once you begin your actual process. One thing that can be added to the task portion of the project trees is to include a time estimate in each of the Task boxes. I've found this method to be incredibly helpful in the event I find myself with an extra hour of time I can easily identify a task that will take an hour or less and focus on completing it.
Creating a visual outline of your project tree can be a great benefit to you if having a physical checklist helps you manage your workflow better.
Project Tree for developing a CO2 Tank Exchange Program for Love2brew retail locations.
Overall implementing strategic planning in your work or personal life will give you the tools to accomplish bigger and more complex projects in the most efficient and clear way possible. If after reading this it still seems complex my recommendation would be to start with something small, a minor project to get into the habit of planning. One of the biggest lessons I've learned from founding/operating my own business is that success is habitual. By taking continuous small steps to learn new methods of visualization and workflow management you will be able exponentially increase your output and strategic perspective on how to approach problems. These skills will compound upon each other freeing up significantly more time within your schedule to be spent on your vision and purpose and less on stressing about the tasks needed to accomplish the goal.
If you have any questions regarding the method of strategic planning outlined above or have any feedback please feel free to reach me on twitter @ronrivers_.


text:
End of Support: April 8, 2014
Windows XP support from Microsoft has ended as of April 8. That means that they will not provide anymore updates (Windows updates) for security flaws, system enhancements or the like for Windows and any Microsoft products being run under Windows XP.
Migrating from Windows XP
If you are going to migrate from Windows XP to a newer operating system, try looking for a computer with Windows 7 on it. Better yet, look for Windows 7 Professional (more options and tools). Try to steer clear of Windows 8 as this new operating can be a culture shock for someone who is comfortable with working in Windows XP.
Still Using Windows XP?
Note: Read the highlighted areas below on the status of Windows 7, 8 and the next OS 10.
Just because Microsoft has stopped providing support and updates to Windows XP (see sidebar) doesn't mean you have to stop using your computer. However, it does mean that it will be more vulnerable to threats from the Internet.
There are measures you can take to mitigate these threats, but at some point you will have to either upgrade your existing computer (not recommended) or replace your computer with one with a new operating system on it.
Upgrading an Existing Windows XP Computer
This method is not recommended because a newer operating system (Windows 7 or 8) may not run on your existing computer due to hardware incompatibility.
To test your computer for Windows 8.1 compatibility, go to Microsoft's Compatibility Center's website (opens a new window).
The reason a newer operating system may not work with your old computer is because of old technology with both your software programs you use or the hardware (and devices) you use.
Replacing Your XP Machine
This is by far the best choice, but it can be costly. Costly not only for the computer itself, but for the newer software programs you'll have to buy for it. Not all of your existing programs will work under Windows 7 or 8.
If you're going to move to Windows 8.1, you'll find there's a learning curve (a steep learning curve!). Microsoft has changed the familiar Start button interface with a panel layout (more favorable to touch panel devices). There is a way to get to the somewhat-similar old interface, but it can be confusing for most people and that interface isn't entirely like what we're all used to.
If you move to Windows 7, you'll find it very similar to Windows XP. Windows 7 will be around for awhile to come, but it will eventually be archived much like XP. Also, to get Windows 7, you're going to have to hunt for it from the manufacturers (Dell, HP, etc.). It's still available on new computers, it's just harder to find (Microsoft is really pushing Windows 8).
[December, 2014 Update: There will be no Windows 9. In Microsoft's words, "9 will be too closely associated with 8," which carry with it too many negative feelings. Windows 10 "technical preview" is being tested at this time. No release date has been specified, but Microsoft "promises" that it will be out in the latter part of 2015.]
[December, 2014 Previews: Search Youtube for Windows 10 (or click here) for some walk-throughs on the new OS. Skip the searching and watch this one (it's provides a pretty good overview).]
[Fall, 2014 Update: Windows 7 has become much easier to find (thanks to Windows 8) on new computers as Microsoft has made a commitment to abandon Windows 8 entirely. They will continue to support it, but it's going much the way Windows Millennium edition went. See this page for End of Support/Life details on Microsoft systems; scroll to the Windows section for OS's.]
[May, 2014 Update: A reputable "insider" to all things Microsoft says that the company is working on "Windows 9," to debut as early as the third quarter of 2014. There may be truth to this as Windows 8 has been so poorly received by the business community.]
Continue to Use Windows XP
If you're going to continue to use Windows XP, there are certain things that you should ensure you have on it for protection.
If the Windows XP computer is not attached (nor will it ever be in the future) to the Internet, then you can use it for as long as the hardware will hold out.
In reality, however, most computers are attached to the Internet. In this case you need to ensure you have at least all of the following software programs on your computer:
An anti-malware program
An anti-virus program
And a firewall
Anti-Malware Software
There are some free anti-malware programs available, just search for "antimalware software" (or click here for Google results). The one I like and recommend is from Malwarebytes (opens a new window). There's a free version available, but buy a registered copy of it (there are more options for you). You can buy it for home or business (they have a bulk licensing program). Pricing starts at around $24.95.
Do not use Microsoft's anti-malware products as they will not be updated due to end of support.
Whatever brand or version you currently use, check with the producers of it to ensure you will still be getting updates for it.
Like anti-malware software, there are many anti-virus software programs available for free. Again, just search for "antivirus software" (click here for Google results).
I like AVG (free or purchased). For the free version, see their website (opens a new window). You can also purchase a version of it as you go through the installation process. The purchased version gives you more protection tools; review their options to see what best fits your needs.
Again, do not use a Microsoft anti-virus product.
You should at least have Windows Firewall on 24/7. Better yet (to stay away from Microsoft products that are no longer supported), download a firewall software product. There are many free ones still available. Search for "firewall software" (click here for Google results).
For a solid free firewall, check out Zone Alarm's Firewall (opens new window). They have a version you can buy as well.
Microsoft's Internet Explorer is probably the most-susceptible web browser for attacks of all kinds. It's a buggy browser (and it's slower than other browsers as well). And now that Microsoft has stopped support for XP, their IE browser is going to be targeted more often in the future by hackers.
If you continue to use your Windows XP computer, it is imperative that you do not use Internet Explorer at all.
Firefox (new window) is a much more secure, faster, and ever-evolving browser that you can continue to use and it will receive updates when they are available. Google's Chrome (new window) is another choice, though for the technically inclined it doesn't offer a lot of configuration choices.
There are many more browsers besides these two alternatives. See Wikipedia's entry (new window) for a complete listing.
Once you have the three products on your computer, make absolutely certain that they are working properly and are receiving updates (new anti-virus and anti-malware definition files). Make certain your firewall is on. And do not use MS's Internet Explorer.
You can extend the life of your XP computer by following the steps above. It doesn't guarantee your computer won't be compromised from an outside threat, but it will lessen the likelihood.
If you or your company wants help in any of the above areas, configuring your XP computer(s), or in migrating to new computers, I'd be happy to assist you. Please send me an email (or call me at 207.221.0206) and we can discuss your objectives.
Verse Technologies • Portland, Maine | Copyright 2019


O happy day! Rejoice with us, fellow members of the extended Pearson family — This Is Us is officially back in production, and Milo Ventimiglia has the set photo to prove it. You didn't think a defective Crock-Pot could keep Jack away, did you?
On Wednesday, Ventimiglia tweeted a telling photo of his character behind the wheel of his car. "Here we go @NBCThisIsUs season 3," the actor wrote.
Bless the good people of This Is Us for making sure fans will get their fix of Papa Pearson, right? Following the heartbreaking (read: ugly-cry-inducing) revelations of season two, it remained unclear just how much we would see Ventimiglia in the series' future.
For now, though, it would appear everyone's favorite fictional dad will continue to serve up invaluable life lessons on the NBC tearjerker. In an interview with EW in February, creator and co-showrunner Dan Fogelman teased, "In many ways, Jack might be the character we still have the most to learn about, because he's kept so many secrets in this period before we've really known him."
And, for now, just knowing there's more Jack Pearson wisdom lying in wait is good enough for us.
Season three, which will premiere in the fall, first started filming on July 10. We know this because (praise be) the cast and crew could not contain their excitement, and it naturally spilled out onto social media.
First, series creator Dan Fogelman shared the "first scene" from the season. In it, Sterling K. Brown's Randall and Susan Kelechi Watson's Beth appear to be pretty darn excited about something, and we doubt it's just the orange juice Randall's drinking.
Later that day, Brown shared a short video from the set in which he and Watson are twerking. After watching the clip, you'll undoubtedly come to the same conclusion we did — you couldn't possibly like these two any more if you tried. They are American treasures.
Faithe Herman, who plays Brown and Watson's TV daughter Annie, also shared a photo from the set. "My sisters!" she captioned the adorable snapshot with her costars Eris Baker (Tess) and Lyric Ross (Déjà).
Go ahead and start crossing off the days on your calendar, friends. Sept. 25 will be here before we know it, and all will be right with the TV world again. But be forewarned: You'll still need to stockpile tissues. At least a few of This Is Us' beloved characters will experience bumps in the road.
"There will be a bit of an exploration of marriage with regards to Randall and Beth going through times that aren't all sunshine and rainbows," Brown hinted to People magazine in March. "And that's not to say that they are in danger of parting ways, but marriage is real and takes work."


Genus and Species: Ectocarpus sp.
Ectocarpus sp. A marine brown alga with branched thallus and zoospores. Each algae culture contains enough material for a class of 30 students. This culture requires a high light level of 200 to 400 foot-candles of fluorescent light 18 to 24" from the culture. Optimal medium: Alga-Gro® Seawater (item #153754). Optimum growth temperature: 22° C. Each order includes a FREE Carolina® Culturing Algae manual.


text:
ABOUT MALORY NYE
BOOKS BY MALORY NYE
LIST OF PUBLICATIONS (ON ACADEMIA.EDU)
RELIGION THE BASICS
MULTICULTURALISM AND MINORITY RELIGIONS IN BRITAIN
A PLACE FOR OUR GODS
THERE SHALL BE AN INDEPENDENT SCOTLAND
KING JAMES' COUNTER BLAST AGAINST TOBACCO
CURRENT EDITION OF RELIGION THE BASICS (2nd edition)
NEW EDITION OF RELIGION THE BASICS (3rd edition)
CULTURE AND RELIGION (journal)
RELIGION BITES PODCAST
RELIGION BITES BLOG
RELIGION BITES
HISTORY'S INK PODCAST
MALORY NYE: WRITER & ACADEMIC
ACADEMIC COACHING & SUPPORT
HIP003 Exploring the Reformations 1 (History's Ink podcast)
by Malory Nye | Aug 27, 2015 | History's Ink podcast, Podcasts | 0 comments
This is part one of my two part discussion of the protestant reformations.
To listen to part two, click here.
So, what were the protestant reformations, and why did they matter?
The sixteenth century not only saw the transformations resulting from the colonial exploitations of the 'new world'.
It was also a time when much of Europe became embroiled in the social, political, and ecclesiastical changes that we now call the reformation.
In the simple version of history, the story goes that the universal catholic church had grown degenerate and beyond reform, so groups of reformers agitated for — and eventually delivered — new Christian religious organisations that are now broadly seen as Protestant. These range from the English protestantism of the Anglican church (which retained bishops along with numerous other 'idolatrous' practices and beliefs, such as the mass, confession to a priest, sacraments, etc.), and in other places there was continental European Lutheranism, and Calvinism and its derivatives (in Scotland, Holland, and north America).
All these emerged out of the activism that took place from the early 1400s through to the end of the 1500s (and which have continued to develop in subsequent centuries). Throughout much of this, the assumption is that Catholicism needed to change, and it did not change quickly enough — either in terms of its structures and theology and also in terms of its political role within the societies of Europe.
Indeed, there had been longstanding pressures for change within the religious and church groups that are now labelled as medieval Catholicism. Some of this had occurred within the upper hierarchy of the church itself — not least the division of the papacy in the fourteenth century (from 1378 to 1417) with the conflict between the Avignon and the Roman popes.
There were also the various social, cultural, and religious movements that gave rise to new social formations and pressure groups — such as the crusading movements from 1096 onwards, and the rise of new 'mendicant' religious orders based on an active engagement with communities, such as the Franciscans and the Dominicans.
There were further reforming movements as early as the fourteenth century, most notably perhaps the Lollards of England (stemming from the Oxford scholar John Wycliffe) and the Hussite movement in Bohemia.
Thus in many respects, the reformation, when it happened in the early 1500s, was not as new or radical as we now think it to have been. What was radical was the way in which it changed the political complexion of Europe, and in particular how the power base of the Catholic church was drastically reduced, and indeed transformed.
The church had already had to live with a measure of religious pluralism within its sphere of influence, in as much as Bohemia had established itself as a distinct political entity from Rome. And the rival popes of Avignon and Rome had created a sense of diverse affiliations across the western continent.
But what happened is that the diversity erupted across nearly every Catholic state, and in some cases allegiance to the church and Catholic hegemony were lost altogether.
If you now want to listen to part two, click here.
http://media.blubrry.com/malorynye/p/traffic.libsyn.com/malorynye/HIP003_Reformations_1.mp3
HIP001 Introduction to the History's Ink podcast (History's Ink podcast)
HIP002 Empires and Encounters (History's Ink podcast)
HIP005 Islam and Europe (1): the creation of the idea of Europe part 1 (History's Ink podcast)
History's Ink podcast
by Malory Nye time to read: 3 min
History's Ink podcast	HIP004 Exploring the Reformations 2 (History'…
History's Ink podcast	HIP002 Empires and Encounters (History's Ink …


Sometime ago, Thierry Bestel made a new disk controller board based on the original oric microdisc design. Schematics and explanations about how to build this card have been published (in french) in the CEO Mag (numbers 147, 149 and 150).
In this folder you will also find the two BMP files that can be used to create the circuit board.
Concerning components, it seems they are still available at JMB Electronique.
-has someone (appart from the guys who made the reissue board) made this controller and is it ok?
I know the information might be somewhere on CEO mag but I don't have them anymore (even the electronic version).
Here an update about the status of the board.
Dear friends, where can I buy this board? Thanks!
Garrettimus wrote: Dear friends, where can I buy this board? Thanks!
Indeed as Jede wrote you need to build it.
Unfortunately, I'm not into Electronics.
If somebody manage to make a better pcb layout, I can host the files as well.
I have entered the Microdisc schematics (attached file), but I'm not sure if it's correct. I have checked it several times, comparing with known schematics on the net and with an old microdisc controller. But I have no success when I try to make a PCB. It is useful if someone help to find the mistake.


Watch Online/Download (Dailymotion) (HD 720p) Prithvi Vallabh 17th June 2018 Video Update watch Online . Bharat Ka Veer Putra - Maharana Pratap; 2025 - Jaane Kya .
Download prithviraj chauhan episode 34 video in hd 720p 1080p mp3 torrent mp4 watch online, .. Picktorrent: prithvi kannada - Free Search and Download Torrents at search engine. Download Music, TV Shows, Movies, Anime, Software and more.
Prithvi Kannada Movie . Movie Video Songs video Download, Prithvi Kannada Movie Video Songs Mp4 . Movie Video Songs HD video Download, Mp4 720p, .. Prithvi Putra Full Movie Hd In Hindi Download Feedback. a. Prithvi . Raajneeti 2010 Full Movie Download HD 720p, Raajneeti 2010 Movie Download, .
Veer (2010) Full Movie Free Download in 1080p HD.


NO child is to be left at the grounds without a parent or guardian present.
Athletes and spectators must check track is clear before crossing.
Spectators are not allowed within 1 metre of the outside running lanes of the 400m and 100m track and are to ensure they do not block the vision of the iPad recorder on the finishing lines of either track.
No children are allowed to play on the High Jumps mats, Tiny Tot equipment or climb the AFL score tower!!
No children are allowed to use any of the equipment at any time unless being supervised by an adult.
There are roped off "Out of Bound Areas" around the Javelin and Discus areas. Short cuts through these area are NOT allowed.
Children U6 to U17 must wear the correct Centre uniform and appropriate foot wear.
Spikes (U11 – U17) are to be worn only during the permitted events; removed immediatelyafter the event and carried in an appropriate bag.
Swearing and displays of bad sportsmanship are not permitted.
Smoking or alcohol are not allowed at the grounds.
Refer any issues with the behaviour of children or other parents to the Centre Manager ONLY.
Please abide by these rules and don not be upset when committee members or others advise you or your children of the rules.
Safety is our foremost concern!!!
From toe inprint on mat (or if board used - front of board) to a mark in the sand closet to the run up side of pit.


text:
Q: A warning message "No matching signal for" I'm using qt-ros based on qt4 to build applications.
But there is a problem that signal & slot does not work.
The vlc-qt library I'm using provides a signal function called played, as shown in the link below.
vlc-qt
I try to connect to the QMetaObject :: connectSlotsByName method by creating the appropriate slot function, but it does not work with the warning "No matching signal for".
in mainWindow.h
public Q_SLOTS:
    void on_vListPlayer_played();

and in mainWindow.cpp
void MainWindow::on_vListPlayer_played()
{
    ROS_INFO("player started!------------------------------");
}
...
MainWindow::MainWindow(int argc, char** argv, QWidget *parent)
: QMainWindow(parent)
, qnode(argc,argv)
{
    ui.setupUi(this); // Calling this incidentally connects all ui's triggers to on_...() callbacks in this class.

    // UI Init
    QWidget* mainWidget = new QWidget(this);
    this->setCentralWidget(mainWidget);
    mainWidget->setStyleSheet("background-color: black;");
    QVBoxLayout* mainLayout = new QVBoxLayout;
    mainLayout->setMargin(0);
    mainLayout->setSpacing(0);
    mainWidget->setLayout(mainLayout);

    m_vVideoWidget = new VlcWidgetVideo;
    mainLayout->addWidget(m_vVideoWidget);

    m_vInstance = new VlcInstance(VlcCommon::args(), this);
    m_vPlayer = new VlcMediaPlayer(m_vInstance);
    m_vPlayer->setVideoWidget(m_vVideoWidget);

    vListPlayer = new VlcMediaListPlayer(m_vPlayer, m_vInstance);
    QObject::connect(vListPlayer, SIGNAL(played()), this, SLOT(on_vListPlayer_played()));

    m_vVideoWidget->setMediaPlayer(m_vPlayer);

    m_vList = new VlcMediaList(m_vInstance);
    openVideoes(m_DataPath);

    vListPlayer->setMediaList(m_vList);
    vListPlayer->setPlaybackMode(Vlc::PlaybackMode::Repeat);

    vListPlayer->mediaPlayer()->play();
...
}

in MediaListPlayer.h (vlc-qt lib)
class VLCQT_CORE_EXPORT VlcMediaListPlayer : public QObject
{
    Q_OBJECT
......
public Q_SLOTS:
    void itemAt(int index);
    void next();
    void play();
    void previous();
    void stop();

Q_SIGNALS:

    void played();
    void nextItemSet(VlcMedia *media);
    void nextItemSet(libvlc_media_t *media);
    void stopped();

A: You are using Qt Designer, the generated code (that is called by ui.setupUi(this);) makes a call to QMetaObject::connectSlotsByName(QObject *object).
As per Qt documentation this attempts to connect all slots with a name matching the following pattern: void on_<object name>_<signal name>(<signal parameters>);
As the slot void on_vListPlayer_played() matches the pattern, an attempt to connect it is made. But fails because you do not have any object named vListPlayer.
In your case I would suggest you rename your slots so that they do not match the pattern and do not get connected automatically.


text:
package jsettlers.ai.highlevel;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Vector;

import java8.util.Comparators;
import jsettlers.ai.highlevel.AiPositions.AiPositionFilter;
import jsettlers.algorithms.construction.AbstractConstructionMarkableMap;
import jsettlers.common.CommonConstants;
import jsettlers.common.buildings.EBuildingType;
import jsettlers.common.buildings.IMaterialProductionSettings;
import jsettlers.common.landscape.ELandscapeType;
import jsettlers.common.landscape.EResourceType;
import jsettlers.common.map.partition.IPartitionData;
import jsettlers.common.mapobject.EMapObjectType;
import jsettlers.common.material.EMaterialType;
import jsettlers.common.movable.EDirection;
import jsettlers.common.movable.EMovableType;
import jsettlers.common.movable.IMovable;
import jsettlers.common.position.RelativePoint;
import jsettlers.common.position.ShortPoint2D;
import jsettlers.logic.buildings.Building;
import jsettlers.logic.buildings.WorkAreaBuilding;
import jsettlers.logic.map.grid.MainGrid;
import jsettlers.logic.map.grid.flags.FlagsGrid;
import jsettlers.logic.map.grid.landscape.LandscapeGrid;
import jsettlers.logic.map.grid.movable.MovableGrid;
import jsettlers.logic.map.grid.objects.AbstractHexMapObject;
import jsettlers.logic.map.grid.objects.ObjectsGrid;
import jsettlers.logic.map.grid.partition.PartitionsGrid;
import jsettlers.logic.movable.Movable;
import jsettlers.logic.player.Player;
import jsettlers.logic.player.Team;

import static jsettlers.common.buildings.EBuildingType.BIG_TOWER;
import static jsettlers.common.buildings.EBuildingType.CASTLE;
import static jsettlers.common.buildings.EBuildingType.LUMBERJACK;
import static jsettlers.common.buildings.EBuildingType.TOWER;
import static jsettlers.common.mapobject.EMapObjectType.STONE;
import static jsettlers.common.mapobject.EMapObjectType.TREE_ADULT;
import static jsettlers.common.mapobject.EMapObjectType.TREE_GROWING;
import static jsettlers.common.movable.EMovableType.SWORDSMAN_L1;
import static jsettlers.common.movable.EMovableType.SWORDSMAN_L2;
import static jsettlers.common.movable.EMovableType.SWORDSMAN_L3;

/**
 * This class calculates statistics based on the grids which are used by highlevel and lowlevel KI. The statistics are calculated once and read
 * multiple times within one AiExecutor step triggerd by the game clock.
 *
 * @author codingberlin
 */
public class AiStatistics {

	private static final EBuildingType[] REFERENCE_POINT_FINDER_BUILDING_ORDER = {LUMBERJACK, TOWER, BIG_TOWER, CASTLE};
	public static final  int             NEAR_STONE_DISTANCE                   = 5;

	private final Queue<Building>                  buildings;
	private final PlayerStatistic[]                playerStatistics;
	private final Map<EMapObjectType, AiPositions> sortedCuttableObjectsInDefaultPartition;
	private final AiPositions[]                    sortedResourceTypes;
	private final AiPositions                      sortedRiversInDefaultPartition;
	private final MainGrid                         mainGrid;
	private final LandscapeGrid                    landscapeGrid;
	private final ObjectsGrid                      objectsGrid;
	private final PartitionsGrid                   partitionsGrid;
	private final MovableGrid                      movableGrid;
	private final FlagsGrid                        flagsGrid;
	private final AbstractConstructionMarkableMap  constructionMarksGrid;
	private final AiMapInformation                 aiMapInformation;
	private final long[]                           resourceCountInDefaultPartition;

	public AiStatistics(MainGrid mainGrid) {
		this.buildings = Building.getAllBuildings();
		this.mainGrid = mainGrid;
		this.landscapeGrid = mainGrid.getLandscapeGrid();
		this.objectsGrid = mainGrid.getObjectsGrid();
		this.partitionsGrid = mainGrid.getPartitionsGrid();
		this.movableGrid = mainGrid.getMovableGrid();
		this.flagsGrid = mainGrid.getFlagsGrid();
		this.constructionMarksGrid = mainGrid.getConstructionMarksGrid();
		this.playerStatistics = new PlayerStatistic[mainGrid.getGuiInputGrid().getNumberOfPlayers()];
		this.aiMapInformation = new AiMapInformation(partitionsGrid, landscapeGrid);
		;
		for (byte i = 0; i < mainGrid.getGuiInputGrid().getNumberOfPlayers(); i++) {
			this.playerStatistics[i] = new PlayerStatistic();
		}
		sortedRiversInDefaultPartition = new AiPositions();
		sortedCuttableObjectsInDefaultPartition = new HashMap<EMapObjectType, AiPositions>();
		sortedResourceTypes = new AiPositions[EResourceType.VALUES.length];
		for (int i = 0; i < sortedResourceTypes.length; i++) {
			sortedResourceTypes[i] = new AiPositions();
		}
		resourceCountInDefaultPartition = new long[EResourceType.VALUES.length];
	}

	public byte getFlatternEffortAtPositionForBuilding(final ShortPoint2D position, final EBuildingType buildingType) {
		byte flattenEffort = constructionMarksGrid.calculateConstructionMarkValue(position.x, position.y, buildingType.getProtectedTiles());
		if (flattenEffort == -1) {
			return Byte.MAX_VALUE;
		}
		return flattenEffort;
	}

	public void updateStatistics() {
		for (PlayerStatistic playerStatistic : playerStatistics) {
			playerStatistic.clearAll();
		}
		sortedRiversInDefaultPartition.clear();
		sortedCuttableObjectsInDefaultPartition.clear();
		for (AiPositions xCoordinatesMap : sortedResourceTypes) {
			xCoordinatesMap.clear();
		}

		updateBuildingStatistics();
		updateMapStatistics();
	}

	private void updateBuildingStatistics() {
		for (Building building : buildings) {
			PlayerStatistic playerStatistic = playerStatistics[building.getPlayerId()];
			EBuildingType type = building.getBuildingType();
			updateNumberOfNotFinishedBuildings(playerStatistic, building);
			updateBuildingsNumbers(playerStatistic, building, type);
			updateBuildingPositions(playerStatistic, type, building);
		}
	}

	private void updateBuildingPositions(PlayerStatistic playerStatistic, EBuildingType type, Building building) {
		if (!playerStatistic.buildingPositions.containsKey(type)) {
			playerStatistic.buildingPositions.put(type, new ArrayList<ShortPoint2D>());
		}
		playerStatistic.buildingPositions.get(type).add(building.getPos());

		if (type == EBuildingType.WINEGROWER) {
			playerStatistic.wineGrowerWorkAreas.add(((WorkAreaBuilding) building).getWorkAreaCenter());
		} else if (type == EBuildingType.FARM) {
			playerStatistic.farmWorkAreas.add(((WorkAreaBuilding) building).getWorkAreaCenter());
		}
	}

	private void updateBuildingsNumbers(PlayerStatistic playerStatistic, Building building, EBuildingType type) {
		playerStatistic.totalBuildingsNumbers[type.ordinal]++;
		if (building.getStateProgress() == 1f) {
			playerStatistic.buildingsNumbers[type.ordinal]++;
		}
	}

	private void updateNumberOfNotFinishedBuildings(PlayerStatistic playerStatistic, Building building) {
		playerStatistic.numberOfTotalBuildings++;
		if (building.getStateProgress() < 1f) {
			playerStatistic.numberOfNotFinishedBuildings++;
			if (building.getBuildingType().isMilitaryBuilding()) {
				playerStatistic.numberOfNotOccupiedMilitaryBuildings++;
			}
		} else if (building.getBuildingType().isMilitaryBuilding()) {
			if (building.isOccupied()) {
				playerStatistic.isAlive = true;
			} else {
				playerStatistic.numberOfNotOccupiedMilitaryBuildings++;
			}
		}
	}

	private void updateMapStatistics() {
		aiMapInformation.clear();
		updatePartitionIdsToBuildOn();
		short width = mainGrid.getWidth();
		short height = mainGrid.getHeight();
		Arrays.fill(resourceCountInDefaultPartition, 0);

		for (short x = 0; x < width; x++) {
			for (short y = 0; y < height; y++) {
				Player player = partitionsGrid.getPlayerAt(x, y);
				int mapInformationPlayerId;
				if (player != null) {
					mapInformationPlayerId = player.playerId;
				} else {
					mapInformationPlayerId = aiMapInformation.resourceAndGrassCount.length - 1;
				}
				if (landscapeGrid.getResourceAmountAt(x, y) > 0) {
					EResourceType resourceType = landscapeGrid.getResourceTypeAt(x, y);
					sortedResourceTypes[resourceType.ordinal].addNoCollission(x, y);
					if (resourceType != EResourceType.FISH) {
						aiMapInformation.resourceAndGrassCount[mapInformationPlayerId][resourceType.ordinal]++;
						if (player != null) {
							playerStatistics[player.playerId].resourceCount[resourceType.ordinal]++;
						} else {
							resourceCountInDefaultPartition[resourceType.ordinal]++;
						}
					} else if (landscapeGrid.getLandscapeTypeAt(x, y) == ELandscapeType.WATER1) {
						int fishMapInformationPlayerId = mapInformationPlayerId;
						if (mapInformationPlayerId == aiMapInformation.resourceAndGrassCount.length - 1) {
							fishMapInformationPlayerId = mapInformationPlayerIdOfPosition((short) (x + 3), y);
							if (fishMapInformationPlayerId == aiMapInformation.resourceAndGrassCount.length - 1) {
								fishMapInformationPlayerId = mapInformationPlayerIdOfPosition((short) (x - 3), y);
								if (fishMapInformationPlayerId == aiMapInformation.resourceAndGrassCount.length - 1) {
									fishMapInformationPlayerId = mapInformationPlayerIdOfPosition(x, (short) (y + 3));
									if (fishMapInformationPlayerId == aiMapInformation.resourceAndGrassCount.length - 1) {
										fishMapInformationPlayerId = mapInformationPlayerIdOfPosition(x, (short) (y - 3));
									}
								}
							}
						}
						aiMapInformation.resourceAndGrassCount[fishMapInformationPlayerId][resourceType.ordinal]++;
						if (fishMapInformationPlayerId == aiMapInformation.resourceAndGrassCount.length - 1) {
							resourceCountInDefaultPartition[resourceType.ordinal]++;
						} else {
							playerStatistics[fishMapInformationPlayerId].resourceCount[resourceType.ordinal]++;
						}
					}
				}
				if (landscapeGrid.getLandscapeTypeAt(x, y).isGrass()) {
					aiMapInformation.resourceAndGrassCount[mapInformationPlayerId][aiMapInformation.GRASS_INDEX]++;
				}
				Movable movable = movableGrid.getMovableAt(x, y);
				if (movable != null) {
					byte movablePlayerId = movable.getPlayerId();
					PlayerStatistic movablePlayerStatistic = playerStatistics[movablePlayerId];
					EMovableType movableType = movable.getMovableType();
					if (!movablePlayerStatistic.movablePositions.containsKey(movableType)) {
						movablePlayerStatistic.movablePositions.put(movableType, new Vector<ShortPoint2D>());
					}
					movablePlayerStatistic.movablePositions.get(movableType).add(movable.getPos());
					if (player != null && player.playerId != movablePlayerId && movableType.isSoldier() && getEnemiesOf(player.playerId).contains(movablePlayerId)) {
						playerStatistics[player.playerId].enemyTroopsInTown.addNoCollission(movable.getPos().x, movable.getPos().y);
					}
				}
				if (player == null) {
					updateFreeLand(x, y);
				} else if (partitionsGrid.getPartitionIdAt(x, y) == playerStatistics[player.playerId].partitionIdToBuildOn) {
					updatePlayerLand(x, y, player);
				}
				if (player != null && isBorderOf(x, y, player.playerId)) {
					if (partitionsGrid.getPartitionIdAt(x, y) == playerStatistics[player.playerId].partitionIdToBuildOn) {
						playerStatistics[player.playerId].border.add(x, y);
					} else {
						playerStatistics[player.playerId].otherPartitionBorder.add(x, y);
					}
				}
			}
		}
	}

	private int mapInformationPlayerIdOfPosition(short x, short y) {
		if (!mainGrid.isInBounds(x, y)) {
			return aiMapInformation.resourceAndGrassCount.length - 1;
		}

		byte playerId = mainGrid.getPartitionsGrid().getPlayerIdAt(x, y);
		if (playerId == -1) {
			return aiMapInformation.resourceAndGrassCount.length - 1;
		}

		return playerId;
	}

	private boolean isBorderOf(int x, int y, byte playerId) {
		return isIngestibleBy(x + 1, y + 1, playerId) || isIngestibleBy(x + 1, y - 1, playerId) || isIngestibleBy(x - 1, y + 1, playerId) || isIngestibleBy(x - 1, y - 1, playerId);
	}

	private boolean isIngestibleBy(int x, int y, byte playerId) {
		return mainGrid.isInBounds(x, y) && partitionsGrid.getPlayerIdAt(x, y) != playerId && !mainGrid.getLandscapeGrid().getLandscapeTypeAt(x, y).isBlocking && !partitionsGrid.isEnforcedByTower(x,
																																																	y);
	}

	private void updatePlayerLand(short x, short y, Player player) {
		byte playerId = player.playerId;
		PlayerStatistic playerStatistic = playerStatistics[playerId];
		if (mainGrid.getFlagsGrid().isProtected(x, y)) {
			AbstractHexMapObject o = objectsGrid.getObjectsAt(x, y);
			if (o != null) {
				if (o.hasCuttableObject(STONE) && isCuttableByPlayer(x, y, player.playerId)) {
					playerStatistic.stones.addNoCollission(x, y);
				} else if (o.hasMapObjectTypes(TREE_GROWING, TREE_ADULT) && isCuttableByPlayer(x, y, player.playerId)) {
					playerStatistic.trees.addNoCollission(x, y);
				}
			}
		} else {
			playerStatistic.landToBuildOn.addNoCollission(x, y);
		}
		ELandscapeType landscape = landscapeGrid.getLandscapeTypeAt(x, y);
		if (landscape.isRiver()) {
			playerStatistic.rivers.addNoCollission(x, y);
		}
		if (objectsGrid.hasMapObjectType(x, y, EMapObjectType.WINE_GROWING, EMapObjectType.WINE_HARVESTABLE)) {
			playerStatistic.wineCount++;
		}
	}

	private boolean isCuttableByPlayer(short x, short y, byte playerId) {
		byte[] playerIds = new byte[4];
		playerIds[0] = partitionsGrid.getPlayerIdAt(x - 2, y - 2);
		playerIds[1] = partitionsGrid.getPlayerIdAt(x - 2, y + 2);
		playerIds[2] = partitionsGrid.getPlayerIdAt(x + 2, y - 2);
		playerIds[3] = partitionsGrid.getPlayerIdAt(x + 2, y + 2);
		for (byte positionPlayerId : playerIds) {
			if (positionPlayerId != playerId) {
				return false;
			}
		}
		return true;
	}

	private void updateFreeLand(short x, short y) {
		if (objectsGrid.hasCuttableObject(x, y, TREE_ADULT)) {
			AiPositions trees = sortedCuttableObjectsInDefaultPartition.get(TREE_ADULT);
			if (trees == null) {
				trees = new AiPositions();
				sortedCuttableObjectsInDefaultPartition.put(TREE_ADULT, trees);
			}
			trees.addNoCollission(x, y);
		}
		if (objectsGrid.hasCuttableObject(x, y, STONE)) {
			AiPositions stones = sortedCuttableObjectsInDefaultPartition.get(STONE);
			if (stones == null) {
				stones = new AiPositions();
				sortedCuttableObjectsInDefaultPartition.put(STONE, stones);
			}
			stones.addNoCollission(x, y);
			updateNearStones(x, y);
		}
		ELandscapeType landscape = landscapeGrid.getLandscapeTypeAt(x, y);
		if (landscape.isRiver()) {
			sortedRiversInDefaultPartition.addNoCollission(x, y);
		}
	}

	private void updateNearStones(short x, short y) {
		for (EDirection dir : EDirection.VALUES) {
			int currX = dir.getNextTileX(x, NEAR_STONE_DISTANCE);
			int currY = dir.getNextTileY(y, NEAR_STONE_DISTANCE);
			if (mainGrid.isInBounds(currX, currY)) {
				byte playerId = partitionsGrid.getPlayerIdAt(currX, currY);
				if (playerId != -1 && hasPlayersBlockedPartition(playerId, x, y)) {
					playerStatistics[playerId].stonesNearBy.addNoCollission(x, y);
				}
			}
		}
	}

	private void updatePartitionIdsToBuildOn() {
		for (byte playerId = 0; playerId < playerStatistics.length; playerId++) {
			ShortPoint2D referencePosition = null;
			for (EBuildingType referenceFinderBuildingType : REFERENCE_POINT_FINDER_BUILDING_ORDER) {
				if (getTotalNumberOfBuildingTypeForPlayer(referenceFinderBuildingType, playerId) > 0) {
					referencePosition = getBuildingPositionsOfTypeForPlayer(referenceFinderBuildingType, playerId).get(0);
					break;
				}
			}

			if (referencePosition != null) {
				PlayerStatistic playerStatistic = playerStatistics[playerId];
				playerStatistic.referencePosition = referencePosition;
				playerStatistic.partitionIdToBuildOn = partitionsGrid.getPartitionIdAt(referencePosition.x, referencePosition.y);
				playerStatistic.blockedPartitionId = landscapeGrid.getBlockedPartitionAt(referencePosition.x, referencePosition.y);
				playerStatistic.materialProduction = partitionsGrid.getMaterialProductionAt(referencePosition.x, referencePosition.y);
				playerStatistic.materials = partitionsGrid.getPartitionDataForManagerAt(referencePosition.x, referencePosition.y);
			}
		}
	}

	public Building getBuildingAt(ShortPoint2D point) {
		return (Building) objectsGrid.getMapObjectAt(point.x, point.y, EMapObjectType.BUILDING);
	}

	public ShortPoint2D getNearestResourcePointForPlayer(ShortPoint2D point, EResourceType resourceType, byte playerId, int searchDistance, AiPositionFilter filter) {
		return getNearestPointInDefaultPartitionOutOfSortedMap(point, sortedResourceTypes[resourceType.ordinal], playerId, searchDistance, filter);
	}

	public ShortPoint2D getNearestFishPointForPlayer(ShortPoint2D point, final byte playerId, int currentNearestPointDistance) {
		return sortedResourceTypes[EResourceType.FISH.ordinal].getNearestPoint(point, currentNearestPointDistance, new AiPositionFilter() {
			@Override
			public boolean contains(int x, int y) {
				return isPlayerThere(x + 3, y) || isPlayerThere(x - 3, y) || isPlayerThere(x, y + 3) || isPlayerThere(x, y - 3);
			}

			private boolean isPlayerThere(int x, int y) {
				return mainGrid.isInBounds(x, y) && partitionsGrid.getPartitionAt(x, y).getPlayerId() == playerId;
			}
		});
	}

	public ShortPoint2D getNearestResourcePointInDefaultPartitionFor(ShortPoint2D point, EResourceType resourceType, int currentNearestPointDistance, AiPositionFilter filter) {
		return getNearestResourcePointForPlayer(point, resourceType, (byte) -1, currentNearestPointDistance, filter);
	}

	public ShortPoint2D getNearestCuttableObjectPointInDefaultPartitionFor(ShortPoint2D point, EMapObjectType cuttableObject, int searchDistance, AiPositionFilter filter) {
		return getNearestCuttableObjectPointForPlayer(point, cuttableObject, searchDistance, (byte) -1, filter);
	}

	public ShortPoint2D getNearestCuttableObjectPointForPlayer(ShortPoint2D point, EMapObjectType cuttableObject, int searchDistance, byte playerId, AiPositionFilter filter) {
		AiPositions sortedResourcePoints = sortedCuttableObjectsInDefaultPartition.get(cuttableObject);
		if (sortedResourcePoints == null) {
			return null;
		}

		return getNearestPointInDefaultPartitionOutOfSortedMap(point, sortedResourcePoints, playerId, searchDistance, filter);
	}

	private ShortPoint2D getNearestPointInDefaultPartitionOutOfSortedMap(ShortPoint2D point, AiPositions sortedPoints, final byte playerId, int searchDistance, final AiPositionFilter filter) {
		return sortedPoints.getNearestPoint(point, searchDistance, new AiPositions.CombinedAiPositionFilter(new AiPositionFilter() {
			@Override
			public boolean contains(int x, int y) {
				return partitionsGrid.getPartitionAt(x, y).getPlayerId() == playerId;
			}
		}, filter));
	}

	public boolean hasPlayersBlockedPartition(byte playerId, int x, int y) {
		return landscapeGrid.getBlockedPartitionAt(x, y) == playerStatistics[playerId].blockedPartitionId;
	}

	public List<ShortPoint2D> getMovablePositionsByTypeForPlayer(EMovableType movableType, byte playerId) {
		if (!playerStatistics[playerId].movablePositions.containsKey(movableType)) {
			return Collections.emptyList();
		}
		return playerStatistics[playerId].movablePositions.get(movableType);
	}

	public int getTotalNumberOfBuildingTypeForPlayer(EBuildingType type, byte playerId) {
		return playerStatistics[playerId].totalBuildingsNumbers[type.ordinal];
	}

	public int getTotalWineCountForPlayer(byte playerId) {
		return playerStatistics[playerId].wineCount;
	}

	public int getNumberOfBuildingTypeForPlayer(EBuildingType type, byte playerId) {
		return playerStatistics[playerId].buildingsNumbers[type.ordinal];
	}

	public int getNumberOfNotFinishedBuildingsForPlayer(byte playerId) {
		return playerStatistics[playerId].numberOfNotFinishedBuildings;
	}

	public int getNumberOfTotalBuildingsForPlayer(byte playerId) {
		return playerStatistics[playerId].numberOfTotalBuildings;
	}

	public List<ShortPoint2D> getBuildingPositionsOfTypeForPlayer(EBuildingType type, byte playerId) {
		if (!playerStatistics[playerId].buildingPositions.containsKey(type)) {
			return Collections.emptyList();
		}
		return playerStatistics[playerId].buildingPositions.get(type);
	}

	public List<ShortPoint2D> getBuildingPositionsOfTypesForPlayer(EnumSet<EBuildingType> buildingTypes, byte playerId) {
		List<ShortPoint2D> buildingPositions = new Vector<ShortPoint2D>();
		for (EBuildingType buildingType : buildingTypes) {
			buildingPositions.addAll(getBuildingPositionsOfTypeForPlayer(buildingType, playerId));
		}
		return buildingPositions;
	}

	public AiPositions getStonesForPlayer(byte playerId) {
		return playerStatistics[playerId].stones;
	}

	public AiPositions getTreesForPlayer(byte playerId) {
		return playerStatistics[playerId].trees;
	}

	public AiPositions getLandForPlayer(byte playerId) {
		return playerStatistics[playerId].landToBuildOn;
	}

	public boolean blocksWorkingAreaOfOtherBuilding(ShortPoint2D point, byte playerId, EBuildingType buildingType) {

		for (ShortPoint2D workAreaCenter : playerStatistics[playerId].wineGrowerWorkAreas) {
			for (RelativePoint blockedPoint : buildingType.getBlockedTiles()) {
				if (workAreaCenter.getOnGridDistTo(blockedPoint.calculatePoint(point)) <= EBuildingType.WINEGROWER.getWorkRadius()) {
					return true;
				}
			}
		}

		for (ShortPoint2D workAreaCenter : playerStatistics[playerId].farmWorkAreas) {
			for (RelativePoint blockedPoint : buildingType.getBlockedTiles()) {
				if (workAreaCenter.getOnGridDistTo(blockedPoint.calculatePoint(point)) <= EBuildingType.FARM.getWorkRadius()) {
					return true;
				}
			}
		}

		return false;
	}

	public boolean southIsFreeForPlayer(ShortPoint2D point, byte playerId) {
		return pointIsFreeForPlayer(point.x, (short) (point.y + 12), playerId) && pointIsFreeForPlayer((short) (point.x + 5),
																									   (short) (point.y + 12),
																									   playerId) && pointIsFreeForPlayer((short) (point.x + 10),
																																		 (short) (point.y + 12),
																																		 playerId) && pointIsFreeForPlayer(point.x,
																																										   (short) (point.y + 6),
																																										   playerId) &&
				pointIsFreeForPlayer(
				(short) (point.x + 5),
				(short) (point.y + 6),
				playerId) && pointIsFreeForPlayer((short) (point.x + 10), (short) (point.y + 6), playerId);
	}

	private boolean pointIsFreeForPlayer(short x, short y, byte playerId) {
		return mainGrid.isInBounds(x, y) && partitionsGrid.getPlayerIdAt(x, y) == playerId && !objectsGrid.isBuildingAt(x, y) && !flagsGrid.isProtected(x, y) && landscapeGrid.isHexAreaOfType(x,
																																															   y,
																																															   0,
																																															   2,
																																															   ELandscapeType.GRASS,
																																															   ELandscapeType.EARTH);
	}

	public boolean wasFishNearByAtGameStart(ShortPoint2D position) {
		return aiMapInformation.wasFishNearByAtGameStart.get(position.x * partitionsGrid.getWidth() + position.y);
	}

	public IMovable getNearestSwordsmanOf(ShortPoint2D targetPosition, byte playerId) {
		List<ShortPoint2D> soldierPositions = getMovablePositionsByTypeForPlayer(SWORDSMAN_L3, playerId);
		if (soldierPositions.size() == 0) {
			soldierPositions = getMovablePositionsByTypeForPlayer(SWORDSMAN_L2, playerId);
		}
		if (soldierPositions.size() == 0) {
			soldierPositions = getMovablePositionsByTypeForPlayer(SWORDSMAN_L1, playerId);
		}
		if (soldierPositions.size() == 0) {
			return null;
		}

		ShortPoint2D nearestSoldierPosition = detectNearestPointFromList(targetPosition, soldierPositions);
		return movableGrid.getMovableAt(nearestSoldierPosition.x, nearestSoldierPosition.y);
	}

	public static ShortPoint2D detectNearestPointFromList(ShortPoint2D referencePoint, List<ShortPoint2D> points) {
		if (points.isEmpty()) {
			return null;
		}

		return detectNearestPointsFromList(referencePoint, points, 1).get(0);
	}

	public static List<ShortPoint2D> detectNearestPointsFromList(final ShortPoint2D referencePoint, List<ShortPoint2D> points, int amountOfPointsToDetect) {
		if (amountOfPointsToDetect <= 0) {
			return Collections.emptyList();
		}

		if (points.size() <= amountOfPointsToDetect) {
			return points;
		}

		Collections.sort(points, Comparators.comparingInt(o -> o.getOnGridDistTo(referencePoint)));

		return points.subList(0, amountOfPointsToDetect);
	}

	public int getNumberOfMaterialTypeForPlayer(EMaterialType type, byte playerId) {
		if (playerStatistics[playerId].materials == null) {
			return 0;
		}

		return playerStatistics[playerId].materials.getAmountOf(type);
	}

	public MainGrid getMainGrid() {
		return mainGrid;
	}

	public ShortPoint2D getNearestRiverPointInDefaultPartitionFor(ShortPoint2D referencePoint, int searchDistance, AiPositionFilter filter) {
		return getNearestPointInDefaultPartitionOutOfSortedMap(referencePoint, sortedRiversInDefaultPartition, (byte) -1, searchDistance, filter);
	}

	public int getNumberOfNotFinishedBuildingTypesForPlayer(EBuildingType buildingType, byte playerId) {
		return getTotalNumberOfBuildingTypeForPlayer(buildingType, playerId) - getNumberOfBuildingTypeForPlayer(buildingType, playerId);
	}

	public AiPositions getRiversForPlayer(byte playerId) {
		return playerStatistics[playerId].rivers;
	}

	public List<Byte> getEnemiesOf(byte playerId) {
		List<Byte> enemies = new ArrayList<Byte>();
		for (Team team : partitionsGrid.getTeams()) {
			if (!team.isMember(playerId)) {
				for (Player player : team.getMembers()) {
					enemies.add(player.playerId);
				}
			}
		}
		return enemies;
	}

	public List<Byte> getAliveEnemiesOf(byte playerId) {
		List<Byte> aliveEnemies = new ArrayList<>();
		for (byte enemyId : getEnemiesOf(playerId)) {
			if (isAlive(enemyId)) {
				aliveEnemies.add(enemyId);
			}
		}
		return aliveEnemies;
	}

	public ShortPoint2D calculateAveragePointFromList(List<ShortPoint2D> points) {
		int averageX = 0;
		int averageY = 0;
		for (ShortPoint2D point : points) {
			averageX += point.x;
			averageY += point.y;
		}
		return new ShortPoint2D(averageX / points.size(), averageY / points.size());
	}

	public AiPositions getEnemiesInTownOf(byte playerId) {
		return playerStatistics[playerId].enemyTroopsInTown;
	}

	public IMaterialProductionSettings getMaterialProduction(byte playerId) {
		return playerStatistics[playerId].materialProduction;
	}

	public ShortPoint2D getPositionOfPartition(byte playerId) {
		return playerStatistics[playerId].referencePosition;
	}

	public AiPositions getBorderOf(byte playerId) {
		return playerStatistics[playerId].border;
	}

	public AiPositions getOtherPartitionBorderOf(byte playerId) {
		return playerStatistics[playerId].otherPartitionBorder;
	}

	public boolean isAlive(byte playerId) {
		return playerStatistics[playerId].isAlive;
	}

	public AiMapInformation getAiMapInformation() {
		return aiMapInformation;
	}

	public long resourceCountInDefaultPartition(EResourceType resourceType) {
		return resourceCountInDefaultPartition[resourceType.ordinal];
	}

	public long resourceCountOfPlayer(EResourceType resourceType, byte playerId) {
		return playerStatistics[playerId].resourceCount[resourceType.ordinal];
	}

	public List<ShortPoint2D> threatenedBorderOf(byte playerId) {
		if (playerStatistics[playerId].threatenedBorder == null) {
			AiPositions borderOfOtherPlayers = new AiPositions();
			for (byte otherPlayerId = 0; otherPlayerId < playerStatistics.length; otherPlayerId++) {
				if (otherPlayerId == playerId || !isAlive(otherPlayerId)) {
					continue;
				}

				borderOfOtherPlayers.addAllNoCollision(getBorderOf(otherPlayerId));
			}
			playerStatistics[playerId].threatenedBorder = new ArrayList<>();
			AiPositions myBorder = getBorderOf(playerId);
			for (int i = 0; i < myBorder.size(); i += 10) {
				ShortPoint2D myBorderPosition = myBorder.get(i);
				if (mainGrid.getPartitionsGrid().getTowerCountAt(myBorderPosition.x, myBorderPosition.y) == 0 && borderOfOtherPlayers.getNearestPoint(myBorderPosition,
																																					  CommonConstants.TOWER_RADIUS) != null) {
					playerStatistics[playerId].threatenedBorder.add(myBorderPosition);
				}
			}
		}
		return playerStatistics[playerId].threatenedBorder;
	}

	public AiPositions getStonesNearBy(byte playerId) {
		return playerStatistics[playerId].stonesNearBy;
	}

	private static class PlayerStatistic {
		ShortPoint2D referencePosition;
		boolean      isAlive;
		final int[]                                  totalBuildingsNumbers = new int[EBuildingType.NUMBER_OF_BUILDINGS];
		final int[]                                  buildingsNumbers      = new int[EBuildingType.NUMBER_OF_BUILDINGS];
		final Map<EBuildingType, List<ShortPoint2D>> buildingPositions     = new HashMap<EBuildingType, List<ShortPoint2D>>();
		final List<ShortPoint2D>                     farmWorkAreas         = new Vector<ShortPoint2D>();
		final List<ShortPoint2D>                     wineGrowerWorkAreas   = new Vector<ShortPoint2D>();
		short partitionIdToBuildOn;
		public short blockedPartitionId;
		IPartitionData materials;
		final AiPositions                           landToBuildOn        = new AiPositions();
		final AiPositions                           border               = new AiPositions();
		final AiPositions                           otherPartitionBorder = new AiPositions();
		final Map<EMovableType, List<ShortPoint2D>> movablePositions     = new HashMap<EMovableType, List<ShortPoint2D>>();
		final AiPositions                           stones               = new AiPositions();
		final AiPositions                           stonesNearBy         = new AiPositions();
		final AiPositions                           trees                = new AiPositions();
		final AiPositions                           rivers               = new AiPositions();
		final AiPositions                           enemyTroopsInTown    = new AiPositions();
		List<ShortPoint2D> threatenedBorder;
		final long[] resourceCount = new long[EResourceType.VALUES.length];
		int                         numberOfNotFinishedBuildings;
		int                         numberOfTotalBuildings;
		int                         numberOfNotOccupiedMilitaryBuildings;
		int                         wineCount;
		IMaterialProductionSettings materialProduction;

		PlayerStatistic() {
			clearIntegers();
		}

		public void clearAll() {
			isAlive = false;
			materials = null;
			buildingPositions.clear();
			enemyTroopsInTown.clear();
			stones.clear();
			stonesNearBy.clear();
			trees.clear();
			rivers.clear();
			landToBuildOn.clear();
			border.clear();
			otherPartitionBorder.clear();
			movablePositions.clear();
			farmWorkAreas.clear();
			wineGrowerWorkAreas.clear();
			threatenedBorder = null;
			clearIntegers();
		}

		private void clearIntegers() {
			Arrays.fill(totalBuildingsNumbers, 0);
			Arrays.fill(buildingsNumbers, 0);
			Arrays.fill(resourceCount, 0);
			numberOfNotFinishedBuildings = 0;
			numberOfTotalBuildings = 0;
			numberOfNotOccupiedMilitaryBuildings = 0;
			wineCount = 0;
			partitionIdToBuildOn = Short.MIN_VALUE;
			blockedPartitionId = Short.MIN_VALUE;
		}
	}

}

redpajama_set_name: RedPajamaGithub


Truck, van and 4x4 accessories for every make and model of vehicle, or at least nearly every make and model!
We've been steadily growing over the last number of years, building a strong reputation of quality products at excellent value for money.
Truck, van and 4x4 accessories for every make and model.
Highest quality 304 grade stainless steel used in all our bars.
© 2015 Bragan. All Rights Reserved.


Milène Guermont est une magicienne, une magicienne du béton.
Passez devant le mur d'une école muette et vous entendez des rires d'enfants.
Laissez courir votre main sur une belle table, le bruit de la mer vous envahit.
En fait ... reine de la métamorphose du béton, ce magnifique matériau qui inquiète parfois par sa masse fabuleuse, elle adoucit, elle donne une voix, qui finalement devient peu à peu un langage.
On peut dire qu'elle a ouvert un chemin poétique qui se superpose à celui de la forme dont nous architectes, nous maitrisons le destin.
She believes her art should gratify the curious hand with a direct experience of the passion that she puts into each of her works.
Guermont's dual background in engineering and fine-arts provides an ideal platform for developing innovative concepts and materials. Her artworks in "Polysensual Concrete", for example, are designed to be interactive. Objects made of "Craters Concrete" are characterized by dramatic surface relief, created when the artist manipulates the material at the moment of crystallization. And finally, her "Colored Engraving" process permits permanent "writing" on the surface of concrete slabs.
The genesis of Guermont's interest in the artistic possibilities of concrete stems from a visit to Switzerland more than a decade ago when the sound of the sea emerged from a concrete wall she was touching, a classic example of synesthesia (stimulation of one sense provoking sensation in another). Since then, Guermont has sought to re-create through her work similar moments of discovery for others. She takes on faith that each of us is naturally curious for contact, interaction and experience, and no less so when it comes to art. In the typical museum setting, however, art lovers are frustrated in their desire for something to touch. And Guermont's work rewards the tactilely curious on more than one sensory level: when touched, many of her pieces respond with light and sound depending on the magnetic field of the person who is touching.


"A field, however fertile, cannot be fruitful without cultivation; neither can a mind without learning."
THE GATE COACH takes pride in creating a vibrant and dynamic workplace which is fueled by ingenuity and innovation. Innovations can flow from anywhere in the organization, and we know the next big idea could be yours. From developing cutting-edge technology and products to collaborating with exceptional partners and serving our communities, THE GATE COACH is redefining the true meaning of growth and development. We believe that the growth and success of our business is directly linked to the growth and performance of our employees, and executives play a key role in making this happen. As an employee, you can expect clear and consistent communication with your executives about job expectations and the effect of your contributions on THE GATE COACH strategic imperatives. We strive to ensure that our employees clearly understand the role they play in Yoctel's success. By combining the environment with the drive, initiative, and passion of talented employees, we can continue to work toward our mission of revolutionizing how the world engages with ideas and information.
Operating with integrity, being ethical, and treating others with respect is at the heart of THE GATE COACH culture.
At THE GATE COACH good enough is not good enough.


Fencing Club and Classes for people ages 6 to 80 Minnesota Sword Club. Minneapolis: Hours. See Schedule. Telephone. 612 501 0640.
Agricultural fence and exclusion fencing to meet all your needs. MIDWEST FENCE is here to help you in selecting the right fence.
FREE estimates. More than 40 years of industry experience. Fence sales. Installations. Residential. Commercial. Dog kennels. DIY materials. 800 755 3118.
A full service fence company with over 10 years of experience, we provide an residential and commercial fence installation throughout North Metro.


text:
House History? Family Heirlooms? Not This Week
By Dan Hiestand, Houstory Marketing Director
Before there was Houstory, the Home History Book archival journal and The Heirloom Registry, there were only ideas. And the man behind these ideas — the company founder — is a guy named Mike Hiestand, who also happens to be my big brother.
Mike and Mary Beth — aka The Tinker Tour — visit Syracuse University in October.
Before we officially launched Houstory in October 2011, both of us were involved in journalism: myself as a reporter and editor, and Mike as a media law attorney. We both believe firmly in the importance of a free press and the power of a well-told story, and have dedicated much of our professional lives to these causes. Admittedly, Mike has been at it a lot longer than me and in a much more targeted way.
Namely, he has spent 20-plus years affiliated with an organization called The Student Press Law Center (SPLC). During his award-winning career, he has provided free legal assistance to nearly 15,000 high school and college journalists/students and advisors in relation to laws regarding a variety of topics, including freedom of information, copyright, censorship, and the First Amendment. In other words, he has empowered a whole lot of young people with a civics education that they were able to take with them into adulthood and beyond.
Including me.
Now, you're not going to catch me gushing about my brother very often in public (after all, he is my brother after all, right? That's against unwritten brotherly code.) But this is one of those rare occasions.
Simply put, Mike is an inspiring guy. He's not a person who likes the limelight, but he likes to know he is making a difference. He let this passion guide his professional life. And for him, that passion was empowering high school and college journalists and advisors with their rights. The SPLC– a nonprofit just outside of Washington, D.C. — was his first job. It was also, as he says, his "dream job."
Over the years, he became a prominent figure in the student press community. In fact, just last year, the Society for Professional Journalists named him the recipient of the prestigious SPJ First Amendment Award "for extraordinary efforts to preserve and strengthen the First Amendment."
The Tinker Tour at the Journalism Education Association/National Scholastic Press Association convention in Boston last week.
Yeah, I'm proud.
So, what's all this about you ask? Well, Mike is on the tail end of an historic civics education tour with American free speech advocate Mary Beth Tinker.
The pair have teamed up to travel the country in an RV on what has been dubbed The Tinker Tour — which officially started on Independence Mall in Philadelphia at the National Constitution Center in mid-September and wraps up Nov. 25 in Kansas City, Mo. Working together, Mike and Mary Beth have reached out to colleges, high schools and other groups to "promote youth voices, free speech and a free press." To date, as part of their fall tour east of the Mississippi, they have traveled more than 10,000 miles and have a couple thousand more to go.
As it states on their Web site: "The goal of the Tinker Tour is to bring real-life civics lessons to schools and communities through (Tinker's) story and those of other young people."
Mary Beth's story started when she was a teenager in the 1960s and later became the basis of a Supreme Court decision (Tinker v. Des Moines Independent School District). This decision set the legal standard for student free expression for many years.
"It's been a dream come true," said Mike. "Mary Beth is truly a rock star in the world of student free expression rights, and this tour is helping to inspire a lot of kids and teachers."
It may not be house history, family history or family heirlooms this week — but it is important. After all, Houstory is Mike, and Mike is Houstory. I think it is safe to say that as genealogists and family historians, we all have a vested interest making sure the information we seek remains accessible.
Houstory's Heirloom Registry: A proud sponsor of The Tinker Tour
Please take a moment to check out the Tinker Tour Web site at http://tinkertourusa.org/welcome-aboard/, and consider donating to the West Coast leg of their tour in 2014.
What do you think of the Tinker Tour? Do you think civics education is strong in the United States? Do you think its dangerous to empower kids with their rights? However you feel, let us know.
published in November 20, 2013
category inFeatures & Profiles, Miscellaneous, The Heirloom Registry
taggedcivics education, first amendment, free speech, houstory, mary beth tinker, mike hiestand, tinker tour
Is the family heirloom dead?
Houstory Deals of the Week: Nov. 25


text:
Suspended sentence for driver who caused fatal accident while using smartphone
accidentphonedriving
Photo: ocskaymark/Depositphotos
A Swiss court on Wednesday convicted a man of negligent homicide for causing a fatal accident while using his phone at the wheel, but did not send him to prison, handing down a 14-month suspended sentence.
The case dates to September 2016 when the accused, now 26, was driving in La Chaux-de-Fonds in the canton of Neuchâtel, reported news agencies.
The man composed two text messages and browsed the internet on his smartphone while behind the wheel, found the court, saying the technical evidence for this was "overwhelming".
Distracted by his phone, the driver did not see a scooter and cut him off on a turn.
The scooter driver, in his 50s, attempted an emergency brake but fell from his bike and was hit by the wheel of the car.
The incident was captured by a surveillance camera.
"There was no other cause than the use of the phone," said the court president, judging the defendant's use of the phone to be non-negligible.
He had been browsing an online shop at the time and had just completed a transaction when the car and scooter collided, claimed the prosecution.
The man denied browsing the internet during the journey and said he sent the two text messages before he set off.
"The truth is I didn't see the scooter. I'm really sorry. I don't know why I didn't see it," he told the court.
His defence team said his only infraction was not observing the rules of priority on the road.
But the court convicted him of negligent homicide, rejecting a call by the prosecution for the more serious charge of murder by indirect intent, which would have incurred a five and a half year prison sentence.
The man was not aware that his behaviour would lead to death, found the court.
According to a study reported by broadcaster RTS, up to 20 people are injured and one or two killed each year due to mobile phone use behind the wheel.
Some 40 percent of drivers use their phone when driving, found the study by insurer Allianz.
In Switzerland using a phone behind the wheel incurs a fine of 100 francs.
Doctor acquitted of murder in assisted suicide case
Paternity leave supporters gain small victory in long-running battle
Tell us: What is it really like bringing up kids in Switzerland?
Swiss government rejects plans for statutory paternity leave
One in five Swiss women 'a victim of sexual assault'
Swiss woman ordered to stop posting photos of grandchild online
'We eat pork': Swiss company's job listing for a driver accused of discrimination
Woman dies after storm sinks Lake Geneva tourist boat
Captain of Swiss vessel detained over deadly Budapest boat crash
Swiss 51-year-old driver survives 20-metre car leap after accident
Police appeal for witnesses after 66-year-old Swiss man attacked by dogs in Bern
Swiss railway worker killed by moving train in Ticino


How do we build deep communities that nurture our need for connection?
How can activist groups recruit and give full voice to a truly diverse membership?
Can community organizing be a way of thinking and a way of life? What can make it energizing and fun?
What if Economy took into account a full spectrum of economic activity- the home, nature: beyond money?
What trends are making the old "bigger is better" economies of scale argument obsolete?
Would you like to creat e a world that works for all?
Would you like to hear how BK Businesses and nonprofits can forge creative alliances?


text:
Derek Adams has his say on Plymouth Argyle sacking
Former boss wishes Pilgrims well for the future
Stuart James
Derek Adams has spoken out for the first time since his dismissal as manager of Plymouth Argyle.
The 43-year-old Scot issued a statement through the League Managers' Association and wished the Pilgrims well for this season and beyond.
His statement read: "I have had four very enjoyable years as Manager of Plymouth Argyle Football Club and I would like to thank the club, board and Chairman, for giving me the opportunity and supporting me throughout my tenure.
Derek Adams linked to top jobs days after Plymouth Argyle sacking
"I would also like to thank Paul Wotton and Kevin Nancekivell for their loyalty and tireless efforts.
"Reaching the League Two Play-Off Final at Wembley, in my first season, gave us the opportunity to build. In my second season, we had two memorable FA Cup games against Liverpool, before winning promotion to League One. And last season, we finished 7th in our return to League One, narrowly missing out on the Play-Offs.
"These are all high points in my Plymouth Argyle career, which I am proud to have achieved with everyone at the club.
Why not Plymouth Argyle v Scunthorpe? Sky Sports slammed for choosing Sunderland and ignoring League One's match of the day
"Finally, I would like to pass on my best wishes to the new Chairman, players, all the club staff and The Green Army for the remainder of the season and in the future."
Adams was relieved of his duties on Sunday night after 213 games in charge for the club. He won 90 of those, losing 78, but the final act was a 5-1 defeat at Accrington Stanley on Saturday which saw the Pilgrims drop into the League One relegation zone.
Derek Adams sacked by Plymouth Argyle
Nanckivell on all things Argyle
Coughlan favourite for Argyle job
Adams has his say on sacking
Adams linked with top management jobs
Hallett's tribute to Adams and Wotton
Nancekivell on taking charge
Johnson at the centre of speculation
10 questions facing Plymouth Argyle
Paul Wotton


text:
Government and Politics (Remove)
Business and Industry -- Occupations/Professions -- Actors (Remove)
Type of Material -- Photographs (Remove)
Date (Remove)
Georgia Neese Clark Gray
A formal portrait of Georgia Neese Clark Gray, 1900-1995, of Richland, Kansas. Gray was National Committeewoman for the Democratic Party, 1936-1964, and was appointed by President Harry S. Truman on June 9, 1949 as the first woman to serve as the U. S. Treasurer, 1949-1953.
Senator Arthur Capper and Charles "Buddy" Rogers
An informal portrait of Kansas Senator Arthur Capper, 1865-1951, a native of Garnett, Kansas, and actor Charles "Buddy" Rogers, 1904-1999, a native of Olathe, Kansas, at the White House in Washington, D.C. Capper, 1865-1951, served Kansas as Governor, 1915-1919, and U. S. Senator, 1919-1949.
This is a signed studio portrait of Georgia Neese Clark Gray, 1900-1995. Gray was National Committeewoman for the Democratic Party, 1936-1964. On June 9, 1949, President Harry S. Truman appointed her as the first woman to serve as the U. S. Treasurer. She served from 1949-1953. She was born in 1898 in Richland, Kansas, to Albert and Ellen Neese, Gray attended school in Topeka and graduated from Washburn College in 1921. During college, she developed an interest in acting and after graduation attended the Franklin Sargent School of Dramatic Art and spent nearly ten years acting with various stock companies. She married her manager, George M. Clark in 1929. They divorced in the mid-1940s. She started working at her father's Richland State Bank as an assistant cashier in 1935 and became president in 1937 following his death. She became active in the state Democratic Party and was elected National Committee Woman in Kansas in 1936, a position she held until 1964. She was an articulate and well-liked representative of the party and an early supporter of Harry Truman. It was this support that brought about her nomination as the first woman to be Treasurer of the United States. She served in that office from June 1949 until January 1953 when Truman left office.
The Kansas Journey
Thematic Time Period
Great Depression and Dust Bowl, 1929 - 1941
http://www.kshs.org/km/facets/view/facets:711,2059,183,1265,1290/sidebar:1