text:
Everything You Want to Know About Mobile App Development A Guide for Businesses: How to Create Apps Selling Your App in the Marketplace A Matter of Fine Tuning Marketing Apps for Monetisation
Browse Definitions by Topic
Brows by Alphabet:
Content management system (CMS) - information system or a computer program with simple and convenient user interface, used to provide and organize a joint process of creating, editing and managing content without special programming knowledge.
Main functions
Providing tools for creating content, and organizing collaborative work;
Content management: storage, version control, compliance with access mode, flow control of documents, etc.;
Publishing;
The presentation of information in a form convenient for navigation and searching.
The content management system can contain a wide variety of data: documents, films, photographs, phone numbers, scientific data, and so on. Such a system is often used to store, manage, review and publish documentation.
Version control is one of its main advantages when the content is changed by a group of people.
In general, content management systems are divided into:
The Enterprise Content Management System (ECMS)
Web Content Management System (WCMS)
The term CMS replaced WCMS, becoming a synonym for the website management system.
Such CMS allows you to manage the text and graphic content of a website, providing the user with an interface for working with the content of the site, convenient tools for storing and publishing information, and automating the processes of placing information in databases and issuing it to HTML.
There are many ready-made content management systems, including free ones. They can be divided into three types according to the mode of operation:
Generate pages on request. Systems of this type work on the basis of the link "Editing module → Database → Presentation module". The presentation module generates a page with content when it is requested, based on information from the database. The information in the database is modified using the editing module. Pages are newly created by the server at each request, which in turn creates an additional load on the system resources.
Generate pages when editing. Systems of this type serve for editing pages that, when making changes to the content of the site, create a set of static pages.
The mixed type. As the name implies, it combines the advantages of the previous two. Can be implemented by caching - the presentation module generates the page once, in the future it is loaded several times faster from the cache. The cache can be updated automatically, after a certain time period or when making changes to certain sections of the site, or manually by the administrator's command. Another approach is to save certain information blocks at the stage of editing and build a page from these blocks when the user requests the corresponding page.
Most of the modern CMS are implemented as a visual (WYSIWYG) editor - a program that creates HTML code from a special simplified markup that allows the user to easily format the text.
is computer software in the early testing phase. It has basic functions enough to be used, but it is often buggy and lacks features that will be integrated into the final version. Alpha software is often used for internal testing. Internal (Alpha) testing - The stage of testing the program as a whole by testers, usually not developers of the software product, but, as a rule, within the organization or the community developing the product. Also, it can be the stage of adding new functionality, whereby programs can only be used to familiarize themselves with future opportunities. Most often, alpha testing is carried out at an early stage of software development, but in some cases, it can be used for a finished product as an internal acceptance test. Sometimes alpha testing is performed under a debugger or using an integrated development environment that helps to quickly identify the errors found. The detected bugs can be reported to testers for additional investigation in an environment similar to the one in which the program will be used. Typically, alpha testing ends with freezing properties and goes into beta testing. Beta testing - The stage of active public testing and debugging of the program that passed the alpha testing (if any). Programs of this level can be used by other developers of software for compatibility testing. Nevertheless, the programs of this stage can still contain a large number of errors. Sometimes beta testing is performed in order to get feedback about the product from its future users. Often for free and open source software, the alpha testing phase is characterized by the functional content of the code, and beta testing is the error correction stage. At the same time, as a rule, at each stage of development, intermediate results of work are available to end users.
>> Artificial Intelligence
(AI), sometimes referred to as machine intelligence, is the technology of creating intelligent (thinking) computer systems. The basic properties of AI are: language understanding; learning; ability to make decisions and act. AI is associated with using computers to understand human intelligence, but is not limited to biologically plausible methods. This science is connected with psychology, neurophysiology, transhumanism and others. Like all computer science, it uses a mathematical apparatus. Philosophy and robotics are of particular importance.Artificial Intelligence is a top popular scientific area, the foundation to which was laid in 1956. Now it's growing rapidly, having the evangelists in each progressive enterprise nearly in every country. AI is a complex of related technologies and processes that develop qualitatively and rapidly, for example: natural language processing machine learning expert systems virtual agents (chatbots and virtual helpers) recommendation systems. AI Applications The fields of AI app are quite wide in scope and encompass both familiar technologies and emerging new directions that are far from mass market use, in other words, a whole range of solutions, which span from robotic vacuum cleaners to complex space stations. Artificial Intelligence is not a monolithic subject area. Moreover, some technological directions of AI appear as new sub-sectors of the economy and separate entities, at the same time serving most areas in the economy. The Goal of Artificial Intelligence The traditional goals of AI include knowledge representation, reasoning, planning, natural language processing, learning, perception and the ability to manipulate objects. Types of AI Limited Memory AI. Reactive Machines AI. Self-aware AI. Theory of Mind AI. Artificial General Intelligence (AGI) Artificial Narrow Intelligence (ANI) Artificial Superhuman Intelligence (ASI) More detailed information about these types are available here. AI Perspectives There are two directions for the AI development: To solve the problems associated with the approach of specialized AI systems to human capabilities and their integration, which is realised by human nature. To create an Artificial Mind, representing the integration of already created AI systems into a single system that can solve the problems of mankind. The AI development leads to the adaptation of technologies in classical sectors of the economy, leading to algorithmization of almost the entire functionality of routine operations. Business value of the AI lie in the optimisation and automation of routine processes, which can be implemented via machines in every sphere, from customer support (chatbots and AI adviser) to food processing and construction (3D printers), decreasing the costs and speeding the achievements of results.
>> Bespoke Software
Bespoke software are programs tailor-made to individual customers' requirements, and are thus wholly unique, as opposed to standard software that is developed and sold to customers as it is (without special features designed to meet particular needs). Bespoke software development is a service delivery, which consists of providing the necessary technical expertise and manpower. Functionalities, delivery schedule and terms of payment are subject to a contract between a service provider and a customer. The customer is heavily involved in the development process and estimates the success of the work. Almost all bespoke systems are application software, the implementation of which demands that the operating system be preloaded onto the user's PC. The construction of bespoke software has been practised since the 1960s and was initially the only means of obtaining application software. What is in Essence? Standard software often responds to a limited, or insufficient, number of requirements, so bespoke software is usually ordered when there is no equivalent standard software available, i.e. in highly specialised areas. It can also be created in order to bring together disparate products; a common practice with software suites such as ERP and CRM. Bespoke Software Development in Brief Software development is performed gradually in several phases, or milestones: at the end of each phase a client receives a version of the product. Each phase ends with an acceptance testing, whereby he or she verifies that the software is doing what should be expected of it. The software is then tested in many conditions, with real data, possibly accompanied by stress tests designed to make the software fail and see how it rescues itself and returns to normal. Planning in several phases makes it possible to take into account the evolution of the customer's expectations: termination of a phase can inspire the customer, leading them to ask for a more refined product. Payment can be made on an hourly basis – regular payment of the developer's working hours, or fixed price – a fixed price is negotiated at the conclusion of the contract and typically paid in several parts. The fee is between $50 and $300 per hour, depending on the IT vendor. The scope of work required depends on the amount of source code and specifications, and may in some cases exceed a year. In the case of fixed payments, the evolution of the customer's requests may lead to a renegotiation of both the contract and the end cost. Bespoke software is built with special development tools, and the marketing process is very different from that of standard software: the software is considered a project. It is often created from scratch and is therefore not immediately available. The customer is strongly involved in the development work and the geographical proximity between the customer and the supplier counts. The risk of commercial failure is taken by the customer. The acquisition cost is high because it is fully paid by a single client. The ownership of the software and the licence conditions are one of the subjects of the contract signed between the supplier and the customer.
Additional Terms of Software development
Download our free mobile app development guide
See more words
Net Promoter Score (NPS)
Net Promoter Score (NPS) is an index that identifies customer loyalty to a product or company and is used to assess readiness for re-purchases. How It Works Measuring the NPS loyalty index involves several steps: Consumers are asked to answer the question "What is the probability that you would recommend a company/product/brand to your friends/acquaintances/colleagues?" On a 10-point scale, where 0 corresponds to the answer "I will not recommend it in any way", and 10 - " I will surely recommend. " Based on the estimates obtained, all consumers are divided into 3 groups: 9-10 points - product/brand promoters, 7-8 points - passives, 0-6 points - detractors. Calculation of the NPS index itself. NPS =% supporters -% critics As a result, the the user's loyalty score calculated on the scale from -100 to 100. If all the customers are willing to recommend the product, the score will be about 90-100, if they are not willing to recommend it - the NPS will drop to -90-100 points. NPS trade mark was registered for the marketing tool, which automates the calculation of the above mentioned data. History Frederick Reichheld is considered the founder of the method, who first announced the method in the article "One Number You Need to Grow", published in the Harvard Business Review in December 2003. In 2006, he released a book entitled "The Ultimate Question: Driving Good Profits and True Growth". He continued his arguments on the loyalty, profitability and growth of the company. In 2001, Reichheld conducted research in more than 400 American companies, where the main task was to measure the influence of customer loyalty (measured by NPS) on its growth rate. The main result was the conclusion that the average NPS by market in the industry was 16%, but for companies such as eBay and Amazon NPS it was 75%. Reichheld does not say that communication is present everywhere: it is absent altogether in monopolistic markets. However, industries such as passenger air travel, insurance and car rental have become a prime example of interconnection. This is obvious, since these companies are service providers, where customer satisfaction and loyalty depend on the level of customer service. As a result, many companies have become adherents of this technology, including Apple, American Express, eBay, Amazon, Allianz, P & G, Intuit,, Philips, etc. For certain industries, especially software, it has been proven that Detractors often stay with the company while Passives leave. This seems to be a relatively high barrier to trade. Faced with criticism of the promoter's score, proponents of the network promoter's approach stated that the proposed statistical analysis only proved that the "recommendation" problem was similar to other indicators in predictive capacity, but failed to solve the real problem and this is the core of the argument presented by Reichheld. Proponents of the method also argue that third-party data analysis is not as good as analyzing the company in its own set of customers, and the actual benefits of the method (simple communication concepts, short survey, customer follow-up features ) exceed any statistical disadvantage of the approach. They also allow inquiries using any other issues to be used in the net promotion system, as long as it meets the criteria to securely classify customers as promoters, passives and detractors.
>> 5G
is the fifth generation mobile communication technology based on the IMT-2020 standard. The speed of Internet access in the 5G network is predicted at around 10 Gbit/s. 5G reduces the signal delay to one millisecond - against 10 milliseconds on 4G networks and 100 milliseconds in 3G. New generations of mobile communication appear every 10 years. Within this interim, time is spent on the development of technology, standards and infrastructure upgrades. It is expected that the 5G network capacity will be enough to serve more than 1 million devices per 1 km² at an average speed of 100 Mbps. Read more about 5G opportunities for business. Who Deals with 5G Networks in the World Today 5G technologies are used by: research laboratories (for example, the 5G Lab Germany laboratory at the Dresden Technical University); mobile operators (British Vodafone, American Verizon and AT&T, Japanese NTT DoCoMo, Swedish Teliaetc); telecom equipment suppliers Swedish Ericsson, (Chinese Huawei, Finnish Nokia, South Korean Samsung, etc.). 5G Applications These apps and services require significantly higher characteristics of a mobile Internet connection, which cannot be implemented in existing commercial LTE networks. It is expected that 5G networks will allow connecting many devices capable of establishing billions of connections, due to which it will be possible to create new services in: Tactile Internet (transmission of touch), IT and Telecom, automotive industry - self-driving cars, entertainment industry, education, agriculture and many others. Due to the 5G networks, it will also be possible to improve the quality of use of already existing services, where large volumes of traffic are involved. Launch of the World's First 5G Network October 1, 2018 Verizon announced the launch of the world's first commercial network of the fifth generation (5G). The operator has deployed it in four US cities: Sacramento, Houston, Los Angeles, and Indianapolis. The company officially declared Houston resident Clayton Harris "the first customer of the 5G network in the world," which provides an average speed of 300 Mbit/s, and the maximum of 940 Mbit/s.
>> Node.js
is a server platform for working with JavaScript through the V8 engine. JavaScript performs the action on the client side, and Node let the commands, written on JS to be implemented on the server. With Node, front-end programmers can write full-fledged software applications. Node can call commands from JavaScript code, work with external libraries, and act as a web server. Node Advantages Node is easier to scale. When thousands of users connect to the server at the same time, Node works asynchronously, that is, it sets priorities and allocates resources more intelligently. Java, for example, allocates a separate stream for each connection. Features Asynchronous scripts based on events. All Node.js APIs are asynchronous: non-blocking downloads. In essence, this means that a Node based server never expects data to be returned from the API. After the call, the server proceeds to the next API, and the Node.js events notification mechanism helps the server to get a response from the previous call. Very fast. Being built on the Google Chrome V8 JavaScript browser, the Node.js library runs very quickly in code. Single-threaded but easily scalable - Node.js uses a single-threaded model with an event loop. The Event engine helps the server respond in a non blocking way and provides high scalability, unlike traditional servers that create limited threads for processing requests. Node uses a single-threaded program, and the same program can serve much more requests than traditional servers, such as the Apache HTTP Server. No buffering - Node.js apps do not buffer data. Apps simply output data in parts. Where is Node.js used? Node.js has established itself as an ideal technological solution in the following areas: Input / Output applications Streaming apps Intensive use of data in real time (DIRT) JSON API based applications Node is successfully used by such large companies as eBay,Microsoft, PayPal, General Electric, Uber, GoDaddy, Wikipins, Yahoo!. Read how we build great apps with Node.js.
View all IT-related terms
Results for "DEV"


MOTs in Cadnam, Southampton are a legal requirement. Every year, cars over three years old need to have a check to make sure they are roadworthy and meet the environmental standards set by the government. Without this test, your vehicle insurance will become invalid as your car may not be safe to be on the road.
Cadnam Garage Services offer an affordable MOT test to check your vehicle. If for any reason your vehicle fails its' test, we can accurately estimate the cost of repairs to get your vehicle back on the road in a roadworthy condition.
Pass with PRS – Any small remedial works, i.e. bulb replacement, can be carried out under the PRS guidelines (Pass with Rectification at Station) to ensure the vehicle is passed with minimal disruption and inconvenience to the driver/vehicle owner. There will be an additional charge for time taken as well as the cost of the part, i.e. the light bulb.
Failure – Items which are dangerous/outside the guidelines set by the DVSA, and will take a significant amount of time to repair (and do not fall within PRS). We can provide an estimate for the repairs, for which authorisation will be required prior to the work being carried out on your vehicle. Once the work has been carried out, the vehicle will be retested to ensure the repairs meet the standards and guidelines set by the DVSA.
Advisory – items will appear on the issued MOT Certificate, being for replacement or repairs which we can foresee may be required in the future, but do not fail at the time the vehicle is presented for its' test. We will offer advice further to discussing with you the items detailed, and agree on an action plan to rectify the items at a time convenient to you. We always try and encourage our customers to be pro-active rather than reactive with their vehicle maintenance.
We are a Driver Vehicle Standards Agency approved class 4 MOT centre offering while-you-wait MOT appointments daily between Monday and Saturday. Our first appointment Monday to Friday is at 8am and the last is at 4pm. Prices start from as little as £21.95 if booked with a full service.
What if My Vehicle Fail the MOT Test?
Everybody wants their vehicle to pass the annual MOT test with flying colours but sadly, this isn't always the case. When a failure occurs, we believe that you have the right to a clear explanation of why your vehicle has failed and what needs to be done to put it right.
We'll show you the problems and explain the requirements to pass. On occasions, we also issue a notice of advisory repairs and will be happy to talk you through them to understand the implications and ideal timeframe to have any work carried out.
Choose Cadnam Garage Services for your MOTs in Cadnam, Southampton.
We have qualified technicians from both independent and main dealer backgrounds working on the vehicles in our care.
We make sure you understand all the work that has been carried out on your vehicle.
We will help you manage your vehicle maintenance by advising you of any repairs that are needed in the foreseeable future.


text:
Asparagus Stench
by by Dr. Steve
What's the deal with the smell in my urine after eating asparagus? Nothing else seems to have this effect. My best friend swears it's a myth and all in my head. What's the truth? — D. Ross, Massapequa, NY
It's very strange, because "Asparagus Piss" is just one of those medical subjects that has no impact on human health whatsoever, but has been controversial since people first started paying attention to stuff like that. The reason for this is that not everyone can smell the urinary byproducts of asparagus; those who can smell them assume everyone else can too, and those who can't smell them think those who can are crazy.
There's no question that this is a real phenomenon, appearing in published literature as early as 1731 when John Arbuthnot, a royal physician, wrote that asparagus "affects the urine with a foetid smell." In 1866 Pierre Larousse wrote in his Universal Dictionary that "the whole world knows the stench (asparagus) produces in the urine." Always the classy guy, it is said that Babe Ruth claimed asparagus "makes my piss stink" to his hostess at a black tie event. So, ok, it's real, but what causes it?
When you eat, your body breaks down the food into small packets that it can deal with; proteins are reduced to amino acids, fats are broken down to fatty acids, starches cleaved to produce easily absorbable sugars, and so on. Junk the body can't use gets expelled as waste products. Waste molecules that are very dissolvable in water will often be excreted in the urine. Despite numerous studies, the actual substance that causes asparagus urine is still a mystery. Researchers have isolated the molecules that you actually smell and they are small, sulfur-containing compounds that are outgassed from urine when it is exposed to air. However, they're so small that they should have been totally reduced to carbon dioxide and inorganic sulfate by the body, rendering them odorless. This points to a "precursor molecule" . . . something that is dumped into the urine by the kidney and then breaks up when you void your awful bladder to produce the smell. This precursor molecule, after 150 years of off and on (and poorly funded) investigation, has yet to be found.
It's even controversial whether everyone produces the smell in the first place. It is widely known that up to 67% of the population are "non-smellers," meaning they can't detect asparagus in even the most noxious urine (imagine how you would actually do a study like this. It's fun to think about), but it has never been determined conclusively whether everyone who eats asparagus even produces the stench. Some studies say yes, some are not so sure. A 1987 study showed that only 47% of people were "producers" but other studies have shown this number to be 100%. It may be that different study populations are simply different genetically. A team in Finland may get a very different result than an American team; you'd think this would be an easy thing to figure out, but it tends to be hard to keep your research grant money going when you're exploring "frivolous" topics like asparagus stink.
All this "only some people produce stench and only some people smell it" malarkey keeps the mystery going. I'm afraid the riddle will endure until someone discovers a link between malodorous asparagus whiz and a serious health condition, or until someone can figure out a way to make a lot of money off of it.
**Remember, don't do anything you read here without first consulting with your own health care provider.**
Dr. Steve is the resident medical expert for the Opie and Anthony and Ron and Fez shows, and the host of his own Sirius XM Radio program, Weird Medicine.
Dr. Steve reveals whether portable devices can damage your family jewels
Dr. Steve goes into the belly of the beast to help an irregular reader Dr. Steve uncovers the true dangers of recreational drug use
Wrap Up Dry January With These Non Alcoholic Alternatives
6 Farmhouse Ales To Try in 2021
Coalition Launches First 100 Percent Rye Finished in Bordeaux Barrels
This Was the Rarest Whiskey of 2020
How to Make Clear Ice at Home for Cocktails
Save Up To 45% On Some Amazing Items At Bulletproof Today
Bob Dylan's Bootleg Vol. II Whiskey Is a Tropical New Release

redpajama_set_name: RedPajamaCommonCrawl


If you expect every bit as much out of your equipment as you expect out of yourself, then XTR needs to be on your bike. Shimano's XTR components don't just ask to be pushed to the limits, they demand it. Shimano's XTR Shadow Rear Derailleur comes to the game with super-light, cold forged-aluminum and carbon. It's strong spring keeps the body stable even when you're blasting through rough sections. The famously smooth, linear feel is still present, delivering precise shifts every time no matter what gear you're in. Plus, the Shadow design of this trick derailleur features direct cable routing while its low profile barely protrudes past the quick-release nut. These features mean there's much less risk of striking and damaging the derailleur or snagging the cable on roots or rocks.


It seems to us that a lot of people are interested in making a garden in the form of a spiral, and with good reason, because if it is properly constructed, garden needs little maintenance and you can in their plants to enjoy throughout the year. For us, the garden in the form of a spiral, includes all the principles of permaculture which implies proximity of the house to the inclusion in the making and a small pond.
The basic idea behind this design of the garden, is to get as many different plants in a limited area. Spiral design and different heights in different parts of the garden, create a number of different environmental conditions, that otherwise would not have been possible in such a small space. This also means that these gardens are ideal for smaller areas, while picking and watering is very easily.
We collected for you a few ideas that may help in the planning of the spiral garden which you have always dreamed of. Here you will see a variety of styles in the photographs, and all you have to do is to choose your favorite and start further research. Have fun and make the garden of your dreams!


Mexico is packed with natural and man-made landmarks. From the country's arid north to the lush jungles of the south, Mexico includes a wide range of natural ecosystems. In this bio-diverse country, a great diversity of cultures also flourished, many of which left behind important testaments to their achievements and are still present in contemporary Mexico's vibrant culture. A full list of the country's natural and man-made landmarks would be a nearly impossible task, but a few sights stand out as especially impressive and representative of the kinds of attractions Mexico offers.
Before being invaded by Spanish conquistadors, Mexico was home to a long succession of advanced civilizations. Many of these groups -- including the Olmec, Maya and Aztec -- left behind significant monuments. Today, tourists to Mexico can visit the ruins of ancient settlements at sites like Palenque, Chichen Itza, Monte Alban and El Tajin. Teotihuacan, an ancient Mesoamerican city believed to have had as many as 200,000 inhabitants, is especially remarkable. The UNESCO world heritage site includes the ruins of temples, palaces, massive pyramids and evidence of a complex urban plan already in place over 2000 years ago. The site is about 30 miles northeast of Mexico City, easily accessible by car or bus from the central terminal. The park is open from early morning to sundown and visitors pay an entrance fee valid for the entire day.
Founded in the 14th century as Tenochtitlan, Mexico City became a colonial capital in the 16th century when the Spanish built their city over the ruins of the Aztec capital. Today, the city is a bustling, cosmopolitan metropolis with an urban landscape that intertwines nearly 800 years of history. The city center is a UNESCO world heritage site, containing five Aztec temples and colonial monuments that include the largest cathedral on the continent and the national palace. The city center is walkable, but very crowded and be sure to keep an eye on your belongings. For more colonial landmarks, you can also head to the central districts of cities like Puebla, Queretaro and Zacatecas.
While the northern deserts of Mexico may seem like a barren landscape, the area is home to an astonishing number of species. The UNESCO natural site on the islands and protected areas of the Gulf of California, for example, contains 39 percent of the world's total number of species of marine mammals and a third of all crustacean species. The site also includes breathtaking natural scenery of island cliffs jutting out of the deep blue waters of the gulf. The reserve is open to the public and several tour operators out of La Paz offer guided treks.
The UNESCO natural site of Sian Ka'an is representative of Mexico's tropical south for the sheer variety of natural ecosystems found in the reserve. The park includes tropical forests, mangroves, marshes and even a coral reef area on the marine coast. Located on the east coast of the Yucatan Peninsula, Sian Ka'an means "Origin of the Sky" in a Mayan dialect -- and you can even find Mayan ruins and canals in the park. The reserve is located near the small town of Tulum, from which numerous tours of the area depart.


Pre-Orders take 4-5 weeks from order date to shipment (excluding Christmas + New Years holiday week, during which we also take a well deserved break).
Most orders will arrive between 5-10 business days.
Orders to Canada ship free but may be subject to additional taxes & duties when crossing the border. Most orders will arrive between 10-20 business days.
We hope you'll love our Hadjio products, but if for some reason you'd like to exchange or return a product, you can do so within 30 days of your purchase in order to arrange a return. International orders may be subject to additional shipping in order to return the purchase.
Please allow 14-21 business days from the time you mail your order for your return or exchange to be processed. Refunds are made once returned goods arrive at the Hadjio studio. We will notify you via email once your return has been processed.
If you would like to exchange an item, we suggest that you place a new order for the item you want, before returning your original purchase. This will ensure that your exchange item is in stock.
Hadjio pieces are hand made in the USA, with materials sourced globally. To make sure your Hadjio pieces have a good life, they should be well treated. Cottons can be machine washed and machine dried, however they live significantly longer when hand washed and air dried.
Refer to individual care tags for care information.


text:
#region Usings

using Newtonsoft.Json.Linq;

#endregion

namespace cloud.charging.open.protocols.OIOIv4_x.CPO
{

    /// <summary>
    /// A delegate which allows you to modify the JSON representation of stations before sending them upstream.
    /// </summary>
    /// <param name="Station">A station.</param>
    /// <param name="JSON">The JSON representation of a station.</param>
    public delegate JObject Station2JSONDelegate        (Station           Station,
                                                         JObject           JSON);

    /// <summary>
    /// A delegate which allows you to modify the JSON representation of connector status before sending them upstream.
    /// </summary>
    /// <param name="ConnectorStatus">A connector status.</param>
    /// <param name="JSON">The JSON representation of a connector status.</param>
    public delegate JObject ConnectorStatus2JSONDelegate(ConnectorStatus   ConnectorStatus,
                                                         JObject           JSON);

    /// <summary>
    /// A delegate which allows you to modify the JSON representation of charging sessions before sending them upstream.
    /// </summary>
    /// <param name="Session">A charging session.</param>
    /// <param name="JSON">The JSON representation of a charge detail record.</param>
    public delegate JObject Session2JSONDelegate        (Session           Session,
                                                         JObject           JSON);

    /// <summary>
    /// A delegate for post-processing JSON before sending it upstream.
    /// </summary>
    /// <param name="JSON">A JSON element to process.</param>
    public delegate JObject JSONPostProcessingDelegate  (JObject           JSON);

}

redpajama_set_name: RedPajamaGithub


For almost 3 years, our precious senior boy Willy has been living with cancer. With regular chemotherapy and medication to help his appetite, there were times that he was doing so well that we began to imagine (and hope against all odds) that by some miracle he no longer had cancer. Each time we thought his time was close, he would surprise us all.
His previously quiet and timid nature began to change as he became unwell. You would never know on meeting him, that this affectionate and attention loving cat was ever anything different. It has been heart-warming to see him become so content with human company. Many of our visitors have been greeted with Willy in our reception and all of our volunteers know how much he loves a lap to lay on and lots of pats.
Willy has had a number of dietary changes to suit his taste and assist with weight gain. His cat mates Socks and Melina were more than happy to share their food in return for his company. Sometimes, the sharing also extended to sharing a cosy bed.
We've had almost 3 years to prepare for his goodbye ….but it didn't make it any easier.
The time came that his body could no longer fight this horrible disease. It was heartbreaking to say goodbye but we couldn't have asked for any more from this beautiful boy. We will miss you sitting on our paperwork and purring on our laps. Forever in our hearts, Willy will be missed by so many.
It is with sadness we advise that we have finally received the results of tests undertaken on Tuppence that recently indicated something was not quite right. The high white cell count cannot be accounted for (the urine culture was clear) so it is feared that our sweet princess may have cancer. This means she is not a candidate for the Radioactive Iodine Therapy we had planned to cure her Hyperthyroidism.
Tuppence will now join our palliative care cats. We will continue to monitor her health and do whatever is required for her to be happy and comfortable.
For everyone that had donated to her thyroid treatment, please contact us if you would like a refund of your donation, otherwise we will put the funds raised to her ongoing palliative care, including her thyroid medication. Please note: we were unable to get the results of pre treatment tests prior to raising the funds as the tests have to be undertaken one week prior to Tuppence being admitted for the treatment.
With the clip clop of little hooves and a neigh to announce his arrival, Phantom made his debut at the Vegecareian Festival yesterday.
The yearly event held at the Great Stupa of Universal Compassion attracts crowds from all around the Bendigo region, many of whom met Phantom at our stall yesterday.
Phantom is an 18 year old Falabella (miniature horse) who is a permanent resident at the BAWCS shelter and part of our Farm Friends Sponsorship program.
With his calm nature and small stature, he proved to be quite a popular boy with many people keen to have a pat or share a photo with him.
Later in the day, he even lined up to participate in the Animal Blessings where he was happy to take the spotlight and charm everyone he met along the way.
Thank you to everyone who visited our stall and made a purchase or donation. It is only with the support of the community that we can continue our work.
A huge thank you must also go to Ian and Ester from Horse and Country Bendigo for kindly donating use of their float for the day and safely transporting Phantom to and from the festival.
We look forward to next year's event, where Phantom will be no doubt make many more friends!
Thought Tony and I would send through an email letting you know how Marvel is settling in. Marvel is absolutely adorable and we love him to bits. He has settled in really well and seems to think he's boss…lol!
Marvel loves his smooches, snuggles, pats and kisses with both Tony and I and distributes them differently with the two of us.
He has started to become more adventurous within our home and looking into places he hasn't yet gone. He knows exactly where his food is kept and even when Tony and I are in the backyard he is often at the sliding door watching and staying close.
He has found 'his spot' on the couch, on our laps, on the dining room chairs, on our bed, on the floor and has just started approaching his scratching post without as much fear.
Oh and he loves, loves playing with his toy mice and adores shoe laces.
The kids love him to bits and he is not so shy with them as he was when we first brought him home.
Tony and I just laugh at all the fun and cute little things he gets up to, even his cantankerous mood and crankiness at times.
We are so grateful for our furry feline child in ways I can't describe and Marvel means the world to both Tony and I.
One thing I am so thankful for is BAWCS no kill policy because we would not have Marvel if that was the case seeing as he was a BAWCS resident for 2 years. How no-one snapped him up before us is unbelievable however he was waiting for the right family to come along and take him home and love and spoil him rotten, which Tony and I do without hesitation.
Marvel has started snuggling with one of his toy mice attached to a shoelace of a night time. If you look closely at his photo, the toy mouse is under his cute little head.
Before I sign off…this kitty loves TV…he sits there watching it with us…he sure is lovable.
Rusty was a pretty sad sight when he first arrived into BAWCS care, with a large open wound on his head and a damaged eye. While he was happy to have a loving pat and keen to get some attention, it was obvious this poor boy was in pain. As fate would have it, he had found himself at Central Victoria's only "No Kill" shelter and he was in safe hands. He was immediately taken to our vet who suspected the head wound was an abscess which had been untreated. The eye had a very painful and deep seated ulcer, leaving the only option to remove the eye. A blood test also revealed a further challenge, he was FIV positive.
FIV (Feline Immunodeficiency Virus) is a feline disease which weakens the immune system and is most commonly spread through deep bite wounds that usually occur outdoors during aggressive cat fights.
Rusty underwent surgery to remove his damaged eye and repair his head wound. A flap of skin was stitched over the wound on his head but it was unknown if this would be successful given the size of the area. Rusty came through the surgery well however he was left with quite a few stitches and a drainage tube.
A return visit to the vet confirmed that the skin flap hadn't worked but the skin around the area appeared to be healing. A second surgery was undertaken and this time the stitches held and over time, the wound healed and revealed a very playful and vibrant young cat.
It was a long road of recovery for Rusty, but we never doubted that the process would be worth it…and he reminds us every day! Rusty is currently sharing with our group of "office cats" at the BAWCS Shelter, where he entertains us with his antics, sometimes his playfulness proving to be a little too much for the more mature "Pumpkin".
Rusty is available for adoption now and ready to start his new life. If you would be interested in adopting this special boy, you can view his profile here.


text:
Q: How to return to Fragment from Activity on Back Press In Android Studio I created a HomeFragment from MainActivity, then a new Activity is started when Bluetooth Data arrives. When I press the Back button while in the new Activity, the app closes. I want the App to go back to the HomeFragment.
I tried the following in the new Activity: But the App still closes
@Override
    public void onBackPressed() {
        finish();
    }

Here is the flow of my code for the sequence mentioned.

A: When you launch Activity_ListViewInp you have added FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_CLEAR_TASK. This will remove all existing activities from the task and start a new instance of Activity_ListViewInp. When you then press BACK, the app exits because there are no other activities in the task.
Remove FLAG_ACTIVITY_CLEAR_TASK

redpajama_set_name: RedPajamaStackExchange


text:
https://www.yourconroenews.com/neighborhood/moco/news/article/Houses-of-worship-adapt-to-COVID-19-for-holiday-15824214.php
Houses of worship adapt to COVID-19 for holiday services
By Jamie Swinnerton, Staff writer
Updated 7:42 am CST, Thursday, December 24, 2020
Worship Pastor Justin Adams sings as 50 volunteers and staff members prepare four Christmas Eve services for both in-person and online worshipers at The Ark Church Wednesday, Dec. 22, 2020, in Conroe.
Photo: Jason Fochtman, Houston Chronicle / Staff Photographer
As the COVID-19 pandemic continues to spread, local houses of worship are weighing tradition against health protocols this holiday season.
Some longstanding events and traditions had to be scrapped this year due to the pandemic, including West Conroe Baptist Church's annual "Bethlehem City" drive-through event. All the preparation to pull it together just couldn't be done within recommended health guidelines. So the church opted for a smaller production of "The Miracle of Christmas" earlier in the month inside the church with limited seating, and on Christmas Eve the church will be holding two candlelight services also with limited capacity.
"Folks are nervous about getting out, they really are, in large groups, and I totally understand that," said Senior Pastor Jay Gross. "It was not nearly the amount of turnout if things had been normal, and of course it wasn't anything in comparison to what Bethlehem City is."
The church has been putting on Bethlehem City since 2006 and each year the production has attracted more visitors. Last year the church estimated around 10,000 visitors, some coming in from other states.
Congregation Beth Shalom of The Woodlands has not met in person for months and does not have plans to go back in the immediate future. For Hanukkah, which started on Dec. 10 this year, the congregation met online each night to celebrate and worship together.
Related: Houston Furniture Bank to give away bedding sets as charity effort
On Dec. 13 the congregation gathered in person at North Shore Park for a socially distanced gathering with music and goody bags full of Hanukkah treats. About 70 members of the congregation braved cold temperatures and windy weather to come out and celebrate.
"No matter what, we're trying to make thins happen," said Rabbi Edwin Goldberg. "And we're not trying to be exactly as we always were, because you can't. We're not. So instead it's forced us to rethink everything. In other words, not like 'Well this is what we did last year, do you want to do it again?'. It's become 'What can we do that will give people a good and safe experience?'"
Looking ahead, Goldberg knows that things won't be back to pre-COVID times soon and some of the changes the congregation has made will probably stick around for a while, if not permanently. his year also brought the opportunity to revive traditions. The synagogue used to regularly have outdoor Hanukkah events but in recent years they have fallen off.
Fortunately, Hanukkah is a home-based holiday already. Ironically, the Zoom meetings that congregants had this year brought more people into their homes than usual.
"People have been sharing stories and on Zoom they have been showing us their favorite recipes, their favorite menorahs," Goldberg said. "So it's nice that we get to see a little bit more into each other's homes."
Some religious houses are holding ceremonies outside, or keeping them strictly online, while some are sticking as close to tradition as they can while following recommended health guidelines. For The Ark Church in Conroe, sticking to tradition is important this year. The church will be keeping the same services on the same schedule as in past years.
But that doesn't mean they haven't adjusted to the pandemic. Within a few days of being closed by the state, the church found a way to move services online. Since re-opening, the church has seen in-person attendance drop by about half, from 6,000 to around 3,000. But online attendance has increased so much that full attendance, online and in-person, is more than what the church had pre-pandemic.
There will be multiple Christmas Eve services with multiple health protocols in place: hand sanitizer around the building, masks are required when attendees come in but once they are sat and socially distanced they can be removed, two sections have been reserved that are mask-only for those who don't feel comfortable being around non-mask wearers. An online service will be available at 5 p.m. on Dec. 24 to help keep a surprise element of the service from being spoiled.
"One of the things we recognize during the pandemic, especially when we had to shut church down, was that really did not turn out to be a blessing," said Alan Clayton, Senior Pastor. "We noticed that there's a lot of pressure on people, people are dealing with struggles from a financial standpoint, from a fear standpoint, from uncertainty. And we really felt like the church is such a good help to people. And this year, in fact, we really have tailored the service to be more classical, more comforting than ever before because we felt people really need that solidity in their lives."
The message of hope built into this year's services is something Clayton feels his congregation needs now more than they ever have.
jamie.swinnerton@chron.com


The Winton SuperSprint has got off to a familiar start for the Red Bull Holdens, as today's two practice sessions yielded unsatisfactory results, but the team is confident of a form turnaround.
Lowndes, who finished 11th and 10th respectively across the two hours of practice, is positive that the crew has a solid foundation to improve upon: "It didn't go too bad today. I think we had good balance on our used tyres. When we put our new tyres on it sort of imbalanced the car a little bit.
"We're struggling with a lack of front tyre grip, which is what you need around here for a good lap time, so we've got something to work at. I think the beauty about today is that we know where we are now in relation to everyone else in car speed with the tyre life that we've got.
While Craig's results were consistent, Jamie had a strong start out of the box with a second place finish in the opening session, but struggled to 20th on the set of green hard tyres in the second.
"Today didn't go very well at all," he said. "We just have no pace, which has continued on from Perth.
"We seemed to be on track during the session, then we put our set of green tyres on and we were almost last, so I don't know. It's not really making sense at the moment, so we'll keep doing what we do and working hard to fix it, but if you don't have any pace, you can't do anything.
Tomorrow's action kicks off with practice at 9:35am AEST, followed by two qualifying sessions and two 60km races. Click here to check the TV schedules.


Free and Open to the public, Team Sadek's is a non-profit and our mission is to help people begin, achieve and sustain a healthy lifestyle. A primary goal of ours is to show people just how easy this can be with a highly successful running program for beginning runners. We utilize a method developed by Kimberly Brennan, RN and Ultramarathoner called the Kimmy Shuffle. Team Sadek club members collectively have lost hundreds of pounds together. The Kimmy Shuffle running method breaks down the act of running making it easy and it is tailored to fit each person. The Kimmy Shuffle is taught and demonstrated at the beginning of every running clinic. Anybody can do this no matter their age, weight or level of ability (as long as your doctor has cleared you for physical activity like walking).
Team Sadek's non-profit has taken the 'I'm Running Proud' youth program under its umbrella. The New Brunswick branch, 'New Brunswick Runs Proud,' is a partnership with New Brunswick Parks/Recreation and Rutgers Recreation that teaches empowerment/self-esteem, health and running via the Kimmy Shuffle to the next generation!!
WE WILL STAMP OUT OBESITY!!! See you soon!!
We will meet at the pavilion area. Park in designated areas.


text:
Laponci, Lapi, Saami, Sámi su narod koji živi na sjeveru Norveške, Švedske, Finske i Rusije.

Njih oko 70.000, raštrkani su na površini od oko milijun i sto tisuća četvornih kilometara (20 puta veća površina od Hrvatske). U Norveškoj ih živi oko 40.000, u Švedskoj oko 20.000, u Finskoj oko 7500 i u Rusiji (na poluotoku Koli) oko 2500.

Narod ima dugu povijest, bogatu narodnu baštinu i živi na specifičan način.
Sam narod naziva sebe Saami, dok ime Laponci smatraju malo pogrdnim.
Saami su podijeljeni u desetak narodnih skupština koje se dosta razlikuju po kulturno-povijesnim osobitostima, jeziku i načinu života. Neke skupine su sačuvale do danas narodne običaje svojih predaka.

Na sjevernim prostranstvma ruskog poluotoka Kole te manjim dijelom na sjeveroistoku Finske i Norveške žive tri narodne skupine Saamija. Na krajnjem sjeveroistoku Kole nalaze se terski Saami - to je malobrojna skupina koja izumire. Na Koli živi najviše kildinskih Saamija koji su u nekoliko sela uspjeli sačuvati stara obilježja i jezik. Čak imaju i nekoliko škola u kojima se uči i specifični kildinski jezik. Imaj karakteritična narodna kola. Zapadnije od njih živi skupina skoltskih Saamija. Njih je vrlo malo, ali im je očuvana narodna baština s ugroženim jezikom koji se uči u nekoliko škola (postoje čak i skoltski jezični udžbenici).

Na sjeveru Finske, Švedske i Norveške još žive tri laponske skupine. Najmalobrojniji su inarijski Saami koji održavaju živu narodnu tradiciju (glavno sjedište naselje Inari). Na samom sjeveru Norveške, uz fjordove, živi malobrojna skupina pomorskih Saamija. Na njihovu teritoriju nalazi se i znameniti sjeverni morski rt Nordkapp, a gotovo su ih asimilirali Norvežani. U sjevernoj Finskoj i dijelom Norveškoj živi jedna od najpoznatijih laponskih skupina davvijski Saami. Sačuvana je narodna tradicija i jezik, postoje saamijske škole, izdaju se knjige, časopisi i udžbenici, djeluju posebne radijske postaje i slično.

U sjevernoj i srednjoj Švedskoj i Norveškoj razlikujemo još najmanje četiri skupine Laponaca. Na sjeveru Švedske, u kraju gromadnog gorja s velikim rudnim bogatstvima, žive lulejski Saami. Oni su razmjeno dobro sačuvali svoj jezik, dobri su obrtnici (posebno drvodjelci), imaju razrađen obrazovni sustav, nakladničku i informativnu djelatnost i druge kulturne djelatnosti. Pitejski Saami nastanjuju izduženi prostor oko Botničkog zaljeva na Baltičkom moru (i velike luke Luleå), pa sve do norveških obala prema južnim Lofotima na Sjevernom moru. To je i dalje polunomadski narod koji polako izumire. Prema srednjoj Švedskoj i Norveškoj živi manja skupina umejskih Saamija koji su održali raznoliku narodnu tradiciju, ali im je jezik već posve ugrožen iako neke školske sate imaju na svom jeziku. Konačno, na granici Norveške i Švedske prema jugu živi skupina aarjelskih Saamija koji imaju svoje škole na norveškoj strani, a u Švedskoj su gotovo asimilirani. Izdaju i svoje publikacije, uz sudjelovanje u obrazovnom sustavu na vlastitom jeziku.

Organizacija
Saami su kao nacionalna skupina sve bolje organizirani, osobito u Norveškoj, Švedskoj i Finskoj. U tim zemljama, bez obzira na njihov broj, imaju i posebne parlamente koji su savjetodavna tijela i bore se za očuvanje autentične laponske kulture. Ti parlamenti artikuliraju zahtjeve Saamija, osobito u očuvanju i promicanju njihove povijesti, kulture, običaja, u čemu danas imaju veliku podršku većinskih naroda s kojima žive. Sjedište parlamenta Saamija je u sjevernonorveškom gradu Kautokeinu.

Početkom 1996. godine novi parlament Saamija (Saamediggi) konstituiran je zahvaljujući Parlamentarnom zakonu kao predstavničko tijelo Samija. Naslijedio je Saami Delegation (Delegaciju Saamija), poznatu i kao stari parlament Saamija uspostavljen 1973. godine. Izbori za parlament Saamija održavaju se svake četiri godine a posljednji su održani u rujnu 2017.

Gospodarstvo i turizam

Uz velika šumska bogatstva, raznolikost biljnog i životinjskog svijeta, laponsko područje privlači brojne turiste. Privlače ih, osim laponske kulture i običaja, predivni pejzaži s tisućama jezera, dugomjesečne noći i dani te polarna svjetlost. Narod Saami nekad je vjerovao da prelijepa zelena, plava i ljubičasta titrajuća svjetlost na noćnom nebu nastaje zbog vatrenog repa čarobne lisice koji ona otresa o snijeg i led, pa u atmosferu frcaju iskre.

Noći bez mraka

'Noć bez mraka' nazivaju magično - laponijsko ljeto. Sjevernije prema Sjevernom polu Sunce dulje ostaje na horizontu. Dana bez noći u ljetnim mjesecima može biti i 60-ak. Sunce nikad ne zalazi već samo dotakne horizont i opet se u svom sjaju izdiže polako.
Polarna noć ondje traje gotovo mjesec dana - od sredine prosinca do početka siječnja.
Prvi snijeg padne već u listopadu i zadržava se i do 6 mjeseci. Lumi je finska riječ za snijeg.

U mnogim se mjestima sjeverne Finske, Norveške i Švedske nalaze sportske zračne luke, plovi se Botničkim zaljevom, a na sjeveru oko rta Nordkappa sve do velike luke Murmansk na ruskoj Koli. Od Helsinkija se željeznicom uz Botnički zaljev putuje do grada Bormija, od kojeg vode dobre ceste prema finskom i norveškom sjeveru. Na rubu južne Laponije u Finskoj nalazi se najveće gradsko središte sjeverne Finske i Saamija - Rovaniemi. Tu se nalazi i sveučilište se pet fakulteta i oko 10.000 studenata. Gaji se i laponski kultura i jezik, posebno okolnih davvijskih Saamija.

Malo sjevernije je, samo petnaestak kilometara od Rovaniemija, malo selo Napapiiri, poznato kao sjedište Djeda Božićnjaka, a godišnje ga posjeti više od pola milijuna turista. Dalje na sjeveru Finske poznato je laponsko sjedište Inari, a na norveškoj strani Karasjok, Lakselv, Porsanger i velika sjeverna zračna luka Alta.

Uz ostala prirodna bogatstva, osobito valja naglasiti važnost rudarstva, posebno u starom gorju srednje i sjeverne Švedske. Upravo kroz laponsku zemlju, od švedske luke Luleå u Botničkom zaljevu, pa sve do norveške luke Narvik u Sjevernome moru, sagrađena je transverzalna nordijska željeznička pruga. Njezina osnovna namjena bila je prijevoz elikih količina željezne (i drugih) rude iz brojnih sjevernošvedskih rudnika. Tu se razvila golema rudarska djelatnost, praćena i razvojem metalurgije i proizvodnjom vrsnog švedskog čelika. Glavna središta su u starima laponskim naseljima Gallivare i Kiruna te u njihovoj okolici. U najnovije vrijeme važnost tih rudokopa i metalurgije znatno je opala.

Sobovi i psi Haskiji

Psi i sobovi vrlo su korisni u sjevernim predjelima, gdje mogu vući sanjke s ljudima ili teretom, a također su popularne utrke sobovskih i haskijskih zaprega. Sobovi mogu biti bijeli, tamnosivi ili šareni i napola su pripitomljene životinje. Rogovi im služe kako bi se obranili od grabežljivaca ili u međusobnoj borbi za ženke.

Pečeni sob u pivu 'kralj' je mesa u Laponiji. Zatim je poznati 'poroburger', zapravo hamburger od sobovog mesa.

Haskiji su psi posebno uzgojeni za preživljavanje u polarnim uvjetima. Zahvaljujući dvostrukom gustom krznu, najbolje se osjećaju na - 20 Celzijeva stupnja, no bez problema izdrže i -50 Celzijeva stupnja. Nervozni su samo kad im je dosadno, kad se ne kreću dovoljno. Iznimno su inteligentni, samostalni, ali i samovoljni. Haskiji obožavaju snijeg i trčanje u zaprezi. Postoje dvije vrste haskija - krupniji sibirski i malo manji, aljaski. I jedni i drugi imaju plave ili smeđe oči, a 20 posto ih ima jedno plavo, a drugo smeđe oko. Neki pretpostavljaju da je ta pasmina vučje krvi.
Farma haskija u mjestu Kapalamaki, nedaleko od Rovaniemija, ima cca 160 sibirskih i aljaskih haskija.

Kultura
Koliko je stara pisana laponska kultura dovoljno govori i podatak da se najstariji sačuvani rječnik Saamija očuvao iz 1557., a prva knjiga tiskana na laponskom jeziku potječe iz 1619. godine.

Danas se razvila specifična književnost na dijalektima laponskog jezika, posebno u Finskoj, sjevernoj Švedskoj i Norveškoj te ponešto na ruskoj Koli. Svi krajevi u kojima žive Laponci bilježe opadanje gospodarskih aktivnosti, iseljavanje i starenje stanovništva.
Pripadnika naroda polarnog svjetla sve je manje.

Sami su se oduvijek naseljavali na velika područja i bavili su se pretežno lovom i ribolovom. Obitelji su imale veliko područje za lov oko svoje naseobine. Veze s drugim ljudima bile su rijetke iako su imali smisla za društveni način razmišljanja kada se radilo o podjeli područja za lov među obiteljima. Ta raštrkanost Sama vjerojatno je najveći razlog što ne postoji jedna Sami kultura i jedan jezik već više njih. Kulture su bile formirane kako pod utjecajem različite okoline i životnih uvjeta, tako i zbog utjecaja ostalih kultura. U Švedskoj i Norveškoj to je bila germanska kultura, u Finskoj finska, a na poluotoku Kola ruska i karelska kultura. Tako danas razlikujemo sljedeće osnovne kulture Sama.

Šumski Sami
Ovoj skupini pripada većina švedskih i finskih Sama. Oni žive u šumi pretežno od ribolova, iako je i lov važan. Obitelji su formirale laponska sela ('siida') najčešće uz neku veliku rijeku. Veličina siida varirala je od par do 20-30 obitelji. Slivovi rijeka su bili prirodne granice tih sela. Bilo je uobičajeno imati i par sjevernih jelena zbog prijevoza i krzna, koje je važan materijal za oblačenje.

Posebna skupina šumskih Sama su Sami sjeverno od jezera Inari, jer se njihov jezik bitno razlikuje od jezika ostalih šumskih Sama. To je najzapadniji dijalekt istočnih sami jezika.

Planinski Sami

Žive u planinama između Švedske i Norveške i u brdovitim krajevima sjeverno od toga, gdje čuvaju svoja stada.Sjeverni jeleni su najvažniji dio njihove ekonomije. Taj način nomadske kulture je jedinstven u Europi. Iako je star samo 100-tinjak godina, to je najtipičniji oblik Sami kulture. Oni se također bave i ribolovom. Važnost sjevernih jelena u Sami kulturi očituje se u činjenici da postoji oko 400 riječi za njih ovisno o dobi, spolu, boji, obliku...

Jedna posebna skupina planinskih Sama su riječni Sami koji žive oko rijeke Tana. Nekada su živjeli samo od ulova lososa, no danas se bave i agrikulturom i uzgajanjem domaćih životinja, pa imaju stalne nastambe.

Morski Sami

Morski Sami žive na sjeveru Norveške, kod Arktičkog mora. Na njih su snažno utjecali stanovnici Norveške i Finske. Ta polunomadska kultura živi od lova zimi i ribolova ljeti.

Sami poluotoka Kola
Sami koji žive na poluotoku Kola su autohtono stanovništvo tog područja. Ima ih oko 2000. Žive od uzgoja sjevernih jelena i ribolova.

Jezik

Kako postoji više Sami naroda, tako postoji i više Sami jezika. Međutim, svi Sami jezici spadaju pod ugro-finsku skupinu jezika, a najbliži su im baltofinski (finski i estonski).

Sami jezici najčešće se dijele na 9 dijalekata: južno samski, ume, pite, lule, sjeverno samski, enare, skolt, kildin i ter.

Govornici

Istočni Sami:
 Ter Sami : jako mala skupina - 500-tinjak govornika, na granici izumiranja
 Kildin Sami: kulturno jaki, oko 100 govornika
 Skolt Sami: mala skupina – 500-tinjak govornika, ugroženi status jezika

Sjeverni Sami:
 Enare Sami: mala ali kulturno jaka skupina, 400-ak govornika
 Sjeverni ili Davvi Sami: najveća sami skupina, 30 000 govornika, jaka kultura
 Lule Sami: lokalno jak jezik, 2 000 govornika
 Pite Sami: jako malo govornika, na pragu izumiranja

Južni Sami:
 Ume Sami: također na pragu izumiranja
 Južni Sami ili Aarjel Sami: 500-tinjak govornika, dijalekt jak posebno u Norveškoj

Književnost
Tradicija usmene predaje većinom se odnosila na religiozne priče. Pismena djela na sami jeziku potječu iz 1619. Sami narodne pjesme su objavljene već 1673. godine u Schefferusovom djelu 'Lapponia'. 20. stoljeće je stoljeće rođenja sami literature na sami jeziku. Djelo J. Turija, 'Muittalus samid birra' ( 'Turi's book of Lappland') iz 1920. godine je vrlo poznato i sadrži pregršt tradicionalnog znanja. Danas se puno sami literature objavljuje u malim tiskarama u Norveškoj iako su mnogi autori rođenjem Finci, npr. Pedar Jalvi, H. A. Guttorm, P. Lukkari, Nils Aslak Valkeapää i Kirsti Paltto.

Postoji par vrsta tradicionalnog sami stila pjevanja: najpoznatiji je joik (jojk, juoigan). Joikanjem se pjevač duboko identificira s nekim ili nečim. Ovaj način pjevanja je jako osoban i dodiruje temu sami produhovljenosti. Zatim još postoje lavlu/laavloe stil i vuelie. Riječ joik često se nepravilno koristi za ova dva tipa pjevanja. Lavlu se pjeva s riječima, a vuelie je prepričavanje priče o nekoj osobi ili događaju. Sva tri stila pjevanja još postoje u sami društvu, a u zadnje vrijeme obnovio se interes među mladima i neki umjetnici su nanovo unijeli tradicionalni bubanj u pjesme. Sami su koristili jedan instrument koji se susreće u još nekim urođeničkim narodima: posebno oblikovano drvo ili rog, spojen na jednu žicu, tako zvani bullroarer. Zvuk se proizvodio vrteći ga oko glave. Također su koristili i frulu, a moguće je da su ju izmislili neovisno od drugih naroda. Sami glazbenici danas joikaju s pratnjom instrumenata, a često je njihovo sviranje začinjeno zapadnim utjecajem.

Najpoznatije primjere iz sjeverno samske glazbe nažalost možemo čuti od stranih izvođaća. (npr. Enigma, Jan Garbarek...) Zatim su poznati izvođači: Ailohas, Catarina Utsi, Annel Neiddat, i Marie Boine, koja je vrlo popularna lokalno, te Wimme Saari, bez kojeg ovaj popis ne bi bio potpun.

Neki od poznatijih albuma južnih sama su: Åarjeden Laavloeh 'Songs from the southern edge', Frode Fjellheimov album Mijjieh Vuelieh "Our songs" i Almetjh Tjööngkemeov album Vaajesh "The narratives".

Tradicija

Ljudi, priroda, vjerovanja, običaji i učenja su bili u središtu pažnje kada govorimo o joiku, pričama i pripovijetkama od daleke prošlosti pa sve do danas. Tradicionalne sami vizualne umjetnosti, povezane su sa starim crtežima na stijenama. Sami ornamenti, odjeća i zanati kombinirani su od tradicije i starih vjerovanja skandinavskih i istočno-europskih naroda iz doba vikinga, na taj način stvarajući jedinstvenu sami tradiciju. Kulturno nasljedstvo održano je jer su sami uvijek unosili originalnost u literaturu, umjetnost, zanate, glazbu i kazalište.  Tradicionalne sami narodne nošnje povezane su s određenim područjima. Nacionalna himna zove se 'Pjesma sami obitelji', napisao ju je Isak Saba 1906. Od 1986. sami imaju i vlastitu zastavu, koja ima boje narodnih nošnji a krugovi na njoj predstavljaju mjesec i sunce. Nacionalni dan sama je 6. veljače.

Mitologija i religija

Sami religija rodila se iz odnosa lovca, plijena i prirode koja ih je oboje okruživala. Vjerovali su da svaki predmet u prirodi ima dušu. Zbog toga se od svih očekuje da se mirno i tiho kreću po divljini, a vikanje je bilo zabranjeno.

Sami su vjerovali da osim materijalnog svijeta postoji i svijet podzemlja, gdje je sve potpunije nego u materijalnom svijetu i gdje mrtvi nastavljaju svoj život.

Svaka sila prirode imala je svog boga, a izvori preživljavanja bili su čuvani od bića iz spiritualnog svijeta koja su se mogla nagovoriti da im budu više sklona. Bogovi su se zvali u vrijeme gladi, bolesti ili lova, a njihovi glasnici bili su Noaidi (šamani). U svakodnevnom životu, Noaidi su bili kao i svi ostali članovi skupine, ali zbog njihove mogućnosti da dođu u trans i preuzmu duh životinja, bili su oslobođeni vremena i mjesta. Ljudi su im se obraćali za savjete jer su oni mogli predvidjeti budućnost. Ponekad su koristili 'magične bubnjeve'.

U svim sami kulturama poznate su priče o Stállu-u. Stállu je bio veliko, sažno, čovjekoliko stvorenje, koje živi u šumi i putuje sa psom rahkkaom. Ponekad je ukrao mladu sami djevojku i njome se ženio. Vjeruje se da su priče o Stálluu povezane s prvim susretima s Vikinzima.

Sieidde su bila drveća koja su imala ljudski oblik. Mogla su se napraviti ili naći u šumi i bila su štovana. To je također moglo biti i čudno oblikovano kamenje.

Kršćanski misionari nisu to razumjeli i smatrali su to sotonističkim. Sa sobom su donijeli stav da ljudska savjest može biti vođena samo jednim bogom. Sami su bili pokršteni na silu, a šamanizam je bio zabranjen.

Lars Levi Laestadius imao je snažan religiozni utjecaj na sami narod. Njegove misli su se raširile preko cijele sami regije iako ima dokaza prakticiranju originalne sami religije u kasnim 1940-ima. Karakterističnost za Laestadiusove ideje bila je centralna važnost župe. To je pomoglo u očuvanju sami kulture.

Velika većina sama danas pripada luteranskoj crkvi, dok Skolt sami pripadaju ortodoksnoj crkvi. U sami regiji luteranske ceremonije kao krštenje, vjenčanje i pogrebi mogu se izvoditi na sami jeziku. Također postoji i sami svećenik koji drži mise na sami jeziku.

Umjetnost i stari zanati

Sami jezici, tradicionalne narodne nošnje, zanati i glazba su prepoznatljivo različiti od svih ostalih etničkih skupina Skandinavije.

Ideja umjetnosti nije originalno nađena kod sami naroda, već je posuđena od europskih kultura u 19. stoljeću. Iako su sami dekorirali oruđe i predmete koje su koristili u svakodnevnom životu, slike i kipovi su drugačija stvar s obzirom na to da su to predmeti koji postoje samo zbog svoje ljepote ili vrijednosti. No to ne znači da je sami umjetnost samo kopija europskih umjetnosti, naprotiv, dosta umjetnosti se razvilo iz uzoraka i ideja sami kulture.

Svi sami obrtnici koriste se materijalima kao što su rogovi, drvo, koža, kosti, vezova od konca i perla, čipke i ostalih tekstilnih radova.

Sami obrtnička tradicija temelji se na kretanju lovaca po raznim lovačkim područjima. Oruđe i oružje trebalo je biti lagano za nositi. Neobrađeni materijali uzimani su direktno iz prirodne okoline: koža sjevernog jelena, rogovi jelena, drvo i korijenje. Koža sjevernih jelena koristila se i obrađena i neobrađena. Od drva se najčešće upotrebljavala arktička breza koja je jako čvrsta.

Kutije su najčešće bile korištene za pospremanje kućnih potrepština, a danas se koriste većinom za ukras. Posude su se često izrađivale od rogova sjevernih jelena. Noževi su se izrađivali od rogova i kože. Oštrice su ponekad od kovanog željeza. Štapovi su se također izrađivali od rogova i kože. Mogli su se koristiti za hodanje ili za kormilarenje sjevernim jelenima u vožnji na saonicama. Bubnjevi su se koristili kao ritam instrument na ceremonijama za kontaktiranje sa svijetom duša. Danas se slike ovakvih bubnjeva mogu vidjeti i kod djela modernih umjetnika.

Tijekom 20. stoljeća pojavilo se mnogo vještih umjetnika od kojih su neki razvili neki tradicionalni zanat, a neki se posvetili modernijim umjetničkim izražajima. John Savio i Nils Nilsson Skum poznati su po svojim istaknutim crtežima. Od suvremenih umjetnika vrijedi spomenuti Larsa Piraka koji se posvetio ručnim radovima.

Jedinstven način života, kultura i jezik koji su se uspjeli održati u sami regiji sve do danas dokazuju da su sami jedan jak narod koji ne podliježe lako utjecajima sa strane i snažno se bori da zadrži svoj stil života povezan s prirodom.

Vidi još
 Laponija

Finski narodi
Etničke grupe Finske
Etničke grupe Norveške
Etničke grupe Švedske
Etničke grupe Rusije

redpajama_set_name: RedPajamaWikipedia


text:
Aulotarache atrisignata är en fjärilsart som beskrevs av George Francis Hampson 1918. Aulotarache atrisignata ingår i släktet Aulotarache och familjen nattflyn. Inga underarter finns listade i Catalogue of Life.

Källor

Nattflyn
atrisignata


The seeds are neutral in temperature and sweet (pumpkin seeds are warm and also bitter). The combination is nourishing for the Yin, Blood, Qi and Jing (essence). The soy sauce is cool and salty, so helpful for those with Kidney deficiency. They make a great snack on their own or with dried or fresh fruit, or sprinkled on salads.
Put all of the seeds in an oven dish, pour over the olive oil and soy sauce and mix well. Spread the seeds out and put in the oven for 7-10 minutes until the pumpkin seeds have puffed up. Stir once or twice in this time to ensure the seeds are toasted evenly.
Allow to cool then store in a sealed jar.


text:
var http          = require('http');
var rtg           = require("url").parse(process.env.REDISTOGO_URL);
var client        = require("redis").createClient(rtg.port, rtg.hostname);
var requestHelper = require('request');
var express       = require('express');
var async         = require("async");
var app           = express();
var url           = require('url');
var bodyParser    = require("body-parser");
var RtmClient     = require('@slack/client').RtmClient;
var CLIENT_EVENTS = require('@slack/client').CLIENT_EVENTS;
var RTM_EVENTS    = require('@slack/client').RTM_EVENTS;

var rtm;
var listings;
var zipCode;
var totalPages;
var currentPage;
var requestID;

client.auth(rtg.auth.split(":")[1]);

var ACCESS_TOKEN = "";
var BOT_ACCESS_TOKEN = "";
var LAST_SEARCH_ID = "";

var emojis = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "arrow_right"];

client.get("ACCESS_TOKEN", function(err, reply) {
   // reply is null when the key is missing
   console.log("Before " + reply);
   ACCESS_TOKEN = reply;
});

console.log("ACCESS_TOKEN Set: " + ACCESS_TOKEN);

client.get("BOT_ACCESS_TOKEN", function(err, reply) {
    // reply is null when the key is missing
    console.log("Before " + reply);
    BOT_ACCESS_TOKEN = reply
    if (BOT_ACCESS_TOKEN) {
      rtm = new RtmClient(BOT_ACCESS_TOKEN, {logLevel: 'none'});
      rtm.start();

      rtm.on(RTM_EVENTS.REACTION_ADDED, function handleRtmReactionAdded(reaction) {
         console.log("Reaction added:", reaction);
         var REACTION_ID = reaction.item.channel + ":" + reaction.item.ts;
         var userId = reaction.user;
         var itemUserId = reaction.item_user
         if (REACTION_ID == LAST_SEARCH_ID) {
            console.log("We got a match!");
            var reactionValue = reaction.reaction;
            var contactInformationText = "";
            var option = -1;
            var nextPage = false
            switch (reactionValue) {
               case 'zero':
               console.log("Behind door number 0");
               option = 0;
               break;
               case 'one':
               console.log("Behind door number 1");
               option = 1;
               break;
               case 'two':
               console.log("Behind door number 2");
               option = 2;
               break;
               case 'three':
               console.log("Behind door number 3");
               option = 3;
               break;
               case 'four':
               console.log("Behind door number 4");
               option = 4;
               break;
               case 'five':
               console.log("Behind door number 5");
               option = 5;
               break;
               case 'six':
               console.log("Behind door number 6");
               option = 6;
               break;
               case 'seven':
               console.log("Behind door number 7");
               option = 7;
               break;
               case 'eight':
               console.log("Behind door number 8");
               option = 8;
               break;
               case 'nine':
               console.log("Behind door number 9");
               option = 9;
               break;
               case 'arrow_right':
               nextPage = true
               break;
               default:
               console.log("Didn't try to open anything");
               break;
            }

            if (userId != itemUserId) {
               console.log("Not from bot");
               if (option != -1 && nextPage == false) {
                  if(listings[option].mgtconame) {
                    contactInformationText = "Property Management: " + listings[option].mgtconame;
                 }
                 if(listings[option].formatted_mdot_phn) {
                  contactInformationText = contactInformationText + "\nPhone Number: " + listings[option].formatted_mdot_phn;
               }
               if(listings[option].seo_path) {
                 contactInformationText = contactInformationText + "\nWeb Page: " + "http://www.qa.apartmentguide.com" + listings[option].seo_path;
              }

              var postMessageParams = { token:BOT_ACCESS_TOKEN, channel:reaction.user, text: contactInformationText, as_user: true, parse: "full" };
              requestHelper({url:"https://slack.com/api/chat.postMessage", qs:postMessageParams}, function(err, response, body) {
               console.log("Finished sending postMessage");
            });
           } else if (nextPage) {
              parseThroughListings(requestID, zipCode, ++currentPage)
           }
        } else {
         console.log("Reaction from bot!");
         addNextReaction(option, reaction.item.channel, reaction.item.ts);
      }
   }
});
   }
});
console.log("BOT_ACCESS_TOKEN Set: " + BOT_ACCESS_TOKEN);

//Here we are configuring express to use body-parser as middle-ware.
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));

// views is directory for all template files
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

app.get('/', function(request, response) {
 response.render('pages/index');
});

app.get('/auth', function(request, response) {
   var url_parts = url.parse(request.url, true);
   if (request.query.code) {
      getKey(request.query.code)
   }
   response.render('pages/index');
});

app.listen(app.get('port'), function() {
 console.log('Node app is running on port', app.get('port'));
});

function getKey(code) {
 var headers = {
  'User-Agent':       'Super Agent/0.0.1',
  'Content-Type':     'application/x-www-form-urlencoded'
}

var options = {
  method: 'GET',
  url: 'https://slack.com/api/oauth.access',
  headers: headers,
  qs: {
   'client_id': '24999931810.25003305249',
   'client_secret': '2ef373aad7fac39fdb54aceeae307039',
   'code': code,
   'redirect_uri': 'https://call-me-maybe-rp.herokuapp.com/auth'
}
}

requestHelper(options, function (error, response, body) {
  if (!error && response.statusCode == 200) {
      // Print out the response body
      console.log("Body: " + body);
      var bodyJson = JSON.parse(body)
      if (bodyJson.hasOwnProperty("error")) {
         console.log("Beth is breaking stuff again....");
      } else {
         console.log("No worries, Johnny fixed it!");

         console.log("BodyJSON Tokens " + JSON.stringify(bodyJson));

         ACCESS_TOKEN = bodyJson.access_token;
         BOT_ACCESS_TOKEN = bodyJson.bot.bot_access_token;
         console.log("AFTER - ACCESS_TOKEN: " + ACCESS_TOKEN + " " + "\nBOT_ACCESS_TOKEN: " + BOT_ACCESS_TOKEN)
         client.set("ACCESS_TOKEN", ACCESS_TOKEN, client.print);
         client.set("BOT_ACCESS_TOKEN", BOT_ACCESS_TOKEN, client.print);
         client.set(bodyJson.team_id, "{\"ACCESS_TOKEN\": \"" + ACCESS_TOKEN + "\", \"BOT_ACCESS_TOKEN\": \"" + BOT_ACCESS_TOKEN + "\"}", client.print);
      }

      console.log("Response: " + response);
   }
})
}

// app.get('/test', function(req, res) {
//    var properties = { "default": "this is a default key" };
//    console.log("Query Strings: ", req.query)
//    for (var property in req.query) {
// console.log("Processing ", property);
//       if (req.query.hasOwnProperty(property)) {
//          // do stuff
// console.log("Adding ", property);
//          properties[property] = req.query[property];
//       } else {
// console.log("Skipping ", property);
//       }
//    }
//
//    res.json(properties);
// });

app.get('/tokens', function(req, res) {
  var tokenString = "";
  client.get("ACCESS_TOKEN", function(err, reply) {
    tokenString += reply.toString();
        console.log(res.toString()); // => should be crazy token
        client.get("BOT_ACCESS_TOKEN", function(err, reply) {
         tokenString += " " + reply.toString();
            console.log(res.toString()); // => should be crazy token
            res.end("Result: " + tokenString);
         });
     });
})

function findUserGroupWithName(groupName, accessToken, callback) {
   var success = false;
   var userGroupObject = {
      token: accessToken
   };
   requestHelper({
      url: "https://slack.com/api/usergroups.list",
      qs: userGroupObject
   }, function(err, response, body) {
      if (err) {
         return callback(new Error("failed getting list of user groups:" + err.message))
      }

      var convertedBody = JSON.parse(body);
        console.log("Converted Body: " + JSON.stringify(convertedBody));
      var usergroups = convertedBody["usergroups"];
      console.log("userGroups: " + JSON.stringify(usergroups));

      for (var i = 0; i < usergroups.length; i++) {
         var group = usergroups[i];
         console.log("group name: " + groupName);
         console.log("group.handle: " + group.handle);
         if (groupName == group.handle) {
          console.log("Group name equals handle");
            callback(null, group, accessToken);
            success = true;
            return;
         }
      }

      if (success == false) {
         callback('Unable to find usergroup with name', null);
      }
   });
}

function getUsersInGroup(userGroup, accessToken, callback) {
   var getUsersParams = {
      token: accessToken,
      usergroup: userGroup.id
   };
   requestHelper({
      url: "https://slack.com/api/usergroups.users.list",
      qs: getUsersParams
   }, function(err, response, body) {
      callback(null, userGroup, accessToken, JSON.parse(body).users);
   });
}

function getPreferredChannelMessageHistory(userGroup,  accessToken, usersInGroup, callback) {
   var today8AM = new Date();
   today8AM.setHours(13);
   today8AM.setMinutes(0);
   today8AM.setSeconds(0);
   today8AM.setMilliseconds(0);

   var today1115AM = new Date();
   today1115AM.setHours(16);
   today1115AM.setMinutes(15);
   today1115AM.setMilliseconds(0);

   var prefChannels = userGroup.prefs.channels;

   var checkedInUserIds = [];

   async.map(prefChannels, function(preferredChannelId, callback) {
      var channelHistoryParams = {
         token: accessToken,
         channel: preferredChannelId,
         oldest: (today8AM.getTime() / 1000),
         latest: (today1115AM.getTime() / 1000)
      };
      requestHelper({
         url: "https://slack.com/api/channels.history",
         qs: channelHistoryParams
      }, function(err, response, body) {
         var messages = JSON.parse(body).messages;

         for (var i = 0; i < messages.length; i++) {
            var userID = messages[i].user;
            if (typeof userID == 'undefined') {
               console.log("Undefined username!!!\n" + JSON.stringify(messages[i]));
            } else if (checkedInUserIds.indexOf(userID) == -1 && userID != "USLACKBOT") {
               checkedInUserIds.push(userID);
            }
         }
         callback(null, checkedInUserIds, accessToken);
      });
   }, function(err, results) {
      if (err) {
         console.log('A preferred channel failed to process');
      } else {
         callback(null, checkedInUserIds, accessToken);
      }
   });
}

function getInfoForUsers(userIds, accessToken, callback) {

   var userNames = [];

   async.each(userIds, function(userId, callback) {

      if (userId == "USLACKBOT") {
         // Skip slackbot
         callback();
      } else {
         var userInfo = {
            token: accessToken,
            user: userId
         };
         requestHelper({
            url: "https://slack.com/api/users.info",
            qs: userInfo
         }, function(err, response, body) {
            if (err || JSON.parse(body).ok == false) {
               console.log("Invalid response for User ID: " + userId);
            } else {
               var name = JSON.parse(body).user.name;
               userNames.push(name);
               callback();
            }
         });
      }
   }, function(err) {
      if (err) {
         console.log('A user id failed to process');
      } else {
         callback(null, userNames);
      }
   });
}

function sendCheckedInUsersMessage(userId, botAccessToken, userNames) {
   var checkedInUsersMessage = "List of Users Who Have Checked In: \n";
   for (var i = 0; i < userNames.length; i++) {
      checkedInUsersMessage += userNames[i];
      if (i < (userNames.length - 1)) {
         checkedInUsersMessage += ", ";
      }
   }

   var postMessageParams = {
      token: botAccessToken,
      channel: userId,
      text: checkedInUsersMessage,
      as_user: true,
      parse: "full"
   };
   requestHelper({
      url: "https://slack.com/api/chat.postMessage",
      qs: postMessageParams
   }, function(err, response, body) {});
}

app.post('/checkins', function(req, res) {
   var requestBody = req.body;
   var userGroupName = req.body.text;
   console.log("req: " + JSON.stringify(req.body));
 getAccessToken(req.body.team_id, function(accessToken) {

   async.waterfall([
      async.apply(findUserGroupWithName, userGroupName, accessToken),
      getUsersInGroup,
      getPreferredChannelMessageHistory,
      getInfoForUsers
   ], function(err, result) {
      if (err) {
         console.error("Experienced an error: " + err);
      } else {
        getBotAccessToken(req.body.team_id, function(botAccessToken) {
         sendCheckedInUsersMessage(req.body.user_id, botAccessToken, result);
       });
      }
   });

   res.end();
 });
})

function parseThroughListings(id, zipCode, page) {
//send zip code to http://m.api.qa.apartmentguide.com/search?query=30092
var zipCodeObject = { query:zipCode, per_page: 10, page: page};
requestHelper({url:"http://m.api.qa.apartmentguide.com/search", qs:zipCodeObject}, function(err, response, body) {

   var responseBody = JSON.parse(body)

      //parse out first 10 listings
      listings = responseBody["listings"]
      console.log("Listings" + listings);

      //parse out each of listings' cty, st, baths, beds, adr, photo, prices, name

      var messageText = "Here are ten listings at " + zipCode + ":\n\n"
      for(var i = 0; i < listings.length; i++) {
         console.log("i: " + i);
         var index = listings[i]
         var individualListing = determineEmojiForOption(i) + ": "
         if(index.name) {
           individualListing = individualListing + index.name
        } else {
           individualListing = "This apartment "
        }

        individualListing = individualListing + " can be found "
        if(index.adr) {
           individualListing = individualListing + " at " +  index.adr
        }

        if (index.cty || index.st) {
           individualListing = individualListing + " in " + index.cty + ", " + index.st
        }

        individualListing = individualListing + "."

        if(index.beds) {
           individualListing = individualListing + " " + index.beds + " beds"
        }

        if(index.bhs) {
           individualListing = individualListing + " " + index.baths + " baths"
        }

        if(index.prices) {
           individualListing = individualListing + " available with prices starting at " + index.prices + "."
        }

        messageText = messageText + individualListing + "\n";
        console.log("Message Text: " + messageText);
     }

     messageText = messageText + "\n\n Please select from options 0 - " + (listings.length - 1) + " for Contact Information on that property.\n\n"
     messageText = messageText + "Please add the reaction :arrow_right: to go the next page of results.";

     var postMessageParams = { token:BOT_ACCESS_TOKEN, channel:id, text: messageText, as_user: true, parse: "full" };
     requestHelper({url:"https://slack.com/api/chat.postMessage", qs:postMessageParams}, function(err, response, body) {
       console.log("Finished sending postMessage");
       var responseBody = JSON.parse(body)
       console.log("responseBody.message: " + responseBody.message);
       LAST_SEARCH_ID = responseBody.channel + ":" + responseBody.message.ts;
       console.log("LAST_SEARCH_ID: " + LAST_SEARCH_ID);

       addNextReaction(-1, responseBody.channel, responseBody.message.ts);
    });
  });

}

function getBotAccessToken(teamID, callback) {
 client.get(teamID, function(err, reply) {
  console.log("Error, failed to get bot access token: " + err);
  console.log("reply: " + reply);

  var parsedJson = JSON.parse(reply)
  var json = JSON.stringify(parsedJson["BOT_ACCESS_TOKEN"]).replace(/"/g, "")
  console.log("token object: " + json);
  callback(json)
});
}

function getAccessToken(teamID, callback) {
 client.get(teamID, function(err, reply) {
  console.log("Error, failed to get access token: " + err);
  console.log("reply: " + reply);

  var parsedJson = JSON.parse(reply)
  var json = JSON.stringify(parsedJson["ACCESS_TOKEN"]).replace(/"/g, "")
  console.log("token object: " + json);
  callback(json)
});
}

app.post('/chuck', function(req, res) {
 var params = { exclude:"explicit"};
 var requestBody = req.body;
 console.log("req: " + JSON.stringify(req.body));
 console.log("req:: " + JSON.stringify(req.body.team_id));
 getBotAccessToken(req.body.team_id, function(botAccessToken) {

  requestHelper({url:"http://api.icndb.com/jokes/random", qs:params}, function(err, response, body) {
    console.log("ParsedBody: " + body);

  //req.body.user_id
  var parsedJson = JSON.parse(body);
  var messageText =  ":chuck: " + parsedJson.value.joke;
  var channelID = req.body.channel_id
  console.log("ChannelID: " + channelID);

  var postMessageParams = { token:botAccessToken, channel: channelID, text: messageText, as_user: true, parse: "full" };
  requestHelper({url:"https://slack.com/api/chat.postMessage", qs:postMessageParams}, function(err, response, body) {
   console.log("Finished sending chuck joke");
   res.end()
 });

});
})

});

app.post('/ag', function(req, res){
//given zip code, parse out zip code from request
zipCode = req.body.text
totalPages = req.body.total_pages
currentPage = 1
requestID = req.body.user_id
console.log("User ID: " + req.body.user_id)
console.log("ZipCode: " + zipCode);
console.log("totalPages: " + totalPages);

parseThroughListings(requestID, zipCode, currentPage)
res.end();
});

function addNextReaction(previousIndex, channel, timestamp) {
   console.log("Previous Index: " + previousIndex)
   var newIndex = ++previousIndex;
   console.log("New Index: " + newIndex);
   var reactionParams = { token:BOT_ACCESS_TOKEN, name:emojis[newIndex], channel:channel, timestamp:timestamp };
   requestHelper({url:"https://slack.com/api/reactions.add", qs:reactionParams}, function(err, response, body) {
      console.log("Should have added " + emojis[newIndex] + " reaction");
   });
}

function determineEmojiForOption(index) {
	switch(index) {
    case 0:
    return ":zero:"
    case 1:
    return ":one:"
    case 2:
    return ":two:"
    case 3:
    return ":three:"
    case 4:
    return ":four:"
    case 5:
    return ":five:"
    case 6:
    return ":six:"
    case 7:
    return ":seven:"
    case 8:
    return ":eight:"
    default:
    return ":nine:"
 }
}

app.post('/roulette',function(req,res){
   var request=JSON.stringify(req.body);
   console.log("request = "+request);

   console.log("roulette - ACCESS_TOKEN: " + ACCESS_TOKEN);
   var userGroupObject = { token:ACCESS_TOKEN };
   requestHelper({url:"https://slack.com/api/usergroups.list", qs:userGroupObject}, function(err, response, body) {
      var convertedBody = JSON.parse(body);

      console.log("converted body: " + JSON.stringify(convertedBody));
      console.log("usergroups: " + JSON.stringify(convertedBody["usergroups"]));

      var usergroups = convertedBody["usergroups"];
      for (var i = 0; i < usergroups.length; i++) {
         var group = usergroups[i];

         console.log("Comparing " + req.body.text + " to " + group["handle"]);

         if (req.body.text == group.handle) {
            console.log("The magic ID is: " + group.id);

            var blah = { token:ACCESS_TOKEN, usergroup:group.id };
            requestHelper({url:"https://slack.com/api/usergroups.users.list", qs:blah}, function(err, response, body) {
               var users = JSON.parse(body)["users"];
               var rand = users[Math.floor(Math.random() * users.length)];

               console.log("random Member id: ", rand);

               var userInfo = { token:ACCESS_TOKEN, user:rand };
               requestHelper({url:"https://slack.com/api/users.info", qs:userInfo}, function(err, response, body) {
                  var user = JSON.parse(body)["user"];
                  var userName = user["name"];

                  console.log("User Name: ", userName);

                  var postMessageParams = { token:BOT_ACCESS_TOKEN, channel:req.body.channel_id, text: "Bang! " + userName + " has been chosen", as_user: true };
                  requestHelper({url:"https://slack.com/api/chat.postMessage", qs:postMessageParams}, function(err, response, body) {
                     console.log("Finished sending postMessage");
                     res.end();
                  });
               });
            });
         } else {
            console.log("You suck!");
            if (req.body.text == "") {
               res.end("Please enter the roulette slash command via /roulette slackUserGroupName");
            } else {
               res.end(req.body.text + " does not appear to be a valid usergroup.")
            }
         }
      }
   })
});

//lunch route

//get channel command issued in
//get user id that issued command
//get user name that issued command
//send message to channel for id, "userName is going to lunch"
//set prescnese to away
app.post('/lunch', function(req, res){

var request = req.body;
console.log("Lunch request: " + JSON.stringify(req.body));

var channelID = request.channel_id;
console.log("CHANNEL ID: " + channelID);
var userID = request.user_id;
console.log("USER ID: " + userID);
console.log("Team id:: " + request.team_id);

var lunchMessage = res.text;
 getBotAccessToken(request.team_id, function(botAccessToken) {
console.log("Access token: " + botAccessToken);

   var postMessageParams = { token:botAccessToken, user: userID};
  requestHelper({url:"https://slack.com/api/users.info", qs:postMessageParams}, function(err, response, body) {
   console.log("response::: " + JSON.stringify(response));
   console.log("body::: " + JSON.stringify(body));

   var realName = JSON.parse(body).user.real_name;
   console.log("realName:: " + realName);
   if(!realName) {
      realName = JSON.parse(body).user.name;
      console.log("fall back name: " + realName);
   }

   if(!lunchMessage) {
    lunchMessage = realName + " is going to lunch.";
   }

   getAccessToken(request.team_id, function(accessToken) {
   var setPresenceParams = { token:accessToken, presence: "away" };
   requestHelper({url:"https://slack.com/api/users.setPresence", qs:setPresenceParams}, function(err, response, body) {
      console.log("Finished setting presence");
      console.log("prescence body: " + body);
            var postMessageParams = { token:botAccessToken, channel:channelID, text: lunchMessage, as_user: true };
                  requestHelper({url:"https://slack.com/api/chat.postMessage", qs:postMessageParams}, function(err, response, body) {
                     console.log("Finished sending postMessage for lunch");
                     res.end();

    });

   });
    });

});

});

});


NBA 2K11 apk android for ppsspp cheats rom cso free download working on mobile and pc,In NBA 2K11 for the Playstation Portable, players can experience the thrill of playing as Michael Jordan, or create the ultimate NBA player and guide his every career move. Players can also experience a redesigned Turbo System, updated rosters, additional signature styles for players, and much more.My Player – Create the ultimate NBA player and guide his every career move through the Summer Circuit, training camps and the ranks of the NBA on his quest for stardom.
Tutorial System – Take advantage of this step-by-step tutorial to learn both the basic and advanced moves in NBA 2K11. Using Michael Jordan as your player, go through each move on the court one at a time until you have mastered them all.
Redesigned Turbo System – Players' stamina and energy now determine both how fast they can run up the court and how long they can sustain their burst of speed.
Michael Jordan – Play NBA 2K11 as the greatest ever, Michael Jordan.
Updated Rosters – Capitalize on the latest off-season's big trades, free agency moves, and ratings adjustments.


text:
Q: Duplicate color indicator in CSS files in Visual Studio Code - how can I find out why? I have several extensions installed and now have 2 color indicators in front of every color in CSS files - one is more than sufficient ;-)
The first indicator comes from the extension "color highlight" - which does just what I want.
how can I know which extensions the second indicator is from? This is what it looks like with the second indicator.

Any Idea?
Thanks!

A: The simplest solution would be through the Extensions view to disable extensions
by order of pertinence until the icon disappears.
To temporarily disable an extension, click the gear button to the right of its entry,
globally or for the current Workspace.
Since you will be prompted to reload VS Code after disabling an extension,
it might be better to disable them in bunches.
For more information see
Disable an extension.


text:
« THE GOSPEL ACCORDING TO... PAUL MCCARTNEY | Main | 20 YEARS AGO TODAY... RADIOHEAD AT THE MANDELA HALL... AND MY PART IN THE STORY »
songs 10 & 11 EXIT & MOTHERS OF THE DISAPPEARED - U2'S JOSHUA TREE Performed And Surmised
photo: Alistair Hamill
Here's another of the songs that I have had to wrestle with for tonight. Exit is definitely Bono looking into the darkest parts of the dark of the world around him.
The lyrics were inspired by Norman Mailer's 1980 novel The Executioner's Song, which was based on the serial killer Gary Gilmore. Bono is looking into the world's darkness but linking it closely with preachers and religion.
Interestingly in the new live concerts the song is prefaced with a piece of a Western TV show from the 50s. It is about a guy called Trump who tells his town that he is going to build a wall to protect them all and how some are convinced by his ideas and others not so sure. It hasn't been dubbed or edited apparently. The truth is stranger than fiction!
The song is another about building and burning down love that we had in Where The Streets Have No Name. In some ways it would be easy to use it to ask at what point a suicide bomber crosses the line between genuine religious belief to the psychosis of wanting to murder.
It is a strange use for the hands of love…
When I was figuring out who would play what in this evening of performances I was immediately drawn to Dave Thompson and Michael Blythman to cover this one. They had made a great job of Sunday Bloody Sunday at a previous U2 evening. I could hear Michael's saxophone filling the mood drama and Dave doing a great job with the vocal. Of course they did. Different but powerful in opening up the clash of darkness and light in Bono's intentions.
photo: Gary Burnett
I asked Caroline Orr to lead us into the last song. We had thought of reprising I Still Haven't Found What I'm Looking For to bring some light to rather bleak ending to the evening.
Caroline rightfully said that this was how U2 wanted the record to end so we should go with it…
BUT… Caroline did add "el pueblo vencerá" at the end. U2 added these words when they played the song in Chile and Argentina in 1998. The words mean "The people will overcome," which seemed a great way to end the evening.
Caroline shared how she has sung the song with some the actual mothers of the disappeared in El Salvador. She said that as she sang it in rehearsal, she realised that it could be about Mosul… Belfast… Aleppo… London… Manchester… showing I guess why U2 feel that these songs resonate 30 years after they were written, recorded and released!
MOTHERS OF THE DISAPPEARED
A powerful and poignant finale to an amazing evening. Peter Greer brought a tear jerking guitar motif to build an atmosphere of sorrow as Caroline emotionally sang for the mothers.
"In the wind we hear their laughter
In the rain we see their tears
Hear their heartbeat
We hear their heartbeat"
When she got the crowd to stand and sing "el pueblo vencerá" it was as though we were punching a hole into the night. Hairs on the back of the neck time!
Posted at 07:02 PM in U2's JOSHUA TREE: Performed and Surmised | Permalink


text:
Nausinoe lacustrinalis is a moth in the family Crambidae. It was described by George Hampson in 1913. It is found on the Solomon Islands.

References

Moths described in 1913
Spilomelinae