art

The Holy Spirit Pt35: The Gifts Of The Spirit - Prophecy, Part 2

In our final study in 'The Holy Spirit' series and our mini-series on the gifts of the Spirit, we conclude our consideration of the gift of 'Prophecy'. One of the great concerns around this gift is: how can we know false prophecy from true prophecy? How do we discern the true from the counterfeit? Also, we look at the practical dimension of how we exercise this spiritual gift of prophecy. This series has been so enjoyable to deliver and we do hope you have gleaned a lot of help from it. If so, why not spread it around and share it with those you believe will also be edified? Thank you so much for journeying with us! This final episode is available at https://www.preachtheword.com now in MP3 audio format and in HD video on our YouTube Channel (https://youtube.com/PreachTheWord)...



  • Religion & Spirituality

art

Helping Others To Freedom Pt5: Wounds And The Healing Of The Heart

In the fifth session of our 'Helping Others To Freedom' series, we explore 'Wounds And The Healing Of The Heart'. How do our hearts get hurt? How do these wounds set us up for both habitual sin and demonic bondage? We discuss the various sources of our woundedness and, most importantly, how we can get healing for these wounds. It is vital to distinguish wounds that need healed, from sins that need repented of, and demons that must be expelled. This session is available at https://www.preachtheword.com now in MP3 audio format and in HD video on our YouTube Channel (https://youtube.com/PreachTheWord)...



  • Religion & Spirituality

art

Overcoming Adversity, Part 1: Facing Facts

There is such diversity of opinion among Christians regarding suffering. This confusion often distresses people who are enduring suffering. What is the truth then? In this message David talks candidly about the importance of 'Facing Facts' and coming to terms with the inevitability of adversity in our lives. Also, he emphasises that we need to understand how God uses adversity in our lives. Many people wonder, 'How do I know if this is something from the Devil that I need to resist or is something God is wanting me to submit to?'. David practically teaches us how to discern in our suffering and how to react appropriately to adversity. This message is available now from https://www.preachtheword.com in MP3 audio format...



  • Religion & Spirituality

art

Overcoming Adversity, Part 2: What You Need To Know

In our second study in 'Overcoming Adversity', we learn 'What You Need To Know'. From the amazing Romans 8, David explains how God has given us the tools to overcome adversity. There is a special understanding that we have when we are 'in Christ' that causes us to triumph even in the worst afflictions. This comes from knowing who we are and what we have in Christ - knowing what is ahead of us in Christ; what God has purposed for us in Christ and how secure we are in Him. These keys to overcoming are available to all generations of believers whatever the current global challenges or personal trials we face. This is a message of encouragement that we all need in these days. This message is available now from https://www.preachtheword.com in MP3 audio format...



  • Religion & Spirituality

art

The Glorious Presence Of God, Part 1: In The Garden Of Eden

In this introductory message on 'The Glorious Presence Of God', we look at the different 'kinds' of God's presence and how at times, God manifests His presence to us, particularly in times of revival. Then David focuses on God's relationship with Adam and Eve before sin entered humanity and how our sin impacts the presence of God in our lives. This message is available now from https://www.preachtheword.com in MP3 audio format...



  • Religion & Spirituality

art

The Glorious Presence Of God Pt3: Its Departure

Ezekiel tells us how 'The Glorious Presence Of God' reluctantly withdrew from the Temple in stages and eventually from the whole nation. The sins of the people had driven Him from them. This is a sobering message highlighting the need for holiness but also giving us great hope in the Saviour we have in Jesus, who brings God's presence to us through His cross. This message is available at https://www.preachtheword.com now in MP3 audio format...



  • Religion & Spirituality

art

Álex Simón Designado cartelista del carnaval 2025, que tendrá lugar del 1 al 15 de marzo

En la ciudad de Cuenca, el ambiente está cargado de emoción ante la inminente llegada del Carnaval, uno de los eventos más esperados por la comunidad. El Concejal de Festejos, Alberto Castellano, ha destacado la colaboración entre su departamento y la Asociación Amigos del Carnaval para fortalecer esta celebración anual. «Llevamos ya tiempo trabajando en […]

Artículo publicado en : Álex Simón Designado cartelista del carnaval 2025, que tendrá lugar del 1 al 15 de marzo





art

Adventures of the Man in the Can - Chapter 11 - Conspiracy in the Sewers - Part 2



The secret is out about the poisoning of the elder birds and the park animals are in chaos wondering which among them is the villain. Can Yellow Bird and Man in the Can unwind the mystery before mayhem breaks loose? Find out now!!



MP3 File - Click Here to Download Podcast








art

Adventures of the Man in the Can - Chapter 11 - Conspiracy in the Sewers - Part 3



The Man in the Can knows who the conspirators are and also of their evil plans, but, what will the Man and the animals do? Listen now and find out...

Enjoy today's episode of the Adventures of the Man in the Can.



MP3 File - Click Here to Download Podcast








art

Arthur Of Albion - Book Review



Arthur of Albion is a beautifully illustrated version of the King Arthur Stories for children, an excellent book for older boys (or girls) interested in Knights. Published by the wonderful Barefoot Books company.

It is set out as a sequence of stories told each night at the round table, as King Arthur requires one of his Knights to tell a tale of valor and adventure every knight before dinner.

It is written by John Matthews illustrated by painter Pavel Tatarnikov and is truly breathtaking, the hardcover edition comes with a map folded up in the back showing the lands of Albion (or the UK as we know it now) in the days these stories were first told.

It would make a fantastic gift for children who are confident readers or to be read aloud to younger children, The way the stories are told makes it an excellent book for reading aloud one story a night for example.

Arthur Of Albion Available on Amazon.


 




art

Atos monlogues "Internet Survey number 2" for art action week project.

Picture by Stewart
If we're going to do any of the Atos monologues I'm going to need a lot of volunteers who can record themselves and somehow send the video, because of the amount of time we have I think we can only do a small part. Mainly because we don't have time to send larger videos which would probably have to be sent by post on a disc. There are a lot of lines in this part, and the resulting videos will hopefully be short enough to email or send over facebook. If you just upload them to the art action group I can download them from there.
I've moved this post onto the blog as it's easier to share a link to it, and I can strike through the lines that are already taken.  If you want to take part chose the line you want to read from the list below, record it and you can send it to me through facebook. If you don't use facebook leave a comment and we'll find another way for you to send me the video. And if the line you wanted has a line through it sorry someone has already taken that one.
Here is the full Atos Monologues 2 script: 

http://www.scribd.com/doc/105841602/The-Atos-Monologues2
The part we are doing is on page 13
 

We can't see Post traumatic stress disorder and we've never heard of a hippocampus.
You do not meet my limited definition of being disabled
You drive an Audi. How would you afford it? It would be too difficult for a disabled person to get in.
You can text a friend
You can tweet
You watch TV and soaps and can sit comfortably for half an hour.  
I saw you stand up!
'You're too young'
You can pick up a £1 coin
"You seem alright to me"
"You're smiling"
You look butch. Can't be anything wrong with you.
You could fill in the form.
You brushed your hair this morning and you’re wearing a nice coat
You answered questions that was asked
You traveled by bus
You don’t soil yourself every day.
You could fill in the form
You’re still breathing
You can spell your name backwards
You're not a dribbling, disheveled lunatic howling at the moon and threatening to axe people to death
You hold eye contact
You don’t look disabled enough to me
You brushed your teeth this morning.
You’re faking it.
You can’t have Post traumatic stress disorder because "you've never been in a war zone"
You’re at university.
You have a girl friend.
You don’t look autistic
You can talk
I cannot see anything wrong with you
You moved your leg.
You can lift an empty box up to waist height.
You’re so pretty.
PAUSE
You can’t be disabled because of Tory ideology




art

Art Action Week Slideshow




art

Réforme de la "carte famille nombreuse"

Après le bouclier social, la fin des 35h qui permette de gagner moins (puisque non majorées à 25 %), les suppressions de postes de fonctionnaire (mais surtout pas dans les ministères !), la suppression de la pub sur France Télévision, qui ne gênait personne...




art

Wave Arts - Tube Sat Vintage 1.0.2

Freeware for PC : Plug-ins & effects / Tube emulation




art

Događaji - najave i recenzije :: Gastro pub Bulart 1887: Vinarija Matošević i Michelin star chef Goran Kočiš

Autor: Redakcija 031 Naslov: Gastro pub Bulart 1887: Vinarija Matošević i Michelin star chef Goran Kočiš
Postano: 13.11.2024. 10:41 (GMT 1) Još jedna senzacionalna Ljekarna u Tvrđi je pred nama. U četvrtak, 21. studenog 2024. u Gastro pub Bulart 1887 s početkom u 19:00 sati stižu Vinarija Matošević i Michelin star chef Goran Kočiš.

Da smo mogli birati idealno vrijeme za dolazak velikog Ivice Matoševića u Ljekarnu u Tvrđi, ne znam postoji li bolji termin od ovoga sada. Jer, nakon skoro 30 odrađenih berbi, Ivica Matošević posljednjih mjeseci ne prestaje nizati panegirike koje mu upućuju najveći svjetski vinski mediji. Vrhunac karijere ovog intelektualca među vinarima, spiritus movensa cijele istarske vinske scene!

Ugledni Wine Enthusiast je prije nekoliko dana čak četiri Matoševićeva vina honorirao s vrlo visoka 94 boda (Superb - A great achievement ), dok je, uvjetno rečeno, „najlošije“ prošla njegova bazna malvazija – 92 boda (Excellent - Highly recommended ). Časopis Decanter ga je prije mjesec dana za malvaziju iz akacije pohvalio sa 93 boda, Saša Špiranec je dvije Grimalde, koje ćemo kušati u Ljekarni u Tvrđi, nagradio sa 95, odnosno 94 boda, dok Ivo Kozarčanin, „Bakhov sin“, za njegova vina tvrdi da su – „čisti eros“.

Povod gostovanju Ivice Matoševića u Ljekarni u Tvrđi je predstavljanje posebne serije najboljih vina iz njegova podruma koju je nazvao Živjelo prijateljstvo, a koju je, kao pravi kolekcionarski biser, posvetio svom, nažalost preminulom, velikom prijatelju Vladi Divljanu. U prodaju je pušteno samo 100 sanduka s vinima iz linije Grimalda i Alba Antiqua, a umjetničke etikete, s podsjećanjem na šest pjesama Vlade Divljana – Radostan dan, Nebeska tema, Vodim te na more, Odnesi me, Ona to zna i Imala je snažnije ruke nego ja, osmislile su umjetnice iz Zagreba, Splita i Beograda - Maja Bosnar, Jana Oršolić, Svetlana Volić, Maja Rožman, Katarina Juričić i Ivana Grimani.

Broj gostiju smo ograničili na 40, tako da će prednost za sudjelovanjem na ovoj uistinu ekskluzivnoj Ljekarni u Tvrđi imati oni koji se prvi jave i spremni su za to izdvojiti 60 eura.

Svoje mjesto rezervirajte putem e-mail: zeljko.garmaz@gmail.com ili pozivom na broj 0916400527.




art

Un haut responsable du PCC appelle � la promotion d'une communaut� Chine-Vietnam d'avenir partag�

Le haut responsable chinois, Li Xi, a rencontr� Phan Dinh Trac, membre du Bureau politique, secr�taire du secr�tariat et pr�sident de la Commission des affaires int�rieures du Comit� central du Parti communiste vietnamien (PCV), mardi � Beijing. ...




art

Chine : la partie continentale encourage les �changes entre les jeunes et appelle � lever les restrictions sur les voyages entre les deux rives du d�troit de Taiwan

La partie continentale de la Chine a r�affirm� son engagement � promouvoir les �changes entre les jeunes � travers le d�troit de Taiwan et a demand� aux autorit�s du Parti d�mocrate progressiste (PDP) de lever les restrictions sur les voyages �...




art

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...




art

Chine : la puissance de l'aviation et de la d�fense de la partie continentale est une protection solide pour les compatriotes taiwanais

Une porte-parole de la partie continentale de la Chine a qualifi� les r�sultats et la puissance de la partie continentale dans les domaines de l'aviation, de l'a�rospatiale et de la d�fense nationale de protection "solide et immense" pour les...




art

Une porte-parole de la partie continentale condamne les autorit�s du PDP pour avoir "ruin� Taiwan"

Une porte-parole de la partie continentale de la Chine a vivement critiqu� mercredi les autorit�s du Parti d�mocrate progressiste (PDP) de Taiwan pour avoir cherch� � obtenir le soutien des Etats-Unis, d�clarant que plus leur d�pendance � l'�gard...




art

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�...











art

Performance Counters in Delphi, sample project and article

Implementing performance monitors in your app is very helpful for profiling, debugging and general satisfaction of the more qualified endusers. It's also a non-trivial excercise, to put it mildly. Microsoft have done their part in making it obscure and hard to use, so naturally, we can't leave it alone, can we? This particular implementation only implements raw and delta counters, but that covers almost anything you'll ever need. The basis is there for other types of counters, though, such as instance based counters and high-precision. Both precompiled and full project source is available.




art

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




art

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




art

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




art

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.




art

Ancora su bozzetti di carta e prototipi

Dopo “Progettare con la carta” in cui presento il metodo che uso per creare i prototipi con l’aiuto di bozzetti di carta, sono stati pubblicati in rete alcuni articoli che approfondiscono l’argomento. The Messy Art Of UX Sketching di Smashing Magazine … Continua a leggere

L'articolo Ancora su bozzetti di carta e prototipi proviene da Fucinaweb.




art

Gli articoli più letti nel 2011

Fine anno. Questi sono i 5 articoli più letti e pubblicati nel 2011 su Fucinaweb. La classifica tiene conto sia delle visite del sito, sia delle letture tramite il feed RSS. Guerrilla web project management Le slide con l’audio della … Continua a leggere

L'articolo Gli articoli più letti nel 2011 proviene da Fucinaweb.




art

Fantasy Football NFL Depth Charts

These are fantasy specific depth charts and may not always match the "official" NFL team depth charts.




art

Start Your Own Blank T-Shirts Drop shipping Business

Buy Blank T-Shirts, start your own dropshipping t-shirt business. shipping to United States and Canada, fixed pricing for shipping.



  • Apparel
  • blank t-shirt
  • blank tees
  • blank tshirt
  • dropship tshirt business
  • starting a tshirt business with no money
  • tshirt business from home
  • tshirt business online

art

Artisan cheeses Tasmania

Why not go on a Tasmanian gourmet cheese crawl ? There’s an immense number of cheese producers in Tasmania, and the fabulous news is that a number of them are open to visitors for tastings, meaning you can base your entire holiday around a spectacular gourmet cheese crawl. With so many small scale producers making...




art

Liveblog zu Neuwahlen: ++ Kukies erwartet keine Haushaltssperre ++

Der neue Bundesfinanzminister Kukies geht nicht davon aus, dass es eine Haushaltssperre geben wird. BSW-Chefin Wagenknecht sieht für ihre Partei durch den Zeitdruck Herausforderungen. Die Entwicklungen vom Dienstag zum Nachlesen.




art

Porto für Briefe und Postkarten steigt auf 95 Cent

Zum Jahreswechsel wird es teurer, einen Brief oder eine Postkarte zu verschicken. Doch auch bei anderen Sendungen soll das Porto steigen. Das Plus beim Versand fällt für die Post aber deutlich zu gering aus.




art

Volkswagen startet neue Allianz mit dem Tesla-Rivalen Rivian

Nun ist es offiziell: Volkswagen holt sich für Auto-Software der nächsten Generation Hilfe vom US-Elektroautobauer Rivian. Dafür stockt der Konzern seine Investition in ein Gemeinschaftsunternehmen noch einmal auf.




art

Ermittlungen gegen Rechtsextremisten Martin Sellner

Der österreichische Rechtsextremist Sellner inszenierte Anfang des Jahres seine Einreise nach Deutschland mit Berichten in sozialen Medien - das hat ein juristisches Nachspiel. Die Staatsanwaltschaft in Wien ermittelt. Von M. Bewarder.




art

Bank Closure:Heartland Bank and Trust Company, Bloomington, Illinois, Assumes All of the Deposits of Bank of Shorewood, Shorewood, Illinois

Bank of Shorewood, Shorewood, Illinois, was closed today by the Illinois Department of Financial and Professional Regulation - Division of Banking, which appointed the Federal Deposit Insurance Corporation (FDIC) as receiver.Bank Closure:Heartland Bank and Trust Company, Bloomington, Illinois, Assumes All of the Deposits of Bank of Shorewood, Shorewood, Illinois




art

Help finding proper name and source for part

My 1996 12 valve Cummins has developed a bad coolant leak due to a rust hole in what the one Cummins scamantic calls an "oil cooler" The part is looks like an 8 to 10 inch approx by 2 to3 in approx...




art

Engine & Drivetrain 1990 getrag conversion parts

ive got flywheel, complete clutch, bellhousing, to go with trans and shifter, trans worked fine in all gears, friend brought it to me locked in second gear, shifter popped over the 1-2 shift gate to...



  • 1st Gen All Products

art

August Starts With a Bang!

****************************************************************
This is a message from your upline Director John O’Driscoll. Team we are 310+ strong and growing fast!
****************************************************************

Guys

What a start to August!

  1. Welcome to new team members

    I would just like to say a personal welcome to new team members who joined us yesterday, congratulations and welcome to the team.

    David Brown
    Debbie Frier
    Fabio & Sandra Fernandez
    Larry Nichols
    Harbans Verdi

    Make sure you go to our first steps guide Click here

  2. A Faculty call you have to listen to!

    If you missed Tony Michael, Vice President of Sales, last night then I strongly urge you to look out for the replay - it will blow your socks off!

  3. Would you like to be trained by a Vice President with a team of 20,000+?

    Whether your new to Success University or a seasoned veteran I know we can all benefit from learning first hand from someone who went from being a tool maker to one of only 2 Vice President's in Success University. Ned & Cheryl Rae have built a team of 20,000+ in just over 2 years, would you like to duplicate their success? Get on the call this Saturday.

    Saturday 1pm CST

    pin #

  4. Day 18 of the 90 day Blitz…

    Have you joined Executive Director's Chris & Julie Chojnowski's 90 day blitz? We are 18 days in and we are seeing huge growth throughout the team. Don't worry if you haven't started as you can start at any time. Here is a replay of the training call http://www.audioacrobat.com/play/W8kY3mxs

  5. Coop Update

    Coop members will have seen some activity yesterday which I will update in the Coop blog. All I will say guys is that activity was a free bonus from me and didn't dent the kitty one penny! Please make sure you send me details of your successes so i can update the blog.

  6. Claim your $500 bonus in August

    You should already be working your way towards your bonuses for this month but for new members look out for details of this months bonus schedule by email. One of the most popular and easy to attain bonuses is the $500 2x2. All you need to do is introduce 2 people to Success University and teach them to do the same. We all know 2 people right? Go for it!

  7. 3 days till I fly…

    It's drawing very close now. We fly back out to Malaysia on Sunday to continue to build our team there. We will stay until the end of August and should be back in the UK by August 31st. I will update what my Malaysian contact number will be if you need me to speak with any of your contacts while I am out there. For team Malaysia lets make this another goal breaking month!


To Your Success!
John O'Driscoll

http://leadstomlm.com




art

This Wednesday-Byrd Baggett Part 3 of a 4 Part Series!

Since June, Byrd Baggett has been a regular guest on the SU faculty teleseminar as he shares a 4 part series called "Going Deep - How to Grow Your Career and Life to the Level of Significance"

The earlier sessions were powerful! Instructive! Emotionally stirring! In short the first two calls were some of the most touching events I have ever been involved in... until now!

If you think this all sounds like hype, I challenge you to discover the power of this message by joining us on Wednesday August 15 at 8pm Central as we continue on this potentially life changing journey.

Byrd Baggett
Wednesday, August 15 at 8pm Central
(512) 225-9483
Pin 486309#



Hi Millionaire,

When you are ready to "Go Deep" in your life and you grow to the level of significance, you would be wise indeed to carefully select a guide for your journey. We want to inspire you to celebrate your entrepreneurial spirit and challenge you to be your best.

Byrd Baggett is one of the best people I could ask to guide us to the other side, to that place of freedom, success and happiness. A significant life.

In this session, entitled "Drought Proof" - How to harness the transformational power of perseverance" Byrd Baggett will show us how to incorporate the power of perseverance into our lives. You will learn how to look at life through the windshield, not the rear-view mirror.

Following are some of the powerful, practical, and applicable insights that will be shared:

How to conquer fear


How to overcome the addiction of perfection


"The Rule of Ten" - You will learn five simple acts of daily disciplinethat will transform your life, both personally and professionally.

Success University listeners will be the first to hear these powerful insights!

Make plans to join us, as Byrd shows us how to grow to the richly rewarding Season of Significance. As participants from Byrd's previous sessions will attest, this promises to be a transformational experience.



Who is Byrd Baggett?

Byrd Baggett's passion and expertise is helping people and teams grow to the level of significance. His presentations are as original and memorable as his name. His mission is to transform people and teams by teaching them the skills essential to developing relationships that stand the tests of time and change.

Byrd is the world's most prolific creator of original quotes and acronyms. He is the author of over 2,500 quotes and acronyms that have been published in thirteen best-selling books, including four on the topic of leadership. These books have sold in excess of one million copies and have been published in nine languages. His quotes and articles on leadership, sales, motivation, and customer service have been featured in many publications, including Reader's Digest, Bits & Pieces, Guide Posts, and Selling Power magazine.

He achieved All American status as a collegiate athlete, had successful careers with two Fortune 500 companies, and built a successful multi-million dollar business. Byrd's powerful words, coupled with his engaging real-life stories, celebrate the winning spirit and challenge people to discover the winner within.



A standing ovation for Byrd Baggett:

I can't remember when I've received 100% positive comments from any company-sponsored event. What you accomplished is beyond the reach of your peers. Your passion for your Mission, your love for people, and your commitment to excellence is a combination that I've not experienced before in my 30 years in the business world. Thanks to you, we at Protective Life have a renewed sense of purpose and a developing vision on what it takes to become effective leaders.
~Dave Keyes, Senior Vice President, Protective Life Corporation

I have been associated with training and development for thirty years and have heard some truly excellent presentations, and yours is as good as it gets! As long as there are individuals like you delivering the powerful message of servant leadership, there is hope for organizations.
~Gary Sullivan, Indian River Community College

I just wanted to thank you for the positive impact you've had on my life. I now have a new enthusiasm about my business and personal life. I have become a better husband, father, friend, and leader of my business from listening to you speak.
~Andy Malone, 2005 Agent of the Year, Farmers Insurance

I would like to highlight several unique characteristics that make your work so specialÉ An incredible ability to connect with people on a personal level, a sincere passion and interest in helping people grow, and the ability to positively impact everyone with several memorable quotes to call upon in times of reflection in our daily lives. I recommend your services to anyone wishing to inspire and expand their capabilities for achieving true success and happiness, both professionally and personally.
~Joel Goode, Gilead Sciences

As a member of Success University you get access to all these faculty calls plus lots more as part of your membership. Has the cost of a cup of coffee a day ever brought you so much?

John O'Driscoll

mlm-successsite.com




art

Mazeppa article/interview in This Land

Now online at This Land: Mazeppa: The Uncanny Film Festival and Camp Meeting by Lindsey Neal. The article includes interviews with Gailard Sartain and Jim Millaway. Link in GroupBlog 321.




art

KVOO-TV newsman George Martin passes

Anchor of Channel 2 news circa 1960, an era before video tape and color. Photo of Mr. Martin with NBC national anchor Chet Huntley in GroupBlog 324.