Alexis Belon is a New York based, self taught, mixed media artist. This online boutique brings together the reproductions of her art which are for sale, both the prints and the books. Available for hire/travel.


Lacunar amnesia is the loss of memory about one specific event. It is a type of amnesia that leaves a lacuna (a gap) in the record of memory in the cortex region of the brain. The cause of this type of amnesia is the result of brain damage to the limbic system which control our memories and emotions.
Scientists believe memories are captured and stored by two separate parts of the brain, the hippocampus, the normal seat of memory, and the amygdala, one of the brain's emotional centers. People who, due to hippocampus damage, are incapable of forming long-term memories can still form subconscious memories of traumatic events if their amygdala is intact. Someone suffering from the Memento condition would likely have a feeling of general unease encountering a person who had harmed them in the past, though they wouldn't be able to put their finger on why. As the plot of Eternal Sunshine correctly suggests, the brain is designed to preserve emotionally strong memories. Even amnesiacs, under the right circumstances, can remember their past feelings.
Some scientists now believe that memories effectively get rewritten every time they're activated. Studies on rats suggest that if you block a crucial chemical process during the execution of a learned behavior - pushing a lever to get food, for instance - the learned behavior disappears. The rat stops remembering. Theoretically, if you could block that chemical reaction in a human brain while triggering a specific memory, you could make a targeted erasure. Think of a dreadful fight with your girlfriend while blocking that chemical reaction, and zap! The memory's gone.
This type of amnesia is used as a plot element in the 2004 movie Eternal Sunshine of the Spotless Mind, in which a company (appropriately named Lacuna) offers the removal of all memories of a specific person from someone's memory.
^ Analysis: Concepts in memory-loss movies not so far-fetched, NPR Special; 3/23/2004; Alex Chadwick.
^ Vital Lies, Simple Truths : The Psychology of Self-Deception, Bloomsbury; 1985; Daniel Goleman, Ph.D.
This page was last edited on 22 February 2019, at 01:26 (UTC).


The Prince Laurent Foundation has chosen Cali (pictured) as this year's Nicest Zinneke. Zinneke is old Brussels dialect for a mongrel and is now used to describe Bruxellois, or a resident of the capital.
The foundation provides veterinary services to pets belonging to the homeless or to low-income families. With five locations across Belgium, it works with veterinary professors and students from two universities to provide health care to animals regardless of the owner's ability to pay.
Every year, a contest among the foundation's canine patients seeks to find the one with the 'most sympathetic' personality, and this year there were 22 entries. The very friendly competition took place on Saturday on Place du Jeu de Balle in the Marolles in the presence of Princess Claire and her children.
The day started with an Open House of the Brussels chapter of the organisation, located on the square, and a demonstration by the fire department's dog brigade. Then the dog parade brought the jury into contact with contestants, and the prize was ultimately awarded to Cali – like most of the entries a mixed-breed – by Brussels-City mayor Philippe Close.
Cali wins a medal and a free trip to a dog groomer.
More to the point, a zinneke is a mutt. The Zinneke was a small branch of the Senne/Zenne river (Zinne is Brussels dialect) and the story goes that mutts that no one wanted were drowned in the river, thus the name of the river becoming the term for mixed breed dogs. So the Most Beautiful Zinneke contest is a contest exclusively for mutts. More recently, the term Zinneke has been applied to humans of mixed ethnic backgrounds and by extension to all Brussels natives since Brussels is so multi-cultural (and was, even historically).


text:
Jaime Robbie Robertson (ur. 5 lipca 1943 w Toronto) – kanadyjski muzyk rockowy, poeta, aktor, gitarzysta, autor piosenek, kompozytor muzyki filmowej, lider zespołu The Band. Uważany za jednego z czołowych gitarzystów w amerykańskiej muzyce rockowej.

Życiorys
Robertson urodził się w Toronto, Ontario. Jest Metysem – jego ojcem był Kanadyjczyk żydowskiego pochodzenia, zaś matka Indianką z plemienia Mohawk. Pierwsze kontakty Robertsona z muzyką rozpoczęły się jeszcze wtedy, gdy żył wraz z matką w rezerwacie indiańskim Six Nations Reservation (Irokezi). Nauczył się grać na gitarze i zaczął komponować piosenki. Początkowo zainteresowany był muzyką country, lecz ostatecznie zwrócił się w kierunku rocka, w szczególności folk rocka. Nie ukończywszy szkoły średniej, został zawodowym muzykiem.

The Band
Początkowo został jednym z akompaniatorów Ronniego Hawkinsa, by następnie wraz z innymi muzykami jego grupy założyć zespół The Hawks, który po związaniu się z Bobem Dylanem zmienił nazwę na The Band. Grupa w czasie współpracy z Dylanem, jak i w następujących po tym dziesięcioleciach własnej twórczości, wykształciła unikalne brzmienie, stając się jedną z najbardziej wpływowych i znaczących grup rockowych. Słynny koncert kończący działalność grupy stał się wielkim wydarzeniem muzycznym, został sfilmowany przez Martina Scorsese i był wyświetlany w kinach jako "Ostatni walc" (The Last Waltz).

Okres po The Band
Po rozwiązaniu grupy Robertson zajął się komponowaniem muzyki filmowej, głównie do Martina Scorsese. Był autorem ścieżek dźwiękowych do takich filmów jak między innymi: Wściekły Byk, Król komedii i Kolor pieniędzy. W 1987 zadebiutował jako muzyk solowy albumem Robbie Robertson, przy którym współpracował z kolegami z The Band i innymi znanymi muzykami: Peterem Gabrielem, U2, Gilem Evansem. W 1994 Robertson powrócił do swych korzeni, nagrywając płytę Music for the Native Americans z indiańską grupą Red Road Ensemble.

W 2003 został sklasyfikowany na 78. miejscu listy 100 najlepszych gitarzystów wszech czasów magazynu Rolling Stone.

W 2004 roku skomponował i zaśpiewał utwór Shine Your Light, wykorzystany w soundtracku do filmu Płonąca Pułapka (Ladder 49).

Jest laureatem przyznawanej przez prestiżową kanadyjską fundację tubylczą nagrody National Aboriginal Achievement Award.

Jako aktor zagrał m.in. w filmie Karnawał(tytuł oryg. Carny), do którego współtworzył scenariusz, muzykę oraz był jego producentem (lata 1979 – 1980).

Dyskografia

Albumy solowe
 Robbie Robertson (1987)
 Storyville (1991)
 Music for the Native Americans (1994)
 Contact from the Underworld of Red Boy (1998)
 How to Become Clairvoyant (2011)

Albumy z The Band
 Music from Big Pink (1968)
 The Band (1969)
 Stage Fright (1970)
 Cahoots (1971)
 Rock of Ages (1972)
 Moondog Matinee (1973)
 Northern Lights - Southern Cross (1975)
 Islands (1977)
 The Last Waltz (1978)
 Live at Watkins Glen (1995)

Albumy z Bobem Dylanem i The Band
 Before the Flood (1974)
 Planet Waves (1974)
 The Basement Tapes (1975)
 The Bootleg Series Vol. 4: Bob Dylan Live 1966, The "Royal Albert Hall" Concert (1998)

Udział przy realizacji filmów
 The Last Waltz (1978) (aktor/producent)
 Karnawał (1980) (aktor/scenarzysta/producent/kompozytor muzyki)
 Wściekły Byk (1980) (producent muzyki)
 Król komedii (1983) (producent muzyki)
 Kolor pieniędzy (1986) (muzyka)
 Poza prawem (1992) (piosenka Broken Arrow)
 Jimmy Hollywood (1994) (muzyka)
 Kasyno (1995) (udział przy tworzeniu muzyki)
 Obsesja (1995) (aktor – Roger)
 Fenomen (1996) (kompozytor muzyki)
 Dakota Exile (1996) (narrator)
 Podróż przedślubna (1999) (udział przy tworzeniu muzyki)
 Wilki (1999) (narrator)
 Męska gra (1999) (muzyka)
 The Life and Times of Robbie Robertson (2001)
 Gangi Nowego Jorku (2002) (producent wykonawczy muzyki)
 Skóry (2002) (scenarzysta)
 Jenifa (2004) (producent wykonawczy)
 Płonąca pułapka (2004) (piosenka Shine Your Light)
 Infiltracja (2006) (producent muzyki)
 Eric Clapton: Crossroads Guitar Festival 2007 (2007) (wykonawca)
 Mardik: From Baghdad to Hollywood (2008) (aktor)
 Wyspa tajemnic (2009) (nadzór muzyczny)

Nagrody, pozycje na listach przebojów i rekordy

Przypisy

Linki zewnętrzne

Kanadyjscy aktorzy filmowi
Kanadyjscy gitarzyści
Kanadyjscy wokaliści
Kanadyjscy muzycy rockowi
The Band
Urodzeni w 1943
Ludzie urodzeni w Toronto

redpajama_set_name: RedPajamaWikipedia


Nine of the 10 Mexican wolves living at Brookfield Zoo will depart for new homes this month as part of a survival plan to help sustain the endangered species, the zoo announced this week.
The zoo's current alpha pair, Zana and Flint, will move to a facility in Eureka, Missouri, along with a young female named Springer. Six male wolves – Rio, Azul, Mateo, Jeff, David and Temp – will head to a zoo in Springfield, Missouri.
Two-year-old Ela will remain at Brookfield Zoo and become the new alpha female, with a new alpha male scheduled to arrive before the end of the year. Ela and the new male will become the zoo's new breeding pair.
Two young female Mexican wolves will also join the zoo before the end of the year. The two wolves will participate in a reproductive hormone monitoring study during the upcoming breeding season before being placed in new, permanent homes next fall.
Saturday will be the last time visitors can see the zoo's current 10-wolf pack together. For a last hurrah, zoo staff will give the wolves a deer carcass to enjoy at 11:30 a.m. Saturday, the zoo said.
The group is one of the largest and most successful packs within the the U.S. Fish and Wildlife Service's nationwide Mexican Wolf Recovery Program, according to the zoo. The pack's young wolves are now in need of new homes as they mature, given that young wolves normally disperse from their natal pack at 2-3 years of age, the zoo said.
Since 2003, CZS has collaborated with USFWS on its recovery program for the species, facilitating cross-fosterings of puppies born at the zoo and releasing one adult female into the wild who subsequently had her own litter of pups.
Mexican wolves were once common in the southwestern U.S. but were nearly wiped out in the mid-1970s, with fewer than 10 remaining at one point.
Starting in 1998, 11 Mexican wolves were reintroduced to the wild in Arizona after being bred in captivity. Although their numbers have grown, there are still only 281 individuals in captivity, and another 144 in the wild, making Mexican wolves the most endangered subspecies of wolf in the world, according to USFWS.
The species is considered an apex predator, or a predator at the top of a food chain upon which no other creatures prey, and the presence of Mexican wolves is vital for maintaining a healthy ecosystem in the southwestern U.S., experts say.


BSEB Bihar 12th result 2018 announced on June 6th today, Wednesday. So, the students those who have appeared for the examination can check their results on official website of the Bihar School Examination Board. Check the websites given here to get your Bihar Board 12th result 2018.
Bihar 12th Result Live update: Bihar class 12 result has been declared on biharboard.ac.in official website at 4 PM. The candidates can also check their result on Examresults.net website. According to result statistics, 42 percent have passed in Science, 82 percent passed in Commerce and 42 percent students cleared the Arts stream this year.
According to the sources, the result will be available online from 3 or 4 pm onwards. The official result time has not been announced officially yet. So, keep checking on this page to get your results instantly. We are giving the live update on the declaration of Bihar Intermediate exam result 2018. Students can get results from here: biharboard.ac.in.
Because of the Delhi University admission starting date on June 7, the Bihar 12th result date preponed to June 6th from June 7. We requested the students to try to get their results on the official website, if there is any technical error at the time of result declaration, then use the alternative websites to check your Bihar 12th result.
Other Bihar Board Intermediate result websites are bihar.indiaresults.com or examresults.net. More than 12,07,986 students have appeared for the Bihar Intermediate 12th examination at 1,384 centers across the state from February 6 to February 16, 2018.
Enter required details and click on 'submit'.
Check your Bihar 12th result 2018.
Download the result and take a print out for future use.
All the very best to all the candidates who are checking their 12th Bihar results today.


Check our Fine Arts Calendar for a current list of upcoming music programs and performances.
The two most important attributes of a successful band are a system and spirit. A system is a way of doing things. It represents the total structure of our band, including: organization, procedures, activities, philosophies, teaching methods, marching, and playing style and policies.
Spirit represents how individual band members respond to the system. It includes practice habits, positive attitudes, mental discipline and work ethic. When the system is followed and good spirit is in place, the result is success and its byproducts, including pride, enthusiasm, loyalty, discipline and dedication.
The Wind Symphony, established in fall 2003, is the most select concert organization at Eastern New Mexico University. The ensemble is comprised of highly talented undergraduate instrumentalists. All gifted musicians are encouraged to audition!
During the fall semester, the Wind Symphony presents one formal concert and is the featured ensemble at our "Friends of Music" Pops Concert. The Wind Symphony performs two formal concerts during the spring semester.
The Wind Symphony meets in the Floren Thompson Jr. Band Hall, Room 136, in the fall and spring semester, on Tuesday and Thursday from 3 p.m. to 4:30 p.m. It may be taken for credit.
Wind Symphony is administratively added to student schedules following auditions.
The ENMU Symphonic Band is open to all interested and talented undergraduate instrumentalists. This ensemble is seated based upon the results of a chair placement audition and performs the finest traditional and contemporary repertoire.
The Symphonic Band has been a featured ensemble at the conventions of the New Mexico Music Educators Association and the College Band Directors National Association. Recent guest conductors include Robert Jorgensen, Paula Crider, Norvil Howell and John Locke.
In addition to three formal concerts, the Symphonic Band performs at the Department of Music's annual Christmas concert and for ENMU Commencement ceremonies.
The Symphonic Band meets in the Floren Thompson Jr. Band Hall, Room 136, late in the fall and spring semesters, on Monday, Wednesday and Friday from noon to 1:50 p.m., and you may take Symphonic Band for credit.
The GSMB is the conduit for school spirit and pride at ENMU. The GSMB, "The Sound of the High Plains", is proud to celebrate its 82nd year of musical excellence!
GSMB members are both music majors and non-majors. The GSMB performs music from the hottest charts, providing spectacular halftime entertainment for the fans that pack Greyhound Stadium. The GSMB meets during the fall semester. Rehearsals are held on Monday, Wednesday, and Friday from noon to 1:50 p.m. in the Floren Thompson Jr. Band Hall and Greyhound Stadium.
Many members of the GSMB proudly represented ENMU, the state of New Mexico, and the United States of America when they performed, by invitation, in the 2009 and 2015 St. Patrick's Day Parade in Dublin, Ireland.
The GSMB has performed at AT&T Stadium in Arlington, Texas, on three occasions.
Known for its spirit and inspired sound, the Basketball Pep Band consists of students who are members of the Greyhound Sound. Seating in the band is determined via a musical audition.
Drum majors, music section leaders and marching section leaders are members of the Spirit Band. The Spirit Band performs on campus and throughout the region at events that do not require the full instrumentation of the Greyhound Sound Marching Band. Members regularly receive compensation for their service.


text:
Pfizer-BioNTech applies for fourth COVID-19 booster for seniors
The company's CEO says a fourth dose is now necessary
Gary Guthrie Reporter
Photo (c) Aleksandr Zubkov - Getty Images
After analyzing data from an Israeli COVID-19 study, Pfizer and BioNTech have applied for emergency use authorization (EUA) with the U.S. Food and Drug Administration (FDA) for an additional booster for adults aged 65 and older.
The companies said the decision came from an analysis of "real-world" data taken from Israeli Ministry of Health records of over 1.1 million adults 60 years of age and older who had no known history of SARS-CoV-2 infection and were eligible for an additional (fourth dose) booster. The study also revealed no new safety concerns in individuals who received an additional booster dose of the vaccine.
"These data showed rates of confirmed infections were 2 times lower and rates of severe illness were 4 times lower among individuals who received an additional booster dose of the Pfizer-BioNTech COVID-19 Vaccine administered at least four months after an initial booster (third) dose compared to those who received only one booster dose," officials said in a news release.
Pfizer has been very proactive in its fight against the coronavirus. In the last three months, the FDA approved its COVID-19 booster for 16- and 17-year-olds, as well as those between 12 and 15 years old.
CEO says authorization is necessary
In an interview on CBS' "Face the Nation," Pfizer CEO Albert Bourla said a fourth COVID-19 vaccine dose is necessary "right now" and that the company was moving forward on a shot designed to protect people against all COVID-19 variants for a minimum of a year -- double the efficacy of a previous study.
Bourla added that vaccines for children five years old and under could also be available in May.
"The protection you are getting from the third, it is good enough, actually quite good for hospitalizations and deaths. It's not that good against infections, but doesn't last very long," Bourla said.
Get a health screening near you
Get Peace of Mind or Early Detection with Life Line Screening
Gary Guthrie
Gary Guthrie covers technology and travel for the ConsumerAffairs news team. Prior to ConsumerAffairs, he was a programming consultant for radio and TV stations in some 20 markets around the U.S., as well as a presentation developer for the likes of Jack Daniel's, Procter & Gamble, AT&T, and Columbia University.
Coronavirus update: Moderna seeks approval for fourth shot
Coronavirus update: Researchers say vaccines offer limited protection against Omicron variant
Coronavirus update: Study finds vaccine offers weak protection for young children
Coronavirus update: Study finds vaccine protection lasts for at least six months
Coronavirus update: Booster sharply reduces Omicron death risk, study finds
Coronavirus update: Feds back boosters for adolescents
Coronavirus update: Johnson & Johnson booster reportedly effective against Omicron variant

redpajama_set_name: RedPajamaCommonCrawl


text:
Everything Pregnancy
Amazing! Preemie Twins Born More Than 5 Weeks Apart
An extraordinary delivery technique leads to premature twin babies being born five weeks apart.
By Melissa Willets
VivaHD/YouTube
Shortly after getting married, Knoxville, Tennessee, couple Kristen and Ian Miller learned they were expecting twins. The mom-to-be told WBIR news that her pregnancy was normal until about 22 weeks, when she started experiencing contractions and soon went into labor.
Doctors told Kristen the goal was for her to make it 24 weeks before delivering the babies. Incredibly, according to Ian, though Kristen's water broke at 22 weeks and one day, baby Micah wasn't born until 24 weeks and one day; he weighed just over a pound.
Then Kristen's medical team recommended something extraordinary: a delayed interval delivery, which meant Micah's twin would be born at a later time. The Millers quickly agreed. "If there's anything that you can do to keep one of 'em in longer, we want to do that," Kristen said.
RELATED: Preemie Photo Project Proves There's Life After the NICU
She was placed on strict bed rest, and made it another five-and-a-half weeks before her daughter Madelyn was ready to be born.
The "younger" twin is now breathing on her own and spends her days in the same ICU as her "big" brother Micah. The babies are expected to remain at the hospital for at least another two months, where their parents are keeping a nearly non-stop vigil by their sides.
RELATED: 20 NICU Babies Meet Their Big Sibs for the First Time
Here's hoping this miraculous family of four gets to go home soon, and enjoy life outside of the hospital walls.
Melissa Willets is a writer/blogger and a mom. Follow her on Twitter (@Spitupnsuburbs), where she chronicles her love of exercising and drinking coffee, but never simultaneously.


Is it possible to do marley/senegalese twists in type 3 hair?
So i have a type 3 hair, it varies between type a b and c. Is it possible to do marley or senegalese twists in this type of hair? or will it be difficult to fix in/not last long?


Kulwinder Kaur died: Kulwinder Kaur, a prominent athlete of Punjab lost her life due to unavailability of health facilities to the players in Punjab. Kulwinder Kaur, born in the village of Ghariyal, won gold and bronze medals from athletics by playing at the national level. Kulwinder Kaur received education from Neh Kalank Government Kanya School,Ghariyal . She started her journey as an athletics player in 9th class and won her first gold medal. She got gold and bronze medals in 1,500 and 3000 meters from district, state and also at national level. She played at Athletics as well as in Kabaddi Circle Style. But one day when she was playing girls kabaddi during the fair at village Jand, she suffered a backbone injury which turned into cancer.
Lakhs of rupees were spent by the family but district or sports administration didn't even came for any help.
Last Sunday, Kulwinder Kaur, who had always wrecked the flag of victory in the playgrounds, lost the game of death forever, in a huge gathering of game lovers, politicians, religious and social organizations, at the cremation ground of Village Ghariyal her body was cremated.


text:
Recorder of Deeds Office Reopening to the Public on June 1
Beginning on June 1, our office will reopen to the public for the first time since March 2020.
The Montgomery County Recorder of Deeds office is excited to welcome everyone back!
Our recording hours are from 8:30AM until 4PM. The Board of Assessment will register documents from 8:30AM until 3:45PM. Planning will be available to stamp and seal documents from 8:30AM to 3PM.
Please note, the title search area will not open until June 14 due to construction in our office.
Veterans are also welcome to come in to record their military discharge paperwork and receive their discount ID card.
There will be a few changes to your experience in our office, including:
• Plexiglas cubicles for our staff and dividers at the counter.
• A limited amount of people will be allowed in the office at one time.
• Customers will be asked to take a seat and wait for their documents to be recorded rather than stand at the counter.
Additionally, to help keep everyone safe and healthy during this uncertain time, our public search area will be open, but with limited capacity and searches will be limited to one hour.
Our drop box has been a huge success, and even though our office is reopening, we will continue to have the drop box in the lobby of One Montgomery Plaza for those who would prefer to drop off documents and plans for recording without waiting.
We will also continue to accept documents for recording through the US Postal Service, FedEx/UPS, and through our four eRecording partners. We accept plans for recording via mail in a rolled tube. If you would like our office to preview and pre-approve your plans before recording, please follow these steps: https://www.montcopa.org/1655/Plan-Recording-Info.
Notaries will be welcomed back for swearing in ceremonies from 8:30AM until 3:30PM and do not need an appointment. Please bring your bond, power of attorney, and photo ID. The fee will be $42. Note: This one charge will pay the Recorder of Deeds fee of $38.50 and the Prothonotary fee of $3.50.
For added convenience, we will continue to swear in notaries via video conferencing, but with limited availability throughout the week. There will be a $25 convenience fee added for notaries who choose to swear in virtually. To sign up for your time slot online, please click here: https://www.signupgenius.com/go/9040a48adad2ea6fa7-online.
Despite these changes, we are looking forward to serving you in person once again!
⇐Previous Title Search Area Reopens to the Public on July 6Next⇒ Marking One Year of this Pandemic
Other News in Recorder of Deeds
Deed Scam Targets Montgomery County Home Buyers
MV Realty's Deceptive Homeowner Program Targets Older, Low-Income, and Minorities
MV Realty's Deceptive Business Practices Also Occurring in Montgomery County
Montgomery County Recorder of Deeds Collecting Necessities for Homeless Veterans
Montgomery County Recorder of Deeds off-site Veterans photo ID program coming to Harleysville
Montgomery County Recorder of Deeds Invites Veterans to Resource Fair
Homeowners Devastated by Ida Can Still Request Deeds Free of Charge from Montco Recorder of Deeds
Montgomery County Recorder of Deeds Announces Upcoming Events
Recorder of Deeds Announces 2022 Holiday Hours
Montco Veteran's Affairs Offering Honor Flight Trip
2022-2023 Update to Montgomery County Common Level Ratio
Annual International Spring Festival is set to return on April 23rd bringing the community together
Video: Jeanne Sorg Talks Recorder of Deeds on Good Morning Conshy
Montco Recorder of Deeds, Jeanne Sorg, Provides Deeds to Homeowners Devastated by Ida Free of Charge
Masks Required to Enter Recorder of Deeds Office
Montgomery County Recorder of Deeds Announces Upcoming Mobile Veterans' Discount ID Events
Record Breaking Numbers at Recorder of Deeds
Update to Montgomery County Common Level Ratio
Title Search Area Reopens to the Public on July 6
Marking One Year of this Pandemic
MontCo Real Estate is Breaking Records
Remote Notarization Becomes Permanent Law in PA
Join Me in Thanking My Team
We've Added Another Way to Record Your Documents
Montgomery County Offices Will Be Closed for Juneteenth
Real Estate Industry May Resume Limited Business Transactions Statewide
Personal Appearance Requirement for Notaries Temporarily Suspended for Real Estate Transactions
Coronavirus Update: Montgomery County Offices Closed to the Public
Coronavirus Update: All Montgomery County Offices Closed Monday & Tuesday
Update Regarding the Coronavirus and the Montgomery County Recorder of Deeds Office
Upcoming Changes to the Notary Commission and Bonding Process
Recorder of Deeds Office Installs New Microfilm Machines
Montgomery County Recorder of Deeds Jeanne Sorg Fights Fraud with Free Program
Recorder of Deeds Jeanne Sorg to Increase Veteran Outreach Efforts


50 percent of small businesses do not have a website according to a recent blog post by SBA.gov. What does this mean to you as a small business owner? It means that having an online presence for your business will give you a competitive edge. New technologies available to you like those offered by Wix make it easier than ever to have a professional looking website for little to no cost.
But where to start? Wix hosts over 88 million websites. With this enormous pool of user data and over ten years of website design expertise under our belts, we know what goes into building a stunning website.
Below are some steps on how to get started building your business's first website.
What is the point of your website? Set an objective. Defining your website's goal will help guide you through the creation process. In our experience, the best websites have a single goal. Is the goal of your site to sell a product or service? Get more newsletter subscribers? Increase social media followers? Your goal is the core of your website. By identifying the goal from the beginning, you will be able to easily navigate the development process of your site.
A sitemap is a road-map for your website. Here is an exercise to help you get started: grab a pen and paper and begin by drawing a box at the top of the page. This box represents your home page, the first page people will see on your website. At the bottom of the page, draw another box. This box will represent your goal, or the final page that your visitors will see. Draw more boxes, with each box representing the different pages that will be featured on the site, and then draw arrows that link each box. If it takes more than a few arrows to reach your goal, start thinking creatively about how visitors will reach your website's goal, quickly. Your objective here is to limit roadblocks to your website's goal.
What types of images do you want to showcase? What is the color scheme? What font should you use? All of these questions need to be answered before you start building your website. So, again, where to start? Take notes, find pictures, download images and store all of this information either online or printed out and kept in a file folder. Once you are ready to start building your business's website, pull out all this information and start connecting the dots.
Quick tip: limit your site to two font choices. This will limit visual confusion and will make your website more engaging.
While these three tips are a terrific starting point, there are many other things to consider when building your business's first website. Check out WixEd.com a free resource and training center for website building and small business management.
In the past year Wix has worked closely with New York's SBDC network to provide small businesses and SBDC advisors the tools and training needed to help local businesses grow. Through workshops and training sessions, NY SBDCs are being equipped with the latest technology and resources to make them excel. Building on the strong momentum, Wix is currently creating a sophisticated support network for SBDC advisors and the SMBs they serve.
You can learn about the above and more at the 36th annual America's SDBC conference this September 23 in Orlando, Florida. RSVP for Wix's presentation here.


text:
Q: Is there a way to configure QGIS to prevent the st_extent call when adding a PostGIS table? I'm trying to add an extremely large table with a points geometry field to QGIS and QGIS appears to hang.  After some investigating in the postgresql database, I tracked it down to a st_extent on everything in the table.
Is it correct to assume that the reason QGIS does this is in order to obtain a full extent for the layer? And if so, is there a way to bypass this? Maybe either use the spatial reference extent or manually provide the extent?
QGIS 2.6 64-bit
POSTGIS="2.1.3 r12547" GEOS="3.4.2-CAPI-1.8.2 r3924" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.0, released 2013/04/24" LIBXML="2.7.8" LIBJSON="UNKNOWN" TOPOLOGY RASTER
PostgreSQL 9.3.5, compiled by Visual C++ build 1600, 64-bit

A: Have a look at the settings of PostGIS connection. There is a selection "Use estimated metadata" that is unselected by default. Check it and QGIS will use ST_Estimated_Extent http://postgis.net/docs/manual-2.0/ST_Estimated_Extent.html. Remember to run VACUUM ANALYZE before.

A: The "use estimated metadata" option on the connection works for newly created layers, but it doesn't change it on existing layers that connect to that database, nor did I find any way to change it in the layer properties (I'm using 3.8.3). I found it relatively quick to change all my existing layers by editing the QGS file to add estimatedmetadata=true to all PostGIS data source descriptions.
Here are the steps I followed using the Linux terminal. Similar steps can be done in any OS, as long as you have a way to search and replace text.

*

*Extract QGS file from the QGZ:
$ unzip map.qgz map.qgs

*Add estimatedmetadata=true to all PostGIS data source descriptions in the QGS. In my particular file, I found these in XML <datasource> and <layer-tree-layer> tags.
For my particular file, I checked and saw that all such lines had no estimatedmetadata=, so rather than switching estimatedmetadata=false to estimatedmetadata=true, I had to add in a new estimatedmetadata=true.  I looked for a string that was in the middle of all of the data source descriptions, so I could do the equivalent of a search and insert by using a text replace.  The string I found in my file was checkPrimaryKeyUnicity=, so I ran the following command:
$ sed -i 's/checkPrimaryKeyUnicity/estimatedmetadata=true checkPrimaryKeyUnicity/g' map.qgs

You may have to adapt this to the details of your specific file, make the changes in a more manual way, or use a tool with XML-specific editing features.

*Replace the QGS file in the QGZ:
$ zip -u map.qgz map.qgs

redpajama_set_name: RedPajamaStackExchange


So apparently there was an eclipse that happened today. I didn't get the whole hype of it, but I had a few thoughts that made it a bit more exciting. Choose your head-canon for the eclipse.
The Eight Digi-Destined hear the meaning of the eclipse.
Seemingly random people are about to get some crazy superpowers.
They also had another eclipse where everyone lost powers.
It's time to attack the Fire Nation.
The Death Star is about to kill us all.
What else guys? Did I miss any other meanings of the eclipse?


text:
Scotch Bonnet Island Lighthouse
Prince Edward, Ontario
© Parks Canada Agency | Agence Parcs Canada
Address : Scotch Bonnet Island, Prince Edward, Ontario
Egg Point Island Lighthouse (Other Name)
The Scotch Bonnet Island Lighthouse is a lighthouse in ruins that stood originally as a tapered, cylindrical limestone tower with an integrated lightkeeper's residence. The tower consisted of a rubble-stone core that was originally covered in an outer layer of finished stone and capped by a corbelled cornice. Built between 1853 and 1856, the lighthouse sits in the centre of Scotch Bonnet Island, which is located in Lake Ontario, just off the coast of Prince Edward County.
The Scotch Bonnet Island Lighthouse is a heritage lighthouse because of its historical and community values.
The Scotch Bonnet Island Lighthouse is an excellent example of the Province of Canada providing aids to navigation in the pre-Confederation period. Since its construction in 1856, the lighthouse served as a hazard avoidance light to warn ships travelling through Lake Ontario of the potential danger of the small Scotch Bonnet Island and the nearby shoals. The Scotch Bonnet Island Lighthouse is also located just west of the "Graveyard of Lake Ontario," the area between Point Petre and Main Duck Island which saw approximately two-thirds of all Lake Ontario shipwrecks during both the sail and steamship eras. Its combined tower and keeper's dwelling speak to the lightkeeping tradition at remote locations in the nineteenth century.
The Scotch Bonnet Island Lighthouse is closely tied to the socio-economic development of Prince Edward County.
From its foundation in 1784, the county has depended heavily on Lake Ontario. Ship building boomed in the county from 1830 to 1890 due to the availability of pine and oak, as well as hundreds of kilometres of sheltered shoreline ideal for the construction process. Scotch Bonnet Island Lighthouse guided steamers and schooners loaded with agricultural produce, timber, coal, and immigrants past the island and the nearby shoals.
The Scotch Bonnet Island Lighthouse establishes the historical maritime identity of Prince Edward County and Lake Ontario. It is a striking structure on the horizon of Lake Ontario and is visible to any vessel traveling from Kingston to Toronto. The island is a National Wildlife Area established under the Canada Wildlife Act and operated by Environment Canada. Although the surrounding waters can be visited by boat, visitation to this National Wildlife Area is prohibited to protect colonies of nesting waterbirds. The ruins of this historic lighthouse present a sharp contrast to the modern steel lighttower installed on the island in 1959 when the lighthouse was commissioned and abandoned.
Although the site of the Scotch Bonnet Island Lighthouse is not accessible to the public, the lighthouse is highly valued by the community as an integral part of the local heritage. Only three stone lighthouses were ever built in Prince Edward County and Scotch Bonnet Island Lighthouse is the only one that remains. The lighthouse is valued by boaters, tourists and local residents and is a landmark for annual yacht races on Lake Ontario.
The following character-defining elements of the Scotch Bonnet Island Lighthouse should be respected:
— its ruinous physical condition;
— its strategic location on Scotch Bonnet Island on the western approach to Prince Edward County on Lake Ontario;
— its privileged placement at the centre of Scotch Bonnet Island, a low-lying limestone island with sparse vegetation;
— the trace of the lighthouse as described by its found structural form, height and profile;
— the found visual relationship between the cylindrical tower and integrated keeper's residence; and,


text:
package deb

import (
	gocontext "context"
	"encoding/json"
	"fmt"
	"path/filepath"
	"strconv"
	"strings"

	"github.com/aptly-dev/aptly/aptly"
	"github.com/aptly-dev/aptly/utils"
)

// Package is single instance of Debian package
type Package struct {
	// Basic package properties
	Name         string
	Version      string
	Architecture string
	// If this source package, this field holds "real" architecture value,
	// while Architecture would be equal to "source"
	SourceArchitecture string
	// For binary package, name of source package
	Source string
	// List of virtual packages this package provides
	Provides []string
	// Hash of files section
	FilesHash uint64
	// Is this package a dummy installer package
	IsInstaller bool
	// Is this source package
	IsSource bool
	// Is this udeb package
	IsUdeb bool
	// Is this >= 0.6 package?
	V06Plus bool
	// Offload fields
	deps     *PackageDependencies
	extra    *Stanza
	files    *PackageFiles
	contents []string
	// Mother collection
	collection *PackageCollection
}

// Package types
const (
	PackageTypeBinary    = "deb"
	PackageTypeUdeb      = "udeb"
	PackageTypeSource    = "source"
	PackageTypeInstaller = "installer"
)

// Special architectures
const (
	ArchitectureAll    = "all"
	ArchitectureAny    = "any"
	ArchitectureSource = "source"
)

// Check interface
var (
	_ json.Marshaler = &Package{}
)

// NewPackageFromControlFile creates Package from parsed Debian control file
func NewPackageFromControlFile(input Stanza) *Package {
	result := &Package{
		Name:         input["Package"],
		Version:      input["Version"],
		Architecture: input["Architecture"],
		Source:       input["Source"],
		V06Plus:      true,
	}

	delete(input, "Package")
	delete(input, "Version")
	delete(input, "Architecture")
	delete(input, "Source")

	filesize, _ := strconv.ParseInt(input["Size"], 10, 64)

	md5, ok := input["MD5sum"]
	if !ok {
		// there are some broken repos out there with MD5 in wrong field
		md5 = input["MD5Sum"]
	}

	result.UpdateFiles(PackageFiles{PackageFile{
		Filename:     filepath.Base(input["Filename"]),
		downloadPath: filepath.Dir(input["Filename"]),
		Checksums: utils.ChecksumInfo{
			Size:   filesize,
			MD5:    strings.TrimSpace(md5),
			SHA1:   strings.TrimSpace(input["SHA1"]),
			SHA256: strings.TrimSpace(input["SHA256"]),
			SHA512: strings.TrimSpace(input["SHA512"]),
		},
	}})

	delete(input, "Filename")
	delete(input, "MD5sum")
	delete(input, "MD5Sum")
	delete(input, "SHA1")
	delete(input, "SHA256")
	delete(input, "SHA512")
	delete(input, "Size")

	depends := &PackageDependencies{}
	depends.Depends = parseDependencies(input, "Depends")
	depends.PreDepends = parseDependencies(input, "Pre-Depends")
	depends.Suggests = parseDependencies(input, "Suggests")
	depends.Recommends = parseDependencies(input, "Recommends")
	result.deps = depends

	result.Provides = parseDependencies(input, "Provides")

	result.extra = &input

	return result
}

// NewSourcePackageFromControlFile creates Package from parsed Debian control file for source package
func NewSourcePackageFromControlFile(input Stanza) (*Package, error) {
	result := &Package{
		IsSource:           true,
		Name:               input["Package"],
		Version:            input["Version"],
		Architecture:       "source",
		SourceArchitecture: input["Architecture"],
		V06Plus:            true,
	}

	delete(input, "Package")
	delete(input, "Version")
	delete(input, "Architecture")

	var err error

	files := make(PackageFiles, 0, 3)
	files, err = files.ParseSumFields(input)
	if err != nil {
		return nil, err
	}

	delete(input, "Files")
	delete(input, "Checksums-Sha1")
	delete(input, "Checksums-Sha256")

	for i := range files {
		files[i].downloadPath = input["Directory"]
	}

	result.UpdateFiles(files)

	depends := &PackageDependencies{}
	depends.BuildDepends = parseDependencies(input, "Build-Depends")
	depends.BuildDependsInDep = parseDependencies(input, "Build-Depends-Indep")
	result.deps = depends

	result.extra = &input

	return result, nil
}

// NewUdebPackageFromControlFile creates .udeb Package from parsed Debian control file
func NewUdebPackageFromControlFile(input Stanza) *Package {
	p := NewPackageFromControlFile(input)
	p.IsUdeb = true

	return p
}

// NewInstallerPackageFromControlFile creates a dummy installer Package from parsed hash sum file
func NewInstallerPackageFromControlFile(input Stanza, repo *RemoteRepo, component, architecture string, d aptly.Downloader) (*Package, error) {
	p := &Package{
		Name:         "installer",
		Architecture: architecture,
		IsInstaller:  true,
		V06Plus:      true,
		extra:        &Stanza{},
		deps:         &PackageDependencies{},
	}

	files := make(PackageFiles, 0)
	files, err := files.ParseSumField(input[""], func(sum *utils.ChecksumInfo, data string) { sum.SHA256 = data }, false, false)
	if err != nil {
		return nil, err
	}

	relPath := filepath.Join("dists", repo.Distribution, component, fmt.Sprintf("%s-%s", p.Name, architecture), "current", "images")
	for i := range files {
		files[i].downloadPath = relPath

		url := repo.PackageURL(files[i].DownloadURL()).String()
		var size int64
		size, err = d.GetLength(gocontext.TODO(), url)
		if err != nil {
			return nil, err
		}

		files[i].Checksums.Size = size
	}

	p.UpdateFiles(files)
	return p, nil
}

// Key returns unique key identifying package
func (p *Package) Key(prefix string) []byte {
	if p.V06Plus {
		return []byte(fmt.Sprintf("%sP%s %s %s %08x", prefix, p.Architecture, p.Name, p.Version, p.FilesHash))
	}

	return p.ShortKey(prefix)
}

// ShortKey returns key for the package that should be unique in one list
func (p *Package) ShortKey(prefix string) []byte {
	return []byte(fmt.Sprintf("%sP%s %s %s", prefix, p.Architecture, p.Name, p.Version))
}

// String creates readable representation
func (p *Package) String() string {
	return fmt.Sprintf("%s_%s_%s", p.Name, p.Version, p.Architecture)
}

// ExtendedStanza returns package stanza enhanced with aptly-specific fields
func (p *Package) ExtendedStanza() Stanza {
	stanza := p.Stanza()
	stanza["FilesHash"] = fmt.Sprintf("%08x", p.FilesHash)
	stanza["Key"] = string(p.Key(""))
	stanza["ShortKey"] = string(p.ShortKey(""))

	return stanza
}

// MarshalJSON implements json.Marshaller interface
func (p *Package) MarshalJSON() ([]byte, error) {
	return json.Marshal(p.ExtendedStanza())
}

// GetField returns fields from package
func (p *Package) GetField(name string) string {
	switch name {
	// $Version is handled in FieldQuery
	case "$Source":
		if p.IsSource {
			return ""
		}
		source := p.Source
		if source == "" {
			return p.Name
		} else if pos := strings.Index(source, "("); pos != -1 {
			return strings.TrimSpace(source[:pos])
		}
		return source
	case "$SourceVersion":
		if p.IsSource {
			return ""
		}
		source := p.Source
		if pos := strings.Index(source, "("); pos != -1 {
			if pos2 := strings.LastIndex(source, ")"); pos2 != -1 && pos2 > pos {
				return strings.TrimSpace(source[pos+1 : pos2])
			}
		}
		return p.Version
	case "$Architecture":
		return p.Architecture
	case "$PackageType":
		if p.IsSource {
			return PackageTypeSource
		}
		if p.IsUdeb {
			return PackageTypeUdeb
		}
		return PackageTypeBinary
	case "Name":
		return p.Name
	case "Version":
		return p.Version
	case "Architecture":
		if p.IsSource {
			return p.SourceArchitecture
		}
		return p.Architecture
	case "Source":
		return p.Source
	case "Depends":
		return strings.Join(p.Deps().Depends, ", ")
	case "Pre-Depends":
		return strings.Join(p.Deps().PreDepends, ", ")
	case "Suggests":
		return strings.Join(p.Deps().Suggests, ", ")
	case "Recommends":
		return strings.Join(p.Deps().Recommends, ", ")
	case "Provides":
		return strings.Join(p.Provides, ", ")
	case "Build-Depends":
		return strings.Join(p.Deps().BuildDepends, ", ")
	case "Build-Depends-Indep":
		return strings.Join(p.Deps().BuildDependsInDep, ", ")
	default:
		return p.Extra()[name]
	}
}

// MatchesArchitecture checks whether packages matches specified architecture
func (p *Package) MatchesArchitecture(arch string) bool {
	if p.Architecture == ArchitectureAll && arch != ArchitectureSource {
		return true
	}

	return p.Architecture == arch
}

// MatchesDependency checks whether package matches specified dependency
func (p *Package) MatchesDependency(dep Dependency) bool {
	if dep.Architecture != "" && !p.MatchesArchitecture(dep.Architecture) {
		return false
	}

	if dep.Relation == VersionDontCare {
		if utils.StrSliceHasItem(p.Provides, dep.Pkg) {
			return true
		}
		return dep.Pkg == p.Name
	}

	if dep.Pkg != p.Name {
		return false
	}

	r := CompareVersions(p.Version, dep.Version)

	switch dep.Relation {
	case VersionEqual:
		return r == 0
	case VersionLess:
		return r < 0
	case VersionGreater:
		return r > 0
	case VersionLessOrEqual:
		return r <= 0
	case VersionGreaterOrEqual:
		return r >= 0
	case VersionPatternMatch:
		matched, err := filepath.Match(dep.Version, p.Version)
		return err == nil && matched
	case VersionRegexp:
		return dep.Regexp.FindStringIndex(p.Version) != nil
	}

	panic("unknown relation")
}

// GetName returns package name
func (p *Package) GetName() string {
	return p.Name
}

// GetFullName returns the package full name
func (p *Package) GetFullName() string {
	return strings.Join([]string{p.Name, p.Version, p.Architecture}, "_")
}

// GetVersion returns package version
func (p *Package) GetVersion() string {
	return p.Version
}

// GetArchitecture returns package arch
func (p *Package) GetArchitecture() string {
	return p.Architecture
}

// GetDependencies compiles list of dependncies by flags from options
func (p *Package) GetDependencies(options int) (dependencies []string) {
	deps := p.Deps()

	dependencies = make([]string, 0, 30)
	dependencies = append(dependencies, deps.Depends...)
	dependencies = append(dependencies, deps.PreDepends...)

	if options&DepFollowRecommends == DepFollowRecommends {
		dependencies = append(dependencies, deps.Recommends...)
	}

	if options&DepFollowSuggests == DepFollowSuggests {
		dependencies = append(dependencies, deps.Suggests...)
	}

	if options&DepFollowBuild == DepFollowBuild {
		dependencies = append(dependencies, deps.BuildDepends...)
		dependencies = append(dependencies, deps.BuildDependsInDep...)
	}

	if options&DepFollowSource == DepFollowSource {
		source := p.Source
		if source == "" {
			source = p.Name
		}
		if strings.Contains(source, ")") {
			dependencies = append(dependencies, fmt.Sprintf("%s {source}", source))
		} else {
			dependencies = append(dependencies, fmt.Sprintf("%s (= %s) {source}", source, p.Version))
		}
	}

	return
}

// QualifiedName returns [$SECTION/]$NAME
func (p *Package) QualifiedName() string {
	section := p.Extra()["Section"]
	if section != "" {
		return section + "/" + p.Name
	}

	return p.Name
}

// Extra returns Stanza of extra fields (it may load it from collection)
func (p *Package) Extra() Stanza {
	if p.extra == nil {
		if p.collection == nil {
			panic("extra == nil && collection == nil")
		}
		p.extra = p.collection.loadExtra(p)
	}

	return *p.extra
}

// Deps returns parsed package dependencies (it may load it from collection)
func (p *Package) Deps() *PackageDependencies {
	if p.deps == nil {
		if p.collection == nil {
			panic("deps == nil && collection == nil")
		}

		p.deps = p.collection.loadDependencies(p)
	}

	return p.deps
}

// Files returns parsed files records (it may load it from collection)
func (p *Package) Files() PackageFiles {
	if p.files == nil {
		if p.collection == nil {
			panic("files == nil && collection == nil")
		}

		p.files = p.collection.loadFiles(p)
	}

	return *p.files
}

// Contents returns cached package contents
func (p *Package) Contents(packagePool aptly.PackagePool, progress aptly.Progress) []string {
	if p.IsSource {
		return nil
	}

	return p.collection.loadContents(p, packagePool, progress)
}

// CalculateContents looks up contents in package file
func (p *Package) CalculateContents(packagePool aptly.PackagePool, progress aptly.Progress) ([]string, error) {
	if p.IsSource {
		return nil, nil
	}

	file := p.Files()[0]
	poolPath, err := file.GetPoolPath(packagePool)
	if err != nil {
		if progress != nil {
			progress.ColoredPrintf("@y[!]@| @!Failed to build pool path: @| %s", err)
		}
		return nil, err
	}

	reader, err := packagePool.Open(poolPath)
	if err != nil {
		if progress != nil {
			progress.ColoredPrintf("@y[!]@| @!Failed to open package in pool: @| %s", err)
		}
		return nil, err
	}
	defer reader.Close()

	contents, err := GetContentsFromDeb(reader, file.Filename)
	if err != nil {
		if progress != nil {
			progress.ColoredPrintf("@y[!]@| @!Failed to generate package contents: @| %s", err)
		}
		return nil, err
	}

	return contents, nil
}

// UpdateFiles saves new state of files
func (p *Package) UpdateFiles(files PackageFiles) {
	p.files = &files
	p.FilesHash = files.Hash()
}

// Stanza creates original stanza from package
func (p *Package) Stanza() (result Stanza) {
	result = p.Extra().Copy()
	result["Package"] = p.Name
	result["Version"] = p.Version

	if p.IsSource {
		result["Architecture"] = p.SourceArchitecture
	} else {
		result["Architecture"] = p.Architecture
		if p.Source != "" {
			result["Source"] = p.Source
		}
	}

	if p.IsSource {
		md5, sha1, sha256, sha512 := []string{}, []string{}, []string{}, []string{}

		for _, f := range p.Files() {
			if f.Checksums.MD5 != "" {
				md5 = append(md5, fmt.Sprintf(" %s %d %s\n", f.Checksums.MD5, f.Checksums.Size, f.Filename))
			}
			if f.Checksums.SHA1 != "" {
				sha1 = append(sha1, fmt.Sprintf(" %s %d %s\n", f.Checksums.SHA1, f.Checksums.Size, f.Filename))
			}
			if f.Checksums.SHA256 != "" {
				sha256 = append(sha256, fmt.Sprintf(" %s %d %s\n", f.Checksums.SHA256, f.Checksums.Size, f.Filename))
			}
			if f.Checksums.SHA512 != "" {
				sha512 = append(sha512, fmt.Sprintf(" %s %d %s\n", f.Checksums.SHA512, f.Checksums.Size, f.Filename))
			}
		}

		result["Files"] = strings.Join(md5, "")
		if len(sha1) > 0 {
			result["Checksums-Sha1"] = strings.Join(sha1, "")
		}
		if len(sha256) > 0 {
			result["Checksums-Sha256"] = strings.Join(sha256, "")
		}
		if len(sha512) > 0 {
			result["Checksums-Sha512"] = strings.Join(sha512, "")
		}
	} else if p.IsInstaller {
		sha256 := []string{}
		for _, f := range p.Files() {
			sha256 = append(sha256, fmt.Sprintf("%s  %s", f.Checksums.SHA256, f.Filename))
		}
		result[""] = strings.Join(sha256, "\n")
	} else {
		f := p.Files()[0]
		result["Filename"] = f.DownloadURL()
		if f.Checksums.MD5 != "" {
			result["MD5sum"] = f.Checksums.MD5
		}
		if f.Checksums.SHA1 != "" {
			result["SHA1"] = f.Checksums.SHA1
		}
		if f.Checksums.SHA256 != "" {
			result["SHA256"] = f.Checksums.SHA256
		}
		if f.Checksums.SHA512 != "" {
			result["SHA512"] = f.Checksums.SHA512
		}
		result["Size"] = fmt.Sprintf("%d", f.Checksums.Size)
	}

	deps := p.Deps()

	if deps.Depends != nil {
		result["Depends"] = strings.Join(deps.Depends, ", ")
	}
	if deps.PreDepends != nil {
		result["Pre-Depends"] = strings.Join(deps.PreDepends, ", ")
	}
	if deps.Suggests != nil {
		result["Suggests"] = strings.Join(deps.Suggests, ", ")
	}
	if deps.Recommends != nil {
		result["Recommends"] = strings.Join(deps.Recommends, ", ")
	}
	if p.Provides != nil {
		result["Provides"] = strings.Join(p.Provides, ", ")
	}
	if deps.BuildDepends != nil {
		result["Build-Depends"] = strings.Join(deps.BuildDepends, ", ")
	}
	if deps.BuildDependsInDep != nil {
		result["Build-Depends-Indep"] = strings.Join(deps.BuildDependsInDep, ", ")
	}

	return
}

// Equals compares two packages to be identical
func (p *Package) Equals(p2 *Package) bool {
	return p.Name == p2.Name && p.Version == p2.Version && p.SourceArchitecture == p2.SourceArchitecture &&
		p.Architecture == p2.Architecture && p.Source == p2.Source && p.IsSource == p2.IsSource &&
		p.FilesHash == p2.FilesHash
}

// LinkFromPool links package file from pool to dist's pool location
func (p *Package) LinkFromPool(publishedStorage aptly.PublishedStorage, packagePool aptly.PackagePool,
	prefix, relPath string, force bool) error {

	for i, f := range p.Files() {
		sourcePoolPath, err := f.GetPoolPath(packagePool)
		if err != nil {
			return err
		}

		publishedDirectory := filepath.Join(prefix, relPath)

		err = publishedStorage.LinkFromPool(publishedDirectory, f.Filename, packagePool, sourcePoolPath, f.Checksums, force)
		if err != nil {
			return err
		}

		if p.IsSource {
			p.Extra()["Directory"] = relPath
		} else {
			p.Files()[i].downloadPath = relPath
		}
	}

	return nil
}

// PoolDirectory returns directory in package pool of published repository for this package files
func (p *Package) PoolDirectory() (string, error) {
	source := p.Source
	if source == "" {
		source = p.Name
	} else if pos := strings.Index(source, "("); pos != -1 {
		source = strings.TrimSpace(source[:pos])
	}

	if len(source) < 2 {
		return "", fmt.Errorf("package source %s too short", source)
	}

	var subdir string
	if strings.HasPrefix(source, "lib") {
		subdir = source[:4]
	} else {
		subdir = source[:1]

	}

	return filepath.Join(subdir, source), nil
}

// PackageDownloadTask is a element of download queue for the package
type PackageDownloadTask struct {
	File         *PackageFile
	Additional   []PackageDownloadTask
	TempDownPath string
	Done         bool
}

// DownloadList returns list of missing package files for download in format
// [[srcpath, dstpath]]
func (p *Package) DownloadList(packagePool aptly.PackagePool, checksumStorage aptly.ChecksumStorage) (result []PackageDownloadTask, err error) {
	result = make([]PackageDownloadTask, 0, 1)

	files := p.Files()
	for idx := range files {
		verified, err := files[idx].Verify(packagePool, checksumStorage)
		if err != nil {
			return nil, err
		}

		if !verified {
			result = append(result, PackageDownloadTask{File: &files[idx]})
		}
	}

	return result, nil
}

// VerifyFiles verifies that all package files have neen correctly downloaded
func (p *Package) VerifyFiles(packagePool aptly.PackagePool, checksumStorage aptly.ChecksumStorage) (result bool, err error) {
	result = true

	for _, f := range p.Files() {
		result, err = f.Verify(packagePool, checksumStorage)
		if err != nil || !result {
			return
		}
	}

	return
}

// FilepathList returns list of paths to files in package repository
func (p *Package) FilepathList(packagePool aptly.PackagePool) ([]string, error) {
	var err error
	result := make([]string, len(p.Files()))

	for i, f := range p.Files() {
		result[i], err = f.GetPoolPath(packagePool)
		if err != nil {
			return nil, err
		}
	}

	return result, nil
}

redpajama_set_name: RedPajamaGithub


text:
namespace continuous_search {

class SearchResultExtractorProducerJavaInterface
    : public SearchResultExtractorProducerInterface {
 public:
  SearchResultExtractorProducerJavaInterface() = default;
  ~SearchResultExtractorProducerJavaInterface() override = default;

  SearchResultExtractorProducerJavaInterface(
      const SearchResultExtractorProducerJavaInterface&) = delete;
  SearchResultExtractorProducerJavaInterface& operator=(
      const SearchResultExtractorProducerJavaInterface&) = delete;

  void OnError(JNIEnv* env,
               const base::android::JavaRef<jobject>& obj,
               jint status_code) override {
    Java_SearchResultExtractorProducer_onError(env, obj, status_code);
  }

  void OnResultsAvailable(
      JNIEnv* env,
      const base::android::JavaRef<jobject>& obj,
      const base::android::JavaRef<jobject>& url,
      const base::android::JavaRef<jstring>& query,
      jint result_type,
      const base::android::JavaRef<jintArray>& group_type,
      const base::android::JavaRef<jintArray>& group_size,
      const base::android::JavaRef<jobjectArray>& titles,
      const base::android::JavaRef<jobjectArray>& urls) override {
    Java_SearchResultExtractorProducer_onResultsAvailable(
        env, obj, url, query, result_type, group_type, group_size, titles,
        urls);
  }
};

jlong JNI_SearchResultExtractorProducer_Create(
    JNIEnv* env,
    const base::android::JavaParamRef<jobject>& j_object) {
  SearchResultExtractorProducer* producer = new SearchResultExtractorProducer(
      env, j_object,
      std::make_unique<SearchResultExtractorProducerJavaInterface>());
  return reinterpret_cast<intptr_t>(producer);
}

SearchResultExtractorProducer::SearchResultExtractorProducer(
    JNIEnv* env,
    const base::android::JavaParamRef<jobject>& j_object,
    std::unique_ptr<SearchResultExtractorProducerInterface> interface)
    : java_interface_(std::move(interface)) {
  java_ref_.Reset(j_object);
}

SearchResultExtractorProducer::~SearchResultExtractorProducer() = default;

void SearchResultExtractorProducer::FetchResults(
    JNIEnv* env,
    const base::android::JavaParamRef<jobject>& j_web_contents,
    const base::android::JavaParamRef<jstring>& j_query) {
  content::WebContents* web_contents =
      content::WebContents::FromJavaWebContents(j_web_contents);
  client_.RequestData(
      web_contents, {mojom::ResultType::kSearchResults},
      base::BindOnce(&SearchResultExtractorProducer::OnResultsCallback,
                     weak_ptr_factory_.GetWeakPtr(),
                     base::android::ConvertJavaStringToUTF8(env, j_query)));
}

void SearchResultExtractorProducer::Destroy(JNIEnv* env) {
  delete this;
}

void SearchResultExtractorProducer::OnResultsCallback(
    const std::string& query,
    SearchResultExtractorClientStatus status,
    mojom::CategoryResultsPtr results) {
  JNIEnv* env = base::android::AttachCurrentThread();
  if (status != SearchResultExtractorClientStatus::kSuccess) {
    java_interface_->OnError(env, java_ref_, status);
    return;
  }

  size_t result_count = 0;
  for (const mojom::ResultGroupPtr& group : results->groups) {
    result_count += group->results.size();
  }

  std::vector<int> group_types;
  group_types.reserve(results->groups.size());
  std::vector<int> group_sizes;
  group_sizes.reserve(results->groups.size());

  std::vector<std::u16string> titles;
  std::vector<base::android::ScopedJavaLocalRef<jobject>> urls;
  titles.reserve(result_count);
  urls.reserve(result_count);
  for (size_t i = 0; i < results->groups.size(); ++i) {
    const mojom::ResultGroupPtr& group = results->groups[i];
    group_types.push_back(static_cast<int>(group->type));
    group_sizes.push_back(group->results.size());

    for (const mojom::SearchResultPtr& result : group->results) {
      titles.push_back(result->title);
      urls.push_back(url::GURLAndroid::FromNativeGURL(env, result->link));
    }
  }

  // The SearchResultExtractorClient has already verified `document_url` matches
  // the last committed URL of the web contents when the request returned.
  // Document URL must also be a SRP url.
  DCHECK(GetSrpPageCategoryForUrl(results->document_url) !=
         PageCategory::kNone);
  java_interface_->OnResultsAvailable(
      env, java_ref_,
      url::GURLAndroid::FromNativeGURL(env, results->document_url),
      base::android::ConvertUTF8ToJavaString(env, query),
      static_cast<jint>(GetSrpPageCategoryForUrl(results->document_url)),
      base::android::ToJavaIntArray(env, group_types),
      base::android::ToJavaIntArray(env, group_sizes),
      base::android::ToJavaArrayOfStrings(env, titles),
      url::GURLAndroid::ToJavaArrayOfGURLs(env, urls));
}

}  // namespace continuous_search


text:
Spartans take over at top
Women's Football News 21 May 2009
Spartans have taken over the leadership of the Scottish Women's Premier League following a
5-1 victory away to Hamilton Academicals.
The unbeaten Edinburgh side had a game in hand on the top two going into the match and took full advantage despite the half time scoreline being goalless.
Debbie McWhinnie opened the scoring for Spartans within a minute of the restart and Diana Barry extended their lead midway through the second half. Sarah Crilly briefly gave Hamilton hope by pulling a goal back but Claire Crosbie quickly restored the two-goal advantage before Barry went on to crown the victory with two more to complete her hat-trick.
This means that Spartans now head the table by a single point from both Glasgow City and Celtic, each side having two games left to play. Sunday is set to be a crucial day in the fascinating title race with Glasgow playing host to Spartans whilst Celtic are away to FC Kilmarnock.
A Spartans victory would end the chances of reigning Champions City - who would return to the top with a win - but a draw would let in Celtic, for whom a three-point haul would put them into the driving seat going into the last weekend.


text:
29 January 2016 Tax Alert
Ruling on third-party backed shares
Section 8EA of the Income Tax Act, No 58 of 1962 (Act) constitutes an anti-avoidance provision which, if applicable, has the effect that the amount of any dividend or foreign dividend received or accrued to the holder of a preference share, is deemed to be an amount of income as opposed to exempt income for tax purposes. In order for the provisions of s8EA of the Act to apply, the preference share in question must be regarded as a 'third-party backed share'.
A third-party backed share means any preference share in respect of which an enforcement right is exercisable by the holder of that preference share or an enforcement obligation is enforceable as a result of any amount of any specified dividend, foreign dividend, return of capital or foreign return of capital attributable to that share not being received by, or accruing to the person entitled thereto.
It should however be noted that one of the important requirements that must be satisfied in order for the preference share in question to be regarded as a third-party backed share, is that the funds derived on the issue of the preference share must be applied for a purpose other than a 'qualifying purpose', as defined in s8EA(1) of the Act. Accordingly, where the funds derived from the issue of the preference share are applied for a 'qualifying purpose', the provisions of s8EA of the Act will not apply, provided that the enforcement rights or obligations are only exercisable or enforceable against certain persons listed in s8EA(3)(b) of the Act.
For purposes of this article, subparagraph b(i)(aa) of the definition of 'qualifying purpose' in s8EA(1) of the Act states that a qualifying purpose in relation to the application of the funds derived from the issue of a preference share, means the partial or the full settlement by any person of any debt incurred for the direct or indirect acquisition of an equity share by any person in an operating company. However, this excludes a direct or indirect acquisition of any equity share from a company that, immediately before that acquisition, formed part of the same group of companies as the person acquiring that equity share.
It is therefore not enough to merely have applied the funds derived from the issue of the preference share for a 'qualifying purpose', to escape the application of the aforementioned provisions to the preference share.
On 22 December 2015, the South African Revenue Service (SARS) issued Binding Private Ruling 214 (BPR 214), which deals with the interpretation and application of the provisions of s8EA of the Act. In particular, BPR 214 determines whether, in terms of the proposed transaction, cumulative redeemable preference shares constitute 'third-party backed shares'.
The parties to the proposed transaction is the Applicant, a company incorporated in and a resident of South Africa, which is a wholly owned subsidiary of a private company incorporated in and resident of South Africa (Company B). Company B in turn is a wholly owned subsidiary of a listed company incorporated in and resident of South Africa (Company A). A private company incorporated in and resident of South Africa (Company C), is a wholly owned subsidiary of the Applicant.
In terms of the proposed transaction, Company C borrowed an amount from Company B with the sole purpose of acquiring shares in a special purpose, non-operating company (Company D). Company D was created solely to hold equity shares in an operating company (Company E). The loan was subsequently delegated by Company C to the Applicant, resulting in the Applicant being indebted to Company B. The Applicant required funds to partially settle the loan and accordingly issued cumulative redeemable preference shares (shares) to a resident listed company, acting through its Corporate and Investment Banking Division (Company F).
In addition to the share subscription, the respective parties agreed that the following arrangements will apply:
the Applicant will, inter alia, indemnify Company F in the event of non-payment relating to the shares and will enter into a pledge and cession agreement with Company F, in respect of certain rights it holds;
company B will subordinate all of its claims against the Applicant, in favour of Company F;
company A will extend a guarantee to Company F for all the post redemption obligations of the Applicant; and
either Company A or Company B, or both of them, may extend guarantees to Company F in respect of the non-payments of the shares.
Further, in accordance with the calculation in terms of the share subscription agreement, three classes of dividends are to be payable in respect of the shares.
SARS made the following ruling in connection with the proposed transaction:
by virtue of the shares being issued for the indirect acquisition of an equity share in an operating company, the shares were applied for a 'qualifying purpose', as contemplated in s8EA(3), read with subparagraph (b)(i)(aa) of the definition of 'qualifying purpose' in s8EA(1) of the Act. Accordingly, the shares do not constitute 'third-party backed shares', as defined in s8EA(1) of the Act; and
by virtue of Company A and Company B forming part of the same group of companies as the Applicant, no regard must be had to the enforcement right exercisable by Company F, where the security provider is Company A or Company B.
We support our clients' strategic and operational needs by offering innovative, integrated and high quality thought leadership. To stay up to date on the latest legal developments that may potentially impact your business, subscribe to our alerts, seminar and webinar invitations by completing this form.
The information and material published on this website is provided for general purposes only and does not constitute legal advice.
We make every effort to ensure that the content is updated regularly and to offer the most current and accurate information. Please consult one of our lawyers on any specific legal problem or matter.
We accept no responsibility for any loss or damage, whether direct or consequential, which may arise from reliance on the information contained in these pages.
Please refer to the full terms and conditions on the website.
Copyright © 2020 Cliffe Dekker Hofmeyr. All rights reserved. For permission to reproduce an article or publication, please contact us cliffedekkerhofmeyr@cdhlegal.com.
Tax & Exchange Control
And that's the tea… An analysis of financial distress and reasonable prospect in business rescue proceedings
Dispute Resolution Alert
Still going down – another drop in the prescribed interest rate
Employment Law Alert
Professional indemnity insurance amidst COVID-19
Corporate Opportunity: The fine line between opportunism and breaching a fiduciary duty: A discussion of the Supreme Court of Appeal judgment of Modise and Another v Tladi Holdings (Pty) Ltd (Case no 307/19) [2020] ZASCA 112
The protection of your reputation is not for the Labour Court's consideration- a closer look at section 157 of the LRA
A time for change for victims of sexual offences
Pro Bono & Human Rights Alert
An Employer's Guide to Adjusted Level 3 Regulations
The Pro Bono & Human Rights Practice: A year not to be forgotten
Pro Bono & Human Rights Newsletter
Beyond COVID-19: Recent merger control developments (Part 1)
Competition Alert
Fax. +27 (0)11 562 1111
Email. jhb@cdhlegal.com
1 Protea Place, Sandton, Johannesburg, 2196
Email. ctn@cdhlegal.com
11 Buitengracht Street, Cape Town, 8001
Email. cdhstellenbosch@cdhlegal.com
14 Louw Street, Stellenbosch Central, Stellenbosch, 7600
Legal / Audit Confirmation
© 2021 Cliffe Dekker Hofmeyr. All rights reserved.
Podcasts - Cliffe Dekker Hofmeyr.
https://www.cliffedekkerhofmeyr.com/en/en/news/publications/2016/tax/tax-alert-29-january-ruling-on-third-party-backed-shares.html


ALMOST VACANT!!! LOTS OF NEWER STUFF WITHIN THE LAST 7 YEARS: ROOF, FURNACE, A/C, WINDOWS, SIDING, AND GARAGE DOOR. CARPET IS A YEAR OLD. SHOW AND SELL.!!!!
1223 Sacramento Carpentersville, Illinois 60110 is a single family property, which sold for $178,900. 1223 Sacramento has 4 bedroom(s) and 2 bath(s). Want to learn more about 1223 Sacramento Carpentersville, Illinois 60110? Contact an @properties agent to request more info.


I get this question a lot from people who are in the process of trying to decide what they want their career path to be. They want to know what they should specialize in or what they should study or what certification they should pursue to get the career they want. However, there is no one answer that fits every situation. Instead, I believe that you need to adjust your mindset. Here are a few things that I suggest you do instead.
First thing. You don't need to figure out your career. You only need to figure out your next step. Most successful people don't end up where they started. Oprah started as a television reporter. Steve Harvey started out as a comedian and now he hosts, owns and produces television shows. Most people asking this question usually have found themselves at a point where they feel like they have gone as far as they can go on this path and they are ready to transition. The question always seems to come because they are searching and nothing feels right to them. However, burdening yourself with trying to see the whole picture for the rest of your life is too much and can lead to you feeling overwhelmed. Instead just focus on your next step and have faith that once you build skills and grow, the long game will take care of itself.
Second thing to note. If you are thinking it's time for you to move on, then you are right. As soon as the idea comes into your mind, it's a sign. Don't push it down and ignore it. You may not know what it means or how to do it but acknowledge that it is real. Do not start judging the idea or yourself for having it.
Third thing. Start dreaming. I know. You're thinking to yourself, what? Dreaming?! My answer is yes. Dreaming. If you don't know where you want to go how will you ever figure out how to get there? So start thinking about what you would like to spend your day doing. Note down what comes into your mind. Don't screen the ideas or you'll block the flow. If you need to, start identifying images online or in magazines that help you to 'see' more clearly what you want. If you are sophisticated about this, you might even print them out and stick them onto a surface you like, decorate them with inspiring messages and review them every day. Ta-da! You have a vision board.
Fourth thing. What does it take to be where you want to be? Look at the examples that you know or can find, either around you or online. What skills? What knowledge? What relationships or connections do they have? What level of effort do they put out? What sacrifices have they made or are currently making? Don't just look at the upside of being there. Think also about the drawbacks. Once you have as much of the whole picture as you can, then you decide.
Fifth thing. You decide. You have to decide how much you are willing to give up to get to where you want to be. Change is never easy but it is always possible. Once we decide we want something and we are not stopping until we get it, then the sacrifices we make along the way always seem to be worth it. Not easy; just worth it. There will always be sacrifices to achieve something. If you stay where you are, you will sacrifice a chance to grow and become more. If you move forward, you sacrifice your comfort zone, maybe your free time and your sleep also. You may be trying to acquire more wealth and while that can bring you greater access to many things, you will have to learn new skills, behaviors and attitudes. In turn you will sacrifice what you have now and how you live now. So for every level we go up, we have to sacrifice something to get there. So you must decide how much you are willing to give, in order to get what you want.
Sixth thing. Assess yourself. What do you have now that you can use to start on your journey? It's never, 'nothing'. You have something. Are you great with people? Great with numbers? Do you love a challenge and does it push you to work harder? Are you great with words? Are you incredible when it comes to analyzing things and digging down to the core issues? None of these answers are right or wrong. You just have to figure out what you are great at doing. Knowing this helps you figure out the launching pad for your next step. Ask yourself, how can you use what you have to move forward?
Seventh thing. What do you need to learn? If there is a big gap between where you are now and where you want to be, you are going to have to learn a lot. This doesn't mean that you have to head back to school. It just means that you have to open your mind. You may learn from experiences you have, other people's experiences written in books. Or you may learn from mentors or videos on YouTube or podcasts you download. The point is that the opportunities for you to build your knowledge base and your skills are everywhere. You only have to be honest with yourself about what you do not know, what you need to learn and then be open to grabbing the learning opportunities when they come along. Or maybe chasing them down, if they don't come along.
Eighth thing. Work at it. Start where you are and start now. Start the learning. Start the doing. Start small. Identify one little thing you can do that will move you along the path. If your next step is to get promoted into management, managers need to be good with people and technically sound. Do you have your technical skills where they need to be? Are you working on building relationships with those around you? One day you could be leading those people around you? Do they know you well enough to trust you and support you when you get there? Do you know them well enough to be able to help them perform at a high level?
You have tons of opportunities to grow. You only need to decide what you want and outline a plan for getting there. You may not have all the answers, but you can still start on your journey to make your vision a reality. You can start small and you can start today. Before you know it, you'll have some new habits and you will start to build momentum and that is where the magic starts to happen.
Just a few things I wanted to share.


Resembling a slab, these indoor slippers have a changeable form. The compact design (2006) makes them easy to carry when traveling. Weighing 90 grams a pair, the slippers are lighter than a pair of thick socks. We have used mesh on the outer surface for a comfortable and airy feel when worn.


text:
Tag Archive for: CRPD
You are here: Home / News / CRPD
Right of Reply | CRPD Statement
Attn: The Editors of The Malta Independent Daily & The Malta Independent Online
Reference is made to the article carried in The Malta Independent Online on 16th July 2018 titled "70% of applications for accessibility compliance certificates rejected by the CRPD". The Kamra tal-Periti would like to inform your readers that the statement made by the CRPD Chair, Mr Oliver Scicluna, about the role of Periti in this statistic, is not only unfounded speculation, but highly defamatory to its members, and that we demand that it is withdrawn entirely. If Mr Scicluna has any evidence of instances where a Perit has deliberately not fulfilled the Commission's requirements to be able to charge more to change plans, he is requested to notify the Kamra about them, so it may immediately open Professional Conduct cases, as is its remit at Law.
It is pertinent to point out that in most instances, the role of the Perit ends on the completion of construction works and is thus not consulted or aware of what happens during the finishing stages, when most of the compliance failures occur. These may include failure to install the appropriate fixtures and fittings in bathrooms earmarked for disabled access, or the failure to install the appropriate platform lifts. As your readers will surely appreciate, Periti have no say on decisions made after the professional services agreed to with their clients are completed. It is only after the finishing works are terminated that issues of compliance with CRPD requirements are notified to the Perit, who is brought back in the project to rectify the mistakes carried out in his/her absence in the final stages of the project, by either amending planning permits at the request of clients or mediating on their behalf with the CRPD.
This is indeed one of the reasons why building regulations such as accessibility should be taken out of the planning process and consolidated under the Building Regulation Office.
Nevertheless, the Kamra remains open to further discussions with the CRPD on the matter.
kamratalperiti.org/press
https://kamratalperiti.org/wp-content/uploads/wc-1210963_1920.jpg 1711 1920 Kamra tal-Periti https://kamratalperiti.org/wp-content/uploads/logo-3-300x159.png Kamra tal-Periti2018-07-17 13:25:382018-07-17 13:25:38Right of Reply | CRPD Statement
CRPD meetings at Planning Authority
The Commission for the Rights of Persons with Disability (CRPD) has announced that as from 5th March 2018 CRPD representatives will be available for meetings on Wednesdays at the Planning Authority from 7.00am to 3.00pm between October and June and 7:00am to 12.30pm between July and September.
Meetings are strictly by appointment, which are to be made in advance by email on [email protected]
For more information, please contact Ms Marie Barbara on 2226 7600.
https://kamratalperiti.org/wp-content/uploads/wc-1210963_1920.jpg 1711 1920 Kamra tal-Periti https://kamratalperiti.org/wp-content/uploads/logo-3-300x159.png Kamra tal-Periti2018-02-15 11:41:382018-02-15 11:43:52CRPD meetings at Planning Authority


The auto body shop is proud to announce that additional space at nearby facilities has been secured in order to streamline the hail damage removal and body repair process as well as offer faster auto glass and windshield repair and replacement.
Anyone seeking an auto body shop in McKinney and Allen for hail damage repair, paint and body work, and auto glass - windshield repair and replacement will be pleased with the affordable prices and 5-star service this shop provides. They work with all insurance companies, help file claims, and even help set up rental cars to make the entire process go smoothly as possible.
Paintless dent repair, also known as PDR, is available for all makes and models, both foreign and domestic. When looking for an auto body shop in Allen or McKinney for paintless dent repair, Linear Automotive is a good choice because of the superior quality and affordable prices.


text:
var loxone = require('./my-loxone');

var myCallback = function(output){
    var f = console.log;
    if (output.LL.Code != 200) {
        f = console.error;
    }
    f("Call to: " + output.LL.control);
    f('Code = ' + output.LL.Code);
    f('Value = ' + output.LL.value);
    //console.log(output);
    f('----------------------------')
};

//First execute this method to discover all inputs
    //loxone.getEnumIn(myCallback);

//Select an input that holds a value
    // The inputs like I1, I2, ... are digital inputs
    // The inputs like AI1, AI2, ... are analog inputs
    // The inputs like VI1, VI2, ... are virtual inputs
    // Temperatures of the loxone modules are also returned by the enumIn function

    // If a digital input is a push button, the status will always be 0.
    // If a digital input is a switch, it will be status of the switch
    // Analog inputs may contain temperatures, virtual inputs can contain values, ...
    // From an input it's unlikely that you can check the status of a light.
    // Markers (GET)
    // Virtual status (GET)

//Example
    // If the enumIn function return 'switch A (I1)',
    // You can both use 'switch A' or 'I1' to pass the the get() or set() function.

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//read the value for an input
    //loxone.get("VI33", myCallback);

    //Will return 0 or 1 when a switch is off or on
    //Will return a numeric value in case the input is analog
    //Can contain additional characters like °C or V like configured on the input

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//send command or value for an input
    //loxone.set("VI33", 4, myCallback);

    //The value can be different for every input type
    //Analog inputs accept a numeric value (e.g. 2, 300, ...)
    //Digital inputs that are configured as a push button accept 'Pulse'
    //digital inputs that are configued as a switch accept 'On' or 'Off'

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//First execute this method to discover all outputs
    //loxone.getEnumOut(myCallback);

//Select an output that holds a value
// The inputs like Q1, Q2, ... are digital outputs
// The inputs like AQ1, AQ2, ... are analog outputs
// The virtual inputs can only be used by name

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//read the value for an output
    //loxone.get("Q_I6", myCallback); // socket
    //loxone.get("AQ_T2", myCallback); // dimming spot

    //Reading the value of a digital output indicates most of the time a light or socket that is on or off. (0 or 1)
    //Reading the value of a analog output returns a numeric value between 0 and 10 (or another configured range)
    //Reading a marker is also possible (both digital and analog)

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//send command or value for an output
    //Controlling (setting a value to) an output is not possible if it indicates it's an 'only status indicator'
    //To control an output, you need to set the input that matches with that output.

    //TODO: input to output through a 'Lichtsturing'
    //TODO: input to output on another way...

    //control a simple socket or light
    //loxone.get('Q_I6', myCallback);
    //loxone.set("I_I6", 'Pulse', myCallback);

    //dimmer
    //loxone.get('AQ_T6', myCallback);
    //loxone.set("I_T2", 'Pulse', myCallback);

    //TODO: LED
    //LED1  (RGB)

    //TODO: fan, port, ...

    //TODO: getAll
    //loxone.getAll('Toilet%20beneden', myCallback);

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Other functions

//loxone.getCPU(console.log);
//loxone.getChanges(console.log);


The much anticipated opium de-addiction centre at the bank of Tissing river was inaugurated by Parliamentary Secretary, Power, Thangwang Wangham in the presence of Kanubari MLA Gabriel D Wangsu ,Longding DC Vikram Singh Malik IAS and Longding SP Rohit Meena IPS on Saturday.
The DC Mallik was all praise for PS Wangham who in spite of all the hurdles came up with the unique rehabilitation centre for the opium addicts. He also urged all the the local leaders to contribute in their own means to realise the dream of opium free longding.
Kanubari MLA Gabriel D Wangsu contributed 10 Lakhs towards the realisation of opium rehabilitation centre and also urged the people not to politicise the matter as the opium rehabilitation centre would benefit the whole district. MLA Wangsu appreciated the CM Pema Khandu and deputy CM Chowna Mein for funding the establishment of the centre.
PS Wangham cautioned the dealers of opium that they would be dealt with iron hand as he opined that they're the main culprits behind the opium menace. He also donated 20 Lakhs towards the development of opium rehabilitation centre. In response to the criticism by some section of the people regarding the livelihood of the opium cultivators , Wangham retorted that cardamom plantation and tea plantation were some of the alternate arrangements made by the government to stop the cultivation of opium.
It may be noted here that Longding is the district most infested with opium addiction and the establishment of opium deaddiction centre ,the brainchild of PS Wangham is a much welcomed step.
As many as 36 opium addicts from Pumao village has been admitted in the firsts phase.
Gauhati HC Directs Personal Appearance of the Commissioner, Secretary of Finance Dpt.