Bill and Sherri Anderson opened "Callan's Classics, LLC" in January 2018 and is Savannah's newest vintage transportation company with a fleet of 3 vintage cars, ideal for weddings, anniversaries, engagements, birthdays, shopping sprees or any special occasion. Their cars were restored and once owned by Sherri's father Callan Phillips. The story of Callan Phillips and his passion for restoring and collecting vintage automobiles was recently featured in February 2018, on Fox Business Network's program, "Strange Inheritance". Callan's Classics is committed to providing impeccable white glove service with their beautiful cars in the stunning host city of Savannah.
Join Joe Steffen for the grand opening of The Steffen Law Office April 17, to include live music, snacks, drinks and door prizes. All proceeds from the suggested $10 donation will benefit The Savannah Bicycle Campaign.
Calvary Day School invites parents, alumni, supporters, administrators, and local media to celebrate the completion of its new 83,000-square-foot athletic complex. More than 600 Calvary Day students will gather to observe the ribbon cutting ceremony, and supporters are encouraged to attend.
The athletic facility is named Specialty Sports Complex in honor of the contributions of PCG Family Holdings. Specialty Sports is a local business fully invested in Savannah athletics and Calvary Day School. The school partnered with Field Turf to install a top-of-the-line CORE system for students. While Field Turf has eight different levels of fields, the CORE system is their premier field.
Byrd Cookie Company will host a grand opening and ribbon cutting at its new retail store and new corporate headquarters, both of which are located in the former Exchange Tavern building on Waters Avenue. Following the ribbon cutting, a grand opening celebration will take place throughout the day, featuring live music, special giveaways and complimentary refreshments.
Outback Steakhouse on Abercorn Street hosted a grand reopening ceremony to celebrate completion of repairs in the restaurant's kitchen! Outback staff was joined by fans and friends to welcome the everyone back to the restaurant.
Outback Steakhouse starts fresh every day with only the highest quality ingredients to create the flavors that our mates crave. Outback Steakhouse is best known for its grilled steaks, the Bloomin' Onion, and a variety of chicken and seafood. Congratulations to Outback Steakhouse!
Azure Apartment Homes is the newest renovation project by Kole Management in Garden City. Formerly known as Wyndmere apartments, Azure Cove boasts a host of amenities including on-site laundry facilities, a state-of-the-art fitness center, beautiful landscaping, and a resort-style pool. Walk inside one of the 144 units and you'll find hardwood floors, walk-in closets, and spacious galley-style kitchens with black appliances. The grand opening featured live music, small bites by local chefs, specialty drinks and door prizes. There is a $10 suggested donation to benefit The United Way of Coastal Georgia. Please join the Chamber in congratulating Kole Management on the opening of Azure Apartment Homes!
To celebrate the opening of their new Visitors Center, Bonaventure Cemetery Tours threw a grand opening party on Friday the 13th. The event included food trucks, live music, cemetery characters, and fire and acrobatic performance of The Stardust Pixies. As a bonus the first 30 people to arrive and sign up were treated to an exclusive Bonaventure After Hours tour! Congratulations to 6th Sense World Historic Ghost & Cemetery Tours!


Pharmacy schools and medical colleges throughout the world are notorious for being the birthplaces of revolutionary new ways to look at medicine.
Research-based learning hospitals and college programs have led to everything from cures to preventions in some of our most concerning ailments.
The pharmacy school at the University of North Carolina is on such a path with a treatment for Angelman Syndrome, according a UNC news publication. Angelman Syndrome is a disorder of the nervous system with no cure and no proven treatment options.
Commonly, Angelman Syndrome causes speech impairment by disallowing signals to pass through the system, literally robbing a person of their voice causing difficulty with or inability to speak. The researchers at the pharmacy school have identified a protein that can be produced in brain cells that allow the signals for speech to pass through the system.
In cases of Angelman Syndrome, the gene that produces this protein lies dormant. But the pharmacy school may have stumbled on a way to activate it, essentially waking this part of the system up and calling it to duty. In cooperation with scientists at the pharmacy school, the researchers may have opened the pathway to treating the disease.
The pharmacy school research used a variety of drugs to find a way to wake the gene responsible for creating the necessary protein. All of their research was conducted on laboratory mice, which seemed to respond to a medication known as "irinotecan".
While the researchers readily admit that they are nowhere near to a viable, user friendly treatment they are hopeful for a future treatment for this disease.
Pharmacy schools and medical colleges throughout the world are notorious for being the birthplaces of revolutionary new ways to look at medicine….


Chennai: TAKE Solutions on 11th July announced that its dedicated life sciences company, Navitas has been recognized as a 'Leader' in the IDC MarketScape: Worldwide Life Science R&D BPO Services 2018 Vendor Assessment (Doc # June 2018, IDC #US42144618).
Navitas Life Sciences was one of nine life science R&D IT BPO vendors selected to participate in this study based on the IDC MarketScape's stringent research and due diligence process. The company delivers platform-driven full-service Clinical, Regulatory and Safety solutions and services.
As the dedicated life sciences brand of TAKE Solutions, Navitas Life Sciences operates across North America, Europe, Asia pacific and Latin America. It brings together the capabilities of a full-service CRO, a technology-led life sciences services provider, and expertise in analytics and data sciences to address critical challenges and drive outcomes for life sciences.
Leadership in this study was based on the breadth of life science R&D business process outsourcing services offered, geographical footprint and global delivery capabilities, industry-specific expertise, and diligent vetting of customer references to examine vendor capabilities.
IDC MarketScape vendor analysis model is designed to provide an overview of the competitive fitness of ICT (information and communications technology) suppliers in a given market. The research methodology utilizes a rigorous scoring methodology based on both qualitative and quantitative criteria that results in a single graphical illustration of each vendor's position within a given market.


text:
Q: deselecting the listbox value I'm selecting items from one ListBox and adding them to second ListBox on button click.  The problem is that when I want to deselect the selected items from listbox2, it gives "Object reference not set to an instance of an object" error.  Below is the code I added behind SELECT button. I have used the same code for deselecting with listbox1 replaced by listbox2 and vice versa.
NOTE: Items in listbbox1 are being retrieved from database and items that got selected in listbox2 will be saved to database
List<int> rowIndexes = new List<int>();

foreach (int index in listBox1.SelectedIndices)
{
    DataRowView view = listBox1.Items[index] as DataRowView;
    string id = view["Course_Id"].ToString();
    string name = view["Course_Name"].ToString();
    listBox2.Items.Add(name);
    rowIndexes.Add(index);
}

try
{
    for (int i = rowIndexes.Count; i > 0; i--)
    {
        dt.Rows.RemoveAt(rowIndexes[i - 1]);
        dt.AcceptChanges();
    }
}

catch (Exception er)
{
    MessageBox.Show(er.Message);
}

A: This is a guess, at best, because the claim that it fails on the first line makes no sense.
My psychic powers tell me that this actually failing at
string id = view["Course_Id"].ToString();

because view is null. The problem is that
DataRowView view = listBox1.Items[index] as DataRowView;

is trying to cast the items from a ListBox to DataRowView. This will always return null, unless for some (odd) reason you populated your ListBox.Items with a collection of DataRowView.
EDIT
You may be filling listBox1 with DataRowView, but you're filling listBox2 with System.String:
string name = view["Course_Name"].ToString();
listBox2.Items.Add(name);

Try changing that to
//string id = view["Course_Id"].ToString();
//string name = view["Course_Name"].ToString();
listBox2.Items.Add(view);

A: Assuming that this is copied exactly from your code. This line is incorrect:
List<int> row Indexes = new List<int>();

its should be:
List<int> rowIndexes = new List<int>();

Also what is dt?
edit
If it really is failing on:
List<int> rowIndexes = new List<int>();

The perhaps you're not:
using System.Collections.Generic;

Or have a reference to System in your project references.

redpajama_set_name: RedPajamaStackExchange


text:
ExoMars' Partners Sign Agreement Moving Mission Forward
by Jason Rhian March 15, 2013, 4:51 pm 4 Comments
ESA has signed an agreement this week with Roscosmos, which would see the two agencies work together to move forward with the development of the ExoMars mission. Image Credit: ESA
With the signing of a formal agreement regarding the European Space Agency's (ESA) ExoMars mission, it appears that the two-part exploratory effort might be gaining steam. Roscosmos and ESA put pen to paper this week and formalized the arrangement which would see two launches be carried out in 2016 and 2018 to deliver the mission's elements to the Red Planet. ExoMars has had a rocky history, which appears to be smoothing out after NASA backed out its agreement with ESA in February 2012.
Somewhat similar to NASA's Mars Science Laboratory rover Curiosity's mission, ExoMars is designed to search for clues as to whether or not life ever existed on Mars.
The mission's components consist of an orbiting spacecraft as well as a rover. According to a press release issued by ESA, the arrangement requires the two organizations to share different responsibilities for the mission. ESA will provide the following: the Trace Gas Orbiter (TGO), the Entry, Descent, and Landing Demonstrator Module (EDM), which will be launched during the 2016 flight, and the carrier and rover, which will fly in 2018. Roscosmos' responsibilities are providing the launch vehicles (Proton rockets) as well as the launch operations. The Russian Space Agency will also handle the descent module and surface module, which will be part of the 2018 half of the mission. Both agencies will provide various other pieces of scientific equipment.
The two segments of the ExoMars mission were described as follows:
Trace Gas Orbiter
The 2016 mission has two major ESA elements: TGO and EDM. TGO will search for evidence of methane and other atmospheric gases that could be signatures of active biological or geological processes. It will also serve as a data relay for the 2018 mission. EDM will land on Mars to prove key technologies for the 2018 mission.
ExoMars rover
In 2018, the ExoMars rover, to be provided by ESA, will search the planet's surface for signs of life, past and present. It will be the first Mars rover able to drill to depths of 2 meters, collecting samples that have been shielded from the harsh conditions of the surface, where radiation and oxidants can destroy organic materials.
The rover will be delivered by a Russian descent module that includes a surface platform equipped with additional scientific instruments.
"It has been a long way; we have performed a large amount of work together. The ExoMars program is to become the second largest project after Soyuz in Kourou," said Vladimir Popovkin, head of Roscosmos. "It confirms again that projects of such tremendous scale have to be implemented through international cooperation. The scientific data that we are going to obtain during all the planned missions are important for the worldwide community."
Up until last year, NASA was to supply crucial elements that the Russian Space Agency has now agreed to provide. However, with President Obama's FY2013 budget, the space agency was forced to back out of the arrangement. Part of the problem involved cost overruns with the James Webb Space Telescope. NASA will still provide some components, such as the Electra UHF radio package, to the mission. Throughout the lifetime of the mission's development phase, it has switched partners several times. No fewer than three different launch vehicles have been listed as sending the mission on its way.
"This is a momentous occasion for the ExoMars program that will see industry and scientists from Europe and Russia working together on these two exciting missions, which will develop new technologies that will demonstrate the competitiveness of European industry, be important for preparing a solid participation of ESA in future international exploration missions, and address the key question of whether life ever arose on Mars," said ESA Director General Jean-Jacques Dordain.
European Space AgencyPresident ObamaNASARoverObamaAtlas rocketMarsProton rocketUnited Launch AllianceRed PlanetULARussian Space AgencySoyuzTrace Gas OrbiterAmericaSpaceVladimir PopovkinJWSTTGOJames Webb Space TelescopeEntryRoscosmosDescent and Landing Demonstrator ModuleCharles BoldenEDMBarack ObamaKourouAtlas VExoMars
Previous article Oh, Canada! First Canadian ISS Commander Scheduled to Take the Reins Today
Next article Orbital Readies For 'A-ONE' Test Flight
More From: Russia
Soyuz MS-12 Crew Primed for Thursday Launch to Space Station
by Ben Evans March 12, 2019, 8:01 am
Venus Beckons Part 2: A New NASA Collaborative Mission With Russia?
by Paul Scott Anderson March 15, 2017, 8:12 pm
Aliens in Hercules? Possible SETI Signal Detected by Russian Radio Telescope Remains Elusive
by Paul Scott Anderson August 30, 2016, 10:33 pm
Air Force Funds Both AR1 and BE-4 Rocket Engine Development to Replace ULA's Russian RD-180
by Craig Covault March 3, 2016, 8:32 am
NASA Awards Grants to Ozark IC to Create Circuits for Proposed Venus Rover
by Paul Scott Anderson July 28, 2015, 3:58 pm
Ongoing Research and New Crew Arrival Highlight Busy Week on Orbit for Expedition 43
by Sherry Valare March 30, 2015, 12:35 pm
Traversing the New Frontier: The First 50 Years of Spacewalking (Part 6)
One-Year Mission Underway With Rousing Soyuz TMA-16M Launch
by Ben Evans March 27, 2015, 6:47 pm
Ambitious One-Year Mission Counting Down to Friday Launch (Part 2)
Identical Twin, Former Paratrooper, and Ecologist to Launch Friday Aboard Soyuz TMA-16M (Part 1)
Repair and Salvage: The First 50 Years of Spacewalking (Part 4)
Soyuz TMA-17M Crew Ready for May Launch to Space Station
'Off On the Right Foot': Expedition 43 Underway at Space Station
'As Long As It's Not a Hurricane': 20 Years Since the Record-Setting Mission of Norm Thagard (Part 2)
Matt McClanahan says:
So this potentially makes three comms satellites in Mars orbit, assuming Odyssey and MRO are still kicking in 2016. While TGO waits for the ExoMars rover to arrive, would it make sense for it to share relaying duties for Curiosity and Opportunity if they're still running? Similarly once the ExoMars rover lands, it could leverage MRO and Odyssey as well. More windows of higher speed communication benefits everybody, after all, assuming it doesn't conflict with the orbiters' scientific missions.
ken anthony says:
Imagine they dig two meters and up comes a gusher? Yeah, probably too cold, but I wonder what the temperature gradient is as you go further down?
I wonder if Red Dragon/NASA will end up in a race with them during that time frame?
Inspiration Mars isn't going to be able to go EVA… so no fun with a bow and arrow for them!
2018 may be very exciting for martians.
Pingback:United States and North American News | David Reneke | Space and Astronomy News
Pingback:Weekly Links
Oh, Canada! First Canadian ISS Commander Scheduled to Take the Reins Today
Orbital Readies For 'A-ONE' Test Flight

redpajama_set_name: RedPajamaCommonCrawl


Home » News » Student Civic Engagement in Camden!
Student Civic Engagement in Camden!
Posted May 20, 2013, in News.
I just wanted to thank you for inspiring Falio and I to create our civic engagement project. We did another cleanup on on May 18th at the other park in Centerville located on 7th and Ferry Ave. We are also thinking about setting up a non-profit group to revitalize all the basketball courts in Camden. With a budget less than $200 we were able to make a significant impact on two courts and parks. Hopefully in your future classes we can get some other urban studies students involved and continue the project.Thanks again for the inspiration.
Page last updated by CURE at 2:22 pm November 2, 2015 .
This page was printed from http://cure.camden.rutgers.edu/2013/05/20/civic-engagement-in-camden/ at 8:30 AM Saturday, April 20, 2019.


Federico Guglielmo and his ensemble L'Arte dell'Arco have already made a number of acclaimed recordings of Vivaldi's music for Brilliant Classics. This boxset brings together CDs previously published along with never-before-heard recordings, spanning Vivaldi's Concertos and Sonatas Opp. 1–12 plus a bonus CD of Cello Sonatas. The comprehensive collection showcases the perennial music of 'Il prete rosso', with Italian musicians playing on authentic instruments, giving the closest version possible to the sounds that would have resonated in Venice 300 years ago.
Guglielmo shines at the helm of his closely- knit ensemble; from the Trio Sonatas Op.1, which showed Vivaldi's prowess at writing within an already well-established genre, through to his Violin Sonatas Op.2, with their elaborate asides for the ensemble as well as the solo instrument. 'L'estro armonico' ('Harmonic inspiration'), a collection of 12 concertos, brought VivaldiEuropean-wide fame for the first time, which he soon built on through his next publication 'Il cimento dell'armonia e dell'inventione' ('The contest between harmony and invention'). Arguably the composer's most famous collection, 'Il cimento' includes the delightful Four Seasons, as well as more concertos with evocative titles, such as 'La caccia' ('The hunt') and 'La tempesta di mare' ('The sea storm'). The ensemble varies depending on the piece, with some concertos styled with a small group of soloists accompanied by a ripieno, and others allowing one soloist to take a prominent role.
This release is proud to feature some of Guglielmo's long-time collaborators, including Mario Folena on the flute, Pier Luigi Fabretti on the oboe and Francesco Galligioni on the cello, all experienced performers with a sound that blends perfectly with L'Arte dell'Arco. The ensemble itself also differs from piece to piece, with Guglielmo carefully selecting the number of performers and instrumentation for each individual work, thereby creating the most authentic performance possible.
Guglielmo and his players bring a fresh interpretation to these beloved concertos as well as providing the listener with an opportunity to delve into Vivaldi's lesser-known earlier works. With just one player per part, L'Arte dell'Arco strip back the layers, bringing a revitalising transparency to Vivaldi's complex writing. The release includes world premieres of performances based on new critical editions of Vivaldi's music authorised by the Istituto Italiano Antonio Vivaldi, based at the Fondazione Giorgio Cini in Venice.
For the first time Vivaldi's complete Op. 1-12 in one set!
Already during his lifetime Vivaldi was a popular and successful composer, and, possessing a keen commercial talent, he published his own works. The works published during his lifetime are contained in his Opus 1-12, featuring such popular cycles as the Four Seasons, L'Estro Armonico, La Stravaganza, the flute concertos, and several sets of trio sonatas. These are by far to most popular works by the Venetian priest, and today they sound as fresh and sensational as when they were composed.
Newly recorded and based on the new Critical Edition by Alessandro Borin, Istituto Italiano Antonio Vivaldi, Fondazione Giorgio Cini, Venice.
Performed by the Italian Early Music group L'Arte dell'Arco, led by violinist (and soloist) Federico Guglielmo. French magazine Diapason wrote about them: "they understand the secret language of Vivaldi…rich and generous instrumental textures envelop the expressive lines of the solo violin…". All the previous separate issues have met with great critical acclaim, resulting in many 5 star reviews in the international press.
Included as a bonus CD, the new recording of the Cello Sonatas. Although without opus number they were certainly published during Vivaldi's lifetime.
Contains a biography of the performers. Recorded in Italy in 2010 - 2014.
Contains excellent liner notes by Vivaldi specialists.


text:
Lily Burana
Kenneth Womack
Labor secretary Alexander Acosta resigns
Shira Tarlo
Brian Williams (Reuters/Phil Mccarten)
Brian Williams' mess gets deeper: Anchor now confronts questions over Hurricane Katrina claims
After his Iraq apology fails to answer concerns, the NBC newsman faces yet another credibility problem
Check out this article! https://www.salon.com/2015/02/06/brian_williams_mess_gets_deeper_anchor_now_confronts_questions_over_hurricane_katrina_claims/
Luke Brinker
February 6, 2015 9:32PM (UTC)
UPDATE: Williams, in a statement on Saturday afternoon, announced he would temporarily step aside from the newscast. Our story is here.
With critics relentlessly mocking him on Twitter and some calling for him to lose his job following the revelation that he misled the public for years with claims of coming under fire during the 2003 Iraq invasion, it would seem that this week could hardly get worse for NBC News anchor Brian Williams.
It just did.
Williams now faces scrutiny surrounding his harrowing accounts of Hurricane Katrina suggesting that his false tale of being aboard a helicopter hit by rocket-propelled grenade fire in Iraq may be part of a larger pattern of deception.
The devastating 2005 hurricane came less than one year after Williams succeeded veteran broadcaster Tom Brokaw as the anchor of "NBC Nightly News." Williams' on-the-ground reporting leading up to and following the storm marked a pivotal point in his journalistic career -- the moment he "took ownership ... of the anchor chair," as Brokaw put it.
But the New Orleans Advocate reports that some of Williams' most sensational stories from the period don't dovetail with reality.
During a 2006 interview, Williams recounted witnessing bodies floating outside his hotel in the French Quarter of New Orleans -- a district that never flooded, as much of the rest of the city did.
Meanwhile, the new report also casts doubt on Williams' assertion that he contracted dysentery after ingesting floodwaters. Dr. Brobson Lutz, a former New Orleans city health director who aided relief efforts following the storm, told the Advocate that he "saw a lot of people with cuts and bruises and such, but I don't recall a single, solitary case of gastroenteritis during Katrina or in the whole month afterward."
Asked about Williams' claim that he inadvertently drank floodwaters, Lutz said, "I don't know anybody that's tried that to see, but my dogs drank it, and they didn't have any problems."
Following the storm, the New Orleans Times-Picayune reported that many journalists had exaggerated their accounts of the storm's aftermath, with apocryphal tales of seeing lootings, murders, and other crimes. The Advocate report indicates that Williams may have been part of this larger phenomenon.
"I saw fear, I saw death, I saw depravity, I saw firearms being brandished, I saw looting," Williams said in a 2006 interview.
Similarly, during a 2007 C-SPAN interview, Williams recalled, "We had to have men with guns behind me one night because I was the only source of light downtown, was the lights that were illuminating the broadcast."
"We were told not to drink our bottled water in front of people because we could get killed for it," he added.
MORE FROM Luke Brinker • FOLLOW LukeBrinker
Brian Williams Hurricane Katrina Iraq War Journalism Media Criticism Nbc News New Orleans
A secret history of the war in Syria
Assange and the future of democracy
Journalism's Assange problem
A horror comic for the Trump era
Enough debate about Trump: Stop him
Clarence Thomas: Birth control is next
Maddow details latest McConnell scandal


text:
Condos overlooking Greenpoint Savings Bank take shape at 1080 Lorimer
CityRealty > Market Insight > Features > Future New York >
The New Skyline People Shaping New York Great Listings Goldilocks Blocks Notable Sales Future New York Get To Know Trending In New York Iconic Addresses Affordable Housing
From Future New York Condos overlooking Greenpoint Savings Bank take shape at 1080 Lorimer
By CityRealty Staff Friday, January 10, 2020
The Greenpoint Savings Bank annex at 1080 Lorimer Street is going from 1950s ick to 2020 chic. PKSB Architects are transforming the former three-story mid-century office building into 29 one- to three-bedroom luxury residences priced from "$1 million to over $2.5 million.
Erected next to the domed Neoclassical-styled bank in 1953, the weather-worn, white-brick annex is now undergoing a major facelift with expanded new windows trimmed in black metal and splayed at the ground level. A dark stone base with metal grills will provide appeal at street-level. Renderings also show a magnificent row of lantern street lamps beside the building on Calyer Street will remain.
Construction progress at 1080 Lorimer as of January 2020
PKSB's page on the project explains, "The design includes a complete façade replacement which utilizes simple materials recalling the historic building's decorative features while maintaining the simplicity of the 1950's addition. The result is a design that transforms the structure from an undistinguished office building to a distinguished, modern, and respectful addition to the Greenpoint Savings Bank."
The project, whose design needed to muster the approvals of Landmarks since it is at the northern end of the Greenpoint historical district, will be entered along Lorimer Street. Lower floors will have duplex townhouse-style units and the second and third floors will have nine apartments each. A fourth-story penthouse will be added to the top, with floor-to-ceiling windows and a private landscaped terrace.
An approved offering plan and the launch of a registration site means sales are imminent. The project's anticipated sellout stands at $55,339,000. With land prices soaring in nearby Williamsburg and Long Island City, some developers have turned their attention to Greenpoint, especially since waterfront developments such as The Greenpoint and the rentals in the Greenpoint Landing master plan show there is strong demand to live in the neighborhood. The median listing price for a condo in Greenpoint stands at $899,000 ($1,152 / ft2 and there are just 32 condos currently for sale in the neighborhood.
Prices of Greenpoint condos compared to Brooklyn
To tour this property, just complete the information below.
Additional Info About the Building
1080 Lorimer Street (CityRealty Buildign Profile)
Greenpoint Neighborhood Page
1080 lorimer street
the helm
From Future New York Ready for takeoff: 935-foot-tall Two Manhattan West is about to rise above the street level Today, January 29, 2020
From Future New York 30E31 is ready for immediate occupancy; See fresh photos of Morris Adjmi-designed condos Tuesday, January 28, 2020
From Future New York A Great Investment: Sales launch at 39-32 28th Street in booming section of Long Island City Tuesday, January 28, 2020
From Future New York Masterful Baths: New development condos with spa-caliber bathrooms and showers Tuesday, January 28, 2020
From Future New York Limestone rises at One Clinton, Brooklyn's "Flatiron" condo with breathtaking views Monday, January 27, 2020
From Future New York REX's translucent, gossamer 'Mystery Box' rises at World Trade Center Monday, January 27, 2020
From Future New York Sign of the times: Chelsea's EQ3 store opens in view-saving retail jewelbox across from shuttering Barney's Monday, January 27, 2020
From Future New York LUNA uncovers eclectic design of arched-windows and terraces; See its custom-made condos from $565K Monday, January 27, 2020


Refractory linings form a whole with the metal casing housing them. There is an ever-increasing customer call today for a total package. Gouda Vuurvast Belgium responds hereto by offering refractory related steelwork which may include prefabricated shop components for incorporation in an installation or the replacement of corroded steel furnace casing during a shutdown, As we ensure planning and coordination requirements of the various work components, our clients are able to focus on other aspects of the project.
Gouda Vuurvast Belgium operates worldwide beyond its regional customer circle, in a number of core competences. For FCC Unit shutdowns and turnarounds our service package comprises both the refractory lining as well as the supply and installation of anchorage systems including hexmetal. Fibre linings in HRSG boilers can be replaced including the design, supply and fitting of the protective sheeting.
Within the region Gouda Vuurvast Belgium is preferred partner for a number of leading Original Equipment Manufacturers in the petrochemical, environmental and energy markets. These projects are executed partly in shop and partly on site. We supply and install the refractory linings for the equipment at its worldwide destination.
The industrial sectors we operate in call for the highest level of safety. All Gouda Vuurvast Belgium staff are trained to comply with the latest standards, such as VCA Petrochemie. Our integrated QHSE system combines quality, safety, good working conditions and environmental aspects into practicable work procedures. These procedures are being adapted on a project-specific basis and incorporated in a project plan. All staff involved are familiar with this plan, so that they are able to cope efficiently with specific requirements and circumstances.
The organizational and physical proximity of other operating companies of the Refractories division enables Gouda Vuurvast Belgium to generate synergy by working with associated companies such as Gouda Refractories and Gouda Vuurvast Services. Gouda Vuurvast Belgium will at all times operate as a recognizable and approachable main contractor.


text:
Africa selected
'Soco paid Congo major' accused of Virunga oil intimidation
https://www.bbc.co.uk/news/world-africa-33079911
Image caption Soco used Congolese government soldiers to secure staff and infrastructure in the volatile region
The BBC has seen evidence that British firm Soco made payments to a Congolese army major accused of using violence to intimidate oil exploration opponents.
At the time of the payments, Soco was operating in Virunga National Park in eastern Democratic Republic of Congo.
The company strongly rejects any suggestion that the payments were connected with the alleged abuse.
Last year, Soco ended its activities in Virunga, which is home to some of the last remaining mountain gorillas.
The BBC's DR Congo reporter Maud Jullien says the months the company spent exploring for oil in the park, a Unesco World Heritage site, angered campaigners and sparked international outrage.
Africa news updates
The 7,800 sq km (3,000 sq miles) park is one of the most ecologically diverse places on Earth, but it has suffered from the years of lawlessness and conflict between armed groups based in eastern DR Congo attracted by the area's rich mineral resources.
Soco used Congolese government soldiers to secure its staff and infrastructure in the volatile region.
'Threatened and tortured'
Cheques and receipts obtained by the campaign group Global Witness, and seen by the BBC, show the company paid an army major called Burimba Feruzi.
The payments total $42,250 (£27,290) over the course of two weeks in spring 2014.
That is the equivalent to several years' salary for a Congolese army major.
Several people have said they were threatened by Maj Feruzi.
One person said that men following the major's orders had tortured him, stating it was because he had opposed oil exploration.
Virunga:
Home to about a quarter of the world's endangered mountain gorillas
Includes forests, savannas, lava plains, swamps, erosion valleys, active volcanoes and the glaciated peaks
Also home to the endangered okapi and large colonies of hippos
Lake Edward contains more than 50 species of fish, as well as numerous bird species
DR Congo seeks Virunga park boundary change
The London-listed company said it has never denied funding the work of the Congolese army "or that Maj Feruzi was the DRC army's military liaison officer assigned to Soco's security".
"However, we strongly refute any suggestion that this funding was in any way improper or connected with alleged acts of intimidation or violence," it said in a statement.
It said it was not allowed to enter the area where it carried out exploratory tests without a military escort.
"The soldiers assigned to Soco's security escort were always under the full command and control of the DRC army," it said.
DR Congo: Dreaming of Democracy
Africa Today podcasts
Virunga National Park
Soco International
World Sections


text:
// NG2
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { FormArray } from '@angular/forms';
// Vendor
import { Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
import { NovoLabelService } from '../../services/novo-label-service';
import { AppBridge } from '../../utils/app-bridge/AppBridge';
import { FormUtils } from '../../utils/form-utils/FormUtils';
// APP
import { Helpers } from '../../utils/Helpers';
import { NovoModalService } from '../modal/modal.service';
import { EntityPickerResults } from '../picker/extras/entity-picker-results/EntityPickerResults';
import { NovoToastService, ToastOptions } from '../toast/ToastService';
import { CustomHttp, ModifyPickerConfigArgs, OptionsFunction } from './FieldInteractionApiTypes';
import { ControlConfirmModal, ControlPromptModal } from './FieldInteractionModals';
import { NovoControlConfig } from './FormControls';
import { IFieldInteractionEvent, NovoFieldset, ResultsTemplateType } from './FormInterfaces';
import { NovoFormControl } from './NovoFormControl';
import { NovoFormGroup } from './NovoFormGroup';

class CustomHttpImpl implements CustomHttp {
  url: string;
  options;
  mapFn = (x) => x;

  constructor(private http: HttpClient) {}

  get(url: string, options?): CustomHttp {
    this.url = url;
    this.options = options;
    return this;
  }

  map(mapFn): CustomHttp {
    this.mapFn = mapFn;
    return this;
  }

  subscribe(resolve, reject?): Subscription {
    return this.http.get(this.url, this.options).pipe(map(this.mapFn)).subscribe(resolve, reject);
  }
}

@Injectable()
export class FieldInteractionApi {
  private _globals;
  form: NovoFormGroup | any;
  private _currentKey: string;
  appBridge: AppBridge;
  private asyncBlockTimeout;
  private _isInvokedOnInit = false;

  static FIELD_POSITIONS = {
    ABOVE_FIELD: 'ABOVE_FIELD',
    BELOW_FIELD: 'BELOW_FIELD',
    TOP_OF_FORM: 'TOP_OF_FORM',
    BOTTOM_OF_FORM: 'BOTTOM_OF_FORM',
  };

  constructor(
    private toaster: NovoToastService,
    private modalService: NovoModalService,
    private formUtils: FormUtils,
    private http: HttpClient,
    private labels: NovoLabelService,
  ) {}

  get associations(): object {
    return this.form.hasOwnProperty('associations') ? this.form.associations : {};
  }

  get currentEntity(): string {
    return this.form.hasOwnProperty('currentEntity') ? this.form.currentEntity : undefined;
  }

  get currentEntityId(): string {
    return this.form.hasOwnProperty('currentEntityId') ? this.form.currentEntityId : undefined;
  }

  get isEdit(): boolean {
    return this.form.hasOwnProperty('edit') ? this.form.edit : false;
  }

  get isAdd(): boolean {
    return this.form.hasOwnProperty('edit') ? !this.form.edit : false;
  }

  set globals(globals) {
    this._globals = globals;
  }

  get globals() {
    return this._globals;
  }

  set currentKey(key: string) {
    this._currentKey = key;
  }

  get currentKey(): string {
    return this._currentKey;
  }

  set isInvokedOnInit(isOnInit: boolean) {
    this._isInvokedOnInit = isOnInit;
  }

  get isInvokedOnInit(): boolean {
    return this._isInvokedOnInit;
  }

  isActiveControlValid(): boolean {
    return !!this.getValue(this.currentKey);
  }

  getActiveControl(): NovoFormControl {
    return this.getControl(this.currentKey);
  }

  getActiveKey(): string {
    return this.currentKey;
  }

  getActiveValue() {
    return this.getValue(this.currentKey);
  }

  getActiveInitialValue() {
    return this.getInitialValue(this.currentKey);
  }

  getFieldSet(key: string, otherForm?: NovoFormGroup): NovoFieldset {
    if (!key) {
      console.error('[FieldInteractionAPI] - invalid or missing "key"'); // tslint:disable-line
      return null;
    }

    const form = otherForm || this.form;
    const fieldSet = form.fieldsets.find((fs: NovoFieldset) => fs.key && fs.key.toLowerCase() === key.toLowerCase());
    if (!fieldSet) {
      console.error('[FieldInteractionAPI] - could not find a fieldset in the form by the key --', key); // tslint:disable-line
      return null;
    }

    return fieldSet as NovoFieldset;
  }

  getControl(key: string, otherForm?: NovoFormGroup) {
    if (!key) {
      console.error('[FieldInteractionAPI] - invalid or missing "key"'); // tslint:disable-line
      return null;
    }

    const form = otherForm || this.form;
    const control = form.controls[key] as NovoFormControl;
    if (!control) {
      console.error('[FieldInteractionAPI] - could not find a control in the form by the key --', key); // tslint:disable-line
      return null;
    }

    return control;
  }

  getFormGroupArray(key: string, otherForm?: NovoFormGroup): NovoFormGroup[] {
    if (!key) {
      console.error('[FieldInteractionAPI] - invalid or missing "key"'); // tslint:disable-line
      return null;
    }

    const form = otherForm || this.form;
    const formArray = form.controls[key] as FormArray;
    if (!formArray || !formArray.controls) {
      console.error('[FieldInteractionAPI] - could not find a form array in the form by the key --', key); // tslint:disable-line
      return null;
    }

    return formArray.controls as NovoFormGroup[] | any;
  }

  getValue(key: string, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (control) {
      return control.value;
    }
    return null;
  }

  getRawValue(key: string, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (control) {
      return control.rawValue;
    }
    return null;
  }

  getInitialValue(key: string, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (control) {
      return control.initialValue;
    }
    return null;
  }

  setValue(
    key: string,
    value,
    options?: {
      onlySelf?: boolean;
      emitEvent?: boolean;
      emitModelToViewChange?: boolean;
      emitViewToModelChange?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.setValue(value, options);
      this.triggerEvent({ controlKey: key, prop: 'value', value }, otherForm);
    }
  }

  patchValue(
    key: string,
    value,
    options?: {
      onlySelf?: boolean;
      emitEvent?: boolean;
      emitModelToViewChange?: boolean;
      emitViewToModelChange?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.setValue(value, options);
      this.triggerEvent({ controlKey: key, prop: 'value', value }, otherForm);
    }
  }

  setReadOnly(key: string, isReadOnly: boolean, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.setReadOnly(isReadOnly);
      this.triggerEvent({ controlKey: key, prop: 'readOnly', value: isReadOnly }, otherForm);
    }
  }

  setRequired(key: string, required: boolean, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.setRequired(required);
      this.triggerEvent({ controlKey: key, prop: 'required', value: required }, otherForm);
    }
  }

  setDescription(key: string, description: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.description = description;
      this.triggerEvent({ controlKey: key, prop: 'description', value: description }, otherForm);
    }
  }

  highlight(key: string, isHighlighted: boolean, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.highlighted = isHighlighted;
      this.triggerEvent({ controlKey: key, prop: 'highlight', value: isHighlighted }, otherForm);
    }
  }

  hide(key: string, clearValue = true, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.hide(clearValue);
      this.disable(key, { emitEvent: false });
      this.triggerEvent({ controlKey: key, prop: 'hidden', value: true }, otherForm);
    }
    return control;
  }

  show(key: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.show();
      this.enable(key, { emitEvent: false });
      this.triggerEvent({ controlKey: key, prop: 'hidden', value: false }, otherForm);
    }
  }

  hideFieldSetHeader(key: string): void {
    const fieldSet = this.getFieldSet(key);
    if (fieldSet) {
      fieldSet.hidden = true;
    }
  }

  showFieldSetHeader(key: string): void {
    const fieldSet = this.getFieldSet(key);
    if (fieldSet) {
      fieldSet.hidden = false;
    }
  }

  disable(
    key: string,
    options?: {
      onlySelf?: boolean;
      emitEvent?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.disable(options);
      this.triggerEvent({ controlKey: key, prop: 'readOnly', value: true }, otherForm);
    }
  }

  enable(
    key: string,
    options?: {
      onlySelf?: boolean;
      emitEvent?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.enable(options);
      this.triggerEvent({ controlKey: key, prop: 'readOnly', value: false }, otherForm);
    }
  }

  markAsInvalid(key: string, validationMessage?: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control) {
      if (control && !control.restrictFieldInteractions) {
        control.markAsInvalid(validationMessage);
        this.triggerEvent({ controlKey: key, prop: 'errors', value: validationMessage }, otherForm);
      }
    }
  }

  markAsValid(key: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control) {
      if (control && !control.restrictFieldInteractions) {
        control.markAsValid();
        this.triggerEvent({ controlKey: key, prop: 'errors', value: null }, otherForm);
      }
    }
  }

  markAsDirty(
    key: string,
    options?: {
      onlySelf?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.markAsDirty(options);
    }
  }

  markAsPending(
    key: string,
    options?: {
      onlySelf?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.markAsPending(options);
    }
  }

  markAsPristine(
    key: string,
    options?: {
      onlySelf?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.markAsPristine(options);
    }
  }

  markAsTouched(
    key: string,
    options?: {
      onlySelf?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.markAsTouched(options);
    }
  }

  markAsUntouched(
    key: string,
    options?: {
      onlySelf?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.markAsUntouched(options);
    }
  }

  updateValueAndValidity(
    key: string,
    options?: {
      onlySelf?: boolean;
      emitEvent?: boolean;
    },
    otherForm?: NovoFormGroup,
  ): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.updateValueAndValidity(options);
    }
  }

  displayToast(toastConfig: ToastOptions): void {
    if (this.toaster) {
      this.toaster.alert(toastConfig);
    }
  }

  displayTip(key: string, tip: string, icon?: string, allowDismiss?: boolean, sanitize?: boolean, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.tipWell = {
        tip,
        icon,
        button: allowDismiss,
        sanitize: sanitize !== false, // defaults to true when undefined
      };
      this.triggerEvent({ controlKey: key, prop: 'tipWell', value: tip }, otherForm);
    }
  }

  clearTip(key: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.tipWell = null;
      this.triggerEvent({ controlKey: key, prop: 'tipWell', value: null }, otherForm);
    }
  }

  setTooltip(key: string, tooltip: string, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control.tooltip = tooltip;
      if (tooltip.length >= 40 && tooltip.length <= 400) {
        control.tooltipSize = 'large';
        control.tooltipPreline = true;
      } else if (tooltip.length > 400) {
        control.tooltipSize = 'extra-large';
      }
      this.triggerEvent({ controlKey: key, prop: 'tooltip', value: tooltip }, otherForm);
    }
  }

  confirmChanges(key: string, message?: string): Promise<boolean> {
    const history = this.getProperty(key, 'valueHistory');
    const oldValue = history[history.length - 2];
    const newValue = this.getValue(key);
    const label = this.getProperty(key, 'label');
    (document.activeElement as any).blur();
    return this.modalService.open(ControlConfirmModal, { oldValue, newValue, label, message, key }).onClosed.then((result) => {
      if (!result) {
        this.setValue(key, oldValue, { emitEvent: false });
      }
      return true;
    });
  }

  promptUser(key: string, changes: string[]): Promise<boolean> {
    (document.activeElement as any).blur();
    return this.modalService.open(ControlPromptModal, { changes, key }).onClosed;
  }

  setProperty(key: string, prop: string, value, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      control[prop] = value;
      this.triggerEvent({ controlKey: key, prop, value }, otherForm);
    }
  }

  getProperty(key: string, prop: string, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      return control[prop];
    }
    return null;
  }

  isValueEmpty(key: string): boolean {
    const value = this.getValue(key);
    return Helpers.isEmpty(value);
  }

  isValueBlank(key: string): boolean {
    const value = this.getValue(key);
    return Helpers.isBlank(value);
  }

  hasField(key: string, otherForm?: NovoFormGroup): boolean {
    const form = otherForm || this.form;
    return !!form.controls[key];
  }

  addStaticOption(key: string, newOption: any, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    let optionToAdd = newOption;
    let isUnique = true;
    if (control && !control.restrictFieldInteractions) {
      let currentOptions = this.getProperty(key, 'options');
      if (!currentOptions || !currentOptions.length) {
        const config = this.getProperty(key, 'config');
        if (config) {
          currentOptions = config.options;
          if (currentOptions && Array.isArray(currentOptions)) {
            if (currentOptions[0].value && !optionToAdd.value) {
              optionToAdd = { value: newOption, label: newOption };
            }
            config.options = [...currentOptions, optionToAdd];
            this.setProperty(key, 'config', config);
          }
        }
      } else {
        if (currentOptions[0].value && !optionToAdd.value) {
          optionToAdd = { value: newOption, label: newOption };
        }
        // Ensure duplicate values are not added
        currentOptions.forEach((option) => {
          if ((option.value && option.value === optionToAdd.value) || option === optionToAdd) {
            isUnique = false;
          }
        });
        if (isUnique) {
          this.setProperty(key, 'options', [...currentOptions, optionToAdd]);
        }
      }
      if (isUnique) {
        this.triggerEvent({ controlKey: key, prop: 'options', value: [...currentOptions, optionToAdd] }, otherForm);
      }
    }
  }

  removeStaticOption(key: string, optionToRemove: any, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      let currentOptions = this.getProperty(key, 'options', otherForm);
      if (!currentOptions || !currentOptions.length) {
        const config = this.getProperty(key, 'config', otherForm);
        if (config) {
          currentOptions = config.options;
          if (currentOptions && Array.isArray(currentOptions)) {
            let index = -1;
            currentOptions.forEach((opt, i) => {
              if (opt.value || opt.label) {
                if (opt.value === optionToRemove || opt.label === optionToRemove) {
                  index = i;
                }
              } else {
                if (opt === optionToRemove) {
                  index = i;
                }
              }
            });
            if (index !== -1) {
              currentOptions.splice(index, 1);
            }
            config.options = [...currentOptions];
            this.setProperty(key, 'config', config, otherForm);
          }
        }
      } else {
        let index = -1;
        currentOptions.forEach((opt, i) => {
          if (opt.value || opt.label) {
            if (opt.value === optionToRemove || opt.label === optionToRemove) {
              index = i;
            }
          } else {
            if (opt === optionToRemove) {
              index = i;
            }
          }
        });
        if (index !== -1) {
          currentOptions.splice(index, 1);
        }
        this.setProperty(key, 'options', [...currentOptions], otherForm);
      }
      this.triggerEvent({ controlKey: key, prop: 'options', value: control.options }, otherForm);
    }
  }

  modifyPickerConfig(
    key: string,
    config: {
      format?: string;
      optionsUrl?: string;
      optionsUrlBuilder?: Function;
      optionsPromise?;
      options?: any[];
      resultsTemplateType?: ResultsTemplateType;
    },
    mapper?,
  ): void {
    // call another method to avoid a breaking change but still enable stricter types
    this.mutatePickerConfig(key, config as ModifyPickerConfigArgs, mapper);
  }

  mutatePickerConfig(key: string, args: ModifyPickerConfigArgs, mapper?: (item: unknown) => unknown, otherForm?: NovoFormGroup): void {
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      const { minSearchLength, enableInfiniteScroll, filteredOptionsCreator, format, getLabels, emptyPickerMessage } = control.config;
      const optionsConfig = this.getOptionsConfig(args, mapper, filteredOptionsCreator, format);

      const newConfig: NovoControlConfig['config'] = {
        ...(emptyPickerMessage && { emptyPickerMessage }),
        ...(Number.isInteger(minSearchLength) && { minSearchLength }),
        ...(enableInfiniteScroll && { enableInfiniteScroll }),
        ...(filteredOptionsCreator && { filteredOptionsCreator }),
        ...(getLabels && { getLabels }),
        ...(optionsConfig && optionsConfig),
        resultsTemplate:
          control.config.resultsTemplate || ('resultsTemplateType' in args && this.getAppropriateResultsTemplate(args.resultsTemplateType)),
      };

      this.setProperty(key, 'config', newConfig);
      this.triggerEvent({ controlKey: key, prop: 'pickerConfig', value: args }, otherForm);
    }
  }

  addPropertiesToPickerConfig(key: string, properties: { [key: string]: unknown }, otherForm?: NovoFormGroup) {
    const control = this.getControl(key, otherForm);
    if (!control || control.restrictFieldInteractions) {
      return;
    }

    const config = {
      ...control.config,
      ...properties,
    };

    this.setProperty(key, 'config', config);
    this.triggerEvent({ controlKey: key, prop: 'pickerConfig', value: properties }, otherForm);
  }
  getOptionsConfig = (
    args: ModifyPickerConfigArgs,
    mapper?: (item: unknown) => unknown,
    filteredOptionsCreator?: (where: string) => (query: string) => Promise<unknown[]>,
    pickerConfigFormat?: string,
  ): undefined | { options: unknown[] } | { options: OptionsFunction; format?: string } => {
    if (filteredOptionsCreator || 'optionsUrl' in args || 'optionsUrlBuilder' in args || 'optionsPromise' in args) {
      const format = ('format' in args && args.format) || pickerConfigFormat;
      return {
        options: this.createOptionsFunction(args, mapper, filteredOptionsCreator),
        ...('emptyPickerMessage' in args && { emptyPickerMessage: args.emptyPickerMessage }),
        ...(format && { format }),
      };
    } else if ('options' in args && Array.isArray(args.options)) {
      return {
        options: [...args.options],
      };
    } else {
      return undefined;
    }
  };

  private getAppropriateResultsTemplate(resultsTemplateType: ResultsTemplateType) {
    switch (resultsTemplateType) {
      case 'entity-picker':
        return EntityPickerResults;
      default:
        return undefined;
    }
  }

  createOptionsFunction =
    (
      config: ModifyPickerConfigArgs,
      mapper?: (item: unknown) => unknown,
      filteredOptionsCreator?: (where?: string) => (query: string, page?: number) => Promise<unknown[]>,
    ): ((query: string) => Promise<unknown[]>) =>
    (query: string, page?: number) => {
      if ('optionsPromise' in config && config.optionsPromise) {
        return config.optionsPromise(query, new CustomHttpImpl(this.http), page);
      } else if (('optionsUrlBuilder' in config && config.optionsUrlBuilder) || ('optionsUrl' in config && config.optionsUrl)) {
        return new Promise((resolve, reject) => {
          const url = 'optionsUrlBuilder' in config ? config.optionsUrlBuilder(query) : `${config.optionsUrl}?filter=${query || ''}`;
          this.http
            .get(url)
            .pipe(
              map((results: unknown[]) => {
                if (mapper) {
                  return results.map(mapper);
                }
                return results;
              }),
            )
            .subscribe(resolve, reject);
        });
      } else if (filteredOptionsCreator) {
        if ('where' in config) {
          return filteredOptionsCreator(config.where)(query, page);
        } else {
          return filteredOptionsCreator()(query, page);
        }
      }
    };

  setLoading(key: string, loading: boolean, otherForm?: NovoFormGroup) {
    const form = otherForm || this.form;
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      if (loading) {
        form.controls[key].fieldInteractionloading = true;
        control.setErrors({ loading: true });
        // History
        clearTimeout(this.asyncBlockTimeout);
        this.asyncBlockTimeout = setTimeout(() => {
          this.setLoading(key, false);
          this.displayTip(key, this.labels.asyncFailure, 'info', false);
          this.setProperty(key, '_displayedAsyncFailure', true);
        }, 10000);
      } else {
        form.controls[key].fieldInteractionloading = false;
        clearTimeout(this.asyncBlockTimeout);
        control.setErrors({ loading: null });
        control.updateValueAndValidity({ emitEvent: false });
        if (this.getProperty(key, '_displayedAsyncFailure')) {
          this.setProperty(key, 'tipWell', null);
        }
      }
      this.triggerEvent({ controlKey: key, prop: 'loading', value: loading }, otherForm);
    }
  }

  addControl(
    key: string,
    metaForNewField: {
      key?: string;
      type?: string;
      name?: string;
      label?: string;
      interactions?: Array<{ event?: string; invokeOnInit?: boolean; script? }>;
    },
    position: string = FieldInteractionApi.FIELD_POSITIONS.ABOVE_FIELD,
    initialValue?,
    otherForm?: NovoFormGroup,
  ): void {
    if (!metaForNewField.key && !metaForNewField.name) {
      console.error('[FieldInteractionAPI] - missing "key" in meta for new field'); // tslint:disable-line
      return null;
    }

    if (!metaForNewField.key) {
      // If key is not explicitly declared, use name as key
      metaForNewField.key = metaForNewField.name;
    }

    const form = otherForm || this.form;
    if (form.controls[metaForNewField.key]) {
      // Field is already on the form
      return null;
    }

    const control = form.controls[key];
    let fieldsetIndex: number;
    let controlIndex: number;
    if (control) {
      fieldsetIndex = -1;
      controlIndex = -1;

      form.fieldsets.forEach((fieldset, fi) => {
        fieldset.controls.forEach((fieldsetControl, ci) => {
          if (fieldsetControl.key === key) {
            fieldsetIndex = fi;
            controlIndex = ci;
          }
        });
      });

      // Change the position of the newly added field
      switch (position) {
        case FieldInteractionApi.FIELD_POSITIONS.ABOVE_FIELD:
          // Adding field above active field
          // index can stay the same
          break;
        case FieldInteractionApi.FIELD_POSITIONS.BELOW_FIELD:
          // Adding field below active field
          controlIndex += 1;
          break;
        case FieldInteractionApi.FIELD_POSITIONS.TOP_OF_FORM:
          // Adding field to the top of the form
          controlIndex = 0;
          fieldsetIndex = 0;
          break;
        case FieldInteractionApi.FIELD_POSITIONS.BOTTOM_OF_FORM:
          // Adding field to the bottom of the form
          fieldsetIndex = form.fieldsets.length - 1;
          controlIndex = form.fieldsets[fieldsetIndex].controls.length;
          break;
        default:
          break;
      }

      if (fieldsetIndex !== -1 && controlIndex !== -1) {
        const novoControl = this.formUtils.getControlForField(metaForNewField, this.http, {});
        novoControl.hidden = false;
        const formControl = new NovoFormControl(initialValue, novoControl);
        form.addControl(novoControl.key, formControl);
        form.fieldsets[fieldsetIndex].controls.splice(controlIndex, 0, novoControl);
        this.triggerEvent({ controlKey: key, prop: 'addControl', value: formControl }, otherForm);
      }
    }
  }

  removeControl(key: string, otherForm?: NovoFormGroup): void {
    const form = otherForm || this.form;
    if (!form.controls[key]) {
      // Field is not on the form
      return null;
    }
    const control = this.getControl(key, otherForm);
    if (control && !control.restrictFieldInteractions) {
      let fieldsetIndex = -1;
      let controlIndex = -1;

      form.fieldsets.forEach((fieldset, fi) => {
        fieldset.controls.forEach((fieldsetControl, ci) => {
          if (fieldsetControl.key === key) {
            fieldsetIndex = fi;
            controlIndex = ci;
          }
        });
      });

      if (fieldsetIndex !== -1 && controlIndex !== -1) {
        form.removeControl(key);
        form.fieldsets[fieldsetIndex].controls.splice(controlIndex, 1);
        this.triggerEvent({ controlKey: key, prop: 'removeControl', value: key }, otherForm);
      }
    }
  }

  debounce(func: () => void, wait = 50) {
    let h;
    clearTimeout(h);
    h = setTimeout(() => func(), wait);
  }

  /**
   * Allows traversing nested forms by accessing the parent form.
   *
   * @param otherForm optional parameter for getting the parent of a different form.
   * If not provided will default to the parent of the current form.
   */
  getParent(otherForm?: NovoFormGroup) {
    const form = otherForm || this.form;
    return form.parent;
  }

  /**
   * The index is assigned as a property on the form's associations object when the form is part of a NovoControlGroup array.
   *
   * @param otherForm optional parameter for getting the index of a different form. If not provided will default to the current form.
   * @returns the index if it exists for the current or form, or null otherwise.
   */
  getIndex(otherForm?: NovoFormGroup) {
    const form = otherForm || this.form;
    return form.associations && form.associations.hasOwnProperty('index') ? form.associations.index : null;
  }

  private triggerEvent(event: IFieldInteractionEvent, otherForm?: NovoFormGroup): void {
    const form = otherForm || this.form;
    if (form && form.fieldInteractionEvents) {
      form.fieldInteractionEvents.emit(event);
    }
  }
}

redpajama_set_name: RedPajamaGithub


text:
Q: Reading binary file using IDL I have a IDL program which reads data from binary file. I am a newbie in IDL and so I can't help with a few lines in the program. Any help would be appreciated.
'''
    PRO READTHREEDIMENSIONAL,VAR,singlefname,NX,NY,NZ
; DECLARE VARIABLES
  VAR = {NX:0L,NY:0L,NZ:0L}
  VAR.NX = NX
  VAR.NY = NY
  VAR.NZ = NZ
  rread   = DBLARR(VAR.NX)
  phiread = DBLARR(VAR.NY)
  NCOSYSread = -1L

'''
What is the meaning of:
1) NX:0L
2) NCOSYSread = -1L

A: *

*The NX:0L defines a long integer field NX in the VAR structure.

*The NCOSYSread = -1L line defines a variable a long integer variable NCOSYSread that presumably would be used to read into via READU or READF later in this code.


So now that wea??ve talked about how to come up with great business ideas, Rich and Ron introduce us to some helpful tools that youa??ll need as you begin to build a business.
In our offices we keep a drill brace manufactured in the 1950s like what Rich and I both used as kids. Ita??s one of those hand crank jobs you dona??t see around very often nowadays. Ita??s a functional invention and eventually gets the job done a?? but it is painfully slow compared to todaya??s cordless power drills.
In this chapter, Rich will provide you with several power tools to help you build your business. Rich and I have used these tools over and over again. They are the basics, tried and true. And although they can be a little a??academic,a?? the Five Forces Model and the Competitive Matrix are both effective when you are weighing the pros and cons of a new venture. In addition, Rich will provide some additional power toolsa??handy processes that have worked repeatedly for him. With all of his startups, Rich has used them as quick sanity checks to help determine the viability of an idea. They have become part of the way we think and act. Taking a practical approach to the models, Rich will walk you step-by-step through a hypothetical business in an effort to help you grasp how to use the tools to analyze the opportunity youa??re considering.
A? can lasix help with aspiration.
Wea??ll start tomorrow with Richa??s hypothetical business and the Five Forces Model to give us an idea of the process.
clomid pills for sale, clomid pills for sale, clomid pills for sale, clomid pills for sale, clomid pills for sale, clomid pills for sale, clomid pills for sale, clomid pills for sale.


Last weekend there was some mumbling, grumbling and complaining going on as people got up early to make it to church on time. Ordinarily getting up early is not a big deal, but with the time change springing forward one hour, people seem to feel the effects more than falling back one hour.
I found myself complaining, but even before the words left my mouth, I felt the conviction of the Holy Spirit.
God brought to mind the millions of people around the world who are not able to worship freely. They wouldn't grumble and complain because they had to get up early. Instead they would be praising God that they would get to join their brothers and sisters in Christ in worshipping Jesus Christ our Lord and Savior and diligently study God's word.
Praise God…for the churches that preach and teach the full counsel of God's word. Those congregations are fed a veritable banquet and feast on God's word each week.
When we get home how many of us set our Bible down, only to be picked up again when we are heading out the door to church the next Sunday? May we be mindful of the millions of people who would love to hold the Bible in their hands and read it with their own eyes.
If we knew that tomorrow laws would be passed that would forbid us to attend church would there be an outcry from God's people? Would we flock to church in record numbers? If we knew our Bibles would be taken away from us, outlawed or banned, how would we treat God's Word?
May we live in light of the precious gifts we have been given by God. May we not take lightly our freedom to worship and read our Bible.
You are so, so right with this post. Because of health issues the time change is more difficult the older I get, but I dare no complain. I know a lady who does missions work in another country … winters there are 50 below zero … no complaining. Food shortages … no complaints either. Thanks for making us think Scripturally.


In 2009, the then State Minister for Education in New South Wales, Verity Firth, announced a plan to introduce bilingual education in four primary schools across the state for the National Asian Languages and Studies in School Program (NALSSP) priority languages: Chinese, Indonesian, Japanese and Korean. This paper reports on one aspect of a larger project undertaken by the researchers to examine how the schools, teachers, parents and children in the four schools experienced the implementation of this program and how they viewed the success or otherwise of the program at the end of the first two years of policy implementation. This paper focuses on reporting the perceptions of teachers (the bilingual teachers themselves, the support (classroom and assistant) teachers and senior executive teachers at each school) in relation to the implementation of this innovative and challenging model of languages education in the Australian context. The findings indicate that implementation of such programs is challenging, and that to succeed teachers need support to collaboratively plan, to develop their understandings of bilingual styles of teaching, and that a whole school approach to such a program facilitates smoother implementation.


text:
Wednesday , 01 Feb , 2023
Important Judgments
New Laws & Rules
LegitQuest
Top Searched Judgments
iDRAF
In CRM-M No.53121 of 2022 (O&M)-PUNJ HC- P&H HC denies pre-arrest bail to man accused of cheating innocent people of massive amount of Rs 8 crore on pretext of giving them higher rate of interest
Justice Arvind Singh Sangwan [22-11-2022]
28 Nov- 2022, by: Monika Rahar
Read Order: Aditya Rose v. State of Haryana
Monika Rahar
Chandigarh, November 28, 2022: While dealing with a petition for the grant of anticipatory bail to the petitioner in a case of cheating involving a sum of Rs 8 crore, the High Court of Punjab and Haryana has held that considering the seriousness of the allegations levelled against the petitioner regarding cheating a number of innocent victims of their hard earned money in lieu of giving higher rate of interest, no ground to grant bail was made out as the custodial interrogation was required.
In this case, before the Bench of Justice Arvind Singh Sangwan, an FIR was registered under Sections 406, 420, 506 IPC at the instance of 12 complainants who alleged that the main accused Rahul Rose and the petitioner committed the offence of cheating and misappropriation of the amount of Rs. 8 crores. The said amount was received by the accused for the purpose of investment in some businesses for a 2% interest on the said amount.
Later, it came to the knowledge of the investors that the mastermind of this scam was constructing a house from the money which he earned by playing fraud with the investors. It was also the investors' plea that upon being approached by them, the petitioner's wife and mother threatened them. Accordingly, it was prayed that legal action be taken against Rahul Rose, Aditya Rose (petitioner) and Jatin.
The petitioner's counsel further argued that there was no evidence as to how Rs. 8 crores were paid by the victims as no details of the payment was given in the FIR. It was also submitted that there was no agreement that the petitioner or other accused persons promised to pay 2% interest on the amount paid by them and even, no document in this regard was given to the Investigating Officer. It was further contended that the petitioner was in the business of dry fruits by the name and style of 'Rose Associates'.
The Counsel further submitted that from the bare perusal of the FIR, the offence under Sections 406, 420 and 506 IPC were not made out. It was also submitted that the petitioner was ready to appear before the Investigating Officer and join the investigation.
On the other hand, the State Counsel further submitted that the modus operandi of all the accused persons was that since the time of inception of commission of offence, in conspiracy with other, they allured all the victims including many other persons/victims, whose complaints were also pending with the police, with fake assurance that the accused will pay higher rate of interest @ 2% per annum and in that process, they have cheated the innocent persons of their hard earned money.
It was also stated that the intention of all the accused persons since the inception of committing the crime was clear to cheat the victims as by taking the amount in cash or in the account, just to gain the confidence of the victims, fake documents like pronotes/receipts and cheques, etc. were issued.
After hearing the parties, the Court observed that considering the seriousness of the allegations against the petitioner regarding cheating a number of innocent victims of their hard earned money in lieu of giving higher rate of interest, no ground was made out to grant anticipatory bail to the petitioner.
While dismissing the petition, the Court held, "... this Court finds no ground to grant anticipatory bail to the petitioner as the custodial interrogation is required."
About Legiteye
Legitquest is a Legal-Tech venture run by a versatile team of tech-savvy attorneys, engineers and designers who aim to make the practice of law simpler for its end users. We have eminent jurist Mr. Ram Jethmalani as our patron
Newsletter Alerts
Report Technical issue
Complaints and Corrections
In W.P.(C) 17700/2022-DEL HC- If GST portal cannot be adopted to include further explanation for which proposed action is contemplated, then Notices would be rendered meaningless; Authorities can consider issuing physical SCN: Delhi HC
Justices Vibhu Bakhru & Amit Mahajan [25-01-2023]
In FAO 1548/2019 (O&M)-PUNJ HC- Responsible Doctors & Senior Army Officers have given medical opinion regarding injuries suffered by claimant, says P&H HC while dismissing Insurance Company's appeal against MACT Award
Justice Nidhi Gupta [31-01-2023]
In W.P.(T) No.4782 of 2022-JHK HC-Notice issued u/s 73(1) of Jharkhand GST Act, 2017 is not mere formality: Jharkhand HC
Justices Aparesh Kumar Singh & Deepak Roshan [24-01-2023]
Sign up for our weekly newsletter to stay up to date on our product, events featured blog, special offer and all of the exciting things that take place here at Legitquest.
© Copyright 2020 - Legitquest


to scarlet: try first to read some reviews of N70 before buying. GSM arena provide a good review with conclusion wait for the review before buying or try to use the phone in nokia store im sure they have sample model of N70, by then you'll be confident enough to buy the phone without any doubts.
Hey guys, is it wise to be amongst the first 100 people to buy the phone or wait a few months after the release of the N70, then purchase it?
What I'm afraid is that the first batch of phones are just prototypes and there might be lots of problems in the first batch. And as you know, prototypes aren't good cos they have lotsa problems and in the end, you end up spending more money on the phone.
Then, I believe, that after a few months, the prototypes' batch will all be sold and a new batch will come into the shops that is 'problem-free' i guess..
So guys, should i wait for a few months to purchase the N70??
i will buy this hp because i very like this model ! i hope get some places which can get the better price in the market !
smells good and very impressive and also expensive... but i'll wait for the price to go less expensive.. i hope it will soon!!! ayos ba!! i heard from my colleague name rowell gaufo that she will loan this cellphone from mam doris!! i hope she will!!! lets pray for gaufo!!!
nokia n70 has two versions; one is with dual camera and the other is without. They are like 6270 and 6280.
will be available in asia first week of october.
peachblack, Symbian OS is like Palm OS for the PDA's, but for phones. There are like a gazillion apps out there for it. I'm sure you can google your way to what you need.
Can't wait. Am new to symbian phones. can I download players to watch movies on the N70 in .avi formats?
Went to the 100% design show in London last week and Nokia have a live stand showcasing the N70, N90 and N91 for the public to play with. N70 looks even better in real life!
Nokia start shipping N70 as of sept 28!!!gosh it will be out in the market maybe a week from now!. Check out your nokia store locator. Cant wait to buy one!. Read nokia press release to believe!. bye guys! mwah!
if i have not mistaken only N90 video recording has CIF. N70 and N91 have QCIF only.
Hi i've phoned o2 today they said it will be released oct 13th woohoo! so going to get one and have a play, if its good i'll keep it, but if not i'll send it back and wait for the n91 with the 4 gig micro drive. i have the samsung e530 and its great,the best thing is the video? every mobile out there the video is 174 x 144 and its pants the samsung e530 is 352 x 288 its like a camcorder! no blur-e-ness no blocking! its a perfect video? now if the n70 or n91 has the same hight quaility video,you would have a top video recorder that could recored for hours and hours! finally! a phone + good camera + radio + mp3 player + a top video recorder now how cool will that be! finger crossed hope its 352 x 288 or highter ?
i think you will find it says Oct 05 meaning October 2005 not the date.
it's announced on 5 oct. on o2 U.K.


The highest paid Euromed Marseille alumni & graduates are Finance Control & Strategy professionals at $81,000 annually. The lowest paid Euromed Marseille alumni & graduates are Consulting, Accounting & Professional Services professionals at $59,000.
The best paying degree at Euromed Marseille is Masters in Finance, with alumni earning an average salary of $68,000.
Graduates from Euromed Marseille who earn the lowest salaries are those with a Masters in Science degree, earning a salary of $46,000 annually.


Afro-pop artist rapper popularly known as Murphy D is here again with a brand new single titled Tgif (Thank God it's Friday).
The Star has released yet another hit song, following his hit single Zelum few months ago, with an incredible beat from Jazzwhezzy, this new single is sure to set you up in the mood lyrically.
Upgrade your playlist and get ready to dance.


text:
from livesettings import config_value
from payment.listeners import capture_on_ship_listener
from product.models import Product
from product.listeners import default_product_search_listener, discount_used_listener
from satchmo_store.contact import signals as contact_signals
from satchmo_store.mail import send_html_email
from satchmo_store.shop import signals
from satchmo_store.shop.exceptions import OutOfStockError
from satchmo_store.shop.models import Order
from signals_ahoy.signals import application_search

import notification
import logging

log = logging.getLogger('shop.listeners')

# --------------- Optional listeners
def only_one_item_in_cart(sender, cart=None, cartitem=None, **kwargs):
    for item in cart.cartitem_set.all():
        if not item == cartitem:
            log.debug('only one item in cart active: removing %s', item)
            item.delete()

# --------------- Default listeners

def decrease_inventory_on_sale(sender, order=None, **kwargs):
    """Track inventory and total sold."""
    # Added to track total sold for each product
    for item in order.orderitem_set.all():
        product = item.product
        product.total_sold += item.quantity
        if config_value('PRODUCT','TRACK_INVENTORY'):
            product.items_in_stock -= item.quantity
        product.save()

def recalc_total_on_contact_change(contact=None, **kwargs):
    """If the contact has changed, recalculate the order total to ensure all current triggers are hit."""
    #TODO: pull just the current order once we start using threadlocal middleware
    log.debug("Recalculating all contact orders not in process")
    orders = Order.objects.filter(contact=contact, status="")
    log.debug("Found %i orders to recalc", orders.count())
    for order in orders:
        order.copy_addresses()
        order.recalculate_total()

def remove_order_on_cart_update(request=None, cart=None, **kwargs):
    """Remove partially completed order when the cart is updated"""
    if request:
        log.debug("caught cart changed signal - remove_order_on_cart_update")
        Order.objects.remove_partial_order(request)

def veto_out_of_stock(sender, cartitem=None, added_quantity=0, **kwargs):
    """Listener which vetoes adding products to the cart which are out of stock."""

    if config_value('PRODUCT','NO_STOCK_CHECKOUT') == False:
        product = cartitem.product
        need_qty = cartitem.quantity + added_quantity
        if product.items_in_stock < need_qty:
            log.debug('out of stock on %s', product.slug)
            raise OutOfStockError(product, product.items_in_stock, need_qty)

def start_default_listening():
    """Add required default listeners"""
    contact_signals.satchmo_contact_location_changed.connect(recalc_total_on_contact_change, sender=None)
    signals.order_success.connect(decrease_inventory_on_sale)
    signals.order_success.connect(notification.order_success_listener, sender=None)
    signals.order_success.connect(discount_used_listener, sender=None)
    signals.satchmo_cart_changed.connect(remove_order_on_cart_update, sender=None)
    application_search.connect(default_product_search_listener, sender=Product)
    signals.satchmo_order_status_changed.connect(capture_on_ship_listener)
    signals.satchmo_order_status_changed.connect(notification.notify_on_ship_listener)
    signals.satchmo_cart_add_verify.connect(veto_out_of_stock)

    signals.sending_store_mail.connect(send_html_email)

    log.debug('Added default shop listeners')