rt Support je vereniging met een nieuw spandoek By voetbal.blog.nl Published On :: Tue, 16 Aug 2016 10:16:31 +0000 Je hebt de perfecte supporterslook aan en kent alle clubliederen uit je hoofd, maar toch ontbreekt het nog aan iets. ...... Lees verder: Support je vereniging met een nieuw spandoek Full Article .Algemeen
rt New Release - Land for Sale in Burton-on-Trent, Staffordshire By www.apnaland.com Published On :: Pasture and Potential Investment land for sale. This attractive parcel of land totals over 62 acres and has the unique benefit of river frontage. Full Article
rt New Release - Land for Sale in Towcester, Northamptonshire By Published On :: Around 15 acres of flat land for sale, the land is available as a whole or in lots and benefits from strong investment potential due to the proximity of nearby developments. Full Article
rt Garmin Edge 820 combineert 520 en 1000 in één model By wielrennen.blog.nl Published On :: Fri, 21 Jul 2017 11:58:20 +0000 De Garmin Edge 820 is in juli 2016 de nieuwste uitgave van de Garmin fietscomputers. De 820 is klein, functioneel ...... Lees verder: Garmin Edge 820 combineert 520 en 1000 in één model Full Article Algemeen
rt Zwift levert renner profcontract op By wielrennen.blog.nl Published On :: Wed, 22 Nov 2017 16:07:29 +0000 De eerste wielrenner die via het fietsprogramma Zwift een profcontract heeft verdiend is een feit. Team Dimension Data schreef eerder ...... Lees verder: Zwift levert renner profcontract op Full Article Algemeen Ollie Jones profcontract Zwift
rt EBSQ Art of the Day - July 17, 2018: Sunflowers by Robin Cruz McGee By www.ebsqart.com Published On :: Tue, 17 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 17, 2018 Sunflowers © by: Robin Cruz McGee View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 18, 2018: Sunflowers by Michael A Lang By www.ebsqart.com Published On :: Wed, 18 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 18, 2018 Sunflowers © by: Michael A Lang View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 19, 2018: Vincent and Sunflowers by Tracey Allyn Greene By www.ebsqart.com Published On :: Thu, 19 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 19, 2018 Vincent and Sunflowers © by: Tracey Allyn Greene View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 20, 2018: Peach Sunflowers by So Jeo LeBlond By www.ebsqart.com Published On :: Fri, 20 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 20, 2018 Peach Sunflowers © by: So Jeo LeBlond View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 21, 2018: Dark Sunflowers by Laurie Justus Pace By www.ebsqart.com Published On :: Sat, 21 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 21, 2018 Dark Sunflowers © by: Laurie Justus Pace View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 22, 2018: Sunflowers by Shane Darren Ervin By www.ebsqart.com Published On :: Sun, 22 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 22, 2018 Sunflowers © by: Shane Darren Ervin View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt EBSQ Art of the Day - July 23, 2018: Sunflower Ladybug Vignette by Pamela K Wilhelm By www.ebsqart.com Published On :: Mon, 23 Jul 2018 00:00:01 GMT EBSQ Art of the Day July 23, 2018 Sunflower Ladybug Vignette © by: Pamela K Wilhelm View today's art on EBSQ Search for EBSQ: eBay ImageKind Etsy ArtByUs.com Full Article
rt Performance Counters in Delphi, sample project and article By www.wehlou.com Published On :: Sat, 8 May 2004 15:19:40 +0200 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. Full Article
rt Are older releases of the database really unsupported? By www.orafaq.com Published On :: Sun, 28 Jul 2013 10:19:47 +0000 articles: RDBMS ServerI see posts on Oracle related forums about various releases (anything that isn't 11.x or 12.x) being "unsupported". This is wrong. Of course you should upgrade any 9i or 10g databases, but you don't have to. Oracle Corporation's lifetime support policy is documented here, Lifetime Support Policy take a look, and you'll see that release 10.2 was in premier support until end July 2010 when it went into extended support. At end July 2013, it goes into sustaining support. Sustaining support will continue indefinitely. Even release 8.1.7 will have sustaining support indefinitely. So what is sustaining support? That is documented here, Lifetime support benefits To summarize, extended support gives you everything you are likely to need. What you do not get is certification against new Oracle products or new third party products (principally, operating systems). But does that matter? I don't think so. For example, release 11.2.0.3 (still in premier support) is not certified against Windows 8, but it works fine. Sustaining support has a more significant problem: no more patches. Not even patches for security holes, or changes in regulatory requirements. The security patch issue may of course be serious, but regulatory issues are unlikely to matter (this is a database, not a tax management system.) Think about it: 10g has been around for many years. It is pretty well de-bugged by now. If you hit a problem with no work around, you are pretty unlucky. Sustaining support gives you access to technical support, available patches, software, and documentation. That is all most sites will ever need. Right now, I am working on a 9.2.0.8 database. It cannot be upgraded because the application software is written by a company that does not permit a database upgrade. Why not? Well, the reason may be commercial: they have a replacement product that is supported on newer databases. But that is nothing to do with me. The database works, the software works. Making it work better is a challenge - but that is what a DBA is paid to do. Don't just write it off as "unsupported". Of course I am not suggesting that users should not upgrade to current releases - but upgrades are a huge project, and can have major implications. Running out dated software is silly, unless you have an irrefutable reason for so doing. The lack of security patches make you vulnerable to data loss. The lack of regulatory patches may make it illegal. The lack of newer facilities will be restricting the utility of the system. You may be losing money by not taking of advantage of changes of newer technology that can better exploit your hardware. If anyone is looking for consulting support to upgrade their database - my boss will be happy to give you a quote. But I won't refuse to support you in the meantime. -- John Watson Oracle Certified Master DBA http://skillbuilders.com Full Article
rt Three impossibilities with partitioned indexes By www.orafaq.com Published On :: Sun, 01 Sep 2013 16:22:11 +0000 articles: RDBMS ServerThere 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 Full Article
rt Inverted tables: an alternative to relational structures By www.orafaq.com Published On :: Sun, 08 Sep 2013 08:52:30 +0000 articles: WarehousingThe inverted table format can deliver fast and flexible query capabilities, but is not widely used. ADABAS is probably the most successful implementation, but how often do you see that nowadays? Following is a description of how to implement inverted structures within a relational database. All code run on Oracle Database 12c, release 12.1.0.1. Consider this table and a few rows, that describe the contents of my larder: create table food(id number,capacity varchar2(10),container varchar2(10),item varchar2(10)); insert into food values(1,'large','bag','potatoes'); insert into food values(2,'small','box','carrots'); insert into food values(3,'medium','tin','peas'); insert into food values(4,'large','box','potatoes'); insert into food values(5,'small','tin','carrots'); insert into food values(6,'medium','bag','peas'); insert into food values(7,'large','tin','potatoes'); insert into food values(8,'small','bag','carrots'); insert into food values(9,'medium','box','peas'); The queries I run against the table might be "how many large boxes have I?" or "give me all the potatoes, I don't care about how they are packed". The idea is that I do not know in advance what columns I will be using in my predicate: it could be any combination. This is a common issue in a data warehouse. So how do I index the table to satisfy any possible query? Two obvious possibilities: First, build an index on each column, and the optimizer can perform an index_combine operation on whatever columns happen to be listed in the predicate. But that means indexing every column - and the table might have hundreds of columns. No way can I do that. Second, build a concatenated index across all the columns: in effect, use an IOT. That will give me range scan access if any of the predicated columns are in the leading edge of the index key followed by filtering on the rest of the predicate. Or if the predicate does not include the leading column(s), I can get skip scan access and filter. But this is pretty useless, too: there will be wildly divergent performance depending on the predicate. The answer is to invert the table: create table inverted(colname varchar2(10),colvalue varchar2(10),id number); insert into inverted select 'capacity',capacity,id from food; insert into inverted select 'container',container,id from food; insert into inverted select 'item',item,id from food; Now just one index on each table can satisfy all queries: create index food_i on food(id); create index inverted_i on inverted(colname,colvalue); To retrieve all the large boxes: orclz> set autotrace on explain orclz> select * from food where id in 2 (select id from inverted where colname='capacity' and colvalue='large' 3 intersect 4 select id from inverted where colname='container' and colvalue='box'); ID CAPACITY CONTAINER ITEM ---------- ---------- ---------- ---------- 4 large box potatoes Execution Plan ---------------------------------------------------------- Plan hash value: 1945359172 --------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | C --------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 3 | 141 | | 1 | MERGE JOIN | | 3 | 141 | | 2 | TABLE ACCESS BY INDEX ROWID | FOOD | 9 | 306 | | 3 | INDEX FULL SCAN | FOOD_I | 9 | | |* 4 | SORT JOIN | | 3 | 39 | | 5 | VIEW | VW_NSO_1 | 3 | 39 | | 6 | INTERSECTION | | | | | 7 | SORT UNIQUE | | 3 | 81 | | 8 | TABLE ACCESS BY INDEX ROWID BATCHED| INVERTED | 3 | 81 | |* 9 | INDEX RANGE SCAN | INVERTED_I | 3 | | | 10 | SORT UNIQUE | | 3 | 81 | | 11 | TABLE ACCESS BY INDEX ROWID BATCHED| INVERTED | 3 | 81 | |* 12 | INDEX RANGE SCAN | INVERTED_I | 3 | | --------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - access("ID"="ID") filter("ID"="ID") 9 - access("COLNAME"='capacity' AND "COLVALUE"='large') 12 - access("COLNAME"='container' AND "COLVALUE"='box') Note ----- - dynamic statistics used: dynamic sampling (level=2) orclz> Or all the potatoes: orclz> select * from food where id in 2 (select id from inverted where colname='item' and colvalue='potatoes'); ID CAPACITY CONTAINER ITEM ---------- ---------- ---------- ---------- 1 large bag potatoes 4 large box potatoes 7 large tin potatoes Execution Plan ---------------------------------------------------------- Plan hash value: 762525239 --------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cos --------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 3 | 183 | | 1 | NESTED LOOPS | | | | | 2 | NESTED LOOPS | | 3 | 183 | | 3 | SORT UNIQUE | | 3 | 81 | | 4 | TABLE ACCESS BY INDEX ROWID BATCHED| INVERTED | 3 | 81 | |* 5 | INDEX RANGE SCAN | INVERTED_I | 3 | | |* 6 | INDEX RANGE SCAN | FOOD_I | 1 | | | 7 | TABLE ACCESS BY INDEX ROWID | FOOD | 1 | 34 | --------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 5 - access("COLNAME"='item' AND "COLVALUE"='potatoes') 6 - access("ID"="ID") Note ----- - dynamic statistics used: dynamic sampling (level=2) - this is an adaptive plan orclz> Of course, consideration needs to be given to handling more complex boolean expressions; maintaining the inversion is going to take resources; and a query generator has to construct the inversion code and re-write the queries. But In principle, this structure can deliver indexed access for unpredictable predicates of any number of any columns, with no separate filtering operation. Can you do that with a normalized star schema? I don't think so. I hope this little thought experiment has stimulated the little grey cells, and made the point that relational structures are not always optimal for all problems. -- John Watson Oracle Certified Master DBA http://skillbuilders.com Full Article
rt Recursive WITH, part II: Hierarchical queries By www.orafaq.com Published On :: Fri, 03 Jun 2016 09:38:25 +0000 articles: SQL & PL/SQLIn 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 Full Article
rt Recursive WITH, part III: IS_LEAF By www.orafaq.com Published On :: Mon, 13 Jun 2016 19:25:35 +0000 articles: SQL & PL/SQLThe 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 Full Article
rt Happy Fucking Birthday Time ... By titsntoast.blogspot.com Published On :: Tue, 07 Oct 2008 14:25:00 +0000 There was a time that I really looked forward to my birthday. When I turned 16, I was ecstatic because I was able to get my drivers license. When I became 18, I was finally considered an adult... for the most part. And on my 21st birthday, I was able to " legally " get into clubs and bars. Alas, those glorious days of positive milestones are gone... long gone!Now birthdays bring with them more negative than positive connotation's.This years birthday is a good example. I'm about to become a member of the "Forty Something Crowd"... You know, that group of people who aren't really that old but their not really that young either.Last year I turned forty. It really wasn't that big of deal. After all, just a year before I had been in my thirties. Forty Something, on the other hand, has a totally different feel. I'm entering into that obscure age zone where the really crazy shit starts to happen. MILFs start transforming into GILFs. The word cougar takes on a whole new meaning. Hair color goes from fashion choice to necessity. Visions of boob jobs dance in your head. And the term " Her Age" starts being inserted into the most positive statements about you, i.e. "She's fucking hot... for her age". No, I'm not overly thrilled about my 41st birthday, but I suppose that I'll get used to it. ARGGGGGGGGG ..... ............. Full Article Rant
rt Svartzonker Signature series 8´6" 40-140g - Spin By www.hengelspullen.nl Published On :: zat, 04 okt 2014 07:01:31 GMT 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. Full Article
rt Ancora su bozzetti di carta e prototipi By fucinaweb.com Published On :: Thu, 15 Dec 2011 08:18:59 +0000 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. Full Article Strumenti User Experience bozzetto documentazione prototipo sketch
rt Gli articoli più letti nel 2011 By fucinaweb.com Published On :: Thu, 29 Dec 2011 08:24:47 +0000 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. Full Article User Experience Web Project Management bbc checklist feed guerrilla web project management ia nomenclatura presentazione progettazione project manager web project management web project manager
rt Golf Rankings for Puerto Rico Open By fftoolbox.fulltimefantasy.com Published On :: Wed, 23 Mar 2016 09:01:45 EST Our expert picks the top 30 PGA tour golfers for this week's tournament: 1. Scott Brown, 2. Jerry Kelly, 3. Jonathan Byrd, 4. Patrick Rodgers, 5. William McGirt, 6. Freddie Jacobson, 7. Graham Delaet, ... Full Article Golf
rt PGA DFS: Puerto Rico Open (Premium) By fftoolbox.fulltimefantasy.com Published On :: Wed, 23 Mar 2016 09:37:28 EST Daily Fantasy Golf Expert Chris Garosi breaks down the top players to target in the Puerto Rico Open on DraftKings this week!: Full Article Golf
rt PGA DFS: Puerto Rico Open (Free Preview) By fftoolbox.fulltimefantasy.com Published On :: Wed, 23 Mar 2016 09:38:26 EST Fantasy Golf Expert Chris Garosi will help you cash in on DraftKings. This is a free preview of his PREMIUM PGA DFS Rundown!: Full Article Golf
rt Fantasy Football NFL Depth Charts By fftoolbox.fulltimefantasy.com Published On :: Fri, 25 Mar 2016 21:09:03 EST These are fantasy specific depth charts and may not always match the "official" NFL team depth charts. Full Article Fantasy Football
rt Fantasy Impact: Cleveland Browns sign Robert Griffin III By www.fulltimefantasy.com Published On :: Fri, 25 Mar 2016 21:40:10 EST Mark Morales-Smith discusses the Fantasy Football impact of the Cleveland Browns' most recent signing of QB Robert Griffin III. Full Article Fantasy Football
rt Week 1: AL East Closer Report (Premium) By www.fulltimefantasy.com Published On :: Wed, 30 Mar 2016 16:38:28 EST Senior Fantasy Baseball Expert Shawn Childs examines the backend of each team in the American League East. Full Article Fantasy Baseball
rt Week 1: AL Central Closer Report (Premium) By www.fulltimefantasy.com Published On :: Wed, 30 Mar 2016 16:39:35 EST Senior Fantasy Baseball Expert Shawn Childs examines the backend of each team in the American League Central. Full Article Fantasy Baseball
rt Week 1: AL West Closer Report (Premium) By www.fulltimefantasy.com Published On :: Thu, 31 Mar 2016 16:45:38 EST Senior Fantasy Baseball Expert Shawn Childs examines the backend of each team in the American League West's bullpen as we get ready for opening day! Full Article Fantasy Baseball
rt Guy Kawasaki: 120 day Blogging 'Expert' By dailyfisk.blogspot.com Published On :: Fri, 28 Apr 2006 13:50:00 -0700 I'm beginning to think that I should change the name of this blog to the daily FISKing of Guy Kawasaki. So-called expert Guy Kawasaki (blogging 120 days and counting... and no, I'm not giving him a link unless he returns the favour) throws us more pearls about how to evangelize huckster our blogs.It seems that one of his favorite pastimes is to email everyone that has the misfortune to come across his computer. Then again, Guy has his own unique definition of what constitutes spam: "When I started this blog, I sent out 10,000 email announcements... for example, when a bozo includes you on a large carbon-copy email, mine the addresses." I rather liked Dave Winer's response the best:"Disclaim: Scripting News does not meet the high standards of 120-day blogger Guy Kawasaki."Guy calls it "evangelizing". I call it a pain in the ass.UPDATE: Better Bad News picks up the ball with "Who Gives a Shiitake". And the blogfather himself Dave Winer liked the post so much that he even linked to it. I'm honoured folks.Related links: business, marketing, daily fisk, guy kawasaki, humor, dave winer Full Article
rt Colbert Fisks Bush... is removed from A-List By dailyfisk.blogspot.com Published On :: Wed, 3 May 2006 00:19:00 -0700 Me thinks he won't be invited to the White House anytime soon: Was it just me or did Colbert sound more mean spirited than funny? I know what you're thinking. Look who's talking, but still... check out the video for yourself.You can view parts 11 and 111 here.UPDATE: The Colbert video was pulled but you can still find it here.Related links: media, in the news, news headlines, headline news, news and politics, politics, political, fun, funny humor, humour, daily fisk, bush, youtube Full Article
rt Colbert Video Pulled from YouTube By dailyfisk.blogspot.com Published On :: Thu, 4 May 2006 21:33:00 -0700 But you can still find it here: The videos of Stephen Colbert's speech at the White House Correspondents Dinner have been pulled from YouTube. C-SPAN which owns the copyright to the videos asked YouTube to remove them. BUT you can still view the videos on iFilm and AOL's The Daily Pulse. And here's another one I found @ PeekVid.Related links: daily fisk, news, fun, funny humor, humour, colbert Full Article
rt Lil' Kim Comes up Short By dailyfisk.blogspot.com Published On :: Tue, 4 Jul 2006 14:15:00 -0700 And the rocket's red glare, the bombs bursting in air... I've heard of a war of rhetoric, but this is ridiculous. It seems that Lil' Kim's talk is bigger than his appendage. Apparently he misfired his rocket, (the Taepo long-dong-2 series) and spit blanks, er came up short... I mean, it wasn't the long-range missile that was expected. Brings a whole new meaning to the term pencil dick don't you think.Coincidentally, the good ole US of A fired off it's national phallic symbol just in time for the fireworks and singing of the national anthem.You just gotta love the irony. Happy 4th of July everyone! Related links: news, world news, us-news, in the news, news headlines, headline news, news and politics, north korea, humor, satire Full Article
rt Kudos to Bush (sort of) By political-football.blogspot.com Published On :: Wed, 14 Sep 2005 11:39:00 -0700 Damage Control, Dubya Style: But will it be enough to restore his credibility? President Bush accepted full responsibility for the federal government's (mis)handling of the Katrina disaster. (It's called 'damage control'). On the other hand he only acknowledged the obvious and his confession could have gone further had he volunteered it sooner."Katrina exposed serious problems in our response capability at all levels of government and to the extent the federal government didn't fully do its job right, I take responsibility," Bush said during a joint news conference with Iraqi President Jalal Talabani. (Watch Bush's comments).He repeated his desire to find out exactly what went wrong on every level of government."It's in our national interest that we find out exactly what went on ... so we can better respond," Bush said."A bipartisan joint congressional committee is to review the response at all levels of government to the hurricane and report its findings to Congress no later than February 15.ROVE TO THE RESCUE:"Bush already has dispatched his top strategist, Deputy Chief of Staff Karl Rove, and other aides to assemble ideas from agencies, conservative think tanks, GOP lawmakers and state officials to guide the rebuilding of New Orleans and relocation of flood victims. The idea, aides said, is twofold: provide a quick federal response that comports with Bush's governing philosophy, and prevent Katrina from swamping his second-term ambitions on Social Security, taxes and Middle East democracy-building."TOMORROW, the president is to outline his vision more comprehensively than he has to date. A top aide said he will stress that New Orleans officials will dictate how the city will be rebuilt, but will also make plain the reconstruction should reflect his vision of government -- including reducing regulatory obstacles and emphasizing entrepreneurship over big government. He will also discuss plans to provide health care, education, jobs and housing assistance to flood victims.ANOTHER CASE OF TOO LITTLE TOO LATE?Categories: blog bloke, daily fisk, political football, news, in the news, current affairs, current+events, opinion, rant, ramblings, random thoughts, news and politics, politics, political, media, katrina, hurricane katrina, new orleans, bush Full Article
rt North Korea abandons Nukes, plays Chess By political-football.blogspot.com Published On :: Mon, 19 Sep 2005 10:13:00 -0700 Good News or just an Elaborate Ruse? This was an impressive photo-op but there is no reason to celebrate (yet). What this really demonstrates is how important it is for the U.S. to settle this region of the globe, even if it is only just a stop-gap measure. The U.S. has more than enough on its plate with Iraq and Katrina to contend with.Apparently North Korea has agreed to give up nuclear weapons activities and rejoin the nuclear non-proliferation treaty. Of course, that comes with a proviso that the US promises it will not attack and will provide aid and electricity.Interestingly, it was China that brokered the compromise:"The agreement was reached on the basis of a compromise proposal put forward by China in an effort to bridge differences between the United States and Pyongyang over a North Korean demand for a light-water nuclear reactor to produce electricity. The compromise suggested that North Korea be accorded the right in principle to peaceful nuclear energy, but only after dismantling its nuclear weapons program and rejoining the U.N. nuclear inspection regime and the nuclear Non-Proliferation Treaty."GIVEN THAT knowledge gained from the "peaceful" use of nuclear technology can easily be transferred to building bombs, it will be incumbent on the U.S. to keep a close eye on Kim whose instability is world renowned. Sure, U.N. inspectors will eventually be allowed in, but let's hope they will have more success than they did in Iraq. Which demonstrates to this writer how important it is for the U.S. to settle (at least temporarily) this region of the globe. The U.S. has more than enough on its plate with Iraq and Katrina to contend with.It was a veritable PR coup de gras for the Chinese. So does this imply that China is not really the monstrous behemoth that we have all been told? Is it an evil regime that is finally beginning to come to its senses? Perhaps it is neither and Political FootBall remains suspicious that China was even involved in the deal.Could it really be part of an elaborate ruse by communist Asia to buy time for N. Korea to get the aid it desperately needs, and while China seeks to become the next economic superpower? All the while lulling the west into a false sense of security in the deadly game of nuclear checkmate. And what about their military alliance? In the grand scheme of things doesn't that make this 'historical' photo-op moot? Many questions that only time will answer.IT SEEMS likely that economic pressure, $$$ capitalism and carrying the big stick (moving stealth bombers to South Korea) have all contributed to bringing another regime to its knees. That would also be in keeping with the Pentagon's announcement of a new strategy that includes a preemptive strike using nuclear weapons.No matter, so long as an unstable pompass like Kim remains in control the future of the world will continue to hang in the balance. BUT THE QUESTION BEGS to be asked if the same tactics would also work for its ally China. Probably not, for unlike it's Soviet counterpart China seems to have found a working formula that successfully blends capitalism and communism, making it an emerging super power. So long as we continue to demand cheap shirts from Walmart that appears to be an almost certainty.AND WHAT ABOUT Iran and other muslim nations where religious fanaticism is the rule? So long as there remains opposing idealogues and economic disparity in this world the prospect for peace in the long term remains unlikely.The bottom line is Political FootBall is of the opinion that this latest news does little in the long term for world stability. It only buys time for both sides before making their next power-play.So we won't be breaking out the champagne, at least for the near future anyhow.Categories: daily fisk political football news in the news current affairs current events opinion rant ramblings random thoughts news and politics politics political china russia soviet union nuclear korea Full Article
rt Happy Birthday Video Cards With Music For PCs & Mobiles By riversongs.com Published On :: Happy birthday song cards for computers, free musical happy birthday video greeting cards for mobile smartphones, iPhone, Android, & Windows smartphones. Romantic love birthday cards for lovers. Full Article
rt Full Custom T-Shirt Drop Shipping By advertising-blog.com Published On :: Sat, 27 Apr 2024 18:18:53 +0000 Would you like to Dropship custom t-shirts? Click Here Now, it's easy! Full Article Apparel dropship custom t-shirts starting a tshirt business with no money tshirt business from home tshirt business online
rt Start Your Own Blank T-Shirts Drop shipping Business By advertising-blog.com Published On :: Sun, 28 Apr 2024 01:18:45 +0000 Buy Blank T-Shirts, start your own dropshipping t-shirt business. shipping to United States and Canada, fixed pricing for shipping. Full Article 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
rt Monthly Blank T-Shirt Delivery By advertising-blog.com Published On :: Sun, 05 May 2024 13:18:47 +0000 Monthly Blank T-Shirt Delivery to you or your family/customers home. This is a monthly delivery service; you can cancel at any time. You can use the Contact Us form to make cancellation requests. Full Article Apparel Monthly Blank T-Shirt Delivery
rt Artisan cheeses Tasmania By thenews.com.au Published On :: Thu, 01 Aug 2024 11:51:25 +0000 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...READ MORE Full Article Australia Food Tasmania
rt Living Vehicle CyberTrailer By thenews.com.au Published On :: Mon, 12 Aug 2024 23:17:02 +0000 CyberTrailer for Tesla’s Cybertruck Tesla’s Cybertruck can’t tow just any camper. Living Camper is bringing its expertise in high-end campers to the CyberTrailer, a dual-axle camper with angular styling that fits the Cybertruck theme perfectly. The CyberTrailer draws power from a rooftop solar array and can act as a charging station and can even recharge...READ MORE Full Article Auto Design Style
rt Entscheidung über Schweigegeld-Urteil gegen Trump vertagt By www.tagesschau.de Published On :: 2024-11-12T17:48:03Z Im New Yorker Schweigegeld-Prozess wurde Ex-Präsident Trump im Mai in allen Punkten schuldig gesprochen. Doch das Strafmaß steht noch aus. Nun wurde der Prozess vertagt - es geht um eine Entscheidung über Trumps Immunität. Full Article
rt Liveblog zu Neuwahlen: ++ Kukies erwartet keine Haushaltssperre ++ By www.tagesschau.de Published On :: 2024-11-12T21:09:10Z 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. Full Article
rt Vater durfte in Belarus inhaftierte Maria Kolesnikowa besuchen By www.tagesschau.de Published On :: 2024-11-12T21:46:32Z Nach fast zwei Jahren gibt es wieder ein Lebenszeichen der in Belarus inhaftierten Oppositionspolitikerin Maria Kolesnikowa. Ihr Vater durfte die Gefangene besuchen. Ihre Familie war zuletzt in großer Sorge um Kolesnikowa. Full Article
rt Panne an Flugzeug verzögert Rückkehr von Habeck aus Lissabon By www.tagesschau.de Published On :: 2024-11-13T10:51:22Z Bislang ist Wirtschaftsminister Habeck von Pannen in Regierungsflugzeugen verschont geblieben. Doch bei der Rückreise von einer Tech-Konferenz hat es den Vizekanzler nun erwischt. Dabei hätte er Termine im Bundestag gehabt. Full Article
rt Pentagon-Leaks: US-Nationalgardist zu 15 Jahren Haft verurteilt By www.tagesschau.de Published On :: 2024-11-12T23:56:41Z Ein junger IT-Spezialist des US-Militärs hatte wiederholt geheime Dokumente im Internet veröffentlicht. Unter anderem ging es um Erkenntnisse zum Ukraine-Krieg. 2023 wurde er festgenommen. Jetzt ist er zu 15 Jahren Haft verurteilt worden. Full Article
rt TV-Moderator Hegseth soll Trumps Verteidigungsminister werden By www.tagesschau.de Published On :: 2024-11-13T06:56:13Z Tag für Tag werden neue Namen der künftigen Trump-Regierung bekannt: Für Aufsehen sorgt jetzt, dass der rechte TV-Moderator Pete Hegseth das Verteidigungsministerium übernehmen soll. Auch Tech-Milliardär Musk bekommt einen Posten. Full Article
rt Wirtschaftsweisen legen ihr Jahresgutachten vor By www.tagesschau.de Published On :: 2024-11-13T08:13:00Z Kurz nach dem Scheitern der Ampel und mitten in der Konjunkturflaute stellen die Wirtschaftsweisen ihr Jahresgutachten vor. Was hilft der Wirtschaft in der aktuellen Situation? Von Hans-Joachim Vieweger. Full Article
rt Porto für Briefe und Postkarten steigt auf 95 Cent By www.tagesschau.de Published On :: 2024-11-13T10:14:06Z 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. Full Article