text:
/**
 *
 *
 */

#ifndef SBMLWriter_h
#define SBMLWriter_h

#include <sbml/common/extern.h>
#include <sbml/common/sbmlfwd.h>

#ifdef __cplusplus

#include <iosfwd>
#include <string>

LIBSBML_CPP_NAMESPACE_BEGIN

class SBMLDocument;

class LIBSBML_EXTERN SBMLWriter
{
public:

  /**
   * Creates a new SBMLWriter.
   *
   * The libSBML SBMLWriter objects offer methods for writing SBML in
   * XML form to files and text strings.
   */
  SBMLWriter  ();

  /**
   * Destroys this SBMLWriter.
   */
  ~SBMLWriter ();

  /**
   * Sets the name of this program, i.e., the program that is about to
   * write out the SBMLDocument.
   *
   * If the program name and version are set (see
   * SBMLWriter::setProgramVersion(@if java String version@endif)), the
   * following XML comment, intended for human consumption, will be written
   * at the beginning of the XML document:
   * @verbatim

 @endverbatim
   *
   * If the program name and version are not set at some point before
   * calling the writeSBML() methods, no such comment is written out.
   *
   * @param name the name of this program (where "this program" refers to
   * program in which libSBML is embedded, not libSBML itself!)
   *
   * @return integer value indicating success/failure of the
   * function.  The possible values
   * returned by this function are:
   * @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS @endlink
   *
   * @see setProgramVersion(const std::string& version)
   */
  int setProgramName (const std::string& name);

  /**
   * Sets the version of this program, i.e., the program that is about to
   * write out the SBMLDocument.
   *
   * If the program version and name are set (see
   * SBMLWriter::setProgramName(@if java String name@endif)), the
   * following XML comment, intended for human consumption, will be written
   * at the beginning of the document:
   * @verbatim

 @endverbatim
   *
   * If the program version and name are not set at some point before
   * calling the writeSBML() methods, no such comment is written out.
   *
   * @param version the version of this program (where "this program"
   * refers to program in which libSBML is embedded, not libSBML itself!)
   *
   * @return integer value indicating success/failure of the
   * function.  The possible values
   * returned by this function are:
   * @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS @endlink
   *
   * @see setProgramName(const std::string& name)
   */
  int setProgramVersion (const std::string& version);

  /**
   * Writes the given SBML document to filename.
   *
   * @htmlinclude assuming-compressed-file.html
   *
   * @param d the SBML document to be written
   *
   * @param filename the name or full pathname of the file where the SBML
   * is to be written.
   *
   * @return @c true on success and @c false if the filename could not be
   * opened for writing.
   *
   * @note @htmlinclude note-writing-zipped-files.html
   *
   * @see setProgramVersion(const std::string& version)
   * @see setProgramName(const std::string& name)
   */
  bool writeSBML (const SBMLDocument* d, const std::string& filename);

  /**
   * Writes the given SBML document to the output stream.
   *
   * @param d the SBML document to be written
   *
   * @param stream the stream object where the SBML is to be written.
   *
   * @return @c true on success and @c false if one of the underlying
   * parser components fail (rare).
   *
   * @see setProgramVersion(const std::string& version)
   * @see setProgramName(const std::string& name)
   */
  bool writeSBML (const SBMLDocument* d, std::ostream& stream);

  /** @cond doxygenLibsbmlInternal */

  /**
   * Writes the given SBML document to an in-memory string and returns a
   * pointer to it.
   *
   * The string is owned by the caller and should be freed (with @c free())
   * when no longer needed.
   *
   * @param d the SBML document to be written
   *
   * @return the string on success and @c 0 if one of the underlying parser
   * components fail.
   *
   * @see setProgramVersion(const std::string& version)
   * @see setProgramName(const std::string& name)
   */
  char* writeToString (const SBMLDocument* d);

  /** @endcond */

  /**
   * Writes the given SBML document to filename.
   *
   * @htmlinclude assuming-compressed-file.html
   *
   * @param d the SBML document to be written
   *
   * @param filename the name or full pathname of the file where the SBML
   * is to be written.
   *
   * @return @c true on success and @c false if the filename could not be
   * opened for writing.
   *
   * @note @htmlinclude note-writing-zipped-files.html
   *
   * @see setProgramVersion(const std::string& version)
   * @see setProgramName(const std::string& name)
   */
  bool writeSBMLToFile (const SBMLDocument* d, const std::string& filename);

  /**
   * Writes the given SBML document to an in-memory string and returns a
   * pointer to it.
   *
   * The string is owned by the caller and should be freed (with @c free())
   * when no longer needed.
   *
   * @param d the SBML document to be written
   *
   * @return the string on success and @c 0 if one of the underlying parser
   * components fail.
   *
   * @see setProgramVersion(const std::string& version)
   * @see setProgramName(const std::string& name)
   */
  char* writeSBMLToString (const SBMLDocument* d);

  /**
   * Predicate returning @c true if this copy of libSBML has been linked
   * with the zlib library.
   *
   * LibSBML supports reading and writing files compressed with either
   * bzip2 or zip/gzip compression.  The facility depends on libSBML having
   * been compiled with the necessary support libraries.  This method
   * allows a calling program to inquire whether that is the case for the
   * copy of libSBML it is using.
   *
   * @return @c true if libSBML is linked with zlib, @c false otherwise.
   *
   * @copydetails doc_note_static_methods
   *
   * @see @if clike hasBzip2() @else SBMLWriter::hasBzip2() @endif@~
   */
  static bool hasZlib();

  /**
   * Predicate returning @c true if this copy of libSBML has been linked
   * with the bzip2 library.
   *
   * LibSBML supports reading and writing files compressed with either
   * bzip2 or zip/gzip compression.  The facility depends on libSBML having
   * been compiled with the necessary support libraries.  This method
   * allows a calling program to inquire whether that is the case for the
   * copy of libSBML it is using.
   *
   * @return @c true if libSBML is linked with bzip2, @c false otherwise.
   *
   * @copydetails doc_note_static_methods
   *
   * @see @if clike hasZlib() @else SBMLWriter::hasZlib() @endif@~
   */
  static bool hasBzip2();

 protected:
  /** @cond doxygenLibsbmlInternal */

  std::string mProgramName;
  std::string mProgramVersion;

  /** @endcond */
};

LIBSBML_CPP_NAMESPACE_END

#endif  /* __cplusplus */

LIBSBML_CPP_NAMESPACE_BEGIN
BEGIN_C_DECLS

#ifndef SWIG

/**
 * Creates a new SBMLWriter and returns a pointer to it.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
SBMLWriter_t *
SBMLWriter_create (void);

/**
 * Frees the given SBMLWriter.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
void
SBMLWriter_free (SBMLWriter_t *sw);

/**
 * Sets the name of this program. i.\ e.\ the one about to write out the
 * SBMLDocument.  If the program name and version are set
 * (setProgramVersion()), the following XML comment, intended for human
 * consumption, will be written at the beginning of the document:
 *
 *
 *
 * @return integer value indicating success/failure of the
 * function.  @if clike The value is drawn from the
 * enumeration #OperationReturnValues_t. @endif@~ The possible values
 * returned by this function are:
 * @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS @endlink
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_setProgramName (SBMLWriter_t *sw, const char *name);

/**
 * Sets the version of this program. i.\ e.\ the one about to write out the
 * SBMLDocument.  If the program version and name are set
 * (setProgramName()), the following XML comment, intended for human
 * consumption, will be written at the beginning of the document:
 *
 *
 *
 * @return integer value indicating success/failure of the
 * function.  @if clike The value is drawn from the
 * enumeration #OperationReturnValues_t. @endif@~ The possible values
 * returned by this function are:
 * @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS @endlink
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_setProgramVersion (SBMLWriter_t *sw, const char *version);

/**
 * Writes the given SBML document to filename.
 *
 * @htmlinclude assuming-compressed-file.html
 *
 * If the filename ends with @em .gz, the file will be compressed by @em gzip.
 * Similary, if the filename ends with @em .zip or @em .bz2, the file will be
 * compressed by @em zip or @em bzip2, respectively. Otherwise, the fill will be
 * uncompressed.
 * If the filename ends with @em .zip, a filename that will be added to the
 * zip archive file will end with @em .xml or @em .sbml. For example, the filename
 * in the zip archive will be @em test.xml if the given filename is @em test.xml.zip
 * or @em test.zip. Also, the filename in the archive will be @em test.sbml if the
 * given filename is @em test.sbml.zip.
 *
 * @note To write a gzip/zip file, libSBML needs to be configured and
 * linked with the zlib library at
 * compile time.  It also needs to be linked with the bzip2 library to write files in @em bzip2 format.  (Both
 * of these are the default configurations for libSBML.)  Errors about
 * unreadable files will be logged and this method will return @c false
 * if a compressed filename is given and libSBML was @em not linked with
 * the corresponding required library.
 *
 * @note SBMLWriter_hasZlib() and SBMLWriter_hasBzip2() can be used to
 * check whether libSBML has been linked with each library.
 *
 * @return non-zero on success and zero if the filename could not be opened
 * for writing.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_writeSBML ( SBMLWriter_t         *sw,
                       const SBMLDocument_t *d,
                       const char           *filename );

/**
 * Writes the given SBML document to filename.
 *
 * If the filename ends with @em .gz, the file will be compressed by @em gzip.
 * Similary, if the filename ends with @em .zip or @em .bz2, the file will be
 * compressed by @em zip or @em bzip2, respectively. Otherwise, the fill will be
 * uncompressed.
 * If the filename ends with @em .zip, a filename that will be added to the
 * zip archive file will end with @em .xml or @em .sbml. For example, the filename
 * in the zip archive will be @em test.xml if the given filename is @em test.xml.zip
 * or @em test.zip. Also, the filename in the archive will be @em test.sbml if the
 * given filename is @em test.sbml.zip.
 *
 * @note To create a gzip/zip file, libSBML needs to be linked with zlib at
 * compile time. Also, libSBML needs to be linked with bzip2 to create a bzip2 file.
 * File unwritable error will be logged and @c zero will be returned if a compressed
 * file name is given and libSBML is not linked with the required library.
 * SBMLWriter_hasZlib() and SBMLWriter_hasBzip2() can be used to check whether
 * libSBML was linked with the library at compile time.
 *
 * @return non-zero on success and zero if the filename could not be opened
 * for writing.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_writeSBMLToFile ( SBMLWriter_t         *sw,
                       const SBMLDocument_t *d,
                       const char           *filename );

/**
 * Writes the given SBML document to an in-memory string and returns a
 * pointer to it.  The string is owned by the caller and should be freed
 * (with free()) when no longer needed.
 *
 * @return the string on success and @c NULL if one of the underlying parser
 * components fail (rare).
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
char *
SBMLWriter_writeSBMLToString (SBMLWriter_t *sw, const SBMLDocument_t *d);

/**
 * Predicate returning @c non-zero or @c zero depending on whether
 * libSBML is linked with zlib at compile time.
 *
 * @return @c non-zero if zlib is linked, @c zero otherwise.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_hasZlib ();

/**
 * Predicate returning @c non-zero or @c zero depending on whether
 * libSBML is linked with bzip2 at compile time.
 *
 * @return @c non-zero if bzip2 is linked, @c zero otherwise.
 *
 * @memberof SBMLWriter_t
 */
LIBSBML_EXTERN
int
SBMLWriter_hasBzip2 ();

#endif  /* !SWIG */

/**
 * Writes the given SBML document @p d to the file named by @p filename.
 * This convenience function is functionally equivalent to:
 *
 *   SBMLWriter_writeSBML(SBMLWriter_create(), d, filename);
 *
 * @htmlinclude assuming-compressed-file.html
 *
 * @param d the SBMLDocument object to be written out in XML format
 *
 * @param filename a string giving the path to a file where the XML
 * content is to be written.
 *
 * @return @c 1 on success and @c 0 (zero) if @p filename could not be
 * written.  Some possible reasons for failure include (a) being unable to
 * open the file, and (b) using a filename that indicates a compressed SBML
 * file (i.e., a filename ending in ".zip" or
 * similar) when the compression functionality has not been enabled in
 * the underlying copy of libSBML.
 *
 * @see SBMLWriter::hasZlib()
 * @see SBMLWriter::hasBzip2()
 *
 * @if conly
 * @memberof SBMLWriter_t
 * @endif
 */
LIBSBML_EXTERN
int
writeSBML (const SBMLDocument_t *d, const char *filename);

/**
 * Writes the given SBML document @p d to an in-memory string and returns a
 * pointer to it.  The string is owned by the caller and should be freed
 * (with free()) when no longer needed.  This convenience function is
 * functionally equivalent to:
 *
 *   SBMLWriter_writeSBMLToString(SBMLWriter_create(), d);
 *
 * but does not require the caller to create an SBMLWriter object first.
 *
 * @param d an SBMLDocument object to be written out in XML format
 *
 * @return the string on success and @c NULL if one of the underlying parser
 * components fail.
 *
 * @if clike @warning Note that the string is owned by the caller and
 * should be freed after it is no longer needed.@endif@~
 *
 * @if conly
 * @memberof SBMLWriter_t
 * @endif
 */
LIBSBML_EXTERN
char *
writeSBMLToString (const SBMLDocument_t *d);

/**
 * Writes the given SBML document @p d to the file @p filename.
 * This convenience function is functionally equivalent to:
 *
 *   SBMLWriter_writeSBMLToFile(SBMLWriter_create(), d, filename);
 *
 * but that does not require the caller to create an SBMLWriter object first.
 *
 * @htmlinclude assuming-compressed-file.html
 *
 * @param d an SBMLDocument object to be written out in XML format
 *
 * @param filename a string giving the path to a file where the XML
 * content is to be written.
 *
 * @return @c 1 on success and @c 0 (zero) if @p filename could not be
 * written.  Some possible reasons for failure include (a) being unable to
 * open the file, and (b) using a filename that indicates a compressed SBML
 * file (i.e., a filename ending in ".zip" or
 * similar) when the compression functionality has not been enabled in
 * the underlying copy of libSBML.
 *
 * @if clike @warning Note that the string is owned by the caller and
 * should be freed (with the normal string free() C++
 * function) after it is no longer needed.@endif@~
 *
 * @see SBMLWriter::hasZlib()
 * @see SBMLWriter::hasBzip2()
 *
 * @if conly
 * @memberof SBMLWriter_t
 * @endif
 */
LIBSBML_EXTERN
int
writeSBMLToFile (const SBMLDocument_t *d, const char *filename);

END_C_DECLS
LIBSBML_CPP_NAMESPACE_END

#endif  /* SBMLWriter_h */


text:
Bárðarbunga (), is a stratovolcano located under Vatnajökull in Vatnajökull National Park which is Iceland's most extensive glacier. The second highest mountain in Iceland,  above sea level, Bárðarbunga is also part of a volcanic system that is approximately  long and  wide.

Description
Bárðarbunga is a subglacial stratovolcano under the ice cap of Vatnajökull glacier in the Vatnajökull National Park in Iceland. It rises to  above sea level, making it the second highest mountain in Iceland, about  lower than Hvannadalshnjúkur. The caldera is about 80 square kilometres, up to 10 km wide and about  deep. The surrounding edges rise to 1,850 metres, but the base is on average close to 1,100 metres. The volcano is covered in ice to a depth of 850m, hiding the glacier-filled crater. The associated volcanic system and fissure swarm is about 190 km long and 25 km wide.

Bárðarbunga was a little-known volcano in Iceland due to its remote location and infrequent eruptions approximately once every 50 years, but recent studies have shown that many tephra layers originally thought to be from other volcanoes were ejected from Bárðarbunga.

Sustained seismic activity has been gradually increasing in Bárðarbunga and its associated northern fissure system for seven years starting in 2007 and leading to an eruption towards the end of 2014. This activity decreased after the Grímsvötn eruption in 2011, but later returned to a similar level as before the eruption. The previous eruption was in 1910. There has been frequent volcanic activity outside the glacier to the southwest in the highlands between Vatnajökull and Mýrdalsjökull, and also to the northeast toward Dyngjufjöll .

Etymology
Bárðarbunga is named after an early Icelandic settler named Gnúpa-Bárður , and literally translates as "Bárður's bulge" or "Bárður's bump" since "Bárðar" is the genitive case of "Bárður".

Eruptions and notable activity
Throughout history there have been large eruptions every 250–600 years. In 1477, the largest known eruption from Bárðarbunga had a volcanic explosivity index (VEI) of 6; there is evidence of many smaller eruptions during the past 10,000 years.

6600 BC
Þjórsá Lava, the largest Holocene lava flow on earth, originated from Bárðarbunga about 8,600 years ago, with a total volume of 21 to 30 cubic kilometres and covering approximately 950 square kilometres.

870
Many large eruptions have occurred south-west of the glacier; the first occurring since human settlement of Iceland was the Vatnaöldur eruption about 870 which had a volcanic explosivity index (VEI) of 4.

1477
The Veiðivötn eruption in 1477 is the largest known Icelandic eruption, with a VEI of 6.

1701–1864
Studies of tephra layers have shown that a number of eruptions have occurred beneath the glacier, probably in the north-east of the crater or in Bárðarbunga. There have also been smaller eruptions in an ice-free area of Dyngjuháls  to the north-east. Eruptions appear to follow a cycle: there were several eruptions in the glacier between 1701 and 1740 and since 1780.

1910 eruption
1910 was the last known eruption of Bárðarbunga before the 2014 eruptions.

1996

The Gjálp fissure vent eruption in 1996 revealed that an interaction may exist between Bárðarbunga and Grímsvötn. A strong earthquake in Bárðarbunga, about 5 on the Richter scale, is believed to have started the eruption in Gjálp. On the other hand, because the magma erupted showed strong connections to the Grímsvötn Volcanic System as petrology studies showed, the 1996 as well as a former eruption in the 1930s are thought to have taken place within Grímsvötn Volcanic system.

2010
On 26 September 2010, an earthquake swarm was recorded with over 30 earthquakes measuring up to 3.7MW on the moment magnitude scale.

2014–2015

In August 2014, a swarm of around 1,600 earthquakes in 48-hours, with magnitudes up to 4.5MW,
 was followed on 23 August by the USGS Aviation Color Codes being raised from orange to red, indicating an eruption in progress. The following day, the aviation risk was lowered from red to orange and the statement that there was an eruption in progress was retracted. However, later aerial observations of glacial depressions southeast of the volcano suggested that the now-retracted report of an eruption had been correct and that a short eruption did occur under the ice, but the lack of further melting indicated that this eruption had now ceased. Then, a new fissure eruption breached the surface between Bárðarbunga and Askja, in the Holuhraun lava field, in the early hours of 29 August. This was followed by a second fissure eruption in the Holuhraun area, along the same volcanic fissure, which started shortly after 4 am on 31 August.

The eruption emitted large volumes of sulphur dioxide and impacted air quality in Iceland. There was no effect on flights outside of the immediate vicinity as the eruption hadn't produced a significant amount of volcanic ash.

On February 28, 2015 it was officially reported that the eruption was over. Nevertheless, the gas pollution still existed, and the area north of Bárðarbunga, including volcanoes Askja and Herðubreið, still remained closed for visitors.

On March 16, 2015 the area north of Bárðarbunga was opened for visitors, excluding the new lava field and the area within 20 metres around it.

1950 Geysir air crash

On 14 September 1950 a Douglas C-54 Skymaster aircraft belonging to the Icelandic airline Loftleiðir crash landed on the Vatnajökull glacier at Bárðarbunga during a cargo flight from Luxembourg to Reykjavík. There were no fatalities, but damaged radio equipment left them unable to communicate their location. After two days the crew managed to reach the emergency transmitter in the plane's rubber liferaft and send out an distress call which was picked up by the Icelandic Coast Guard vessel Ægir. The same day a search and rescue Catalina aircraft, named Vestfirðingur, spotted them. The C-54's cargo included the body of a deceased United States Air Force (USAF) colonel, prompting American assistance. A USAF C-47 equipped with skis landed on the glacier but was unable to take off again, so it had to be abandoned. After six days both crews were rescued by a ski-patrol from Akureyri. Later Loftleiðir bought the stranded C-47 from the USAF for $700. In April 1951 it was dug out of the snow and towed down the mountain by two bulldozers, where it was started and flown to Reykjavík.

See also
 List of volcanoes in Iceland
 Timeline of volcanism on Earth
 Volcanism of Iceland

References

External links
 Bárðarbunga in the Catalogue of Icelandic Volcanoes
 3d map of volcanic activity and webcam at Bárðarbunga updated live from IMO
 Bárðarbunga live webcams feed
 Michigan Tech Geological Engineering and Sciences – Bárðarbunga/Grimsvötn Volcanoes
 Seismic activity in the Vatnajökull region
 Bárðarbunga volcano livestream
 (The Bárðarbunga System), pre-publication extract from The Catalogue of Icelandic Volcanoes
 Official Website of Vatnajökull National Park

Active volcanoes
Calderas of Iceland
Central volcanoes of Iceland
East Volcanic Zone of Iceland
Mountains of Iceland
Stratovolcanoes of Iceland
Subglacial calderas
Subglacial volcanoes of Iceland
Two-thousanders of Iceland
VEI-6 volcanoes
Volcanic systems of Iceland

redpajama_set_name: RedPajamaWikipedia


text:
Q: search Display Controller is Deprecated in iOS8 I am getting the above warning message when trying to run my code.
NSDictionary *tempDictionary = nil;

    if (self.tableView == self.searchDisplayController.searchResultsTableView) {
        tempDictionary = [filteredCompanyArray objectAtIndex:indexPath.row];
    }
    else {
        tempDictionary= [self.client_list objectAtIndex:indexPath.row];
    }

It's been deprecated and did a google search but all I saw were tutorials in Swift.
I followed Ray Wenderlich tutorial here http://www.raywenderlich.com/16873/how-to-add-search-into-a-table-view but now i'm stuck.
#pragma mark Content Filtering
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
    // Update the filtered array based on the search text and scope.
    // Remove all objects from the filtered search array
    [self.filteredCompanyArray removeAllObjects];
    // Filter the array using NSPredicate
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@",searchText];
    filteredCompanyArray = [NSMutableArray arrayWithArray:[self.client_list filteredArrayUsingPredicate:predicate]];
}

#pragma mark - UISearchDisplayController Delegate Methods
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    // Tells the table data source to reload when text changes
    [self filterContentForSearchText:searchString scope:
     [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
    // Return YES to cause the search result table view to be reloaded.
    return YES;
}

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
    // Tells the table data source to reload when scope bar selection changes
    [self filterContentForSearchText:self.searchDisplayController.searchBar.text scope:
     [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]];
    // Return YES to cause the search result table view to be reloaded.
    return YES;
}

A: The recipe below worked for me. I just successfully updated multiple scenarios of former iOS 7 code.
Thanks also to the inspiration of Updating to the iOS 8 Search Controller and Apple's API Reference

*

*Remove UISearchDisplayDelegate protocol, add UISearchResultsUpdating and maybe UISearchControllerDelegate instead

@interface YOURTableviewController : UIViewController <UITableViewDelegate, UITableViewDataSource, /*UISearchDisplayDelegate, <- Removed*/ UISearchResultsUpdating /* Added */, UISearchControllerDelegate /* Added */>
{

*Add new UISearchController as property:

// New property
@property (nonatomic, strong) UISearchController *searchController;

// ...

@implementation YOURTableviewController

@synthesize searchController; // New property

and initialize the new property in the didLoad method
- (void)viewDidLoad
{
     // New code start -
     self.searchController = [[UISearchController alloc]     initWithSearchResultsController:nil];
     self.searchController.searchResultsUpdater = self;
     self.searchController.delegate = self;
     self.searchController.dimsBackgroundDuringPresentation = NO;

     self.searchController.searchBar.delegate = self;

     self.searchController.searchBar.barTintColor = [UIColor orangeColor];
     [self.tableview setTableHeaderView:self.searchController.searchBar];
     self.definesPresentationContext = YES;
     // - New code end

     // Previous code
     //self.searchDisplayController.searchBar.barTintColor = [UIColor orange];

     [super viewDidLoad];
}

*Add new UISearchResultsUpdating methods, update UISearchBarDelegate methods, and maybe add helping extra method like below, and maybe also UISearchControllerDelegate methods

#pragma mark -
#pragma mark UISearchResultsUpdating

- (void)updateSearchResultsForSearchController:(UISearchController *)_searchController
{
    NSString *searchString = _searchController.searchBar.text;
    [self searchForText:searchString];
    [self.tableview reloadData];
}

#pragma mark -
#pragma mark UISearchBarDelegate

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    [self updateSearchResultsForSearchController:self.searchController];
}

- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
    [self updateSearchResultsForSearchController:self.searchController];
}

// Extra method
- (void)searchForText:(NSString *)searchString
{
    /* Put here everything that is in the method:
     - (BOOL)searchDisplayController:(UISearchDisplayController *)controller     shouldReloadTableForSearchString:(NSString *)searchString
     ...BUT WITH NO RETURN VALUE */
}

#pragma mark -
#pragma mark UISearchControllerDelegate

- (void)willPresentSearchController:(UISearchController *)searchController
{
    //..
}
- (void)didPresentSearchController:(UISearchController *)searchController
{
    //..
}
- (void)willDismissSearchController:(UISearchController *)searchController
{
    //..
}
- (void)didDismissSearchController:(UISearchController *)searchController
{
    //..
}

*Replace and remove obsolete UISearchDisplayDelegate method(s)

#pragma mark -
#pragma mark UISearchDisplayDelegate

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{ ... }

*Replace 'searchDisplayController' everywhere with 'searchController'

*Make replacements
Code like:
if (tableView == self.searchDisplayController.searchResultsTableView)

can be replaced with
if (self.searchController.isActive)

Code like:
[self.searchDisplayController setActive:YES];

can be replaced with
[self.searchController setActive:YES];

A: As UISearchDisplayController is deprecated, you need to use UISearchController for your purpose. Follow this link Using UISearchController
Another link that might be useful for you UISearchController Vs UISearchDisplayController

A: Yes UISearchDisplay Controller is deprecated, you should use UISearchController instead
Create Search Controller First
@property (strong, nonatomic) UISearchController *searchController;

Initialise Search controller properties
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;

Bind Search controller with your table view
self.tableView.tableHeaderView = self.searchController.searchBar;

Implement UISearchResultUpdating delegate
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
{
 NSString *searchString = searchController.searchBar.text;
[self searchForText:searchString
 scope:searchController.searchBar.selectedScopeButtonIndex];
[self.tableView reloadData];
}

You Can also use your filter method to filter result
Your search logic will go here
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope

More detail you can find
http://useyourloaf.com/blog/updating-to-the-ios-8-search-controller/

redpajama_set_name: RedPajamaStackExchange


The OxyLED USB Rechargeable Motion Sensor LED Lights are insanely popular for a few important reasons. First, they work very well and turn on instantly if there's motion anywhere in the area. Second, they're easy to stick anywhere because they don't need to be plugged in. Third, they're easier than comparable products to recharge because they come with their own detachable battery! They're awesome, and they're on sale today on Amazon for just $13.


text:
asta77
Jamie Bamber to Star in the Film 'The Better Half'
You are probably thinking, "Why is she using a photo from 'The Smoke? for this post?" Well, because........
Instead of typecasting, we're going with he did such an awesome job the first time around the production knew what it was getting. ;) As you can see, Jamie was bit lacking with the details, so zegeekgirl and I have been searching the far corners of the internet to see what we could come up with. Now, we would love to send you to the official The Better Half site, but, for the moment, it's a dead end. But we did find a production notice which gives us a synopsis of the film:
Joyless, unpleasant, and hyper-critical Calista Ryan is so intent upon the appearance of perfection, she's increasingly oblivious to the needs of her firefighter husband, Jeff, and her two teenage kids. But after being killed in a freak accident, Calista winds up in purgatory, where she learns her soul has been split down the middle, between her unpleasant self and Cali, her bubbly, joyful "better half." Now, Calista and Cali have 48 hours to return to earth and turn the tide of their dysfunctional family -- or it's straight to hell for them both. But whether Calista can reconcile her two disparate natures and join back up with Cali as a fully functional soul, while helping her loved ones avert various crises, remains to be seen.
And finding the film is written by Shay Roehm and written/directed by Michael Winnick led me to Mr. Winnick's IMDB page and, in turn, the page for The Better Half which, again, doesn't tell us much. :/ However, between the film's description and IMDB categorizing it as Action/Comedy/Family, means I can squee and cross an item off my bucket list because JAMIE IS DOING A COMEDIC ROLE.
Hopefully, we'll have more news, especially casting news, to share soon. And maybe Jamie will share a few pics from set if he can. :)
film: the better half

redpajama_set_name: RedPajamaCommonCrawl


Type of Normal Diode ?
A diode is a device which only allows unidirectional flow of current if operated within a rated specified voltage level.
A diode only blocks current in the reverse direction while the reverse voltage is within a limited range otherwise reverse barrier breaks and the voltage at which this breakdown occurs is called reverse breakdown voltage.
The diode acts as a valve in the electronic and electrical circuit. A P-N junction is the simplest form of the diode which behaves as ideally short circuit when it is in forward biased and behaves as ideally open circuit when it is in the reverse biased.
The symbol of a diode is shown below, the arrowhead points in the direction of conventional current flow.
We can create a simple PN junction diode by doping donor impurity in one portion and acceptor impurity in other portion of silicon or germanium crystal block.
These make a p n junction at the middle part of the block beside which one portion is p-type (doped with trivalent or acceptor impurity), and another portion is n-type (doped with pentavalent or donor impurity).
It can also be formed by joining a p-type (intrinsic semiconductor doped with a trivalent impurity) and n-type semiconductor (intrinsic semiconductor doped with a pentavalent impurity) together with a special fabrication technique such that a p-n junction is formed.
Hence, it is a device with two elements, the p-type forms anode and the n-type forms the cathode. These terminals are brought out to make the external connections.
N-side will have a significant number of electrons, and very few holes (due to thermal excitation) whereas the p side will have a high concentration of holes and very few electrons. Due to this, a process called diffusion takes place.
In this process free electrons from n side will diffuse (spread) into the p side and recombine with holes present there, leaving positive immobile (not moveable) ions in n side and creating negative immobile ions in p side of the diode. Hence, there will be uncovered positive donor ions in n-type side near the junction edge. Similarly, there will be uncovered negative acceptor ions in p-type side near the junction edge.
Due to this, numbers of positive ions and negative ions will accumulate on n-side and p-side respectively. This region so formed is called as depletion region due to the "depletion" of free carriers in the region.
Due to the presence of these positive and negative ions a static electric field called as barrier potential is created across the pn junction of the diode. It is called as "barrier potential" because it acts as a barrier and opposes the further migration of holes and electrons across the junction.
In a PN junction diode when the forward voltage is applied i.e. positive terminal of a source is connected to the p-type side, and the negative terminal of the source is connected to the n-type side, the diode is said to be in forward biased condition. We know that there is a barrier potential across the junction.
This barrier potential is directed in the opposite of the forward applied voltage. So a diode can only allow current to flow in the forward direction when forward applied voltage is more than barrier potential of the junction. This voltage is called forward biased voltage. For silicon diode, it is 0.7 volts. For germanium diode, it is 0.3 volts.
When forward applied voltage is more than this forward biased voltage, there will be forward current in the diode, and the diode will become short circuited.
Hence, there will be no more voltage drop across the diode beyond this forward biased voltage, and forward current is only limited by the external resistance connected in series with the diode. Thus, if forward applied voltage increases from zero, the diode will start conducting only after this voltage reaches just above the barrier potential or forward biased voltage of the junction. The time, taken by this input voltage to reach that value or in other words, the time, taken by this input voltage to overcome the forward biased voltage is called recovery time.
Now if the diode is reverse biased i.e. positive terminal of the source is connected to the n-type end, and the negative terminal of the source is connected to the p-type end of the diode, there will be no current through the diode except reverse saturation current.
This is because at the reverse biased condition the depilation layer of the junction becomes wider with increasing reverse biased voltage. Although there is a tiny current flowing from n-type end to p-type end in the diode due to minority carriers. This tiny current is called reverse saturation current.
Minority carriers are mainly thermally generated electrons and holes in p-type semiconductor and n-type semiconductor respectively. Now if reverse applied voltage across the diode is continually increased, then after certain applied voltage the depletion layer will destroy which will cause a huge reverse current to flow through the diode. If this current is not externally limited and it reaches beyond the safe value, the diode may be permanently destroyed.
This is because, as the magnitude of the reverse voltage increases, the kinetic energy of the minority charge carriers also increase. These fast moving electrons collide with the other atoms in the device to knock-off some more electrons from them. The electrons so released further release much more electrons from the atoms by breaking the covalent bonds.


To try to understand her place within the diaspora, Thompson booked herself and a film-maker friend on a cargo ship from Belgium to Ghana as part of a larger journey retracing the transatlantic slave triangle.
Thompson describes the physical and emotional discomfort of this journey, the toll it takes on her, as well as her visceral response to visiting Elmina Castle in Ghana and imagining the immense suffering that took place there.
Occasionally she breaks off from telling this story to don safety goggles, take up a sledgehammer and smash a large pink salt crystal into shards. She hits it until her breath quickens and her skin shines.
It's a moment of catharsis, and while the symbolism of the salt – the stuff of tears and of the ocean but also a commodity – is not lost there's a poetry and delicacy to the act of destruction. It also informs her exploration of what it is to exist in a black body with Europe, its history and the things it was built on forever pushing against her – to exist in a black, female body at airports and in taxicabs and at arts festivals performing to predominantly white audiences.
Thompson does all this with grace and generosity making for an embracive show that's also eloquent about the elusiveness of home when you're a descendent of immigrants.


text:
The Perfect Score: Mixer Chris Jenkins and Composer Junkie XL Discuss 'Black Mass'
Jon ⋅ Sep 25, 2015
Frequent collaborators dialogue/music re-recording mixer Chris Jenkins and composer Tom Holkenborg discuss their work on "Black Mass" with Mel Lambert"
"'Black Mass' is a smaller, more intimate film with sparse music and effects, and a careful balance within the surround channels to support the dialogue," says Holkenborg. Jenkins adds, "Tom and I were very cognizant of trying to be smart with the soundscape, yet not disorient the audience.
"I played a 40-minute temp score to the director on the stage and asked if he recognized his movie in my music," the composer continues. "He and Chris liked what they heard, and so we kept the score small with sparse instrumentation. I focused on just organ and cello — with added woodwinds and strings — but not much else."
"It is also useful to hear a trial mix before we commit to anything final," Jenkins says. "We took over a stage at Warner Bros. for a day to get time alone and hear what we had for 'Black Mass.' That time was extremely useful for both of us to fully understand the dynamics of the score, and how it was going to play against the dialogue and subtle sound effects," which were handled by co-mixer Ron Bartlett on Warner Bros Stage 9, with Mark Mangini once again stepping up as supervising sound editor. Click here to read the full article.
Tags ⋅ Chris Jenkins ⋅ Tom Holkenborg
CINEMA AUDIO SOCIETY GIVES NODS TO "BLACK SWAN", "INCEPTION", "SHUTTER ISLAND", "THE SOCIAL NETWORK" AND "TRUE GRIT"
Sound Mixer Chris Duesterdiek Brings Sound Design to 'The Mountains Between Us'
Renowned Musician & Composer DJ Unwind Licenses 18 Original Tunes to Top Music Library Companies Black Toast Music and Songs To Your Eyes
Black Box at ISE 2020
Mirada Collaborates with Director Chris Milk to Create '3 Dreams of Black' for Danger Mouse & Daniele Luppi's Concept Album ROME
Mirada Collaborates with Director Chris Milk to Create '3 Dreams of Black'


text:
Seminar on the Russian Revolution
To mark the 100th anniversary of the Russian Revolution, the Festival has worked with the Irish Labour History Society to present a seminar on this world-changing event and to consider some of the impacts in Ireland particularly on the Irish labour movement. Seminar speakers include Conor Kostick, Kate O'Malley, Emmet O'Connor and Historian in Residence with DCC, Donal Fallon. The seminar will be chaired by Fionnuala Richardson, Vice President of the Irish Labour History Society.
Full schedule:
2.00 Soviets in Ireland – the Russian Revolution and the Irish Labour Movement, Conor Kostick
2.30 'The Unholy Alliance': Sinn Féin, Russia and recognition of the Republic, Kate O'Malley
3.00 Coffee break
3.15 Popular responses to the Russian Revolution in Ireland, Donal Fallon
3.45 Irish Labour and the Bolshevik revolution, Emmet O'Connor
4.15 Q&A and close
Dublin City Library and Archive on 7th October from 2-4.30pm
No booking required. All welcome on a first come, first served basis.
Please note that events are subject to change. Keep informed of updates by following us on Twitter or Facebook or by signing up to our mailing list.
Previous PostPrevious The life of Rosa Luxemburg
Next PostNext The rise of Éamon de Valera


text:
Alang's Rawa
Boutique Island Resort in East Malaysia
About Rawa
Boat Transfers
Alang's Rawa is just three hours drive from Singapore, or four-five hours drive from Kuala Lumpur.
By plane: For international visitors, both Singapore and Kuala Lumpur are central hubs for South-East Asia, and are easily accessible from most big cities.
By car: From Singapore, cross over to Johor Bahru via the Woodlands Causeway. Travel 40km north-east towards Kota Tinggi. Once past Kota Tinggi (there is no need to enter the town centre), continue heading north for about 90km until you reach Mersing.
From KL, take the North-South Expressway, turn off at Ayer Hitam, head for Kluang then onto Mersing.
A taxi one way from Singapore to Mersing costs around SD170-190.
By bus: Buses from KL leave from the Puduraya bus terminal, and cost around RM20. Transnasional operates a bus service direct from Singapore to Mersing, leaving from Kallang Bahru/Lavender Street junction and costing around SD12. Alternatively you can take the Causeway Link or the 170 bus from Singapore's Queen Street bus station to Johor Bahru. From there, buses to Mersing leave from Larkin bus station and cost around RM8. The bus station in Mersing is around 10 minutes from the port, so you may need to take a taxi if you have many bags.
We are happy to arrange transport for individuals or groups from KL or Singapore. Minibuses carrying up to 12 passengers are usually the way to go, and most of our guests are happy to share the journey. If you would like us to organize your transport please contact us and we'll be happy to help.
Alang's Rawa, Mersing
reservations@alangsrawa.com
alangsrawa@gmail.com
CHECK OUT OUR LOMBOK PROPERTY


text:
module Emarsys

  # Methods for the Segment API
  #
  #
  class Segment < DataObject
    class << self

      # List segments
      #
      # @return [Hash] List of segments
      # @example
      #   Emarsys::Segment.collection
      def collection(account: nil)
        get account, 'filter', {}
      end

      # Run a Segment for Multiple Contacts
      # Reference: https://dev.emarsys.com/v2/segments/run-a-contact-segment-batch
      #
      # @param id [Integer] the id of the segment
      def run(id, account: nil)
        path = "filter/#{id}/runs"
        post account, path, {}
      end

      # Poll the Status of a Segment Run for Multiple Contacts
      # Reference: https://dev.emarsys.com/v2/segments/poll-the-status-of-a-segment-run-for-multiple-contacts
      #
      # @param run_id [String] the id of the segment run, @see #run
      def status(run_id, account: nil)
        path = "filter/runs/#{run_id}"
        get account, path, {}
      end
    end
  end

end

redpajama_set_name: RedPajamaGithub


This picture is loosely based on an adult star.
Remember guys, no matter what, There is no video game that can compare to real life. Enjoy.
I haven't posted in a while. I thought I'd get back in the swing of things. Enjoy.
This is a follow-up to my last picture. Enjoy.
This was inspired by a dream. As you can tell from the picture it was a nice dream. Enjoy.


Supporters Direct (SD) has been briefly reprieved after an unfortunate series of tweets from its former chief executive nearly killed it off (as referred to in the editorial in WSC 294). But its long-term future remains unclear. In May, chief executive Dave Boyle celebrated the elevation of fan-owned AFC Wimbledon to the Football League with a Twitter rant at those responsible for the relocation of the original club to Milton Keynes.
No one at the Premier League initially noticed, but director of public policy Bill Bush was alerted. The Daily Mail then got on Boyle's case. A few days later a driving force behind the trust movement – and a Premier League critic – resigned from his job. That was not enough for the Premier League. Annoyed by SD's initial response to Boyle's outburst, they threatened to pull £1.5 million of funding for the organisation over the next three years, money that was channelled through the Football Stadia Improvement Fund (FSIF).
Opprobrium followed to such a degree that Premier League head of communications Dan Johnson commented on a David Conn piece about the furore on the Guardian's website. "Many of you have posed the question why SD is funded by the Premier League," wrote Johnson. "The simple answer is no one else wanted to. Not even the last Labour government whose policy commitments gave birth to the organisation."
During this row SD kept a low profile, not speaking to the media for fear of inflaming the situation. All three political parties came out in support of SD, however, and an Early Day Motion was tabled in the House of Commons on June 13 opposing the Premier League's move. After talks between SD's new chief executive, Brian Burgess, and the FSIF panel, a £268,000 grant was agreed on the eve of the SD's annual Fans' Weekend in Chester on July 15. That leavened what would have otherwise been a gloomy occasion, but the future remains uncertain as SD heads into what should be its best season yet.
Swansea City are about to become the first club with a significant trust stake – of nearly 20 per cent – to play in the Premier League. Exeter City continue to prove in League One that a trust can successfully operate a reasonably sized professional side, while AFC Wimbledon are now just a division below their nemeses from Milton Keynes.
With all this to celebrate, there is much to fear. Talks over SD's new funding had been delayed even before the Twitter saga and the group's cash reserves have been hit. Major cuts are not practical at an already lean organisation that only has 11 staff. Six SD employees cover England and Wales, two staff work on European initiatives and Scotland respectively, and one more covers rugby league, a sport with growing interest in the trust movement.
Last season, the Premier League funded SD to the tune of £610,000, so the current grant will not last long. Despite all the evidence of what fans working together can achieve – 170 trusts formed, more than 50 clubs saved – SD needs more help.
Long-term grant applications were made to FSIF a long time ago. Unless those grants are now approved, the prognosis for SD is dire. The three-man FSIF panel chaired by Bush that agreed the recent grant meets again in late August to discuss the tranche of applications that would secure SD's future for the next three years. What will happen before then is the much-delayed publication of a parliamentary select committee report into the governance of football.
One of the questions that the committee sought to address was: "What are the main pros and cons of the Supporter Trust share-holding model?" The members of parliament on the committee took evidence from fan groups, including SD, and also Exeter City, but the publication of the report has been delayed by the phone hacking scandal currently engulfing the country.
The MPs were due to meet on July 19 to sign off the report, but that meeting was postponed and publication is now scheduled for July 29. What if that report advocated greater supporter involvement just as the Premier League had pulled the plug on funding for the main resource to achieve just that? That would surely prove particularly embarrassing for BSkyB at a time when the organisation's main shareholder was already the subject of intense public scrutiny.


text:
Dishwashing liquid (or washing-up liquid in British English), also known as dishwashing soap, dish detergent, and dish soap is a detergent used to assist in dishwashing. It is usually a highly-foaming mixture of surfactants with low skin irritation, and is primarily used for hand washing of glasses, plates, cutlery, and cooking utensils in a sink or bowl. In addition to its primary use, dishwashing liquid also has various informal applications, such as for creating bubbles, clothes washing and cleaning oil-affected birds.

History

Washing soda (sodium carbonate) is used for dishwashing, and may be used in areas with hard water. It was used for dishwashing before detergents were invented in Germany during World War I. Liquid detergent used for dishwashing was first manufactured in the middle of the 20th century. Dishwashing detergent producers started production in the United States in the 1930–1940s. Teepol, the first such in Europe, commenced production in 1942.

In 2005, dishwashing detergent retail sales totaled nearly US$10 billion worldwide.

Types
Dishwashing detergents for dishwashers are manufactured and marketed variously as cartridges, gel, liquids, pacs, powder, and tablets. Any dishwashing liquid may contain bleach, enzymes, or rinsing aids. Some dishwashing detergents may be homemade, using ingredients such as borax, essential oil, eucalyptus oil and grated bar soap, among others.

Dishwashing detergents can be formulated to work under different circumstances. In some cases suitably formulated they can be used with cold water or sea water, although they will not generally work as well as those intended for, and used with, hot water.

Common ingredients

The main ingredient is water; the main active ingredients are detergents. Detergents are used, rather than soaps, because they do not react with any minerals in the water to form soap scum. There are other thickening and stabilizing agents. Other ingredients may include surfactants, hydrotrope, salts, preservatives, fragrances, and dyes.

Surfactants remove grease and stuck food particles. They may also provide foam.

Some dishwashing products contain phosphates. Phosphate makes dishes cleaner but can also cause harmful algal bloom as the wastewater goes back to the natural environment. Because of this, it is banned as a component in many places.

In 2010, the United States FDA raised health concerns over triclosan, an antibacterial substance used in some dish liquids. Elsewhere, triclosan has been found to create problems at wastewater treatment plants, whereby it can "sabotage some sludge-processing microbes and promote drug resistance in others." The United States FDA has found that triclosan provides no health benefits over soap and water. As of 2014, at least one state within the United States has banned triclosan in dishwashing liquids.

Many dishwashing liquids contain perfume which can cause irritant or allergic contact dermatitis.

Brands
Euromonitor International research on dishwashing trends in eighty countries identified producers and brands with the largest 2013 retail value shares. Six multinational companies (Procter and Gamble, Colgate-Palmolive, Henkel, Reckitt Benckiser, Unilever, Ajax) collectively held the greatest retail value shares in sixty-five of those countries. Summaries below show percentages of retail value shares and leading brand names in each country, according to Euromonitor International's 2013 reports.

Procter and Gamble held the highest retail value share percentages in twenty countries: with Fairy brand, United Kingdom, Estonia, Saudi Arabia (56%), United Arab Emirates (34%), Latvia (35%), Lithuania (32%), Finland (23%), Serbia (38%), Bosnia-Herzegovina (30%), Georgia (26%) and Uzbekistan (26%); Sweden (39%) with brand Yes, the Swedish Fairy brand; Greece (40%) with Fairy and Ava brands; with Fairy and Mif brands, Kazakhstan (28%) and Russia (29%); and Ukraine (41%) with Fairy and Gala brands; Canada (39%) with Cascade and Dawn brands; United States (52%) with Cascade and Dawn brands; Mexico (44%) with Salvo and Dawn brands; Philippines (54%) with Joy brand. Fairy has one of the highest market shares in the Egyptian market.

Unilever held highest retail value share percentages in thirteen countries: Netherlands (25%); with Sunlight brand, Cameroon (32%), South Africa (56%), Indonesia, Thailand (66%); India (61%) with Vim brand; Vietnam (56%) with Sunlight Green Tea, Sunlight Lemon, and Sunlight Active Gel; France (34%) with Sun Turbo Gel and Sun tout en 1; with Sun brand, Switzerland (31%), and Belgium (30%); Argentina (54%) with Ala and Ala Ultra brands; Chile (57%) with Quix brand; and Uruguay (56%) with Hurra Nevex and Cif brands.

Henkel held highest retail value share percentages in nine countries: Germany (29%); Romania (35%), Slovakia (33%), Hungary (30%), Croatia (22%) with Pur and Somat brands; Algeria (22%) with Isis Pril; Egypt with Port Said Detergents and Pril brands; Slovenia (35%) with Pril brand; and Azerbaijan (22%) with Pril and Pemolux brands.

Reckitt Benckiser held highest retail value share percentages in nine countries: Italy (31%), Spain (29%); with Finish brand: Australia (38%), New Zealand (38%), Austria (32%), Ireland (29%), and Israel (27%); Denmark (30%) with Neophos brand; and Portugal (22%) with Calgonit brand.

Colgate-Palmolive held highest retail value share percentages in nine countries: Morocco (23%); Tunisia (24%) with Citrol brand; Malaysia (29%); Pakistan (55%) with Max brand; with Axion, Costa Rica (39%), Dominican Republic (31%), Colombia (40%), and Ecuador (39%); Guatemala (39%) with Axion and Doña Blanca brands.

Research summaries for three countries listed combined retail value shares that included domestic and international producers: Brazil's domestic producers led hand dishwashing products with Química Amparo, Bombril, and Flora Produtos de Higiene e Limpeza; Poland's Grupa Inco with Ludwik and Lucek brands, and Henka Polska with Pur and Somat brands, led sales with a combined retail value share of 46%; and in Belarus the Russian company PZ Cussons PLC accounted for 24% of retail value shares, with Morning Fresh brand, followed by Procter and Gamble (20%) and Henkel (19%).

Summaries for two countries listed combined results for international companies and brands: in the Czech Republic, Procter and Gamble, Henkel, and Reckitt Benckiser held a combined 71% retail value share; and in Turkey Reckitt Benckiser's Finish brand led with 32% retail value share for automatic dishwashing, while Henkel had 31% retail value share, and Pril brand led hand dishwashing liquid with a 42% retail value share.

In fifteen markets, domestic producers held the greatest 2013 retail value share with local brands: in China, Guangzhou Liby Enterprise Group held a 30% retail value share; Hong Kong company Lam Soon held 44% retail value share with Axe and Labour brands; Singapore company Lion Corp led sales with Mama Lemon, Mama Lemon Antibacterial, and Mama Royal brands; South Korean company LG Household & Health Care Ltd. held a 54% retail value share with dishwashing brands Pong Pong, Natural Pong and Safe; in Japan, Kao held a 33% retail value share with CuCute brand; Alimentos Polar in Venezuela held a 37% retail value share with Las Laves brand. In Nigeria, PZ Industries PLC held a 63% share, with Morning Fresh brand. In Norway, Lilleborg AS held 71% retail value share, with Sun and Zalo brands; in Bulgaria, Ficosota Syntez held 29% retail value share, with Eho and Feya brands; in Macedonia, Saponia dd held 22% retail value share; in Iran, Paxan Co. held 24% retail value share with Barf, Orchid, Goli, and Pride brands; in Bolivia, Astrix SA held 47% retail value share with Ola brand; in Peru, Intradevco Industrial SA held 63% retail value share with Sapolio brand; in Venezuela, Alimentos Polar held 37% retail value share with Las Llaves brand. The summary of dishwashing in Kenya noted most consumers there use alternatives like laundry detergent powder or soap instead of dishwashing liquids, but listed Haco as the leading dishwashing liquid, from Haco Tiger Brands Ltd.

Primary uses
Dishwashing liquid is used primarily for removing food from used dishes and tableware. Heavy soil (large food particles) is generally scraped from the dishes before using. Detergent formula can vary based on use (hand or automatic).

Hand dishwashing

Hand dishwashing is generally performed in the absence of a dishwashing machine, when large "hard-to-clean" items are present, or through preference. Some dishwashing liquids can harm household silver, fine glassware, anything with gold leaf, disposable plastics, and any objects made of brass, bronze, cast iron, pewter, tin, or wood, especially when combined with hot water and the action of a dishwasher. When dishwashing liquid is used on such objects it is intended that they be washed by hand.

Hand dishwashing detergents utilize surfactants to play the primary role in cleaning. The reduced surface tension of dishwashing water, and increasing solubility of modern surfactant mixtures, allows the water to run off the dishes in a dish rack very quickly. However, most people also rinse the dishes with pure water to make sure to get rid of any soap residue that could affect the taste of the food.

Dishwashing liquid can be a skin irritant and cause hand eczema. Those with "sensitive skin" are advised amongst other things to persuade someone else to do the washing up.

Automatic dishwashing
Automatic dishwashing involves the use of a dishwashing machine or other apparatus. It is generally chosen through convenience, sanitation, or personal preference. The cleaning is less reliant on the detergent's surfactants but more reliant on machine's hot water as well as the detergent's builders, bleach, and enzymes. Automatic dishwashing detergents' surfactants generally have less foam to avoid disrupting the machine.

Informal uses

Reader's Digest notes its use as an ant killer, weed killer, to help spread water-borne fertilizer, and to wash human hair. Good Housekeeping says it can be used mixed with vinegar to attract and drown fruit flies. Dishwashing detergent has been used to clean mirrors as well as windows.
 Pling, an open source general purpose cleaner for glazed, plastic, chrome and inox bathroom and kitchen surfaces, published by Twibright Labs, uses dishwashing liquid as one of active ingredients.
 Dishwashing liquid can be mixed with water and additional ingredients such as glycerin and sugar to produce a bubble-blowing solution.
 Dishwashing liquid may be used for cleaning delicate clothing fabrics such as hosiery and lingerie.
 Dishwashing liquid is frequently recommended in a dilute solution to make decals and vinyl graphics easier to position when applying.
 In industry, dishwashing liquid is also used to inspect pressurized equipment for leaks, such as propane fittings. It is used to inspect pneumatic tires for flats, as well as for quality assurance during the installation process, and as a mounting bead lubricant.
 Dishwashing liquid has uses as an ingredient in making homemade garden pest deterrents. Oregon State University's Cooperative Extension Service notes the use of dishwashing liquid to get rid of spidermites. Dish soap has also been used to deter aphids. In some instances, the dish soap may be toxic to plant leaves and cause them to "burn". Use of soap or dish detergent to help spread pesticide on plants is noted by University of Georgia extension service, but not recommended.
 A solution of dishwashing liquid and water may be used to remove coffee, tea, olive oil, soda and fruit juice stains from fabrics. One dishwashing liquid brand has been used to remove stains from white or lightly colored cloth napkins.
 Dishwashing liquid has been used to treat birds affected by oil spills. After the Exxon Valdez oil spill in 1989, the International Bird Rescue Research Center received hundreds of cases of dishwashing liquid that were used for this purpose. More dishwashing liquid was donated during the Deepwater Horizon oil spill to the International Bird Rescue Research Center and the Marine Mammal Center.
 Dishwashing liquid is often used to activate homemade slime as a substitute for borax

See also
 Dishwasher detergent
 Cleaning agent
 List of cleaning agents
 List of cleaning products
 Soap
 Green cleaning
 Washing

References

Further reading

External links

Cleaning products
Dishwashing


Good air is essential for a clean, comfortable, and healthy living environment, and ensuring the circulation of good air throughout your home requires an efficient system of dehumidification. High humidity levels in the air greatly affect how the human body perceives hot and cold, making warm temperatures feel hotter and cool temperatures feel colder. A high level of moisture in the air is also the leading cause of mold, which can consequently release harmful spores into the air you breathe, and so investing in a good whole house dehumidifier is a smart move for overall health as well as comfort.
Introducing the solution to uncomfortable, unhealthy air: the Aprilaire 1830 Whole House Dehumidifier. This unit is the first in a series of five updated versions of Aprilaire's previous whole house and basement dehumidifiers, which have always received stellar reviews for industry-leading performance.
Aprilaire has conducted extensive research and testing to ensure that their updated whole house dehumidifier is suitable for use in virtually any application. This product has been approved under the highest possible standards for both customer satisfaction and world class quality construction. Equipped with an industry-leading warranty policy, is certified for use in attics, basements, HVAC closets, garages, as well as free-standing applications. Research also shows that the level of consumer satisfaction with this unit's quiet noise level and capacity far exceeds current industry standards.
This unit's capacity is truly remarkable – with the ability to remove up to 70 pints of moisture per day, this unit also debunks the assumption that higher-capacity models are always larger in size. This whole home dehumidifier boasts its high-capacity performance while still maintaining its compact size, and easily fits through scuttles, under HVAC equipment, through crawlspace openings, and virtually anywhere else you can think of, without being intrusive or compromising the aesthetic of your indoor space.
Further, because bettering your home and health should not be a complicated endeavor, this unit features a simple installation process, with easy-to-use and easy-to-read digital controls that walk you through setup. Once your unit has been installed, digital LCD control options make use a breeze.
The Aprilaire 1830 Whole House Dehumidifier is now available for purchase at TotalHomeSupply.com.


text:
Q: How to join with results on the same line in SQL? This is a follow up question to my previous question: How to get multiple rows of data into different columns
My query looks very similar to the one provided in the previous question:
SELECT AccountID,
   Value1 = MAX(CASE WHEN RN = 1 THEN Value END),
   Value2 = MAX(CASE WHEN RN = 2 THEN Value END),
   Value3 = MAX(CASE WHEN RN = 3 THEN Value END)
FROM
(
SELECT AccountID,
       Value = CONVERT(VARCHAR(50), Value), -- Cast GUID as VARCHAR(50) to use MAX() in the outer query.
       RN = ROW_NUMBER() OVER (PARTITION BY AccountID ORDER BY Value)
FROM @myTable
) T
GROUP BY AccountID;

I have gotten my query to output the data to one row as follows:
AccountID                              Value1                                 Value2                                 Value3
6D68E2C9-4BF8-433B-8BC3-57D87348D034   F0BFA1B1-744A-4DBC-BE27-19D1618D77EA   E22A4B08-40DC-42E5-BC15-72A6912D0D66   A955B30C-5352-4B48-9E96-8A831AFA0751

The problem I have now is that I need to get the values from the other data table using the values from Value1, Value2, and Value3 (primary keys in the other table). If I was to join on these values I end up getting three rows again. Do I have to do something similar or use a pivot?
I'll eventually want something along the lines of this:
Account Id                              Value1Table.Color    Value2Table.Color    Value3Table.Color   Value1Table.Size    Value2Table.Size
6D68E2C9-4BF8-433B-8BC3-57D87348D034    Blue                 Red                  Orange              Large             Small

A: Do the lookup before pivoting:
SELECT AccountID,
       Value1 = MAX(CASE WHEN RN = 1 THEN Value END),
       Value2 = MAX(CASE WHEN RN = 2 THEN Value END),
       Value3 = MAX(CASE WHEN RN = 3 THEN Value END)
FROM (SELECT AccountID,
             Value = othertable.color.
             RN = ROW_NUMBER() OVER (PARTITION BY AccountID ORDER BY Value)
      FROM @myTable t JOIN
           othertable ot
           ON ot.value = t.value
     ) T
GROUP BY AccountID;


text:
Show Bike Paths Show Local Attractions
Notodden Hotel
Torvet 8Notodden
Local Attractions Find local businesses and points of interest
Airports Show on map
Notodden Airport
Churches Show on map
Sauland
Hovin
Heddal stavkyrkje
Gransherad kyrkje
Flesberg kirke
Notodden kirke
Lisleherad
Ble sportskapell
Notodden is a town and municipality (kommune) in Telemark County, in East Norway. The population of the town is 9,000, and that of the whole municipality is 12,000. Heddal is a village in the municipality, not far from the town of Notodden. The town is on the shore of Heddalsvatnet lake. The Tinn (Tinnelva) river runs through the town into the lake, and the Heddøla river runs past Heddal and the airport into the lake. Notodden is along with Rjukan part of the Rjukan-Notodden Industrial Heritage Site on the UNESCO World Heritage List.
Notodden is 113 km from Oslo and the drive time is 1 hour 45 minutes. Follow E 18 out of Oslo (West) until the city of Drammen.Then E 134 forward to Notodden.
The easiest way to get from Oslo is by bus. TIMEkspressen runs to Notodden every hour around the clock all year. (daytime) It takes about 2 hours 15 minutes. This bus line also run on this route at night, though only every second hour.
Buses run from Bergen to Notodden. It's a worthwhile trip, as it crosses the Hardanger Plateau with its beautiful natural scenery.
Notodden is a hub for local and regional buses running in all directions in the municipality and further afield, such as to the town of Rjukan.
1 Notodden Airport (NTB IATA), Tuven (The airport is just west of the town centre.). Bergen Air has a flight from Bergen every day. Airwing has a daily flight from Stavanger.
The Oslo to Bergen train is a bit tricky, but nice. Look up NSB, the national train company. If you arrive by air to OSL (Gardermoen), take the L12 directly from the airport to Kongsberg, continue by bus. Optionally take the Regional 50 from Oslo to Nordagutu, switch to the L52 from Nordagutu to Notodden.
It is possible to come from the south up the Telemark Canal into Heddalsvatnet lake.
There are local bus routes departing every hour from the bus hub. For regional bus routes check out Nettbuss and Nor-way Bussekspress.
The industrial park and several other sites are inscribed on the UNESCO world heritage list.
Industrial history museum - Lysbuen (Bedriftshistorisk samling - Hydromuseet).
Norsk Hydro: Administrative building - where it all started in 1905.
Telemark Art Gallery (Telemarksgalleriet).
Notodden church and the church gardens.
Heddal Stave Church (Heddal stavkyrkje), Heddal (a few km west from Notodden town centre, past the airport). 9am–6pm, 20 Jun – 20 Aug 2013; 10am–5pm, shoulder season. The biggest stave church (a medieval wooden church) in the world. Guided tours in English are included in the entrance fee. Reservations recommended. 65kr for church and nearby museum, 15 Jun – 15 Aug 2013.
Heddal Bygdetun, 300m from the stave church. Based on a rural village. Includes an exhibition about the church,several stages of medieval norwegian architecture and traditional norwegian clothing. Kafé Olea has meals and souvenirs.
Notodden Blues Festival. July/August every year. Aims to be the best blues festival in Europe. Extra train services may be run on the weekend of the festival.
Hiking. Step into nature and enjoy beautiful scenery, fresh air and drinkable lakes wherever you go, ask the tourist information for suggested routes
Bok & Blueshuset. "House of Books & Blues". You will find the house next to the breathtaking lake in the city centre. The house contains a café,library, recording studio, a blues museum and a state of the art cinema.
Eyde Restaurant. Steaks, seafood and veggie-dishes. Good food, reasonable price.
Pizza på vei. Fire lit stone oven, great italian pizza. Cozy atmosphere.
Felicia Cafè. A good place to stop for lunch.
Gatebar1. Burgers, pizza and fries. Make sure you try "Ostebolle" - A local speciality!
Oasen Kro. A roadside diner next to the airport, Norwegian and Chinese menu.
Brattrein Hotel. A cozy, high standard hotel in the heart of Telemark, five minute walk from the city centre. Great view of the lake and town.
Notodden Hotel. A city-centre hotel.
Notodden Tourist Information, Storgata 1, ☏ +47 35015600. 10-22. Public tourist information with good opening hours all year. free.


Sorry i didn't find the homepage on the web (offline too).
That download is just a link to the file on your A: drive. Do you have an installer for it that you can upload for me? I have WOTGreal v3.005 but I don't understand how to use it and I can't get it to show everything in a map like in your screenshot. I'll keep trying.
Navigate to the maps folder and open your map. Press the Class button up top. Yes, I forgot about the WOTgreal approach.
Oops, wot greal 3.005 is not the same, it's a very advanced one..
Here is the true link, Download, you can ether export static_mesh to 3ds files, but only from a package, for static-meshs from a map, you'll have to save a package in unrealed under a new name.
Too advanced for me. No matter what I do I can only get it to show what I'm guessing is the compiled code for the map.
Got it. Thanks. Unfortunately it's not showing anything for that FlyManta map. It doesn't seem to show any stock classes on any maps. The author extended ONSTankFactory with LongRangeONSTankFactory, which is myLeveled, but I can't get that to show in the WOTGreal Exporter. Oh well, no biggy. I just wanted to see the differences in the LongRange verse stock versions of the Goliath. Thanks for the help anyway.
Right now I just want to get my vehicle .uc files into one .u file so I can test out changes. I can't figure that out.
I think I've reached a dead end. I've tried to include all the files that I thought were relevant to the Goliath but I still get that 'error opening file" message. I don't know how to tell what file that is and I don't know how to tell what all the files are that the Goliath needs. There's no nice, neat dependency tree or anything like that that I can find. I don't even know if what I'm trying is correct but just missing something. My guess is that the next step after importing is trying to open a file it can't open. Maybe something to do with saving. I ran CMD as an admin just in case permissions were preventing saving. I'm giving up for now.
I thought of something to try after my last post.
I did a batchexport on the Minotaur then ran "ucc make" on it and it worked. That tells me that I'm doing the ucc part correctly and that it has permission to write to the folder. No resolution yet but at least that eliminated two possibilities. The next step in the "ucc make" process was exporting so that kind of jives with the save thing.
I might just try to extend the Goliath instead of subclassing... maybe.
That "Error opening file" error is a problem while saving a package file. Make sure you don't have the package to compile open in any other program. To figure that out, you can use Process Explorer's "Find Handle or DLL" feature. Just enter the file name (i.e. GoliathII.u) and it should list you all processes currently referring to that file name.
Yeah I realized that while lying in bed last night after I wrote it. It was late.
Process Monitor is cool. Thanks for that. Unfortunately it shows zero matches. I also restarted my machine just to be sure and ran ucc make before doing anything else.
The log says that it failed to load 'GoliathII.u'. There is no GoliathII.u, that's what I'm trying to create. When I did this with the Minotaur I deleted the Omnitaur.u file from my system directory and it created a new one ( I haven't tested it though by putting it in a map) so I thought it would do that same for GoliathII. Interesting. Oh well, since you've confirmed it's a saving error I'll keep trying.
Log: Success: Compiled 1039 line(s), 137 statement(s).
Ah yes, package saving is always a two-step process. First a temporary file is created (seems like that's what fails), then it is moved to the final folder and name.
It works fine on the Mino. Weird.
Log: Success: Compiled 1311 line(s), 150 statement(s).
I'll try some more tonight.
Turbo, I'm giving up on this for a while. Have you tried to figure it out?
I think the Goliath from the FlyManta map will work fine for Gunshop. I tried it again and I guess what I thought was the shot being off was just me testing in 3rd person view. I almost never drive a tank with that view. It works pretty much like you would expect it to for a longer range, more accurate Goliath with better zoom. The shots seem just very slightly a tiny bit off to the left but considering how bad the stock Goliath is I don't think anyone will notice.
Do you have a link to it? I probably won't have time to figure it out myself.
I've made some progress on this. I got it to create the .u file.
I basically made the same changes as on the LongRange version but I renamed it. I'm still working on the range though, trying to find the right value there. It's done with the lifespan so combine that with the speed and that gives the range (I think). I wish it was in actual distance instead. I'm not sure how to calculate speed*lifespan=uu. I think I also want to up the speed of the shot like in the LongRange version. It seems to take a long time to get there when you are zoomed in further and it travels further.
I've also got the Minigun to pitch straight up so Raptors can't get in a spot where you can't hit them while they chew you up.
For some reason my shots are off just a little to the left like on the LongRange version. I don't get that. The spread is set to zero so it must be something else.
Ok, can't resist. Since you brought it up! How about removing the minigun turret and adding homing rockets? Like, the Leviathan primary rockets?
No, those are way too spammy and don't take skill to use.


text:
Q: Correctly package plugin that contains open-source licences I'm building a project that uses source from a project that's been built from a project that uses code under MIT and GNU licences.
What steps do I need to take to make sure that the source has the correct licence files in the right places?
The project in question is a php plugin for another app, not an executable.

A: If you mix code it must comply with both licenses, which generally means they must be compatible. I believe MIT is pretty easy to merge with GPL as long as you obey the following:

The MIT License
Copyright (c)
Permission is hereby granted, free of
charge, to any person obtaining a copy
of this software and associated
documentation files (the "Software"),
to deal in the Software without
restriction, including without
limitation the rights to use, copy,
modify, merge, publish, distribute,
sublicense, and/or sell copies of the
Software, and to permit persons to
whom the Software is furnished to do
so, subject to the following
conditions:
The above copyright notice and this
permission notice shall be included in
all copies or substantial portions of
the Software.

Which seems to imply the only requirement is to place the license file with an "substantial" portions of code. It should NOT override the GPL though because the language of GPL is more strict and requires the MIT portions to become GPL (in your version). In other words your whole software must be GPL.


Greet the birds every morning and keep your thoughts light and airy! The perfect gift a dreamer, bird-lover, or dorm-room dweller.
comes off when you want it to, not before, but will not leave any residue behind!