part

Retroviral particles in human immune defenses - is AIDS orthodoxy dead wrong?

We have previously published articles by the Australian AIDS-and-biology researcher Cal Crilly, and here is yet another installment. Cal is someone who digs into scientific studies. He does biological detective work and finds gems that hide in plain view, things we don't normally understand and that even the experts do not see as they are not trained to put discordant facts together and question basic assumptions. What this new article tells us is that retroviruses - the same kind that are thought to cause immune deficiency or AIDS - are useful and necessary for our immune system to function correctly. That of course tends to leave the hypothesis of a viral causation of AIDS in grave trouble. I say 'hypothesis' because no one has proven, or even come close to a coherent explanation for, the mechanism of AIDS causation by HIV. How does a retrovirus that is by nature a benign particle, cause devastation of the immune system? Here we have several scientific studies published in the world's finest journals, which attest to the fact that retroviruses are part and parcel of the human organism, that they are needed to provide certain defensive capabilities against invaders, and that they are not pathogenic. So we might ask ourselves why HIV tests (thought to indicate the presence of a retrovirus) are still performed, and why doctors are still recommending the use of toxic anti-retroviral drugs to kill what, rather than a foreign invader, appears to be part of normal human metabolic processes. Cal Crilly lays it out for you, citing and linking the sources......




part

Did Aspartame kill Cory Terry?

Cory Terry Died After Drinking Red Bull, $85 Million Wrongful Death Suit Claims, is the title of a recent article in the Huffington Post that reports on a rather unusual death. Cory Terry downed a Red Bull when he finished a basketball game and a few minutes later he died of a heart attack. Red Bull comes in different formulations, the dark blue normal and a - supposedly more healthy - 'diet' or sugar free version, which is the light blue one. To be sure, we don't know which one Terry preferred. Was it the normal or the diet version that killed him? Betty Martini believes it was 'diet' and that the damage was done by a specific ingredient: the aspartame that supplants sugar in the diet version. Betty says she knows of other cases of athletes having heart attacks after consuming soft drinks that contain aspartame. She has been trying to alert press and authorities to the dangers of the methanol-containing sweetener. I am reproducing her lengthy email here because she goes into considerable detail. If you love diet drinks or know someone who does, read this or let them read it. The data might save your life. Here goes Betty Martini......




part

European Food Safety Authority cherry picks evidence - finds Aspartame completely safe

After conducting "one of the most comprehensive risk assessments of aspartame ever undertaken", the European Food Safety Authority has released its verdict on 10 December 2013. The agency came to the conclusion that aspartame and its breakdown products are "safe for human consumption at current levels of exposure". The EFSA press release says that this was an important step forward in "strengthening consumer confidence in the scientific underpinning of the EU food safety system and the regulation of food additives". So the message seems to be that we should all just move on to other things. Leave aspartame alone and better yet - drink some of that "diet" Coke. But should we really? Could perhaps the power of money and influence behind big food have had a determining effect on that decision? We cannot be certain what exactly caused the EU regulator to give aspartame a clean bill of health rather than to acknowledge the sweetener's widely known dangers. Fact is - they disregarded every single study that showed aspartame to have adverse effects. Prof. Erik Millstone of the University of Sussex Science and Technology Policy Research Unit believes that EFSA has arrived at its conclusion by opportunistic interpretation of the studies that were reviewed. Most of the industry funded studies were given straight A's, while independent studies were - without exception - given an 'F' rating. Millstone says that "The EFSA Panel opportunistically accepted at face value almost all of the studies suggesting that aspartame is harmless, while entirely discounting every single study indicating that aspartame may be harmful, even though the quality, power and sensitivity of many of the studies that were discounted were markedly superior to those of the contrary studies deemed reliable."...




part

Parteiverrat




part

Topical Sermon: Praise Time! - Part 1

Enjoy the first of our new format of messages from David Legge, also available to watch on our YouTube Channel! In this two-part message, David encourages us to choose to praise - no matter what our circumstances - in order to affect our mood. Join us for this first part, as we find out what praise is and what it looks like. This sermon is available now from https://www.preachtheword.com in MP3 audio and on our YouTube Channel (https://youtube.com/PreachTheWord) in HD video...



  • Religion & Spirituality

part

Topical Sermon: Praise Time! - Part 2

In this second part of his message 'Praise Time!', David looks at what praise does - the effects praise can have upon your life's circumstances and your own personal well-being. Learn some of the practical outcomes of what happens when you activate the power of praise! This sermon is available now from https://www.preachtheword.com in MP3 audio and on our YouTube Channel (https://youtube.com/PreachTheWord) in HD video...



  • Religion & Spirituality

part

The Holy Spirit Pt6: The Work Of The Holy Spirit, Part 1: Conviction and Regeneration

Part 6 of our series on 'The Holy Spirit' begins our look at 'The Work Of The Holy Spirit'. The Holy Spirit is the critical prime mover in the work of redemption. He established salvation for us but now He is also the One who applies salvation to us. In the next two studies, we will see how the Holy Spirit personally works in our lives to conform us to the image of Jesus. This episode will look at the Spirit's work of 'Conviction and Regeneration'. Why not share this message, which 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

part

The Holy Spirit Pt7: The Work Of The Holy Spirit, Part 2: Empowerment and Sanctification

Part 7 of our series on 'The Holy Spirit' continues our look at 'The Work Of The Holy Spirit'. The Holy Spirit is the critical prime mover in the work of redemption. He established salvation for us but now He is also the One who applies salvation to us. We are learning how the Holy Spirit personally works in our lives to conform us to the image of Jesus. Last time we considered the Spirit's work of 'Conviction and Regeneration', in this episode we will look at the Spirit's work of 'Empowerment and Sanctification'. Why not share this message with others? It's 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

part

The Holy Spirit Pt28: The Gifts Of The Spirit - Gifts Of Healings, Part 1

In Part 28 of 'The Holy Spirit' series, it's 'The Gifts of Healings' - what are these gifts and how can we expect them to operate today? Is it God's will to heal? Should we pray for healing? Does that prayer always get answered? These are some of the questions we seek to answer from what the Bible has to say about healing. This is the first of two studies on this gift. This study 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

part

The Holy Spirit Pt29: The Gifts Of The Spirit - Gifts Of Healings, Part 2

For Part 29 of 'The Holy Spirit' we have the second episode of our look at 'The Gifts of Healings'. David further explores this gift in the Bible and how it operates today. He considers whether, as some claim, using medicine is somehow showing a lack of faith in the healing gift. He also seeks to answer a common objection to this gift - if you 'have' it why don't you go and heal everyone in the hospitals and hospices? In these two studies we are seeking to biblically, honestly and sensitively explore a subject that dominated the ministry of Jesus and the Apostles and that we are promised to experience in some capacity today. This message 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

part

The Holy Spirit Pt31: The Gifts Of The Spirit - Tongues, Part 1

For Part 31 of our series on 'The Holy Spirit', we begin our consideration of 'Tongues'. What is the gift of tongues? What is it for? Is it a private prayer language or to be used in public in the church? Are there rules around the use of tongues in the church? These are some of the questions David considers in this first study on the vocal gift of different kinds of tongues. This sermon 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

part

The Holy Spirit Pt32: The Gifts Of The Spirit - Tongues, Part 2

Part 32 of our series on 'The Holy Spirit' forms the second episode on the gift of 'Tongues'. David Legge considers more questions that people ask about this gift of the Spirit. You may have had some of these questions yourself after the last study. Is there such a thing as public tongues and private tongues and is there a difference between these? Are we out of control when we speak in tongues? Is there a danger of demonic tongues? Do we have to be careful in seeking this gift in case we receive something harmful? Join us we look for the answers! This sermon 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

part

The Holy Spirit Pt34: The Gifts Of The Spirit - Prophecy, Part 1

Join us for Part 34 of 'The Holy Spirit' as we continue looking at the gifts of the Spirit. We come now to the final gift of the Spirit, 'Prophecy'. This is the first of a two-part final study which concludes this series and our lessons on the gifts of the Holy Spirit. In this episode, David Legge considers the questions of who can prophesy and what prophecy actually is. Come with us to see what God’s word actually teaches about this vital gift that the church needs to be built up as Christ intended. This message 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

part

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

part

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

part

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

part

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

part

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


part

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








part

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








part

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




part

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




part

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




part

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




part

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




part

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




part

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




part

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




part

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




part

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




part

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

part

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




part

Past Particles..




part

LGU, 20IB, and partners launch Sagip-Tingin Project in Catubig, Northern Samar

The “Sagip-Tingin” Project aimed to provide free eye screening and eye check-ups to the residents of Catubig, especially those from former conflict-affected barangays and Geographically Isolated and Disadvantaged Areas.




part

ARBs in EV receive cash assistance from DSWD, Tingog Partylist

About 1,199 ARBs from different parts of the region trooped to designated payout areas to get their cash assistance under the DSWD’s Assistance to Individuals in Crisis Situation (AICS) program.




part

LXer: How to Set Up a Separate /home Partition on Linux

Published at LXer: By creating a separate /home partition, Linux users can preserve personal files and settings during OS reinstallations, avoiding data loss and simplifying the migration process....



  • Syndicated Linux News

part

LXer: GParted Live 1.6.0-10: Enhanced Stability and Updated Features

Published at LXer: GParted Live's latest release removes cpufrequtils, adds pm-utils, and updates the Linux kernel to v6.10.11. Read More... (https://linuxiac.com/gparted-live-1-6-0-10-released/)



  • Syndicated Linux News

part

LXer: HardenedBSD and Protectli Partner to Build a Censorship-Resistant Mesh Network

Published at LXer: The HardenedBSD Foundation has partnered with Protectli, a manufacturer of open-source firewall appliances, to develop a censorship- and surveillance-resistant mesh network. ...



  • Syndicated Linux News

part

LXer: Firefox 132 Enters Beta with Support for Blocking Third-Party Cookie Access

Published at LXer: With the Firefox 131 release rolling out today to all supported platforms, Mozilla promoted the next major version, Firefox 132, to the beta channel for public testing. Read...



  • Syndicated Linux News

part

Blague à part

Quand j’ai vu la promo dans le rayon j’ai sauté dessus comme un malpropre, pensant déjà engloutir des tonnes d’amandes salées devant un bon DVD. Misère… j’aurai eu mieux fait de lire ce qui est écrit sur l’emballage, c’était pourtant écrit assez gros...




part

Moving the Root Partition to a New Disk in Ubuntu 18.10 (General GRUB Chicanery)

I had a Ubuntu 18.10 install setup perfectly on a disk shared with a Windows 10 install. I originally setup Windows 10 and then reduced the size of the Windows 10 partition to make room for a Ubuntu 18.10 install. After the install of Windows 10 and the Ubuntu 18.10 install I had these partitions: […]

The post Moving the Root Partition to a New Disk in Ubuntu 18.10 (General GRUB Chicanery) first appeared on robotthoughts.




part

Densidad e identificación de las palabras claves por parte de los buscadores

Un abuso de frecuencia en la palabra a menudo es interpretado como spam y es penalizado. Debemos mantener siempre el contenido de las Webs legible para las personas, pues además del tema de las penalizaciones de contenidos hechos solo para buscadores debemos tener en cuenta que el objetivo final de nuestras Webs e llegar a los usuarios y ofrecerles contenidos de calidad que ...




part

Austin Affordability: The High Cost of Living Apart

In an increasingly “unaffordable” Austin, it occurs to me that many of us could live way cheaper if we could just get along and live in extended family groups or roommate groups. I’ll use my own family as an example to explore this CRAZY idea for curing Austin’s affordability problem. Sylvia and I live in a home in SW Austin with a $3,000/mo mortgage. Our utilities average $250/mo for everything, plus yard care of $80 per month, and of course repairs and maintenance as needed. We intentionally downsized to this home from Westlake, because we want to live more “affordably” and we no longer needed to live in Westlake Eanes ISD after our girls graduated high school. My mom, in her 70’s, lives three blocks away in a home I purchased as investment (but for her to live in). I charge her $1,200/mo rent (market rent would be $2,000, my payment/cost ... Read more



  • Austin Real Estate
  • Living in Austin

part

Honda CX500 TC Turbo Parts List Manual 1982.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...




part

Honda CX500 TC Parts List Manual 1982.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...




part

Honda CT70 Parts Manual 1973 Onwards.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...




part

Honda CMX450C Rebel Parts Manual 1986 1987.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...




part

Honda CL160 Parts List Manual.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...




part

Honda CGR1251SH CGR1252SH Parts Manual 20005 Onwards.pdf

Professional Quality: Parts Manual, Parts List, Parts Catalog With Exploded Diagrams. *Contains manufactures part numbers and diagrams for EVERY ...