Birds are the most popular type of animal to watch. Their popularity stems from their colorful plumages, pleasant songs, and the fact that they can fly and are easier to see than other animals. However, unfortunately, a lot of bird species are in trouble. Habitat destruction, high pesticide loads in the environment, and other factors have resulted in steady, on-going declinesin many bird species in many parts of the world, even common, familiar species.
The Kentucky Warbler is one of many migrant bird species that has declined. Photo by Linda Scott.
The incredible Resplendent Quetzal has declined as a result of destruction of its cloud forest habitat.
Cover windows with screens: When birds don't realize that a window is present, they can fly right into it. This is a major source of bird mortality and can be prevented by putting screens on the windows of your home. This is a relatively low cost and simple way for you to save the lives of birds.
Keep cats indoors: If you have a cat, do not let it outside unless it is in an enclosure that prevents it from killing birds. Cats can't help but follow their instincts to hunt and kill birds and other animals. They don't need to do this to eat and in fact, end up acting as an introduced predator (since the ancestor of the House Cat is native to arid regions of Africa). Since cats are more likely to be injured, killed by Coyotes, and are subject to disease when outside, they will be healthier indoors in any case. This is also true for dogs that hunt or molest birds.
Landscape for birds: Every bit of green space helps and if you plant native species that provide food and shelter for birds, you will be helping them and seeing more birds in your yard. This also means avoiding the use of chemicals in the yard to kill plants and insects. It's all a matter of perspective but we think that a yard with a variety of beautiful native plants, butterflies, and birds looks far more appealing than a sterile expanse of short grass maintained with potentially hazardous chemicals.
Support bird habitat: This means supporting efforts to protect the environment in general and also the specific habitats that birds need for survival. Efforts to live in a sustainable manner with your surroundings fall into this category.
Support the efforts of groups that are taking steps to try to stop the downward trend in bird populations: Just that. Support organizations and groups that are making active steps to study birds, preserve their habitat, carry our conservation education, reforest, and promote sustainable living.
These are some easy steps that we follow because although we make birding apps for Costa Rica, Panama, and other places, we also believe in conservation of birds and biodiversity and living with our natural surroundings in a more sustainable, connected manner.


PKR as a whole is known for their visually appealing 3D environments. A fresh young approach on online casinos! PKR Casino is a mix of a privately developed online casino, and the very well known PlayTech casino platform, the mix is perfect, players are delivered an online casino full of eye candy and fun features.
The casino is simple to get around in, you won't find yourself lost within the casinos navigation system. You will however, have to download the casino which is only compatible with a Windows Operating system. I am afraid Mac users and Linux users are equally out of luck.
Additionally, to best enjoy the full PKR Casino experience players should use broadband or DSL connections, to be fair, we've not yet tested the casino with a 4G connection.
PKR Casino isn't the largest casino available on the Internet, anyone can see that, however, it's pretty all inclusive. The casino includes 15 of the most popular card games on the Internet, including Blackjack, and the really exciting Blackjack Switch. Baccarat is on offer, as is Caribbean Stud and Pai Gow Poker.
PKR also offers Craps and Roulette in addition to Sic Bo and Wild Poker.
If you're looking to gamble on the slots, PKR offers a plethora of classic three lined slot machines to choose from as well as more advanced themed slots that allow PKR Casino players to bet on as many as 50 pay lines.
PKR offers 13 video poker games, allowing casino players to play as many as 50 hands at one time on one machine, and 21 Arcade games.
Among all of this online casino action brought to us by PKR Casino, players are treated to 21 progressives giving PKR Casino players a shot at winning millions around the clock.
If you're interested in playing any of the table/card games above, but perhaps just don't know how, PKR's got your back. A unique offering from the casino is the PKR Casino School which includes step by step tutorials to get you started playing, and mastering several of the games available at PKR.
Tutorials are available for the following casino games, simply click here, sign up and then visit the PKR Casino School!
PKR Casino offers a 100% match bonus to all new players up to $200. That means that new depositing players can deposit $200 into their casino accounts, and PKR Casino will match the deposit! The minimum deposit amount is $25, so even if that's all you're ready to deposit today, you can get $25 free from PKR.
To clear the deposit, you'll have to meet the 25x play through requirement.
PKR Casino doesn't offer a huge selection of online casino deposit methods, but the major deposit methods are present and accounted for, we're pretty sure in fact that you're going to be able to make a deposit to do some real money gambling without much trouble.
Deposits: Visa, NETeller, Moneybookers, Maestro, Switch, Click2Pay, Solo.
Withdrawals: Visa, NETeller, Moneybookers, Maestro, Switch, Solo, Click2Pay, and Check (mail or courier).
PKR provides a FAQ, live chat, and email assistance for your customer service needs.
I hope you have found the information about PKR Casino, or the PKR Casino download link, you were looking for. The best of luck while gambling!


Tricia became an integral part of the customer service team on December 3, 2018 as a Technical Service Associate. She has over 20 years of customer service experience, and 11 years of cutting tool expertise. Prior to joining North American Tool, she was an ISO internal auditor. Tricia and the customer service team work daily with a single focus – to provide customers unparalleled service and technical support with their tapping and threading applications.


text:
AFS Licensees Search
Australian Financial Services Licensees
Banned and Disqualified Persons
Australian Financial Services Authorised Representatives
Credit Licensees
Credit Representatives
Self-Managed Super Fund Auditors
Australian Banks Swift Codes
TPB Public Register
Download this database for offline use
1 2 3 4 5 7 8 @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Browse by locality
A B C D E F G H I J K L M N O P Q R S T U V W Y
A2z Licence Pty ltd
AFS License Number
ABN/ACN/ARBN
Licensee issued
Licence conditions
This licence authorises the licensee to carry on a financial services business to:
provide financial product advice for the following classes of financial products:
deposit and payment products limited to:
basic deposit products;
deposit products other than basic deposit products;
debentures, stocks or bonds issued or proposed to be issued by a government;
life products including:
investment life insurance products as well as any products issued by a Registered Life Insurance Company that are backed by one or more of its statutory funds; and
life risk insurance products as well as any products issued by a Registered Life Insurance Company that are backed by one or more of its statutory funds;
interests in managed investment schemes including:
investor directed portfolio services;
retirement savings accounts ("RSA") products (within the meaning of the Retirement Savings Account Act 1997);
securities; and
superannuation; and
deal in a financial product by:
applying for, acquiring, varying or disposing of a financial product on behalf of another person in respect of the following classes of products:
superannuation;
to retail and wholesale clients.
First provided advice
Qualification and trainings
Phillip Adamcewicz
2009 Bachelor of Commerce - University of Western Sydney ~ Cert IV Finance and Mortgage Management - The National Finance Institute ~ Diploma of Business - TAFE ~ Diploma of Finance & Mortgage Broking - The National Finance Institute ~ Diploma of Financial Services - PS146 Training Australia
About search-afsl.com
CPV (Common Procurement Vocabulary) codes
Combine and merge files into one PDF
Tenders from EU
© 2016-2021 search-afsl.com

redpajama_set_name: RedPajamaCommonCrawl


text:
Home Business Elon Musk Threatened to Move Telsa Headquarter from California to Texas/Nevada.
Elon Musk Threatened to Move Telsa Headquarter from California to Texas/Nevada.
Elon Musk is the co-founder of Telsa, Neuralink, SpaceX, and The Boring company. He is the CEO of Telsa, and also leads all product design in Tesla. Global manufacturing of the company's electric vehicles, solar energy products, battery products, and also product design.
On Saturday, Elon Musk filed a suit against Alameda County in California after local officials denied entries and stopped the Fremont factory from opening.
Earlier on Saturday, from series of tweets from the CEO of Telsa. He threatened to move the headquarters of Telsa from California to Texas or Nevada, in a place where there is less restrictive of shelter-in-place.
Musk tweeted, "Frankly, this is the final straw. The future programs and headquarters of Tesla will be moved immediately to Texas/Nevada. and the request for Telsa to comment on Sartuday was declined.
In the lawsuits, it follows a month of Musk debunked tweets and also opposing options of coronavirus claims. Also comments against the stay-at-home orders which is often against the health officials' guidance.
However, some fraction of the factory workers had been planned to return to work by the automaker on Friday. But on Friday. The Health Department of Alameda County warned against that in a live-streamed town hall that taking such a decision will be going against the rules of the county.
CHECK OUT: Mortgage Lender: Different types of lenders.
Meanwhile, on Saturday, the Health Department of Alameda responded in a statement to CNN Business. "The decision is a form of collaboration. And of good faith and effect to make sure the safety plan that allows businesses and companies to reopen.
Also making sure the health and well-being of several thousand workers who go to work in Telsa's factory". We look forward to coming to a conclusion and agreement on a safety plan very soon with the responsive team at Telsa to the guidance and recommendations outlined.
However, California Gov. Gavin Newsom issued on Thursday new guidance that will allow manufacturing companies to reopen. The guidance also allows other individual Counties to make stricter rules. Meanwhile, the shelter-in-place rule of Alameda County will come to an end on May 31. May 18 was the date Texas set for the resumption of manufacturers for limited operations. While Nevada is to allow reopening on Saturday for many retailers and nonessential businesses.
During Friday's town hall, the Health Officer Erica Pan of Alameda County said. They have been working with Tesla, but they have not given the go order. Although we have not said it is the right time to move ahead.
CHECK OUT: Apple Credit Card Review, Application, Benefit and Payment - Apple Credit Card Family Setup
The lawsuit filed in federal court in California's Northern District by Tesla on Saturday evening asked for an injunction that will bar the Amelda County from imposing the shelter-in-place rule permanently. Meanwhile, the company said due to its operations within critical infrastructure it belives it is exempt from the shelter-in-place rule.
However, there is a battery factory owned by Tesla in Sparks. Nevada called the Gigafactory 1, but it does not have a footprint in Texas. In February, Musk got an 80% positive result to his tweet asking his followers if there should be a Gigafactory in Texa.
While Telsa shareholders were encouraged on Saturday by Musk to file a lawsuit against the Amelda County for any money lost while Telsa competitor resumes in other states earlier.
Nike Credit Card Application and Bill Payment | How to Apply for a Nike Credit Card
Apple Credit Card Review, Application, Benefit and Payment – Apple Credit Card Family Setup
Mind Map Software | Benefits of Free Mind Map | Download Online Mind Map App


Advertising doesn't need to be complex: with a little bit of guidance, you will quickly be able to navigate the waters of online advertising.
Retargeting : 4 stats every car dealer should know to launch a retargeting campaign.
learn how you can grow your business!
Subscribe to our newsletter for tips on how you can grow your business with online advertising.


text:
Dach wieżowy – dach namiotowy o dużej wysokości (większej od największego wymiaru jego podstawy), czasem rozszerzający się w części dolnej, co umożliwia przejście od ścian budowli do wysokiego zwieńczenia. W przypadkach, gdy dach wieżowy jest bardzo wysmukły, może być również nazwany iglicą.

Zobacz też
 dach hełmowy
 iglica

Przypisy

wieżowy, dach

redpajama_set_name: RedPajamaWikipedia


CAPE CANAVERAL, Florida — The Coast Guard, along with Brevard County Sheriff's Office, have suspended their efforts after searching Friday evening for an unconfirmed person in the water off the coast of Cape Canaveral, Florida.
A crew aboard a 45-foot Response Boat-Medium from Coast Guard Station Port Canaveral was launched to assist the sheriff's office in the search.
The search was suspended after 9 p.m.


text:
ABOUT IDC
WHY SOCIALISM?
COMMUNIST AND WORKERS PARTIES
J.V. STALIN ARCHIVES
Google, Facebook reject communism-related ads: The case of KNE Festival
It is more than obvious that multinational tech monopolies, such as Google and Facebook, aren't friendly towards communist ideas. There have been plenty of cases where social media giant Facebook has blocked posts and pages that feature the sickle and hammer symbol or propagandize anti-imperialist policies.
According to an article published today in 902.gr portal, Google and Facebook have recently rejected advertisements promoting the Festival of the Communist Youth of Greece (KNE), in what seems to be another incident of anti-communist discrimination.
The ads are rejected under the pretext of being "political advertisement" related to "social issues that may influence the outcome of an election or relate to existing or proposed legislation". Even more ridiculous, the Festival's ads have been blocked because they may promote "the use of a recreational drug"! (It is a totally ridiculous pretext because KKE and KNE are long-time staunch opponents of drug culture).
As 902 points out, this is not the first time that the world of internet and social media is proved to have limitations for the communists and the communist movement. "Furthermore, it is another example which reveals the suffocating control of the internet by imperialist organizations, the states and the business giants they serve", adds the article.
The 46th KNE-Odigitis Festival, under the slogan "Socialism, for us to breathe freely, for life to be victorious", seems to be a thorn in the eye for all those who serve the bourgeois interests by crushing the rights of the youth and the people. Google, Facebook and all these monopolies which are dedicated to the safeguarding and promotion of capitalist "values" couldn't be an exception.
The central events of the KNE-Odigitis Festival, the largest political youth festival in Greece, will be held according to all necessary protection measures, on 17, 18, 19 September at the University campus of Zografou in Athens.
The events will peak on Saturday 19 September with the speech of the General Secretary of the CC of the KKE Dimitris Koutsoumbas and a musical tribute to the late composer Thanos Mikroutsikos with the participation of renowned artists.
IN DEFENSE OF COMMUNISM ©
Tags Anticommunism, Facebook, Google, KNE, KNE-Odigitis Festival, Social Media
Jean-Jacques Marie vs Grover Furr on Joseph Stalin
Jean-Jacques Marie and Grover Furr. In December 2021, British journal "Historical Materialism" published reviews of two books (&qu...
SOCIALISM-COMMUNISM
Against the proliferation of biological weapons: J...
Statement of the KKE on Armenia-Azerbaijan armed c...
Pompeo Go Home! Militant rally in Thessaloniki aga...
Azerbaijan-Armenia: The World Peace Council expres...
Statement of the KKE on US Secretary of State Mike...
Communist Party of Mexico (PCM): Resolution in sol...
Communist Party of Greece: Statement of the CC on ...
2020 Vermont Elections: Communist candidate Chris ...
Golden Dawn Trial: The Nazi criminals must be puni...
"Socialism, for life to win!": KNE-Odigitis Festiv...
Emblematic Greek farmer-unionist and former KKE MP...
Venezuela: The Communist Party denounces the illeg...
Israel-UAE-Bahrain agreement: Palestinian and Leba...
Communist Youth of Greece (KNE): The Nobel Peace P...
"Long live the joint struggle of the KKE and the T...
Greece: Large militant demonstration by PAME and T...
Google, Facebook reject communism-related ads: The...
Communist Party of Turkey (TKP) awards KKE General...
On the political situation in Venezuela: Letter by...
Fire destroys Moria refugee camp in Greece — State...
Serbian communists denounce government's intention...
Makronissos, the "Greek Dachau": Great event by th...
Pierre Komorov elected General Secretary of the Re...
KKE: NATO promotes dangerous settlements in East M...
Kazakhstan's Socialist Movement denounces persecut...
KKE backs campaign seeking Nobel Peace Prize for t...
Stop Warmongering! The Communist Party of Turkey h...
BELARUS: In the "millstones" of the exploitative s...
SOLIDNET.ORG
INITIATIVE of Communist and Worker's Parties
International Communist Review
World Federation of Trade Unions
World Peace Council (WPC)
902 KKE Portal (Greek)
Atexnos.gr
GRANMA (Partido Comunista de Cuba)
Antifascist Peoples Victory
CHECK OUT THE LATEST PODCAST ON YOUTUBE
Like IDC on Facebook
Follow IDC on Twitter!
Tweets από το χρήστη @id_communism
KARL MARX - FRIEDRICH ENGELS
LENIN ON IMPERIALISM
DECLARATION OF THE CC OF THE KKE
COMMUNIST AND WORKERS PARTIES IN EUROPE
Lies concerning the history of the Soviet Union
Guevaristas - Greek Archives
AGAINST FASCISM AND NAZI THUGS
Kazakhstan Protests: Interview with Eliseos Vagenas, head of the International Relations Section of the CC of the KKE
The news portal 902.gr has published an interview with Eliseos Vagenas, member of the CC of the Communist Party of Greece (KKE) and Head ...
Nazim Hikmet: The most beautiful days we haven't seen yet...
By Nikos Mottas. Nazim Hikmet. The great Turkish poet of the world's working class whose poems praised and highlighted the people's ...
Joint Statement of Communist and Workers' Parties on the situation in Kazakhstan
Joint statement of Communist and Workers' Parties on the valuable experience of the great strikes and demonstrations of the working clas...
The "petty leftists" and Kazakhstan
The following article ( here in Greek ) was published in today's " Rizospastis ", the organ of the CC of the Communist Party o...
¡Viva la Revolución!
20th Congress of the KKE (2017)
RedGlobe Links
Get feeds from IDC
In Defense of Communism © All Rights Reserved. By Nikos Mottas. Powered by Blogger.


The Domain Hotel - Snyder Nationwide Real Estate, Inc.
The Domain Hotel is located in the heart of Silicon Valley in close proximity to many high-tech companies including Apple, Google, Yahoo, LinkedIn and many other cutting edge Fortune 500 and smaller upstart compaies. PKF considers the Silicon Valley market to be the fastest growing RevPar market in the U.S. through 2016.
This full-service Radisson was acquired by a joint venture formed by Snyder Nationwide Real Estate, Inc. in 2006, who located the hotel, negotiated the acquisition, closed on the hotel, selected a management company and design firm, and then oversaw a $3.825 million renovation after which the name was changed to The Domain Hotel.
In June of 2008, The Domain Hotel was honored to receive the "Design of the Year Award" for the Mid-Range Hotel Category by Hospitality Design magazine recognizing creative achievement in redevelopment of hospitality projects throughout the world.
Snyder Nationwide Real Estate, Inc. sold The Domain in December, 2014 delivering an above market return to our investors.


Click on the thumbnail image or caption to view the full image in Connecticut History Illustrated (a new tab will open). Then click on "Details" to view information about the item. To return to these Social Justice Featured Topic selections, click on the Social Justice tab.
Tips: The twenty-four items presented here are just a sampling of resources relevant to social justice available in Connecticut History Illustrated. To search for more, click on the Topics links in the item records and refer to resources in the Slavery and Abolition and Reform Movements Featured Topics.. You can also click on the "Search CHI Digital Archive" link in the top menu of this page and enter terms, such as names of people associated with social justice movements or actions, or particular topics associated with social justice, for example "civil rights," "human rights," (enclose phrases in quotes ), demonstrations, discrimination, into the search box. Use the Topics or Places links in the left menu of the search results page to refine your search to particular areas, such as education or housing..


text:
#ifndef SQLPP11_SORT_ORDER_H
#define SQLPP11_SORT_ORDER_H

#include <sqlpp11/detail/type_set.h>

namespace sqlpp
{
  struct no_value_t;

  enum class sort_type
  {
    asc,
    desc
  };

  template <typename Expression>
  struct sort_order_t
  {
    using _traits = make_traits<no_value_t, tag::is_sort_order>;
    using _nodes = detail::type_vector<Expression>;

    Expression _expression;
    sort_type _sort_type;
  };

  template <typename Context, typename Expression>
  struct serializer_t<Context, sort_order_t<Expression>>
  {
    using _serialize_check = serialize_check_of<Context, Expression>;
    using T = sort_order_t<Expression>;

    static Context& _(const T& t, Context& context)
    {
      serialize_operand(t._expression, context);
      switch (t._sort_type)
      {
        case sort_type::asc:
          context << " ASC";
          break;
        default:
          context << " DESC";
          break;
      }
      return context;
    }
  };
}  // namespace sqlpp

#endif

redpajama_set_name: RedPajamaGithub


Josh Planz was born and raised in East Hampton, New York. At an early age, Josh took advantage of all the benefits of a community rich in art with the help of his grandfather Allen Planz, a world renowned poet. His mother helped shape his tendency for the theatrics with an early acting career including his induction into the Screen Actors Guild at the age of 7, and long list of theater and commercial work.
Flash forward; Josh received his MFA degree in Computer Art from the School of Visual Arts in 2013, and since then his work has been featured in the Creators Project, Sploid, Siggraph Asia, Slamdance and Moma PS1. Josh now freelances in New York, teaches 3D animation at the School of Visual Arts and pursues passion projects.


The new FitMax Total Face mask range from BesMed for Paediatrics (and Adults). The FitMax has been specifically designed for Paediatric and Infants in mind where a good seal is tantamount to the administration of CPAP & NIV treatment.
Available in 5 sizes, the mask comes with vented and non-vented elbow options.
Paediatrics or Adults (All Sizes) and will cost £132.00 (£110.00 ex. VAT) each which we think is a fantastic price compared to other masks on the market of a similar standard.
If you would like more information please feel free to [E-mail us] or fill out our [Contact Us], give us a call on 0844 815 7088 or send us a message on Facebook, Twitter or Instagram.


Would you like to find out what skin has to do with Hollywood and why some professional products can get "under your skin"?
Have you ever asked yourself how much skin you lose every day without being aware of it?
Do you know what "journey" each cornified cell has taken in its life? How long does a cornified cell live and who or what is "desquamation"?
Test your knowledge of your skin and answer the quiz questions or earn skin protection diplomas in different levels of difficulty!


At the beginning of the evolution of the universe, all the space was filled with hydrogen and helium. From these substances are formed the first stars from which heavy chemical elements began to appear. It was previously thought that atoms with large atomic numbers appears only in catastrophic events such as supernovae and starfusion.
According to the new scientific theory, the atoms of the heavy elements can also occur when small black holes are involved in the way described by the American astrophysicists. As far as the black holes are concerned, scientists believe that they could be a product of the Big Bang.
Tiny black holes are a speculative subject, but many astronomers believe that are a result of the Big Bang, the event that is widely accepted to have given rise to the universe. If this theory is correct, it could also explain other unanswered questions regarding heavy elements in dwarf galaxies.
http://szlifestyle.com/sz/2017/08/09/small-black-holes-creates-gold-platinum/https://i2.wp.com/szlifestyle.com/sz/wp-content/uploads/2017/08/BlackHole.jpg?fit=1200%2C675https://i2.wp.com/szlifestyle.com/sz/wp-content/uploads/2017/08/BlackHole.jpg?resize=180%2C150 2017-08-09T12:37:56+03:00 Martin JonesTECH NEWSBlackHole,Gold,NASA,PlatinumAt the beginning of the evolution of the universe, all the space was filled with hydrogen and helium. From these substances are formed the first stars from which heavy chemical elements began to appear. It was previously thought that atoms with large atomic numbers appears only in catastrophic events...Martin JonesMartin Jonesmartinj@szlifestyle.comContributorMartin Jones is a writer at szlifestyle.comszlifestyle.com Tech News, Life Style, Reviews, Videos!


The Adaguc service can be used in a lot of different ways. It can be used to generate a transparant layer visualising data from a variable in a NetCDF file (for overlaying) or it can be used to generate a complete graphical product with a geographical map as base layer and several data layers as overlay .
In this case the ADAGUC service is used to sample data from the underlying NetCDF data files, through a special ADAGUC API, which is an extension of the OGC WMS GetFeatureInfo call. This way of data access through ADAGUC saves a lot of configuration work and issues in software that uses model data.


text:
Man charged in Blue Line robbery, face slashing
Casser Williams. (Chicago Police Department)
CHICAGO (WLS) -- Casser Williams, 48, has been charged with two felonies in a robbery during which a woman's face was slashed at the Clark and Lake CTA stop, police say.
The 24-year-old woman was attacked around 4 a.m. Friday, Oct. 16, while waiting for the train at the station, which is underground. A Good Samaritan followed the alleged attacker and he was arrested shortly thereafter.
Police say Williams lunged at the victim, cutting her left cheek, then took her cell phone before fleeing the scene. He is charged with one count of felony armed robbery and one count of felony aggravated battery with use of a deadly weapon. He is due in Bond Court Sunday.
The victim was treated at Northwestern Memorial Hospital for the cut to her face and released, police say.
loopattempted robberystabbingcta
Woman's face slashed at CTA train station at Clark/Lake


The MP5SD is the full-time suppressed version of the MP5 submachine gun. This version uses an integral aluminum or optional wet-technology stainless steel sound suppressor. Due to its ported barrel, it does not require use of subsonic ammunition for effective sound reduction like most conventional sound suppressed submachine guns.
The MP5SD is fully compatible with all existing MP5 accessories and trigger groups.


text:
Q: Xpages large number of documents values in repeat control I am working on the application where which we need to migrate from old notes application to xpages. So from the old application we have more than 2,00,000 Documents.
So in an xpages application we are loading these list of documents with the help of repeat control, So is there any optimized way to load data faster because loading this much amount of Documents take more than 5 min to load.
Some kind of sugestions would be really helpful.
The formula for the repeat control from which I loads data is from page data source dominoView. The page datasource is :>

And this data source is used in a repeat control to load dynamically as in image.

We also have pager and limited rows mentioned to repeat.

A: You need to redesign your approach. For starters don't try to load documents, but load viewEntries. Scanning through a view is substantially faster than opening each document.
Secondly: I'd suggest you go for a client side (non repeat control) based approach: Use one of the datagrids that feed on Json with virtual loading. That should make a better user experience.

A: The answer is in your screenshot: it shows that row's styleClass property calls rowData.getDocument(). That' a big no-no, especially if you use this trick in many places of the repeat content.
Update your view and put anything useful for page rendering to view's columns. That's what @stwissel said, anyway.

A: You probably want to rethink your design. How can a user find something in 2M docs? Maybe put some other filters or searching in front of the repeat?

redpajama_set_name: RedPajamaStackExchange


The garden at MK Snap produces a variety of plants and seasonal vegetables throughout the year. Our garden has grown in size since winning the ITV Peoples Projects and now consists of 2 greenhouses, a large accessible poly tunnel and 6 raised beds.
Items grown in the garden are sold from the table outside the MK Snap entrance as well as indoors on our enterprise barrow. Please pop by to see what we have and place your payment in the money boxes.
The learners currently take part in 5 gardening sessions per week. The gardening sessions focus on developing the learners gardening skills and learning new ones in a relaxed friendly environment. The learners are encouraged to choose what they would like to grow and sell. Group discussion and research are used to plan our planting schedule. The learners are able to experience and enjoy working outside through each different season.


text:
← Editorial: Video Game Merchandise
News: Hironobu Sakaguchi and the Great Art Heist →
Anime: Summer 2017 Week 6
By Durga
Comments Off on Anime: Summer 2017 Week 6
For once there are no jokes.
Once more into the review we go, dear readers. Hello again, and welcome to the Summer weekly anime review series, part six (or so). The 2017 Summer season has been a rather decent one so far. Nothing too awful, nothing too boring, though there have been some minor boring moments here and there with a couple of the shows. All in all, the season has been mostly worth watching. With the halfway point now reached, does this remain the case, or will the anime start to slip into a mundane routine, dragging themselves into the ever deepening pit of cliches and tropes that so many series make the mistake of falling into? So far most have managed to avoid much in the way of disappointment, and one hopes that this will be a continuing trend. To recap, last week our action series (Saiyuki) continued a flashback sequence that provides much-needed info for newcomers to the series while giving long time fans a welcome revisit to some information about characters that may have been forgotten in the show's long hiatus. Conflict arose in Classroom of the Elite in the form of a student possibly being framed for attacking other students, in an event that could lead to that student's expulsion, and Knight's and Magic gave us a return to some action sequences, taking a break from all of the research and development from the previous episodes, and finally giving a glimpse into what will probably be the main antagonists for the series, though not giving much information at all about them. Gamers! updates on Thursdays, and with the change in schedule, this means that this week there will be no review of that episode, as at the time of this writing it is not yet available. Fear not, for it shall return next week. Now that a nice refresher has been handed out to everyone, the review proper can begin.
Saiyuki Reload Blast Episode 6
The previous episode ended quite abruptly on a rather sad moment, as the one friend that young Goku had finally made decided to mortally wound himself rather than fulfill his father's wish of slaughtering Goku. Episode six picks up exactly where the previous episode left off, with the limiter headband on Goku's head disintegrating, and everyone getting a chance to see the real Goku, an immensely powerful being that is not demon or man, born of the earth and with the power to rival that of Heaven itself. His friends look on in horror as Goku begins to make short work of heaven's armies, easily walking through them all and tearing them limb from limb. Even Li Touten, the current god of war, is powerless to stop him as Goku takes his eye from him (much to the delight of all watching). Finally, the goddess of mercy arrives and delivers the most epic of elbow drops to the young Goku, knocking him unconscious. Unfortunately, by the laws of heaven Goku and his friends are now effectively on death's row. Moments before the goddess can deliver the final blow to Goku, Konzen steps in and slaps her, much to the surprise of everyone. He pleads for a chance to save Goku and return him to normal, and she agrees to give them a chance to run, though Li Touten is clearly quite unhappy with his new cyclopean appearance, and demands the armies of hell hunt them all down and kill them. As this is a flashback to the past lives of the main characters, the final outcome is something that is all too certain. The question is, can the show make the deaths of all these characters, even though the viewers know that they are already reincarnated and walking with Goku again, something that will deliver a dropkick to the emotions? The answer is an astounding and unequivocal yes. From the moment that they all promise to Goku that they will meet up on Earth and see the cherry blossoms together, it is quite evident that none of them plan to survive, and the most that they can hope to accomplish is to get Goku to safety. Each death scene is handled quite well, with a surprising amount of blood and a surprising amount of sadness for characters that have only had 3 episodes of screen time. In the end, Konzen manages to just get Goku through the portal to Earth, at the cost of his own life. Goku is so torn up by the grief that he sits just on the other side of the gate to the portal for weeks before the goddess of mercy finally goes to him. His punishment for tearing heaven a new anus is to be imprisoned alone for five hundred years and to have his memories of his time in heaven completely erased. From here, the episode cuts back to our present crew, setting off once again on their journey to save us all. All in all, this three part flashback sequence was handled quite well. The past lives of each character reflected their present selves quite well, with Konzen being the most opposed to his current incarnation, but the end of his life showed his changing towards that new mindset. It was nice to see the beginning of everything, and nice to have more of a build up for Nataku, who has risen from his throne for the first time in five hundred years and will surely become a primary player that they will have to deal with soon.
Classroom of the Elite Episode 5
This boy seems determined to get his hands on Kiyotaka.
This episode continues the investigation that the last episode ended on, with the group's classmate Sakura running away instead of being confronted by her classmates. She is ashamed of her "mask" that hides her true character and is afraid that if she helps them in solving their case, then they will know too much about who she really is. Apparently, this worry is not all that powerful, as she ends up meeting with Kiyotaka and company to get her camera repaired after she dropped it in her panic when they confronted her the day before. She says that she does have information about Sudo and the gang that he supposedly attacked all on his own unprovoked because she was there, but that she is not ready to come forward with it just yet. From here the episode shows her anxiety with being around strangers, particularly anyone who seems to be perverted or weird, like the man they visit to repair the camera. Kiyotaka seems to be the only person picking up on her anxiety and confronts the camera-man, halting his attempt to get all of Sakura's personal info by giving his instead. It would seem the anime is dropping the act that Kiyotaka is useless altogether, as this episode gives much more of his own personal thought processes in figuring things out. He seems to be incredibly smart, even if he never really lets other people see it very much. After the scene with the camera man, Kiyotaka discovers with the help of his classmate that Sakura's hobby is to take sexy pictures of herself in random locations to try and build her confidence. For someone with such terrible anxiety, this seems a rather odd hobby, but anything to get some service into the episode. Even her glasses seem to be a part of her mask, as they do not have real lenses and are not needed, but are just another way for her to be seen as mundane and normal so people will let her keep her head down and out of most situations. Finally, the trial for Sudo begins and Sakura decides to take the stand. The trial plays out about as would be expected, with no resolution just yet but Sakura finally overcoming some of her anxiety to testify on Sudo's behalf. The student body president, Suzune's older brother, is the one providing the judgment, and it is his decision that both sides are guilty, but that Sudo is more. After Kiyotaka finally spurs her into action, Suzune stands and says that she is one hundred percent certain of Sudo's innocence in this case, though she feels that he is reckless and does not care for the future of his classmates enough with his rash actions. The president says that he will give both sides time to gather proof that the other side is lying, and that the possibility of being expelled will be on the table when they next meet. This episode did a good job of showing more of Kiyotaka's smarts, instead of just showing his clever actions in the moment. it also helped to develop another faceless member of the class, though it would seem she was mostly developed so that she could provide some fan service. Still, the character development is nice and it will be interesting to see just how the trial will end.
Knight's & Magic Episode 6
More kingdoms means more conflict.
This episode begins with discussions for plans for the future, as the Telestale get delivered to the kingdom's head engineering teams, who vows to turn them into something even better. At the same time, they issue a challenge to the newly formed silver knights, led by Ernie of course, to build a robot of their own and meet in a duel to see who can create the better, the old team of the new. This week once again focuses mostly on research and development, as the team is given six months to develop all new suits to combat the old engineers in. Many might take issue with this formula of research and development of new robots, and the time skips that show this all happening, but it is actually interesting to see a show delve into the specifics of building robots. For a gunpla nerd, this is like heaven. The time jumps do however mean that character development takes a bit of a back seat, but this is not the anime for the focus to be all about characters. This anime is clearly all about building and fighting robots. The development is interesting to watch, and Ernie develops suits that even the non-magical can use so that his Smithies can keep up with the increased demand put on them. There is a moment in the episode where Ernie actually messes up for the first time in a while, nearly killing himself to test a new weapon he was designing. While his friends all freak out on him, he just says that the test gave him much-needed information towards perfecting the technology. The episode draws to a close with the reveal of each side's robots, and Ernie wins immediately because he brought a centaur to the fight, regardless of how any fighting actually goes in the next episode. The designs for the suits remain really cool and innovative, and the characters, while not overly developed, are still fun to watch. There is even a little bit more of a story given with the king discussing with his counselors the attack on the kingdom, and what it could mean for the future. All in all, while there could stand to be a bit more time spent getting to know people, the episode was still fun for someone who is robot obsessed.
With that, we once again reach the end of the review. next week will see the return of Gamers! to the list of shows being reviewed, and the proper time slot of the review going up, which this totally did fall into and is not at all a day late or anything. For now, the future of the Summer anime season seems to be relatively bright, though the pacing in some instances seems to be a little slow. Regardless, keep checking in to see what develops in the future, or watch yourself you mongrels! Leave a comment, thank you for reading and keep on watching.
Tags: Classroom of the Elite, Knight's and Magic, Saiyuki Reload Blast. | Bookmark the permalink.


text:
You are here: Home ∼ Breaking down the Springboks' loose forwards
Rugby, Springboks Tagged rugby, Springboks
Breaking down the Springboks' loose forwards
Duane Vermeulen and Siya Kolisi
SARugbymag.co.za looks at the Springboks' back-row options for the upcoming World Cup in Japan.
Siya Kolisi (flank)
The inspirational captain. Plenty has been written about Kolisi's life, rising from the Zwide township to become the first black Springbok captain. Kolisi has thankfully managed to fight his way back from a knee injury and prove his fitness in time to be able to lead his country in his second World Cup experience. Despite a stop-start season and managing only two Tests, the 28-year-old has definitely not looked short of puff. Kolisi put in an excellent 50 minutes in the send-off Test against Argentina in Pretoria and promisingly lasted longer in the warm-up against Japan with 66 minutes in hot and humid conditions in Saitama. Coach Rassie Erasmus has suggested that Kolisi will lead the team against the All Blacks and Italy, but be rested in the easier pool games against Namibia and Canada.
Duane Vermeulen (No 8/flank)
Duane Vermeulen is a vital cog in the Bok pack, playing an important role not only on the field, especially in terms of defensive organisation, but leading off it as well. Vermeulen remains one of the best in his position in Test rugby, having established himself in one of the strongest loose trios in the world alongside Kolisi and Pieter-Steph du Toit. It is scarcely believable that Vermeulen was largely overlooked by the Boks in 2016 and 2017, managing just four Test starts in that time. Vermeulen's breakdown expertise allows Kolisi and Du Toit to roam free in the wider channels, bringing an important balance to the loose trio. At 33 years old, Vermeulen will probably be playing in his final World Cup and determined to get his hands on the trophy.
Pieter-Steph du Toit (flank/lock)
The bruiser in the loose trio, Du Toit has emphatically answered questions surrounding his switch from lock to blindside flank with a number of incredible performances over the last two years. Simply put, his impact in the No 7 jersey has been nothing short of immense. Du Toit's work rate is something to behold, given his 2m, 119kg frame. Having just earned his 50th cap against Japan, Du Toit is one of the favourites to be named World Rugby Player of the Year for 2019. If he does get the award, it would have been rightly earned.
Francois Louw (flank/No 8)
The most experienced loose-forward option at Rassie Erasmus' disposal, Francois Louw looks set to be used as an impact option off the bench in the bigger games. Louw rarely gets the headlines or praise for what he does, but that does not make it any less important to the Boks' cause. He is willing to do the dirty work around the park and has played a vital part in a number of Rugby Championship wins, with some key turnovers when the Boks have come under pressure on their own line. A veteran of 69 Tests, Louw has the know-how to make a timely – if underrated impact – in the big moments.
Kwagga Smith (flank/No 8)
The breakthrough player in terms of flank options, Smith's made his first Test appearance against Wales in Washington last year. Following that Test, he did not add another cap to his collection in 2018 and seemed to be out of favour. However, Smith emerged as one of the Lions' key players in 2019 and simply forced his way back into the Bok set-up. Smith's Super Rugby form was simply too good to ignore. Smith has found Test rugby far more comfortable this year and while he remains a bit lightweight, he more than makes up for it with an incredible work rate. His speed to the ball is also an asset to the Boks. Given that Louw was on the bench against Japan, and will probably continue in that role against the All Blacks, Smith will be favoured to start against both Canada and Namibia.
Schalk Brits (surprise No 8 cover)
A surprise name to throw into the mix. Yet, before leaving for Japan, Erasmus suggested that he may utilise Brits in the back row at some time during the tournament. Brits was selected as one of three hookers in the 31-man squad but has the right attributes to make a temporary shift to No 8 a success. Most memorably, Brits returned to the Stormers from Saracens on a short-term loan in 2011 as emergency cover after the Cape franchise lost Vermeulen, Kolisi and Pieter Louw to injuries. Brits came off the bench as a flank in the Vodacom Super Rugby semi-final against the Crusaders and had a good impact, carrying strongly while posing a threat at the breakdown. The Boks' first-choice loose trio will definitely need a break at some time in the pool stages, so it is realistic to think a temporary shift for the 38-year-old could happen.
Photo: Gavin Barker/BackpagePix
Posted in Rugby, Springboks Tagged rugby, Springboks
Article written by Juandre Joubert


text:
Q: Unable to connect to mongoDB client using mongoose I am a beginner in mongoose and mongo DB. When I am trying to connect to mongoDB using mongoose , running the app.js file with the help of node app.js the process is struck.
I am not getting any output. When I am checking the database then also the database is not created.
Can anyone please tell me where I am going wrong?
This is my code:
const mongoose = require('mongoose');

var conn = mongoose.connect('mongodb://localhost:27017/my_database', {
  useNewUrlParser: true,
  useUnifiedTopology: true
});

const peopleSchema = new mongoose.Schema ({
  name: String,
  age: Number
});

const People = mongoose.model("People",peopleSchema);

const people = new People({
  name : "Umang",
  age: 25
})

people.save();

A: Try the following command in your command prompt
npm install express

Then add the following code snippet.
const mongoose = require('mongoose');
const express = require('express')
const app = express()
var conn = mongoose.connect('mongodb://localhost:27017/my_database', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

const peopleSchema = new mongoose.Schema({
    name: String,
    age: Number
});

const People = mongoose.model("People", peopleSchema);

const people = new People({
    name: "Umang",
    age: 25
})

people.save();

app.listen(3000, function () {
    console.log('Node server listening on port 3000');
})

I have tested it and it is working.
Make sure MongoDb is connected


"Know what you own and why you own it." Peter Lynch earned his way into the Mt. Rushmore conversation of investors. Over a storied career at the helm of the Magellan Fund, Lynch directly impacted the investors who entrusted him with their assets for over thirteen years (1977-1990), churning out annual returns of more than 29%1. But despite the fact Lynch grew the fund from $20M in assets to more than $14B, perhaps his biggest contribution to the investing community were words to live by. Mr. Lynch was known for coining several phrases and articulating his investment philosophy in a concise manner. We think Peter's mantra of "know what you own and why you own it" is something that will apply to investors throughout time. And with today's technology, it's something every investor should obey.
For some, they might be able to afford to seek out help when managing this selection process. But that doesn't help investors live any closer to the mantra set out by Mr. Lynch. If you just pass the buck onto your advisor, are you really any the wiser? For so long, investors would enter opaque mysterious relationships with financial advisors that left them on the outside looking in when it came to their own portfolios.
But over time, what's come along with all of the investment options and information available for investors is an explosion within fintech that can help bring clarity to one's portfolio after it's been implemented. And investors are now demanding clearer and more concise reporting of useful information that lets them know exactly how they're situated at all times.
The value in having clear, transparent and comprehensive reporting of your portfolio at your fingertips cannot be stressed enough. It would appear investors are beginning to realize this and are letting the industry know that it matters to them. A study conducted by the CFA Institute in 2016 revealed what gray areas investors had when analyzing their own investment relationship. When asked how confident they were if an independent third party reported on their relationship, would they come to the same result as their financial advisor? More than 1/3 of investors claimed to be "not highly confident" a third party would match the result provided by their advisor when calculating risk exposures, personal goal progress, benchmarking and personal rate of return. More than 40% of respondents claimed to be "not highly confident" a third party would report the same fees investors are told they're being charged by their advisor3.
Shouldn't you have the utmost confidence that the information your intermediary is telling you about your situation is accurate?
Clear portfolio reporting can help confirm that you and your advisor are on the same page and leave nothing to question. Investors should be empowered with useful, timely and accurate information provided by their advisor when dissecting their portfolios. Having access to exactly what a portfolio is exposed to, the risks assumed by the investor, portfolio sensitivity, and direct and indirect fees are things that can help not only investors, but advisors during a relationship. We're by no means encouraging investors to check on the portfolios every day. In fact, we're big proponents of keeping yourself as far out of that routine as possible. But the more clearly this information is made to an investor, and more readably accessible it is to them, the easier time we think they'll have along the way. Answering that ever-too-common question of, "what does this mean for me?" is that much easier to do now. This introduces a whole new frontier for investors to investigate when selecting their intermediary relationship. How is this advisor setup to provide on-demand information on your personal situation? What steps has that advisor taken to invest in their reporting capabilities? It's great to find someone you trust who can help derive an investment plan for you. But you deserve to know how that plan is working along the way, as clearly as possible. Technology has allowed this to become the reality for investors, whether they've been made aware of it or not. And if you don't know, now you know.


Once you arrive in Akaroa via bus, hire car, campervan or motorhome, there is plenty to do. You can take 4WD trips to Flea Bay which is home to the largest little penguin colony on mainland New Zealand. Alternatively you can indulge in some sea kayaking amongst spectacular surroundings or even take a harbour nature cruise. There are also cycle tours and a wonderful range of walking tracks. There are plenty of other things to do in Akaroa as well.


Click Options in the top-right corner and select Settings.
Under Language, select your preferred language.
To change the language of your mobile app, you need to change the language settings on your device. See your device's manufacture guide to find out how.
Note: This will change the language on your entire device, not just the Spotify app.


Got the game downloaded successfully on steam, created a character, and cannot get past the loading screen. I tried doing the "fix" someone else posted but with no success. This game looks quite interesting and would love to help out, if I could get in the game that is... Help!
Some other users (and mee too) have the same difficulty since yesterday. Problem is already described in the russian part of forum.
Glitchmob welcome to the community, I'm new here myself. I've not been able to play for the last 3 days much like many others so like you Im hoping for some resolution soon. Don't worry though m8 no doubt it will get sorted.
They always get the forum icon status fixed. It happened to me and many others and was quickly fixed.
I was just online now, but it was laggy for some reason. However, the servers appear to be back up now! So log on and enjoy!


text:
layout:     post
title:      "How I coded a Telegram bot that evaluates Lisp code"
subtitle:   "Code processing right on your phone"
date:       2015-06-28 14:42:00
author:     "Nicola Malizia"
tags: ["php", "telegram"]

header-img: "data/cover/telegram-background.jpg"

twitter-card: true

open-graph: true
---

My last blog post on Telegram Bots it was well received, unexpectedly. By viewing some requests I decided to show you how I have setup my [@LispBot](https://telegram.me/LispBot), a little toy bot that evaluates a sort of Lisp code.

The bot is based on the PHP Liso interpreter [Ilias](https://github.com/igorw/ilias) made by [Igor](https://github.com/igorw), if you want to know how this internally works checkout his [blog post](https://igor.io/2012/12/06/sexpr.html) series.

I'm sure that some reader have already asked to himself: Why did you use PHP ?

Simply I wanted to put something online without leaving my personal computer open 24/7. Since the APIs of those bot are accessible via simple HTTP calls and since you can get a free host that uses PHP, I thought, for a toy project, PHP should do the trick.

## Prerequisites
In order to setup a project like this you'll need:

0. A web host, there are plenty free web host services out there that supports PHP.
0. A personal domain name, I registered one for free using [freenom](freenom.com).
0. A Cloudflare account to manage your domain, so you can get it's free Universal SSL, needed for set the webhook call back.
0. Barebone PHP or a micro-framework or a fully fledged framework, this is up to you.

I'm not going to explain step by step point **1.**, **2.** and **3.** we will focus instead on how I implemented the point **4.** providing some observations at the end.

While I could have implemented everything just using plain PHP I used FatFreeFramework for the routing, after you will see the code you will understand that it was not needed to use it.

## The workflow
Before to show you how to set the endpoint to the bot (obviously [create a bot](https://unnikked.ga/getting-started-with-telegram-bots) first let's see how schematically I designed the bot.

- Receiving the POST request on my endpoint.
- Checking if it's a valid JSON.
- Checking if there is any valid command.
- Processing the code.
- Reply to the client with the evaluated code.

Unfortunately PHP lacks of concurrent programming, so each request it's done sequentially.

## The Bot

Finally let's dive into the code of the bot, note that this is not the working version.

```php
<?php

$f3->route('POST /process', function ($f3) {
	// decoding input
	$message = json_decode(file_get_contents('php://input'), true);
	// if it's not a valid JSON return
	if(is_null($message)) return;
	$endpoint = "https://api.telegram.org/bot<token>/";

	// make sure if text and chat_id is set into the payload
	if(!isset($message["message"]["text"]) || !isset($message["message"]["chat"]["id"])) return;

	// remove special characters, needed for the interpreter apparently
	$text = $message["message"]["text"];
	$text = str_replace(["\r", "\n", "\t"], ' ', $text);

	// saving chat_id for convenience
	$chat_id = $message["message"]["chat"]["id"];

	// if the string will not start with /eval return
	if(!preg_match("/\/eval/", $text)) return;

	// show to the client that the bot is typing
	file_get_contents($endpoint."sendChatAction?chat_id=".$chat_id."&action=typing");

	// bootstrapping the interpreter
	$program = new Program(new Lexer(), new Reader(), new FormTreeBuilder(), new Walker());

	// if there is something wrong send the message to the client, this error is related to the code passed
	try {
		$env = Environment::standard();
		$value = $program->evaluate($env, $text);
	} catch (RuntimeException $e) {
		file_get_contents($endpoint."sendMessage?chat_id=".$chat_id."&text=".urlencode($e->getMessage()));
		return;
	}
	// send to the client the code evaluated
	file_get_contents($endpoint. "sendMessage?chat_id=".$chat_id."&text=".$value);
});
```

You may wondering why I simply return (the framework will send by default HTTP 200 status code) instead of returning a 400 status code message ?

Well if you send a status code different from 200 Telegram servers will resend you the same command to process, so your bot will probably remain stuck processing and telling the same thing to the server.

The status code 200 should be used, based on my observations, to tell to Telegram Bot API: _Ok, I received your command, I will process it_.

## Setting the webhook

You have now your bot up and running on your fancy server. How to tell to Telegram to send messages to it ? Simply use the `setWebhook` method.

Open your browser and navigate here `https://api.telegram.org/bot<token>/setWebhook?url=https://your_bot_end_point`

Where `your_bot_end_point` is your domain name as example `https://mybotdomain.com/process`

You should see a message like that:

```json
{"ok":true,"result":true,"description":"Webhook was set"}
```

You have to make sure that you have a signed ssl certificate, that's why I use [Cloudflare Universal SSL feature](https://www.cloudflare.com/ssl).

## Some observations
- If you use the webhook method make sure to reply quickly with 200 status code by processing the command using background threads or processes, so you can process other messages as fast as you can. ([Producer Consumer problem](https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem)).
- Bot in chat groups receive only string that starts with `/`, you can still disable privacy to let grab whatever input.
- On personal conversation the bot will try to process every message sent to it.

This bot kinda sucks, because it process every input sequentially. PHP lacks about concurrent programming so you cannot create threads to let process the command.

## Conclusion

If you want to test this bot chat with [@LispBot](http://telegram.me/LispBot). As some of you suggested what to know how to process messages using the `getUpdates` method, I'm working on it and I'll try to write a blog post as soon as possible.

If you have any idea or comment please let me know in the comment, I would love to read it.


The sound of letters is the most fundamental element before being introduced reading for young learners. At Steps Ahead Learners, we believe that children learn letter-sounds through music and songs, story-telling and also hands-on objects. Our teachers ensure that the Fun Phonics class is adjusted to the different learning abilities and preferences of children.


434 Farmington, Clarksville, TN, 37043 - Photos, Videos & More!
Beautiful 4 Bdrm, 3 Bath Home! Huge Master Suite w/WIC, Sep Tub & Tiled Shower! Open Concept Great Room w/Fireplace, Granite Countertops in Kitchen w/Pantry & Lrg Island, Huge Bonus Rm Upstairs, Mudroom, Cover Porch & Patio, 2 Car Garage. A Must See!


text:
Death lays its icy hands on tourists: 22 die in Murree snowfall tragedy
Most of the tourists died in their cars as they were trapped in road jams due to impossible snow clearing operation.
By Ag App & Our Correspondent
MURREE/ISLAMABAD/ RAWALPINDI/LAHORE: Twenty-two persons, including women and children, lost their lives in freezing temperature on Friday night at the hill station Murree. Most of the tourists died in their cars as they were trapped in road jams due to impossible snow clearing operation.
Despite a severe weather warning by the Met Office on January 5, the local managements of Rawalpindi and Islamabad miserably failed to adopt safety measures to prevent hundreds of thousands of visitors from entering Murree in hazardous rainfall and blizzard, resulting in the tragic death of at least 22 people, including children and women. These people died while on the roads for hours in frigid conditions, with vehicles covered by snow. It was a disaster waiting to happen.
On January 5, the Met Office had issued a specific warning of impending calamitous weather. The advisory warned that heavy rain with heavy snowfall over the hills (isolated heavy to very heavy) is expected in all
hilly areas including Murree, Galiyat, Neelum Valley, Naran, Kagan, etc, on 7th January, (Friday).
According to the Met Office, Murree received 17-inch snowfall on Friday. The rainfall would continue during the next 24-hours, the Met Office warned. The Met Office also said that Rawalpindi and Islamabad received a total of 84mm rain on Friday night.
While the tourists who had planned a good, relaxing vacation died on the roads in the frosty cold weather due to heavy road blockages towards Murree, the Rawalpindi and Islamabad administrations were in deep slumber till Saturday morning. They only woke up when the affected people, desperate for help, uploaded their videos on the social media. Different media channels highlighted those video recordings and alarm bells began to ring. The officers called rescue teams to start an operation to rescue the trapped people, but for many it was too late.
The Commissioner Rawalpindi Division, Syed Gulzar Hussain Shah, along with DC Muhammad Ali and others officials, reached Murree to rescue those trapped around mid-day. The Toll Plaza management only minted money and did not stop the public from entering Murree.
The official-ministerial juggernaut of the twin cities of Rawalpindi and Islamabad was unaware of the Met Office warning for Murree, Galiyat and Nathiagali. They remained clueless as vehicles in waves dashed towards Murree on Thursday and Friday.
Only after the tragedy unfolded on TV channels and the social media, did the district management move to stop more traffic from entering the city. But by that time, according to AC Murree, 155,000 cars had entered the city with parking spaces for 35,000 only. Huge pile ups of cars and vans could be seen on the snowbound roads with nowhere ahead to go or to scramble for safety as women and children remained crammed into vehicles in subzero temperatures. Many of those visitors were reportedly weeping for help, which was not there. It was heartbreaking to see so many children and women caught up in the hazard. They were hungry, tired and many had no fuel in the cars.
On Saturday morning, the DC Rawalpindi, Muhammad Ali, warned people from travelling to Murree and directed relevant officers to head to Murree to manage the emergency. "We are trying to open all roads of Murree, the situation would be cleared very soon," he said. Police and Rangers were deployed on pickets to stop the public from entering Murree on Saturday.
Meanwhile, some of the tourists who remained stranded told Geo News that the civil administration was nowhere to be seen, adding that rescue and relief work was being carried out by the Pakistan Army officials only. They praised the army officials for reaching out to them, giving them food items and making efforts to clear the roads.
By mid-day Saturday, the Murree Expressway was still jampacked with visitors wanted to reach Murree. The City Traffic Police Official spokesman, Kashif Sarosh, told The News that there was parking space only for 33,375 motor vehicles here in Murree but over 150,000 motor vehicles entered Murree in two days on Thursday and Friday. He said they had removed all vehicles but on Friday, movement of motor vehicles stopped due to heavy snowfall. Only 33,790 out of over 150,000 motor vehicles were stuck up and could not move due to snowbound conditions, he said. Desperate for safety, many motorists had abandoned their cars in the middle of roads, which also added to the problem of clearing the roads. However, traffic police sources said the National Highways and Motorways officials were slow in removing snow from the roads.
Visitors from different walks of life strongly protested against the district administration for not putting up any safety measures in the face of heavy snowfall. They should have prevented the traffic from going to Murree and must have warned the public from going to Murree in view of the Met office warning of January 5, the people complained.
State of emergency has been imposed in the affected areas and movement of traffic into Murree has been banned for over 24 hours to clear the traffic jams.
Military troops and Rangers have been called in to help the civil administration to rescue thousands of people trapped in different areas of Murree and Galiyat, while thousands of police personnel have been transported there to rescue the tourists and their families, including women and minors.
Federal Interior Minister Sheikh Rashid visited Murree and supervised the rescue work. The minister told the media that over 19 tourists, including children, had died while over 1,000 were still trapped in Murree.
The rescuers disclosed that over 120,000 vehicles entered Murree till last night and choked the traffic in entire Murree and artery roads. Regional Police Officer (RPO) Rawalpindi Region, Ashfaq Ahmad Khan, City Police Officer (CPO) Rawalpindi, Sajid Kiani, Deputy Commissioner Rawalpindi, Mohammad Ali and other operational and administrative officers of Punjab reached Murree and visited the affected areas.
Four friends visiting the hill station were among the dead after heavy snowfall that lashed the popular tourist spot. According to police, all of the victims were friends and were visiting Murree from Mardan. They died of cold while spending the night in their car due to huge traffic jam.
Zahid Zahoor, 27 (Kamalabad Bolan), Ashfaq Younas, 31 (Gujranwala), Maroof Ashraf, 31 (Gujranwala), unidentified male, 30 (Lahore), ASI Naveed Iqbal, 49, Mrs. Naveed Iqbal, 43, along with their four daughters and two sons (Islamabad), Asad Zaman, 22, (Mardan), Mohammad Bilal Ghaffar, 21, Bilal Hussain, 24 (Karachi), Mohammad Shahzad Ismail, 46, and Mrs Shahzad, 35, with their two children were among those who died in the Murree tragedy.
Meanwhile, Chief of the Army Staff (COAS) has directed the 12th Infantry Division, Murree, to extend all support to the stranded people in Murree without waiting for any orders. General Officer Commanding Officer (GoC), Murree, Major General Wajid Aziz, told the media that Chief of the Army Staff has given directives to provide all-out support to people so that they should not face problems. He said that the Murree Expressway was cleared for traffic by 3pm on Saturday whereas evacuation activity was also being carried out in the area between Kuldana and Barian and traffic could not move towards Khyber Pakhtunkhwa.
"Our relief and rescue efforts will continue till the last tourist reaches safer place," Major General Wajid Aziz said. However, he appealed to motorists to avoid spending night in their closed vehicles.
Meanwhile, the Inter-Services Public Relations (ISPR) in a statement said that all resources at the disposal of Murree Division in terms of engineers and machinery was mobilized and will remain in the field till all people are evacuated. The ISPR said that heavy machinery from Murree, Army Engineers Division and FWO are working without any pause to assist the people who are stuck. Troops are out in the field. Where machinery cannot reach, troops have been moved and they are clearing traffic and opening roads. All the stranded people will be shifted to five army relief camps established in Murree. "Food, shelter will be provided to people affected by heavy snowfall. Army relief centre has been established at the Army School of Technicians, Barian," the ISPR said. The relief camps have been established at the Military College, Murree, Jheeka Gali, APS Kuldana, Station Supply Depot Sunny Bank.
The dozers of Frontier Works Organization (FWO) and army engineers are busy keeping roads open. The ISPR further said that Central Control Division has also been established at the Murree Division.
Rescue centers has been established at the APS and Army School of Logistics Kuldana. All relief camps have been provided with heating arrangements.
Meanwhile, on the special instructions of Air Chief Marshal Zaheer Ahmed Baber Sidhu, Chief of the Air Staff, Pakistan Air Force, PAF Bases Kalabagh and Lower Topa are actively participating in relief operations in the affected areas. Crisis Management Cells have also been established at both bases to facilitate the stranded personnel and families. Shelter, food, warm clothing and medical facilities are being provided to tourists stuck in heavy snow. During the operation, PAF personnel have rescued a number of families and shifted them to safer places. Following an improvement in weather conditions, helicopter operations will also be started for evacuation of the stranded tourists.
Meanwhile, Punjab Chief Minister Sardar Usman Buzdar on Saturday directed to expedite the rescue operation for stranded tourists in Murree due to heavy snowfall. He said this while presiding over a meeting held here to review in detail the situation developed in Murree after the heavy snowfall. The meeting was told that necessary machinery was being shifted to Murree, whereas all roads leading to Murree had already been closed.
The Punjab government was in frequent contact with Khyber Pakhtunkhwa government for better coordination. Chief Minister Sardar Usman Buzdar instructed to use all out resources to rescue all the stranded tourists before night. He said that an emergency had been imposed after declaring Murree snowfall as natural calamity while the help of army had been sought for rescue activities besides deploying additional police force in the area. Food and other essential items were being provided to the tourists on priority, the meeting was told.
Meanwhile, Minister for Interior, Sheikh Rashid Ahmed on Saturday reached Murree to monitor the rescue operation. Talking to the media, he said that the administration would continue the rescue operation to evacuate all stranded tourists. He said roads from Punjab side were clear now as around 1,000 vehicles had been evacuated. He said heavy machinery would clear further roads in Gudana and Paharian while the remaining 70 to 80 percent of roads had been cleared. He said all government rest houses had been opened to help tourists on the direction of Chief Minister Punjab. He added that helicopter service would be started soon as the weather conditions got better. Meanwhile, Chief Secretary Punjab, Kamran Ali Afzal, has said the Murree tragedy has been heartrending.
While the district administration, police and traffic police both in Punjab and KP had taken all precautionary measures, the severity of the blizzard was unprecedented, he added. "We are doing our best to rescue the people stranded. Operations have been underway since last night. The Army and Rangers are mobilised and their rescue teams are in field. NHA and C&W are moving heavy machinery to clear the snow," he said.
He stated that Rescue 1122 was in the field. Accommodation is being provided to people in government buildings. Food, blankets and other necessities are also being provided. The help and support provided by the local people of Murree and adjoining areas is much appreciated, he said.
Meanwhile, the situation was said to be particularly perilous in Rawalpindi and Islamabad where the concerned managements issued a red alert amid heavy rainfall and flooding risk.
The sources said that the red alert was issued over possible flooding after heavy rains disrupted life in twin cities. The Islamabad administration said Sector E-11, Soan Gardens, Bhara Kahu, and Korang Nullah other with adjoining areas are expected to be inundated following a heavy downpour.
Factory owners make profit by increasing goods' prices but not increasing workers' salaries
LAHORE: Pakistan Muslim League President and former prime minister Chaudhry Shujaat Hussain has said for the last few...
Sialkot tragedy: $100,000, first salary, given to Sri Lankan manager's widow
ISLAMABAD: Special Assistant to the Prime Minister on Political Communication Dr Shahbaz Gill Monday said that the...
Caps for boys, dupatta for girls: Punjab announces new school dress code
Murad Raas requests private schools to also enforce the new dress code
26 perish as earthquake hits western Afghanistan
HERAT: At least 26 people, including women and children, were killed after an earthquake hit western Afghanistan on...
Cummins wins Ashes and hearts with Khawaja gesture
HOBART: Pat Cummins' leadership qualities were on full swing even after his side sealed a 4-0 Ashes series win on...
Tarbela Dam victims get relief from SC after 60 years
ISLAMABAD: The Supreme Court announced judgment for the affectees of Tarbela dam after 60 years, rejecting WAPDA's...


When you're in the midst of a security issue, getting to the point of feeling on top of security again can seem a million miles away. Because in the end, security is about being aware of what's going on in your environment and having a proactive approach to dealing with the threats.
Being able to prioritize the severity of those threats and vulnerabilities that could impact the business is key to any security practitioner's job. It's in that vein that we recently spoke with Josh Sokol, an OWASP leader and the creator of SimpleRisk, an open source risk management tool he released to the community to help take some of the 'obscurity' out of security.
With a background in computer science, a deep understanding of OWASP principles and as the owner of a security program at a large company, Sokol has a lot of great advice on how to do application security as well as security in general.
Sokol joined the ranks at National Instruments as a Web Systems Engineer in 2007, and while he had an interest in security, he had very little experience with it. He graduated from the University of Texas, Austin in 2002 with a BS in Computer Science, "but at the time security wasn't part of the college curriculum so I culled many of my early 'hacking' skills from sites like HappyHacker," Sokol says.
By pure luck, many of OWASP Austin's events took place at National Instruments, where Sokol began regularly attending meetings, quickly becoming the company liaison.
"Over the course of two years, I helped grow OWASP Austin to being one of the largest and most active chapters out there with weekly meetings, weekly study groups, monthly happy hours, and even its own conference," Sokol says.
LASCON, the conference Sokol helped create with his colleague James WIckett, is coming up in late October, and will host attendees in over 50 track sessions during the event.
OWASP has impacted Josh's life in more ways than just becoming involved in the organization. "I've learned from past mistakes, and more recent experiences with OWASP," giving him a much better foundation of secure coding knowledge. And it's with that knowledge that Sokol has given back to that very community with his risk management system: SimpleRisk.
During the transition from Web System Engineer to his full-time post as InfoSec Program Manager, Sokol decided that managing security risks was going to be a top priority.
"I quickly realized that the biggest hurdle wasn't knowledge, but rather, tooling," he says.
After a long search for the 'one' risk management system, Sokol realized it just wasn't out there. The GRC solutions were quickly denied by management for their "$500k price tags," while the middle-of-the-ground tools just weren't sophisticated or heavy enough to cut it.
The open-source tool was designed "from scratch with security in mind and I am constantly leveraging the education and experience that I've received from OWASP," he says.
SimpleRisk's newest iteration was just last month presented by Sokol to hundreds of security professionals at the Black Hat Arsenal. "Hearing others say that after trying everything else out there, my tool is the only one that does what they need it to do, will never get old," Sokol says of attendee's reactions.
Future plans for SimpleRisk include building a more scalable and secure hosted platform to offer a free tier for those working to get their own risk management program running.
Frame vulnerabilities as business risks for a real chance at aligning your security goals with the organizations' business goals.
Explaining vulnerabilities to business people has a very low margin of impact; It doesn't mean your boss and other stakeholders are dumb, it's just "because vulnerabilities don't map back to standard business processes," Sokol says.
So, instead of discussing how many severe vulnerabilities you found and fixed, or the number of SQL injections present, or the percent of vulnerabilities fixed between scans, come to your management with solid data on the probability of an application being hacked and the cost (in lost time, reputation and money) of such an incident.
If you don't feel like management is listening to you, it may be time to re-evaluate how you approach them, Sokol suggests.
At the same time, sometimes 'we won't be doing anything about that risk' will just have to be good enough.
"I think that my single biggest struggle as the Information Security Program Owner at National Instruments has been in realizing that sometimes you just have to accept the fact that with limited resources, 'We're not going to do anything about it' is an acceptable answer," Sokol says.
It's a tough pill to swallow, but, as Sokol says, "our role in the risk management process, as security practitioners, is to assess the risks in our environment and convey them to management." If you've framed the issues to align with your managements concerns, that's where your role ends.
Ultimately, it's up to management to choose whether to reject or accept the risk. Sokol says that once he understood that that decision doesn't fall on him, a weight was lifted off his shoulders.
Having a CISO has more to do with the organization's desired security maturity level than the size of the organization.
Sokol believes that the role of the CISO is part business-executive, part technical security manager, acting as a sort of moderator between security and business initiatives. "Without a CISO, you may have operational security, but you likely lack direction or a long-term plan for an actual security program," he says.
"Having a CISO at the helm of the security program should be a priority for any business that deals in or maintains any sort of data that is considered sensitive or confidential," Sokol says.
Your developers will have varying degrees of security know-how as new hires. It's up to you as the program owner to make sure they're on the same level.
Secure coding, Sokol acknowledges, is not learned in two-day course, but his program gives them a solid foundation from which they can grow, and supplement as needed. The point is to get everyone to a certain level before they start at the company, then adjusting as you see fit.
Realize that developers have much more on their plates than security, and help them by making writing secure code easier for them.
Sokol suggests shifting the focus from lamenting about their lack of security education and offer ways of integrating security into the platforms and workflows they're already familiar and comfortable with.
A great way to get your developers more actively engaged in security within the SDLC is to teach them to treat security vulnerabilities as bugs by managing security flaws through the developer's bug-tracking system, a platform familiar to you developers.
Josh Sokol, CISSP, graduated from the University of Texas at Austin with a B.S. in Computer Science in 2002. Since that time, he has worked for several large companies including, AMD and BearingPoint, spent some time as a military contractor, and is currently employed as the information security program owner at National Instruments. In his current role, Sokol manages all compliance, security architecture, risk management, and vulnerability management activities for NI. Sokol created SimpleRisk, the free and open source risk management tool, has spoken on dozens of security topics including the much-hyped "HTTPSCan Byte Me" talk at Black Hat 2010, and currently serves on the OWASP Global Board of Directors.


text:
House GOP Campaign Committee Says It Was Hacked During 2018 Campaign
National Republican Campaign Committee has launched internal investigation into 'cyber intrusion' and notified the FBI
Dustin Volz
BiographyDustin Volz
@dnvolz
dustin.volz@wsj.com
Updated Dec. 4, 2018 3:42 pm ET
WASHINGTON—The campaign arm for Republican congressional candidates fell victim to a cyberattack in April by an unidentified intruder, people familiar with the matter said on Tuesday, fueling concerns that the 2018 election campaign may have been more seriously targeted by hackers than previously known.
The identity of the hacker wasn't clear, but one person familiar with the investigation said it was believed the attack was from a foreign operator. Other people said they couldn't attribute the source of the hack but that...


text:
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */

/*  Duda I/O
 *  --------
 *  Copyright (C) 2012-2016, Eduardo Silva P. <eduardo@monkey.io>
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

#include <duda/duda.h>
#include <duda/objects/duda_cookie.h>

/*
 * @OBJ_NAME: cookie
 * @OBJ_MENU: Cookies
 * @OBJ_DESC: The cookie object provides a set of methods to handle HTTP cookies
 */

struct duda_api_cookie *duda_cookie_object()
{
    struct duda_api_cookie *c;

    c = mk_api->mem_alloc(sizeof(struct duda_api_cookie));
    c->set     = duda_cookie_set;
    c->get     = duda_cookie_get;
    c->cmp     = duda_cookie_cmp;
    c->destroy = duda_cookie_destroy;

    return c;
}

/*
 * @METHOD_NAME: set
 * @METHOD_DESC: It creates a new cookie
 * @METHOD_PARAM: dr the request context information hold by a duda_request_t type
 * @METHOD_PARAM: key the cookie name
 * @METHOD_PARAM: key_len the key string length
 * @METHOD_PARAM: val the cookie value
 * @METHOD_PARAM: val_len the value string length
 * @METHOD_PARAM: expires defines the expiration time in unix time seconds. Use value 0 if
 * you dont want to make the cookie expire
 * @METHOD_RETURN: Upon successful completion it returns 0, on error it returns -1
 */
int duda_cookie_set(duda_request_t *dr, char *key, int key_len,
                    char *val, int val_len, int expires)
{
    mk_ptr_t exp;

    /*
     * Ugly hack: every session_request.headers contains a _extra_rows mk_iov
     * entry to add customized HTTP response headers. This is mostly used from
     * the plugins, as well by Duda when sending a response->header(...).
     *
     * We are in a very specific case, where the developer would like to set
     * some HTTP cookies, we want to avoid memory allocations if possible when
     * working with strings, so mk_api->header_add(..) cannot be used here as a
     * Cookie is composed by a few components like: key, value, expiration, etc.
     *
     * So here we will do a similar routine as mk_plugin_header_add(), if _extra_rows
     * has not been allocated, we will do it by our selfs and add the required iov
     * entries to compose the Cookie row.
     */
    if (!dr->request->headers._extra_rows) {
        dr->request->headers._extra_rows = mk_api->iov_create(MK_PLUGIN_HEADER_EXTRA_ROWS * 2, 0);
    }

    /* Add 'Set-Cookie: ' */
    mk_api->iov_add(dr->request->headers._extra_rows,
                    COOKIE_SET, sizeof(COOKIE_SET) -1, MK_FALSE);

    /* Append 'KEY=' */
    mk_api->iov_add(dr->request->headers._extra_rows, key, key_len, MK_FALSE);
    mk_api->iov_add(dr->request->headers._extra_rows,
                    dd_cookie_equal.data, dd_cookie_equal.len, MK_FALSE);

    /* Append 'VALUE; path=' */
    mk_api->iov_add(dr->request->headers._extra_rows, val, val_len, MK_FALSE);
    mk_api->iov_add(dr->request->headers._extra_rows,
                    dd_cookie_path.data, dd_cookie_path.len, MK_FALSE);

    /*
     * Append 'PATH' and ending string depending of the expiration type
     *
     * Destroy a cookie
     */
    if (expires == COOKIE_EXPIRE_TIME) {
        /* FIXME: COOKIE DISABLED
        mk_api->iov_add(dr->request->headers._extra_rows,
                        dr->appname.data, dr->appname.len, MK_FALSE);
        mk_api->iov_add(dr->request->headers._extra_rows,
                        dd_cookie_expire.data, dd_cookie_expire.len, MK_FALSE);
        mk_api->iov_add(dr->request->headers._extra_rows,
                        dd_cookie_expire_value.data,
                        dd_cookie_expire_value.len,
                        MK_FALSE);
        */
        return 0;
    }

    /* If the expire time was set */
    if (expires > 0) {
        exp.data = mk_api->mem_alloc(COOKIE_MAX_DATE_LEN);
        exp.len = mk_api->time_to_gmt(&exp.data, expires);

        /* FIXME
        mk_api->iov_add(dr->request->headers._extra_rows, dr->appname.data,
                        dr->appname.len, MK_FALSE);
        mk_api->iov_add(dr->request->headers._extra_rows,
                        dd_cookie_expire.data, dd_cookie_expire.len, MK_FALSE);
        mk_api->iov_add(dr->request->headers._extra_rows,
                        exp.data, exp.len, MK_FALSE);
        */
        return 0;
    }

    /* FIXME
    mk_api->iov_add(dr->request->headers._extra_rows,
                    dr->appname.data, dr->appname.len, MK_FALSE);
    mk_api->iov_add(dr->request->headers._extra_rows,
                    dd_cookie_crlf.data, dd_cookie_crlf.len, MK_FALSE);
    */
    return 0;
}

/*
 * @METHOD_NAME: destroy
 * @METHOD_DESC: It destroy a cookie. This method tells the HTTP client to invalidate
 * the cookie setting up a new expire time based in a past date. The changes should take
 * effect in the next request.
 * @METHOD_PARAM: dr the request context information hold by a duda_request_t type
 * @METHOD_PARAM: key the cookie name
 * @METHOD_PARAM: key_len the key string length
 * @METHOD_RETURN: Upon successful completion it returns 0, on error it returns -1.
 */
int duda_cookie_destroy(duda_request_t *dr, char *key, int key_len)
{
    return duda_cookie_set(dr, key, key_len, COOKIE_DELETED, sizeof(COOKIE_DELETED) -1,
                           COOKIE_EXPIRE_TIME);
}

/*
 * @METHOD_NAME: get
 * @METHOD_DESC: Retrieve a specific cookie value sent by the HTTP client.
 * @METHOD_PARAM: dr the request context information hold by a duda_request_t type
 * @METHOD_PARAM: key the cookie name
 * @METHOD_PARAM: val stores the cookie value
 * @METHOD_PARAM: val_len stores the string length of the cookie value
 * @METHOD_RETURN: Upon successful completion it returns 0, on error it returns -1.
 */
int duda_cookie_get(duda_request_t *dr, char *key, char **val, int *val_len)
{
    int i, offset;
    int pos_key, pos_val;
    int length;
    char *cookie;
    struct mk_http_header *header;

    header = mk_api->header_get(MK_HEADER_COOKIE, dr->request, NULL, 0);
    if (!header) {
        return -1;
    }

    /* Look for 'cookie key' */

    /* FIXME:
     * we must handle the case where the user set two cookies with transversal name/values,
     * like:
     *
     *   Set-Cookie: name=bob
     *   Set-Cookie: bob=name
     *
     * That code will generate this in the browser:
     *
     *   Cookie: name=bob; bob=name;
     *
     * If someone try to lookup the key 'bob' it will not be found.
     *
     */
    cookie = header->val.data;
    length = header->val.len;
    pos_key = mk_api->str_search(cookie, key, MK_STR_SENSITIVE);

    if (pos_key == -1) {
        return -1;
    }

    /* Get value position */
    pos_val = mk_api->str_search_n(cookie + pos_key, "=", MK_STR_SENSITIVE,
                                   length - pos_key);
    if (pos_val == -1) {
        return -1;
    }
    pos_val++;

    /* Get the value ending position */
    offset = pos_key + pos_val;
    for (i = offset; i < length; i++) {
        if (cookie[i] == ';') {
            break;
        }
    }

    /* Set results */
    *val     = (cookie + offset);
    *val_len = (i - offset);

    return 0;
}

/*
 * @METHOD_NAME: cmp
 * @METHOD_DESC: Compares a cookie value with the given string
 * @METHOD_PARAM: dr the request context information hold by a duda_request_t type
 * @METHOD_PARAM: key the cookie name
 * @METHOD_PARAM: cmp the comparisson string
 * @METHOD_RETURN: If the cookie value is equal to the given string, it returns 0. Otherwise
 * it returns -1.
 */
int duda_cookie_cmp(duda_request_t *dr, char *key, char *cmp)
{
    int ret;
    int val_len;
    int cmp_len;
    char *value;

    ret = duda_cookie_get(dr, key, &value, &val_len);
    if (ret == -1) {
        return -1;
    }

    cmp_len = strlen(cmp);
    if (cmp_len != val_len) {
        return -1;
    }

    if (strncmp(value, cmp, val_len) == 0) {
        return 0;
    }

    return -1;
}