si

Brothers and Sisters

A friend posted this quote earlier today on Facebook and I had to borrow it.

"To the outside world we all grow old. But not to brothers and sisters. We know each other as we always were. We know each other's hearts. We share private family jokes. We remember family feuds and secrets, family griefs and joys. We live outside the touch of time."
 -Clara Ortega 

Our children are all still young but it made me go back and look at the past 9 years. Here's what I found:






















So very thankful they have each other.








si

Guest Post By Lynn AKA "Sign And Save Lives"

Guest post by Lynn

My name is Lynn, I’m 60 years old and I’d like to share my son’s illness with you all to try and help you understand the predicament thousands of others like my son are faced with next year, regarding DWP Benefit Reform for the sick and disabled.

My youngest son aged 40 has suffered from Paranoid Schizophrenia and emotional instability Personality Disorder since the age of 18. I have lived the illness with my son, the highs, the lows, and numerous hospital admissions over the years. My son had another very bad psychotic breakdown in August 2010, which resulted in a section 3 of the Mental Health Act and he has been in hospital care for 2 years this time.

Although my son is nearly 40 years old, mentally he is only 15, he is immature and extremely vulnerable and easily exploited. Therefore needs much support and care when living in the community.

My son, like thousands like him, who suffer from a Severe and Enduring mental health problem, has no voice when it comes to the DWP or ATOS, he like others wouldn’t be able cope with being interviewed next year 2013 when the Disability Living Allowance changes to Personal Independence Payment and he has to be assessed by DWP.  He, again like many others, who suffer severe mental illness, doesn’t believe he is ill, and just wants to be left alone.

The severely mentally ill will be hugely disadvantaged by the GOV/DWP/ATOS putting them through this ridiculous assessment in 2013, particularly people who don’t believe they are mentally ill, who to anyone who doesn’t know them, or, their background, can come across as fine, strong, healthy people, and may not appear ill at all, or, that they need help and support in their day to day lives, keeping them and others safe in the community, they won’t see the risks for the mentally ill, and many won’t have family or support to go with them to the assessments!

My son would tell an assessor he wasn’t ill, and say he just wanted to be left alone to get on with his life, which would see him losing his DLA/PIP for sure. Yet in reality, my son cannot get on a bus or use any public transport due to his paranoia that people are staring at him. He would get upset and get angry, probably end up getting in to trouble, because his self-esteem is low as is his confidence, and he thinks the world and his mate are against him.

To avoid this kind of stress and a way of coping, he needs taxis to anywhere he has to go, shopping, to any appointments he has. It is the only way he can cope with going out, and without his DLA/PIP he would be housebound and have no quality of life at what so ever.

If mental health sufferers lose their DLA/PIP benefit, (same as all disabled), it will place a huge extra burden on family, carers and friends emotionally and financially to provide the care and support and finance they need, which most of us couldn’t afford! All to often family/friends who are carers, as in our own case, are ill, worn down.

I was diagnosed 2 years ago with Moderate to Severe ME/CFS and told by my consultant it was due to being a carer for 22 years. My husband is 76 years old, in bad health, tired, it catches up with us and having to provide even more care to our loved ones should they lose their benefit, will put carers at more risk mentally and physically.

Because I understand the plight of the severely mentally ill, and have insight to the wider implications of what the GOV/DWP actions will cause for the sufferer and family, and carers, I have started this e-petition asking the Government to Exclude all severely mental ill from the 2013 DLA/PIP assessments, because what the GOV/DWP are doing is the biggest travesty and betrayal to our sick and disabled who in most cases have already proved their illness/disability with medical evidence and assessments they have already had to go through to get their DLA in the first place, and many like my son, were awarded DLA for an Indefinite period because they have provided proof their illness/disability is a life long one!

There are a number of e-petitions about Benefit Reform, I have signed them all which everyone should do to try and help protect all disabled, however, this petition is specifically to try and get the severely mentally ill EXCLUDED from the assessments because they do not have a strong enough voice and they will be hugely disadvantaged as I said before.

As a mum of a severely mentally ill son, and on behalf of all other sufferers like him, I know these assessments will cause SUICIDES in our most vulnerable, and cause huge hardship all round, please may I respectfully appeal to your good hearts and souls to support this e-petition and sign it, to share it with family & friends, on twitter/face book accounts, groups you may belong to, as I need 100,000 signatures to stand any chance of getting the House Of Commons to debate this, and at the moment I only have 2,456 signatures,  we only have until March to get the 100K!

Thank you all for taking the time to read this my plea, and I very much hope you will feel able to sign this petition.
http://epetitions.direct.gov.uk/petitions/35092

Kind Regards

Lynn
---------------------------------------

You can follow Lynn on Twitter  > @SignSaveLives




si

"Residential Training Provision", A Nicer Word For Work Camps?

Yesterday morning I was horrified to read that a report had surfaced saying they were planning "Residential Training" for Disabled and long term Unemployed people. After all welfare reform has been crashing disaster so far. Thousands have people have been declared fit for work with no impact assessment, or proper program in place to actually get us back into work after years of unemployment. So far it seems like a cold hearted attempt to get us of benefits at any cost, they don't seem to care if we end up with a job, or whether we end up destitute and dying, just as long as we don't ever get "ESA".

Also the anti-disabled propaganda display has made disabled people even more unattractive to potential employers, why did they do this ridiculous thing we all wonder? I think it's a misinterpretation of something good old Mansel Aylward said in his horrific "Psycho Social Theory Of Disability". He told them they needed to make disabled people working the "social norm". They could have chosen to try and make employers want to employ disabled people, encouraged compassion and patience, offered training and support for disabled people straight away. But instead the idiots opted to just make it a social crime to dare to claim disability benefits, no matter how ill you really are. Now people who walk with sticks or use mobility scooters (even those who aren't on any disability benefits) face abuse in the streets, and are accused of "faking" their disability.

 The thousands of people dying after being told they were "fit to work" (10,600 in the first year) are being covered up and minimised, now not even recorded by the DWP. If you are disabled and don't work you are considered lowest of the low now. The fools have created yet another "barrier to work" for us.

So when I read they were planning work camps, I had no trouble believing IDS and his evil crew had come up with that idea. I broke out in a cold sweat and felt the familiar twist of panic and though "My God what are they going to do to us now?..." But then I actually read the paper.

It doesn't seem as bad as we first thought, its only in the planning stages at the moment but they are now actually doing what they should have done in the first place. Holding consultations about what they can actually do to HELP disabled people get back into work. It is literally residential training, and you will have a choice as to whether you go as residential or not. You can read the full report "Residential Training Provision - Independent Advisory Report" by clicking here.

As I said before they SHOULD have been looking into things like this before they rolled out the new "Work Capability Assessment" and had it in place before they declared thousands of us fit for work, closed lots of Remploy factories, and cut us adrift, making us sign on JSA with advisors who have no training in helping disabled people back to work. This is the sort of thing the report suggests, more advisors who are trained, and more practical courses that actually help you cope with disability and get employed. Not rubbish just designed to make money for the companies that provide them, while we're pushed from pillars to post and called "Lying Thieving Bastards" behind our backs.

All we have to fear is that they won't listen to what has been recommended, which they haven't been great at so far lets face it have they? Or they will start to do it, but like everything they've done in the past that works they will stop it because it costs too much.

We must keep our eyes on how this progresses, but don't be too scared, 75% of people on disability benefits want to work, they are finally going to try and help us. If they listen to the independent advice that is, and Tories generally don't like listening to anyone else's advice do they? But it shows our campaigning is paying off, they are looking into it at least.

Please help keep up the pressure on them to finally get it Right  by signing the War On Welfare Petition if you haven't already.




si

Tout est possible dans notre République !

Révélateur, entre-autre, d'une certaine conception de l'effort pour combler le déficit public... On apprend dans Le Canard enchaîné que l'homme qui justifiait sa faramineuse augmentation de 206% par un souci de transparence perçoit toujours depuis le...




si

Contrôle technique : les deux-roues aussi ?

Bientôt un contrôle technique pour les motos et autres scooters ? C'est en tout cas ce que recommande un rapport du conseil général des ponts et chaussées pour les deux roues motorisés, cyclomoteurs et motos. L'extension d'un contrôle technique aux deux...




si

Rétention de sûreté: Sarkozy insiste

Le chef de l'Etat a demandé au président de la Cour de cassation de trouver le moyen juridique de contourner la censure du Conseil constitutionnel. Celui-ci a limité l' application immédiate de la loi sur la rétention de sûreté pour les criminels déjà...




si

Décision le 3 mars sur le site "note2be.com"

Le Snes-FSU, la FSU et six enseignants ont assigné en référé le site et son co-fondateur, Stéphane Cola, pour avoir proposé aux élèves de noter leurs profs nommément. Le sort du site internet "note2be.com", qui, en proposant aux élèves de noter leurs...




si

Crédit d'impôt Borloo : Assistance et cours informatique à domicile

Le gouvernement vient d'annoncer un crédit d'impôts sur les services à la personne . Celui ci est ouvert aux ménages non imposable. Il permettra à ceux ci de faire intervenir un prestataire d'aide à domicile comme par exemple, et c'est encore peu connu,...




si

Vijesti :: Potpisan sporazum o suradnji između Akademije za umjetnost i kulturu u Osijeku i Hrvatske komore dentalne medicine

Autor: Redakcija 031 Naslov: Potpisan sporazum o suradnji između Akademije za umjetnost i kulturu u Osijeku i Hrvatske komore den
Postano: 12.11.2024. 11:59 (GMT 1) Dana 11. studenog 2024., točno u 11 sati i 11 minuta, u Svečanoj dvorani Akademije za umjetnost i kulturu u Osijeku potpisan je sporazum o suradnji između Akademije i Hrvatske komore dentalne medicine. Sporazum su uime institucija potpisali dekanica Akademije, akademkinja Helena Sablić Tomić, i dr. sc. Hrvoje Pezo, predsjednik Komore.

Sporazum označava početak suradnje između jedinstvene umjetničko-znanstvene institucije u zemlji i strukovne organizacije koja predstavlja dentalnu medicinu u Hrvatskoj. Cilj je sporazuma objediniti znanje i resurse kako bi se postigli viši standardi u razumijevanju i unaprjeđenju zajedničkih područja djelovanja koji se protežu kroz edukaciju, zdravstvo, kulturu i interdisciplinarne projekte koji se razvijaju na specijalističkom studiju Kreativnih terapija pri Akademiji za umjetnost i kulturu u Osijeku.

Ovim partnerstvom želimo otvoriti nove mogućnosti suradnje u području obrazovanja i profesionalnog razvoja te omogućiti razmjenu iskustava između umjetničko-znanstvene zajednice i medicinske struke“, istaknula je akademkinja Helena Sablić Tomić. „Akademija i Komora mogu se zajedničkim naporima baviti istraživanjem novih pristupa u edukaciji kao i poticanjem šireg društvenog dijaloga o važnosti holističkog pristupa zdravlju.

Predsjednik Komore dr. sc. Hrvoje Pezo naglasio je da sporazum predstavlja jedinstvenu priliku za razvoj novih standarda u edukaciji o zdravstvenoj kulturi i prevenciji. „Spoj umjetničkog i znanstvenog pristupa, uz medicinsku ekspertizu, omogućuje nam da dublje sagledamo utjecaj koji zdravlje ima na svakodnevni život, ali i na kulturu i društvenu dinamiku. Vjerujemo da će se kroz ovu suradnju razvijati inovativni pristupi obrazovanju i informiranju javnosti,“ izjavio je dr. Pezo.


Tekst i foto: Akademija za umjetnost i kulturu u Osijeku




si

Vijesti :: Sigurno i bez pirotehnike u nadolazećim blagdanima

Autor: Redakcija 031 Naslov: Sigurno i bez pirotehnike u nadolazećim blagdanima
Postano: 12.11.2024. 13:22 (GMT 1) Kako bi još jednom pred nadolazeće blagdane, građanima poslali zajedničku poruku da je od izuzetnog značaja tijekom veselja i slavlja voditi računa o sigurnosti.

Zajednički možemo postići da nam nadolazeći blagdani budu mirni i spokojni. Suzdržite se od uporabe pirotehnike i na taj način kreirajte mirno i sigurno okruženje za vašu obitelj, prijatelje, susjede u vašem kvartu. Vodimo računa jedni o drugima posebno u vrijeme blagdana.

Iz policije podsjećaju da petarde i rakete nisu dio blagdanskog ozračja i njihovo neoprezno i nestručno rukovanje može izazvati teške posljedice. Pirotehnička sredstva nisu bezopasna, pogotovo kada su u dječjim rukama, i od njih mogu nastupiti teške tjelesne ozljede šaka, ruku, očiju i lica. Petarde uzrokovati požare, a njihova uporaba može biti itekako opasna u zatvorenim prostorima i na mjestima gdje se okuplja veći broj ljudi.

Kazne za one koji ne poštuju propise su dosta visoke.

Učinite svoju okolinu sigurnom, brinite za svoje susjede posebno starije životne dobi, kao i kućne ljubimce, kojima detonacije petardi nisu nimalo ugodne.


Foto: Pixabay.com/Ilustracija




si

Događaji - najave i recenzije :: 3. Simpozij zdravstva "Tvoj dodir, njihov puls" [2024.]

Autor: Redakcija 031 Naslov: 3. Simpozij zdravstva "Tvoj dodir, njihov puls" [2024.]
Postano: 13.11.2024. 9:23 (GMT 1) Treći po redu Simpozij zdravstva (SIZOS), koji je posvećen edukaciji šire javnosti našega grada držat će se 15. i 16. studenog 2024. u prostorijama Fakulteta agrobiotehničkih znanosti.

Prošlogodišnji simpozij obilježio je listopad kao Mjesec ženskog zdravlja, tijekom kojeg smo obrađivali ključne teme vezane uz žensko zdravlje. Događaj je privukao više od 150 sudionika, među kojima su najveći dio činili studenti, ali i svi ostali zainteresirani za ovu temu.

Tema ovogodišnjeg simpozija je „Tvoj dodir, njihov puls“. Studenti Medicinskog fakulteta Osijek, profesori i doktori KBC-a Osijek, kao i udruge poput Crvenog križa, jednostavno će i pristupačno prenijeti znanja o spašavanju ljudskih života. Neke od tema uključuju prepoznavanje i postupanje u slučaju infarkta, pravilnu reakciju kod stranog tijela u oku te najčešće prijelome i načine pružanja prve pomoći u tim situacijama.

Sudionici će imati priliku postavljati pitanja stručnjacima tijekom okruglih stolova, na teme kao što su anestezija i intenzivna medicina te hitna medicina, kao i stjecati praktično znanje kroz radionice, uključujući osnove održavanja života, održavanje života u pedijatrijskoj populaciji i mnoge druge.

Cilj ovogodišnjeg simpozija je pružiti osnovna znanja i vještine studentima i široj javnosti u prepoznavanju i pravilnom postupanju u hitnim stanjima.




si

Vijesti :: Reprezentativci iz redova Nogometnog kluba Osijek ponovno u akciji

Autor: Redakcija 031 Naslov: Reprezentativci iz redova Nogometnog kluba Osijek ponovno u akciji
Postano: 13.11.2024. 10:15 (GMT 1) Reprezentativci iz redova Nogometnog kluba Osijek opet su u akciji. U A selekciju Bosne i Hercegovine ponovno je pozvan Nail Omerović koji je nedavno debitirao protiv Mađarske u Ligi nacija. Sada je ostao u konkurenciji za predstojeće dvoboje u istome natjecanju, protiv Njemačke (16. studenoga) u Freiburgu i Nizozemske tri dana kasnije u Zenici. Sergej Barbarez ga također vidi na poziciji desnog bočnog, na kojoj najčešće igra i u redovima Bijelo-plavih. Arnel Jakupović ostao je i nadalje na širem popisu reprezentativaca Austrije za utakmice protiv Kazahstana i Slovenije. „Na oku“ je, dakle, izborniku Ralfu Rangnicku koji prati njegove igre za NK Osijek, što mu je zasigurno motiv više da se kod nas pokaže u najboljem izdanju.

Mlada reprezentacija u play-offu s Gruzijcima
Ovaj puta imamo trojicu igrača koji su dobili pozive za U-21 selekciju Hrvatske. To su Nikola Čavlina, Marko Soldo i Ivan Cvijanović, za koje možemo reći da su standardni u ovoj selekciji, dok su na pretpozivu ostali Domagoj Bukvić i Šimun Mikolčić. Izabranike Ivice Olića očekuju dva izlučna susreta play-offa na kraju kvalifikacija za Europsko prvenstvo i to protiv Gruzije. Prvo će se igrati 15. studenoga u Tbilisiju, a 19.11. uzvrat je na riječkoj Rujevici. Niko Farkaš i Filip Živković iznova su uvršteni u reprezentaciju U-19 koja svoje kvalifikacije za plasman na kontinentalnu smotru nastavlja turnirom u Karlovcu. Od 13. do 19. studenoga Hrvatska će redom igrati protiv Armenije, Bjelorusije i Srbije. Imamo i dvojicu U-18 reprezentativaca. To su Fran Peček i Ivan Barić, također naši juniori koji putuju u Rijeku na prijateljski turnir gdje će naša nacionalna vrsta za protivnike imati vršnjake iz Portugala, Republike Irske i Japana. I za kraj, Matej Grahovac i Dražen Jaman uvršteni su u selekciju U-17 za dvije kontrolne utakmice s Ukrajinom, također u Rijeci.


Tekst: NK Osijek
Foto: Igor Miličić/Arhiv




si

Događaji - najave i recenzije :: 16. Noć kazališta u Osijeku i Belom Manastiru

Autor: Redakcija 031 Naslov: 16. Noć kazališta u Osijeku i Belom Manastiru
Postano: 13.11.2024. 13:00 (GMT 1) 16. Noć kazališta održat će se u subotu, 16. studenog 2024. Noć kazališta već šesnaestu godinu zaredom slavi snagu izvedbenih umjetnosti i bogatstvo scene.

Od svog početka 2008. godine do danas izrasla je u višednevni kulturni događaj koji se odvija diljem zemlje stvarajući jedinstvenu priliku za kazališne užitke nekoliko dana prije i nakon središnjeg događanja.

Ova manifestacija naglašava važnost kazališta, kako profesionalnog tako i amaterskog, te okuplja raznolike izvedbene forme.

Potiče kreativne susrete, razmjenu ideja i poziva publiku da se poveže s umjetnicima.

Kazališta postaju mjesta susreta, otvorena za sve i pružaju priliku za neponovljivo iskustvo koje obogaćuje svakog sudionika.

[Program]

Osijek
HNK u Osijeku
19:00 sati – Fabijan Šovagović – “Sokol ga nije volio” – drama, režija Filip Šovagović. Ulaznice u slobodnoj prodaji

Beli Manastir
Gradsko kazalište Beli Manastir
Petak, 15. studenog 2024.
16:00 – 20:00 sati – Dvorana za produkcije – Umjetnička škola – “Audicija za snimanje filma”. Ulaz besplatan
17:00 – 20:00 sati – Velika galerija CZK – Izložba “Živa povijest kroz umjetnost” autorice Mihaele Vojtek. Ulaz besplatan

Subota, 16. studenog 2024.
18:00 – 21:00 sat – Velika galerija CZK – Izložba „Živa povijest kroz umjetnost“ autorice Mihaele Vojtek. Ulaz besplatan
20:00 sati – Velika dvorana CZK – premijera – “Inspektor Ja” – komedija, Umjetnička organizacija „Do zvijezda“. Ulaznica 4 €
21:00 sat – Velika dvorana – “Ja, debela?”, komedija




si

Vijesti :: Grb grada Malog Lošinja dvojici pripadnika Jedinice specijalne i interventne policije Osijek

Autor: Redakcija 031 Naslov: Grb grada Malog Lošinja dvojici pripadnika Jedinice specijalne i interventne policije Osijek
Postano: 13.11.2024. 16:00 (GMT 1) Povodom Dana Grada Malog Lošinja dodijeljen je Grb Grada i dvojici pripadnika Jedinice specijalne i interventne policije Osijek, za izuzetnu hrabrost, stručnost i profesionalnost u realizaciji složene akcije izmještanja mine iz lošinjskog akvatorija 14. ožujka ove godine.

Robert Dorinka i Tomislav Slabinac su ronioci Jedinice specijalne i interventne policije Osijek, koji su sudjelovali u izmještanju mine zaostale iz 2. svjetskog rata, koja se nalazila u lošinjskom akvatoriju.

Da se radilo o opasnom podvigu, potvrđuje činjenica da je zbog bombe teške oko 1000 kilograma, uoči početka akcije zbog mjera sigurnosti u potpunosti evakuirano stanovništvo iz takozvane crvene zone, odnosno područja uvale Čikat. Osim toga je tijekom akcije bila na snazi privremena zabrana cestovnog, pomorskog i zračnog prometa.


Tekst i foto: PU osječko-baranjska




si

Događaji - najave i recenzije :: CineStar Osijek [14.-20.11.2024.] [program] [nagradno darivanje]

Autor: Redakcija 031 Naslov: CineStar Osijek [14.-20.11.2024.] [program] [nagradno darivanje]
Postano: 13.11.2024. 21:00 (GMT 1)

Uronite u mračni svijet paranormalnih istraživanja s mlađim Hellboyem, smještenim u 1955. godinu, u rane dane B.P.R.D.-a (Biro za paranormalna istraživanja i obranu). Hellboy (Jack Kesy) se pridružuje istraživačici Bobbie Jo Song u misiji transporta opasnog pauka. No, kada pauk pobjegne, njihov lov kroz divljinu Apalačkih planina vodi ih do Toma Ferrella (Jefferson White), vještca koji se vraća nakon dugo vremena kako bi ispravio svoje grijehe. U njihovoj potrazi nailaze na Coru Fisher, djevojku koju je Tom davno napustio. Zajedno se suočavaju s nizom zlih sila koje prijete njenoj duši. Dok mračna magija i zlokobna stvorenja preplavljuju ovu atmosferičnu priču, Hellboy mora iskoristiti svoje vještine i nadnaravnu snagu kako bi porazio sile tame. Za sve ljubitelje Hellboy stripova i filmova, ova avantura donosi mješavinu horora, akcije i okultnih tema, te vraća omiljenog junaka u novom, mračnijem svjetlu.

[Nagradno darivanje]

Portal Osijek031 daruje 1x2 ulaznice za film "Hellboy: Izopačena sjena". Nagradno darivanje možete pronaći na našoj Facebook stranici.






CINESTAR OSIJEK
Portanova centar, Svilajska 31 a, Osijek, 060 32 32 33, Cijena 1,71kn/min za pozive iz fiksne mreže s PDV-om. Cijena 2,92kn/min za pozive iz mobilne mreže s PDV-om.
BLITZ-CINESTAR d.o.o., Branimirova 29, 10000 Zagreb
OIB 24146311117; MB 1734067,
Cinestarcinemas.hr


Moja CineStar srijeda

Ostvarite pogodnost kupovine ulaznica SRIJEDOM po povoljnijoj cijeni!

Mogućnost kupovine ulaznica i za IMAX i 4DX projekcije po povoljnijoj cijeni!

Ulaznice možete kupiti na blagajnama CineStar kina, Cinematima, putem iCineStar aplikacije ili ONLINE kupovinom.

Dodaci (4DX, 3D, eXtreme, VIP i LOVEBOX sjedala, te dodataci za filmove čija je dužina trajanja veća od 120 min, 140 min i više) se naplaćuju u punoj cijeni na povoljniju cijenu kino ulaznice unutar usluge Moja Cine Srijeda.

Prilikom korištenja Stars Club 2x Bonus kartice u svrhu plaćanja usluge Moja Cine Srijeda bilježe se bodovi na kartici.

Pogodnost Moja Cine Srijeda ne vrijedi:
- blagdanima i praznicima
- za pretpremijene projekcije
- za Gold Class projekcije
- za Spektakle u CineStaru (opera, balet, koncerti)
- za dokumentarne filmove u regularnim dvoranama, IMAX-u i Gold Class-u
- za ostale sadržaje koje CineStar odredi

Blitz-CineStar zadržava pravo da određene filmove i projekcije koje prikazuje srijedom, izdvoji iz akcije Moja Cine srijeda. Tada se ulaznica naplaćuje po punoj cijeni.

Za sva pitanja obratite nam se na: info@cinestarcinemas.eu




Tekući CineStar raspored je uvijek dostupan u tjednom pregledniku najava, pri vrhu naslovnice portala Osijek031.com i u mjesečnom pregledu - Najave 031




si

Vijesti :: Svaki četvrti Hrvat pati od ‘nevidljive’ kronične bolesti, pitali smo liječnika kako prepoznati simptome

Autor: Redakcija 031 Naslov: Svaki četvrti Hrvat pati od ‘nevidljive’ kronične bolesti, pitali smo liječnika kako prepoznati simp
Postano: 13.11.2025. 20:15 (GMT 1) Ne postoji jedna tableta koja će smanjiti probavne tegobe i mogućnost razvoja probavnih bolesti, kaže nam odmah prof. dr. sc. Silvio Mihaljević, specijalist gastroenterologije iz Croatia poliklinike u Osijeku.

Kako navodi, stres, neredovita prehrana, hrana s puno masnoća i koncentriranih ugljikohidrata su sve redom faktori koji mogu dovesti do prolaznih probavnih tegoba, a, ako su pacijenti duže vremena izloženi nepravilnom stilu prehrane, mogu dovesti i do razvoja ozbiljnih bolesti, kao što su GERB, ulkusna bolest želuca i dvanaesnika, NASH, upalne bolesti crijeva, i slično.

Učestalost ovih problema pritom je sve veća. Primjerice, više od pola milijuna ljudi u Ujedinjenom Kraljevstvu ima upalnu bolest crijeva, od kojih su dva glavna oblika Crohnova bolest i ulcerozni kolitis. One nastaju kada imunološki sustav napadne crijeva, uzrokujući niz iscrpljujućih simptoma od bolova u trbuhu i gubitka težine do proljeva i krvi u stolici.

Vrlo često se gore navedene bolesti razvijaju tijekom dužeg vremenskog razdoblja s vrlo nespecifičnim tegobama u samom početku bolesti. Upravo je zato izuzetno važno obratiti pažnju na preventivne preglede, kaže prof. dr. sc. Mihaljević, jer postavljanje dijagnoze u ranoj fazi bolesti značajno doprinosi kraćem trajanju liječenja, manjom mogućnošću za razvojem brojnih komplikacija, a samim time i boljom kvalitetom života i puno kraćim izostankom s posla.

Uzmimo za primjer samo nealkoholnu bolest masne jetre, jednu od najčešćih uzroka kronične bolesti jetre te najbrže rastuće bolesti probavnog sustava. Prema posljednjim podacima, svaki četvrti građanin Hrvatske ima nealkoholnu masnu jetru kao posljedicu nezdrave prehrane, konzumacije alkohola i nekretanja. Prof. dr. sc. Mihaljević navodi stoga da je iznimno bitna redovita kontrola laboratorijskih nalaza koji ukazuju na funkciju jetre jer kronične bolesti nemaju značajnije probavne tegobe, nego samo blage i nespecifične smetnje kao brzo umaranje i opća slabost.

Te nespecifične simptome pacijenti ignoriraju tako da se vrlo često brojne kronične bolesti jetre pronađu u poodmakloj fazi kada je liječenje manje uspješno. Zbog svega navedenog redovite kontrole jetrenih nalaza su najbitnije u ranom otkrivanju kroničnih bolesti jetre”, kaže specijalist gastroenterologije.

Kako bi potaknula građane na preventivnu brigu o zdravlju, Croatia Poliklinika u Osijeku do kraja studenog omogućuje 20 posto popusta na endoskopske zahvate - gastroskopiju bez i s anestezijom i kolonoskopiju bez ili s anestezijom. Naime, osobe koje u anamnezi imaju rak nekog od organa probavnog sustava trebali bi u ranijoj životnoj dobi obavljati preventivne preglede svake dvije godine, a osobe starije životne dobi jednom godišnje. Brojni ljudi pritom odgađaju ranije spomenute endoskopske zahvate zbog neugodnosti ili straha, zbog čega prof. dr. sc. Mihaljević ističe da je važno pacijentima objasniti važnost obje pretrage jer se promjene koje se nađu tim pretragama vrlo često ne mogu dokazati nikakvim drugim laboratorijskim i radiološkim pretragama.

Kada im se objasni važnost navedenih pregleda te mogućnost dokumentiranja određenih promjena puno lakše će se odlučiti za navedene preglede. Prije gastroskopije možemo lokalno dati anestetik koji će u znatnoj mjeri umanjiti neugodnost samog pregleda, a prije kolonoskopije savjetujem uzimanje pola sata prije pregleda spazmolitika kako bi usporili peristaltiku crijeva i na taj način umanjili tegobe. Za one najzahtjevnije i najkompliciranije, oba pregleda možemo raditi u općoj anesteziji”, navodi prof. dr. sc. Mihaljević.


[Sponzorirani članak]




si

Tenue du premier Forum des m�dias et des groupes de r�flexion du Sud global au Br�sil

Organis� sur le th�me "D�veloppement et revitalisation : un nouveau parcours pour le Sud global", le premier Forum des m�dias et des groupes de r�flexion du Sud global s'est tenu lundi et mardi � S�o Paulo, au Br�sil. Des messages de...




si

Chine Nouvelle publie un rapport sur l'�veil du Sud global au Br�sil

L'agence de presse Xinhua a publi� en langue chinoise, anglaise, espagnole et portugaise un rapport intitul� "L'�veil du Sud global" � l'occasion du Forum des m�dias et des groupes de r�flexion du Sud global tenu ce lundi et mardi � Sao Paulo au...




si

Un rapport d'un groupe de r�flexion chinois "Un nouveau mod�le pour le progr�s humain et son importance mondiale" d�voil� au Br�sil

Le Forum des m�dias et des groupes de r�flexion du Sud global s'est tenu lundi et mardi � Sao Paulo, et un rapport intitul� "Un nouveau mod�le pour le progr�s humain et son importance mondiale" a �t� diffus� � cette occasion. Il fournit une...




si

La visite au Br�sil de Xi Jinping renforcera davantage les liens culturels et les �changes entre les peuples

Les personnes de tous horizons engag�es en faveur de l'amiti� sino-br�silienne au Br�sil se r�jouissent de la visite du pr�sident Xi Jinping dans le pays et restent pr�tes � contribuer davantage � l'approfondissement de l'amiti� entre le Br�sil et...




si

Chine : la partie continentale d�clare que les consultations entre les deux rives du d�troit sont possibles en reconnaissant le Consensus de 1992

Les consultations entre l'Association pour les relations entre les deux rives du d�troit de Taiwan (ARATS) et la Fondation pour les �changes entre les deux rives du d�troit de Taiwan (SEF) pourraient reprendre si les autorit�s de Taiwan...




si

La Chine est pr�te � cr�er davantage d'opportunit�s pour les partenaires de l'Asie-Pacifique gr�ce au d�veloppement et � l'ouverture

La Chine est pr�te � profiter de la 31e r�union des dirigeants �conomiques de l'APEC pour cr�er davantage d'opportunit�s pour les partenaires de l'Asie-Pacifique avec un d�veloppement de haute qualit� et une ouverture de haut niveau, a d�clar�...





si

Three impossibilities with partitioned indexes

articles: 

There are three restrictions on indexing and partitioning: a unique index cannot be local non-prefixed; a global non-prefixed index is not possible; a bitmap index cannot be global. Why these limitations? I suspect that they are there to prevent us from doing something idiotic.

This is the table used for all examples that follow:

CREATE TABLE EMP
      (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
       ENAME VARCHAR2(10),
       JOB VARCHAR2(9),
       MGR NUMBER(4),
       HIREDATE DATE,
       SAL NUMBER(7,2),
       COMM NUMBER(7,2),
       DEPTNO NUMBER(2) )
PARTITION BY HASH (EMPNO) PARTITIONS 4;

the usual EMP table, with a partitioning clause appended. It is of course a contrived example. Perhaps I am recruiting so many employees concurrently that a non-partitioned table has problems with buffer contention that can be solved only with hash partitioning.

Why can't I have a local non-prefixed unique index?
A local non-unique index is no problem, but unique is not possible:

orclz> create index enamei on emp(ename) local;

Index created.

orclz> drop index enamei;

Index dropped.

orclz> create unique index enamei on emp(ename) local;
create unique index enamei on emp(ename) local
                              *
ERROR at line 1:
ORA-14039: partitioning columns must form a subset of key columns of a UNIQUE index

You cannot get a around the problem by separating the index from the constraint (which is always good practice):

orclz> create index enamei on emp(ename) local;

Index created.

orclz> alter table emp add constraint euk unique (ename);
alter table emp add constraint euk unique (ename)
*
ERROR at line 1:
ORA-01408: such column list already indexed


orclz>

So what is the issue? Clearly it is not a technical limitation. But if it were possible, consder the implications for performance. When inserting a row, a unique index (or a non-unique index enforcing a unique constraint) must be searched to see if the key value already exists. For my little four partition table, that would mean four index searches: one of each local index partition. Well, OK. But what if the table were range partitioned into a thousand partitions? Then every insert would have to make a thousand index lookups. This would be unbelievably slow. By restricting unique indexes to global or local prefixed, Uncle Oracle is ensuring that we cannot create such an awful situation.

Why can't I have a global non-prefixed index?
Well, why would you want one? In my example, perhaps you want a global index on deptno, partitioned by mgr. But you can't do it:

orclz> create index deptnoi on emp(deptno) global partition by hash(mgr) partitions 4;
create index deptnoi on emp(deptno) global partition by hash(mgr) partitions 4
                                                                *
ERROR at line 1:
ORA-14038: GLOBAL partitioned index must be prefixed


orclz>
This index, if it were possible, might assist a query with an equality predicate on mgr and a range predicate on deptno: prune off all the non-relevant mgr partitions, then a range scan. But exactly the same effect would be achieved by using global nonpartitioned concatenated index on mgr and deptno. If the query had only deptno in the predicate, it woud have to search each partition of the putative global partitioned index, a process which would be just about identical to a skip scan of the nonpartitioned index. And of course the concatenated index could be globally partitioned - on mgr. So there you have it: a global non-prefixed index would give you nothing that is not available in other ways.

Why can't I have a global partitioned bitmap index?
This came up on the Oracle forums recently, https://forums.oracle.com/thread/2575623
Global indexes must be prefixed. Bearing that in mind, the question needs to be re-phrased: why would anyone ever want a prefixed partitioned bitmap index? Something like this:

orclz>
orclz> create bitmap index bmi on emp(deptno) global partition by hash(deptno) partitions 4;
create bitmap index bmi on emp(deptno) global partition by hash(deptno) partitions 4
                                       *
ERROR at line 1:
ORA-25113: GLOBAL may not be used with a bitmap index

orclz>

If this were possible, what would it give you? Nothing. You would not get the usual benefit of reducing contention for concurrent inserts, because of the need to lock entire blocks of a bitmap index (and therefore ranges of rows) when doing DML. Range partitioning a bitmap index would be ludicrous, because of the need to use equality predicates to get real value from bitmaps. Even with hash partitions, you would not get any benefit from partition pruning, because using equality predicates on a bitmap index in effect prunes the index already: that is what a bitmap index is for. So it seems to me that a globally partitioned bitmap index would deliver no benefit, while adding complexity and problems of index maintenance. So I suspect that, once again, Uncle Oracle is protecting us from ourselves.

Is there a technology limitation?
I am of course open to correction, but I cannot see a technology limitation that enforces any of these three impossibilities. I'm sure they are all technically possible. But Oracle has decided that, for our own good, they will never be implemented.
--
John Watson
Oracle Certified Master DBA
http://skillbuilders.com




si

Recursion with recursive WITH

articles: 

I recently had the opportunity to talk with Tom Kyte (!), and in the course of our conversation, he really made me face up to the fact that the SQL syntax I use every day is frozen in time: I’m not making much use of the analytic functions and other syntax that Oracle has introduced since 8i.

Here’s a brief history of these additions to Oracle SQL, from Keith Laker, Oracle’s Product Manager for Analytical SQL:

8i Window functions
9i Rollup, grouping sets, cube, enhanced window functions
10g SQL Model clause, statistical functions, partition outer join
11g SQL Pivot clause, Recursive WITH, Listagg, Nth value
12c Pattern matching, Top N

Not only do these make complex queries much, much simpler and easier, they are also much faster for the same result than non-analytic SQL, as Tom Kyte has shown repeatedly on his blog and in his books.

So, I was sold and I wanted to jump in with Recursive WITH. The WITH clause lets you define inline views to use across an entire query, and the coolest thing about this is that you can define the subquery recursively – so that the inline view calls itself.

Recursive WITH basic syntax:

WITH Tablename (col1, col2, ...) AS
(SELECT A, B, C... FROM dual                   --anchor member
UNION ALL
SELECT A', B', C'... from Tablename where...   --recursive member
)
select ... from Tablename where ...

Refactoring the Factorial

One fun thing about recursive WITH, aka recursive subquery refactoring, is the ease with which we can implement a recursive algorithm in SQL. Let’s warm up with a classic example of recursion: finding the factorial of a number. Factorial(n) = n! = 1*2*3*…*n . It’s a classic example because Factorial(n) can be defined recursively as:

Factorial(0) = 1
Factorial(n) = Factorial(n-1) * n

Here’s a first pass at implementing that directly in SQL to find the factorial of 5, using a recursive WITH subquery:

WITH Factorial (operand,total_so_far) AS
(SELECT 5 operand, 5 total_so_far FROM dual    -- Using anchor member to pass in "5"
UNION ALL
SELECT operand-1, total_so_far * (operand-1) FROM Factorial
WHERE operand > 1)
SELECT * FROM Factorial;

   OPERAND TOTAL_SO_F
---------- ----------
         5          5
         4         20
         3         60
         2        120
         1        120

and to display just the result, we select it from Factorial:

WITH Factorial (operand,total_so_far) AS
(SELECT 5 operand, 5 total_so_far FROM dual    -- Find the factorial of 5
UNION ALL
SELECT operand-1, total_so_far * (operand-1) FROM Factorial
WHERE operand > 1)
SELECT MAX(operand) || '! = ' || MAX(total_so_far) AS RESULT FROM Factorial;

RESULT
-----------------
5! = 120

Ahem! I have cheated a little for simplicity here. The query doesn’t take into account that Factorial(0) = 1:

WITH Factorial (operand,total_so_far) AS
(SELECT 0 operand, 0 total_so_far FROM dual    -- Find the factorial of 0
UNION ALL
SELECT operand-1, total_so_far * (operand-1) FROM Factorial
WHERE operand > 1)                             -- This is going to get me nowhere fast...
SELECT * FROM Factorial;

  OPERAND TOTAL_SO_F
---------- ----------
         0          0

To do it properly, we need to include Factorial(0) = 1 in the recursive subquery:

WITH Factorial (operand,total_so_far) AS
(SELECT 0 operand, 0 total_so_far FROM dual    -- Find the factorial of 0
UNION ALL
SELECT operand-1, 
CASE                                           -- Factorial (0) = 1
  WHEN operand=0 THEN 1
  ELSE (total_so_far * (operand-1))
  END
FROM Factorial
WHERE operand >= 0)
SELECT MAX(operand) || '! = ' || MAX(total_so_far) AS RESULT FROM Factorial;

RESULT
------------------------------------------------------------------------------------
0! = 1

We can also reverse direction and recursively build a table of factorials, multiplying as we go.
That’s the approach Lucas Jellema takes in his excellent blog post on factorials in SQL.

WITH Factorial (operand,output) AS
(SELECT 0 operand, 1 output FROM dual
UNION ALL
SELECT operand+1, output * (operand+1) FROM Factorial
WHERE operand < 5)
SELECT * FROM Factorial;

   OPERAND     OUTPUT
---------- ----------
         0          1
         1          1
         2          2
         3          6
         4         24
         5        120

There are two nice things about this approach: first, every row of the subquery result contains n and n! , and second, the rule that 0! = 1 is elegantly captured in the anchor member.

denrael ev’ew tahw gniylppA

Now let’s do something more interesting – reversing a string. Here’s some sample code in C from the CS 211 course at Cornell:

 public String reverseString(String word) {
     if(word == null || word.equals(""))
        return word;
     else
        return reverseString(word.substring(1, word.length())) + 
            word.substring(0,1);
  }

Let’s run through an example word to see how it works. For simplicity I’ll write reverseString(“word”) as r(word). Using “cat” as the word, stepping through the algorithm gives:

r(cat) = r(r(at))+c = r(r(r(t))+a+c = r(r(r(r())+t+a+c = ''+t+a+c = tac

Now to rewrite the same function in SQL. Using the same example string, “cat,” I want my recursively defined table to look like this:

in   out
--------
cat 
at   c
t    ac
     tac

In C, the initial letter in the word is the 0th letter, and in SQL, it’s the 1st letter. So the C expression word.substring(1,N) corresponds to SQL expression substr(word,2,N-1) . With that in mind, it’s easy to rewrite the C algorithm in SQL:

WITH WordReverse (INPUT, output) AS
  (SELECT 'CAT' INPUT, NULL output FROM dual
   UNION ALL
   SELECT substr(INPUT,2,LENGTH(INPUT)-1), substr(INPUT,1,1) || output
   FROM wordReverse
   WHERE LENGTH(INPUT) > 0
  )
SELECT * FROM wordReverse;

INPUT    OUTP
-------- ----
CAT
AT       C
T        AC
         TAC

NOTE: if using 11.2.0.3 or earlier, you might get “ORA-01489: result of string concatenation is too long” when reversing anything longer than a few letters. This is due to Bug 13876895: False ora-01489 on recursive WITH clause when concatenating columns. The bug is fixed in 11.2.0.4 and 12.1.0.1, and there’s an easy workaround: Cast one of the inputs to the concatenation as a varchar2(4000).

We could make this query user-friendlier by using a sql*plus variable to hold the input string. Another approach is to add an additional subquery to the with block to “pass in” parameters. I picked this up from Lucas Jellema’s post mentioned above, and wanted to give it a try, so I’ll add it in to my WordReverse query here.

Let’s use this to reverse a word that’s really quite atrocious:

WITH
params AS
  (SELECT 'supercalifragilisticexpialidocious' phrase FROM dual),
WordReverse (inpt, outpt) AS
  (SELECT phrase inpt, CAST(NULL AS varchar2(4000)) outpt FROM params
   UNION ALL
   SELECT substr(inpt,2,LENGTH(inpt)-1), substr(inpt,1,1) || outpt
   FROM wordReverse
   WHERE LENGTH(inpt) > 0
  )
SELECT phrase,outpt AS reversed FROM wordReverse, params
WHERE LENGTH(outpt) = LENGTH(phrase) ;

PHRASE                             REVERSED
---------------------------------- ----------------------------------------
supercalifragilisticexpialidocious suoicodilaipxecitsiligarfilacrepus

Now you might not have needed to know how to spell “supercalifragilisticexpialidocious” backwards, but one recursive requirement that does come up often is querying hierarchical data. I wrote a series of posts on hierarchical data recently, using Oracle’s CONNECT BY syntax. But recursive WITH can also be used to query hierarchical data. That’ll be the subject of my next post.


Republished with permission. Original URL: http://rdbms-insight.com/wp/?p=94




si

Recursive WITH, part II: Hierarchical queries

articles: 

In my last post, I looked at using recursive WITH to implement simple recursive algorithms in SQL. One very common use of recursion is to traverse hierarchical data. I recently wrote a series of posts on hierarchical data, using Oracle’s CONNECT BY syntax and a fun example. In this post, I’ll be revisiting the same data using recursive WITH.

There are dozens of examples of hierarchical data, from the EMP table to the Windows Registry to binary trees, but I went with something more fun: the skeleton from the old song “Dem Dry Bones”.

Quote:
Toe bone connected to the foot bone
Foot bone connected to the heel bone
Heel bone connected to the ankle bone
Ankle bone connected to the shin bone
Shin bone connected to the knee bone
Knee bone connected to the thigh bone
Thigh bone connected to the hip bone
Hip bone connected to the back bone
Back bone connected to the shoulder bone
Shoulder bone connected to the neck bone
Neck bone connected to the head bone

Since every bone has only one ancestor, and there is a root bone with no ancestor, this is hierarchical data and we can stick it in a table and query it.

SELECT * FROM skeleton;
BONE                                     CONNECTED_TO_THE
---------------------------------------- ----------------------------------------
shoulder                                 neck
back                                     shoulder
hip                                      back
thigh                                    hip
knee                                     thigh
leg                                      knee
foot                                     heel
head
neck                                     head
toe                                      foot
arm                                      shoulder
wrist                                    arm
ankle                                    leg
heel                                     ankle
finger                                   wrist
a rib                                    back
b rib                                    back
c rib                                    back

You can see that I added some ribs and an arm to make the skeleton more complete!

Using Oracle’s CONNECT BY syntax:

SQL> col bone FOR a10
SQL> col connected_to_the FOR a9
SQL> col level FOR 99
SQL> col bone_tree FOR a27
SQL> col path FOR a65
 
SELECT bone, connected_to_the, level, 
lpad(' ',2*level, ' ') || bone AS bone_tree , 
ltrim(sys_connect_by_path(bone,'>'),'>') AS path
FROM skeleton
START WITH connected_to_the IS NULL
CONNECT BY prior bone=connected_to_the 
ORDER siblings BY 1

BONE       CONNECTED LEVEL BONE_TREE                   PATH
---------- --------- ----- --------------------------- -----------------------------------------------------------------
head                     1   head                      head
neck       head          2     neck                    head>neck
shoulder   neck          3       shoulder              head>neck>shoulder
arm        shoulder      4         arm                 head>neck>shoulder>arm
wrist      arm           5           wrist             head>neck>shoulder>arm>wrist
finger     wrist         6             finger          head>neck>shoulder>arm>wrist>finger
back       shoulder      4         back                head>neck>shoulder>back
a rib      back          5           a rib             head>neck>shoulder>back>a rib
b rib      back          5           b rib             head>neck>shoulder>back>b rib
c rib      back          5           c rib             head>neck>shoulder>back>c rib
hip        back          5           hip               head>neck>shoulder>back>hip
thigh      hip           6             thigh           head>neck>shoulder>back>hip>thigh
knee       thigh         7               knee          head>neck>shoulder>back>hip>thigh>knee
leg        knee          8                 leg         head>neck>shoulder>back>hip>thigh>knee>leg
ankle      leg           9                   ankle     head>neck>shoulder>back>hip>thigh>knee>leg>ankle
heel       ankle        10                     heel    head>neck>shoulder>back>hip>thigh>knee>leg>ankle>heel
foot       heel         11                       foot  head>neck>shoulder>back>hip>thigh>knee>leg>ankle>heel>foot
toe        foot         12                         toe head>neck>shoulder>back>hip>thigh>knee>leg>ankle>heel>foot>toe

The above CONNECT BY query uses the LEVEL pseudocolumn and the SYS_CONNECT_BY_PATH function. With recursive WITH, there’s no need for these built-ins because these values fall naturally out of the recursion.

Let’s start with the basic hierarchical query rewritten in recursive WITH.
The hierarchical relationship in our table is:
Parent(row.bone) = row.connected_to_the

WITH skellarchy (bone, parent) AS
 ( SELECT bone, connected_to_the FROM skeleton 
   WHERE bone = 'head'                         -- Start with the root
 UNION ALL
   SELECT s.bone, s.connected_to_the 
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           -- Parent(row.bone) = row.connected_to_the
 )
SELECT * FROM skellarchy;

BONE       PARENT
---------- ----------------------------------------
head
neck       head
shoulder   neck
back       shoulder
arm        shoulder
hip        back
wrist      arm
a rib      back
b rib      back
c rib      back
thigh      hip
finger     wrist
knee       thigh
leg        knee
ankle      leg
heel       ankle
foot       heel
toe        foot

Because we built up the SKELLARCHY table recursively, it’s easy to make an equivalent to the LEVEL pseudocolumn; it falls right out of the recursion:

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0 FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SELECT * FROM skellarchy;

BONE       PARENT      THE_LEVEL
---------- ---------- ----------
head                           0
neck       head                1
shoulder   neck                2
back       shoulder            3
arm        shoulder            3
hip        back                4
wrist      arm                 4
a rib      back                4
b rib      back                4
c rib      back                4
thigh      hip                 5
finger     wrist               5
knee       thigh               6
leg        knee                7
ankle      leg                 8
heel       ankle               9
foot       heel               10
toe        foot               11

and it’s also easy to build up a path from root to the current node like the “SYS_CONNECT_BY_PATH” function does for CONNECT BY queries:

WITH skellarchy (bone, parent, the_level, the_path) AS
 ( SELECT bone, connected_to_the, 0, CAST(bone AS varchar2(4000)) FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1, r.the_path || '->' || s.bone
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SELECT * FROM skellarchy;

BONE       PARENT     THE_LEVEL THE_PATH
---------- ---------- --------- --------------------------------------------------------------------------------
head                          0 head
neck       head               1 head->neck
shoulder   neck               2 head->neck->shoulder
back       shoulder           3 head->neck->shoulder->back
arm        shoulder           3 head->neck->shoulder->arm
hip        back               4 head->neck->shoulder->back->hip
wrist      arm                4 head->neck->shoulder->arm->wrist
a rib      back               4 head->neck->shoulder->back->a rib
b rib      back               4 head->neck->shoulder->back->b rib
c rib      back               4 head->neck->shoulder->back->c rib
thigh      hip                5 head->neck->shoulder->back->hip->thigh
finger     wrist              5 head->neck->shoulder->arm->wrist->finger
knee       thigh              6 head->neck->shoulder->back->hip->thigh->knee
leg        knee               7 head->neck->shoulder->back->hip->thigh->knee->leg
ankle      leg                8 head->neck->shoulder->back->hip->thigh->knee->leg->ankle
heel       ankle              9 head->neck->shoulder->back->hip->thigh->knee->leg->ankle->heel
foot       heel              10 head->neck->shoulder->back->hip->thigh->knee->leg->ankle->heel->foot
toe        foot              11 head->neck->shoulder->back->hip->thigh->knee->leg->ankle->heel->foot->toe

and we can use our generated the_level column to make a nice display just as we used the level pseudocolumn with CONNECT BY:

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0  FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree FROM skellarchy;

BONE_TREE
---------------------------
head
  neck
    shoulder
      back
      arm
        hip
        wrist
        a rib
        b rib
        c rib
          thigh
          finger
            knee
              leg
                ankle
                  heel
                    foot
                      toe

Now, the bones are coming out in a bit of a funny order for a skeleton. Instead of this:

    shoulder
      back
      arm
        hip
        wrist
        a rib
        b rib
        c rib
          thigh
          finger

I want to see this:

    shoulder
      arm
        wrist
          finger
      back
        a rib
        b rib
        c rib
        hip
          thigh

The rows are coming out in BREADTH FIRST ordering – meaning all siblings of ‘shoulder’ are printed before any children of ‘shoulder’. But I want to see them in DEPTH FIRST: going from shoulder to finger before we start on the backbone.

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0  FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SEARCH DEPTH FIRST BY bone SET bone_order
SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree FROM skellarchy
ORDER BY bone_order;

BONE_TREE
---------------------------
head
  neck
    shoulder
      arm
        wrist
          finger
      back
        a rib
        b rib
        c rib
        hip
          thigh
            knee
              leg
                ankle
                  heel
                    foot
                      toe

And now the result looks more like a proper skeleton.

Now on to cycles. A cycle is a loop in the hierarchical data: a row is its own ancestor. To put a cycle in the example data, I made the skeleton bend over and connect the head to the toe:

UPDATE skeleton SET connected_to_the='toe' WHERE bone='head';

And now if we try to run the query:

ERROR at line 2:
ORA-32044: cycle detected while executing recursive WITH query

With the CONNECT BY syntax, we can use CONNECT BY NOCYCLE to run a query even when cycles exist, and the pseudocolumn CONNECT_BY_IS_CYCLE to help detect cycles. For recursive WITH, Oracle provides a CYCLE clause, which is a bit more powerful as it allows us to name the column which is cycling.

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0  FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SEARCH DEPTH FIRST BY bone SET bone_order
CYCLE bone SET is_a_cycle TO 'Y' DEFAULT 'N'
SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree, is_a_cycle FROM skellarchy
--where is_a_cycle='N'
ORDER BY bone_order;

BONE_TREE                                                    I
------------------------------------------------------------ -
head                                                         N
  neck                                                       N
    shoulder                                                 N
      arm                                                    N
        wrist                                                N
          finger                                             N
      back                                                   N
        a rib                                                N
        b rib                                                N
        c rib                                                N
        hip                                                  N
          thigh                                              N
            knee                                             N
              leg                                            N
                ankle                                        N
                  heel                                       N
                    foot                                     N
                      toe                                    N
                        head                                 Y

The query runs until the first cycle is detected, then stops.

The CONNECT BY syntax does provide a nice pseudocolumn, CONNECT_BY_ISLEAF, which is 1 when a row has no further children, 0 otherwise. In my next post, I’ll look at emulating this pseudocolumn with recursive WITH.


Republished with permission. Original URL: http://rdbms-insight.com/wp/?p=103




si

Recursive WITH, part III: IS_LEAF

articles: 

The CONNECT BY syntax provides a useful pseudocolumn, CONNECT_BY_ISLEAF, which identifies leaf nodes in the data: it’s 1 when a row has no further children, 0 otherwise. In this post, I’ll look at emulating this pseudocolumn using recursive WITH.

Let’s continue with the example from my previous posts about hierarchical data: the skeleton from the old song “Dem Dry Bones”.

UPDATE skeleton SET connected_to_the=NULL WHERE bone='head';
SELECT * FROM skeleton;

BONE                                     CONNECTED_TO_THE
---------------------------------------- ----------------------------------------
shoulder                                 neck
back                                     shoulder
hip                                      back
thigh                                    hip
knee                                     thigh
leg                                      knee
foot                                     heel
head
neck                                     head
toe                                      foot
arm                                      shoulder
wrist                                    arm
ankle                                    leg
heel                                     ankle
finger                                   wrist
a rib                                    back
b rib                                    back
c rib                                    back

With CONNECT BY, we can use the CONNECT_BY_ISLEAF pseudocolumn to identify leaf nodes:

SELECT bone, level, 
ltrim(sys_connect_by_path(bone,' -> '),' -> ') AS path
FROM skeleton
WHERE connect_by_isleaf=1
START WITH connected_to_the IS NULL
CONNECT BY prior bone=connected_to_the 
ORDER siblings BY 1;

BONE      LEVEL PATH                                                                                            
--------- ----- ----------------------------------------------------------------------------------------------- 
finger        6 head -> neck -> shoulder -> arm -> wrist -> finger                                              
a rib         5 head -> neck -> shoulder -> back -> a rib                                                       
b rib         5 head -> neck -> shoulder -> back -> b rib                                                       
c rib         5 head -> neck -> shoulder -> back -> c rib                                                       
toe          12 head -> neck -> shoulder -> back -> hip -> thigh -> knee -> leg -> ankle -> heel -> foot -> toe

This pseudocolumn takes a little more thought to replicate using recursive WITH than the LEVEL pseudocolumn and the SYS_CONNECT_BY_PATH, which, as we saw in my last post, fall naturally out of the recursion.

We can imitate CONNECT_BY_ISLEAF by searching DEPTH FIRST and using the LEAD function to peek at the next row’s the_level value. If the next row’s level is higher than the current row, then it’s a child of the current row; otherwise, it’s not a child. Since, with DEPTH FIRST, all the children of a row come out before any siblings, if the next row isn’t a child, then the current row is a leaf.

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0  FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SEARCH DEPTH FIRST BY bone SET bone_order
CYCLE bone SET is_a_cycle TO 'Y' DEFAULT 'N'
SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree , the_level,
  lead(the_level) OVER (ORDER BY bone_order) AS next_level,
  CASE 
    WHEN the_level < lead(the_level) OVER (ORDER BY bone_order) THEN NULL
    ELSE 'LEAF'
  END is_leaf
FROM skellarchy
ORDER BY bone_order;

BONE_TREE                                      THE_LEVEL NEXT_LEVEL IS_L
--------------------------------------------- ---------- ---------- ----
head                                                   0          1
  neck                                                 1          2
    shoulder                                           2          3
      arm                                              3          4
        wrist                                          4          5
          finger                                       5          3 LEAF
      back                                             3          4
        a rib                                          4          4 LEAF
        b rib                                          4          4 LEAF
        c rib                                          4          4 LEAF
        hip                                            4          5
          thigh                                        5          6
            knee                                       6          7
              leg                                      7          8
                ankle                                  8          9
                  heel                                 9         10
                    foot                              10         11
                      toe                             11            LEAF

Watch out for Cycles

The first point of caution about this solution concerns cycles. In my last post, I had created a cycle by making the ‘head’ node’s parent the ‘toe’ node. If I’d left the cycle in the data, the toe node wouldn’t be a leaf any more, but this query would falsely identify the head as a leaf:

UPDATE skeleton SET connected_to_the='toe' WHERE bone='head';

BONE_TREE                                      THE_LEVEL NEXT_LEVEL IS_L
--------------------------------------------- ---------- ---------- ----
head                                                   0          1
  neck                                                 1          2
    shoulder                                           2          3
      arm                                              3          4
        wrist                                          4          5
          finger                                       5          3 LEAF
      back                                             3          4
        a rib                                          4          4 LEAF
        b rib                                          4          4 LEAF
        c rib                                          4          4 LEAF
        hip                                            4          5
          thigh                                        5          6
            knee                                       6          7
              leg                                      7          8
                ankle                                  8          9
                  heel                                 9         10
                    foot                              10         11
                      toe                             11         12
                        head                          12            LEAF
 
19 rows selected.

This can be corrected for by adding WHERE IS_A_CYCLE=’N’ to the query.

Respect the order of evaluation…

A second point of caution: if I add a WHERE clause to the query that limits the number of levels, the last line of the resultset will always be identified as a leaf.

WITH skellarchy (bone, parent, the_level) AS
 ( SELECT bone, connected_to_the, 0  FROM skeleton 
   WHERE bone = 'head'                         
 UNION ALL
   SELECT s.bone, s.connected_to_the , r.the_level + 1
   FROM skeleton s, skellarchy r
   WHERE r.bone = s.connected_to_the           
 )
SEARCH DEPTH FIRST BY bone SET bone_order
CYCLE bone SET is_a_cycle TO 'Y' DEFAULT 'N'
SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree , the_level,
  lead(the_level) OVER (ORDER BY bone_order) AS next_level,
  CASE 
    WHEN the_level < lead(the_level) OVER (ORDER BY bone_order) THEN NULL
    ELSE 'LEAF'
  END is_leaf
FROM skellarchy
WHERE the_level < 8 
ORDER BY bone_order;

BONE_TREE                                                     THE_LEVEL NEXT_LEVEL IS_L
------------------------------------------------------------ ---------- ---------- ----
head                                                                  0          1
  neck                                                                1          2
    shoulder                                                          2          3
      arm                                                             3          4
        wrist                                                         4          5
          finger                                                      5          3 LEAF
      back                                                            3          4
        a rib                                                         4          4 LEAF
        b rib                                                         4          4 LEAF
        c rib                                                         4          4 LEAF
        hip                                                           4          5
          thigh                                                       5          6
            knee                                                      6          7
              leg                                                     7            LEAF      <<<=====

The leg is falsely identified as a leaf, and NEXT_LEVEL comes out as NULL, even though the ‘leg’ row has a child row. Why is that? It’s because this solution uses the LEAD analytic function. With analytic functions, WHERE clauses are evaluated before the analytic functions.

Highlighting the relevant bits from the query:

WITH skellarchy AS ...[recursive WITH subquery]...
SELECT ... LEAD(the_level) OVER (ORDER BY bone_order) AS next_level ... --analytic function
FROM skellarchy
WHERE the_level < 8 ...                                                 --where clause

To quote the documentation:

Analytic functions compute an aggregate value based on a group of rows…. The group of rows is called a window and is defined by the analytic_clause. For each row, a sliding window of rows is defined. The window determines the range of rows used to perform the calculations for the current row…. Analytic functions are the last set of operations performed in a query except for the final ORDER BY clause. All joins and all WHERE, GROUP BY, and HAVING clauses are completed before the analytic functions are processed.

In the query above, “where the_level < 8" will be evaluated before LEAD(the_level). The EXPLAIN PLAN shows this very clearly:

-----------------------------------------------------------------------------------------------------
| Id  | Operation                                | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |          |     2 |    76 |     8  (25)| 00:00:01 |
|   1 |  WINDOW BUFFER                           |          |     2 |    76 |     8  (25)| 00:00:01 |  <<=== LEAD
|*  2 |   VIEW                                   |          |     2 |    76 |     8  (25)| 00:00:01 |  <<=== filter("THE_LEVEL"<8)
|   3 |    UNION ALL (RECURSIVE WITH) DEPTH FIRST|          |       |       |            |          |
|*  4 |     TABLE ACCESS FULL                    | SKELETON |     1 |    24 |     2   (0)| 00:00:01 |
|*  5 |     HASH JOIN                            |          |     1 |    49 |     5  (20)| 00:00:01 |
|   6 |      RECURSIVE WITH PUMP                 |          |       |       |            |          |
|   7 |      TABLE ACCESS FULL                   | SKELETON |    18 |   432 |     2   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter("THE_LEVEL"<8)
   4 - filter("BONE"='head')
   5 - access("R"."BONE"="S"."CONNECTED_TO_THE")

The WINDOW BUFFER (analytic window) is evaluated after the VIEW which filters on “THE_LEVEL”<8. So, "lead(the_level) over (order by bone_order)" will be null where the_level=7, and the 'leg' wrongly identified as a leaf node. What we actually want is for the analytic function LEAD to run over the whole resultset, and only then limit the results to show the levels 0-7. The obvious way to do this is to wrap the query in a second SELECT statement:

SELECT * FROM (
  WITH skellarchy (bone, parent, the_level) AS
   ( SELECT bone, connected_to_the, 0  FROM skeleton 
     WHERE bone = 'head'                         
   UNION ALL
     SELECT s.bone, s.connected_to_the , r.the_level + 1
     FROM skeleton s, skellarchy r
     WHERE r.bone = s.connected_to_the           
   )
  SEARCH DEPTH FIRST BY bone SET bone_order
  CYCLE bone SET is_a_cycle TO 'Y' DEFAULT 'N'
  SELECT lpad(' ',2*the_level, ' ') || bone AS bone_tree , the_level,
    lead(the_level) OVER (ORDER BY bone_order) AS next_level,
    CASE 
      WHEN the_level < lead(the_level) OVER (ORDER BY bone_order) THEN NULL
      ELSE 'LEAF'
    END is_leaf
  FROM skellarchy
  ORDER BY bone_order
) WHERE the_level < 8;

BONE_TREE                                                     THE_LEVEL NEXT_LEVEL IS_L
------------------------------------------------------------ ---------- ---------- ----
head                                                                  0          1
  neck                                                                1          2
    shoulder                                                          2          3
      arm                                                             3          4
        wrist                                                         4          5
          finger                                                      5          3 LEAF
      back                                                            3          4
        a rib                                                         4          4 LEAF
        b rib                                                         4          4 LEAF
        c rib                                                         4          4 LEAF
        hip                                                           4          5
          thigh                                                       5          6
            knee                                                      6          7
              leg                                                     7          8

Now, the analytic function in the inner query is evaluated first, before the WHERE clause in the outer query. We can see this in the EXPLAIN PLAN too, of course. Now the WINDOW BUFFER (analytic window) is evaluated before the VIEW with filter(“THE_LEVEL”<8) :

------------------------------------------------------------------------------------------------------
| Id  | Operation                                 | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                          |          |     2 |  4068 |     8  (25)| 00:00:01 |
|*  1 |  VIEW                                     |          |     2 |  4068 |     8  (25)| 00:00:01 |  <<=== filter("THE_LEVEL"<8)
|   2 |   WINDOW BUFFER                           |          |     2 |    76 |     8  (25)| 00:00:01 |  <<=== LEAD
|   3 |    VIEW                                   |          |     2 |    76 |     8  (25)| 00:00:01 |
|   4 |     UNION ALL (RECURSIVE WITH) DEPTH FIRST|          |       |       |            |          |
|*  5 |      TABLE ACCESS FULL                    | SKELETON |     1 |    24 |     2   (0)| 00:00:01 |
|*  6 |      HASH JOIN                            |          |     1 |    49 |     5  (20)| 00:00:01 |
|   7 |       RECURSIVE WITH PUMP                 |          |       |       |            |          |
|   8 |       TABLE ACCESS FULL                   | SKELETON |    18 |   432 |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter("THE_LEVEL"<8)
   5 - filter("BONE"='head')
   6 - access("R"."BONE"="S"."CONNECTED_TO_THE")

This is one case of the general point that, as Tom Kyte explains in this Ask Tom answer,“select analytic_function from t where CONDITION” is NOT THE SAME AS “select * from (select analytic_function from t) where CONDITION”.

So, to sum up my last few posts, we can do everything that CONNECT BY can do with the 11g recursive WITH syntax. Plus, the recursive WITH syntax makes it easy to express simple recursive algorithms in SQL.


Republished with permission. Original URL: http://rdbms-insight.com/wp/?p=135




si

Elektrsich verwarmd binnenvest 12 Volt Gerbing

7 VOLT VERWARMDE JAS De meeste mensen zullen in eerste instantie denken dat de verwarmde handschoenen en verwarmde sokken de beste producten zijn! Het is echter zo dat op het moment dat handen en voeten koud worden dat veroorzaakt wordt door een koude romp. Op het moment dat de vitale organen te koud worden zal er extra warmte uit de handen en de voeten gehaald worden met als consequentie dat de handen en voeten als eerste koud worden. Daarom worden er ook veel meer 12 volt verwarmde handschoenen en 7 volt verwarmde handschoenen verkocht. Maar eigenlijk zijn onze verwarmde jassen functioneler. Nadat Gerbing een 12 volt verwarmde jas op de markt heeft gebracht voor de motorrijder zijn wij uiteraard ook begonnen met een verwarmde jas te ontwikkelen voor mensen die last hebben van kou bij willekeurige outdoor activiteiten. Dit heeft geresulteerd in een 7 volt verwarmde jas met afritsbare mouwen. Deze kan dus ook als bodywarmer gedragen worden. Deze jas heeft vier elementen. Twee elementen op de borst, één op rug en één in de kraag. Deze jassen worden geleverd met een 7 volt batterij kitje (B7V-2500 KIT) bestaande uit twee 7 volt batterijen met een ingebouwde temperatuurregelaar en één dubbele lader. Dit zijn dezelfde batterijen die gebruikt worden voor al onze 7 volt verwarmde handschoenen, 7 volt verwarmde sokken en alle overige 7 volt producten. De batterijen zijn eenvoudig te bedienen. Ze zijn voorzien van een powerknop en daarmee worden de batterijen aangezet en men kan tevens met deze knop de temperatuur instellen en de batterijen uitzetten. De verwarmde jas is verkrijgbaar in de maten XXS tot en met XXXL en zijn voor zowel mannen als vrouwen. De kleur is zwart. Deze 7 volt verwarmde jas draag je over één laag kleding en onder de gewone jas.




si

Gerbing elektrsich verwamde 7 Volt sokken.

7V SOKKEN Gerbing staat bekend om zijn verwarmde handschoenen. Zowel de 12 volt verwarmde handschoenen als de 7 volt verwarmde handschoenen zijn algemeen bekend. Sinds kort hebben we echter ook 7 volt verwarmde sokken. Nadat we eerder al de 12 volt verwarmde sokken hebben geïntroduceerd is het nu de beurt aan de 7 volt sokken. De 12 volt sokken moeten aangesloten worden op een accu van een voertuig met behulp van een accukabel. Hierdoor konden mensen die ook bij andere activiteiten last hadden van koude voeten geen gebruik maken van deze geweldige uitvinding. Dankzij de kleine en krachtige 7 volt batterijen met ingebouwde temperatuurregelaar (B7V-2500) is het nu ook mogelijk om bij alle activiteiten er warmpjes bij te lopen. Men kan zelf de gewenste temperatuur instellen door middel van het indrukken van één knop. Dit is de power knop warmee de batterijen ook aangezet kunnen worden. De batterijen gaan op de hoogste temperatuur ongeveer twee tot drie uur mee en op de laagste stand ongeveer zes tot acht uur. Het gepatenteerde micro wire (staaldraad) dat verwerkt is in de sokken is niet voelbaar en verwarmt de hele onderkant van de voeten. De 7 volt verwarmde sokken worden geleverd met een 7 volt batterij KIT (B7V-2500 KIT), deze bestaat uit twee batterijen en één dubbele lader. De batterijen kunnen honderden keren opgeladen worden. De batterijen worden aangesloten op de sokken en door middel van een speciaal ontworpen kuitbandje kun je de batterijen mooi wegwerken. Dankzij deze sokken zullen veel mensen weer kunnen genieten van diverse activiteiten in de buitenlucht. De tijd van koude voeten en bevroren tenen zijn voorbij dankzij de 7 volt verwarmde sokken van Gerbing.




si

Svartzonker Signature series 8´6" 40-140g - Spin

Svartzonker is niet enkel een beroemde kunstaasbouwer, hij is ook een uitstekend hengelbouwer. We voelen ons vereerd om u een speciale roofvis serie aan te bieden waarvoor enkel uiterst lichte componenten gebruikt werden.




si

silstar 3084-950cm lengte 8 delig carbon insteekhengel compe

competition carbon insteekhengel silstar 950 cm lengte 8 delig nieuwstaatin bijbehorende originele hengelhoes 100% geen haarscheurtjes e.dverkeerd werkelijk nog in nieuwstaat helemaal compleet met doppen en ogendit is een zeer dure carbon hengelvissport hengelsport zeevissen karpervissen wit vis vereniging




si

Chicago Bears sign restricted free agent tight end Josh Hill to an offer sheet

The Bears have signed restricted free agent tight end Josh Hill. The New Orleans Saints have five days to match the offer.




si

Dallas Cowboys Sign RB Alfred Morris

Fantasy Football Expert Mark Morales-Smith discusses the Fantasy impact of Alfred Morris moving from the Washington Redskins to the Dallas Cowboys!




si

2016 Fantasy Baseball Injuries to Consider (Premium)

Dr. Roto looks at several MLB players recovering from injuries to determine whether or not you should be afraid to draft them this Fantasy Baseball season.




si

Fantasy Impact: Cleveland Browns sign Robert Griffin III

Mark Morales-Smith discusses the Fantasy Football impact of the Cleveland Browns' most recent signing of QB Robert Griffin III.




si

Dr. Roto Has Another Visionary Player (Premium)

Dr. Roto reveals his second Visionary Fantasy Baseball player in consecutive days!




si

Dr. Roto?s Last-Minute Visionary Wisdom (Premium)

Senior Fantasy Baseball Expert Dr. Roto gives his last-minute advice before Draft Day!




si

McCain Attacks Bloggers, Sinks Ship with Loose Lips

That's no easy feat even for an old navy man such as John McCain. He says bloggers are old enough to fight his damn wars but not enough to speak our mind.

Think Progress notes McCain's attack on the blogosphere:

When I was a young man, I was quite infatuated with self-expression, and rightly so because, if memory conveniently serves, I was so much more eloquent, well-informed, and wiser than anyone else I knew. It seemed I understood the world and the purpose of life so much more profoundly than most people. I believed that to be especially true with many of my elders, people whose only accomplishment, as far as I could tell, was that they had been born before me, and, consequently, had suffered some number of years deprived of my insights…It’s a pity that there wasn’t a blogosphere then. I would have felt very much at home in the medium.
Damn the torpedoes and full steam ahead. I think we've just been broadsided matey.

Very wittily said John, but all you've accomplished is to demonstrate your ignorance of the Blogosphere. If you only knew how old I really am (but don't you dare ask).

So I guess we've all been told. So much for freedom of speech. Maybe we should put an age limit on it. Now there's an idea for you John. There outta be a law.
In 2000, John McCain called Rev. Jerry Falwell an “agent of intolerance.” Yesterday, in a naked attempt to broaden his political base, McCain delivered the commencement speech at Falwell’s Liberty University. McCain’s hypocrisy was noted on many blogs. He returned the favor in his speech at Liberty by attacking the blogosphere.
A commentor also noted:
McCain’s lurch to the right begs the following question: Could it be possible that Republicans are also saddled with shitty consultants?
Psst... here's a dirtly little secret. McCain's a mole. So now you know.

Related links: daily fisk, news, us-news, in the news, news and politics, politics, political, john+mccain, blogging, blogosphere, humor, fisk




si

Brown Resigns - I told you so

What did I tell you?

Michael Brown resigns just three days after being removed from head of FEMA. Bush's scapegoat makes a speedy retreat as he attempts to improve his public image.




si

Tom Delay Indictment a Foregone Conclusion?

According to most of the comments that I've read (or at least those from the left) it seems that recent charges against Tom Delay are a foregone conclusion. So much for guilt until proven innocence. But that has never stopped the jury of public opinion before, nor will it now. It keeps the bloggers busy and sells newspapers. Here are just some of the comments:

"Now, that's what I call "Breaking News"! CNN.com - Texas grand jury indicts Tom DeLay - Sep... It may be only a small first step, but it's a start. Here's the follow-up: Delay will step aside as Majority Leader. Temporarily. Let's hope it is more than temporary."

"Aww what a shame, poor Tom DeLay has been indicted. Pardon me a moment whilst I shed a tear and play a sonata on the world's smallest violin."

"Tom DeLay, House Majority Leader and probably the most powerful Republican in the country, has just been indicted on conspiracy charges. The dominos are beginning to fall."

Or could it be really be just a frivolous witch hunt as Delay has pleaded? Knowing how dirty the game of politics is played it would not surprise me.

"Kevin Madden, DeLay's spokesman, dismissed the charge as politically motivated. This indictment is nothing more than prosecutorial retribution by a partisan Democrat", said Madden citing prosecutor Ronnie Earle, a Democrat. Madden later added: "They could not get Tom DeLay at the polls. They could not get Mr. DeLay on the House floor. Now they're trying to get him into the courtroom. This is not going to detract from the Republican agenda."

We don't have enough information yet and only time will only tell. But when it comes to politics I live by one golden rule. No matter which side of the fence you may find yourself, we should remember that ALL politicians are self-serving. And most (if not ALL) politicians are first and foremost humans and therefore corruptible.

And speaking of that, I am reminded of the maxim "Power corrupts, and absolute power corrupts absolutely". So no matter how all this turns out nothing will surprise me.

But the law also provides that everyone is entitled to be presumed innocent until otherwise found guilty. We should all remember that as we follow this story.

One more thing, even if Delay is found guilty does that automatically indict all Republicans? Hardly, otherwise Teddy Kennedy and the dems would have been banned long ago.

It will be interesting to watch how this unfolds.




si

Blog Standards Revisited (again):

"If blogs are to be taken seriously, they should live up to the standards of accountability and reliability of the mainstream media that they so deplore."

Sajan Venniyoor takes some pot-shots at the blogosphere, and much of what he says is true, at least on a superficial level. But Sajan takes the idea too far, and what he doesn't understand is the blogosphere must be kept free of legal and bureaucratic encumbrances, no different than the fundamental right of freedom of speech itself.

Sajan sez ......"In June this year, the youth magazine JAM (Just Another Magazine) ran a rather unflattering story on the Indian Institute of Planning and Management (IIPM).

...it says much about the navel-gazing quality of the virtual world that few bloggers realize that blogging is a minority interest, and that even in the wired West, it’s only when they bring down a Dan Rather that their online crusades merit serious media or public attention.

If blogs are to be taken seriously as an alternative medium, they should measure up to the standards of accountability and reliability of the mainstream media that the bloggers so deplore. Not so long ago, a fairly popular blog took pot shots at that media behemoth and everybody’s favorite target, the Times of India. The blog’s readers were much amused; the Times less so. A legal notice was duly slapped on the blogger - a perfectly valid one in this case. Discretion prevailed over valour, and the blog closed down voluntarily. There was some outcry over the strong-arm tactics of the Times, but what is significant is that no attempt was made either to defend or substantiate the hostile comments made in the blog."

Writing on the 'net is no different than writing to the local newspaper editor. It's just that the technology gives blogging a much broader reach, and does not require the blessings of an editor to decide whether or not you get published.

It is the editor of public opinion that will decide if you are read. There is nothing more democratic than that. And that is a good thing because freedom of speech has never been so powerful, or so vulnerable.

That is why we see repressive regimes like China doing its darndest to plug the blogosphere. They understand its power. But in the free world discussions about imposing standards is absurb and as dangerous as the Nazi book burnings of pre-WW11.

I can see only two possible exceptions to this. The first would be those pundits who consider themselves professional blogger/journalists who want to be taken seriously. It goes without saying they should be aspiring to the same standards of mainstream media.

After all, if you are going to compete with the big boys and want be accepted on that level then you have to play the game according to the same rules.

Secondly, sites like the daily FISK that use satire humor, and clearly state in their faqs they should not be taken seriously and read for entertainment purposes only.

Otherwise, as for the rest of the joe (or josephine) bloggers out there the wired west has to be kept free. Not since the invention of the printing press has so much power been given to so many, and it must be protected at any cost.




si

It's called R E S P E C T Roger Simon

An Open Letter to Roger Simon (aka Pajamas Media):

I was recently reminded that Roger Simon is a business partner with Pajamas Media, and since Roger has written an open letter to all bloggers I thought I would reciprocate with my own.

So this is for you Roger:

My Dearest Rog. In your bid to take over the blogosphere I wish to remind you of something. You may have been tinseltown's darling of yesteryear, but in the blogosphere you are just another electron. Here you have to earn your stars, and you are only as good as your last post.

Most bloggers are an intelligent, erudite lot, and don't insult our intelligence with your commiserable propaganda.

So heed my advice. If you want respect, give some.

SOURCE: the daily FISK.




si

Musical Christmas Love Greeting Cards, Romantic Christmas Cards

Share romantic Christmas love cards with music from RiverSongs.com with spouse or boyfriend or girlfriend! Send I Love You Christmas ecards for email, mobiles, whatsApp, Facebook and Twitter!




si

Happy Birthday Video Cards With Music For PCs & Mobiles

Happy birthday song cards for computers, free musical happy birthday video greeting cards for mobile smartphones, iPhone, Android, & Windows smartphones. Romantic love birthday cards for lovers.




si

Musical Valentine's Day Video Cards, Happy Valentine's Day Ecards

Romantic Valentine's Day cards with music, Valentine's Day love ecards, Happy Valentine's Day Greetings and Video cards for mobile smartphones.




si

Happy New Year Video Cards, Musical New Year Greeting Cards

Celebrate the New Year with style, see great fireworks cards, watch the new year countdown, and share happy new year ecards with your friends!




si

Musical Christmas Cards, Merry Christmas Greeting Cards

Send the best Merry Christmas Ecards with music to friends and family! Listen to Christmas carols, share the Christmas Countdown Card and watch Christmas videos.




si

Impressionen vom SeoDay 2019

Hat leider etwas gedauert mit meinem SeoDay-Recap, zum Ausgleich wird er etwas anders. Den Formalkram schenke ich mir, dafür gibt es ein paar Eindrücke von der Veranstaltung. In Form von Text, Bild und Video. Der SEO-Day 2019 fing auf jeden Fall gut an. Ich wurde mit offenen Armen empfangen. Noch vor Betreten des Stadions. Christian ...

Weiterlesen ...

Der Beitrag Impressionen vom SeoDay 2019 erschien zuerst auf SOS Seo Blog.




si

The Best International Dating Website for Mature Men Interested in Dating Foreign Women

Safety is a paramount concern in online dating. Date International found at DateInt.com prioritizes the security of its members with stringent safety protocols and privacy measures. This ensures that your experience is not only enjoyable but also secure.




si

1 Million Human Visitors To Your “Make Money Online” Website

1 Million Visits To Your Website In The Make Money Online Niche ONLY