text:
Engineering Group: Manufacturing Optimization with AI Minimizes Factory Flow Bottlenecks
Engineering Group, a global engineering firm and technology consultancy with a strong practice in simulation, worked with Pathmind to apply reinforcement learning to intelligently route heavy industrial parts over a complex assembly line in a factory. Reinforcement learning was able to solve the manufacturing optimization problem, minimize factory flow bottlenecks, and discover paths that reduced unnecessary moves on the line by 11%, while increasing the number of parts whose movements are coordinated by 66%.
Heavy parts that require multiple complex manufacturing processes, such as engines and turbines, can make it difficult for factories to allocate machine resources as each part moves down the line, and time their movements in coordination. Production line managers often consider each individual production cycle manually.
The average number of moves required to complete processing of all components in the factory was decreased by 11% — from 79 moves to 70 moves — when compared to the best previous heuristic. Additionally, the intelligent policy coordinates the movement of 66% more objects in the factory — 10 components vs. 6 components — than the best previous heuristic.
Why Pathmind Was Needed
Many factories attempt to formalize the knowledge of experts in custom heuristics that involve thousands of lines of code. But those expert systems are cumbersome and hard to adapt when data changes. Often the domain expertise of decades is implemented in brittle systems that are equally hard to adapt or replace. But reinforcement learning has shown that it is able to learn complex sequential decision-making protocols when trained on a valid simulation.
The factory owner needed a more adaptable system that was capable of responding to changes in data, while also moving heavy parts through its manufacturing processes more quickly. They needed to increase throughput within a more robust decision-making system.
Engineering Group's team developed and implemented a reinforcement learning policy with Pathmind to control the movement of heavy objects in a factory. The policy coordinates movement of heavy objects on the assembly line more efficiently than any previous heuristic.
The results are an increase in manufacturing throughput and a decrease in cost associated with moving objects. This work was an extension of Engineering Group's previous blog post on modeling factory flow.
Run the model on AnyLogic Cloud:
About Engineering Group
With over 12,000 professionals in 65 global locations, Engineering Ingegneria Informatica S.p.A designs, develops and manages innovative solutions for the business areas where digitalization is having the biggest impact.


text:
14.01.2021 Ilyashev & Partners Is a Legal Counsel of the Ministry of Foreign Affairs of Ukraine in the Process of Acquisition of Rights to the Ukraine.ua Domain Name
14.01.2021 Court Refused Lifting the Anti-Dumping Duties on Imports of Cement to Ukraine
23.12.2020 Ilyashev & Partners Is Among the Top Three Law Firms of Ukraine According to the Yurydychna Gazeta
"The team was recently visible advising on a number of pharmaceutical cases. Sources agree that the team is "moving in the right direction" and are particularly impressed by its work in the pharmaceutical sector".
EU to overhaul air passenger rights
Author: Arseniy Herasymiv, Attorney At Law, Ilyashev & Partners Law Firm
Source: The Yurist i Zakon
European Union takes much effort to protect air passenger rights by improving legislation. In February 2005, Regulation (EC) 261/2004 was enacted setting up common rules on compensation and assistance to passengers in the event of denied boarding, flight cancellations, or long delays of flights. New rules introduced significant changes in the aviation market imposing restrictions on denial of boarding and cancellation practices. On March 13, 2013, the European Commission announced another package of measures to ensure new and better rights for air passengers.
There are four main reasons underlying the need for new regulations, the Commission says. Firstly, lacking definitions and unclear provisions in the text of Regulation 261/2004 leave grey zones in the passengers' rights which have led to inconsistencies and loose standards in the application of the law. Another reason is that passengers encounter difficulties in enforcing their rights directly with the airline: many would get a brush-off by for no good reason. Thirdly, there has been a lack of response to the violations of passenger rights on the part of national authorities. Finally, the financial cost of some of the obligations imposed on air carriers is disproportionate.
Proposed amendments to Regulation 261/2004
The current Regulation 261/2004 compels air carriers to provide passengers information on their rights, but does not contain requirements with regard to the on-the-spot information on the event itself. The proposal introduces an explicit obligation to inform passengers of the situation as soon as possible and in any event no later than 30 minutes after the scheduled departure time. Air carriers must inform passengers on any changes time as soon as this information is available.
Extraordinary circumstances
An important concern is term «extraordinary circumstances» which is not clearly defined in the current Regulation. The Commission's proposal defines «extraordinary circumstances» as circumstances which are not inherent in the normal exercise of the activity of the air carrier concerned and are beyond its actual control. For example, natural disasters or strikes by air traffic controllers should be seen as extraordinary, but technical problems identified during routine aircraft maintenance should not.
Long delays and tarmac delays
The extraordinary circumstances issue is closely related to passenger rights in case of delay. Today, passengers enjoy a right to assistance for delays of 2, 3 or 4 hours depending on flight distance. Following a judgement by the European Court of Justice in case Nelson and Others v Lufthansa, they may claim compensation at delays more then 3 hours (except in extraordinary circumstances).
In case of delays, Commission says, passengers need to be given clear information as well as care and assistance while they wait. For that reason, the proposal fixes the deadline for compensation at 3 to 5 hours for all intra-EU flights of less than 3,500 km. For international flights, the deadline is 9 hours for flights of less than 6,000 km and 12 hours for flights of more than 6,000 km. The aim of the 3-hour threshold is to give the air carriers a reasonable time to solve the problem without inconveniencing the passengers too much.
The European Commission has also proposed to improve rules applicable to delays on the tarmac, i.e. where the passengers are waiting on board the aircraft. This includes to right to refreshments / meals and the right to renounce to the flight after 5 hours. In addition, the proposal gives a right, where the tarmac delay exceeds one hour, to air conditioning, to the use of toilets, to medical assistance and to drinking water.
Re-routing
Another issue of concern is that passengers may be stranded for a long time while waiting for rerouting with another flight of the same air carrier. At what point the carrier must allow the passenger to rerouting via another airline remains unclear. The Commission's proposal states that, where the air carrier cannot ensure the rerouting within 12 hours on its own services, it must offer rerouting with other air carriers.
New rights
The European Commission has also proposed to consider a number of new rights. In particular, it is not clear whether a passenger whose flight has been rescheduled enjoys similar rights as passengers of delayed or cancelled flights. The proposal clearly defines this equality of treatment where the flight was rescheduled less than 2 weeks before its original departure time.
Under the proposal, the passenger may request – free of charge – the correction of spelling mistakes in his name up to 48 hours before departure.
Commission has also proposed new rights with regard to mishandled baggage. Under the proposal, air carriers must offer the passengers with reduced mobility the possibility – at no additional cost – to declare the actual value of the mobility equipment at check-in and hence to raise the carrier's liability limits to this actual value. The proposal also deals with the issue of transporting musical instruments: air carriers must also accept smaller instruments into the passenger cabin and must clearly indicate the terms and conditions for the transport of larger instruments in the cargo hold.
Submission of complaints and Insolvency
Under the proposal, air carriers must provide forms which allow the submission of complaints right at the airport and which the air carriers must accept as valid claims. Airlines will have to provide clear complaint-handling procedures (web form, e-mail address).
Due to increased cases of airline insolvency that have taken place both in Ukraine and in the European Union, the Commission proposed a number of measures to prevent the violation of passenger rights due to the insolvency of the air carrier. Notably, national authorities will ensure appropriate monitoring of the financial position of air carriers and where necessary adopt a coordinated approach to minimise the impact on passengers. Under the proposal, programs shall be developed to help minimise those risks, particularly by offering relevant insurance and similar products that would allow passengers to protect themselves against the risks associated with of airline insolvency.
In general, the measures proposed by the European Commission live up to the trends in the aviation market and to the problems faced by passengers. On November 28, 2012, Ukraine introduced new Rules for carriage of passengers by air that are basically the implementation of the Montreal Convention (formally, the Convention for the Unification of Certain Rules for International Carriage by Air) and Regulation (EC) No 261/2004 establishing common rules on compensation and assistance to passengers in the event of denied boarding and of cancellation or long delay of flights. However, if the changes proposed by the European Commission will be adopted these recent rules may become outdated. If Ukraine signs the Common Aviation Area Agreement with the EU, these EU regulations will then be transposed in Ukrainian national legislation.
© 2021 Ilyashev & Partners / Mobile version

redpajama_set_name: RedPajamaCommonCrawl


Surat Municipal Corporation is going to declare SMC Apprentice Admit Card 2019 on the official website of the board which is www.suratmunicipal.gov.in.The authority has not yet declared the exact date of theSMC Apprentice Admit Card 2019 release date so the candidates need to wait some more days. Candidates can download the hall ticket by using your registration number and date of birth.
Surat Municipal Corporation is going to conduct the Teaching Assistant exam on April/ May 2019. Candidates must download the SMC Apprentice Hall Ticket 2019 before the last date. No candidates can enter in the written examination hall without SMC Apprentice Hall Ticket 2019. The official board will publish the hall ticket before the 15 days of th written exam.
The candidates can download the hall ticket from the official website of the Surat Municipal Corporation. The board will be conducting the exam at various exam centers. The exact date of the exam is not yet declared by the board. The applicants who are qualified the written test can go for further rounds conducted by the board.


In Pembroke most of the population travel to work by Car, truck or van - as a driver. This accounts for about 74.78% of the Pembroke population. People traveling to work by Car, truck or van - as a driver account for 74.78% of the Pembroke population. People traveling to work by Walked account for 11.44% of the Pembroke population. People traveling to work by Car, truck or van - as a passenger account for 9.57% of the Pembroke population. People traveling to work by Other methods account for 2.27% of the Pembroke population. People traveling to work by Public transit account for 0.97% of the Pembroke population. People traveling to work by Bicycle account for 0.97% of the Pembroke population.


If you have been waiting for that special property that offers privacy, peace and a superb design, your wait may well be over.
Located only minutes from town, on sought after 'Ruddle Drive', Reesville, this artisan inspired home is situated on 2.8 acres.
The long drive through the established grounds takes you to your own private haven that is positioned to make the most of the glorious rural views over farmland and the Obi Obi Creek.
The home is over 2 levels and is ideal for guests, or dual living arrangements, with an additional art studio as well.
Be sure to inspect quickly! This gorgeous home features so many of the attributes often sought but rarely found.


One more thing was missing from my post-series about my trip to the Netherlands: some words about the hotel I stayed at while I was there (well apart from Tulip Inn in Eindhoven). I was advised to stay at a place, not far from the location I had to visit, called Hotel Bakker. It is a quiet little hotel in Vorden, a small city in the south-east of the Netherlands.
For me it was the first time I was in a "non-commercial", local hotel in the Netherlands, so it was an interesting experience for me. I was actually surprised, that everyone spoke well English, but then again, I was in the Netherlands… who doesn't speak English there? 🙂 . Anyway, the place was OK for the price they charged for a room. It was not as fancy as the life-savior hotel in Eindhoven, but it was clean, it had free WiFi and it had a very friendly scenery: the rooms were all on the ground floor, with a back door to a common grassy area, there were small ponds with rocky edges all offering a relaxing and calm atmosphere to chill down a bit after a busy day working.
On top of that, I ate dinner almost every evening at the hotel. The food was… well, I think this is what fine dining in the Netherlands means: a quantity of nicely prepared meal which you can actually eat in one go 🙂 (usually it is quite hard to eat up everything when one eats normal food). The good part is: I was always a bit hungry by the time I got back to the hotel, so the quantity and the quality of the food was just perfect ;).
After a troublesome evening, but great night at the Eindhoven Airport hotel, the next day I was ready to pick-up my car that I reserved at one of the rental companies. This time almost everything went smoothly and I was on the highway to my destination in no time.
I wrote almost, because there was still an issue with the car rental: they do no accept VISA Electron cards. The truth is, I have never tried to book a car using that card, but after using it everywhere when I had to travel (in Europe and in the U.S.) it did not even cross my mind, that they may not accept it. Anyway, when I showed them a MasterCard they were more than happy (although there were no big differences, because both are debit cards and both have chips integrated…). Anyway, this was a lesson that I quickly learned and used all the time while I was in the Netherlands: they like MasterCards more than VISA Electrons, so be prepared 😉 .
Maybe a few words about the car I was driving: a Citroen C4. I must say I was a bit worried about the usability of the controls, because, we have to admit, we are talking about an artistic little French piece of equipment here… To my surprise everything was in order (just like a VW or any other car I am used to), with just a touch of French art (just enough 🙂 ). Another great surprise was the built in GPS (although it took a while until I switched it to speak in English 🙂 ) which helped a lot during my quest to find my destination among the potato fields 😛 . The car looked and felt great… until the moment people started to pass me by real easily… Yes, yes it was an economy car I know, but still… why won't it accelerate?? Bottom line, no matter how fancy equipment it has, I would not trade my 11 year old car for it. Period.
Update: The invoice arrived after a few days. Everything was OK. They have won back a few points… 😉 .
It has been a while since I have written my last post. It was a busy week, so I really did not find any time to finish my entry-series for the Netherlands. Yes, there is one more post, but this time it is not Amsterdam, it is the Dutch capital: Den Haag.
As I have already mentioned in one one of my older posts, the train ticket to Den Haag Centraal from Amsterdam Sloterdijk station was only €11.20, having bought a Dagretour("Day-return") ticket, meaning that we returned to the source station on the same day.
After a short travel by train (45 minutes), we arrived on a quite cloudy day to Den Haag. From there we headed to the nearest information point, which was actually almost in the city center. Actually there are very few information points, compared to Amsterdam: the first sign showing us, that this city is quite different. On the day we arrived there was a great parade for veterans, so the city was really in motion (and we could easily get information&directions from the coordinators of the parade).
After Madurodam we went out to the sea-side, on tram No. 1 to De Pier. The beach is very nice, it was a great feeling to be on a long, sandy beach after the rocks of Liguria 🙂 … too bad it was cloudy and as we got out, it started to get even foggy. We sat down to a beach-club (open-space) enjoyed a pint of beer and happily concluded that people did not get scared of the not-so-good weather, they rather stayed and enjoyed the beach as much as they could.
Next stop, back to Den Haag city center. We visited the Dutch Parliament buildings Het Binnenhof, a lovely building from the outside, too bad we couldn't get in… 🙁 . Anyway it was a nice place to just take a walk at. The lake near it was really beautiful.
So much for Den Haag, and our trip to the Netherlands. I can only advise everyone to visit at least once in their life these lovely places from the "lot-to-do-and-see" city, Amsterdam, to the tranquil and calm Den Haag. There are pictures of Den Haag on my Picasa account.
Our 3rd day in Amsterdam was filled with plans to visit some of the more exciting places in the city. We woke up quite late (compared to how much we wanted to see), and headed out to the city center, The Dam Square. Here our first stop was Madame Tussauds, the Amsterdam version of the famous wax-museum. At the entrance we found out, that we could purchase a common ticket with The Amsterdam Dungeon for €37.50. Well, we said well' give it a try.
After the little ride in history we got up to a nice, quiet place, with an abundance of very famous persons' wax figures. From here on it is all the excitement we had. Some of the figures were quite realistic, some… well some a bit not too good. At the exit we could buy our Obama photos I think for €8.00, but I am not sure of that.
From Madame Tussauds, it was a short walk on the Rokin street, to get to The Amsterdam Dungeon. At the entrance some strange figures awaited us, very friendly I must say. A guy was standing there for example welcoming people, asking where they were from, and even learning some words of their language.
As soon as enough people gathered (8-10), we were granted the entrance into the dungeon (No photos allowed). The whole ride is made up of a series of visits from one room to the other, each one having a theme. Along the way different actors guide you through, making the experience as realistic as possible. It was great, but for some reason, I think the Madame Tussauds adventure, we were not really scared this time 🙂 . There were two photo opportunities, (we could buy the photos at the exit): one at the entrance, and one in the mini-roller-coaster (that is quite interesting, too 🙂 ) (We payed for the 4 photos, a reduce price of €25.00).
Next stop was our visit to the Heineken Experience, which is not far away from the city center, really close actually to Museumplein. For this we have bought the tickets online for €15.00, so we could skip the line (it was actually not a long one). We were taken through the history of Heineken Breweries, and had the chance to experience first hand some of the tasks of beer brewing. We even got the chance to taste an initial juice made from squashing the grain (quite sweet). Then we went up a level, where there was a special room, to experience what it feels like to be a beer being brewed (quite funny). At the labeling section we had the chance to make our own customized label on one of the Heineken beers for €5.00 using credit cards (we could pick them up at the exit). A few rooms showing the later success story of Heineken followed including a larger room with the "Heineken Sport Experience" (I liked this). All in all it was great it was worth the money: especially because it had 3 beers included 😀 . Photos are allowed everywhere, with virtually no restrictions.
During our very busy morning and afternoon, we didn't realize how much time has passed, and how hungry we got. We headed out for some great (not too healthy) meal… but where? Well, let's try Hard Rock Cafe. It is a quite nice place located on the banks of one of the canals a little to the north from the Rijksmuseum. The experience was quite good, we ate a lot, we got filled up. Oh yes: our waitress was a very friendly polish girl, with whom we did chat along a bit, and found out some details about the city's life 🙂 .
So, I think this post concludes our visit to Amsterdam. A lot has been done, it was a very nice experience, and I'd recommend it to everyone, it is one of the best cities I have visited! Thanks again for our host, who let us stay in her apartment in this period 😀 . Photos here.
P.S. Red Light District? Well, don't be so curious 😛 .


text:
Who is Jock Cranley based on?
What is Presidente in GTA IV?
Who is the ghost girl in GTA?
Why can't I become MC president?
Where can I find a banshee in GTA 4?
What are Easter eggs in GTA 5?
When was Grand Theft Auto IV announced?
Is there a text to win contest for Grand Theft Auto IV?
Cranley is based on the numerous Hollywood actors who have gone on to represent the Republican Party in government.
Is there a president in GTA?
Joe H. Lawton is the President of the United States in the HD Universe of the Grand Theft Auto series.
The Albany Presidente is a mid-size executive sports sedan found in Grand Theft Auto IV.
What is USA called in GTA?
Liberty City is based on New York City and is one of the three settings of Grand Theft Auto and the main setting of Grand Theft Auto III, Grand Theft Auto: Liberty City Stories and Grand Theft Auto IV. It also makes a minor appearance in Grand Theft Auto: Vice City and Grand Theft Auto: San Andreas.
Jolene Cranley-Evans, referred to as The Ghost of Mount Gordo, is the deceased wife of Jock Cranley that appears in Grand Theft Auto V and Grand Theft Auto Online.
Where is Mount Gordo ghost?
Ghost of Mt Gordo The Ghost can be found at night between 23:00 – 00:00 on Mt. Gordo north of the lighthouse. She'll disappear when you approach her. The name "Jock" is written in blood next to her.
Firstly, note that you can't be a CEO and an MC (Motorcycle Club) President simultaneously in GTA 5 Online. So, to register as an MC president, you need to give up your CEO position. After that, you must buy a clubhouse by visiting the Maze Bank Foreclosures website from your in-game phone.
How do you become a clubhouse president?
Once you've purchased a Clubhouse, then hold down the touchpad to bring up the Interaction Menu. Select Motorcycle Club and then Start a Motorcycle Club to become an MC President. This will allow you to use the laptop in your Clubhouse to buy MC Businesses as well as manage your empire.
Banshee Spawn Locations in Grand Theft Auto IV Where to find the Banshee in Grand Theft Auto IV & Episodes:
Francis International Airport.
Alderney City.
Middle Park.
City Hall.
Castle Gardens.
The Exchange.
Castle Garden City Algonquin.
Rotterdam Hill.
Is there a GTA 6?
GTA 6 is actually happening, it's official! Developer Rockstar Games confirmed back in February that "active development for the next entry in the Grand Theft Auto series is well underway", tucking the announcement in the bottom of a Newswire blog post (opens in new tab).
GTA 5 Easter eggs, where to find Bigfoot, UFOs, and more
Links to previous GTA games. (Image credit: Rockstar)
The Los Santos Sea Beast. (Image credit: Rockstar)
The giant snowman.
James Bond's Aston Martin.
Red Dead Redemption: the book.
Visit a Playboy Mansion party.
Chonky Halo boys.
1.21 gigawatts!!
What is the Presidente in Grand Theft Auto 4?
The Albany Presidente is a mid-size executive sports sedan found in Grand Theft Auto IV. The Presidente is largely based on the first generation Cadillac CTS, though the headlights resemble those of the second generation CTS, albeit widened, and the grille resembles that of a first generation Ford Fusion and the fifth generation Ford Taurus.
Archived from the original on 13 September 2011. Retrieved 29 September 2020. ^ Sanders, Kathleen (10 May 2006). "E3 2006: Grand Theft Auto IV Announced". IGN.
How many copies of Grand Theft Auto San Andreas have been sold?
This broke the record set by Grand Theft Auto: San Andreas at 501,000 copies over the same period. During the first five days of availability, the game sold over 927,000 copies in the United Kingdom.
ModernMethod. Archived from the original on 16 July 2007. Retrieved 4 June 2020. ^ "GameStop Launches Mobile Text-to-Win Contest for Grand Theft Auto IV". IGN. Ziff Davis. 27 March 2008. Archived from the original on 3 June 2020. Retrieved 4 June 2020. ^ Crecente, Brian (3 March 2008). "Xbox Live's GTA Sweepstakes". Kotaku. Gawker Media.


A federal court has ruled that printing "In God We Trust" on U.S. currency doesn't amount to a religious endorsement and therefore doesn't violate the U.S. Constitution. The Chicago Daily Law Bulletin reports the 7th U.S. Circuit Court of Appeals in Chicago made the ruling Thursday in a lawsuit brought by a self-declared Satanist, Kenneth Mayle. He argued that the motto propagates a religious view he opposes.
The inclusion of the motto on currency is similar to other ways in which secular symbols give a nod to the nation's religious heritage. Examples include the phrase "one nation under God," which has been in the Pledge of Allegiance since 1954, see Pub. L. No. 83-396, ch. 297, 68 Stat. 249 (1954), as well as the National Day of Prayer, which has existed in various forms since the dawn of the country and is now codified at 36 U.S.C. § 119. Lynch, 465 U.S. at 676–77. Moreover, when the religious aspects of an activity account for "only a fraction," the possibility that anyone could see it as an endorsement of religion is diluted. Freedom From Religion Found., Inc., 885 F.3d at 1047. In the case of currency, the motto is one of many historical reminders; others include portraits of presidents, state symbols, monuments, notable events such as the Louisiana Purchase, and the national bird. In this context, a reasonable observer would not perceive the motto on currency as a religious endorsement.


Organic Castor Seed Oil (Ricinus Communis) - Sweetgrass&Rain Inc.
Castor Seed Oil is extracted from the Ricinus Communis seed or castor bean, which, despite its name, is not a true bean. Castor is indigenous to the Mediterranean, East Africa and India and is widespread throughout tropical regions. The seeds contain between 40% and 60% oil that is rich in triglycerides, mainly ricinolein.The seeds also contains ricin, a water soluble toxin, which is also present in lower concentrations throughout the plant and is not extracted with the oil.
Castor Seed Oil can act as a protective barrier on your skin and is popular as a conditioning agent in used in soap-making and skin-care products.


The Hoggs of Fife ladies hunting jacket has been designed and manufactured using quality materials to bring you a quality item. This hunting jacket is fully waterproof and windproof and has been DWR treated for rain and stain resistance.
l have several jack Murphy jackets that are great for different seasons but wanted something extra warm.


text:
Q: PHP & MYSQL Return blank page I'm working on the PHP and MYSQL for a project and I encountered a weird problem here where I click on the submit button at the form, it will run these codes. However the weird problem is the the page return blank instead of going back to the page with the form. I had searched for few hours for the error but couldn't find it.
Please point out my mistake. Thank you for the help.
<?php
include '../database.php';

if(isset($_POST['submit'])) {

    if (isset($_POST['stuid_0'])){

        $student = $_POST['stuid_0'];

        //query moderator details
        $query = mysql_query(" SELECT ModeratorID FROM Student WHERE StuID ='$student' ") or die(mysql_error());
        $info = mysql_fetch_assoc ($query);
        $dbmoderator = $info['ModeratorID'];

            //check for changes of status in supervisor
            $query2 = mysql_query(" SELECT SupervisorID FROM Student WHERE StuID ='$student' ") or die(mysql_error());
            $value = mysql_fetch_assoc ($query2);
            $dbsupervisor = $value['SupervisorID'];
            $query3 = mysql_query(" SELECT LectStatus FROM Lecturer WHERE LectID ='$dbsupervisor' ") or die(mysql_error());
            $value2 = mysql_fetch_assoc ($query3);
            $dbsupervisorstatus = $value2['LectStatus'];

            //if no changes in supervisor
            if ($dbsupervisorstatus=='2'){
                echo ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Moderator can't be promoted')
                window.location.href='../committee/committee_supervisor2.php'
                </SCRIPT>");

            }
            else{
             //newly assigned a supervisor if previous supervisor status is not active
            $query4 = "UPDATE Student SET SupervisorID='$dbmoderator', SupervisorStatus='1', ModeratorID=NULL WHERE StuID='$student'";
            mysql_query($query4);

            echo ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Successfully updated')
                window.location.href='../committee/committee_supervisor2.php'
                </SCRIPT>");
            }
    }
    else
        echo ("<SCRIPT LANGUAGE='JavaScript'>
        window.alert('You must choose a moderator to be promoted')
        window.location.href='../committee/committee_supervisor2.php'
        </SCRIPT>");
}
?>

UPDATE:
I think the problem happen when the system run at this point
if ($dbsupervisorstatus=='2'){

As i put an echo "Test"; before this line and it still work.
UPDATE 2:
I found that the code can be run when I put
if ($dbsupervisorstatus=='2'){
                echo "Moderator can't be promoted";

            }

as well as
  if($dbsupervisorstatus == 2){
  header("location:commitee_supervisor2.php");
   }

However I don't see the reason why my original code
if ($dbsupervisorstatus=='2'){
                echo ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Moderator can't be promoted')
                window.location.href='../committee/committee_supervisor2.php'
                </SCRIPT>");

            }

Not working.. A little help pls.. :)
FINAL UPDATE
Guys, I know why.
It's because the
window.alert('Moderator can't be promoted')

have 3 apostrophe in it.
I simply remove the word "can't" and its working already.
Thank you guys for the help :)

A: Using the JavaScript codes code still work but the starting point of your debugging is to echo ordinary texts at all the places where you echo JavaScript. That will help you know at what point you codes started failing. Example
//if no changes in supervisor
            if ($dbsupervisorstatus=='2'){
                echo ("<SCRIPT LANGUAGE='JavaScript'>
                window.alert('Moderator can't be promoted')
                window.location.href='../committee/committee_supervisor2.php'
                </SCRIPT>");

            }

Replace with
//if no changes in supervisor
            if ($dbsupervisorstatus=='2'){
                echo "Moderator can't be promoted";

            }

Do this at all echo points then start replacing one after the other with your JavaScript codes again then you'll spot out where your code fails.

A: Instead of doing it through javascript, try using a much better approach in pure PHP. Something like:
  if($dbsupervisorstatus == 2){
  header("location:commitee_supervisor2.php");
   }

And if you must use JS, then make an AJAX request, then you can manipulate the behaviour through JS anyway you like.

A: Where do you put your HTML form? Is it in the same page or different page? From your code, looks like there's nothing being done, so I suggest you to check whether your submit button name is correct (submit). The HTML should be like this:
<form name="your_form">
    <!-- Your form here -->

    <input type="submit" name="submit" value="Submit"/>
</form>

redpajama_set_name: RedPajamaStackExchange


text:
Ryan Reed to Race in Daytona Truck Race for Lira Motorsports
Daytona XFINITY Series defending winner sets eyes on return trip to Victory Lane
"I'm really excited about running in the truck race at Daytona," said Reed, who took the lead on the final lap to win his first XFINITY Series race last season at the track. "It's a really great opportunity with Lira Motorsports and we have had a lot of success with those guys. Hopefully we can pull off back-to-back victories and really start the season on a high note."
"Dexcom is thrilled to partner with Lira Motorsports on the race in Daytona during this paramount weekend in NASCAR's racing season. Ryan Reed, driver of the No.58 Dexcom Ford F-150, has been a fan of our continuous glucose monitoring system, enabling him to race professionally, and helping him control his Type 1 Diabetes on the track. We are excited to see him using it in the Truck Race," said Rick Doubleday, EVP and Chief Commercial Officer at Dexcom.
Lira Motorsports serves as a developmental team for Roush Fenway Racing and in addition to Reed's participation in the truck race at Daytona, the team plans to run Reed in selected ARCA races later this season, with the exact dates yet to be determined.
Last season, Reed competed in three ARCA races with Lira Motorsports, recording wins at Chicagoland and Kentucky, and earning top-five finishes in all three events, while leading 102 laps. The race will mark Reed's second start in the NASCAR Camping World Truck Series. He finished 17th in his series debut in Las Vegas in 2012.
The NASCAR Camping World Truck Series Next Era Energy 250 is set for Feb. 19 at 7:30 p.m. ET and will be televised live on FS1.
About Dexcom, Inc.: Dexcom, Inc., headquartered in San Diego, CA, is dedicated to helping people better manage their diabetes by developing and marketing continuous glucose monitoring (CGM) products and tools for adult and pediatric patients. With exceptional performance, patient comfort and lifestyle flexibility at the heart of its technology, users have consistently ranked Dexcom highest in customer satisfaction and loyalty. For more information on the Dexcom CGM, visit www.dexcom.com.
About Aslan Cold Storage & Transportation, LLC: Aslan Cold Storage, LLC has more than 60,000 square feet of refrigerated space and more than 11,000 square feet of pre-cooling space between our two Central Valley locations. With over 30 years of experience in the Agricultural Industry, they understand the needs of both crops and clients.
About Lira Motorsports: Lira Motorsports is a multi-car, multi series race team owned by Carlos and Amanda Lira. The team competes in the ARCA Racing Series, NASCAR Camping World Truck Series, NASCAR Whelen All-American Late Model, and IMSA Sportscar events nationwide. Lira Motorsports' ARCA and NASCAR Trucks programs are operated from an 18,000 square foot shop in Mooresville, North Carolina and the late model team operates from a 12,000 square foot facility in Port Orange, Florida, just minutes from Daytona International Speedway.
Tags: Ryan Reed
driver news, sponsor news, team news
Like our page on Facebook:
Watch Our Videos & More on YouTube:
ROUX product demo by Michael Lira


text:
Britney Spears focusing on self wellbeing
Los Angeles, Dec 3 (IANS) Singer Britney Spears, who recently turned 38, is now prioritising herself and her wellbeing.
The singer is embracing "a positive headspace" amid the ongoing row over her conservatorship, a source told Us Weekly.
"She has spent the last year prioritising herself and her well-being, something she did not have a chance to do as much during her Las Vegas residency. She has had less time with her sons but got really close with her mom, Lynne, and sister, Jamie Lynn, again recently. Britney spends most of her time at home with her boyfriend, Sam (Asghari), or alone. Her relationship with Sam is rock-solid. He brings her so much joy and is a source of stability in her often chaotic life," said the source.
The singer has been through a challenging time with her father, Jamie Spears, who has been her conservator since 2008. The 67-year-old was appointed to the role after his daughter's highly publicised breakdown and divorce from Kevin Federline, with whom the "Toxic" singer shares two sons, Sean Preston, 14, and Jayden, 13.
In September, a court declared that Jamie would continue as Britney's conservator after the role was temporarily taken over by Jodi Montgomery due to "personal health reasons".
The "Circus" hitmaker is taking time to focus on herself.
"She isn't making any new music at the moment and there are no immediate plans to reschedule her Domination residency," the source claimed.
sug/vnc


text:
Health Dept. 815.727.8480
Community Health Center 815.727.8670
COVID-19 Vaccine Third Dose and Booster Dose
COVID-19 Vaccine for Ages 5-11
Vaccine Locations
COVID-19 Weekly Newsletter
Contact Tracing Program
COVID Prevention
IDPH Updated School Guidance
IDPH COVID-19 Guidelines
Organization Case Report Forms
Will County COVID-19 Data
Will County Resources
MAPP (Will County Mobilizing for Action Through Planning & Partnerships)
Acute Community Services (ACS)
Adult Outpatient Mental Health Program
Behavioral Health- FAQs
Child & Adolescent Outpatient Mental Health Programs
Doctoral Internship in Clinical Psychology
Family Support Program
Intake, Orientation & Registration
Mental Health Corrections Program
Mobile Crisis Response (MCR)
Philosophy of Treatment
Practicum Clinical Training Program
Projects for Assistance in Transition from Homelessness (PATH)
Community Health Center
Behavioral Health Therapy
Dental Mobile Unit
Diabetes Education Sessions
Important Forms for New Patients
Insurance Assistance
PrEP Clinic
Teen Clinic
Body Art & Tanning Facilities
Environmental Health Application Forms
Environmental Health Laboratory
Radon Program
Safe Swimming Facilities
Wells & Septic Systems
West Nile, Mosquito Mitigation
AOK (All Our Kids) Early Childhood Network
Better Birth Outcomes
Epidemiology & Communicable Disease
HealthWorks of Illinois
High Risk Infant Follow-Up
HIV/STD Care Clinic
Tobacco Control & Prevention
Travel Immunizations
WIC (Women, Infants & Children)
Medical Reserve Corps Volunteer Form
Request for Presentation
Pop-Up COVID-19 Vaccination Event Request
DATA & PUBLICATIONS
Community Health Data
Food Access Maps
Health Department Partnership Helping to Prevent Teen Pregnancy in Bolingbrook
Jan 24, 2020 | News and Events
When it comes to helping adolescents grow into healthy and happy adults, as a first lady once said, "it takes a village." Selina Jones, who leads the Bolingbrook High School Junior S.T.A.R.S group, knows the value of surrounding her girls with a village. S.T.A.R.S. stands for "strong, thriving, abundant girls who shine." The purpose of this group is to provide the tools and resources for the young ladies to become leaders and create their own pathways toward adulthood. The S.T.A.R.S group consists of 40-plus girls. Selina Jones is the founder of this group, and has been leading it since 2016.
Recently, the S.T.A.R.S group has joined forces with the WCHD (Will County Health Department) Teen Pregnancy Prevention Program (TPP), and is now also considered the Youth Leadership Council for the TPP program. In 2016, the Will County Health Department, through a five-year grant from the Illinois Department of Human Services, collaborated with the Valley View School District to address the higher than average teen birth rate and STD (Sexually Transmitted Disease) rate in Bolingbrook. As a part of this grant, the Will County Health Department was required to develop a youth leadership group, who would lend an important and critical youth voice towards initiatives to reduce teen pregnancies in Bolingbrook.
Selina Jones, who was already a member of the Will County Health Department's Bolingbrook Alliance for Teen Pregnancy Prevention leadership group, graciously agreed to allow the Will County Health Department's TPP program to adopt her S.T.A.R.S group as the Youth Leadership Council. It was a natural partnership, as Jones' group has been providing valuable input towards TPP efforts since 2017.
(L to R) BHS S.T.A.R.S. leader Selina Jones, WCHD Public Health Educators David Campbell and Katherine Schram, and S.T.A.R.S student officer Manyah Chatman.
"With S.T.A.R.S, I'm able to help these young women prepare for their futures with input from numerous local agencies," Jones explained. "This helps with leadership and empowerment as they move on and grow. The Health Department is one of many agencies who are involved (others include Marquette Bank, Bolingbrook Bank and Trust, and Culvers). We are affiliated with the Bolingbrook Chamber, which has helped many of our S.T.A.R.S members find jobs in the area."
The WCHD – S.T.A.R.S partnership has led to new growth for both the students and the TPP program. David Campbell, Will County Community Health Educator, teams up with Selina Jones to lead the Youth Leadership Council. During their first year, Campbell taught the teen pregnancy prevention curriculum to the group. "David has awesome spirit," said Jones. "He's a man, but communicates and relates so well to these young women, and really builds up their confidence."
WCHD Public Health Educator David Campbell offers important educational information to Bolingbrook High School S.T.A.R.S students.
Manyah Chatman, a Bolingbrook High School senior and S.T.A.R.S. club officer, agrees. "He (Campbell) actually cares for us. As young women, it makes us want to do better. It helps make our paths to success smoother and easier."
The WCHD – S.T.A.R.S partnership is branching out to more community-based activities, including having the group take a tour of the Will County Community Health Center's Teen Clinic in Bolingbrook towards the end of the school year. The students would learn about the Teen Clinic, including its services, which include STD testing and treatment, and access to various types of birth control methods. In addition, they would also evaluate the Teen Clinic to determine its "adolescent friendliness level." Adolescent friendliness includes things such as providing confidential services or having a welcoming, teen oriented waiting area. By increasing adolescent friendliness, teens are more likely to use the much-needed services.
Members of the Bolingbrook High School S.T.A.R.S group pose after hearing lessons from WCHD Public Health Educators David Campbell and Katherine Schram (both are in back row with S.T.A.R.S leader Selina Jones).
"Preventing teen pregnancy within a community can be complicated due to the multiple variables that make a teen at risk for teen pregnancy in the first place," said Campbell. "Giving our youth a voice, and hearing what they think and feel, will go far in solving the problem. This collaboration between the S.T.A.R.S group and the TPP Youth Leadership Council will help prevent teen pregnancies and give youth the tools they need to becoming healthy and happy adults."
For more information on the Will County Health Department's Teen Pregnancy Prevention Program, go to http://willcountyhealth.org/teen-pregnancy-prevention-program/.
Copyright © 2020 by Will County Health Department and Community Health Center | Design by MoatzArt
Arabic English Filipino French Korean Polish Spanish


Der Rapper wurde tot in seiner Wohnung aufgefunden.
Anticipation, high octane action, laughs, and a truly magnificent payoff. Prime time television if ever I saw it.
He shared visuals for "Drippin'" and "That's a Check" featuring Rick Ross last night.
The Metro Boomin-produced cut is the first look at the BasedGod's long awaited release.
And... loved-up astronaut Future is back.
Lil Boat took to Ebro Darden's show to silence his critics, and you can't argue with the result.
There's no need to tear up your gym membership just yet.
Kmalith and Lil Ralphy are part of young hip-hop crew that are taking over Melbourne's 3977.


Tupperzik opens with the arrival at a shanty village on the fringe of futuristic Nylon Town. Inside a caravan a madam brings out a tray of Tupperzik Tubs to an eager group of Asian housewives. On opening each tub a wave of orgasmic sound washes over the housewives. The party is short lived as the music police come crashing through the door and bust the women. One housewife escapes down a garbage chute. Later, in a dingy bathroom, we see the Police Chief enjoying a tub of contraband Tupperzik. There is a knock at the door. Could it be the escaped housewife?


Knott's 13-acre water wonder world, adjacent to the world-famous Knott's Berry Farm Theme Park, has a decidedly Southern California theme inspired by beach and surf towns of the 1950's Orange and Los Angeles County coast. Water slides and attractions at Knott's Soak City pay tribute to the area's rich surfing heritage with names like Malibu Run and Laguna Storm Watch Tower. And like those at Knott's Theme Park, the rides and attractions at Knott's Soak City are truly world-class.
One day unlimited use of all water rides and attractions (height restrictions apply).


text:
.class public final Lyi/R$layout;
.super Ljava/lang/Object;
.source "R.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lyi/R;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x19
    name = "layout"
.end annotation

# static fields
.field public static final yi_app_title:I = 0x509000c

.field public static final yi_app_title_2_button:I = 0x509000d

.field public static final yi_list_item_1:I = 0x5090000

.field public static final yi_list_item_10:I = 0x5090005

.field public static final yi_list_item_11:I = 0x5090006

.field public static final yi_list_item_12:I = 0x5090007

.field public static final yi_list_item_13:I = 0x5090008

.field public static final yi_list_item_14:I = 0x5090010

.field public static final yi_list_item_2:I = 0x5090001

.field public static final yi_list_item_3:I = 0x5090002

.field public static final yi_list_item_4:I = 0x5090003

.field public static final yi_list_item_5:I = 0x509000e

.field public static final yi_list_item_9:I = 0x5090004

.field public static final yi_list_item_header:I = 0x5090009

.field public static final yi_multi_mode_custom_actionbar:I = 0x5090011

.field public static final yi_multi_mode_custom_actionbar_light:I = 0x5090012

.field public static final yi_preference_category:I = 0x509000f

.field public static final yi_search_bar:I = 0x509000b

.field public static final yi_tab_content:I = 0x509000a

# direct methods
.method public constructor <init>()V
    .locals 0

    .prologue
    .line 580
    invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

redpajama_set_name: RedPajamaGithub


Does your outdoor space need an upgrade that makes it both attractive and functional? SeaScape Landscaping LLC can help and we know just where to start!
However, sometimes we do need to start from scratch. Don't worry because SeaScape Landscaping LLC has plenty of experience with that too! If you really just read to rip up that dry sod and replace much of the outdoor fixtures, we'll come up with a design that truly transforms your space.
What Types of Landscaping Are There in Moorestown?
What Are the SeaScape Landscaping LLC Values for Landscape Design?


text:
Listen to New Music from Nerves
Ado Lyons - Aug 14, 2020
Time Trial is a brand new single from this Galway-Mayo band who are currently trying to make a name for themselves in Dublin. Read all about it...
Nerves are a band who are starting to appear as a large blip on many people's radar, after a run of very impressive singles over the last year or so. With members hailing from Spiddal in Co. Galway and Foxford in Co. Mayo, the band are now setting down roots in Dublin with the hope of making it big in the music industry. And it's looking like they are on track, with bucket-loads of positive press from some of the biggest publications around.
Their latest single, "Time Trial", was just released on August 14th and has already been given radio play on RTÉ 2fm as well as coverage in Hot Press. It's looking set to be a very popular tune, with its mix of post-punk and indie blending perfectly into a track that is as good for bopping as it is for rocking out. Have a listen to the track on Spotify and then follow the band on social media HERE to keep track of their inevitable rise.
Photo by Patryk Gizicki
Tagged: band, Galway, Irish, Mayo, Music, New Music, Punk, Single
Subscribe to the This is Galway Newsletter
Galway Job Opportunities Continue to Rise...
Totes Magotes: Where to buy Galway's coolest Tote Bags
What To Do In Galway This Weekend
Let's Get Galway Back Working!
Hidden Space in Galway City transforms for The Booley Sessions
Christmas Memories from some Famous Galway Faces
Draíocht: Youth Voices - A Series of Stunning live Music Videos
Explore the tastes of Galway's Finest Tapas


text:
<?php
/**
 * Created by PhpStorm.
 * User: abrosimov
 * Date: 02.10.15
 * Time: 18:16
 */

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\View\Model\JsonModel;

use Application\Form\RegistrationForm;
use Application\Form\LoginForm;
use Application\Form\ActiveForm;

use Application\Form\EmailForm;
use Application\Form\PasswordForm;
use Application\Form\OtherForm;

use Zend\Mail\Message;
use Zend\Mime\Message as MimeMessage;
use Zend\Mail\Transport\Smtp;
use Zend\Mail\Transport\SmtpOptions;
use Zend\Mime\Part;

class AccountsController extends AbstractActionController
{
    //------------------------------------------------------------------------------------------------------------------
    public function indexAction()
    {
        $this->redirect()->toUrl('/accounts/edit');
    }

    // Visible actions =================================================================================================
    //------------------------------------------------------------------------------------------------------------------
    public function registrationAction()
    {
        $formRegistration = new RegistrationForm('registration');
        $view = new ViewModel(array('formRegistration' =>$formRegistration));
        $view->setTemplate('accounts/registration');
        return $view;
    }

    //------------------------------------------------------------------------------------------------------------------
    public function loginAction()
    {
        $formLogin = new LoginForm('login');
        $view = new ViewModel(array('formLogin' => $formLogin));
        $view->setTemplate('accounts/login');
        return $view;
    }

    //------------------------------------------------------------------------------------------------------------------
    public function editAction()
    {
        if (!isset($_SESSION['profile_name'])) {
            $this->redirect()->toUrl('/accounts/login');
        };

        $profile = $this->getUsersTable()->getOneBy(array('id' => $_SESSION['id']));
        if ($profile['activation'] != '') {

            $formActive = new ActiveForm();
            $formActive->setData($profile);

            $view = new ViewModel(array(
                    'formActive' => $formActive,
                    'activation' => true
                )
            );
            $view->setTemplate('accounts/edit');
            return $view;
        };

        $profile['email_current'] = $profile['email'];
        $profile['email'] = '';

        $formOther = new OtherForm();
        $formOther->setData($profile);

        $formEmail = new EmailForm();
        $formEmail->setData($profile);

        $formPassword = new PasswordForm();
        $formPassword->setData($profile);

        $view = new ViewModel(array(
                'formEmail' => $formEmail,
                'formPassword' => $formPassword,
                'formOther' => $formOther,
                'activation' => false
            )
        );
        $view->setTemplate('accounts/edit');
        return $view;
    }

    // Invisible actions ===============================================================================================
    //------------------------------------------------------------------------------------------------------------------
    public function signupAction()
    {
        if (!$this->getRequest()->isPost()){
            $this->redirect()->toUrl('/accounts/registration');
        }
        $post = $this->request->getPost();

        $formRegistration = new RegistrationForm('registration');
        $formRegistration->setData($post);

        if (!$formRegistration->isValid()) {
            $model = new ViewModel(array(
                'formRegistration' => $formRegistration,
                'message' => 'Test Error',
                'error' => true,
            ));
            $model->setTemplate('accounts/registration');
            return $model;
        }

        $profileName = $post['profile_name'];
        $email       = $post['email'];

        if ($this->getUsersTable()->getOneBy(array('profile_name' => $profileName))) {
            $model = new ViewModel(array(
                'formRegistration' => $formRegistration,
                'message' => 'Имя профиля уже существует.',
                'error' => true,
            ));
            $model->setTemplate('registration');
            return $model;
        }

        if ($this->getUsersTable()->getOneBy(array('email' => $email))) {
            $model = new ViewModel(array(
                'formRegistration' => $formRegistration,
                'message' => 'E-mail уже существует.',
                'error' => true,
            ));
            $model->setTemplate('registration');
            return $model;
        }

        $key = md5(microtime());

        $profile = $formRegistration->getData();
        $profile['password'] = md5($profile['password']);
        $profile['is_active'] = 0;
        $profile['activation'] = $key;

        $this->getUsersTable()->save($profile);

        $this->sendMail($email, $key);

        $profile = $this->getUsersTable()->getOneBy(array('profile_name' => $profile['profile_name']));

        $_SESSION['id']             = $profile['id'];
        $_SESSION['profile_name']   = $profile['profile_name'];
        $_SESSION['email']          = $profile['email'];
        $_SESSION['password']       = $profile['password'];

        $this->redirect()->toUrl('/accounts');
    }

    //------------------------------------------------------------------------------------------------------------------
    public function activationAction()
    {
        if (!$this->getRequest()->isPost()){
            return $this->redirect()->toUrl('/accounts');
        }

        $post = $this->request->getPost();
        var_dump($post);

        if (isset($post['submit_email'])) {
            $key = md5(microtime());
            $this->sendMail($_SESSION['email'], $key);

            $profile['id'] = $_SESSION['id'];
            $profile['activation'] = $key;

            $this->getUsersTable()->save($profile);
            return $this->redirect()->toUrl('/accounts');
        }

        $profile = $this->getUsersTable()->getOneBy(array('activation' => $post['activation_key']));

        if (!$profile) {
            $formActive = new ActiveForm();

            $view = new ViewModel(array(
                    'formActive' => $formActive,
                    'activation' => true,
                    'message' => 'Key invalid',
                    'error' => true
                )
            );
            $view->setTemplate('accounts/edit');
            return $view;
        }

        $post = [];
        $post['id'] = $profile['id'];
        $post['activation'] = '';

        $this->getUsersTable()->save($post);
        return $this->redirect()->toUrl('/accounts');
    }

    //------------------------------------------------------------------------------------------------------------------
    public function signinAction()
    {
        if (!$this->getRequest()->isPost()){
            $this->redirect()->toUrl('/accounts/login');
        }
        $post = $this->request->getPost();

        // Validation form ----
        $formLogin = new LoginForm();
        $formLogin->setData($post);

        if (!$formLogin->isValid()) {
            $model = new ViewModel(array(
                'formLogin' => $formLogin,
                'message' => '111',
                'error' => true,
            ));
            $model->setTemplate('accounts/login');
            return $model;
        }

        // Validation auth
        $profile = $this->getUsersTable()->getOneBy(array(
            'profile_name' => $post['profile_name'],
            'password'     => md5($post['password'])
        ));

        if (!$profile) {
            $view = new ViewModel(array(
                    'formLogin'  => $formLogin,
                    'message' => 'Incorrect Profile name or Password.',
                    'error' => true
                )
            );
            $view->setTemplate('accounts/login');
            return $view;
        }

        $_SESSION['id']           = $profile['id'];
        $_SESSION['profile_name'] = $profile['profile_name'];
        $_SESSION['email']        = $profile['email'];
        $_SESSION['password']     = $profile['password'];

        $this->redirect()->toUrl('/' . $profile['profile_name']);
    }

    //------------------------------------------------------------------------------------------------------------------
    public function emailAction()
    {
        if (!$this->getRequest()->isPost()){
            $this->redirect()->toUrl('/accounts/edit');
        }
        $post = $this->request->getPost();
        $profile = $this->getUsersTable()->getOneBy(array('id' => $_SESSION['id']));
        $profile['email_current'] = $profile['email'];

        // Validation forms ----
        $formEmail = new EmailForm();
        $formEmail->setData($post);

        $formPassword = new PasswordForm();
        $formPassword->setData($profile);

        $formOther = new OtherForm();
        $formOther->setData($profile);

        if (!$formEmail->isValid()) {
            $model = new ViewModel(array(
                'formEmail' => $formEmail,
                'formPassword' => $formPassword,
                'formOther' => $formOther,
                'message' => '',
                'error' => true,
            ));
            $model->setTemplate('accounts/edit');
            return $model;
        }

        // Validation email in db
        $post['id'] = $profile['id'];
        $profile_exist = $this->getUsersTable()->getOneBy(array('email' => $post['email']));

        if ($profile_exist && ($profile_exist->id != $post['id'])) {
            $model = new ViewModel(array(
                'formEmail' => $formEmail,
                'formPassword' => $formPassword,
                'formOther' => $formOther,
                'message' => 'E-mail address already exists.',
                'error' => true,
            ));
            $model->setTemplate('accounts/edit');
            return $model;
        }

        $this->getUsersTable()->save($post);
        $_SESSION['email'] = $post['email'];

        $this->redirect()->toUrl('/accounts');
    }

    //------------------------------------------------------------------------------------------------------------------
    public function passwordAction()
    {
        if (!$this->getRequest()->isPost()){
            $this->redirect()->toUrl('/accounts/edit');
        }
        $post = $this->request->getPost();
        $profile = $this->getUsersTable()->getOneBy(array('id' => $_SESSION['id']));
        $profile['email_current'] = $profile['email'];
        $profile['email'] = '';

        // Validation forms ----
        $formEmail = new EmailForm();
        $formEmail->setData($profile);

        $formPassword = new PasswordForm();
        $formPassword->setData($post);

        $formOther = new OtherForm();
        $formOther->setData($profile);

        if (!$formPassword->isValid()) {
            $model = new ViewModel(array(
                'formEmail' => $formEmail,
                'formPassword' => $formPassword,
                'formOther' => $formOther,
                'message' => '',
                'error' => true,
            ));
            $model->setTemplate('accounts/edit');
            return $model;
        }

        // Validation password in db
        $post['password_current'] = md5($post['password_current']);
        $post['password']         = md5($post['password']);
        $post['id']               = $profile['id'];

        if ($profile['password'] != $post['password_current']) {
            $model = new ViewModel(array(
                'formEmail' => $formEmail,
                'formPassword' => $formPassword,
                'formOther' => $formOther,
                'message' => 'Password is not changed. <br> Access denied.',
                'error' => true,
            ));
            $model->setTemplate('accounts/edit');
            return $model;
        }

        $this->getUsersTable()->save($post);
        $_SESSION['password'] = $post['password'];

        $this->redirect()->toUrl('/accounts');
    }

    //------------------------------------------------------------------------------------------------------------------
    public function otherAction()
    {
        if (!$this->getRequest()->isPost()){
            $this->redirect()->toUrl('/accounts/login');
        }

        $profile = $this->getUsersTable()->getOneBy(array('id' => $_SESSION['id']));
        $post = $this->request->getPost();
        $post['id'] = $profile['id'];

        $this->getUsersTable()->save($post);
        $this->redirect()->toUrl('/accounts/');
    }

    //------------------------------------------------------------------------------------------------------------------
    public function searchAction()
    {
        $profile_name = $this->request->getPost('search');

        $users = $this->getUsersTable()->search($profile_name);

        foreach($users as $user) {
            $result[] = $user['profile_name'];
        }

        $view = new JsonModel(array(
            'result' => $result,
            'success'=>true,
        ));

        return $view;
/*

        //$profile_name = $this->request->getPost('search');
        $profile_name = 'anton';

        $profiles = $this->getUsersTable()->getManyBy(array('profile_name' => $profile_name));

        foreach($profiles as $profiles) {
           $result[] = $profiles['profile_name'];
        }

        //echo 'sdfgsdfg';
        //die();
        //echo "I get param1 = ".$_POST['param1']." and param2 = ".$_POST['param2'];

        $view = new JsonModel(array(
            'result' => $result,
            //'result' => ['an', 'anton', 'alex'],
            'success'=>true,
        ));

        //var_dump($view);
        //die($view);

        return $view;*/
    }

    //------------------------------------------------------------------------------------------------------------------
    public function logoutAction()
    {
        session_destroy();
        $this->redirect()->toUrl('/');
    }

    // Helper function =================================================================================================
    //------------------------------------------------------------------------------------------------------------------
    public function getUsersTable()
    {
        return $this->getServiceLocator()->get('UsersTable');
    }

    //------------------------------------------------------------------------------------------------------------------
    protected function sendMail($email, $activation_key)
    {
        $mailText = 'Для подтверждения регистрации войди те на сайт и ввдете это код: ' . $activation_key;

        $mimePart = new Part($mailText);
        $mimePart->type = \Zend\Mime\Mime::TYPE_HTML;
        $mimePart->charset = 'utf-8';
        $body = new MimeMessage();
        $body->setParts([$mimePart]);

        $message = new Message();
        $message->setEncoding('UTF-8');
        $message->setSubject('Aperture: activation key');
        $message->addTo($email);
        $message->addFrom('admin@abrosimov-lx.nixsolutions.com', 'Test');
        $message->setBody($body);

        $options = new SmtpOptions();
        $options->setHost('10.10.0.114');
        $options->setPort('2525');
        $transport = new Smtp($options);

        $headers = array(
            //'EXTERNAL' => 1,
            'PROJECT' => 'Aperture',
            'EMAILS' => 'a.abrosimov@nixsolutions.com'
        );
        foreach ($headers as $key => $value) {
            $message->getHeaders()->addHeaderLine($key, $value);
        }

        $transport->send($message);
    }
}


text:
module.exports = {
  "authentication_oauth" : [ "/${apiVersion}/oauth/token", "POST" ],

  "responses_get" : [ "/${apiVersion}/${clientId}/responses/${id}", "GET"],

  "events_all" : [ "/${apiVersion}/${clientId}/events", "GET" ],

  "hooks_create" : [ "/${apiVersion}/${clientId}/hooks", "POST" ],
  "hooks_all" : [ "/${apiVersion}/${clientId}/hooks", "GET" ],
  "hooks_get" : [ "/${apiVersion}/${clientId}/hooks/${id}", "GET" ],
  "hooks_save" : [ "/${apiVersion}/${clientId}/hooks/${id}", "PUT" ],

  "cardregistration_create" : [ "/${apiVersion}/${clientId}/cardregistrations", "POST" ],
  "cardregistration_get" : [ "/${apiVersion}/${clientId}/cardregistrations/${id}", "GET" ],
  "cardregistration_save" : [ "/${apiVersion}/${clientId}/cardregistrations/${id}", "PUT" ],

  "preauthorization_create" : [ "/${apiVersion}/${clientId}/preauthorizations/card/direct", "POST" ],
  "preauthorization_get" : [ "/${apiVersion}/${clientId}/preauthorizations/${id}", "GET" ],
  "preauthorization_save" : [ "/${apiVersion}/${clientId}/preauthorizations/${id}", "PUT" ],

  "card_get" : [ "/${apiVersion}/${clientId}/cards/${id}", "GET" ],
  "card_save" : [ "/${apiVersion}/${clientId}/cards/${id}", "PUT" ],

  // pay ins URLs
  "payins_card-web_create" : [ "/${apiVersion}/${clientId}/payins/card/web/", "POST" ],
  "payins_card-direct_create" : [ "/${apiVersion}/${clientId}/payins/card/direct/", "POST" ],
  "payins_preauthorized-direct_create" : [ "/${apiVersion}/${clientId}/payins/preauthorized/direct/", "POST" ],
  "payins_bankwire-direct_create" : [ "/${apiVersion}/${clientId}/payins/bankwire/direct/", "POST" ],
  "payins_directdebit-web_create" : [ "/${apiVersion}/${clientId}/payins/directdebit/web", "POST" ],
  "payins_directdebit-direct_create" : [ "/${apiVersion}/${clientId}/payins/directdebit/direct", "POST" ],
  "payins_get" : [ "/${apiVersion}/${clientId}/payins/${id}", "GET" ],
  "payins_createrefunds" : [ "/${apiVersion}/${clientId}/payins/${id}/refunds", "POST" ],

  "payouts_bankwire_create" : [ "/${apiVersion}/${clientId}/payouts/bankwire/", "POST" ],
  "payouts_get" : [ "/${apiVersion}/${clientId}/payouts/${id}", "GET" ],

  "refunds_get" : [ "/${apiVersion}/${clientId}/refunds/${id}", "GET" ],

  "transfers_create" : [ "/${apiVersion}/${clientId}/transfers", "POST" ],
  "transfers_get" : [ "/${apiVersion}/${clientId}/transfers/${id}", "GET" ],
  "transfers_createrefunds" : [ "/${apiVersion}/${clientId}/transfers/${id}/refunds", "POST" ],

  "users_createnaturals" : [ "/${apiVersion}/${clientId}/users/natural", "POST" ],
  "users_createlegals" : [ "/${apiVersion}/${clientId}/users/legal", "POST" ],

  "users_createbankaccounts_iban" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/iban", "POST" ],
  "users_createbankaccounts_gb" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/gb", "POST" ],
  "users_createbankaccounts_us" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/us", "POST" ],
  "users_createbankaccounts_ca" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/ca", "POST" ],
  "users_createbankaccounts_other" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/other", "POST" ],

  "users_all" : [ "/${apiVersion}/${clientId}/users", "GET" ],
  "users_allwallets" : [ "/${apiVersion}/${clientId}/users/${id}/wallets", "GET" ],
  "users_allbankaccount" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts", "GET" ],
  "users_allcards" : [ "/${apiVersion}/${clientId}/users/${id}/cards", "GET" ],
  "users_alltransactions" : [ "/${apiVersion}/${clientId}/users/${id}/transactions", "GET" ],
  "users_allkycdocuments" : [ "/${apiVersion}/${clientId}/users/${id}/KYC/documents", "GET" ],
  "users_get" : [ "/${apiVersion}/${clientId}/users/${id}", "GET" ],
  "users_getnaturals" : [ "/${apiVersion}/${clientId}/users/natural/${id}", "GET" ],
  "users_getlegals" : [ "/${apiVersion}/${clientId}/users/legal/${id}", "GET" ],
  "users_getbankaccount" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/${bankAccountId}", "GET" ],
  "users_deactivate_bankaccount" : [ "/${apiVersion}/${clientId}/users/${id}/bankaccounts/${bankAccountId}", "PUT" ],
  "users_savenaturals" : [ "/${apiVersion}/${clientId}/users/natural/${id}", "PUT" ],
  "users_savelegals" : [ "/${apiVersion}/${clientId}/users/legal/${id}", "PUT" ],
  "users_getemoney" : [ "/${apiVersion}/${clientId}/users/${id}/emoney", "GET" ],

  "wallets_create" : [ "/${apiVersion}/${clientId}/wallets", "POST" ],
  "wallets_alltransactions" : [ "/${apiVersion}/${clientId}/wallets/${id}/transactions", "GET" ],
  "wallets_get" : [ "/${apiVersion}/${clientId}/wallets/${id}", "GET" ],
  "wallets_save" : [ "/${apiVersion}/${clientId}/wallets/${id}", "PUT" ],

  "kyc_documents_create" : [ "/${apiVersion}/${clientId}/users/${id}/KYC/documents/", "POST" ],
  "kyc_documents_get" : [ "/${apiVersion}/${clientId}/users/${id}/KYC/documents/${documentId}", "GET" ],
  "kyc_documents_save" : [ "/${apiVersion}/${clientId}/users/${id}/KYC/documents/${documentId}", "PUT" ],
  "kyc_page_create" : [ "/${apiVersion}/${clientId}/users/${id}/KYC/documents/${documentId}/pages", "POST" ],
  "kyc_documents_all" : [ "/${apiVersion}/${clientId}/KYC/documents", "GET" ],
  "kyc_documents_get_alt" : [ "/${apiVersion}/${clientId}/KYC/documents/${id}", "GET" ],

  "disputes_get" : [ "/${apiVersion}/${clientId}/disputes/${id}", "GET"],
  "disputes_save_tag" : [ "/${apiVersion}/${clientId}/disputes/${id}", "PUT"],
  "disputes_save_contest_funds" : [ "/${apiVersion}/${clientId}/disputes/${id}/submit", "PUT"],
  "dispute_save_close" : [ "/${apiVersion}/${clientId}/disputes/${id}/close", "PUT"],

  "disputes_get_transactions" : [ "/${apiVersion}/${clientId}/disputes/${id}/transactions", "GET"],

  "disputes_all" : [ "/${apiVersion}/${clientId}/disputes", "GET"],
  "disputes_get_for_wallet" : [ "/${apiVersion}/${clientId}/wallets/${id}/disputes", "GET"],
  "disputes_get_for_user" : [ "/${apiVersion}/${clientId}/users/${id}/disputes", "GET"],

  "disputes_document_create" : [ "/${apiVersion}/${clientId}/disputes/${id}/documents", "POST"],
  "disputes_document_page_create" : [ "/${apiVersion}/${clientId}/disputes/${id}/documents/${documentId}/pages", "POST"],
  "disputes_document_save" : [ "/${apiVersion}/${clientId}/disputes/${id}/documents/${documentId}", "PUT"],
  "disputes_document_get" : [ "/${apiVersion}/${clientId}/dispute-documents/${id}", "GET"],
  "disputes_document_get_for_dispute" : [ "/${apiVersion}/${clientId}/disputes/${id}/documents", "GET"],
  "disputes_document_all" : [ "/${apiVersion}/${clientId}/dispute-documents", "GET"],

  "disputes_repudiation_get" : [ "/${apiVersion}/${clientId}/repudiations/${id}", "GET"],

  "disputes_repudiation_create_settlement" : [ "/${apiVersion}/${clientId}/repudiations/${id}/settlementtransfer", "POST"],
  "disputes_repudiation_get_settlement" : [ "/${apiVersion}/${clientId}/settlements/${id}", "GET"],

  "reports_transaction_create" : ["/${apiVersion}/${clientId}/reports/transactions/", "POST"],
  "reports_wallet_create" : ["/${apiVersion}/${clientId}/reports/wallets/", "POST"],
  "reports_get" : ["/${apiVersion}/${clientId}/reports/${id}", "GET"],
  "reports_all" : ["/${apiVersion}/${clientId}/reports", "GET"],

  "mandates_directdebit-web_create" : ["/${apiVersion}/${clientId}/mandates/directdebit/web/", "POST"],
  "mandates_get" : ["/${apiVersion}/${clientId}/mandates/${id}", "GET"],
  "mandates_cancel" : ["/${apiVersion}/${clientId}/mandates/${id}/cancel", "PUT"],
  "mandates_all" : ["/${apiVersion}/${clientId}/mandates", "GET"],
  "mandates_get_for_user" : ["/${apiVersion}/${clientId}/users/{$id}/mandates", "GET"],
  "mandates_get_for_bank_account" : ["/${apiVersion}/${clientId}/users/{$id}/bankaccounts/${bankAccountId}/mandates", "GET"],

  "clients_get" : ["/${apiVersion}/${clientId}/clients", "GET"],
  "clients_update" : ["/${apiVersion}/${clientId}/clients", "PUT"],
  "clients_upload_logo" : ["/${apiVersion}/${clientId}/clients/logo", "PUT"],
  "client_wallets_all" : ["/${apiVersion}/${clientId}/clients/wallets/", "GET"],
  "client_wallets_get" : ["/${apiVersion}/${clientId}/clients/wallets/${fundsType}/${currency}", "GET"],
  "client_wallets_by_fundsType" : ["/${apiVersion}/${clientId}/clients/wallets/${fundsType}", "GET"],
  "client_wallets_transactions" : ["/${apiVersion}/${clientId}/clients/wallets/${fundsType}/${currency}/transactions/", "GET"],

  "banking_aliases_iban_create" : ["/${apiVersion}/${clientId}/wallets/${walletId}/bankingaliases/iban", "POST"],
  "banking_aliases_get" : ["/${apiVersion}/${clientId}/bankingaliases/${id}", "GET"],
  "banking_aliases_update" : ["/${apiVersion}/${clientId}/bankingaliases/${id}", "PUT"],
  "banking_aliases_all" : ["/${apiVersion}/${clientId}/wallets/${walletId}/bankingaliases", "GET"]
};


Our first Drupal 7 site, http://keithfostergolfarchitect.com, was launched making another satisfied client. We are very pleased to have the privilege of working with Keith. Also, thanks to Chris at http://www.onawiredesign.com/ for a beautiful design.


IDEMIA, IdentoGO® (a division of IDEMIA) and IDEMIA's subsidiaries have created this Privacy Statement to provide information on how IDEMIA handles personal information and the choices you can make about the way your information is collected and used. This Privacy Statement applies to IDEMIA websites that link to this Privacy Statement. Additional information on our personal information practices may be provided in notices provided at the time of data collection. To the extent a notice provided at the time of collection conflicts with this Privacy Statement, such notice will control.
We may collect information, including personal information, about you as you use our websites and interact with us. "Personal information" is data that reasonably can be used to identify or describe an individual, and may include name, address, email address, phone number, social media account information, or payment card number. You do not need to provide personal information simply to browse our website. If we link other data with your personal information, we will treat that linked data as personal information. We also collect personal information from trusted third-party sources and engage third parties to collect personal information to assist us (collectively "Business Partners").
Provide products or services you have purchased or requested, including fingerprint-based background checks.
Improve and personalize your experience on our website.
Conduct surveys, marketing promotions, contests or giveaways.
Manage an application for employment with IDEMIA.
In some instances, IDEMIA may automatically collect data through cookies, web logs, web beacons and other similar applications. This information is used to better understand and improve the usability, performance, and effectiveness of the website and to help tailor content or offers for you. Please read the "Cookies and Other Web Technologies" section below for more information.
If you voluntarily provide personal information, you consent to the collection and use of your personal information as described in this Privacy Statement. If, in connection with your use of a particular service, we ask to use your data in a way not described in this Privacy Statement and you do not wish to permit that use, you can choose not to use the particular service.
IDEMIA keeps your personal information confidential. We will not sell, rent or lease your personal information to others. Unless we have your permission, we will not use or share your personal information in ways unrelated to the ones described at the time you provide the data. IDEMIA engages service providers and suppliers ("Business Partners") to perform certain functions on MorphTrust's behalf. For example, Business Partners may provide services to you, maintain IDEMIA information technology systems, process credit card transactions, provide web hosting services and assist IDEMIA with marketing and communication initiatives. Business Partners will be permitted to obtain only the personal information they need to perform the services. They are required to maintain the confidentiality of the information received on MorphTrust's behalf and are prohibited from using it for any other purpose. Information provided by you to IDEMIA for the purpose of submitting to a background check will be shared with one or more government agencies as part of the background check process.
We may access and/or disclose your personal information if we believe such action is necessary to: (a) comply with applicable law, regulation or legal process served on Lexmark; (b) comply with requests for information from police or government authorities; (c) protect and defend the rights or property of IDEMIA (including the enforcement of our agreements); or (d) act in urgent circumstances to protect the personal safety of IDEMIA employees or members of the public.
IDEMIA or its affiliates could merge with or be acquired by another business or their respective assets may be acquired. IDEMIA will seek appropriate protection for personal information in these types of transactions.
We protect the personal information entrusted to us and treat it securely in accordance with this Privacy Statement and applicable agreements with government agencies. IDEMIA implements physical, administrative, and technical safeguards to help protect your personal information from unauthorized access, use, or disclosure. We also require that our suppliers protect such information from unauthorized access, use and disclosure.
We will retain your personal information as needed to fulfill the purposes for which it was collected. We will retain and use your personal information as necessary to comply with our legal obligations, resolve disputes and enforce our agreements.
Your Internet Protocol (IP) address. This is a number automatically assigned to your computer whenever you are surfing the web. It allows web servers to locate and identify your computer, this is a unique address assigned to your PC by your Internet service provider or information systems department on a TCP/IP network.
We may provide links to other, third party websites and services that are outside of our control and not covered by this Privacy Statement. Third party websites that include links to a IDEMIA website are also outside of our control and not covered by this Privacy Statement. We encourage you to review the privacy statements posted on those websites (and all websites) you visit.
IDEMIA does not knowingly collect personal information from children under the age of 18 and does not target its websites to children under the age of 18. If we learn that we have collected personal information from children under the age of 18, we will take steps to delete such information from our systems.
IDEMIA may transfer your personal information to its business partners and contractors as described above.


Tucked between the lush cliffs of the Emerald Coast and the sparkling stretches of the breathtaking Caribbean Sea, the Couples Sans Souci resort offers intimate, all-inclusive hospitality at its finest. This adults-only resort stands apart with its sublime attention to detail, from the pristine white sands of its private beach, to its exotic gardens, to its award-winning restaurants, while guests will also find great pleasure from the luxurious Suites. The perfect venue for a romantic holiday or a honeymoon, the Couples Sans Souci resort will make your Caribbean holiday dreams come true.
With its colonial-style elegance, Couples Sans Souci is an authentic Caribbean hideaway, where the emphasis is on relaxation and rejuvenation.
An ideal place for a romantic break, superb facilities and amenities will ensure your stay is a private, intimate and truly unforgettable one.
The Deluxe Ocean Suite at Couples Sans Souci peers out over the Caribbean Sea and offers a covered seating area.
The Deluxe Ocean Verandah Suite at Couples Sans Souci features a large balcony that looks out over the Caribbean Sea.
The One Bedroom Ocean Suite at Couples Sans Souci features a large master bedroom, with a separate living area and panoramic views from the private balcony.
The One Bedroom Beachfront Suite at Couples Sans Souci is located just steps from the glorious white sand beach, while notable features include a large Jacuzzi tub, a walk-in shower and a separate living room.
The Penthouse Suite at Couples Sans Souci comes with stunning views out across the Caribbean Sea from the sizeable private balcony, and features a large, well-appointed living room.
The Prime Minister's Penthouse Suite at Couples Sans Souci is a 1200sq.ft. suite with one vast and lavish bedroom, plus a powder room, a walk-in shower and a Jacuzzi tub for two. The excellent views can be enjoyed from a large verandah.
The Hibiscus Cottage at Couples Sans Souci is hidden behind a glorious bougainvillea and has a cliff-side setting overlooking the Caribbean Sea. This cottage is a superb example of luxury, with its own infinity-edge Jacuzzi, a large living room, master bedroom and bathroom with a walk-in shower and Jacuzzi tub for two.
Beach Grill / Bella Vista - Casual dining on the beach, serving grills and fresh salads for lunch and authentic Caribbean specialities for dinner.


The ESQUISSE collection is based on Directoire-style codes, whose sober and straight lines reveal a sleek geometric elegance. Simplified by the choice of materials and fittings, and thanks to the bright colours of its patina, the Directoire-style is reinvented to unveil a Classic Chic identity.
The Esquisse collection is available in 5 finishes.


If you've not heard of Lewis Noble then do go and visit his website, his landscape works are wonderfully dynamic, full of life.
His creative process is key to the way he works, and he runs some great workshops where he takes you on the journey, so that you can bring your own mark-making, colour choices and styles with you at the same time as embracing a creative process that can bring about some of the most exciting work you may have produced to date. I am always up for learning new processes that I can incorporate into my practice and help me develop my own work.
Step one – gathering information on site.
Emerge yourself in the environment / landscape that you want to portray. Listen, feel, see. Capture in sketchbooks, colours, marks, lines, compositions.
Back in the studio with a pile of sketches, some that you like most you like bits of, some you really can't see anything useful in. Then starting with a piece you can see a interesting start of a composition, rip out the parts that don't work for you. Add torn pieces from other sketches that give you what you need to make your composition work whether that be a dark area, a particular set of marks, a line or a colour. In this way you improve and develop your composition.
Step three -Repeat step one and two and fill your sketch book with your new compositions, using pva glue to set them down.
This is understandably the hardest part of the process and is much more dependant on your own skills. However, you now have a book of reference material from which you can work. Lewis for example often moves between parts of collaged sketches, combining elements from one and then another. Working in multiple layers building up a history on his canvas until he gets closer to a composition he feels happy with and then continues to resolve.
There are some great videos of him working you can access from his FB group which show some him in action.
Here are some of my own sketchbook collages followed by 2 paintings I came out with as a consequence of this 3 intensive days on the course.


J&T has manufactured a wide range of foam-based acoustical materials over the years. Whether you want the foam on its own or with a barrier material, we can design a system to work for your unique situation.
We consider our closed cell foams to be 'sound blockers' which usually requires heavy, dense and thick materials. These materials are often used in multi-layered assemblies so that sound will not penetrate or pass through.
The more common open cell urethane foam is considered a 'sound absorber' which helps prevent sound from continuing to bounce and echo. Absorption occurs when the sound 'energy' is disrupted and converted into heat through the open cell structure of the foam.


It dawned on me a couple years ago that the meaning of "spiritual" had undergone a major shift. I go to Africa for a while, and when I come back things have changed, including the meaning of some words. Those changes come as a shock. But I can't complain, because sometimes I change meaning myself. One day when I was traveling in Burkina Faso we changed the meaning of a phrase in order to find a bit of humor in a dangerous situation.
I had traveled to the far southwest of the country; to a beautiful area with rolling hills and wooded grasslands. It gets good rainfall and is full of orange and mango trees. While good for the tress, the rainfall was not good for the unpaved road. It was often in very bad condition, keeping the abundant fruit and other produce from getting to the rest of the country. In the market mangoes were almost free – the combination of abundant supply and little demand illustrating the law of supply and demand I had learned in high school economics. At one point we had even driven over a bed of mangoes someone had abandoned on the road!
At the end of my work, I was with a couple colleagues traveling back down this road toward home. As usual, there were no other vehicles on the road. At one point, the road goes over a bridge that spans a small ravine — the roadway of the bridge being perhaps 80 feet above the rocky and mostly-dry river bed. When it came into sight, we saw a man sitting in a chair beside the bridge. He got up, walked to the middle of the road and waved for us to stop.
We got out to look. The structural beams of the steel bridge were even more bent and deformed than usual. We decided that the TV ads were right – we needed a "designated driver". With some other passengers I walked over the rickety bridge while our unfortunate designate slowly drove our good-sized 4×4 over the bridge. He was, perhaps, the most reluctant "designated driver" ever chosen by his peers.
I have been over a number of marginal bridges before or since, but none as scary as this one because of the height. Here are a few pictures including a satellite view of this bridge with a new paved road and new concrete bridge beside it.
If would like to know more about us and what we do, see our website, subscribe to this blog, or follow us on Facebook.
This entry was posted in Burkina Faso, Humor and tagged bridge, designated driver, Orodara, road. Bookmark the permalink.
← Where did this happen?