text:
Legendary Finnish hard rock band STUD has released a new single from their upcoming fourth album
Melodic hard'n heavy rock band STUD, founded originally in 1980's, has released a new single 'Tired'
"Tired presents the most melodic side of the upcoming album. And we pretty much wrapped the idea that STUD stands for today on this track! Honest, traditional hard rock!" guitar player Mika Kansikas backgrounds.
STUD has released three full length albums and they are currently working on the fourth one. Band founded already on 1986 lifted to a cult reputation as they presented their debut single 'Mä haluun elää / Viimeinen yö' on Finnish national TV prime time show *Levyraati". They also were really active live band until they stepped aside by the end of the decade.
STUD original line-up got back together on 2011 and they changed their language from Finnish to English. After this they have released three full length albums 'Out of the darkness' (2013), 'Rust on the rose' (2014) and 'Circle of lies' (2017).
Ari Toivanen, vocals Mika Kansikas, guitar Stenda Kukkonen, drums Jari Behm, bass


text:
[ARCHIVED] Child Dies After Boating Accident Near Navajo Canyon
NAVAJO CANYON, Arizona – National Park Service Dispatch at Glen Canyon National Recreation Area received a report on Sunday, September 17, 2017, at approximately 5:20 p.m., of an accident in which a six-month old boy received major head trauma. It was reported the accident happened when a houseboat was trying to dock on a beach in the area of Navajo Canyon, approximately 12 miles from Antelope Point Marina. Reports are that when the boat struck the beach an adult fell on the child. The vessel had 13 people on board, including several small children.
National Park Service Rangers were patrolling in the area at the time of the incident and responded immediately. While transporting the infant by boat to Antelope Point Marina, emergency first aid was provided, including rescue breaths and chest compressions. With the assistance of the Page Fire Department, the child was transported to the Page Hospital for further evaluation.
The Coconino County Sheriff's Office responded to the Page Hospital to conduct an investigation into the incident. The child was flown to the Salt Lake City Children's Hospital. During the early morning hours of September 18, the child was pronounced dead. The family resides in Bluffdale, Utah.
This incident is under investigation by the Coconino County Sheriff's Office, the National Park Service and the Utah Office of the Medical Examiner.
For Immediate Release: September 18, 2017
Bret Axlund, Lieutenant, Coconino County Sheriff's Office (928) 679-8705, baxlund@coconino.az.gov
Mary Plumb, Glen Canyon National Recreation Area, (928) 608-6202, mary_plumb@nps.gov

redpajama_set_name: RedPajamaCommonCrawl


text:
Biografia
Rolf-Ulrich Kaiser ha studiato letteratura tedesca a Colonia ed è poi divenuto un apprezzato giornalista musicale. Nel 1964, ad appena 21 anni, è già collaboratore di alcune importanti riviste musicali tedesche; i suoi articoli dell'epoca, molti dei quali scritti con svariati pseudonimi, riguardano tutti la musica folk. Dopo un viaggio negli Stati Uniti nel 1965, scrive il suo primo libro Das Song-Buch pubblicato nel 1967, che contiene una panoramica internazionale della canzone folk arricchita da interviste a Joan Baez, Pete Seeger e molti altri. Parallelamente all'attività di scrittore e giornalista è tra gli ideatori e responsabili del programma prima radiofonico e poi televisivo Panoptikum, un mensile di cultura musicale che andò in onda ininterrottamente dal 1968 al 1975 nelle TV tedesche NDR e WDR.

Assieme a Martin Degenhardt e Tom Schroeder organizza nel 1968 il festival musicale "Internationalen Essener Songtage", in Italia ricordato come "le cinque giornate di Essen"; parteciparono all'evento importanti collettivi musicali ed artisti internazionali dell'epoca come Frank Zappa, The Fugs e Brian Auger. Tuttavia il festival è ricordato come la prima vetrina per molte formazioni musicali alternative tedesche che sino ad allora non avevano trovato grande spazio d'espressione attraverso i canali ufficiali, tra questi: Amon Düül, Floh de Cologne, Guru Guru (all'epoca ancora denominati Guru Guru Groove) e Tangerine Dream. A seguito della partecipazione al festival di Essen, che si tenne dal 25 al 29 settembre, queste formazioni ottennero successo in patria e, a distanza di pochi anni, contratti discografici.

Kaiser continua anche l'attività di scrittore di saggi, quaderni e volumi interamente dedicati alla musica, soprattutto a quella di protesta, riservando particolare attenzione al rock underground americano e alla controcultura statunitense. Tra le più importanti opere figurano le monografie dedicate a Frank Zappa Zapzapzappa das buch der Mothers Of Invention (1968), ai Fugs Fuck The Fugs (1969), e una delle prime enciclopedie dedicate alla musica pop, Das buch der neuen Pop-Musik (1969). Quest'ultimo rimane ad oggi l'unico lavoro di Kaiser tradotto in italiano, pubblicato per la prima volta nel 1971 dalla Arnoldo Mondadori Editore con il titolo Guida alla Musica Pop.

Caratteristica principale di Kaiser critico musicale è la sottile vena ironica e la continua polemica contro il business musicale; estremamente abile nel condensare molte informazioni e suggerimenti in poche righe, contemporaneamente traccia le linee del percorso artistico di molte formazioni musicali degli anni sessanta, mettendo in evidenza come molti musicisti entrino in contraddizione con i propri ideali nel momento in cui ottengono il successo commerciale.

Tra il 1968 ed il 1969, con il sostegno economico della televisione tedesca WDR e della compagnia aerea Lufthansa, organizza il Concorso Musicale IEST riservato ai gruppi emergenti; nella giuria figurano, oltre allo stesso Kaiser, Reinhard Hippen e Henryk Broder. Contrariamente a quanto viene riportato da più fonti, Kaiser non fu tra i fondatori dell'etichetta discografica indipendente Ohr, un progetto realizzato invece dai fratelli Thomas e Peter Meisel, già fondatori della casa discografica Hansa Records, in collaborazione con vari produttori musicali tedeschi, utilizzando il sostegno economico della major Metronome. Rolf-Ulrich Kaiser fu il produttore di alcune formazioni tedesche che pubblicarono inizialmente dischi per la Ohr, tra cui Witthüser & Westrupp, Ash Ra Tempel ed Annexus Quam. Curò inoltre, sempre per la Ohr, la stampa tedesca del disco solista del cantautore olandese Roger Bunn, e la realizzazione di quattro compilation.

Viene erroneamente ricordato anche come direttore artistico di un'altra etichetta indipendente, la Pilz, incarico in realtà affidato a Jürgen Schmeisser che, in collaborazione con la major Basf, pubblicò inizialmente album di gruppi tedeschi spacciandoli come produzioni indipendenti, mentre dietro alle operazioni commerciali Ohr e Pilz vi erano ingenti capitali stanziati da Metronome e Basf. Dopo le prime quattro pubblicazioni della Pilz, la Basf obiettò sullo scarso successo di vendite e, volendo emulare la concorrente Metronome e soprattutto il successo della sub-label Ohr, chiamò in soccorso lo stesso Kaiser. Come produttore, Rolf-Ulrich Kaiser dirottò alla Pilz il duo Witthüser & Westrupp e produsse per la Pilz/Basf dischi di successo di formazioni quali Bröselmaschine, Hölderlin, Emtidi, Wallenstein e Jerry Berkers. Anche per la Pilz Kaiser curò la realizzazione di una compilation di successo.

Dopo i notevoli successi ottenuti sia con la Pilz che con la Ohr, Kaiser aveva maturato grande esperienza come "talent scout" e produttore. Convince quindi la Metronome a finanziare interamente e a distribuire i dischi del suo personale progetto discografico, l'etichetta Kosmische Kuriere. Per questa nuova casa discografica, Kaiser e la compagna Gerlinde Lettmann produssero pochi album ma di grandissimo successo sia con la critica che nelle vendite. Furono pubblicati due dischi degli Ash Ra Tempel, un doppio live del duo Witthüser & Westrupp, un album dei Wallenstein e uno dei Mythos. Contemporaneamente produsse, assieme al tecnico del suono Dieter Dierks, tutte le sessioni di registrazione dei cosiddetti "corrieri cosmici", una serie di dischi (firmati a nome Cosmic Jokers, Sergius Golowin e Walter Wegmüller) realizzati da un supergruppo i cui componenti provenivano dai Wallenstein, dai Witthüser & Westrupp, dai Mythos e con la partecipazione di Klaus Schulze. Fu con queste realizzazioni discografiche che coniò il termine Kosmische Musik o musica cosmica, dopo aver coniato il termine Kosmische Volk con la pubblicazione dell'album Saat degli Emtidi.

Nel 1975, dopo essere stato l'oggetto di una campagna denigratoria pubblicata su alcuni quotidiani tedeschi da molti dei musicisti che aveva contribuito a lanciare a livello internazionale, la Metronome interrompe i finanziamenti a Kaiser e la sua etichetta Kosmische Kuriere viene chiusa. Rolf-Ulrich Kaiser, assieme a Gille Lettmann, cerca di trovare nuovi finanziamenti negli Stati Uniti, riuscendo a pubblicare solo un disco promozionale, la compilation Take Your Headphones, proposta ad etichette statunitensi realmente indipendenti come la ESP-Disk.

Nel 1976, gli ultimi dischi incisi ma non pubblicati dalla Kosmische Kuriere vengono ceduti all'italiana PDU, tra questi gli album Aguirre e Yoga dei Popol Vuh, le raccolte Perlenklänge, sempre dei Popol Vuh, e Communication degli Ash Ra Tempel, nonché il primo album solista dell'italiano Roberto Cacciapaglia: Sonanze.

Vita privata
Quello che Rolf-Ulrich Kaiser aveva sostenuto nei propri libri in merito al tradimento degli ideali da parte degli artisti quando ottengono successo, si concretizza anche verso la sua figura di produttore. Nel 1976, a seguito della campagna diffamatoria, vide tutte le porte chiudersi dietro e davanti alla sua persona. Disgustato dall'ambiente musicale professionale, si ritirò dalla vita pubblica e tagliò i legami con i mezzi di comunicazione e l'intera società. Si stabilisce a Colonia assieme alla compagna Gille Lettmann e per un periodo i due vivono con le entrate di lei, di professione astrologa e cartomante.

Nel 1979, costretto da problemi finanziari, vende tutti i diritti musicali di sua proprietà a Bernhard Mikulski, proprietario dell'etichetta Pop Import, l'attuale ZYX Music. Dopo la separazione dalla Lettmann, Kaiser continua a rifiutare ogni contatto sociale e si trova nuovamente in precarie situazioni economiche; in suo aiuto viene l'unico musicista che gli è rimasto amico, Walter Westrupp, che gli trova una sistemazione presso un convento di frati cattolici nei pressi di Arnsberg dove ancora oggi vive nel totale anonimato, rifiutando interviste e la sua versione dei fatti relativi allo scandalo che lo travolse.

Controversie
A metà degli anni settanta vengono lanciate accuse pesanti a mezzo stampa contro Rolf-Ulrich Kaiser e la compagna Gille Lettmann. Tutti i collettivi musicali e gli artisti prodotti dagli stessi, ad eccezione di Bernd Witthüser e Walter Westrupp, si coalizzano reclamando maggiori compensi e il pagamento delle royalties, rimproverano inoltre a Kaiser di averli confinati nel ghetto artistico da lui stesso ideato, la "musica cosmica", genere nel quale non vogliono più riconoscersi.

Sembra tuttavia che il vero motivo siano stati i nuovi contratti che Tangerine Dream, Ash Ra Tempel e Klaus Schulze avevano firmato con l'etichetta inglese Virgin Records o con altre label non tedesche, dovendo in questo modo chiudere i rapporti/contratti ancora in vigore sia con la Kosmische Kuriere che con la Ohr. Proprio da Klaus Schulze e Edgar Froese dei Tangerine Dream e da Manuel Göttsching degli Ash Ra Tempel arrivano le accuse più pesanti. Nei giornali tedeschi dell'epoca, i giovani musicisti accusano tra l'altro Rolf-Ulrich Kaiser di averli pagati non in denaro ma attraverso la cessione di stupefacenti.

La figura di Kaiser, critico musicale, talent scout e produttore, viene demolita pubblicamente. L'onta verrà rimarcata da Julian Cope nel suo volume del 1995 dedicato al krautrock Krautrocksampler e nell'enciclopedia del 2012 Made in Germany di Gianluigi Gasparetti. In tutte le pubblicazioni che hanno trattato lo scandalo, tuttavia non sono mai state riportate in contraddittorio le versioni dei fatti secondo Kaiser.

Leggende metropolitane
Il rifiuto a rilasciare interviste, il lungo periodo di silenzio e la condizione di isolamento volontario di Rolf-Ulrich Kaiser, hanno fatto sorgere un gran numero di inesattezze che riguardano la sua vita privata. Sparse in giornali e in rete si leggono svariate dicerie riguardanti il periodo in cui ebbe successo; da sfatare sono i falsi miti che lo vorrebbero esser divenuto un bohèmienne di strada, un uomo afflitto da turbe e problemi psichici a seguito dell'assunzione continua di LSD e un condannato da tribunali. Kaiser in realtà non subì alcun processo a seguito delle accuse che diffamarono la sua persona nel 1975, inoltre è completamente infondata la notizia secondo la quale la sua etichetta musicale sia stata chiusa a seguito di una sentenza di un tribunale il cui giudice gli avrebbe tolto i diritti d'autore quale produttore musicale. Gli stessi vennero ceduti volontariamente dallo stesso Kaiser nel 1979.

Opere

In tedesco
 Das Song-Buch. Damokles-Verlag, Ahrensburg / Paris, 1967
 (Hrsg.:) Protestfibel. Formen einer neuen Kultur. Con contributi di Klaus Budzinski, Scherz Verlag, Bern / München / Wien, 1968
 Zapzapzappa - Das Buch der Mothers of Invention. Kinder der Geburtstagspresse, Köln, 1968
 Fuck the Fugs - Das Buch der Fugs. Kinder der Geburtstagspresse, Köln, 1969
 B. ist doch ein Scheisser. Das beste aus der deutschen untergrundpresse. Kinder der Geburtstagspresse, Köln, 1969
 Underground? Pop? Nein! Gegenkultur! Eine Buchcollage. Kiepenheuer und Witsch, Köln / Berlin, 1969
 Das Buch der neuen Pop-Musik. Econ-Verlag, Düsseldorf / Wien 1969 (2ª ed. 1970, ISBN 3-430-15155-4; edizione olandese: De nieuwe pop-muziek, Hoorn, West-Friesland, 1970; edizione italiana: Guida alla musica pop, Milano, Mondadori, 1971, 2ª ed. 1974, 3ª ed. 1978; edizione spagnola: El mundo de la música Pop, Barcelona, Barral, 1972, 2ª ed. 1974; edizione portoghese: O mundo da música pop, Porto, Paisagem, 1973)
 (con Gille Lettmann:) Fabrikbewohner. Protokoll einer Kommune und 23 Trips. Droste, Düsseldorf, 1970
 Frank Zappa, Hoorn, West-Friesland, 1971.
 Rock-Zeit. Stars, Geschäft und Geschichte der neuen Pop-Musik, Econ-Verlag, Düsseldorf / Wien, 1972, ISBN 3-430-15156-2

In italiano
 Guida Alla Musica Pop (Arnoldo Mondadori Editore / Milano 1971)
 Guida Alla Musica Pop (Oscar Mondadori / Milano 1975)
 Guida Alla Musica Pop - con un'appendice di Michele L.Straniero sulla canzone italiana di protesta (Oscar Mondadori / Milano 1978)

Discografia

 Artisti vari : Ohrenschmaus (Etichetta: Ohr/Metronome, codice LP: OMM2/56006, anno: 1970)
 Roger Bunn : Piece Of Mind (Etichetta: Ohr/Metronome, codice LP: OMM56009, anno: 1971) "non accreditato"
 Bernhard Witthüser & Walter Westrupp : Trips + Träume (Etichetta: Ohr/Metronome, codice LP: OMM56016, anno: 1971)
 Bernhard Witthüser & Walter Westrupp : Der Jesuspilz (Etichetta: Pilz/Basf, codice LP: 2021098-7, anno: 1971)
 Bernhard Witthüser & Walter Westrupp : Der Erleuchtung/Die Aussendung (Etichetta: Pilz/Basf, codice 7": 0519041-7, anno: 1971)
 Bröselmaschine : Bröselmaschine (Etichetta: Pilz/Basf, codice: 2021100-2, anno: 1971)
 Artisti vari : Mitten Ins Ohr (Etichetta: Ohr/Metronome, codice LP: OMM2/56018, anno: 1971)
 Ash Ra Tempel : Schwingungen (Etichetta: Ohr/Metronome, codice LP: OMM556020, anno: 1972)
 Birth Control : Believe In The Pill "compilation" (Etichetta: Ohr/Metronome, codice LP: OMM556025, anno: 1972) "non accreditato"
 Artisti vari : Kosmische Musik (Etichetta: Ohr/Metronome, codice LP: OMM2/56027, anno: 1972)
 Ash Ra Tempel & Timothy Leary : Seven Up (Etichetta: KK/Metronome, codice LP: KK58001, anno: 1972)
 Annexus Quam : Beziehungen (Etichetta: Ohr/Metronome, codice LP: OMM556028, anno: 1972)
 Hölderlin : Hölderlin's Traum (Etichetta: Pilz/Basf, codice LP: 2021314-5, anno: 1972)
 Emtidi : Saat (Etichetta: Pilz/Basf, codice LP: 2029077-8, anno: 1972)
 Wallenstein : Mother Universe (Etichetta: Pilz/Basf, codice LP: 2029113-8, anno: 1972)
 Bernhard Witthüser & Walter Westrupp : Bauer Plath (Etichetta: Pilz/Basf, codice LP: 2029115-4, anno: 1972)
 Bernhard Witthüser & Walter Westrupp : Bauer Plath/Das Lied Der Liebe (Etichetta: Pilz/Basf, codice 7": 0519134-0, anno: 1972)
 Jerry Berkers : Unterwegs (Etichetta: Pilz/Basf, codice LP: 2029131-6, anno: 1972)
 Jerry Berkers : Na Na Tschu Tschu/Es Wird Morgen Vorbei Sein (Etichetta: Pilz/Basf, codice 7": 0519128-6, anno: 1972)
 Artisti vari : Rapunzet - Neue Deutsche Volksmusik (Etichetta: Pilz/Basf, codice LP: 2029116-2, anno: 1972)
 Ash Ra Tempel & Klaus Schulze : Join Inn (Etichetta: Ohr/Metronome, codice LP: OMM556032, anno: 1973)
 Sergius Golowin : Lord Krishna Von Goloka (Etichetta: KK/Metronome, codice LP: KK58002, anno: 1973)
 Walter Wegmüller : Tarot (Etichetta: KK/Metronome, codice LP: KK2/58003, anno: 1973)
 Bernhard Witthüser & Walter Westrupp : Live 68-73 (Etichetta: KM/Metronome, codice LP: KM2/58004, anno: 1973)
 Wallenstein : Cosmic Century (Etichetta: KM/Metronome, codice LP: KM58006, anno: 1973) "non accreditato"
 Ash Ra Tempel : Starring Rosi (Etichetta: KM/Metronome, codice LP: KM58007, anno: 1973)
 Cosmic Jokers : Cosmic Jokers (Etichetta: KM/Metronome, codice LP: KM58008, anno: 1973)
 Cosmic Jokers : Galactic Supermarket (Etichetta: KM/Metronome, codice LP: KM58010, anno: 1974)
 Cosmic Jokers : Sci-Fi Party - Unser Flug Durch Die Kosmicher Musik (Etichetta: KM/Metronome, codice LP: KM58011, anno: 1974)
 Cosmic Jokers : Gilles Zeitschiff (Etichetta: KM/Metronome, codice LP: KM58012, anno: 1974)
 Cosmic Jokers : Planeten Sit In (Etichetta: KM/Metronome, codice LP: KM58013, anno: 1974)
 Wallenstein : Stories Songs And Symphonies (Etichetta: KM/Metronome, codice LP: KM58014, anno: 1974) "non accreditato"
 Mythos : Dreamlab (Etichetta: KM/Metronome, codice LP: KM58016, anno: 1975) "non accreditato"
 Artisti vari, Rolf-Ulrich Kaiser & Gille Lettmann : Take Your Headphones - US promo (Etichetta: Cosmic Couriers, codice LP: CC2010, anno: 1975)
 Popol Vuh : Discover Cosmic "compilation" (Etichetta: Cosmic Music/Barclay, codice LP: 940.119/20, anno: 1975) "non accreditato"
 Ash Ra Tempel : Discover Cosmic "compilation" (Etichetta: Cosmic Music/Barclay, codice LP: 940.117/18, anno: 1975) "non accreditato"
 Popol Vuh : Aguirre (Etichetta: PDU, codice LP: Pld.SQ6040, anno: 1975) "non accreditato"
 Roberto Cacciapaglia : Sonanze (Etichetta: Kosmischen Kuriere/PDU, codice LP: Pld.SQ6025, anno 1975) "non accreditato"
 Cosmic Jokers, Ash Ra Tempel & Klaus Schulze : Discover Cosmic "compilation" (Etichetta: Cosmic Music/Barclay, codice LP: 940.115/16, anno: 1976) "non accreditato"
 Ash Ra Tempel : Communication "compilation" (Etichetta: PDU, codice LP: Pld.SQ6074, anno: 1976) "accreditato solo nelle note di copertina"
 Popol Vuh : Yoga (Etichetta: PDU, codice LP: Pld.SQ6066, anno: 1976) "non accreditato"
 Popol Vuh : Perlenklänge "compilation" (Etichetta: PDU, codice LP: Pld.SQ6073, anno: 1976) "accreditato solo nelle note di copertina"

Bibliografia
Eidam, Klaus and Schröder, Rudolf: Die Hit-Fabrik. Chronik eines Berliner Musikverlages. (deutsch: Edition Intro Meisel GmbH. Berlin 2001)
Habermas, Jürgen: Strukturwandel der Öffentlichkeit. Frankfurt 1962 (English edition: The Structural Transformation of the Public Sphere)
Hermann Haring : Rock aus Deutschland/West – Von den Rattles bis Nena: Zwei Jahrzehnte Heimatklang. (deutsch: Reinbek 1984)
Andreas Hub : Das Kraut der frühen Jahre. (deutsch: Rolling Stone, April 1997, p. 42-46)
Intuitive Music : Biography Cosmic Jokers. (Web Fanzine, May 7, 2011)
Timothy Leary : Flashbacks. (New York NY 1997)
Siggi Loch : Plattenboss aus Leidenschaft. (Hamburg 2010)
Stefan Morawietz : Kraut und Rüben. TV documentary in six parts. (WDR TV, Cologne 2006)
Stefan Morawietz : Roboter essen kein Sauerkraut. (Arte TV, Strasbourg 2008)
Archie Patterson : The Mythos of Rolf-Ulrich Kaiser. (Web Fanzine, May 23, 2011)
Werner Pieper : Kaiser Schmarrn süß/sauer. In: Pieper, Werner (deutsch: Alles schien möglich – 60 Sechziger über die 60er Jahre und was aus ihnen wurde; p. 50-55. Löhrbach 2007)
Ingeborg Schober : Tanz der Lemminge – Amon Düül II: Eine Musikkommune in der Protestbewegung der 60er Jahre. (deutsch: Reinbek 1979)
Sounds - Rivista Pagine 66-77. (deutsch: 1827 Kritiken. Frankfurt/M. 1979)
Spiegel 41/1968: Größtes Ding. In: Der Spiegel, October 7, 1968, p. 213-214.
Spiegel 29/1970: Zirpt lustig. In: Der Spiegel, July 13, 1970, p. 126.
Spiegel 43/1971: Szene - Popmusik. In: Der Spiegel, October 18, 1971, p. 177.
Spiegel 7/1973: Szene - Leary-Gesang. In: Der Spiegel, February 12, 1973.
Spiegel 40/1973: Prinzip der Freude. In: Der Spiegel, October 1, 1973, p. 186-188.
Stiftung Haus der Geschichte der Bundesrepublik Deutschland (deutsch: Melodien für Millionen – Das Jahrhundert des Schlagers. Bonn 2008)
Walter Westrupp : 68er nach Noten. (deutch WEB LINK)
Julian Cope: Krautrocksampler. One Head´s Guide to the Great Kosmische Musik — 1968 Onwards. London 1995 ISBN 0-9526719-1-3 (deutsch: Löhrbach 1996, ISBN 3-925817-86-7)
Werner Pieper: Alles schien möglich. 60 Sechziger über die 60er Jahre und was aus ihnen wurde. Der Grüne Zweig 252., Löhrbach: Werner Pieper und The Grüne Kraft 2007, S. 50–55 ISBN 978-3-925817-52-6
Gianluigi Gasparetti "Oöphoi" : Made In Germany; Psichedelia, rock progressivo e musica cosmica. 1967-1979 (italiano: Edizioni Applausi) ISBN 978-88-89571-10-1 (2012)
Julian Cope: Krautrocksampler. Guida personale alla grande Musica Cosmica. (italiano: Edizioni Lain, 2006)
Enrico Bassi : Il krautrock e la Musica Cosmica (italiano: Edizioni Musica Diagonale, 1991)
° Enrico Fontana, Figli delle stelle - uomini, idee e miti dietro la scena musicale alternativa tedesca dell'età dell'oro dal Krautrock alla Musica Cosmica, Arcana, 2020, ISBN 978-88-6231-973-7

Collegamenti esterni

 "Der Muße-Gesellschafter", die tageszeitung (18 giugno 2009)

Krautrock

redpajama_set_name: RedPajamaWikipedia


text:
Иван Иванович Чекмазов (17.08.1915, Тульская область — 07.11.1995) — советский военнослужащий, участник Великой Отечественной войны, полный кавалер ордена Славы, командир миномётного расчёта 148-го гвардейского стрелкового полка, гвардии старший сержант — на момент представления к награждению орденом Славы 1-й степени.

Биография
Родился 4 августа 1915 года в деревне Чёрная Грязь Киреевского района Тульской области. Член ВКП/КПСС с 1940 года. Окончил 2 курса педагогического института. Работал учителем в средней школе.

В Красной Армии и в боях Великой Отечественной войны с мая 1942 года в составе 124-й стрелковой дивизии 38-й армии Юго-Западного фронта. С июля 1942 года И. И. Чекмазов в составе 21-й армии участвовал в оборонительных боях под Сталинградом. В ноябре 1942 года дивизия переименована в 50-ю гвардейскую стрелковую дивизию и, воюя на Юго-Западном, Южном, 4-м и 3-м Украинских, 1-м и 3-м Белорусских фронтах, участвовала в окружении сталинградской группировки противника, освобождении Левобережной Украины, Белоруссии и восточных районов Польши, в Гумбинненской и Восточно-Прусской наступательных операциях. С апреля 1945 года — на 1-м Украинском фронте. Участвовала в Берлинской и Пражской наступательных операциях.

Командир миномётного расчёта 148-го гвардейского стрелкового полка гвардии старший сержант Чекмазов 16 октября 1944 года, участвуя в артиллерийской подготовке около города Вилкавишкис, огнём из миномёта разрушил два блиндажа с укрывшимися в них шестью гитлеровцами и одну пулемётную точку.

Приказом командира 148-й гвардейской стрелковой дивизии от 27 октября 1944 года за мужество, проявленное в боях с врагом, гвардии старший сержант Чекмазов награждён орденом Славы 3-й степени.

22 января 1945 года Чекмазов в бою в районе населённого пункта Будупенен был ранен, но поля боя не покинул. Оставшись один у миномёта, продолжал вести огонь и уничтожил шесть пулемётов и до десяти вражеских солдат.

Приказом по 28-й армии от 12 марта 1945 года гвардии старший сержант Чекмазов награждён орденом Славы 2-й степени.

29 апреля 1945 года на позиции полка в районе города Барут прорвалась большая группа противников. Командир миномётного расчёта Чекмазов при отражении атаки получил ранение, однако с поля боя не ушёл. Его расчёт вывел из строя пять пулемётов противника. Когда противники прорвались на огневые позиции миномётчиков, воины поднялись в контратаку и отбросили врага. Чекмазов в этом бою из автомата и в рукопашной схватке истребил свыше десяти фашистов.

Указом Президиума Верховного Совета СССР от 27 июня 1945 года за мужество, отвагу и героизм, проявленные в борьбе с захватчиками, гвардии старший сержант Чекмазов Иван Иванович награждён орденом Славы 1-й степени.

В 1945 году демобилизован. Жил в городе Тула. Работал директором школы.

Награждён орденами Славы 1-й, 2-й и 3-й степени, Отечественной войны 1-й степени, медалями.

Умер 7 ноября 1995 года.

Ссылки

Литература

 Лобода В. Ф. Солдатская слава. Книга 2. М., 1967

Полные кавалеры ордена Славы


At Lemon Myrtle Natural our aim is to provide quality natural products developed using pure Lemon Myrtle Oil and natural ingredients. All the products in our ranges have been carefully selected to synergistically align with our strategy of a "holistic" lemon myrtle presence and offer products that are beneficial to our customers, which are free from toxic ingredients and are ecologically responsible brands. We have sourced products we know and love to use and recommend ... products that are great for you, your family and your home, and great for our environment.
Product highlights: potent and active anti-bacterial and anti-fungal properties; highest citral content of any known plant in the world. Ideal for sensitive skin that is easily irritated. Contains no: sodium laurel sulphate, parabens, petrochemicals. Not tested on animals.


text:
The Latest: Minnesota tops 100 daily deaths for 1st time
By The Associated Press, 28/11/2020
MINNEAPOLIS (AP) — The Minnesota Department of Health has reported 101 more COVID-19 deaths, the first time the state has topped 100 single-day deaths since the start of the pandemic.
The state health department reported 5,704 new cases on Friday, putting the state at 3,476 deaths and 295,001 cases since March.
More than 1,800 patients are hospitalized, including more than 380 in intensive care, as dramatic case growth over the past month has led to increasing hospitalizations and deaths.
In a statement, Minnesota Health Commissioner Jan Malcolm said the significant increase in deaths reported Friday "reinforces that tragic pattern" and urged individuals to avoid gatherings to mitigate further spread of the virus during the holidays.
The figures reported on Friday reflect data acquired by the health department as of Wednesday.
— Black Friday offers beacon of hope to struggling stores
— Empty seats, delivered feasts as virus changes Thanksgiving
— UK asks regulator to assess AZ-Oxford vaccine amid questions
— The pandemic is turning this into a holiday shopping season like no other. Toy companies are targeting stuck-at-home grown-ups with latte-smelling Play-Doh and Legos that turn into Warhols.
— The deluge of "Dear Santa" letters pouring into a French post office that sorts and responds to Kris Kringle's mail offers a glimpse into the worries and hopes of children around the world awaiting a pandemic-hit Christmas.
— Greece has moved all school and university classes to a remote format. State television is making and broadcasting lessons, while teachers speak to students online from empty classrooms.
Follow AP's coverage at https://apnews.com/hub/coronavirus-pandemic and https://apnews.com/UnderstandingtheOutbreak
DES MOINES, Iowa -- Iowa has reported that 37 people died of the coronavirus in the past day.
The state Department of Public Health on Friday said the additional deaths bring the total to 2,349.
In the past 24 hours as of Friday morning, there were 1,266 new confirmed cases.
Iowa has long had some of the nation's highest coronavirus infection rates, but in the past week its numbers have improved slightly.
LONDON — The World Health Organization's top scientist says more data is needed to determine if the coronavirus vaccine developed by Oxford University and AstraZeneca works.
Oxford and AstraZeneca reported Monday that their vaccine appeared 62% effective in people who received two doses and 90% effective when volunteers were given a half dose followed by a full dose. They later acknowledged a manufacturing issue had resulted in a half dose mistakenly being administered as the first dose to some participants.
Dr. Soumya Swaminathan, WHO's chief scientist, said at a Friday news conference that "the numbers are still too small to really come to any definitive conclusions."
In the study, 2,741 people got a half dose followed by a full dose while 8,895 people got two full doses. None of the people in the half-dose regimen were over age 55.
"It's very hard to compare these two groups," Swaminathan said.
Swaminathan said the agency had heard AstraZeneca would like to conduct a full study testing the half dose followed by a full-dose regimen, noting that the other ongoing research evaluating the vaccine uses two full doses.
LONDON — Ireland is easing its coronavirus restrictions, with most businesses allowed to reopen next week.
For six weeks, Ireland has been under tight restrictions, with many businesses shut and people restricted to a 3-mile (5-kilometer) radius of their home.
The government says shops, hairdressers, gyms, cinemas, museums and galleries will be allowed to open starting Tuesday, and religious services can resume. Restaurants and pubs that serve food will be able to open from Dec. 4, though bars that only serve drinks have to stay shut.
Ireland plans to ease restrictions further over Christmas, allowing people to travel and up to three households to gather between Dec 18 and Jan. 6.
Ireland, with a population of almost 5 million, has recorded more than 2,000 coronavirus-related deaths.
Prime Minister Micheal Martin acknowledged the hardship many faced, but said the nation's "sacrifices" were working and had driven down the infection rate to one of the lowest in Europe.
TORONTO — Canadian Prime Minister Justin Trudeau says he expects more than half of Canadians to receive a COVID-19 vaccine by next September.
Trudeau's government is facing criticism after he said Canada will have to wait for a vaccine because the first ones that roll off assembly lines are likely to be given to citizens of the country they are made in. He noted earlier this week that the United States, the United Kingdom and Germany have mass vaccine-production facilities but Canada does not.
Trudeau says Canada has signed deals that could give it the most per capita vaccines in the world. But when Canadians will get the first doses remains an open question. Toronto is on lockdown and the country's largest province of Ontario is reporting a record 1,855 cases on Friday.
GENEVA — Scientists at the World Health Organization estimate that about 60 to 70% of people in countries will need to be vaccinated against the coronavirus to achieve any type of herd immunity.
At a press briefing on Friday, WHO vaccines expert Dr. Kate O'Brien said it was still unclear if vaccines against COVID-19 might reduce the amount of time people are infectious or their ability to spread the virus. But she said modelling studies suggest up to 70% of the population will need to be immunized so that people are protected from the disease.
"It's really important that we actually start to get more information about what the vaccines do, not just for preventing disease, but for actually preventing the acquisition of the virus," said O'Brien, director of the U.N. health agency's department of immunization, vaccines and biologicals.
Dr. Michael Ryan, WHO's emergencies chief, noted that in some situations, targeting certain groups for vaccination may be more important than immunizing the entire population.
"We've seen in many clusters that only 20% of the cases go on to transmit to others, 80% don't transmit to anybody else," he said. "I think we'll need to be much more surgical and precise in exactly who we target for vaccination. It may be much more important to target certain sections of the community."
PHOENIX — Arizona has reported more than 4,000 additional confirmed COVID-19 cases for the third time in a week as related hospitalizations continued to increase during the current surge in the pandemic.
The Department of Health Services' coronavirus dashboard Friday reported 4,314 additional cases and 20 deaths, increasing the state's totals to 318,638 cases and 6,588 deaths.
The dashboard reported that 2,301 people were hospitalized for COVID-19 as of Thursday, including 532 in beds in intensive-care units.
MILAN — Coronavirus deaths in Italy remain a stubbornly high 827, even as the number of people hospitalized and in critical care has started a downward curve.
COVID-19 hospitalizations dropped by 399 and virus-positive patients in ICU's were down 64, as Italy recorded 28,352 new positives Friday, a narrowing of new cases by 2% from a day earlier, according to Ministry of Health statistics.
The death toll rose to 53,677, still the second-highest in Europe after Britain. Italy just completed three weeks of stricter measures, including partial lockdowns in the hardest hit regions and a nationwide 10 p.m. curfew. The government is considering some loosening as the holidays near.
ATHENS, Greece — Greece's government has announced it will impose a limit on how much private medical facilities can charge for coronavirus tests.
Commerce and Consumer Protection Secretary General Panagiotis Stamboulidis said Friday that the limits would be 40 euros ($48) for PCR tests and 10 euros ($12) for rapid tests.
Private medical facilities such as clinics and hospitals had been charging about 70-120 euros ($84-$143) for PCR tests and around 40 euros for rapid tests.
Stamboulidis said the ceiling on prices was being set as tests were being used by many individuals and businesses as a means of preventing the spread of the virus.
A draft bill will be brought to parliament in coming days to allow for the change, he said.
OMAHA, Neb. — Seven of Nebraska's 10 largest cities have imposed mask mandates, though Gov. Pete Ricketts has resisted ordering them to be worn throughout the state.
The cities issued the orders as the number of virus cases, hospitalizations and deaths surged over the last month.
The local mandates mean more than half of Nebraska's 1.95 million people live in communities that require masks to be worn in indoor public settings, according to the Omaha World-Herald.
Most cities with mandates are in eastern and central Nebraska, including Omaha, Lincoln, Grand Island, Kearney, Norfolk, Columbus and Hastings.
City officials in the more conservative western Nebraska have said they were encouraging people to wear masks but not requiring it, which is the approach Ricketts has taken.
SAO PAULO — Brazilian President Jair Bolsonaro says he won't take any working COVID-19 vaccine himself and calls the use of masks to limit the spread of the disease "the last taboo to fall."
Bolsonaro's comments, broadcast on his social media channels Thursday night, alarmed health experts who said they could undermine efforts to achieve vaccination levels essential to halting the pandemic and might scare off vaccine makers negotiating with local authorities.
Bolsonaro also said, however, that any shot that is certified by Brazil's health agency will be available for free to the public.
The Brazilian president, who contracted the virus in July, has long resisted the advice of most scientists and health experts to restrict social and economic activity, arguing that damage from a lockdown would be worse than the pandemic.
Balsonaro says: "I tell you; I will not take (any vaccine). It is my right and I am sure that Congress will not create difficulties for whoever doesn't want to take a vaccine."
KYIV, Ukraine — Ukrainian authorities have reported a record number of new coronavirus cases for a second straight day.
Health Minister Maksym Stepanov reported 16,218 new infections on Friday, almost 900 more than the day before and the highest daily spike in the pandemic. The previous record was set on Thursday, when officials reported 15,331 new cases.
Ukraine's total has reached 693,407 confirmed cases, over 95,000 of which have been registered since last Friday. Ukraine has also reported 11,909 deaths in the pandemic.
The rapid rise in cases in Ukraine has started in September and put a strain on the country's health care system. Earlier this month, the government introduced tight weekend restrictions in an effort to curb the spread of the virus. Under the measure, which is to last through the end of November, only grocery stores, pharmacies and public transport are allowed to operate on Saturdays and Sundays.
PHOENIX -- A sixth member of the Arizona Legislature says he has tested positive for COVID-19.
Rep. Andrés Cano, a Democrat, announced on social media Wednesday that he is in isolation but is not symptomatic. Cano was reelected this month.
Last week, Democratic Rep. Arlando Teller of Chinle announced he also tested positive and was isolating. The most serious case involved Rep. Lorenzo Sierra, who spent several days on a ventilator after becoming ill in October. He has now recovered.
LONDON — British health officials say the country's coronavirus outbreak may have stopped growing for the first time in three months.
The government's scientific advisory committee says the R rate -- the number of people each infected person transmits the disease to -- is between 0.9 and 1.0. That means that on average every 10 people with COVID-19 will infect between 9 and 10 others. If the figure is below 1, the number of new infections will shrink.
There are regional variations, with infections likely flat or growing in London and southeast England but falling in the northwest and northeast, which previously had the highest infection rates.
Coronavirus cases in Britain fell over the summer but surged again in the fall. The government imposed a four-week national lockdown in England on Nov. 5 to curb the new surge. It is due to be replaced next week with a system of regional restrictions. Scotland, Wales and Northern Ireland all have their own measures in place.
LISBON, Portugal -- Portugal's prime minister is repudiating a report saying that elderly people could be put at the back of the line when COVID-19 vaccinations become available.
Prime Minister Antonio Costa tweeted Friday, "There are technical criteria which can never be accepted by politicians. It is inadmissible to stop protecting life in accordance with age. Lives have no expiry date."
Costa's comments appeared to corroborate a report in weekly newspaper Expresso on Friday that officials tasked with drawing up the country's vaccination plans had proposed in a draft document that healthy people over 65 would be among the last to be inoculated.
The spokesman for Portugal's National Health Council, Jorge Torgal, told Portuguese radio station TSF the draft was drawn up at a time when scientific evidence suggested vaccines would not be effective in the elderly.
The Portuguese government has been widely criticized for its delay in drawing up its vaccine plans.
BERLIN — Germany has hit another grim milestone in the coronavirus pandemic, reporting a total of more than 1 million confirmed cases of COVID-19.
The country's disease control center said Friday that Germany's 16 states reported 22,806 cases overnight for a national total of 1,006,394 since the start of the pandemic.
However, Germany has reported fewer virus-related deaths than many other European countries: 15,586 compared with more than 50,000 in Britain, Italy and France.
The country is almost a month in to a so-called "wave-breaker" shutdown instituted Nov. 2 after daily cases rose to new record highs. Officials say the new measures have succeeded in halting the surge.
But Chancellor Angela Merkel and state governors decided earlier this week to extend the shutdown well into December and add more restrictions to try to bring the numbers down to below 50 cases per 100,000 inhabitants each week.
BANGKOK — Thailand has signed a deal to procure 26 million doses of the trial coronavirus vaccine developed by pharmaceutical firm AstraZeneca in collaboration with Oxford University.
The doses expected to be delivered in mid-2021 would cover 13 million people in a population of about 69 million.
Thailand's National Vaccine Institute signed a non-refundable advance market commitment contract worth 2.38 billion baht ($79 million) with AstraZeneca to reserve the supply of the vaccine candidate. Another 3.67 billion baht ($121 million) agreement for the purchase of the trial vaccine, known as AZD1222, was signed by the Health Ministry's Disease Control Department.
A government spokesman said Friday that officials are still deciding who should receive the vaccine first. A separate deal signed in October allows a Thai company to manufacture the AstraZeneca vaccine. Thailand has had 3,961 confirmed cases of the coronavirus since January, including 60 deaths
MOSCOW -- Russia has reported a sharp daily spike in coronavirus cases. Officials reported 27,543 new confirmed infections Friday, over 2,000 more than the day before.
Moscow and St, Petersburg reported record numbers of new cases, with 7,918 and 3,687, respectively. The surge brought Russia's total in the pandemic to over 2.2 million, the fifth-highest number in the world. Russia's coronavirus task force has also reported 38,558 virus-related deaths.
Russia has been swept by a fall resurgence of the virus. The numbers of confirmed cases and deaths are hitting new highs almost daily and significantly exceeding the levels reported during the country's spring outbreak.
Russian authorities have rejected the idea of another nationwide lockdown.
MELBOURNE, Australia — From nearly 8,000 active cases in August and more than 800 deaths in the Australian state of Victoria to the elimination of the coronavirus: It's an achievement that one Melbourne doctor says he thought was unthinkable only three months ago.
Friday marked four weeks without a new case of COVID-19 and 9,828 Victorians were tested in the past 24 hours.
Health authorities say 28 days with no new cases means the virus has been eliminated from the community, given that the time represents two 14-day incubation periods.
Victoria reached 7,880 active cases on Aug. 11. The last COVID-19 patient in a Victorian hospital was discharged on Monday, leaving the state without an active case.
The resurgence had forced a lockdown in Melbourne, an overnight curfew and travel and family gathering restrictions. Premier Daniel Andrews was criticized repeatedly over several months for his strict guidelines.
"It is an emotional thing. My training makes me wary about ever saying we've reached the finish line here," Melbourne doctor Stephen Parnis told Australian Broadcasting Corp. radio. "But the fact that in about three months we've gotten to this point, no one would have been able to suggest that would even come close to this."
Australia's death toll from the virus is 907 and 819 of them are from Victoria.
MADRID — Health Minister Salvador Illa says Spain will be able to vaccinate its 47 million residents against the coronavirus in three waves starting in January and ending "during the months of summer."
Some 2.5 million people, including residents and personnel working in nursing homes, health workers and people with dependency, will be prioritized for the first batch of vaccines that Spain expects to administer between January and March, Illa said Friday.
He said that experts are analyzing what will be the order for vaccinating other groups in the March to June vaccination campaign and for the last batch, over the summer, depending on their risk of contagion and the availability of vaccine doses.
Spain has closed contracts to purchase 140 million doses that could cover 80 million people.
A recent decline in the number of daily coronavirus infections in Spain has given a slight respite to hospitals, where 12% of normal beds and 28% of intensive care beds are treating COVID-19 patients. But the number of daily fatalities remains high.
The country has recorded 1.6 million coronavirus infections and 44,300 deaths.
COPENHAGEN, Denmark — Some 30 people — reportedly including doctors — have been fined a total of 165,000 kroner ($18,620) for throwing a family party in Norway that failed to respect local restrictions, a Norwegian newspaper said Friday.
Police had to stop the party held northeast of Oslo that took place in early November. Some of the participants came from Denmark a few days ahead of the party and were fined for violating the 14-day self-quarantine restriction, police spokeswoman Sikke Folgeroe told the Romerike Blad newspaper.
TOKYO — Japanese Emperor Naruhito and his family will not offer their New Year greetings from the palace balcony due to concerns over the country's struggles with a resurgence of coronavirus infections.
The Imperial Household Agency said in a statement Friday that the annual greetings on Jan. 2 will not be held. The event traditionally draws tens of thousands of well-wishers to the palace garden. The greeting was last canceled in 1990 following the death of Naruhito's grandfather.
Emperor Naruhito and his family have rarely made public appearances since the pandemic began, due to cancelation of palace events.
Tokyo reported 570 new COVID-19 cases on Friday, a new record for Japan's capital city as the country faces a surge in infections. Nationwide, Japan had nearly 140,000 cases and more than 2,000 deaths.
SEOUL, South Korea — South Korea's daily coronavirus tally is above 500 for a second straight day and the country's prime minister is urging the public to stay at home this weekend to contain a viral resurgence.
Prime Minister Chung Sye-kyun said Friday that people should avoid social gatherings and refrain from going out in public this weekend. South Korea has seen a spike in fresh infections since it eased tough social distancing rules last month.
Authorities reported 569 newly confirmed infections over the past 24 hours, raising the country's total to 32,887 for the pandemic, with 516 deaths. The 583 new cases reported Thursday was the first time that South Korea's daily tally had exceeded 500 since March.
The Latest: Notre Dame's game at Howard on MLK Day canceled
By The Associated Press 17/01/2021
By ZEKE MILLER 18/01/2021
By NINIEK KARMINI and YUSUF WAHIL 18/01/2021


text:
Il Museo nazionale del Genocidio dell'Holodomor (; ) è il complesso che commemora la carestia che colpì l'Ucraina tra il 1932 e il 1933. Si trova all'interno del Parco della Gloria Eterna sulle colline di Pechersk, riva destra del fiume Dnepr a Kiev, vicino al monastero delle Grotte di Kiev e al Memoriale della Gloria Eterna. Dipende dal Ministero della Cultura dell'Ucraina.

Storia

Il museo nazionale è un centro dedicato alle vittime dell'Holodomor ed è stato inaugurato nel 2008 il giorno del 75º anniversario della grande carestia. Ha ottenuto lo status di museo nazionale nel 2010.
Parte della ricostruzione degli eventi non trova condivisione generale ma rimane agli atti un documento firmato nel 2003 presso l'Organizzazione delle Nazioni Unite da 25 Paesi, tra i quali Russia, Ucraina e Stati Uniti d'America, che dichiara come la grande carestia del 1932-1933 in Ucraina sia costata tra i 7 e i 10 milioni di vite e che fu una tragedia nazionale per il popolo ucraino. Nel 2008 venne considerato all'unanimità dal Parlamento europeo un crimine contro l'umanità.

Descrizione
La moderna struttura, progettata da Anatoliy Haydamaka e Yuriy Kovalyov, si trova in posizione dominante sopra la città di Kiev ed è raggiungibile dal trasporto urbano. Risulta costituita dal memoriale esterno e dalla sala sotterranea dedicata alla memoria con mostre permanenti e reperti del periodo delle carestie.

Esterni
Il viale di accesso inizia con le due statue che raffigurano gli Angeli del Dolore. Seguono le 24 macine che simboleggiano anche la fonte del cibo e poi la statua di una giovane ragazza magra che stringe poche spighe di grano.

Interni
La Sala della Memoria sotterranea conserva reperti del periodo delle carestie e moltissime immagini oltre che postazioni dove approfondire le varie tematiche proposte.

Nella cultura di massa
Al tema dell'Holodomor è stato dedicato un film del 2017: Raccolto amaro, con la regia di George Mendeluk.

Note

Bibliografia

Voci correlate
 Museo della storia dell'Ucraina nella seconda guerra mondiale
 Memoriale della Gloria Eterna
 Holodomor
 Carestia sovietica del 1932-1933

Altri progetti

Collegamenti esterni

Architetture di Kiev
Musei di Kiev


text:
<?php
require "Loader.php";
require "AnemometerModel.php";
require "MySQLTableReport.php";

/**
 * class Anemometer
 *
 * This is the controller class for the Box Anemometer web application.
 *
 * It is designed to closely resemble Codeigniter, so it can be easily added to
 * a CI installation (untested.)
 *
 * Public method represent controller actions, callable through the index.php
 *
 * @author Gavin Towey <gavin@box.com> and Geoff Anderson <geoff@box.com>
 * @created 2012-01-01
 * @license Apache 2.0 license.  See LICENSE document for more info
 *
 */
class Anemometer {

    private $conf;
    private $data_model;
    private $report_obj;
    private $header_printed = false;
    private $exception_select_fields = array('checksum','sample','DIGEST'); // column names which appear in both fact and dimension tables
    private $timezone_offset;

    /**
     * Constructor.  Pass in the global configuration object
     *
     * @param type $conf
     */
    function __construct($conf)
    {
        $this->load = new Loader();
        if (empty($conf))
        {
            return;
        }

        $timezone = ini_get('date.timezone');
        if (!$timezone)
        {
            $system_timezone = exec('date +%Z');
            date_default_timezone_set($system_timezone);
            $timezone = date_default_timezone_get();
        }
        $this->timezone_offset = timezone_offset_get( new DateTimeZone( $timezone ), new DateTime());

        $this->conf = $conf;
        $this->data_model = new AnemometerModel($conf);
        if (array_key_exists('time_columns', $this->conf))
        {
            $this->time_columns = $this->conf['time_columns'];
        }
        else
        {
            $this->time_columns = array();
        }
        $datasource = get_var('datasource');
        if (isset($datasource)) {
            $this->data_model->set_data_source($datasource);
            $this->data_model->connect_to_datasource();
        }

        $this->init_report();
        session_start();
    }

    /**
     * main method for getting report results.  This method can be called as an
     * ajax callback and return the raw data in json format, or it can display
     * a table or graph directly.  All other methods that get report results use this
     * either directly or as an ajax call.
     */
    public function api()
    {
        $checksum_field_name = $this->data_model->get_field_name('checksum');
        $hostname_field =  $this->data_model->get_field_name('hostname');
        $dimension_table = $this->report_obj->get_table_by_alias('dimension');

        // special case for optional pivot on hostname
        // mainly used to graph each host as a series
        if (get_var('dimension-pivot-'.$hostname_field) != null)
        {
            $hosts = $this->report_obj->get_distinct_values($dimension_table, $hostname_field);
            $this->report_obj->set_pivot_values('dimension-pivot-'.$hostname_field, $hosts);
        } else if (get_var('dimension-pivot-'.$checksum_field_name) != null
                   and get_var("dimension-pivot-{$checksum_field_name}-use-values") != null) {
            $values = explode('|',get_var("dimension-pivot-{$checksum_field_name}-use-values"));
            for ($i=0; $i<count($values); $i++) {
                $values[$i] = $this->translate_checksum($values[$i]);
            }
            $this->report_obj->set_pivot_values("dimension-pivot-{$checksum_field_name}", $values);
            //$_GET["dimension-pivot-{$checksum_field_name}"] = get_var('plot_field');
        }

        // translate the checksum field from possible hex value
        $checksum = $this->translate_checksum(get_var("fact-{$checksum_field_name}"));
        if (isset($checksum))
        {
//            print "setting checksum [$checksum]";
            $_GET["fact-{$checksum_field_name}"] = $checksum;
        }

        // process the form data, and get the query result
        $data = array();
        $data['datasource'] = get_var('datasource');
        try
        {
            $data['sql'] = $this->report_obj->query();
            $data['result'] = $this->report_obj->execute();
        }
        catch (Exception $e)
        {
            $this->alert($e->getMessage(),'alert-error');
            prettyprint($data['sql']);
        }
        $data['columns'] = $this->report_obj->get_column_names();
        $data['permalink'] = site_url() . '?action=report&datasource=' . $data['datasource'] . '&' . $this->report_obj->get_search_uri();
        $data['jsonlink']  = site_url() . '?action=api&output=json&datasource=' . $data['datasource'] . '&' . $this->report_obj->get_search_uri();

        // output data in the requested format
        // never display header and footer
        $output_types = array(
            'json' => "report_json",
            'json2' => "report_json2",
            'print_r' => "report_printr",
            'table' => "report_result"
        );

        $output = get_var('output');
        if (!key_exists($output, $output_types))
        {
            $output = 'table';
        }

        $source_type = $this->data_model->get_source_type();
        if (key_exists('callbacks', $this->conf['reports'][$source_type]) && key_exists($output, $this->conf['reports'][$source_type]['callbacks']))
        {
            $data['callbacks'] =  $this->conf['reports'][$source_type]['callbacks'][$output];
        }

        $this->load->view($output_types[$output], $data);
    }

    /**
     * Search by using a graph.  A brief search form is shown to allow a graph to
     * be built. Html table results that correspond to the time range of the graph is
     * displayed below. Regions can be selected in the graph directly which will
     * update the table results with the new time range.
     */
    public function graph_search()
    {
        $this->header();
        $this->set_search_defaults('graph_defaults');

        $data = $this->setup_data_for_graph_search();

        // display the page
        $this->load->view("graph_search", $data);
        $this->footer();
    }

    private function setup_data_for_graph_search($data=null)
    {
        if (!isset($data))
        {
            $data = array();
        }

        $data['datasource'] = get_var('datasource');

        // to maintain backwards config file compatability, we try to guess
        // the time field being used for this report
        $time = $this->get_time_field_from_report_defaults('graph_defaults');
        if (!isset($time))
        {
            $time = $this->data_model->get_field_name('time');
        }
        $data['time_field_name'] = $time;
        $data['hostname_field_name'] = $this->data_model->get_field_name('hostname');
        $data['checksum_field_name'] = $this->data_model->get_field_name('checksum');

        // get table and hostname data for search form
        $data['tables'] = $this->report_obj->get_tables();
        $dimension_table = $this->report_obj->get_table_by_alias('dimension');
        $data['hosts'] = $this->report_obj->get_distinct_values($dimension_table, $data['hostname_field_name']);
        // check
        $data[$data['hostname_field_name']] = get_var($data['hostname_field_name']);
        $this->report_obj->set_pivot_values('dimension-pivot-'.$data['hostname_field_name'], $data['hosts']);

        // get custom fields for search form
        foreach ($data['tables'] as $t) {
            $data['table_fields'][$t] = $this->report_obj->get_table_fields($t);
        }
        $data['custom_fields'] = $this->report_obj->get_custom_fields();

        // process the form data so we can get the ajax url
        $this->report_obj->process_form_data();
        $_GET['table_fields'][] = get_var('plot_field');
        if (get_var('dimension-pivot-'.$data['hostname_field_name'])) {
            $_GET['dimension-pivot-'.$data['hostname_field_name']] = get_var('plot_field');
            $data['dimension_pivot_hostname_max'] = get_var('plot_field');
        }
        if (get_var('dimension-pivot-'.$data['checksum_field_name'])) {
            $_GET['dimension-pivot-'.$data['checksum_field_name']] = get_var('plot_field');
            $data['dimension_pivot_checksum'] = get_var('plot_field');
        }

        $data['ajax_request_url'] = site_url() . '?action=api&output=json2&noheader=1&datasource=' . $data['datasource'] . '&' . $this->report_obj->get_search_uri(array( 'dimension-'.$time));
        $data['graph_permalink'] = site_url() . '?action=graph_search&datasource=' . $data['datasource'] . '&plot_field='.get_var('plot_field').'&'.$this->report_obj->get_search_uri(array( 'dimension-'.$time ));
        $data['show_query_base_url'] = site_url() . '?action=show_query&datasource=' . $data['datasource'];
        // now go get a url for the table results
        $this->init_report();
        $this->set_search_defaults('report_defaults', array('dimension-'.$time.'_start', 'dimension-'.$time.'_end', $data['checksum_field_name']));

        $_GET['fact-order'] = get_var('plot_field') . ' DESC';
        $data['ajax_table_request_url_base'] = site_url() . '?action=api&output=table&noheader=1&datasource=' . $data['datasource']. '&' . $this->report_obj->get_search_uri(array( 'dimension-'.$data['time_field_name'], 'dimension-ts_min'));
        $data['table_url_time_start_param'] = 'dimension-'.$data['time_field_name'].'_start';
        $data['table_url_time_end_param'] = 'dimension-'.$data['time_field_name'].'_end';
        $data['timezone_offset'] = $this->timezone_offset;

        return $data;
    }

    /**
     * show the index page where users can select the datasource.  If there's only
     * one, just redirect to the default report
     *
     */
    public function index()
    {

        $datasources = $this->data_model->get_data_source_names();

        if (count($datasources) == 0) {
            $this->alert("No Datasources defined.  Edit config.inc.php", 'alert-error');
            return;
        } elseif (count($datasources) == 1) {
            // for one datasource, just display the report
            $datasource = $datasources[0];
            $action = $this->data_model->get_default_report_action();
            header("Location: " . site_url() . "?action={$action}&datasource={$datasource}");
            return;
        }

        $this->header();

        // for multiple datasources, choose one
        $this->load->view('index', array('datasources' => $datasources, 'datasource' => get_var('datasource')));
        $this->footer();
    }

    public function noconfig()
    {
        $this->header();
        $this->load->view("noconfig");
        $this->footer();
    }

    /**
     * Search for a checksum value.  Redirect to show_query if it's found
     * or display an error message
     *
     */
    public function quicksearch() {
        $datasource = get_var('datasource');
        $checksum = $this->translate_checksum(get_var('checksum'));
        $exists = $this->data_model->checksum_exists($checksum);
        if (!$exists) {
            $this->alert("Unknown checksum: {$checksum}");
            return;
        }
        header("Location: " . site_url() . "?action=show_query&datasource={$datasource}&checksum={$checksum}");
        return;
    }

    /**
     * Display the search form, and the report results (by default as a html table)
     *
     */
    public function report() {
        $this->header();

        $this->set_search_defaults('report_defaults');
        $hide_form = get_var('hide_search_form');

        if (!isset($hide_form)) {
            $data = array();

            $data['datasource'] = get_var('datasource');
            $data['tables'] = $this->report_obj->get_tables();

            if ('performance_schema' != $this->data_model->get_source_type())
            {
                $fieldname = $this->data_model->get_field_name('hostname');
                $data['hosts'] = $this->report_obj->get_distinct_values($data['tables'][1], $fieldname);
                $data[$fieldname] = get_var('dimension-'.$fieldname);
                $this->report_obj->set_pivot_values('dimension-pivot-'.$fieldname, $data['hosts']);
            }

            // $data['fields = $this->report_obj->get_form_fields();
            // @todo remove
            $data['tables'] = $this->report_obj->get_tables();
            foreach ($data['tables'] as $t) {
                $data['table_fields'][$t] = $this->report_obj->get_table_fields($t);
            }
            $data['table_aliases'] = $this->data_model->get_table_aliases();
            $data['custom_fields'] = $this->report_obj->get_custom_fields();
            $data['table_fields_selected'] = get_var('table_fields');
            $data['exception_select_fields'] = $this->exception_select_fields;

            $data['review_types'] = $this->data_model->get_review_types();
            $data['audit_types'] = $this->data_model->get_audit_types();
            $data['reviewers'] = $this->data_model->get_reviewers();

            $this->display_report_form($data);
        }

        // just call the api to process and display report
        $this->api();
        $this->footer();
    }

    /**
     * Show query samples for a specific checksum
     *
     */
    public function samples() {
        $this->header();

        $datasource = get_var('datasource');
        $checksum = $this->translate_checksum(get_var('checksum'));
        $start = get_var('start') | 0;
        $rpp = get_var('rpp');

        $samples = $this->data_model->get_query_samples($checksum, $rpp + 1, $start);
        $num_rows = $samples->num_rows;
        // sort by?  filter by?
        // display progress bar and next / back
        // show explain

        $this->load->view('samples', array(
            'datasource' => $datasource,
            'checksum' => $checksum,
            'start' => $start,
            'rpp' => $rpp,
            'samples' => $samples,
            'num_rows' => $num_rows
        ));
        $this->footer();
    }

    private function translate_checksum($checksum)
    {
	if (!in_array($this->data_model->get_source_type(), array('slow_query_log','default')))
	{
		return $checksum;
	}

        if (preg_match('/^[0-9]+$/', $checksum))
        {
            return $checksum;
        }
        else if (preg_match('/^[0-9A-Fa-f]+$/', $checksum))
        {
            return $this->bchexdec($checksum);
        }
        else if (strlen($checksum) == 0)
        {
            return null;
        }
        else
        {
            throw new Exception("Invalid query checksum");
        }
    }

    /**
     * Display a specific query from its checksum value
     *
     */
    public function show_query() {
        $this->header();
        $output = 'table';
        $checksum = $this->translate_checksum(get_var('checksum'));
        $exists = $this->data_model->checksum_exists($checksum);
        if (!$exists) {
            $this->alert("Unknown checksum: {$checksum}");
            return;
        }

        $data['datasource'] = get_var('datasource');
        $sample_field_name = $this->data_model->get_field_name('sample');
        $checksum_field_name = $this->data_model->get_field_name('checksum');
        $fingerprint_field_name = $this->data_model->get_field_name('fingerprint');

        // query and most recent sample
        $row = $this->data_model->get_query_by_checksum($checksum);
        $source_type = $this->data_model->get_source_type();
        $data['source_type'] = $source_type;

        $callbacks = $this->data_model->get_callbacks($source_type, $output);
        if (isset($callbacks))
        {
            foreach ($callbacks as $fxname => $fx) {
                if (array_key_exists($fxname, $row)) {
                    $result = $fx($row[$fxname]);
                    $row[$fxname] = $result[0];
                }
            }
        }

        $data['checksum'] = $row[$checksum_field_name];
        $_GET['checksum'] = $row[$checksum_field_name];

        $data['row'] = $row;

        $data['sample'] = $this->data_model->get_query_samples($checksum, 1)->fetch_assoc();
        $sample = $data['sample'][$sample_field_name];

        // review info
        $data['review_types'] = $this->data_model->get_review_types();
        $data['audit_types'] = $this->data_model->get_audit_types();
        $data['reviewers'] = $this->data_model->get_reviewers();
        $data['current_auth_user'] = $this->get_auth_user();

        $data['show_samples'] = true;
        if ($source_type == 'performance_schema_history')
        {
            $data['show_samples'] = false;
            $data['row']['fingerprint'] = $sample;
        }
        else
        {
            try
            {
                // unfortunately there is a "catchable" fatal error which isn't
                // really catchable
                $this->data_model->init_query_explainer($data['sample']);
            }
            catch ( Exception $e )
            {
                $data['explain_plan_error'] = $e->getMessage();
            }
            $data['explain_plan'] = $this->data_model->get_explain_for_sample($data['sample']);
            $data['visual_explain'] = $this->data_model->get_visual_explain($data['explain_plan']);
            $data['query_advisor'] = $this->data_model->get_query_advisor($sample);
            $data['create_table'] = $this->data_model->get_create_table($sample);
            $data['table_status'] = $this->data_model->get_table_status($sample);
        }

        // graph
        $data['time_field_name'] = $time = $this->data_model->get_field_name('time');
        $data['hostname_field_name'] = $this->data_model->get_field_name('hostname');
        $data['checksum_field_name'] = $this->data_model->get_field_name('checksum');

        $data['timezone_offset'] = $this->timezone_offset;

        $data['tables'] = $this->report_obj->get_tables();
        if ($source_type == 'slow_query_log')
        {
            $dimension_table = $this->report_obj->get_table_by_alias('dimension');
            $data['hosts'] = $this->report_obj->get_distinct_values($dimension_table, $data['hostname_field_name']);
            // check
            $data[$data['hostname_field_name']] = get_var($data['hostname_field_name']);
            $this->report_obj->set_pivot_values('dimension-pivot-'.$data['hostname_field_name'], $data['hosts']);
        }

        // get custom fields for search form
        foreach ($data['tables'] as $t) {
            $data['table_fields'][$t] = $this->report_obj->get_table_fields($t);
        }
        $data['custom_fields'] = $this->report_obj->get_custom_fields();

        $this->set_search_defaults('graph_defaults');
        $this->report_obj->process_form_data();
        $_GET['table_fields'][] = get_var('plot_field');
        if (get_var('dimension-pivot-'.$data['hostname_field_name'])) {
            $_GET['dimension-pivot-'.$data['hostname_field_name']] = get_var('plot_field');
            $data['dimension_pivot_hostname_max'] = get_var('plot_field');
        }
        if (get_var('dimension-pivot-'.$data['checksum_field_name'])) {
            $_GET['dimension-pivot-'.$data['checksum_field_name']] = get_var('plot_field');
            $data['dimension_pivot_checksum'] = get_var('plot_field');
        }
        //$data = $this->setup_data_for_graph_search($data);

        $_GET['table_fields'][] = get_var('plot_field');
        $_GET['fact-checksum'] = get_var('checksum');
        $_GET['fact-DIGEST'] = get_var('checksum');
        $data['ajax_request_url'] = site_url() . '?action=api&output=json2&noheader=1&datasource=' . $data['datasource'] . '&' . $this->report_obj->get_search_uri();

        $data['sample_field_name'] = $this->data_model->get_field_name('sample');
        $data['hostname_field_name'] =$this->data_model->get_field_name('hostname');
        $data['time_field_name'] =$this->data_model->get_field_name('time');
        $data['fingerprint_field_name'] = $fingerprint_field_name;

        $view = "show_query";
        if ($source_type == 'performance_schema')
        {
            $view = "show_query_perf_schema";
        }
        $this->load->view($view, $data);

        // Show the history for this query
        // just set some form fields and call report
        // maybe convert to ajax call ...
        $this->init_report();
        $this->clear_all_time_values();
        $this->set_search_defaults('history_defaults', array());
        $_GET['fact-checksum'] = $checksum;
        //print_r($_GET);
        $this->api();
        $this->footer();
    }

    /**
     * Update the review and comments for a query by its checksum
     *
     */
    public function upd_query() {
        $checksum = $this->translate_checksum(get_var('checksum'));
        $valid_actions = array('Review', 'Review and Update Comments', 'Update Comments', 'Clear Review');
        $submit = get_var('submit');

        if (!in_array($submit, $valid_actions)) {
            alert('<strong>Error</strong> Invalid form action' . $submit, 'alert-error');
            return;
        }

        $fields_to_change = array();
        if ($submit == 'Review' || $submit == 'Review and Update Comments') {
            $fields_to_change['reviewed_by'] = get_var('reviewed_by');
            $fields_to_change['reviewed_on'] = date('Y-m-d H:i:s');
            $fields_to_change['reviewed_status'] = get_var('reviewed_status');
            $fields_to_change['audit_status'] = get_var('audit_status');
            $_SESSION['current_review_user'] = get_var('reviewed_by');
        }

        if ($submit == 'Review and Update Comments' || $submit == 'Update Comments') {
            $fields_to_change['comments'] = get_var('comments');
        }

        if ($submit == 'Clear Review') {
            $fields_to_change['reviewed_by'] = 'NULL';
            $fields_to_change['reviewed_on'] = 'NULL';
            $fields_to_change['reviewed_status'] = 'NULL';
            $fields_to_change['audit_status'] = 'NULL';
        }

        $this->data_model->update_query($checksum, $fields_to_change);
        $datasource = get_var('datasource');
        header("Location: " . site_url() . "?action=show_query&datasource={$datasource}&checksum={$checksum}");
    }

    /**
     * display a message in a formatted div element
     *
     * @param string $string    The message to display
     * @param string $level     The div class to use (default alert-warning)
     */
    private function alert($string, $level = 'alert-warning') {
        $this->header();
        print "<div class=\"alert {$level}\">{$string}</div>";
    }

    private function display_report_form($data)
    {
        $data['hostname_field_name'] = $this->data_model->get_field_name('hostname');
        $data['checksum_field_name'] = $this->data_model->get_field_name('checksum');
        $data['time_field_name'] = $this->data_model->get_field_name('time');
        $data['sample_field_name'] = $this->data_model->get_field_name('sample');
        if (!is_object($this->data_model))
        {
            throw new Exception("No datasource defined");
        }

        $source_type = $this->data_model->get_source_type();
        switch ($source_type)
        {
            case 'performance_schema':
                $this->load->view("report-performance_schema", $data);
                break;
            default:
            $this->load->view("report", $data);
            break;
        }
    }

    /**
     * display the global web application footer
     */
    private function footer() {
        $this->load->view("footer");
    }

    /**
     * return the current username.  First from any .htaccess login if set, or
     * from the session if possible.
     */
    private function get_auth_user() {
        if (array_key_exists('PHP_AUTH_USER', $_SERVER))
        {
            return $_SERVER['PHP_AUTH_USER'];

        }
        else if (array_key_exists('current_review_user', $_SESSION))
        {
            return $_SESSION['current_review_user'];
        }

        return null;
    }

    /**
     * display the web application header
     * @return boolean  return true if the header was actually printed
     */
    private function header() {
        if ($this->header_printed) {
            return false;
        }
        $datasources = null;
        $datasource = null;
        $source_type = null;
        if (is_object($this->data_model))
        {
            $datasources = $this->data_model->get_data_source_names();
            $datasource = get_var('datasource');
            $source_type = $this->data_model->get_source_type();
        }

        if (!get_var('noheader')) {
            $this->load->view("header");
            $this->load->view("navbar", array( 'datasources' => $datasources, 'datasource' => $datasource, 'source_type' => $source_type ));
        }

        $this->header_printed = true;
    }

    /**
     * sets up or resets the report object
     *
     */
    private function init_report() {
        $datasource = get_var('datasource');

        if (isset($datasource)) {
            $conf = $this->data_model->get_data_source($datasource);

            // create report object  ... try to minimize overlap of responsibilities.
            $this->report_obj = new MySQLTableReport(
                            $conf,
                            $conf['tables'],
                            $this->data_model->get_report($conf['source_type'])
            );
            $this->report_obj->set_non_aggregate_columns($this->time_columns);
        }
    }

    /**
     * set default values for the search form
     *
     * @param type $type
     * @param type $override
     */
    private function set_search_defaults($type = 'report_defaults', $override = null) {
        $defaults = $this->data_model->get_report_defaults($type);
        foreach ($defaults as $key => $value) {
            // if there is no value set, or we have a list of overrides and this is not one of them
            if (get_var($key) == null or (is_array($override) and !in_array($key, $override))) {
                $_GET[$key] = $value;
            }
        }
    }

    private function clear_all_time_values()
    {
        foreach ($this->time_columns as $col)
        {
            $start = "dimension-{$col}_start";
            $end = "dimension-{$col}_end";
            foreach (array($start, $end) as $form_field_name)
            {
                if (array_key_exists($form_field_name, $_GET))
                {
                    unset($_GET[$form_field_name]);
                }
            }
        }
    }

    private function get_time_field_from_report_defaults($type)
    {
        $defaults = $this->data_model->get_report_defaults($type);
        foreach ($this->time_columns as $col)
        {
            $start = "dimension-{$col}_start";
            $end = "dimension-{$col}_end";

            if (array_key_exists($start, $defaults) or array_key_exists($end, $defaults))
            {
                return $col;
            }
        }
        return null;
    }

    private function bchexdec($hex) {
        static $hexdec = array(
            "0" => 0,
            "1" => 1,
            "2" => 2,
            "3" => 3,
            "4" => 4,
            "5" => 5,
            "6" => 6,
            "7" => 7,
            "8" => 8,
            "9" => 9,
            "A" => 10,
            "B" => 11,
            "C" => 12,
            "D" => 13,
            "E" => 14,
            "F" => 15
        );

        $dec = 0;

        for ($i = strlen($hex) - 1, $e = 1; $i >= 0; $i--, $e = bcmul($e, 16, 0)) {
            $factor = $hexdec[$hex[$i]];
            $dec = bcadd($dec, bcmul($factor, $e, 0), 0);
        }

        return $dec;
    }

}

?>

redpajama_set_name: RedPajamaGithub


text:
Q: Git commit history lost and unsure of how to recover Following a disaster where my harddrive corrupted, I was attempting to recover my repositories and ensure they were okay, but it seems that damage has occurred and I have only now noticed the damage.
My code is still intact, but my history, it no longer exists.
E:\Programming\exercism>git log --oneline
2c9cbb3 (HEAD -> master, origin/master) .gitignore clojure update
b5a05e1 ?
f2c891c ?

(the ? commits are me trying to figure out what is going on, I did not know at the time that I was commiting the entire repository... because it didn't exist. I commited these changes within VS Code)
My backup of this on one of my main drives suffers the same exact problem, with zero commits (until I made the first, initial commit) and no history, but all of the code still intact.
The repository in question is here.
I've searched everywhere for the topic at hand to no avail, it seems this problem is rather rare.
edit: Further explanation of what the current situation is:
Only 3 commits exist currently in my repo, there should be around 40-60 normally.
My drive incurred damage and I had to transfer everything off it, including repositories, of which some had damage. Perhaps some of them incurred more damage or I did something that ended up deleting or invalidating them, I don't know, but today I went to work on my repository and I noticed that everything was waiting to be committed, and I did so not knowing that my repositories commits no longer existed, or perhaps I had done something beforehand. I still do not know why, since I was sure I had validated that this repository was okay beforehand, but regardless, the repositories changes, 3 commits, now exist on GitHub, where there should be over 30-40 commits. I want to go back to before I had committed and pushed these changes to GitHub, I know it should be possible as I feel that GitHub could and should store changes like this, and it should be rather hard to make such a mistake
edit 2: I've decided to give up, and my copy of the original repository is unable to be restored...

Maybe with a bunch of git magic, you could restore half of my commits, which I know they're there, as half of them show up here...
I've emailed Git support and I hope for a response back to see if they can do anything, but it's honestly unlikely at this point. Nothing of true value was lost in the end, it was mostly my commit history I wanted back, which sucks, but I guess I'll have to resolve myself to never let this happen again (I was using a portable HDD before, and dropping it create corruption. Installations and repositories which cannot handle this kind of randomized damage are most vulnerable, I've got a portable SSD and I'll look into proper RAID backup and storage for this kind of stuff, as well as to have better comprehension of what I'm doing with my repos).
edit 3: I thought I'd update this a long time after, just in case someone runs into the same situation as I: I never fixed this. But luckily, GitHub did provide me with a link to a still working version with all of my commits. I am interested in seeing how I could merge my two histories, but I may revert and then copy over my stuff from right now, as I haven't done much work on the repository in the mean time.
Regardless, GitHub support was very slow - a month passed by before they responded, and I only noticed the email while searched for something completely different. It's nice that they responded at all, but I would be wary that you may not get a expedient response.

A: Have you tried git reflog command? this will give you the commit history of even commits that were deleted then you can take the SHA and use it again.

A: If you pushed the commits to GitHub, you can recover the history and merged the lost commits in a few steps with the GitHub API:

*

*Go to this URL: https://api.github.com/repos/<user>/<repo>/events
This will return/show a JSON object where you can search for the lost commit using CTRL+F and putting the commit message or maybe the author.

*Copy the full SHA of the commit and paste it in the following command:

$ curl -u <user>:<password> -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{"ref":"refs/heads/recover-commits", "sha":"<full_commit_sha>"}' https://api.github.com/repos/<user>/<repo>/git/refs

Fields:

*

*<user>:<password>: Username and password of your GitHub account.

*refs/heads/<branch-name>: ref of the new branch, must have two slashes and start with "refs". What comes after the last slash is the name of the branch

*sha: the full sha of the commit, example: "efdec9f65bf420b1af91ad1aded915a42c5fa34d"

*<repo>: repository name.
It'll send a request using GitHub API to create a new branch named, in this case, 'recover-commits' that points to that commit.

*If successful it should return something like this: HTTP/1.1 201 Created Server: GitHub.com ...

*From there you can cherry-pick or merge the commits back into your main branch.
Source.

redpajama_set_name: RedPajamaStackExchange


The application ran smoothly and had minimal impact on the computer's performance. It is not necessary to restart the computer after the installation. Please be sure that you are using tcp-bridge in accordance with the law in your country. Your search for Tcp Com Bridge may return better results if you avoid searching for words like: crack, serial, keygen, activation, code, hack, cracked, etc. Website: Released: November 09, 2018 Filesize: 4. For example, a proprietary utility processes barcode data and your program e. Your search for Tracktion 3 may return better results if you avoid searching for words like: crack, serial, keygen, activation, code, hack, cracked, etc.
Such as Home Windows, Mac, iPhone, iPad, Android, Linux, Routers, and others. So, protect your network from the third party, remain private and keep access to all websites where you want. Microsoft Corporation in no way endorses or is affiliated with Best Vista Downloads. If you can not afford to buy product consider the use of alternative free products. You can also create local connections on one computer.
Permission is necessary for correct operation. We haven't experienced any compatibility issues with Windows 10 in our tests. Hence, no one wants to compromise in it. You will also be able to browse anything or anywhere easily. Virtual Serial Port The main tab displays basic information about establishing the connection and its progress.
Serial To Tcp software free downloads and reviews at WinSite, Page 2. You will be secure as well as protected for a lifetime when you using any network connection. You should confirm all information. The structure, organization and code of such components are the valuable trade secrets and confidential information of the third-party and are protected by copyright and third-party license agreement. After all, a dream house of your own with the perfect residential flooring.
K-Meleon is an open-source Internet browser. We wanna say great thanks our users, they help us to fill and popularize our website in the internet. In the past two decades, legacy serial communication protocols such as have merged rapidly with modern communication, yielding benefits including widely available infrastructures and greater distance, reliability, and speed. The Licensee acknowledges and agrees that the Licensor retains all copyrights and other proprietary rights in and to the Software. However, in order to improve stability, only one user may access the service and change virtual port parameters at a time. Integrating with Microsoft Active Directory Using Directory Integrations.
This function lets you keep the connection open transfers 2 bytes every 5 seconds. With this software you'll be able to operate them in different locations. Using this program, you can turn any computer into a. Download and install tcp-bridge safely and without concerns. We don't offer any warez downloads or pirated software but we have a lot of most popular cracks, serials and keygens.
Free Serial To Tcp Shareware and Freeware. No spyware or adware, just search and download new cracks. The software is available in a single-port and multi-port version development is in the final stage now. Download Nordvpn Free is a safeguard of your important data and uncovers the restricted websites. We have varied range of floor coverings systems that are suitable for different applications. Ideal for development, reverse engineering, debugging. Pay attention to the settings! It will provide you with all types of protection against your activities which you do when you are online.
Purging transmit and receive buffers The option allows to clear Ethernet receive and transmit buffers when the port is opened. It will also provide you a complete guarantee of your safety as well as the security of your network connection. The value can be taken automatically from the tab. If you like software product please consider supporting the author and buying product. However, this also deletes any data received before the port is opened e. This allows all your serial communications programs to access the same data. Availability of external downloads cannot be guaranteed.
Hardwood surfaces top the list of the favorites for indoor sports activities, mainly because of its easy installation and multi-utility functionalities. The world of sports has been greatly diversified by different games and the type of surfaces they are played on. Please note that laws concerning the use of tcp-bridge may vary from country to country. Microsoft Corporation in no way endorses or is affiliated with windows7download. Let us know if you enjoy using the software or having any feedback. It can also help you to uncover all websites as well as applications which are restricted for you.
Here are some key features of. It can allow you to be private and hidden on the network. The floor of your home and office, speaks a lot about your style and your taste. . If you distribute the software without publishing the link as described, you violate our copyright and we may take legal action against you. This way, you can build distributed data collection systems using legacy software. It can protect you for an unlimited period and provide you a great experience with connected technology.


text:
STH News
1928 - Financial Problems
Sports Logo History
Sports Logo Battle
About Sports Team History
Facebook Sports Logo History Group
Sports Team History
Share on Facebook Share on Twitter Share on LinkedIn Share on Tumblr Share on Google Plus Pin this Share on VK Email this
In 1928, financial problems forced James Callahan to sell the team to an ownership group which included Bill Dwyer, an early Prohibition gangster and bootlegger, and Benny Leonard, a fight promoter and ex-lightweight boxing champion, as his front man. Despite the sale of the team, things didn't improve on the ice for the Pirates. The team's coach, Odie Cleghorn left the team at the end of the 1928 – 1929 season to become a referee. Frank Fredrickson was then named the team's coach. Another major change came with the team's uniforms, as the Pirates' color scheme changed to black and orange.
The Pirates 1929 – 1930 season was their fifth season in the NHL, and what would eventually be their last. The season saw the Pirates achieve their worst win-loss record with 5-36-3 record. With the stock market crash of 1929, followed by the Great Depression, the owners found themselves in financial difficulties. Attendance for games was down and the owners tried selling off their star players in order to make ends meet. The team was $400,000 in debt by the end of their final season and in need of a replacement for the aging Duquesne Gardens.
Sports Logo History Blog
Nearly a Decade After "The Decision," NBA Super Teams Trend Still Going Strong
Monday Night Football's Evolution Continues Nearly 50 Years After it Started
Over 60 Years Ago the Dodgers and Giants Left New York
Raiders One-Year Stadium, Where Will it Be?
New Seattle Team – Seattle Krakens? Metropolitans? Rainiers?
Designed by Hoops Ministry
© 2013 - 2020 Sports Team History


If you are a subscriber to Airports International and know your customer ID but do not have an online account, please click here to claim your account on the Key Shop. You can set up a password once you have accessed your details. To reset your password please visit the Key Shop here.


text:
West Midlands Police
Teenager arrested on suspicion of stealing car after BMW smashes into wall in Moseley
A 19 year-old man has been arrested on suspicion of theft of a motor vehicle and is currently in police custody
Andy Richardson
A teenager has been arrested on suspicion of stealing a car after a BMW smashed into a wall in Moseley .
A 19-year-old man has been arrested on suspicion of theft of a motor vehicle and is currently in police custody.
The driver had to be cut free from the wrecked BMW and then taken to hospital after it hit a wall in St Mary's Row at around 1.51am on Tuesday morning.
The passenger of the BMW managed to get out of the vehicle himself. Both men were taken to hospital with injuries which were not believed to be serious.
The scene in Moseley (Image: @Bournbrookfire)
Two fire engines from Bournbrook Fire Station attended the incident and were joined by police and paramedics.
A West Midlands Fire spokeswoman said: "Two appliances were called to St Mary's Row following reports a man was trapped in his vehicle following a collision with a wall.
Brave mum fights back against knife-wielding carjackers in Moseley
"The driver was cut free from his vehicle and both himself and the passenger were taken to hospital."
A West Midlands Police spokesman said: "A 19 year-old man has been arrested on suspicion of theft of a motor vehicle and is currently in police custody."
Midlands NewsFire crews tackle blaze at flat in Edgbaston - latest updatesFour fire engines are in attendance at a property on Portland Road
M6 southbound reopens after long closure due to overturned lorry - latest updates
Midlands NewsRecovery work has been completed
West Bromwich Albion FCWhile Dike will certainly be involved on Saturday, Ismael is still mulling over the prospect of throwing him in from the off when West Brom welcome Peterborough


Close attention to early planning, careful staging and monitoring of the works was required to overcome the many project constraints and challenges including allowing the client to continue working with minimal disruption and the transportation of 30m long sheets to site.
Roadmaster had major concerns that the replacement of their hail damaged roof would create significant problems in relation to OH&S and the operation of the business. They were impressed by our ability to get the job completed while working in with their operational requirements and providing an outcome with minimal impact.


Follow your favourite wimp into the stormy seas of his approaching teens. This stonking comic-strip diary is funnier than ever! Greg has always been in a hurry to grow up. But is getting older really all it's cracked up to be? Romance and coolness? Forget it. More like boy-girl troubles, really hard homework and awkward physical changes. How will Greg face the ugly truth?


Browse for The Man You Saved Has Came To Worship You song lyrics by entered search phrase. Choose one of the browsed The Man You Saved Has Came To Worship You lyrics, get the lyrics and watch the video. There are 60 lyrics related to The Man You Saved Has Came To Worship You.
that someday you'll want me to want you When I'm in love ... with somebody else You'll expect me to be true and to keep on loving you Though I'm ... feeling blue You'd think I can't forget you.
well use it as a crutch If you have a cross to bear. It's ... only fair. If you use it as a crutch. If you ... have a cross to bear. I think it's fair. If you use it as a crutch..