Marlene Moster, MD is an attending surgeon at Wills Eye Hospital and a Professor of Ophthalmology at Jefferson Medical College. She attended the Brooklyn College of SUNY, then attended medical school at SUNY Health Science Center. She completed the postgraduate ophthalmology residency at University of Pittsburgh Eye and Ear Hospital and followed this with the Glaucoma Fellowship at Wills Eye Hospital. As part of the Wills Eye Hospital Glaucoma Service, Dr. Moster has taught and trained hundreds of residents and clinical fellows.
At Ophthalmic Partners, Dr. Moster specializes in the medical management and surgical treatment of glaucoma. Her research interests include pharmacologic advancements in the treatment of glaucoma, as well as surgical interventions to minimize risk and improve outcomes of glaucoma surgery, with particular interest in newer devices. She has authored over 100 peer reviewed publications, many chapters in ophthalmology textbooks and has edited a book titled Anesthesia in Ophthalmology and has been invited to give many named lectures. Dr. Moster has served on the Glaucoma Clinical committee for ASCRS and the board of the American Glaucoma Society.
Dr. Moster has received recognition for her professional and philanthropic involvement in the field of ophthalmology, including an appreciation award from Eye Care America for her voluntary services in providing eye care to the public. She has been listed numerous times in both ""Best Doctors of America"" and ""Top Doctors"" in the Philadelphia area.


Financial Modeling training courses are all around the web and there has been lot written about learning Financial Modeling, however, most of the financial modeling courses are exactly the same. This goes beyond the usual gibberish and explore practical Financial Modeling as used by Investment Bankers and Research Analysts.In this Free Online Financial Modeling Training Course, I will take an example of Colgate Palmolive and will prepare a full integrated financial model from scratch.
Financial modeling is the task of building an abstract representation (a model) of a real world financial situation. This is a mathematical model designed to represent (a simplified version of) the performance of a financial asset or portfolio of a business, project, or any other investment. Financial modeling is a general term that means different things to different users; the reference usually relates either to accounting and corporate finance applications, or to quantitative finance applications.
In simple terms, financial modeling means forecasting the future of the company or an asset by way of an Excel Model that is easy to understand and perform scenario analysis. In the context of our discussion here, we will discuss Financial Modeling with respect to the forecasting of the future financials of the company. This free financial modeling training course will help you forecast the financial statements of the company i.e. Income Statement, Balance Sheet and Cash Flows. The excel model is also known as an Integrated Financial Statements Model.


text:
Q: How do you check if multiple rectangles overlap? Square[] testSquares = new Square[3];

public SquareTester (){
    for(int i = 0; i < testSquares.length; i++){
        testSquares[i] = new Square();
    }
}

public void paint(Graphics g) {
    for (int i = 0; i<testSquares.length; i++){
        testSquares[i].display(g);
    }

    if (testSquares[0].overlaps(testSquares[1])) {
        testSquares[0].changeColor(Color.YELLOW);
        testSquares[1].changeColor(Color.GREEN);
        g.setFont(new Font ("Comic Sans", Font.BOLD,35));
        g.drawString("HOLA, IT OVERLAPPED!", 0, 600);
    }
}

Above is the code that makes the array of squares, and changes color when two of them overlap. I want to change this code so that it changes color if any of the squares in the whole array are overlapping. (My overlaps method is done already. No need to code that.)

A: How about something like this:
public void paint(Graphics g) {

    boolean[] overlap = new boolean[testSquares.length];
    for (int i=0; i<testSquares.length; i++)
    {
        if(!overlap[i])
        {
            for (int j=i; j<testSquares.length; j++)
            {
                if(testSquares[i].overlaps(testSquares[j]))
                {
                    overlap[i] = overlap[j] = true;
                    break;
                }
            }
        }
    }

    // now use overlap to display squares as overlapped or not
}

redpajama_set_name: RedPajamaStackExchange


Below is a list of the registered users who have entered the most reviews on FanZone. These statistics include reviews for all sports. To view your total, click on the first letter of your surname.
Click on a letter to view the records.


Slow Teaching » Page 8 of 8 » Slow Teaching is a thoughtful exploration of how slowing down in all aspects of education can lead to improved student outcomes.
The (tough) Empathy Gap: beyond the data.
A week of experimenting with praise.
Building positive relationships: mutual respect.


text:
Learn about PTA
What is the PTA
The PTA in numbers
How to set up
Reasons to set up here
Where to set up
Get started at the PTA
International scope
Institutional co-operation
Advice on the creation of parks
Support for the internationalisation of companies
International visits
PTA International Network
Conservation unit
REWE at the PTA, a story of Malaga talent and German wisdom
The German retail giant opens a division at the PTA as a result of its experience working with students from Malaga
The arrival of REWE at the Andalusia Technology Park (PTA) proves the importance of investing in talent and gives true meaning to the term synergy.
REWE is an important chain of supermarkets in Germany with a growing international presence and that strongly invests in innovation. REWE Systems is the group's division that specialises in systems and development. Its global headquarters are based in Cologne and for over a year it has an operational centre at the PTA. The branch office can be found in the CITIC building, located in the lands that form part of the northern extension of the park. It is from here that the brand oversees the performance of all informatic systems within the REWE group.
How did REWE arrive to the PTA?
The story of REWE's arrival at the PTA begins 12 years ago with an exchange programme between the IES Campanillas and a German school in the city of Cologne. IES Campanillas is a school that is integrated in the compound of the Andalusia Technology Park and offers special Dual and Bilingual Professional Training. The dual training focuses its efforts on intensifying the relationship between training of and business demands for qualified professionals. A training method to which the PTA has committed various initiatives and that is centred on providing internships in companies during the length of the students' studies.
What if students on Malaga's IES Campanillas FP training were to make the most of their exchange programme in Cologne and undertake an internship in a German company such as REWE? This is precisely how the idea came about for the German multinational to set up camp at the PTA: its fantastic experience working with the students of the centre, recognising in them an unmistakable opportunity for the future of the company. All this young and qualified human capital with a strong capacity to learn deserved to be recognised and thus REWE Systems opened a branch in Malaga.
Rewe Systems' team in the PTA is constituted primarily of IES Campanillas alumni who have completed their higher professional training in web and app development. They now form a young team with a hunger for perpetual improvement and with a future within the company. From the PTA, they handle some of REWE's more important functional areas, such as systems development and operations, SAP, commercial systems, and central services
Visit the PTA
PTA Networks
Internation scope
Space locator
Conservation Entity

redpajama_set_name: RedPajamaCommonCrawl


text:
Rev. biol. trop vol.50 n.2 San José Jun. 2002
Disparity, decimation and the Cambrian "explosion": comparison of early
Cambrian and Present faunal communities with emphasis on velvet
worms (Onychophora)
Julián Monge-Nájera1 and Xianguang Hou2
The controversy about a Cambrian "explosion" of morphological disparity (followed by decimation), cladogenesis and fossilization is of central importance for the history of life. This paper revisits the controversy (with emphasis in onychophorans, which include emblematic organisms such as Hallucigenia), presents new data about the Chengjiang (Cambrian of China) faunal community and compares it and the Burgess Shale (Cambrian of Canada) with an ecologically similar but modern tropical marine site where onychophorans are absent, and with a modern neotropical terrestrial onychophoran community. Biovolume was estimated from material collected in Costa Rica and morphometric measurements were made on enlarged images of fossils. Cambrian tropical mudflats were characterized by the adaptive radiation of two contrasting groups: the vagile arthropods and the sessile poriferans. Arthropods were later replaced as the dominant benthic taxon by polychaetes. Vagility and the exoskeleton may explain the success of arthropods from the Cambrian to the modern marine and terrestrial communities, both in population and biovolume. Food ecological displacement was apparent in the B. Shale, but not in Chengjiang or the terrestrial community. When only hard parts were preserved, marine and terrestrial fossil deposits of tropical origin are even less representative than deposits produced by temperate taxa, Chengjiang being an exception. Nutrient limitations might explain why deposit feeding is less important in terrestrial onychophoran communities, where carnivory, scavenging and omnivory (associated with high motility and life over the substrate) became more important. Fossil morphometry supports the interpretation of "lobopod animals" as onychophorans, whose abundance in Chengjiang was equal to their abundance in modern communities. The extinction of marine onychophorans may reflect domination of the infaunal habitat by polychaetes. We conclude that (1) a mature ecological community structure was generalized during the Cambrian, and even biodiversity and equitability indices were surprisingly close to modern values; (2) the morphological diversity and geographic distribution of onychophorans indicate a significant pre-Cambrian evolutionary history which does not support the "explosion" hypothesis; (3) disparity among phyla was not as important as the explosion-decimation model predicts, but in the case of onychophorans, disparity within the phylum was greater than it is today and its reduction may have been associated with migration into the sediment when large predators evolved.
Disparity, decimation, "explosion", community ecology, feeding, habitat, fossil, Metazoa, evolution, Chengjiang, Burgess Shale, Cambrian, Recent, Costa Rica.
The evolution of the earliest metazoans has been the subject of debate in recent years, particularly regarding the speed of change and the diversity of general body plans (Hou and Bergström 1995, Fortey et al. 1996). Arguments have centered on how representative the fossil record is and the usefulness of techniques such as cladism and specially molecular analysis (Bergström 1986) whose varied results have shown it to be premature (Hou and Bergström 1995, Fortey et al. 1996, Abouheif et al. 1998, Valentine et al. 1999).
Early century attempts to place some difficult taxa into extant phyla were abandoned for the proposal of new phyla in the 1970's, but recent work with better fossil material resulted in another change of opinion, and now much material has been reassigned to known phyla (Hou and Bergström 1994, Hou et al. 1995, Fortey et al. 1996, Sprinkle and Collins 1998).
Limitations of the fossil record are less important when soft parts have been preserved (Hou 1999). "Lobopod" worms are among the most interesting animal groups found in Cambrian soft-bodied communities. For almost a century authors have disagreed about their taxonomic position, although recent studies have supported the hypothesis that they were early ancestors of onychophorans (Hou and Bergström 1995, Monge-Nájera 1995).
Modern onychophorans are part of terrestrial ecosystems in tropical and south temperate regions (Monge-Nájera 1994 a, b), but the Cambrian species were marine and basically tropical (Hou & Bergström 1995, Monge-Nájera 1995, 1996).
The only detailed quantitative synecological study of a fossil community with onychophorans described Burgess Shale (B. Shale) of southwest Canada (Briggs and Whittington 1985, Conway Morris 1986). However, at that time no appropriate tropical data were available for comparison. Conway Morris (1986) basically compared B. Shale with temperate communities and concluded that they were similar, particularly in the proportion of predators, in the presence of a few species that dominate numerically, and when compared with modern deep sea communities, in the occurrence of certain types of ancient taxa (Conway Morris 1986).
It is now known that there are differences between tropical and temperate mudflat communities (for example, tropical communities tend to have smaller populations of each taxon and also individuals with smaller bodies: Alongi 1989, Vargas 1996, J.A. Vargas 1999 pers, comm.) and a more meaningful comparison of the Cambrian tropical community requires information about modern tropical biotas because the best known Cambrian faunas were tropical (Hou et al. 1991, Monge-Nájera 1995).
In the last decade, the Chinese Chengjiang fauna mentioned only briefly in a 1985 review of Cambrian soft-bodied faunas or "lagerstätten" (Conway Morris 1985) has become a mayor source of significant discoveries, among them, six of the nine species of fossil onychophorans reliably described to date (Hou et al. 1991, Chen et al. 1995, Hou and Bergström 1997).
It includes marine fauna of approximately upper Atdabanian dating, about 10 million years older than B. Shale, thus providing a unique view of a fauna that lived shortly after the so called "Cambrian explosion", a characteristic of the greatest interest even if such an "explosion" never took place (Fortey et al. 1996).
The Chengjiang fauna occurs in the Yu'anshan Member of the Lower Cambrian Qiongzhusi Formation in Yunnan Province, but it was first discovered in Chengjiang County, about 50 km from Kunming, the capital of Yunnan Province (southeast China). The good preservation of Chengjiang specimens significantly improved the reconstruction of several taxa (e.g. Hou et al. 1991, Hou and Bergström 1994, Hou et al. 1995, Rigby and Hou 1995). Despite the geographic and chronological distance, both sites have some genera in common and were dominated by arthropods; differing mainly in the rarity of deuterostomes (a chordate and a crinoid have been found recently, H.X., pers. observ. 1999) and the lower proportion of trilobites in Chengjiang (Hou et al. 1991).
This fauna included a variety of invertebrates preserved in extraordinary detail (Jin et al. 1993, Hou and Bergström 1994, Hou et al. 1995, Rigby and Hou 1995). Some of these have been identified as onychophorans, also known as "lobopods", "lobopodians" or "oncopodophores" (Hou et al. 1995, Monge-Nájera 1995, Chen et al. 1995). However, the identification of these animals, with which most authors from temperate countries are not familiar, is often difficult (e.g. Rhebergen and Donovan 1994).
This paper presents new data concerning the Chengjiang community and compares it and B. Shale with a similar but modern tropical marine site where onychophorans are absent, and with a modern neotropical terrestrial onychophoran community. Terrestrial communities are expected to be different from marine communities, and their inclusion here requires justification: the Coronado terrestrial community was included because this paper stresses our common group of interest: onychophorans, which were marine in the Cambrian and are terrestrial in the Present. We wanted to examine how the assemblages in which they have evolved differed from the beginning of the phylum to the present. The walking speed of Cambrian onychophorans is estimated and new data about the effect of sediment flattening in living onychophorans as well as morphometry are used to support the hypothesis that the fossils represent onychophorans. Even though the emphasis is on onychophorans, the analysis and the conclusions refer to whole animal communities and thus are of interest to readers outside the field of onychophorology.
Community comparisons: The B. Shale reconstruction is from Conway Morris (1986). In all cases the trophic nucleus, i.e. the group of food consumers (in contrast with producers and decomposers) that are numerically dominant in the community was identified on the basis of individuals, for reliability (see Conway Morris 1986 for details about the trophic nucleus concept). For a modern marine mudflat community, Punta Morales (Puntarenas, Costa Rica) the graphs for feeding habit, trophic nucleus, number of genera and number of individuals are based on data in Vargas (1987, 1988a). The fossil communities developed at a greater depth than the P. Morales community, but still within the photic zone, so the overall patterns (precisely the type of patterns studied here) are not expected to differ greatly, the main probable difference being the greater physiological stress in the intertidal P. Morales habitat (J.A. Vargas 1999 pers. comm.). Standard ecological indices, biodiversity (H) and equitability (J) were calculated from number of specimens per taxon reported by Vargas (1987, 1988a), Conway Morris (1986) and Hou et al. (1991). Habitat, fossilization potential and body length information was provided by Vargas (1995 pers. comm., Table 1). Biovolume was estimated from the Vargas collections and from ten samples collected by the senior author in November 1992 with a cylindrical corer (core area 17.7 cm2) to a depth of 15 cm, preserved in 10 % buffered formalin in sea water stained with Rose Bengal and extracted under a dissection microscope at 10 X (same methods and place of Vargas 1987, 1988a,b). To measure biovolume the specimens were submerged (after allowing preservative to evaporate) in a pipette with a known volume of 70 % ethanol and measuring the difference in ml.
The modern terrestrial community data are from a random sampling of macrofauna in Cascajal de Coronado, San José, Costa Rica (83°57'37'' W, 10°00'18'' N, 1 775 m elevation, riparian forest and casttle grassland). Details about the field methods appear in Monge-Nájera and Alfaro 1995). Their biovolume was measured by the pipette method described above. This fauna is not included in the comparison at the genus level because it was not possible to obtain detailed taxonomic determinations. Vouchers are deposited in the Museo de Zoología, Universidad de Costa Rica.
For counts and morphometry, the Chengjiang fossils were photographed by the junior author (HX) and illustrated with a camera lucida; measurements were made on the resulting enlargements and photographs. To estimate walking speed of the fossil taxa, which generally were smaller and with less legs than living onychophorans, the maximum length and leg pair values known for fossils were used in a regression based on the lowest equivalent values for living species.
Comparison of Cambrian
onychophoran marine communities
with a similar modern marine community
Number of genera: In comparison with the modern community in which polychaetes have more genera than any other group (Fig. 1), both Cambrian communities were rich in genera of arthropods and poriferans. Chordates and molluscs also are more diverse today, while poriferans, priapulids, cnidarians and hyolithids are absent from the modern community. Biodiversity (H') and equitability (J) indices were H' = 2.094 and J = 0.46 in B. Shale (Conway Morris 1986) and H' = 1.10 and J = 0.57 in Chengjiang.
Fossilization potential: When considering the 35 species that represent the majority of specimens in the modern community, the fossilization potential (i.e. proportion of taxa with hard parts that are likely to fossilize) is high in 14 % (bivalve and gastropod molluscs), intermediate in 26 % (brachiopods, echinoderms, arthropods) and low in 60 % that have only soft parts (polychaetes, turbellarians, oligochaetes, hemichordates and nemerteans) (see Vargas 1987, 1988 b). If individuals rather than species are considered, only 4 % have a high fossilization potential (Vargas 1987, 1988 b). Thus, individuals are more likely to be underestimated than taxa.
Albeit the fossilization potential for B. Shale species was not reported (Conway Morris 1986), most genera were monospecific (Hou et al. 1991) so the value for high fossilization potential is close to 14 %, much lower than in Chengjiang (50 %) and the modern community (40 %). By contrast, only small fractions of individuals had a good probability of fossilization in B. Shale (2 %) and the modern community (4 %) against a very high proportion (90 %) in Chengjiang.
Individuals and biovolume by taxa: The Chengjiang population was more clearly dominated by arthropods (84 %) than the B. Shale population (61 %). Arthropods were dominant in the three communities (Fig. 2), but in contrast with the Cambrian, in the modern community polychaetes are the second group in importance instead of hemichordates. B. Shale biovolume was dominated by arthropods, with poriferans, echinoderms and priapulids following. Molluscs and polychaetes dominate biovolume in the modern marine community, followed by arthropods.
Habitat: The sessile infauna was more common in B. Shale than in Chengjiang. In number of individuals, the Cambrian communities were dominated by epifaunal vagrant taxa, while in comparison the modern community is rich in infaunal vagrant taxa, has less epifaunal vagrant species and lacks sessile groups (Fig. 3). The same applies to biovolume except for B. Shale where sessile epifauna dominated.
Feeding habit: Deposit feeders were numerically dominant in all communities, but in the modern community the number of suspension feeders decreased while that of carnivores-scavengers increased (Fig. 4). Two categories, omnivores and herbivores, were not identified in the Cambrian sites. Community biovolume was divided almost equally among all feeding habits in B. Shale, but deposit feeders dominate biovolume in the modern community.
Trophic nucleus: Arthropods dominated the trophic nucleus (as defined above) in all communities (Fig. 5). Hemichordates and priapulids are absent from the modern nucleus, in which polychaetes and turbellarids are important. In the modern community numeric domination is less extreme because two groups (Cyprideis and Bodotriinae) have similar proportions in the nucleus.
Body length: Species with small bodies dominated all communities numerically. The B. Shale community had more medium and large-bodied animals than Chengjiang and than the modern marine habitat (Fig. 6) (Note: for modern marine habitat: Cyprideis pacifica (Crustacea) is under 3 mm in length, Bodotriinae sp. 1 (Crustacea), Mediomastus californiensis (Polychaeta), Turbellaria sp. 1 and Oligochaeta sp. 1 are in the 3-19 mm range, Lumbrineris tetraura (Polychaeta) is in the 20-35 mm range and Paraprionospio pinnata (Polychaeta) is above 36 mm long).
onychophoran communities with a
modern terrestrial onychophoran community
Individuals and biovolume by taxa, and fossilization potential: The following trends are similar for number of individuals and volume: arthropods were numerically important in all communities, but the Oligochaeta are significant only in the modern terrestrial community where, even if not as outstanding in number of individuals, molluscs also represent a significant part of the biovolume (Table 2, Fig. 2). In this terrestrial community, the bodies are not as hard as the calcareous parts of a bivalve, but 75 % of individuals are intermediate in fossilization potential (mainly arthropods) and 25 % only have soft parts (e.g. hirudineans).
In the B. Shale community onychophorans were only 0.042 % of individuals (calculated from data in Whittington 1978 and Conway Morris 1986). In Chengjiang the value was 1 %, much closer to the modern terrestrial community where 0.83 % were onychophorans (Table 2).
Habitat: Epifaunal vagrant species were dominant in both communities (Table 2, Fig. 3). In comparison with the Cambrian, the modern terrestrial onychophoran community has slightly more infaunal vagrant individuals (sessile taxa are absent). In biovolume the sessile epifauna dominated the Cambrian and the vagrant epifauna the modern community.
Feeding habit: In comparison with the Cambrian, in the terrestrial community, carnivores-scavengers dominate and deposit feeders are less frequent and limited to oligochaetes (Table 2, Fig. 4). However, carnivores-scavengers occupy less biovolume. Some feeding categories that are important in the terrestrial community (including the dominant omnivores) were not identified in the Cambrian specimens.
Trophic nucleus: In both communities the trophic nucleus was dominated by arthropods (Table 2, Fig. 5). In the Cambrian, hemichordates and priapulids were also important. In the modern terrestrial community, oligochaetes are part of the nucleus which is dominated by arthropods (isopods).
Length: The terrestrial community is clearly dominated by small-bodied animals and has less large and medium sized specimens than the Cambrian community (Table 2, Fig. 6).
Fossil morphometry: The basic morphometric data from nine Microdictyon sinicum, five Cardiodityon catenulum, two Hallucigenia fortis and one Luolishania longicruris appear in Table 3. There is a positive but insignificant correlation between body length and number of leg pairs in fossil onychophoran species, and the correlation coefficient is within the range of extant species when males and females are considered independently (Fig. 7).
Speed and weight estimates for fossil species: In the living species for which data are available (Table 4), speed was more correlated with the number of legs (Rho = -0.62) than with length (Rho = -0.27) but neither is significant (p = 0.21 and p = 0.58 respectively; Fig. 8). Nevertheless, the speed-number of legs regression allowed a rough estimate of speed in fossil taxa (Table 4). When compared with the cladograms of Fig. 9, it suggests that earlier forms tended to move faster if the Monge-Nájera (1995) cladogram is correct, but there is no clear trend if the Hou and Bergström (1995) cladogram is used. The fossil species might have had individual weights ranging between 100 mg in the case of Luolishania longicruris (the weight of an Epiperipatus biolleyi of similar size, Monge-Nájera and Morera 1994) and more than 5000 mg in the case of the 20 cm long Xenusion (one of the largest onychophorans, Epiperipatus torquatus, can reach 15 cm and 4000 mg, Read 1985). A recently discovered and still undescribed Costa Rican species (Limón Province) measures 20 cm in length, equal to the fossil Xenusion.
Community comparisons: This analysis addresses only the general patterns because more detailed statistical enquires seem unwarranted for data from such different methodologies as fossil counts and observation of living organisms.
Number of genera: Genera are categories that reflect the opinions of taxonomists but we consider them to be rough estimates of biodiversity. They suggest that Cambrian tropical mudflats favored the adaptive radiation of two deeply different groups: the highly vagile and complex arthropods and the sessile and simpler poriferans. Why arthropods were so obviously replaced as dominant members of the community by polychaetes (with vagile and sessile taxa) deserves attention in the future.
Biodiversity and equitability in B. Shale were within the modern seasonal ranges of P. Morales (H' 1.61-3.36, J = 0.46-0.87; Vargas 1987, 1988 a, b), and in Chengjiang H' was low but J was also within the modern range. If B. Shale followed the modern community pattern (Vargas 1988 b) biodiversity was higher during a rainy season, when nutrient concentrations increased.
The advantages of rapid displacements and an exoskeleton may explain the success of arthropods from the Cambrian to the modern marine and terrestrial communities, both in population and biovolume. Onychophoran abundance is similar in modern terrestrial communities and in Chengjiang, possibly because onychophorans did not evolve tracheal valves to control water loss on land (Monge-Nájera and Lourenço 1995). The rarity of onychophorans in B. Shale stresses the difference between this site and Chengjiang.
Fossilization potential: The low proportion of species with hard parts in B. Shale (14 %, see Conway Morris 1986) indicates that similar communities for which only hard parts are known were greatly undersampled by fossilization, in contrast with Chengjiang where fossilization potential was extraordinarily high according to our results (50 % of taxa had hard body parts).
Less than 30 % of the modern marine macrobiota has a significant fossilization potential in temperate areas (see Conway Morris 1986). Our tropical data indicate lower values for modern marine species and individuals, and an even worse fossilization potential for terrestrial communities. Marine and terrestrial fossil deposits of tropical origin should be considered even less representative than deposits produced by temperate taxa.
Some early Cambrian taxa later lost hard parts, reducing fossilization potential (Conway Morris 1985); the same trend was noticed in onychophorans (Monge-Nájera 1995). The similarity of onychophoran mandibles with some microfossils labeled as "conodonts" has been mentioned (Monge-Nájera 1995) but remains to be studied in detail.
The reason why the B. Shale organisms soon stopped decomposing is unknown but anoxic or deep sea cold water conditions have been mentioned as a possibility (Conway Morris 1986), albeit the subject is controversial (Orr et al. 1998). However, the anoxia hypothesis is consistent with the discovery that tropical mudflats become anoxic with some periodicity (Alongi 1989) and makes the deep sea hypothesis of Conway Morris (1986) unnecessary. The detailed preservation of structures in both Cambrian communities (Hou and Bergström 1997) indicates that scavengers and bacteria, even if anaerobic bacteria were present as suggested by Briggs (1999) did not cause significant damage.
Individuals and biovolume by taxa: When individuals and biovolume are examined, the pattern becomes more complicated because molluscs and polychaetes respectively replace or approach arthropods as the dominant group.
Seasonality and density data are lacking for B. Shale, but considering its overall ecological similarity with the modern community, it may have been characterized by densities around 40 000 macroinvertebrates per square meter, reproductive patterns that ranged from seasonal peaks to a continuous reproductive effort, a relatively constant taxonomic composition and a population dynamics affected mainly the amount of organic matter that in turn reflected the proportion of silt, clay and shell fragments (see Vargas 1987, 1988 a, b, Alongi 1989).
Habitat: In contrast with the modern marine community the B. Shale fossils include epifaunal and nektobenthic species that Conway Morris (1986) suggested had been accidentally included during the deposit formation. However, it is improbable that their presence was accidental because the same trend was found in Chengjiang. Apparently natural selection favored a migration from the surface to life inside the sediment, maybe to escape from increasing predator pressure; the same can explain why sessile taxa began to disappear from the mudflats. Sponges and tunicates are sessile and exposed but have little edible tissue or are chemically protected (J.A. Vargas 1999 pers. comm.). To our knowledge, the literature does not deal with why onychophorans became extinct in marine habitats. These results suggest the working hypothesis that domination of the infaunal habitat by polychaetes deprived onychophorans of the burrowing habitat that they need (see Monge-Nájera et al. 1993, Monge-Nájera 1995). In that case, only the species that adapted to land -via the intertidal zone- survived (Monge-Nájera 1995).
Life on land resembles more closely the habitat distribution of Cambrian than of modern marine communities because the epifauna predominated in both. Again, predation may have played a role, but there are not enough data to evaluate the idea.
Feeding habits: Modern infaunal communities, in which energy and matter are exported more by larvae than by macropredators, are composed mainly of small opportunists that are surface deposit and suspension feeders (Alongi 1989) in food webs based on microalgal detritus and coastal vegetation debris (Vargas 1987). The Cambrian coastal communities seem to have been similar except for the input of terrestrial vegetation remains that were nonexistent at that time (the basis of the food web were strictly algae, Conway Morris 1986). Predator biovolume was high (52 %), but by number of individuals it was similar to recent communities. (Conway Morris 1986). The reduction of suspension feeding in the modern community apparently reflects the absence of sponges, while the absence of omnivores and herbivores in B. Shale may simply be the result of our ignorance about the diets of fossil species and not a real ecological condition.
A greater difficulty in finding and extracting nutrients from the soil than from inundated marine sediments might explain why deposit feeding is less important on land, where carnivory, scavenging and omnivory (associated with high motility and life over the substrate) became more important.
Trophic nucleus: Trophic nucleus (80 % of biomass, individuals necessarily in this case) were compact: a few but common species dominated, similar to modern temperate (Conway Morris 1986) and tropical (Vargas 1987) communities. In B. Shale, the numerically dominant species did not compete for food (Conway Morris 1986), but in Chengjiang and the modern community the dominant species shared feeding habits.
No adjacent species in trophic nucleus share a feeding habit, phytoplankton and benthic algae base of food web (Conway Morris 1986). Ecological displacement, apparent in B. Shale (Conway Morris 1986), lacks evidence in Chengjiang and the terrestrial community. The only quantitative study of the biota associated with modern onychophorans refers to Epiperipatus biolleyi in Coronado, Costa Rica and shows that a significant variety of taxa share feeding guilds (Monge-Nájera 1995).
Length, oncopods and speed: The evolution of larger body sizes may increase the probability of surviving predator attacks but obviously this line of defense was not developed in the mud flat or the terrestrial community. If fish became the main marine predators, burrowing may have been an easier strategy for invertebrates than trying to outcompete vertebrate size.
The fossil values of (1) body length - number of legs relationship and (2) body sizes that fit equivalent living species ranges lend further support to interpreting lobopods as onychophorans (Hou and Bergström 1995, Monge-Nájera 1995, Tait et al. 1995). A hypothetical relationship with tardigrades (e.g. Chen et al. 1995), favored by Fortey et al. (1996), is not supported by our morphometric analysis. A detailed cladistic analysis also failed to find a close relationship between onychophorans and tardigrades (Monge-Nájera 1995).
The inferred greater speed of earlier forms is in agreement with the general trend proposed earlier on morphological evidence later forms used burrowing rather than armoring and high speed for protection (Monge-Nájera et al. 1993, Monge-Nájera 1995).
Cladograms: Although the two available cladograms for fossil onychophorans (Fig. 9) are similar in showing Helenodora as derived ("advanced") and Luolishania as underived ("primitive") and in the associations Xenusion-Aysheaia and Microdictyon-Cardiodictyon, they also differ significantly, perhaps because they used different outgroups. In any case, species hypothesized to move faster because they had less legs tend to have developed scutes as well as large and strong spines. Monge-Nájera (1995) suggested that the evolution of life in microcaverns made long legs, scutes and spines a disadvantage and suggested that the top speed of fossil species was under the 6-34 cm/min of living E. biolleyi. Our speed estimates, based on measurements in air, are higher but under water the viscosity of the medium would result in reduced speed (Manton 1953).
Implications for the "explosion"-disparity-decimation model: Few recent papers seem to support the explosion model, among them Geyer (1998), Holland (1998) and Valentine et al. (1999) while most authors reject it on the basis of molecular (Bromham et al. 1998, Hoshiyama et al. 1998, Regier and Schultz 1998, Smith 1998) or morphological evidence (Wills 1998 a,b). The remarkably "modern" ecological organization of B. Shale was described years ago (Briggs and Whittington 1985, Conway Morris 1986), but that finding could not be generalized for lack of equivalent data from other Cambrian sites. Our results for Chengjiang not only suggest that a mature ecological community structure was generalized during the Cambrian, but even show that Cambrian biodiversity and equitability indices were surprisingly close to modern values. The fact that niches rather than organisms were similar is not unexpected because this is frequent in modern communities (Barrientos and Monge-Nájera 1995). However, this finding should not be exaggerated: there were also some important differences between the two Cambrian sites, which were distant both in time and geographically. Hypotheses about the scarcity of pre-Cambrian fossils often refer to lack of hard parts, small size and destruction of plankton fossils (Fortey et al. 1996). Our finding that even early Cambrian communities were complex and indicative of a long evolutionary history, is consistent with the three hypotheses -which are not mutually exclusive- but indicates a post-Cambrian loss of hard parts in onychophorans.
Strange fossils such as Hallucigenia, described as a leg-less cylindrical animal that anchored itself to the bottom with movable spines and fed with several tentacles that had individual "gullets" (Conway Morris 1977) were the basis for the idea of a rapid increase in morphological disparity, later decimated when only a few body organizations survived (Gould 1989). However, when additional material was found, it became clear that Hallucigenia was not a new phylum but an onychophoran: the spines were dorsal (defenses) and the "tentacles" were ventral legs (Hou et al. 1991). The same applies to other groups (Hou and Bergström 1995, Hou et al. 1995, Fortey et al. 1996) and weakens the disparity explosion-decimation model, which nevertheless was very useful as a motivation for additional work (the present paper being an example). Our results agree with recent morphospace disparity studies (Wills 1998 a,b). The taxonomic diversity, morphological disparity and geographic distribution of onychophorans (Hou and Bergström. 1995, Monge-Nájera 1995) indicate a significant pre-Cambrian evolutionary history that also fails to support the explosion model. However, even though disparity among phyla was not as important as the model predicts, at least for onychophorans morphological disparity within the phylum was greater than it is today (Monge-Nájera and Hou 2000). The reduction in onychophoran morphological disparity may have been associated with migration into the sediment when large predators evolved, because life in burrows can favor the evolution of simple, cylindrical body shapes (see Monge-Nájera 1995).
We thank José A. Vargas Z. for particularly valuable assistance and support; Bernal Morera, Harlan Dean and Sergio Salazar Vallejo for providing valuable literature and information; Zaidett Barrientos LL. and Fernando Barrientos LL. for field assistance; Karina Rodríguez, Juan C. Solano and V. Arias for laboratory assistance, Marisol Rodríguez for the illustrations; Alvaro Wille and bernal Morera for supporting the senior author's interest in onychophorans and D.E.G. Briggs (University of Bristol), Teresita Aguilar (Universidad de Costa Rica) and several anonymous reviewers, for comments that led us to significantly improve an earlier draft.
Con base en nuevos hallazgos paleontológicos hechos en el sur de China se analiza la controversia sobre la "explosión del Cámbrico" que supuestamente incluyó un gran aumento en la diversidad morfológica, con la aparición de muchos filos que posteriormente se extinguieron. Se compara las comunidades fósiles de Cheng-yiang (China) y Burgess Shale (Canadá) con una comunidad marina similar moderna (Punta Morales, Costa Rica) y con una comunidad terrestre moderna (Coronado, Costa Rica) que al igual que los dos depósitos fosilíferos incluye al filo Onychophora. Se concluye que (1) durante el Cámbrico las comunidades costeras tropicales eran similares a las modernas al punto de que incluso los índices de biodiversidad y equitabilidad eran semejantes a los actuales; (2) la diversidad morfológica y distribución geográfica de los onicóforos indican una larga historia evolutiva precámbrica que no apoya el modelo de la "explosión"; (3) las diferencias morfológicas entre filos no eran tan importantes como predice el modelo de "explosión seguida de extinción", pero en la caso de los onicóforos, la diversidad morfológica dentro del filo era mayor en el Cámbrico que en la actualidad, y su reducción puede haber estado asociada con la migración al interior del sedimento al evolucionar mayores depredadores.
Abouheif, E., R. Zardoya & A. Meyer. 1998. Limitations of metazoan 18S rRNA sequence data: Implications for reconstructing a phylogeny of the animal kingdom and inferring the reality of the Cambrian explosion. J. Molec. Evol. 47: 394-405. [ Links ]
Alongi, D.M. 1989. Ecology of tropical soft-bottom benthos: a review with emphasis on emerging concepts. Rev. Biol. Trop. 37 : 85-100. [ Links ]
Barrientos, Z. & J. Monge-Nájera. 1995. Geographic homogenity among insect communities in Neotropical paramos: a hypothesis test. Caldasia 18: 49-56. [ Links ]
Bergström, J. 1986. Metazoan evolution - a new model. Zool. Scripta 15 : 189-200. [ Links ]
Briggs, D.E.G. 1999. Molecular taphonomy of animal and plant cuticles: selective preservation and diagenesis. Phil. Trans. R. Soc. Lond. B 354: 7-17. [ Links ]
Briggs, D.E.G. & H.B. Whittington. 1985. Modes of life of arthropods from the Burguess Shale, British Columbia. Trans. Roy. Soc. Edinburg 76: 149-160. [ Links ]
Bromham, L., A. Rambaut, R. Fortey, A. Cooper & D. Penny. 1998. Testing the Cambrian explosion hypothesis by using a molecular dating technique. Proc. Nat. Acad. Sci. USA 95: 12386-12389. [ Links ]
Chen, J., G. Zhou & L. Ramsköld. 1995. A new Early Cambrian onychophoran-like animal, Paucipodia gen. nov., from the Chengjiang fauna, China. Trans. Roy. Soc. Edinburgh Earth Sci. 85: 275-282. [ Links ]
Conway Morris, S. 1977. A new metazoan from the Cambrian Burgess Shale, British Columbia. Palaeontology 20: 623-640. [ Links ]
Conway Morris, S.C. 1985. Cambrian Lagerstätten: their distribution and significance. Phil. Trans. R. Soc. Lond. B 311: 49-65. [ Links ]
Conway Morris, S.C. 1986. The community structure of the middle Cambrian phyllopod bed (Burgess Shale). Palaeontology 29: 423-467. [ Links ]
Fortey, R.A., D.E.G. Briggs & M.A. Wills. 1996. The Cambrian evolutionary 'explosion': decoupling cladogenesis from morphological disparity. Biol. J. Linn. Soc. London 57:13-33. [ Links ]
Geyer, G. 1998. The Cambrian explosion. Palaeont. Zeit. 72: 7-30. [ Links ]
Gould, S.J. 1989. Wonderful life. The Burgess Shale and the nature of history. W.W. Norton, New York. 347 p. [ Links ]
Holland P., W. H. 1998. Major transitions in animal evolution: A developmental genetic perspective. Am. Zool. 38: 829-842. [ Links ]
Hoshiyama, D., H. Suga, N. Iwabe, M. Koyanagi, N. Nikoh, K.I. Kuma, F. Matsuda, T. Honjo & T. Miyata. 1998. Sponge Pax cDNA related to Pax-2/5/8 and ancient gene duplications in the Pax family. J. Mol. Evol. 47: 640-648. [ Links ]
Hou, X. 1999. New rare bivalved arthropods from the Lower Cambrian Chengjiang fauna, Yunnan, China. J. Paleont. 73: 102-116. [ Links ]
Hou, X. & J. Bergström. 1994. Palaeoscolecid worms may be nematomorphs rather than annelids. Lethaia 27: 11-17. [ Links ]
Hou, X. & J. Bergström. 1995. Cambrian lobopodians - ancestors of extant onychophorans? Zool. J. Linn. Soc. London 114: 3-19. [ Links ]
Hou, X. & J. Bergström. 1997. Arthropods from the lower Cambrian Chengjiang fauna, southwest China. Scandinavian University Press, Oslo, Norway. 116 p. [ Links ]
Hou, X., J. Bergström & P. Ahlberg. 1995. Anomalocaris and other large animals in the Lower Cambrian Chengjiang fauna of southwest China. GFF 117: 163-183. [ Links ]
Hou, X., L. Ramsköld & J. Bergström. 1991. Composition and preservation of the Chengjiang fauna - a Lower Cambrian soft-bodied biota. Zool. Scripta 20 : 395-411. [ Links ]
Jin, Y., X. Hou & H. Wang. 1993. Lower Cambrian pediculate lingulids from Yunnan, China. J. Paleontol. 67 : 788-798. [ Links ]
Manton, S.M. 1953. Locomotory habits and the evolution of the larger arthropodan groups. Symposia of the Society for Experimental Biology, Evolution 7: 339-376. [ Links ]
Monge-Nájera, J. 1994a. Ecological Biogeography in the Phylum Onychophora. Biogeographica 70 : 111-123. [ Links ]
Monge-Nájera, J. 1994b. Reproductive trends, habitat type and body characteristics in velvet worms (Onychophora). Rev. Biol. Trop. 42 : 611-622. [ Links ]
Monge-Nájera, J. 1995. Phylogeny, biogeography and reproductive trends in the Onychophora. Zool. J. Linn. Soc. (London) 114: 21-60. [ Links ]
Monge-Nájera, J. 1996. Jurassic-Pliocene biogeography: testing a model with velvet worm (Onychophora) vicariance. Rev. Biol. Trop. 44: 159-175. [ Links ]
Monge-Nájera, J. & B. Morera. 1994. Morphological and physiological characteristics of two species of Epiperipatus from Costa Rica (Onychophora: Peripatidae). Rev. Biol. Trop. 42: 181-188. [ Links ]
Monge-Nájera, J. & J. P. Alfaro. 1995. Geographic variation of habitats in Costa Rican velvet worms (Onychophora: Peripatidae). Biogeographica 71: 97-108. [ Links ]
Monge-Nájera, J. & W. Lourenço. 1995. Biogeographic implications of evolutionary trends in onychophorans and scorpions. Biogeographica 71: 179-185. [ Links ]
Monge-Nájera, J. & X. Hou. 2000. Experimental taphonomy of velvet worms (Onychophora): implications for the Cambrian "explosion", disparity and decimation model. Rev. Biol. Trop. (in press.). [ Links ]
Monge-Nájera, J., Z. Barrientos & F. Aguilar. 1993. Behavior of Epiperipatus biolleyi (Onychophora: Peripatidae) under laboratory conditions. Rev. Biol. Trop. 41: 689-696. [ Links ]
Orr, P.J., D.E.G. Briggs & S.L. Kearns. 1998. Cambrian Burgess Shale animals replicated in clay minerals. Science 281: 1173-1175. [ Links ]
Read, V.M. St. J. 1985. The ecology of Macroperipatus torquatus (Kennel), with special reference to feeding and a taxonomic review. Ph.D. Dissertation, University of Wales, Bangor, Wales, United Kingdom. [ Links ]
Regier, J.C. & J.W. Schultz. 1998. Molecular phylogeny of arthropods and the significance of the Cambrian "explosion" for molecular systematics. Amer. Zool. 38: 918-928. [ Links ]
Rhebergen, F. & S.K. Donovan. 1994. A Lower Palaeozoic 'onychophoran' reinterpreted as a pelmatozoan (stalked echinoderm) column. Atlantic Geol. 30: 19-23. [ Links ]
Rigby, J.K. & X. Hou. 1995. Lower Cambrian demosponges and hexactinellid sponges from Yunnan, China. J. Paleontol. 69 : 1009-1019. [ Links ]
Smith, L.H. 1998. Asymmetry of early paleozoic trilobites. Lethaia 31: 99-112. [ Links ]
Sprinkle, J. & D. Collins. 1998. Revision of Echmatocrinus from the Middle Cambrian Burgess Shale of British Columbia. Lethaia 31: 269-282. [ Links ]
Tait, N.N., D.A. Briscoe & D.M. Rowell. 1995. Onychophora - ancient and modern radiations. Mem. Ass. Australas. Paleontols. 18: 21-30. [ Links ]
Valentine, J., D. Jablonski & H. E. Douglas. 1999. Fossils, molecules and embryos: New perspectives on the Cambrian explosion. Development 126: 851-859. [ Links ]
Vargas, J. A. 1987. Community structure of macrobenthos and the results of macropredator exclusion on a tropical intertidal mud flat. Rev. Biol. Trop. 36: 287-308. [ Links ]
Vargas, J. A. 1988a. The benthic community of an intertidal mud flat in the Gulf of Nicoya, Costa Rica. Description of the community. Rev. Biol. Trop. 35 : 299-316. [ Links ]
Vargas, J.A. 1988b. A survey of the meiofauna of an Eastern Tropical Pacific mud flat. Rev. Biol. Trop. 36: 541-544. [ Links ]
Vargas, J.A. 1996. Ecological dynamics of a tropical intertidal mudflat community, p. 355-371. In K.F. Nordstrom & C.T. Roman (eds.). Estuarine Shores: Evolution, Environments and Human Alterations. Wiley, New York. [ Links ]
Whittington, H.B. 1978. The lobopod animal Aysheaia pedunculata Walcott, Middle Cambrian, Burgess Shale, British Columbia. Phil. Trans. Roy. Soc., London B., 284: 165-197. [ Links ]
Wills, M.A. 1998a. Crustacean disparity through the Phanerozoic: Comparing morphological and stratigraphic data. Biol. J. Linn. Soc. 65: 455-500. [ Links ]
Wills, M.A. 1998b. Cambrian and recent disparity: The picture from priapulids. Paleobiology 24: 177-199. [ Links ]
1 Biología Tropical, Universidad de Costa Rica, San José, Costa Rica. Fax (506)2075550; rbt@biologia.ucr.ac.cr
2 Nanjing Institute of Geology and Palaeontology, Academia Sinica, Nanjing 210008, China; xghou@pub.jlonline.com
Editor: José A. Vargas
Received 29-IV-1999. Corrected 23-III-2000. Accepted 24-IV-2000.


text:
package com.vk.vktestapp;

import android.annotation.TargetApi;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Build;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class DBHelper extends SQLiteOpenHelper {

    public static final int DATABASE_VERSION = 3;
    public static final String DATABASE_NAME = "VK";
    public static final String TABLE_AUDIOS = "audioRecTable";
    public static final String KEY_ID = "id";
    public static final String KEY_AUDIO_ID = "audioId";
    public static final String KEY_OWNER_ID = "ownerId";
    public static final String KEY_ARTIST = "artist";
    public static final String KEY_TITLE = "title";
    public static final String KEY_DURATION = "duration";
    public static final String KEY_URL = "url";
    public static final String KEY_GENRE_ID = "genreId";
    public static final String KEY_IS_LOADED = "isLoaded";
    public static final String KEY_TYPE = "type";
    public static final String KEY_PATH_TO_SAVE = "pathToSave";
    public static final String KEY_TABLE_ROW_ID = "tableRowID";
    public static final String TABLE_CONFS = "confTable";
    public static final String KEY_INT_VALUE     = "intValue";
    public static final String KEY_STRING_VALUE  = "stringValue";
    public static final String KEY_BOOLEAN_VALUE = "booleanValue";
    public static final String KEY_NAME = "keyName";
    public static final int AUDIO_ROW_CNT = 12;

    public static final String KEY_AUDIO_FIND_CONF = "keyAudioFindConf";

    private Activity activity;
    String type;

    public String getStringConf(String key){
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_CONFS, new String[] {
                            KEY_ID, KEY_INT_VALUE, KEY_STRING_VALUE,
                        KEY_BOOLEAN_VALUE, KEY_NAME}, KEY_NAME + "=?",
                    new String[] { key }, null, null, null, null);
            if (cursor != null) {
                try {
                    cursor.moveToFirst();
                    String s = cursor.getString(2);
                    db.close();
                    return s;
                }catch (Exception e){
                    Log.e("DB_GET_VAL",e.getMessage());
                    db.close();
                    return "";
                }
            }else {
                Log.e("CONF_TABLE", "Не найдено записи с ключом: "+key);
                db.close();
                return "";
            }
    }
    public int getIntConf(String key){
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_CONFS, new String[] {
                        KEY_ID, KEY_INT_VALUE, KEY_STRING_VALUE,
                        KEY_BOOLEAN_VALUE, KEY_NAME}, KEY_NAME + "=?",
                new String[] { key }, null, null, null, null);
        if (cursor != null) {
            try {
                cursor.moveToFirst();
                int i = cursor.getInt(1);
                db.close();
                return i;
            }catch (Exception e){
                Log.e("DB_GET_VAL", e.getMessage());
                db.close();
                return 0;
            }
        }else {
            Log.e("CONF_TABLE","Не найдено записи с ключом: "+key);
            db.close();
            return 0;
        }
    }
    public void setStringConf(String name, String val){
        SQLiteDatabase db = this.getReadableDatabase();
        db.delete(TABLE_CONFS, KEY_NAME + " = ?", new String[]{name});
        // проверяем, нет ли уже записи с таким же audio_id
        try {
            ContentValues values = new ContentValues();
            values.put(DBHelper.KEY_NAME, name);
            values.put(DBHelper.KEY_STRING_VALUE, val);
            db.insert(TABLE_CONFS, null, values);
        }catch (SQLException e){
            Log.e("SQL DB", e.getMessage());
        }
        db.close();
    }
    public void setIntConf(String name, int val){
        SQLiteDatabase db = this.getReadableDatabase();
        db.delete(TABLE_CONFS, KEY_NAME + " = ?", new String[]{name});
        // проверяем, нет ли уже записи с таким же audio_id
        try {
            ContentValues values = new ContentValues();
            values.put(DBHelper.KEY_NAME, name);
            values.put(DBHelper.KEY_INT_VALUE, val);
            db.insert(TABLE_CONFS, null, values);
        }catch (SQLException e){
            Log.e("SQL DB", e.getMessage());
        }
        db.close();
    }
    public void setIsLoad(String type,int isLoad){
        SQLiteDatabase db = this.getReadableDatabase();
        String execStr = "UPDATE " + TABLE_AUDIOS + " SET " +
                KEY_IS_LOADED + " = "+isLoad+" WHERE "+ KEY_IS_LOADED +" <> 2 AND " + KEY_TYPE+" = '"+type+"'";
        Log.e("SQL", "isLoadQuery: " + execStr);
        try {
            db.execSQL(execStr);
        }catch (SQLException e){
            Log.d("SQL DB", e.getMessage());
        }
        db.close();
    }

    public void deleteAudioByType(String type){
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_AUDIOS, KEY_TYPE + " = ?", new String[]{type});
        db.close();
    }
    // коструктор от контекста
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // коструктор от активности
    public DBHelper(Activity activity) {
        super(activity, DATABASE_NAME, null, DATABASE_VERSION);
        this.activity = activity;
        this.type = AudioRec.AUDIO_MY;
        Log.e("SQL DB","вызван конструктор без указания типа аудиозаписи");
    }
    // конструктор от активности и типа аудио
    public DBHelper(Activity activity,String type) {
        super(activity, DATABASE_NAME, null, DATABASE_VERSION);
        this.activity = activity;
        this.type = type;
    }

    // создание таблицы
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_AUDIOS + "("
                + KEY_ID + " INTEGER PRIMARY KEY,"
                + KEY_AUDIO_ID + " INTEGER,"
                + KEY_OWNER_ID + " INTEGER,"
                + KEY_ARTIST + " TEXT,"
                + KEY_TITLE + " TEXT,"
                + KEY_DURATION + " INTEGER,"
                + KEY_URL + " TEXT,"
                + KEY_GENRE_ID + " INTEGER,"
                + KEY_IS_LOADED + " INTEGER,"
                + KEY_TYPE + " TEXT,"
                + KEY_PATH_TO_SAVE + " TEXT,"
                + KEY_TABLE_ROW_ID + " INTEGER" + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
        CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONFS + "("
                + KEY_ID + " INTEGER PRIMARY KEY,"
                + KEY_INT_VALUE + " INTEGER,"
                + KEY_STRING_VALUE + " TEXT,"
                + KEY_BOOLEAN_VALUE + " BOOLEAN,"
                + KEY_NAME + " TEXT )";
        db.execSQL(CREATE_CONTACTS_TABLE);

    }

    // обновление таблицы
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_AUDIOS);
        onCreate(db);
    }
    // добавляем аудиозапись
    public void addAudioRec(AudioRec audio) {
        SQLiteDatabase db = this.getWritableDatabase();
        // проверяем, нет ли уже записи с таким же audio_id
        try {
            String count = "SELECT count(*) FROM "+ TABLE_AUDIOS + " WHERE " + KEY_AUDIO_ID+"="+String.valueOf(audio.getAudioId());
            Cursor mcursor = db.rawQuery(count, null);
            mcursor.moveToFirst();
            int icount = mcursor.getInt(0);
            if (icount != 0) {
                Log.d("SQL DB", "Найдено " + icount + " записей с заданным audio_id");
            } else {
                Log.d("SQL DB", "Записей с заданным кол-во audio_id не найдено");
                // получаем значения из
                ContentValues values = audio.getDBValues();
                db.insert(TABLE_AUDIOS, null, values);
            }
            mcursor.close();
        }catch (SQLException e){
            Log.e("SQL DB", e.getMessage());
        }
        db.close();
    }

    // меняем значение isLoad на противоположное (нужно загружать/не нужно)
    public void inverseIsLoaded(String id){
        SQLiteDatabase db = this.getReadableDatabase();
        String execStr = "UPDATE " + TABLE_AUDIOS + " SET " +
                KEY_IS_LOADED + " = (" + KEY_IS_LOADED + "+1) % 2 WHERE id = "+id;
        Log.d("SQL DB",execStr);
        try {
            db.execSQL(execStr);
        }catch (SQLException e){
            Log.d("SQL DB", e.getMessage());
        }
        db.close();
    }

    public AudioRec getAudioRecById(int id) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_AUDIOS, new String[] {
                        KEY_ID, KEY_AUDIO_ID, KEY_OWNER_ID,
                        KEY_ARTIST, KEY_TITLE, KEY_DURATION,
                        KEY_URL, KEY_GENRE_ID, KEY_IS_LOADED,
                        KEY_TYPE,KEY_PATH_TO_SAVE,KEY_TABLE_ROW_ID}, KEY_ID + "=?",
                        new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor != null){
            cursor.moveToFirst();
        }
        AudioRec audio = new AudioRec(cursor);
        return audio;
    }

    public List<AudioRec> getAllAudioRecs() {
        List<AudioRec> audioList = new ArrayList<AudioRec>();
        String selectQuery = "SELECT  * FROM " + TABLE_AUDIOS;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                AudioRec audio =  new AudioRec(cursor);
                audioList.add(audio);
            } while (cursor.moveToNext());
        }
        db.close();
        return audioList;
    }

    public List<AudioRec> getAudio(String type) {
        List<AudioRec> audioList = new ArrayList<AudioRec>();
        String selectQuery = "SELECT  * FROM " + TABLE_AUDIOS+ " WHERE " + KEY_TYPE + " = '"+type+"'";

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                AudioRec audio =  new AudioRec(cursor);
                audioList.add(audio);
            } while (cursor.moveToNext());
        }
        cursor.close();
        db.close();
        return audioList;
    }

    void loadAudioByTablleRowIdDialog(int id,Activity activity){
        try {
            AudioRec audio = getAudioByTableRowID(id);
            audio.setActivity(activity);
            String savePath = audio.loadDialog();
            setAudioIsLoaded(audio.getAudioId(), savePath);
        }catch (Exception e){
            Log.d("AUDIO",e.getMessage());
        }
    }
    void loadAudioByTablleRowIdDialogAndPlay(int id,Activity activity){
        try {
            AudioRec audio = getAudioByTableRowID(id);
            audio.setActivity(activity);
            String savePath = audio.loadDialogAndPlay();
            setAudioIsLoaded(audio.getAudioId(), savePath);
        }catch (Exception e){
            Log.d("AUDIO",e.getMessage());
        }
    }

    public int updateAudioRec(AudioRec audio) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_ARTIST, audio.getArtist());
        values.put(KEY_TITLE, audio.getTitle());

        return db.update(TABLE_AUDIOS, values, KEY_ID + " = ?",
                new String[] { String.valueOf(audio.getID()) });
    }

    public void deleteAudioRec(AudioRec audio) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_AUDIOS, KEY_ID + " = ?", new String[]{String.valueOf(audio.getID())});
        db.close();
    }

    public void deleteAll() {
        // удаляем аудиозаписи
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_AUDIOS, null, null);
        // удаляем параметр предыдущего поиска
        db.delete(TABLE_CONFS, KEY_NAME + " = ?", new String[]{KEY_AUDIO_FIND_CONF});
        db.close();
        Toast.makeText(activity,"Аудиозаписи удалены",Toast.LENGTH_SHORT).show();
    }

    public int getAudioCount(String type) {
        String countQuery = "SELECT  * FROM " + TABLE_AUDIOS+ " WHERE " + KEY_TYPE + " = '"+type+"'";
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        int cnt = cursor.getCount();
        cursor.close();
        db.close();
        return cnt;
    }

    public int getCountMustLoad(){
        SQLiteDatabase db = this.getWritableDatabase();
        String count = "SELECT count(*) FROM "+ TABLE_AUDIOS + " WHERE " + KEY_IS_LOADED+"="+AudioRec.MUST_LOAD;
        Cursor mcursor = db.rawQuery(count, null);
        mcursor.moveToFirst();
        int cnt = mcursor.getInt(0);
        mcursor.close();
        db.close();
        return cnt;
    }

    public AudioRec getAudioByTableRowID(int id){
        Log.e("DB_TYPE",type);
        String selectQuery = "SELECT * FROM " + TABLE_AUDIOS+
                " WHERE "+ KEY_TABLE_ROW_ID+"="+id+" AND "+KEY_TYPE+"='"+type+"'";
        SQLiteDatabase db = this.getWritableDatabase();
        AudioRec audio = null;
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            audio = new AudioRec(cursor);
        }else {
            Log.e("SQL DB", "Не найдено ни одной записи на загрузку");
        }
        db.close();
        return audio;
    }

    public AudioRec getFirstAudioToLoad(){
        String selectQuery = "SELECT * FROM " + TABLE_AUDIOS+
                             " WHERE "+ KEY_IS_LOADED+"="+AudioRec.MUST_LOAD+
                             " LIMIT 1";
        Log.e("SQL","queyLoad: "+selectQuery);
        SQLiteDatabase db = this.getWritableDatabase();
        AudioRec audio = null;
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            audio = new AudioRec(cursor);
        }else {
            Log.e("SQL DB", "Не найдено ни одной записи на загрузку");
        }
        cursor.close();
        db.close();
        return audio;
    }
    void setAudioIsLoaded(int audioId,String savePath){
        SQLiteDatabase db = this.getReadableDatabase();
        String execStr = "UPDATE " + TABLE_AUDIOS + " SET " +
                KEY_IS_LOADED + " = 2, "+ KEY_PATH_TO_SAVE+" = '"+savePath+"' WHERE "+ KEY_AUDIO_ID +" = "+audioId;
        Log.e("SQL", "isLoadQuery: " + execStr);
        try {
            db.execSQL(execStr);
        }catch (SQLException e){
            Log.d("SQL DB", e.getMessage());
        }
        db.close();
    }
    void setAudioIsLoadedTR(int rowId,String savePath){
        SQLiteDatabase db = this.getReadableDatabase();
        String execStr = "UPDATE " + TABLE_AUDIOS + " SET " +
                KEY_IS_LOADED + " = 2, "+ KEY_PATH_TO_SAVE+" = '"+savePath+"' WHERE "+ KEY_TABLE_ROW_ID +" = "+rowId;
        Log.e("SQL", "isLoadQuery: " + execStr);
        try {
            db.execSQL(execStr);
        }catch (SQLException e){
            Log.d("SQL DB", e.getMessage());
        }
        db.close();
    }

    public int loadFirstAudio(ProgressBar firstBar, TextView barText){
        try {
            AudioRec audio = getFirstAudioToLoad();
            String savePath = audio.load(firstBar,barText);
            setAudioIsLoaded(audio.getAudioId(), savePath);
            return audio.getTableRowID();
        }catch (Exception e){
            return -1;
        }
    }

    public void setTableRowId(int rowId,int id){
        SQLiteDatabase db = this.getReadableDatabase();
        String execStr = "UPDATE " + TABLE_AUDIOS + " SET " +
                KEY_TABLE_ROW_ID + " = " + rowId + " WHERE "+ KEY_ID +" = "+id;
        Log.d("SQL DB",execStr);
        try {
            db.execSQL(execStr);
        }catch (SQLException e){
            Log.d("SQL DB", e.getMessage());
        }
        db.close();
    }

    // создаём i-ю строчку таблицы по audio
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
    private TableLayout addTableRow(TableLayout tableLayout,AudioRec audio, int i) {
        // строка таблицы
        TableRow tableRow = new TableRow(activity);
        // параметры строка таблицы
        tableRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
                                                           TableRow.LayoutParams.MATCH_PARENT));
        // получаем новый id для строки в таблице
        int id = View.generateViewId();
        setTableRowId(id, audio.getID());

        tableRow.setId(id);
        tableLayout.addView(tableRow, i);

        View.OnClickListener lsn = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TableRow tr = (TableRow) v.getParent();
                AudioRec audio = getAudioByTableRowID(tr.getId());
                audio.setActivity(activity);
                audio.downloadDialog();
            }
        };

        TextView text = new TextView(activity);
        text.setWidth(200);
        text.setPadding(5, 5, 5, 5);
        text.setText(audio.getID() + "");
        text.setTextSize(25);
        tableRow.addView(text, 0);

        Button btnPlay = new Button(activity);
        btnPlay.setText("Проиграть");
        btnPlay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TableRow tr = (TableRow) v.getParent();
                loadAudioByTablleRowIdDialogAndPlay(tr.getId(), activity);
            }
        });
        tableRow.addView(btnPlay, 1);

        text = new TextView(activity);
        text.setWidth(800);
        text.setPadding(5, 5, 5, 5);
        text.setText(audio.getTitle());
        text.setTextSize(25);
        text.setOnClickListener(lsn);
        tableRow.addView(text, 2);

        text = new TextView(activity);
        text.setWidth(800);
        text.setPadding(5, 5, 5, 5);
        text.setText(audio.getArtist());
        text.setTextSize(25);
        text.setOnClickListener(lsn);
        tableRow.addView(text, 3);

        Button btn = new Button(activity);
        switch (audio.getIsLoaded()) {
            case AudioRec.DONT_LOAD:
                btn.setText("Не загружать");
                btn.setTextColor(0xFFFF0000);
                break;
            case AudioRec.MUST_LOAD:
                btn.setText("Загружать");
                btn.setTextColor(0xFF0000FF);
                break;
            case AudioRec.IS_LOAD:
                btn.setText("Загружено");
                btn.setTextColor(0xFF00FF00);
                break;
        }
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TableRow tr = (TableRow) v.getParent();
                TextView tw = (TextView) tr.getChildAt(1);
                inverseIsLoaded((String) tw.getText());
                Button btn = (Button) tr.getChildAt(4);
                switch ((String) btn.getText()) {
                    case "Загружать":
                        btn.setText("Не загружать");
                        btn.setTextColor(0xFFFF0000);
                        break;
                    case "Не загружать":
                        btn.setText("Загружать");
                        btn.setTextColor(0xFF0000FF);
                        break;
                    case "Загружено":
                        Toast.makeText(activity, "Хотим удалить загруженное", Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        });
        tableRow.addView(btn, 4);
        return  tableLayout;
    }
    // получить список аудиозаписей по номеру страницы
    List<AudioRec> getAudiosByPos(int pos,String type){
        List<AudioRec> audioList = getAudio(type);
        List<AudioRec> curAudioList = new ArrayList<AudioRec>();
        int size = audioList.size();
        if((pos+1)*AUDIO_ROW_CNT<size)
            for(int i=0;i<AUDIO_ROW_CNT;i++)
                curAudioList.add(audioList.get(i+pos*AUDIO_ROW_CNT));
        else
            for(int i=pos*AUDIO_ROW_CNT;i<size;i++)
                curAudioList.add(audioList.get(i));
        return curAudioList;
    }
    // создаём страницу по списку аудиозаписей
    View getAudioPage(List<AudioRec> audios){
        // создаем LayoutParams
        TableLayout tableLayout = new TableLayout(activity);
        TableLayout.LayoutParams tableLayoutParam = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
                                                                                TableLayout.LayoutParams.MATCH_PARENT);
        tableLayout.setLayoutParams(tableLayoutParam);
        int i=0;
        for (AudioRec audio : audios)
            addTableRow(tableLayout, audio, i++);
        return tableLayout;
    }
    // создаём страницу по номеру и типу
    public View getPageByPos(int pos){
        List<AudioRec> audios = getAudiosByPos(pos,type);
        return getAudioPage(audios);
    }

}

redpajama_set_name: RedPajamaGithub


How might you re-order wagons in trains without lifting them off the tracks or prevent trains from colliding when you cannot see where they are? What does a train travelling through a station indicate about simultaneous events and how do railway junctions lead to problems in ethics? This talk combines several interesting problems in railway operation, within the context of real railway operations, showing surprising applications in computing they inspired.
Shunting yards present logistical problems arising from the marshalling of wagons. The UK's former largest yard near Sheffield was so complex it required a paper tape era computer to operate. However, in computing we find their structure used in diagrams for programming language grammars and a type of parsing algorithm known as the shunting yard algorithm which we'll see in operation.
The computer scientist Edsger Dijkstra devised many railway-themed computing ideas. Dijkstra's algorithm finds the shortest route between stations, a method independently discovered by early rail planners in the UK. Thanks to railway signalling, Dijkstra introduced semaphores into concurrent programming. We'll show how the concept works both for railways and concurrent systems and outline the historical context of rail accidents.
Railways introduced universal time. Einstein's celebrated thought experiment involving a moving train changed how we understood simultaneous events. Distributed systems rely on proper ordering of events. We'll explore these problems plus solutions.
The talk includes the Trolley Problem that first arose in philosophy but is now the subject of its own vibrant meme.


An update to the computer program behind the VA's "Blue Button" health record sharing system will make it more accessible to physicians outside the VA, according to a new announcement.
The Department of Veteran Affairs Blue Button program began in 2010, and is designed to let veterans download their health data or share it with non-VA providers. The Blue Button is part of a veteran's MyHealtheVet account.
Blue Button has two reports available -- one for the veteran, and one for physicians. While the data is the same in each report, the formatting is different.
Thanks to the new upgrade, the physician version of a veteran's health information now complies with the healthcare industry's standard open source software format.
Going forward, your non-VA doctor should be able to click one button and have all your health data download automatically into his or her computer system. That change should speed up record sharing and lowering the likelihood of duplicative or conflicting treatments.
Record sharing isn't automatic. To share your data with your non-VA provider, you must first sign a release of data authorization form to let the VA share your personal data.
Thankfully, you don't need to sign this form for every doctor, just one form authorizes VA to share your data with all authorized medical providers. You can complete this form on eBenefits, in person, or via the mail.
For details about the release of data, see VA's instructions.
Unsure of which veteran healthcare benefits you are entitled to? Keep up with all the changes and details by signing up for a free Military.com membership, which will send all the latest benefits straight to your inbox, as well as give you access to up-to-date benefit information and more.


Pope Francis last Tuesday appointed Archbishop Bernard A. Hebda, who had been serving as Bishop of Gaylord, in northern Michigan, as Coadjutor Archbishop of Newark.
As coadjutor, Archbishop Hebda "possesses the right of succession" in the Archdiocese of Newark, according to canon law. This means he will be automatically appointed Archbishop of Newark upon the retirement of the incumbent, Archbishop John J. Myers, who is now 72.
"Today's news that the Holy Father has named me the Coadjutor Archbishop of Newark brings with it the sadness of having to leave the Diocese of Gaylord," Archbishop Hebda wrote in a Sept. 24 letter to the people of the Diocese of Gaylord.
Archbishop Hebda was born in Pittsburgh in 1959, and studied international affairs at Harvard and received a law degree from Columbia University in 1983. He practiced law briefly, before entering seminary for the Diocese of Pittsburgh.
He attended Saint Paul Seminary in Pittsburgh and then the North American College in Rome, and was ordained a priest in 1989. The following year he completed a licentiate in canon law.
As a priest of the Pittsburgh diocese, Archbishop Hebda served in several parishes, in campus ministry, and in the tribunal. In 1996, he was appointed to work at the Holy See for the Pontifical Council for Legislative Texts, which interprets canon law; he served there until his 2009 appointment as Bishop of Gaylord.
Other appointments made by Pope Francis are: Bishop Raúl Martín to the Diocese of Santa Rosa, in Argentina; Bishop Pietro Fragnelli to the Diocese of Trapani, in Italy.
Also, the presidents and secretaries of the Pontifical Councils for the Laity and of Justice and Peace were confirmed in their positions.


My oh my but doesn't augmented reality stir up a hornet's nest of reactions!
On the surface, they're fun electronic games that have "escaped" into the real world, giving people the chase to go on the hunt for characters and treasures, alone or together, and get some exercise in the process too.
Previously only available to this in Finland, the latest update has seen the game, launched in July 2017, go truly global, part of a wave of new Moomin material which includes the upcoming animated series, Moominland.
You can download Moomin Move via Moomin.com or via Apple Store and Google Play.


A big HI to you all here @ i:Vibes !
Well, firstly it was a big hounor for me to be asked to write my diary for i:Vibes.
As you all may know, Science Deal started out as a project from me (Arjan Immerzeel) and my brother (John). You can check my biography at www.somaticsense.com.
DJ Precision, who also became part of the project. That all happened in september last year and we scored some nice licences on cd's by Sony and Ray Knox. And I red the first review here on i:Vibes, which was very pleasing !
Let's see........al of the good stuff that was happening at that time was overshadowed by the loss of our father in October last year. That was a very painfull time ofcourse and it took us several months before we could pick up the pieces of normal life.
Life began returning to normal in the last couple of months and slowly were getting there. In the meantime, we helped DJ Precision start with the set-up of he's own producing stuff. Gave him some tips and trix and in return we got to learn some trix from him that were very usefull.
DJ Precision and I even worked together on a remix for Jaron Inc - Nothing To Loose.
Our first collaboration and we hit it off really great ! Shame it hasen't got a release in the end, due to all kinds of reasons I won't bother you with.
I'm also a DJ for about some 12 years now under the name of DJ Moxa.
In October last year I gained a monthly residecy @ TranceAirWaves. So don't forget to check the chedule over there and see when i'll be playing my next set (21-6).
At the moment we're are testing a track called "Tarangyre" under the alias of "Moxa Masters". It has got some rave feedback so far, hopefully it can get a release soon.
Currently we're working on a follow-up for Science Deal - Dreams Of Passion.
Further more I did a DJ Moxa remix for a good friend of mine Ronald who is part of Dance Attaque. They already did some stuff for Purple Eye Entertainment.
This remix is finished and I will play it on my TranceAirWaves show at the end of this month (21-6). Can't give you a title yet.....sorry.
It's been fun writing it and I hope i'll have some good stuff for you the next time !


text:
Hansel i Gretel: Łowcy czarownic (ang. Hansel and Gretel: Witch Hunters) – amerykańsko-niemiecki film akcji z 2013 roku. Film nawiązuje do znanej baśni o Jasiu i Małgosi (po angielsku Hansel and Gretel). Polski tytuł alternatywny to Jaś i Małgosia: Łowcy czarownic.

Treść
Jaś i Małgosia (Hansel i Gretel), jako dzieci, cudem uszli z życiem w domku czarownicy. Od wydarzeń w chatce z piernika minęło piętnaście lat. Obecnie Jaś i Małgosia, już dorośli, są najlepszymi na świecie łowcami czarownic. Już wkrótce czeka ich polowanie, podczas którego ich umiejętności zostaną wystawione na najcięższą próbę.

Główne role
 Jeremy Renner - Jaś (Hansel)
 Cedric Eich - młody Jaś
 Gemma Arterton - Małgosia (Gretel)
 Alea Sophia Boudodimos - Młoda Małgosia
 Famke Janssen - Muriel
 Pihla Viitala - Mina
 Derek Mears - Edward
 Robin Atkin Downes - Edward (głos)
 Thomas Mann - Benjamin "Ben" Wosser
 Peter Stormare - szeryf Berringer
 Rainer Bock - burmistrz Englemann
 Bjørn Sundquist - Jackson
 Ingrid Bolsø Berdal - Rogata czarownica
 Joanna Kulig - Ruda czarownica
 Zoë Bell - Wysoka czarownica
 Monique Ganderton - Czarownica ze słodyczami
 Thomas Scharff - ojciec Jasia i Małgosi
 Kathrin Kühnel - Adrianna

Linki zewnętrzne

Amerykańskie filmy z gatunku horror
Amerykańskie filmy akcji
Amerykańskie filmy fantasy
Amerykańskie filmy z 2013 roku
Filmy wytwórni Metro-Goldwyn-Mayer
Niemieckie filmy z gatunku horror
Niemieckie filmy akcji
Niemieckie filmy fantasy
Niemieckie filmy z 2013 roku
MTV Films
Filmy oparte na baśni o Jasiu i Małgosi
Filmy w reżyserii Tommy'ego Wirkoli
Filmy z gatunku dark fantasy
Filmy fantastyczne z 2013 roku
Filmy kręcone w Bordeaux
Filmy o czarach

redpajama_set_name: RedPajamaWikipedia


Through our partners and subsidiaries, Reeves Construction Company is well-situated to offer design/build capabilities for our clients. Our reputation for on-time performance and exceptional work has been perfected over our nearly 60 years in the construction industry, completing transportation projects throughout Georgia and the Southeast.
Through our parent company, Colas, an internationally-respected construction corporation, and subsidiaries R.B. Baker Construction and Sloan Construction, Reeves Construction Company has evolved into a full-service company specializing in transportation construction and engineering services.
Our numerous facility locations and fleet of modern equipment guarantees the resources needed to complete any project, regardless of size or complexity. Our commitment to using full-time, local employees brings a guarantee of stability and commitment to every project.
R.B. Baker Construction Company leads the way in the design/build category for Reeves Construction. The company has worked closely with the Georgia Department of Transportation for more than 20 years, and was the recipient of the first design/build contract ever awarded by the GDOT back in 1999. Combined with the vast resources of Reeves Construction, the end result is the perfect combination of knowledge, experience, resources and proven results.


The Power Team at PowerTalk Seminars offers a unique content-rich, interactive, high value learning experience for the general public, small business owners, and entry-level supervisors.
In addition to our on-site small business and corporate training programs, we offer membership to our "PowerTalk Power Club" where members participate in high quality networking activities and enjoy quarterly PowerTalk "Power Lunch Programs," PowerTalk "Prime Time Dinner Programs," and our highly popular "Pizza, Pop, and Power Pal" Panel Discussions, Presentations, and Events.
In order to optimize your learning experience, each of our public and on-site Power Training Programs focuses on catering to small-sized seminar groups of just 10-30 participants max.
Come with friends, individually, or with your corporate teams. Join the "PowerTalk Power Club" - We offer a "one of a kind" fun learning experience that includes "Good Food, Good Friends, and Good Fun!"
"Developing leaders, achieving dreams, helping build empowered teams!"
To provide knowledge-based programs that educate, entertain, and engage our participants to improve their proficiency, professionalism, and performance.
Results-oriented businesses hire us to help their managers and aspiring managers develop the core skills necessary for teamwork, increased productivity, and improved sales.


The Flying Carpet (alternatively Magic Carpet) is a recurring item and mode of transportation in the Dragon Quest series. Using it, the hero's party can travel over land and sea shoals, but not over mountains or through forests. The carpet is used as an item to in order to ride it (unlike the ship).
In Dragon Quest V, it is located in Lofty Peak.
In Dragon Quest VII, it's given to The Party in La Bravoure after the Mermaid Moon is obtained.
The Flying Carpet is able to fly over land, swamps, deserts, and bodies of water. No random enemy encounters occur while riding the magic carpet. Since it can fly over the rocky shoals, the carpet is necessary to reach both the Stairway to Zenithia and the Neverglade.
The Flying Carpet is not able to traverse mountains or forests on the world map. This can be cumbersome around forested areas.
This page was last edited on 11 April 2018, at 21:03.


(i) When it is appropriate to enter into a conditional fee agreement in a road traffic case.
(ii) Conditional Fee Agreements themselves and recent challenges to their enforceability.
(iii) Additional liabilities and recent challenges.
(iv) CFA lite and the new legislative proposals.
(v) An update on costs generally.


I am still seeing many many many sites starting in Drupal 7 these days, but when I had the opportunity to provide a day of training at the inaugural TexasCamp, I knew what I had to do. I knew that many ppl would be showing up wanting to understand Site Building in the new world of Drupal 8. I also knew that the biggest game changer in D8 [IMO] is Configuration management. Therefore I HAD to cover that aspect of Drupal 8 and I had to do so WITHIN THE CONTEXT of Site Building.
This is not as far a departure from previous Drupal 7 trainings I have performed in dozens of camps, user groups, LinuxFests, and private clients. Where possible, I have always tried to bring in at least some element of DevOps into the training. With Drupal 8, there simply is no avoiding the topics of DevOps, multi-stage development, or call it what you will.
A Perfect pairing of Drupal 8 and Pantheon! I have always advocated that anyone testing Drupal 7 or Drupal 8 should whip up a quick, free, and easy Pantheon sandbox. For many years I have led many classrooms full of fresh minds through the process of building their first Drupal site on the Pantheon platform. Even though many attendees are beginners, they often come from companies who either have already invested a great deal into Drupal, or soon will. This is thanks largely to the "Ownership Society" that Drupal promotes. It will be exciting to see the response from my 1st full day of Drupal 8 training!


Learn how to create a total rewards package that appeals to your employees, makes sense for their jobs and encourages results.
It's the Manager gives CHROs and CEOs step-by-step instructions on how to create a culture of development within their organization. Gallup has learned that development is the most important part of a job for millennials, Gen Z and the workforce of the future. It's the Manager helps managers get the training and tools they need to become successful managers.
CHROs and CEOs must think about the right way to develop managers to create a culture of development for their employees. It's the Manager provides leaders with training, strengths-based development and the tools needed to train better managers.
To attract and hire top talent companies need to not only create a workplace tailored to today's workforce, but train and develop managers that will deliver on the company's brand promise from the job interview, to onboarding, to development and through the exit interview.
Learn how to handle the workforce issues of tomorrow like managing matrixed teams, remote workers, flex time, cultural diversity, millennials, Gen Z, AI and how technology will affect the workplace.
To be a better manager you first must stop acting like a boss and start thinking like a coach. Learn to become the kind of manager who focuses on developing the people in today's workforce.
It's the Manager equips your managers with 52 of Gallup's greatest discoveries from decades of research into the science of management.
"It's the Manager" gives human resource leaders access to Gallup's platform where managers can do surveys, developmental reviews, check the strengths and engagement of their employees and further their manager development and training.
Learn how to develop a culture where your employees believe in company values and perform better as a result.
Do Your Teams Own Their Engagement?
Leaders and managers, learn how to create shared ownership of employee engagement and performance.
Learn the three biggest mistakes companies make when introducing digital culture initiatives.
Discover why Elon Musk is successful and how you can be, too, with the four proven keys to becoming a great builder.


Today we learned how to connect to sql using work bench and command line mysql client. We created a simple table, and inserted a row.
It means you are running another instance of dev server. Stop that and rerun this one.
Click the ellipses (…) near button Share and then click Edit Group Settings. Scroll down to Web and Email address.
No need to have any likes or followers or days since created.
If you have a table with column that contains eg file names with extension and want to replace the extension of all those file names.


text:
NSF Awards $4 Million to the Northeast Big Data Innovation Hub
18 Jun, 2019 in Blog / News & Updates / Spokes by Katie Naum
The Hub Builds Data Science Partnerships to Address Societal Challenges
The Northeast Big Data Innovation Hub has been awarded a four year, $4 million grant from the National Science Foundation (NSF) to continue its work in building cross-sector data science partnerships that address societal challenges, spur economic development, and accelerate big data innovation. The Northeast Hub was launched in 2015 with a grant from the NSF. This second round of funding validates the efforts of the Hub to harness the data revolution for social impact.
Members of the BD Hubs community.
During its first three years of operations, the Northeast Hub built a network of more than 200 organizations throughout the Northeastern United States and beyond. Its activities fell under eight priority areas, ranging from data sharing to responsible data science. Initiatives have included collaborations across a number of application areas ─ for example, to develop the first-ever exposome data warehouse integrating environmental exposure and clinical data for large-scale health research ─ as well as efforts to develop resources helpful across application areas, such as a licensing model and ecosystem for data sharing.
René Bastón, executive director for the Northeast Hub, speaks at a 2016 Hub workshop.
"We're very excited to expand these activities," said René Bastón, the Hub's executive director. "For our next phase, we'll be coordinating projects that build on the insights we gained during our first three years ─ enhancing data science capacity for underserved institutions and emphasizing translational data science."
The Northeast Big Data Innovation Hub is one of four Big Data Regional Innovation Hubs, a national network of academic, industry, government, and nonprofit partners, supported by the NSF. Each of the four Hubs received additional funding for a total investment of $16 million.
"By catalyzing partnerships that integrate academic researchers into the fabric of communities across the U.S.," said Beth Plale, one of the National Science Foundation program directors managing the Big Data Hubs awards, "we can accelerate and deepen the impact of basic research on a range of societal issues."
The BD Hubs community at Jupytercon in 2017.
Under this new round of funding, the Northeast Hub will place an emphasis on mission driven projects that coordinate and stimulate translational data science. For example, the Hub will work with its stakeholders on aggregating and helping to develop best practices for responsible data science; creating frameworks for data fluency; fostering better management of data security and privacy; integrating health data from traditional and novel sources; improving education through big data; and reducing barriers for data sharing within and between different sectors.
As a new service to the community, each Big Data Hub will maintain a seed fund for translational data science as part of its project budget. This fund will provide grants to pilot early feasibility studies for innovative new solutions to grand challenges of importance to the region
The Northeast Hub will also continue to collaborate with its six Big Data Spokes, project collaborations that focus on topics of specific interest to its region. The most recent Big Data Spokes were launched in 2018 ─ a collaborative platform for computational social science, data-driven discovery and rational design in chemistry, and a series of community workshops addressing data integration of the ecological long tail.
Hosted by Columbia University's Data Science Institute, the Northeast Hub will be coordinated by Principal Investigator Jeannette M. Wing (Columbia University), Executive Director and Co-Principal Investigator René Bastón (Columbia University), Co-Principal Investigator James Hendler (Rensselaer Polytechnic Institute), Co-Principal Investigator Vasant Honavar (Penn State), and Co-Principal Investigator Andrew McCallum (University of Massachusetts at Amherst).
Jeannette M. Wing, Principal Investigator on the new NSF award for the Northeast Big Data Innovation Hub.
"The Big Data Hub has built an extensive network of data science experts and stakeholders from academia, industry and local government across the Northeast," said Wing. "Its coordinated efforts address important societal challenges, such as healthcare and education, faced by the region, from urban to rural environments. The new NSF grant will allow us to expand this work in two ways: first, by addressing cross-cutting themes on data privacy and data ethics, to ensure positive social impact; and second, by coordinating with the three other regional hubs toward a national network of data science institutions."
Each of the four Big Data Hubs is located in one of the four U.S. census regions (Northeast, South, Midwest, and West), and serves as a thought leader and convening force on social and economic challenges unique to their regions – for example, fresh water in the West, agriculture in the Midwest, coastal flooding in the South, and aging urban infrastructure in the Northeast. Beyond their regional focus, the Big Data Hubs will act as a single national body as needed to respond to issues that cross regions, such as the evolution of U.S. transportation infrastructure and workforce development. Embarking on the next phase of growth and national coordination, the Hubs will host anAll Hubs All Hands community data science meeting open to the public as a signature event in 2020.
The BD Hubs community at Data For Good Exchange in 2018.
"Developing innovative, effective solutions to grand challenges requires linking scientists and engineers with local communities," said Jim Kurose, Assistant Director for Computer and Information Science and Engineering at the National Science Foundation, which funded this award. "The Big Data Hubs provide the glue to achieve those links, bringing together teams of data science researchers with cities, municipalities and anchor institutions."
For Press inquiries or to connect directly with our team, please email Katie Naum at: contact@nebigdatahub.org
← Largest-ever cohort of U.S. twins fuels new BD Spoke study


"Do All in the Name of the Lord"
This should seem sensible because it is how we justify actions at work, to our parents, to the law, or any other authoritative body. But before we continue, let's examine exactly what is mean by the word 'authority' and other related terms.
"What is really meant by 'authority', and 'in the name of the Lord'?" These words and phrases are similar to terms used by lawyers and those that enforce the law. If one has ' Bible authority' for some action, then he or she has Biblically-based justification for that action. Similar to lawyers, we must study God's law to determine if we can justify everything that we do. During an arrest, policemen may shout, "... in the name of the law!" When they say this, they express that they are agents operating by the authority of the law. However, they cannot bust through any door they wish, but only when they have this authority (search warrant, etc.). Similarly, God instructs us to not act without His authority, which likewise limits our actions to those that are 'in the name of the Lord', or those done by the 'authority' of the Lord.
So, how do we actually go about establishing a method for determining Biblical authority?
It is often said that the Bible is its own best commentary. With this in mind, let us look through the pages of the Bible to determine how we can use it to establish right from wrong. This may seem at first like circular reasoning, establishing a Biblically based way of determining Bible truths; however, there must be some beginning point to learning how to study the Bible. Therefore, initially equipped with our common sense, we examine Biblical examples of Jesus and His apostles using Scripture. Surely Jesus and His apostles knew how to use the Bible. Moreover, from their examples, we should be able to determine a clear means of establishing Biblical authority. It is recommended that one have first studied the difference between the Old and New Testaments, since God binds only the New Testament upon us today. This distinction will be assumed as given in the following Bible study.
Review: Must not act beyond our limits that God has authorized.
We may be condemned already by our attitude.
Let this never be said of us.
Must understand that God's Word is written in human language.
Must use the Bible as Christ did.
Argument rested on tense of verb: "AM" instead of "WAS"
Must use the Bible as the Apostles did.
Must follow the examples of Jesus and the Apostles.
Must establish authority as the examples found in the best Bible commentary — the Bible.
The best way to learn how to study and use the Bible is to examine how Jesus and His apostles used it. From this, we discover that for something to be authorized, we must have either a direct instruction, approved example, or a necessary inference found in the New Testament. Elsewhere, we also learned that it is essential to be careful that we do not stray from God's pattern. Therefore, let us be diligent in study that we may be able to stand approved before God. Having learned something of how to study from God's Word and to establish right from wrong, let us now complete this study by investigating the difference between general and specific authority. Without being aware of this basic concept, we will be unable to proceed very far into a deeper knowledge of God's word. The following study will be key in resolving many issues about the church and our personal lives that would have otherwise been unanswerable.