<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>eof &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/eof/</link>
	<description>Feed of posts on WordPress.com tagged "eof"</description>
	<pubDate>Tue, 01 Dec 2009 13:51:42 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[It's Getting Cold In Here]]></title>
<link>http://moonglade.wordpress.com/2009/12/01/its-getting-cold-in-here/</link>
<pubDate>Tue, 01 Dec 2009 08:16:20 +0000</pubDate>
<dc:creator>Boize</dc:creator>
<guid>http://moonglade.wordpress.com/2009/12/01/its-getting-cold-in-here/</guid>
<description><![CDATA[When Patch 3.3 goes live, Emblems of Conquest will no longer be the base level of emblems. Instead, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:left;"><img class="aligncenter size-full wp-image-1001" style="border:0 none;" title="Icecrown2" src="http://moonglade.wordpress.com/files/2009/12/icecrown2.png" alt="" width="500" height="193" />When Patch 3.3 goes live, Emblems of Conquest will no longer be the base level of emblems. Instead, Emblems of Triumph, which are currently only obtainable from Trial of the Crusader/Grand Crusader, Koralon the Flame Keeper and Onyxia, or the daily heroic dungeon will be the new base emblems. This means that regular level 80 heroic dungeons and all raids other than Icecrown Citadel will drop these.<em> </em>For a list of Moonkin gear purchasable with Emblems of Triumph, check out <a href="http://moonglade.wordpress.com/2009/09/01/moonkin-of-triumph-gear/" target="_blank">this post</a>.</p>
<p>In addition, a new Icecrown level of badge will be introduced. These are <strong>Emblems of Frost</strong>, and will be obtainable in 4 ways:</p>
<ul>
<li>Dropped from raid bosses in Icecrown Citadel</li>
<li>Dropped from the new VoA boss, <a href="http://www.wowwiki.com/Toravon_the_Ice_Watcher" target="_blank">Toravon the Ice Watcher</a></li>
<li>Reward for completing the weekly raid quest</li>
<li>Reward for completing your first random dungeon each day via the LFG tool</li>
</ul>
<p><strong>Icecrown Citadel Bosses:</strong></p>
<p>All in all, there will be 12 bosses in Icecrown Citadel. In terms of emblems, so far it&#8217;s unknown how many they will drop each. My guess would be 1 each, with additional badges for hard modes, because of the large amount of bosses (as opposed to the 3 EoTs dropped by each ToC boss, since there were only 5). If this assumption proves to be true, you&#8217;ll be able to earn 24 EoFs a week if you do both 10- and 25-man ICC raids.</p>
<p><strong>Toravon the Ice Watcher:</strong></p>
<p>A new boss coming to the Vault of Archavon. I assume that, similar to Koralon, he&#8217;ll only be out at the start of the new Arena season (season 8), rather than right at the start of 3.3. Like the other VoA bosses, he will drop 2 emblems, giving you 4 EoFs a week if you do both 10- and 25-man VoA raids.</p>
<p><a href="http://img692.imageshack.us/img692/4629/screenshot110209190234.jpg"><img class="alignright" style="border:0 none;" title="Weekly Raid" src="http://img228.imageshack.us/img228/9875/screenshot110209190234s.jpg" alt="" width="166" height="217" /></a></p>
<p><strong>Weekly Raid Quest:</strong></p>
<p>Come 3.3, there will no longer be any daily (Heroic or normal) dungeon quests. Instead, a weekly raid quest will be introduced, asking you to defeat a raid boss in order to receive your emblems. The bosses required to be killed are all near the start of a raid, so if it&#8217;s one that&#8217;s well below your gear level you don&#8217;t have to trudge through the whole raid to get your 5 EoFs (along with 5 EoTs). This quest can be done on any difficulty level, but only once.</p>
<p><strong>Random Dungeons:</strong></p>
<p><a href="http://img23.imageshack.us/img23/5564/screenshot110209190147.jpg"><img class="alignleft" style="border:0 none;" title="Random Dungeon" src="http://img221.imageshack.us/img221/6926/screenshot110209190147s.jpg" alt="" width="169" height="210" /></a>Through the new LFG system in patch 3.3, you&#8217;ll be able to queue for dungeons with ease. If you&#8217;ve been living under a pixellated WoW rock for the past few months, you can read all about it on the WoWWiki page <a href="http://www.wowwiki.com/Dungeon_Finder" target="_blank">here</a>.</p>
<p>If you select the option to enter a random dungeon, the first one you enter will reward you much like the daily Heroic quests do now, only much more efficiently.</p>
<p>And the best part? You don&#8217;t even have to hand in the quest at the end. As soon as you kill the final boss you will <a href="http://img686.imageshack.us/img686/9773/screenshot110209192047.jpg" target="_blank">instantly be rewarded with the emblems and cash</a>.</p>
<p>In total, you can earn up to:</p>
<ul>
<li>14 Emblems of Frost a week without raiding.</li>
<li>23 Emblems of Frost a week without raiding Icecrown Citadel</li>
<li>47 Emblems of Frost a week (predicted) raiding ICC/VoA and doing the weekly raid and daily random dungeon</li>
</ul>
<p style="text-align:center;">
<p>Tomorrow I&#8217;ll be discussing what items will be available for you Moonkin with these EoFs, so keep an eye out for that post filled with ilevel 264 goodness.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[กล้อง กับเลนซ์]]></title>
<link>http://hellobangkok.wordpress.com/2009/11/22/%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%ad%e0%b8%87-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b9%80%e0%b8%a5%e0%b8%99%e0%b8%8b%e0%b9%8c/</link>
<pubDate>Sun, 22 Nov 2009 01:01:24 +0000</pubDate>
<dc:creator>TEE</dc:creator>
<guid>http://hellobangkok.wordpress.com/2009/11/22/%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%ad%e0%b8%87-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b9%80%e0%b8%a5%e0%b8%99%e0%b8%8b%e0%b9%8c/</guid>
<description><![CDATA[&nbsp; ผมพึ่งซื้อกล้อง D-SLR เป็นตัวแรกเมื่อปลายปี 2008 เหมือนเป็นของขวัญวันเกิดให้กับตัวเอง ก็ซื้อจ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://aoxv.files.wordpress.com/2009/11/photo191.jpg"><img class="alignnone size-medium wp-image-73" title="Photo191" src="http://aoxv.files.wordpress.com/2009/11/photo191.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a></p>
<p>&#160;</p>
<p>ผมพึ่งซื้อกล้อง D-SLR เป็นตัวแรกเมื่อปลายปี 2008 เหมือนเป็นของขวัญวันเกิดให้กับตัวเอง ก็ซื้อจากเงินที่ได้จากเงินคืนประกันชีวิตครับ ความจริงผมมองกล้องแบบนี้ไว้นานแล้ว ดู Olympus E-510 ราคาต่าจะเป็น 29,900 บาท พอรุ่นใหม่มีแนวโน้มว่าจะออกมาราคาลงเหลือ 26,900 บาท ตอนนั้นผมก็เกีอบซื้อแล้วแหละครับ ไปดูหลายรอบมากๆ แต่นึกไปอีกทีตัวที่เค้านิยมกันมีแต่ Nikon กับ Canon ครับ ผมก็เลยตัดใจ แล้วยกระดับมาดูเป็น Canon รุ่นที่เป์นระดับ semi-pro เสียเลยจะได้เสียด้วยเงินไม่ซื้อง่ายๆ</p>
<p>ช่วงปลายเดือนตุลาคม ผมกับเพื่อนร่วมงานได้มีโอกาสไปดูงานที่อเมริกา รัฐนิวยอร์ค เจ้าเพื่อนร่วมงานรุ่นน้องดันวางแผนไปซื้อกล้องซะนี่ กรรมของผมจริงๆเลย เค้าไปดูที่ร้าน B&#38;H อะไรนี่แหละได้ Nikon D80 มาเท่าที่ดูผมว่าราคาเท่าเมืองไทยเลย แต่ดันมาสร้างแรกจูงใจให้ผมสะนี่</p>
<p>พอกลับมากรุงเทพฯ อ้าวกล้องที่ผมดูอยู่ลดราคาซะแล้ว อ่อลืมบอกไปว่าผมดู Canon EOS 40D อยู่ ราคาพร้อมเลนซ์ เหลือ 37.900 บาท ผมได้เสียเวลาไปดูอีกจนได้ไปดูหลายรอบด้วยความเสียดายเงิน ในที่สุดก็เสียเงินจริงๆครับ ได้มาไว้ในครอบครอง เสียค่า กระเป๋า เมม และยูวีฟิวเตอร์ไปอีกครับ สบายตัวเพราะกระเป๋าเบาไปเลย</p>
<p>Canon EOF 40D เป็นกล้องแบบ Semi-Pro โดยมีรุ่นที่ต่ำกว่าคือ 1000D, 450D รุ่นที่เหนือกว่า คือ 5D, 1Ds, 1D ปัจจุบันมี 50D มาแทนแล้วครับ ตัวเรื่องรุ่นนี้จะมีขนาดใหญ่กว่ารุ่น 450 ตัวโครงสร้างเป็น Magnesium Alloy จึงมั่นใจได้เรื่องความสมบุกสมบัน ถ่ายภาพได้นาทีละ 6 ภาพ แบตใช้ได้นานมากครับ</p>
<p>สำหรับเลนซ์ EF-s 17-85mm มีทั้งระบบป้องกันการสั่นของภาพ รวมทั้งมีมอเตอร์สำหรับโฟกัสแบบ Ultrasonic จึงทำให้โฟกัสได้ไว้ และเงียบมากครับ หน้าเลนซ์ไม่หมุนขณะโฟกัส ทำให้สามารถใส่ CPL Filter ได้สะดวก หน้าสัมผัสระหว่างเลนซ์ และกล้องเป็นโลหะอย่างดีครับ</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[กล้อง กับเลนซ์]]></title>
<link>http://aoxv.wordpress.com/2009/11/22/%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%ad%e0%b8%87-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b9%80%e0%b8%a5%e0%b8%99%e0%b8%8b%e0%b9%8c/</link>
<pubDate>Sun, 22 Nov 2009 01:01:24 +0000</pubDate>
<dc:creator>TEE</dc:creator>
<guid>http://aoxv.wordpress.com/2009/11/22/%e0%b8%81%e0%b8%a5%e0%b9%89%e0%b8%ad%e0%b8%87-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b9%80%e0%b8%a5%e0%b8%99%e0%b8%8b%e0%b9%8c/</guid>
<description><![CDATA[&nbsp; ผมพึ่งซื้อกล้อง D-SLR เป็นตัวแรกเมื่อปลายปี 2008 เหมือนเป็นของขวัญวันเกิดให้กับตัวเอง ก็ซื้อจ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://aoxv.wordpress.com/files/2009/11/photo191.jpg"><img class="alignnone size-medium wp-image-73" title="Photo191" src="http://aoxv.wordpress.com/files/2009/11/photo191.jpg?w=300" alt="" width="300" height="225" /></a></p>
<p>&#160;</p>
<p>ผมพึ่งซื้อกล้อง D-SLR เป็นตัวแรกเมื่อปลายปี 2008 เหมือนเป็นของขวัญวันเกิดให้กับตัวเอง ก็ซื้อจากเงินที่ได้จากเงินคืนประกันชีวิตครับ ความจริงผมมองกล้องแบบนี้ไว้นานแล้ว ดู Olympus E-510 ราคาต่าจะเป็น 29,900 บาท พอรุ่นใหม่มีแนวโน้มว่าจะออกมาราคาลงเหลือ 26,900 บาท ตอนนั้นผมก็เกีอบซื้อแล้วแหละครับ ไปดูหลายรอบมากๆ แต่นึกไปอีกทีตัวที่เค้านิยมกันมีแต่ Nikon กับ Canon ครับ ผมก็เลยตัดใจ แล้วยกระดับมาดูเป็น Canon รุ่นที่เป์นระดับ semi-pro เสียเลยจะได้เสียด้วยเงินไม่ซื้อง่ายๆ</p>
<p>ช่วงปลายเดือนตุลาคม ผมกับเพื่อนร่วมงานได้มีโอกาสไปดูงานที่อเมริกา รัฐนิวยอร์ค เจ้าเพื่อนร่วมงานรุ่นน้องดันวางแผนไปซื้อกล้องซะนี่ กรรมของผมจริงๆเลย เค้าไปดูที่ร้าน B&#38;H อะไรนี่แหละได้ Nikon D80 มาเท่าที่ดูผมว่าราคาเท่าเมืองไทยเลย แต่ดันมาสร้างแรกจูงใจให้ผมสะนี่</p>
<p>พอกลับมากรุงเทพฯ อ้าวกล้องที่ผมดูอยู่ลดราคาซะแล้ว อ่อลืมบอกไปว่าผมดู Canon EOS 40D อยู่ ราคาพร้อมเลนซ์ เหลือ 37.900 บาท ผมได้เสียเวลาไปดูอีกจนได้ไปดูหลายรอบด้วยความเสียดายเงิน ในที่สุดก็เสียเงินจริงๆครับ ได้มาไว้ในครอบครอง เสียค่า กระเป๋า เมม และยูวีฟิวเตอร์ไปอีกครับ สบายตัวเพราะกระเป๋าเบาไปเลย</p>
<p>Canon EOF 40D เป็นกล้องแบบ Semi-Pro โดยมีรุ่นที่ต่ำกว่าคือ 1000D, 450D รุ่นที่เหนือกว่า คือ 5D, 1Ds, 1D ปัจจุบันมี 50D มาแทนแล้วครับ ตัวเรื่องรุ่นนี้จะมีขนาดใหญ่กว่ารุ่น 450 ตัวโครงสร้างเป็น Magnesium Alloy จึงมั่นใจได้เรื่องความสมบุกสมบัน ถ่ายภาพได้นาทีละ 6 ภาพ แบตใช้ได้นานมากครับ</p>
<p>สำหรับเลนซ์ EF-s 17-85mm มีทั้งระบบป้องกันการสั่นของภาพ รวมทั้งมีมอเตอร์สำหรับโฟกัสแบบ Ultrasonic จึงทำให้โฟกัสได้ไว้ และเงียบมากครับ หน้าเลนซ์ไม่หมุนขณะโฟกัส ทำให้สามารถใส่ CPL Filter ได้สะดวก หน้าสัมผัสระหว่างเลนซ์ และกล้องเป็นโลหะอย่างดีครับ</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Rogue News: Emblems of Frost Rogue Gear]]></title>
<link>http://recked.wordpress.com/2009/11/13/rogue-news-emblems-of-frost-rogue-gear/</link>
<pubDate>Fri, 13 Nov 2009 14:08:05 +0000</pubDate>
<dc:creator>Recked</dc:creator>
<guid>http://recked.wordpress.com/2009/11/13/rogue-news-emblems-of-frost-rogue-gear/</guid>
<description><![CDATA[Just when you thought things couldn&#8217;t get any better after finally getting to see the Rogue T1]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="aligncenter size-full wp-image-481" title="Emblem of Frost" src="http://recked.wordpress.com/files/2009/11/emblem-of-frost1.jpg" alt="Emblem of Frost" width="285" height="113" /></p>
<p>Just when you thought things couldn&#8217;t get any better after finally getting to see the <a href="http://recked.wordpress.com/2009/11/12/rogue-t10-stats-revealed-the-rogue-shadowblade-armor-set/">Rogue T10 armor stats</a> the Emblem of Frost gear is now available for viewing!</p>
<p>All the items are level 264 and available from collecting <a href="http://ptr.wowhead.com/?search=Emblem+of+Frost">Emblems of Frost</a>. How many? No idea.</p>
<p><strong>Emblem of Frost Rogue Gear:</strong></p>
<p><img class="aligncenter size-full wp-image-466" title="Shrapnel Star" src="http://recked.wordpress.com/files/2009/11/eof-shrapnel-star1.jpg" alt="Shrapnel Star" width="392" height="280" /></p>
<p><img class="aligncenter size-full wp-image-467" title="Shadow Seeker's Tunic" src="http://recked.wordpress.com/files/2009/11/eof-shadow-seekers-tunic1.jpg" alt="Shadow Seeker's Tunic" width="392" height="331" /></p>
<p><img class="aligncenter size-full wp-image-468" title="Cat Burglar's Grips" src="http://recked.wordpress.com/files/2009/11/eof-cat-burglars-grips1.jpg" alt="Cat Burglar's Grips" width="389" height="310" /></p>
<p><img class="aligncenter size-full wp-image-469" title="Vengeful Noose" src="http://recked.wordpress.com/files/2009/11/eof-vengeful-noose.jpg" alt="Vengeful Noose" width="390" height="311" /></p>
<p><img class="aligncenter size-full wp-image-470" title="Recovered Scarlet Onslaught Cape" src="http://recked.wordpress.com/files/2009/11/eof-recovered-scarlet-onslaught-cape.jpg" alt="Recovered Scarlet Onslaught Cape" width="392" height="261" /></p>
<p><img class="aligncenter size-full wp-image-471" title="Herkumi War Token" src="http://recked.wordpress.com/files/2009/11/eof-herkumi-war-token.jpg" alt="Herkumi War Token" width="391" height="244" /></p>
<p>Similar to the Rogue T10 armor set; we appear to be getting either red or yellow sockets and no blue ones on any of this gear either.</p>
<p>I hope Blizzard haven&#8217;t forgotten to give us at least one blue socket for our <a href="http://www.wowhead.com/?item=41398">Relentless Earthsiege Diamond</a> meta gem bonus.</p>
<p>Surely they haven&#8217;t overlooked this? Have they&#8230;?</p>
<p>I doubt it&#8230; but it would be funny&#8230; wouldn&#8217;t it? NO!?</p>
<p>Looking at this gear and the T10 set one things for sure&#8230; Rogue stats are going through the roof! If you haven&#8217;t already checked out the <a href="http://recked.wordpress.com/2009/11/12/rogue-t10-stats-revealed-the-rogue-shadowblade-armor-set/">Rogue T10 stats go put a silly hat on, stand in the corner and have a word with yourself!</a></p>
<p>&#8230; And for those of you who are not satisfied with dribbling all over those stats go check out what they look like in-game courtesy of <a href="http://www.mmo-champion.com/">MMO-Champion</a>:</p>
<p><strong>Emblem of Frost Rogue Gear</strong></p>
<ul>
<li><a href="http://db.mmo-champion.com/i/50474/shrapnel-star/" target="_blank">Shrapnel Star</a></li>
<li><a href="http://db.mmo-champion.com/i/50972/shadow-seekers-tunic/" target="_blank">Shadow Seeker&#8217;s Tunic</a></li>
<li><a href="http://db.mmo-champion.com/i/50982/cat-burglars-grips/" target="_blank">Cat Burglar&#8217;s Grips</a></li>
<li><a href="http://db.mmo-champion.com/i/50995/vengeful-noose/" target="_blank">Vengeful Noose</a></li>
<li><a href="http://db.mmo-champion.com/i/50470/recovered-scarlet-onslaught-cape/" target="_blank">Recovered Scarlet Onslaught Cape</a></li>
<li><a href="http://db.mmo-champion.com/i/50355/herkuml-war-token/" target="_blank">Herkuml War Token</a></li>
</ul>
<p>Now if these items don&#8217;t do it for you I don&#8217;t know what will.</p>
<p>GIEF! GIEF! GIEF!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cugetare internautica]]></title>
<link>http://iqnegativ.wordpress.com/2009/04/17/cugetare-internautica/</link>
<pubDate>Fri, 17 Apr 2009 07:40:49 +0000</pubDate>
<dc:creator>EroticaXP</dc:creator>
<guid>http://iqnegativ.wordpress.com/2009/04/17/cugetare-internautica/</guid>
<description><![CDATA[Unii oameni traiesc in lumea lui 0 si 1 pentru ca asta ii face fericiti si uneori le pune mancare pe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Unii oameni traiesc in lumea lui 0 si 1 pentru ca asta ii face fericiti si uneori le pune mancare pe masa. In lumea noastra nu exista decat 0 si 1 care se transcede in adevar sau minciuna, in Alfa sau Omega, in iubire sau ura, in razboi sau pace, in mai bun sau mai rau, in alb sau negru, in da sau nu, in nimic sau absolut.<br />
Noi nu avem ore, zile, saptamani, luni si ani. Da, exista toate astea dar sunt doar niste unelte de masurare a timpului neesentiale pentru perpetuarea noastra. Timpul nostru se masoara in experiente bune sau rele pe care le acumulam si le traim intens pana la ultimul byte. EOF</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[خدایا...]]></title>
<link>http://msdgnk.wordpress.com/2008/11/21/%d8%ae%d8%af%d8%a7%db%8c%d8%a7/</link>
<pubDate>Thu, 20 Nov 2008 20:37:44 +0000</pubDate>
<dc:creator>Felani</dc:creator>
<guid>http://msdgnk.wordpress.com/2008/11/21/%d8%ae%d8%af%d8%a7%db%8c%d8%a7/</guid>
<description><![CDATA[باز فردا جمعـ ــه است&#8230;! \\تا جمعه میشه، ‌انگار پایانِ دنیاسـ ــت. آخ که چقد حالم به‌-هم می‌خور]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>باز فردا جمعـ ــه است&#8230;<span style="color:#ff0000;"><strong>!</strong></span> <span style="color:#008000;">\\</span>تا جمعه میشه، ‌انگار پایانِ دنیاسـ ــت.<br />
آخ که چقد حالم به‌-هم می‌خوره از این پنج‌شنبه‌ها&#8230;</p>
<p><span style="color:#ff0000;">خدا</span>یا شکـ ــرت.</p>
<p><span style="color:#c0c0c0;">.\خروچ</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[My new home]]></title>
<link>http://iverlita.wordpress.com/2008/10/31/my-new-home-2/</link>
<pubDate>Fri, 31 Oct 2008 04:08:58 +0000</pubDate>
<dc:creator>Verlita</dc:creator>
<guid>http://iverlita.wordpress.com/2008/10/31/my-new-home-2/</guid>
<description><![CDATA[Dear Friends Starting today&#8230; All my imagination have a new home. welcome to Verlita.NET thanks]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Dear Friends<br />
Starting today&#8230; All my imagination have a new home. welcome to <a href="http://Verlita.NET">Verlita.NET</a><br />
thanks all..</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C++ Anfängerfehler]]></title>
<link>http://krabbelbabbel.wordpress.com/2008/10/15/c-anfangerfehler/</link>
<pubDate>Wed, 15 Oct 2008 14:57:51 +0000</pubDate>
<dc:creator>Mumpitz!</dc:creator>
<guid>http://krabbelbabbel.wordpress.com/2008/10/15/c-anfangerfehler/</guid>
<description><![CDATA[Ich ordne meinen Code ja sehr gerne in Definition und Implementierung, was die Lesbarkeit etwas erhö]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ich ordne meinen Code ja sehr gerne in Definition und Implementierung, was die Lesbarkeit etwas erhöht und einfach alles ein bisschen verhübscht. Leider führt sowas aber auch leicht zu ziemlich dummem Fehlerverhalten, vergisst man beispielsweise ein Semikolon am Ende einer Klassendefinition, bekommt man kryptische Fehlermeldungen, die auf einen völlig anderen Teil des Codes verweisen.</p>
<p>Etwas ungleich böseres ist mir gestern passiert: Meine Ressourcendatei wollte partout nicht mehr kompilieren, die Fehlermeldung war ein EOF beim Auslesen des dazugehörigen Headers. Seltsamerweise hatte ich diesen aber schon eine längere Zeit nicht mehr verändert o.O<br />
Nach einigem Rätseln gab ich auf und googlelte die Meldung, die Lösung des Problems war recht einfach:</p>
<p>ich hatte wohl aus Versehen ein Leerzeichen am Ende der Headerdatei gelöscht. Also: Leertaste, kompilieren und der Spass tut wieder.</p>
<p>Der Hintergrund: Headerfiles werden im Grunde ja einfach an den Ort der Includeanweisung kopiert. Durch einen unglücklichen Zufall kann es nun passieren dass direkt auf die Include-Anweisung Code folgt, das Ergebnis: Der letzte Codeschnippsel des Headers klatscht sich an den ersten Schnippsel der cpp -.-</p>
<p>In meinem Fall wurde die Kompileranweisung #endif zerschossen und resultierte in einen EOF-Error.</p>
<p>Naja.</p>
<p>Muss man ja nur wissen.</p>
<p>Also in Zukunft: Am Ende des Headers einfach ein Leerzeichen machen, dann kann nichts passieren.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Passer d'un fichier de l'ODS TAGSET.EXCELXP à un data set SAS avec PROC IMPORT]]></title>
<link>http://thesasreference.wordpress.com/2008/08/15/proc_import/</link>
<pubDate>Fri, 15 Aug 2008 06:00:18 +0000</pubDate>
<dc:creator>The SAS Reference</dc:creator>
<guid>http://thesasreference.wordpress.com/2008/08/15/proc_import/</guid>
<description><![CDATA[Le programmeur SAS pourra recueillir des informations d&#8217;un non spécialiste en créer un fichier]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-408" src="http://thesasreference.wordpress.com/files/2008/08/cycliste_fr.jpg" alt="" width="448" height="224" /></p>
<p>Le programmeur SAS pourra recueillir des informations d&#8217;un non spécialiste en créer un fichier Excel. Il importe ensuite les données sous SAS.</p>
<p>Dans un précédent sujet &#8220;<a title="sas ods tagset excelxp" href="http://thesasreference.wordpress.com/2008/05/12/ods_tagsets_excelxp_1/">Mes 1ers pas avec ODS TAGSET.EXCELXP</a>&#8220;, nous avons vu comment créer un fichier Excel, ou plutôt un fichier XML lisible sous Excel, à partir de la syntaxe d&#8217;ODS TAGSET.EXCELXP.</p>
<p>Maintenant, il s&#8217;agit de voir les limites de l&#8217;importation d&#8217;un fichier XML avec la procédure PROC IMPORT.</p>
<p><strong>Exemple</strong> : Nous aurons un fichier LST_STUDY.XLS avec plusieurs feuillets, dont un nommé &#8216;2000&#8242;, comme exemple. Ce feuillet a deux colonnes : le numéro de l&#8217;étude (STUDY) et la variable à compléter manuellement (FLAG_EXTERNAL). La première ligne contient le nom de la colonne. La variable STUDY peut contenir des nombres et du texte.</p>
<p><strong><span style="color:#ff6600;">1. PROC IMPORT a besoin de données Excel</span></strong></p>
<p>Même si le fichier créé par ODS TAGSET.EXCELXP a une extension .xls, ce fichier est en fait un fichier en langage XML. Comment observer cette information ? Voici deux propositions :</p>
<ol>
<li>Ouvrez un fichier de ce type sous Excel et regarder le type lors que la fenêtre OUVRIR apparaît.</li>
<li>Ouvrez le fichier dans un éditeur de texte</li>
</ol>
<p>Afin d&#8217;utiliser la procédure PROC IMPORT, il faudra donc convertir le fichier en &#8220;enregistrant sous&#8221; et là choisir le standard Excel.</p>
<p><strong><span style="color:#ff6600;">2. Les options de l&#8217;instruction PROC IMPORT</span></strong></p>
<p><strong>Préciser le nom du fichier d&#8217;entrée et celui de sortie</strong> : Dans l&#8217;instruction PROC IMPORT, le nom du fichier Excel est donné avec l&#8217;option DATAFILE=; celui du data set SAS est introduit par l&#8217;option OUT=. Pour rendre ce data set permanent, le nom de la bibliothèque précédera le nom du data set comme d&#8217;habitude.</p>
<p><strong>Indiquer à SAS le type de fichier à lire</strong> : Selon l&#8217;environnement et la version Excel utilisée, l&#8217;option DBMS= variera. DBMS=XLS est l&#8217;option que j&#8217;utilise sous Unix et Windows pour Excel2003. Reportez-vous à la documentation en ligne (<a title="sas online doc proc import statement" href="http://support.sas.com/onlinedoc/913/getDoc/de/proc.hlp/a000308090.htm">PROC IMPORT Statement)</a> pour connaître toutes les valeurs possibles de cette option.</p>
<p><strong>Remplacer un fichier SAS existant</strong> : Si le data set SAS existe déjà, il ne sera pas remplacé, à moins d&#8217;ajouter l&#8217;option REPLACE.</p>
<p><span style="font-family:Courier New;"><span style="color:#0000ff;">%let</span> resultats = C:/sasref;</span></p>
<p><span style="font-family:Courier New;"><span style="color:#000080;"><strong>proc import</strong></span> <span style="color:#0000ff;">datafile</span> = <span style="color:#800080;">&#8220;&#38;resultats./lst_study.xls&#8221;</span><br />
<span style="color:#0000ff;">            out</span>      = lst_study<br />
<span style="color:#0000ff;">            dbms</span>     = xls<br />
<span style="color:#0000ff;">            replace</span>;<br />
<strong><span style="color:#000080;">run</span></strong>;</span></p>
<p><strong><span style="color:#ff6600;">3. Les Instructions sur les données sources</span></strong></p>
<p>Après avoir vu les options de l&#8217;instruction PROC IMPORT, je vous propose trois instructions supplémentaires de la procédure (SAS Online Doc. : <a title="SAS Online Doc PROC IMPORT" href="http://support.sas.com/onlinedoc/913/getDoc/de/proc.hlp/a000312413.htm">Data Source Statements</a>)</p>
<p><strong>Des noms de variables personnalisés avec GETNAMES=YES</strong> : SAS se sert de la première ligne du fichier Excel pour définir le nom des variables SAS à moins que l&#8217;instruction GETNAMES=NO soit ajoutée.</p>
<p><strong>SAS considère les premières lignes du fichier pour identifier le type des variables sauf si MIXED=YES</strong> : Si on a une combinaison de caractères et chiffres, on peut se retrouver avec des valeurs manquantes. Par exemple, si vous avez une variable année contenant les valeurs 2008, 2007, &#60;2007, il faudra importer les variables sous forme de caractère. L&#8217;instruction MIXED=YES fera le travail pour vous. </p>
<p><strong>Importer une feuille de calcul en particulier</strong> <strong>grâce à SHEET=:</strong> Par défaut, SAS importera la première feuille de calcul disponible dans le fichier Excel. Pour choisir un autre feuillet, son nom est donné entre guillemets dans l&#8217;instruction  SHEET=.</p>
<p><span style="font-family:Courier New;"><span style="color:#0000ff;">%let </span>resultats = C:/sasref;</span></p>
<p><span style="font-family:Courier New;"><strong><span style="color:#000080;">proc import</span></strong> <span style="color:#0000ff;">datafile</span> = <span style="color:#800080;">&#8220;&#38;resultats./lst_study.xls&#8221;</span><br />
            <span style="color:#0000ff;">out</span>      = lst_study<br />
            <span style="color:#0000ff;">dbms</span>     = xls<br />
            <span style="color:#0000ff;">replace</span>;<br />
   <span style="color:#008000;">*getnames = yes;</span><br />
   mixed    = yes;<br />
   sheet    = <span style="color:#800080;">&#8216;2000&#8242;</span>;<br />
<strong><span style="color:#000080;">run</span></strong>;</span></p>
<p>Vous trouverez plus d&#8217;informations sur la procédure PROC IMPORT dans l&#8217;aide en ligne : SAS Online Doc, <a title="sas online doc proc import" href="http://support.sas.com/onlinedoc/913/getDoc/de/proc.hlp/a000332605.htm">The IMPORT Procedure</a>.</p>
<p><strong><span style="color:#ff6600;">4. Une spécificité de l&#8217;ODS TAGSET.EXCELXP à gérer</span></strong></p>
<p>Lors de la création du fichier avec ODS TAGSET.EXCELXP, une ligne est parfois ajoutée après la dernière ligne de saisie. Cette ligne est incluse dans le data set SAS à l&#8217;importation. La raison pour laquelle cette ligne est saisie m&#8217;est inconnue.</p>
<p>Par contre, je vous propose un data step pour vous en débarrasser une fois le data set SAS créé. </p>
<ul>
<li>L&#8217;option END= de l&#8217;instruction SET sert à repérer la dernière ligne d&#8217;observations.</li>
<li>La fonction MISSING permet de ne supprimer la ligne que si notre variable STUDY est vide.</li>
</ul>
<p><span style="font-family:Courier New;"><strong><span style="color:#000080;">data</span></strong> lst_study;<br />
   <span style="color:#0000ff;">set</span> lst_study end=eof;<br />
   <span style="color:#0000ff;">if</span> eof and missing(study) <span style="color:#0000ff;">then delete</span>;<br />
<strong><span style="color:#000080;">run</span></strong>;</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Neues gemeinsames Virus-Magazin von EOF, DoomRiderz und RRLF erschienen]]></title>
<link>http://rorschachstagebuch.wordpress.com/2008/07/28/neues-gemeinsames-virus-magazin-von-eof-doomriderz-und-rrlf-erschienen/</link>
<pubDate>Mon, 28 Jul 2008 18:46:38 +0000</pubDate>
<dc:creator>Rorschach</dc:creator>
<guid>http://rorschachstagebuch.wordpress.com/2008/07/28/neues-gemeinsames-virus-magazin-von-eof-doomriderz-und-rrlf-erschienen/</guid>
<description><![CDATA[Gestern ist ein neues Virus Ezine von den Gruppen EOF, DoomRiderz und RRLF erschienen. Letztere gabe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Gestern ist ein neues Virus Ezine von den Gruppen <a href="http://www.eof-project.net/">EOF</a>, <a href="http://www.doomriderz.co.nr/">DoomRiderz</a> und <a href="http://rrlf.de.vu/">RRLF</a> erschienen. Letztere gaben damit ihren Abschied aus der Szene bekannt.</p>
<p>Besonders interessant an dem Mag ist, dass es neben den üblichen Windows-Artikeln und Codebeispielen auch einen erheblichen Anteil an Linux und BSD bezogenen Inhalten bietet.</p>
<p>Für gewöhnlich wird behauptet, dass auf Grund der Rechteverteilung mittels <a href="http://de.wikipedia.org/wiki/Discretionary_Access_Control">DAC</a> unixoide Betriebssysteme sicher vor Viren oder Trojanern wären. Jeder der sich länger mit Linux beschäftigt hat weiß jedoch, dass dem nicht so ist. Das Aufsteigen von User- zu Root-Rechten ist dank schlecht konzipierter Programme wie gksudo, seinem KDE-Pendant oder dem in Ubuntu Hardy eingeführten <a href="http://wiki.ubuntuusers.de/PolicyKit">PolicyKit</a> oder dem einfachen Erschleichen mittels aliasen in der bashrc denkbar einfach. </p>
<p>Fakt ist jedoch, dass unixoide Betriebssystem für viele kommerzielle Malware-Coder nicht so interessant sind da sie schlicht nicht so weit verbreitet sind wie Windows und auch die Benutzer an sich etwas weiser sind und nicht auf alles Klicken was ihnen unter die Augen kommt.</p>
<p>Mit der weiteren Verbreitung von Linux und seiner zunehmenderen Einsteigerfreundlichkeit dürfte sich dies in den nächsten Jahren jedoch ändern.</p>
<p>Wer sich für die möglichen Techniken die zukünftige Linux-Viren in der Wildnis benutzen könnten interessiert oder einfach generell Interesse an low-level Programmierung besitzt sollte auf jeden Fall einen Blick in dieses Mag werfen, denn es wartet mit einigen Interessanten Dingen auf, wie zum Beispiel:</p>
<p> * Code integration on Linux: Cooking the PIE &#8211; herm1t<br />
 * INT 0&#215;80? No, thank you! &#8211; herm1t<br />
 * Reverse of a coin: A short note on segment alignment &#8211; herm1t<br />
 * Caveat virus &#8211; herm1t<br />
 * Hashin&#8217; the elves &#8211; herm1t<br />
 * How to have fun with ptrace syscall &#8211; Cyberdude</p>
<p>Ausserdem eine ganze Reihe an Codebeispielen für Linuxviren.</p>
<p>Download: <a href="http://www.eof-project.net/files/magazine/EOF-DR-RRLF.rar">http://www.eof-project.net/files/magazine/EOF-DR-RRLF.rar</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Insérer quelques nouvelles observations]]></title>
<link>http://thesasreference.wordpress.com/2008/06/09/inserer_obs/</link>
<pubDate>Mon, 09 Jun 2008 06:00:05 +0000</pubDate>
<dc:creator>The SAS Reference</dc:creator>
<guid>http://thesasreference.wordpress.com/2008/06/09/inserer_obs/</guid>
<description><![CDATA[Dans l&#8217;article &#8216;Ajouter des lignes en combinant des data sets&#8217;, nous avons vu comm]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Dans l&#8217;article <a href="http://www.sasreference.com/2008/05/22/ajouter_lignes_datasets/">&#8216;Ajouter des lignes en combinant des data sets&#8217;</a>, nous avons vu comment ajouter des observations en joignant plusieurs data sets. Ici, il s&#8217;agit de voir comment ajouter manuellement un nombre limité d&#8217;observations en fin de data set. Deux méthodes sont proposées : un data step avec l&#8217;option END= et l&#8217;instruction OUTPUT d&#8217;une part et l&#8217;instruction INSERT INTO de PROC SQL d&#8217;autre part.</p>
<p><strong><span style="color:#ff6600;">1. Passer par un data step pour ajouter une ou plusieurs observations</span></strong></p>
<p>L&#8217;instruction SET dispose de l&#8217;option END=. Celle-ci permet de définir une nouvelle variable. On peut s&#8217;imaginer cette variable comme une variable binaire prenant une valeur zéro pour toutes les observations sauf la dernière. Il est courant de nommer cette variable EOF, acronyme pour END OF FILE (fin de fichier).</p>
<p>Dans un premier temps, toutes les observations sont lues et envoyées dans le data set de sortie avec OUTPUT.</p>
<p>Dans un second temps, on précise à SAS que si notre variable binaire a une valeur de 1, l&#8217;observation va être de nouveau envoyée dans le data set final après avoir changé les valeurs de son choix.</p>
<p>Lorsque la valeur prise par la variable binaire n&#8217;est pas précisée (if eof then&#8230;), SAS assume &#8216;if eof=1 then&#8230;&#8217; ou en d&#8217;autres termes &#8217;si la condition est vraie alors&#8230;&#8217;. Pour information, l&#8217;inverse est &#8217;if not eof then&#8230;&#8217; ou &#8216;if eof=0 then&#8230;&#8217;.</p>
<p><span style="font-family:Courier New;"><strong><span style="color:#000080;">data</span></strong> class;<br />
   <span style="color:#0000ff;">set</span> sashelp.class end=eof;<br />
   <span style="color:#0000ff;">output</span>;<br />
   <span style="color:#0000ff;">if </span>eof <span style="color:#0000ff;">then</span><br />
      <span style="color:#0000ff;">do</span>;<br />
         name=<span style="color:#800080;">&#8216;SASREF&#8217;</span>;<br />
         sex=<span style="color:#800080;">&#8216;F&#8217;</span>;<br />
         age=<span style="color:#008080;"><strong>18</strong></span>;<br />
         height=<strong><span style="color:#008080;">.</span></strong>;<br />
         weight=<strong><span style="color:#008080;">100</span></strong>;<br />
         <span style="color:#0000ff;">output</span>;<br />
         name=<span style="color:#800080;">&#8216;SASREF&#8217;</span>;<br />
         sex=<span style="color:#800080;">&#8216;M&#8217;</span>;<br />
         age=<span style="color:#008080;"><strong>.</strong></span>;<br />
         height=<strong><span style="color:#008080;">.</span></strong>;<br />
         weight=<strong><span style="color:#008080;">.</span></strong>;<br />
         <span style="color:#0000ff;">output</span>;<br />
<span style="color:#0000ff;">      end</span>;<br />
<strong><span style="color:#000080;">run</span></strong>;</span></p>
<p>Cette méthode reste très contraignante. Car il faut redéfinir tous les champs au risque sinon d&#8217;avoir une valeur de l&#8217;ancienne observation. La procédure SQL est véritablement conçue pour répondre à notre besoin.</p>
<p><span style="color:#ff6600;"><strong>2. L&#8217;instruction INSERT de la procédure PROC SQL</strong></span></p>
<p>Deux syntaxes sont disponibles avec l&#8217;instruction INSERT selon qu&#8217;on liste seulement les valeurs, mais pour toutes les variables ou qu&#8217;on liste à la fois les variables et leur valeurs mais seulement celles qui nous intéresse.</p>
<p>Ma préférence va à la seconde solution, car elle évite des erreurs dans l&#8217;ordre d&#8217;affichage des valeurs. De plus, lorsqu&#8217;on relit un programme, il est facile de faire le lien entre une valeur et la variable à laquelle elle réfère.</p>
<p><strong> 2.1 Lister toutes les valeurs pour une ligne d&#8217;observation sans le nom des variables</strong> : chaque nouvelle ligne d&#8217;observation est introduite par le mot-clé VALUES. Il n&#8217;y a donc pas besoin de délimiteur entre chaque ligne d&#8217;observation. Toutes les valeurs pour une observation donnée sont listées entre parenthèses et séparées par une virgule.</p>
<p><span style="font-family:Courier New;"><strong><span style="color:#000080;">proc sql</span></strong>;<br />
   <span style="color:#0000ff;">insert into</span> class<br />
   <span style="color:#0000ff;">values</span> (<span style="color:#800080;">&#8216;SASREF2&#8242;</span>,<span style="color:#800080;">&#8216;F&#8217;</span>,<span style="color:#008080;"><strong>18</strong></span>,<strong><span style="color:#008080;">.</span></strong>,<span style="color:#008080;"><strong>100</strong></span>)<br />
   <span style="color:#0000ff;">values</span> (<span style="color:#800080;">&#8216;REFSAS2&#8242;</span>,<span style="color:#800080;">&#8216;M&#8217;</span>,<strong><span style="color:#008080;">.</span></strong>,<strong><span style="color:#008080;">.</span></strong>,<span style="color:#008080;"><strong>.</strong></span>);<br />
<strong><span style="color:#000080;">quit</span></strong>;</span></p>
<p><strong> 2.2 Lister les variables qui nous intéressent seulement </strong>: chaque nouvelle ligne d&#8217;observation est introduite par le mot-clé SET. Comme précédemment, il n&#8217;y a pas de délimiteur entre chaque ligne d&#8217;observation nouvellement définie. Les variables sont listées dans un ordre quelconque. Les variables non listées prennent une valeur manquante.</p>
<p><span style="font-family:Courier New;"><strong><span style="color:#000080;">proc sql</span></strong>;<br />
   <span style="color:#0000ff;">insert into</span> class<br />
   <span style="color:#0000ff;">set</span> sex=<span style="color:#800080;">&#8216;F&#8217;</span>, name=<span style="color:#800080;">&#8216;SASREF3&#8242;</span>,age=<span style="color:#008080;"><strong>18</strong></span>,weight=<strong><span style="color:#008080;">100<br />
</span></strong>   <span style="color:#0000ff;">set</span> name=<span style="color:#800080;">&#8216;REFSAS3&#8242;</span>, sex=<span style="color:#800080;">&#8216;M&#8217;</span>;<br />
<strong><span style="color:#000080;">quit</span></strong>;</span></p>
<p>Pour plus de précisions sur l&#8217;instruction INSERT, vous pouvez vous reporter à  la SAS Online Doc. : <a href="http://support.sas.com/onlinedoc/913/getDoc/de/proc.hlp/a002294531.htm">Insert Statement</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Repérer les 1ers/derniers records (FIRST/LAST)]]></title>
<link>http://thesasreference.wordpress.com/2008/05/06/first_last/</link>
<pubDate>Tue, 06 May 2008 20:11:35 +0000</pubDate>
<dc:creator>The SAS Reference</dc:creator>
<guid>http://thesasreference.wordpress.com/2008/05/06/first_last/</guid>
<description><![CDATA[Repérer la première et/ou la dernière observation d&#8217;un jeu de données ou d&#8217;un sous-ensem]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Repérer la première et/ou la dernière observation d&#8217;un jeu de données ou d&#8217;un sous-ensemble de ce jeu, c&#8217;est possible sous SAS avec les mots-clés FIRST et LAST dans un data step. On se sert de cette information sous forme de condition. Si la première observation est rencontrée, on fait ceci, sinon on fait cela. Cela sert pour créer une variable compteur ou pour générer plusieurs programmes via un DATA _NULL_, programmes variant par quelques valeurs listées dans un fichier de référence.</p>
<p><span style="color:#ff6600;"><strong>1. Le raisonnement FIRST/LAST en langage humain</strong></span></p>
<p>Dans l&#8217;exemple ci-dessous, on a tout d&#8217;abord deux variables MEMNAME et NAME qui sont triées. Ensuite sont ajoutées plusieurs variables.</p>
<p>Les variables FRST_DSN/LST_DSN</p>
<ul>
<li>S&#8217;il s&#8217;agit de la première fois que l&#8217;on lit la valeur de la variable MEMNAME, alors on donne une value de 1 à FRST_DSN, sinon on donne une valeur de 0.</li>
<li>Si au contraire, il s&#8217;agit de la dernière valeur avant de changer, LST_DSN prend la valeur 1, sinon il prend la valeur 0.</li>
</ul>
<p>Dans l&#8217;exemple, on remarque que FRST_DSN et LST_DSN sont toutes les deux égale à 1 quand MEMNAME=DSN2, car il n&#8217;y a qu&#8217;une observation pour ce MEMNAME. La première observation est donc également la dernière,</p>
<p><span style="text-decoration:underline;">memname  name  frst_dsn lst_dsn frst_var lst_var</span><br />
    dsn1       var1          1          0           1          0<br />
    dsn1       var1          0          0           0          0<br />
    dsn1       var1          0          0           0          1<br />
    dsn1       var2          0          0           1          1<br />
<span style="text-decoration:underline;">    dsn1       var3          0          1           1          1    <br />
    dsn2       var1          1          1           1          1     </span><br />
    dsn3       var1          1          0           1          1<br />
    dsn3       var2          0          0           1          1<br />
    dsn3       var3          0          0           1          1<br />
<span style="text-decoration:underline;">    dsn3       var4          0          1           1          1    <br />
</span>    dsn4       var1          1          0           1          1<br />
<span style="text-decoration:underline;">    dsn4       var2          0          1           1          1    </span>   </p>
<p>FRST_VAR/LST_VAR : une fois dans un groupe (DSN1, DSN2, DSN3 ou DSN4), on regarde la seconde variable NAME.</p>
<ul>
<li>Si on a la première fois la valeur dans ce groupe, FRST_VAR=1 sinon FRST_VAR=0.</li>
<li>Si au contraire, il s&#8217;agit de la dernière fois qu&#8217;on l&#8217;observe dans ce group, LST_VAR=1, 0 autrement.</li>
</ul>
<p>Dans l&#8217;exemple, seul le DSN1 a plusieurs fois une VAR1 associée. C&#8217;est donc le seul moment où FRST_VAR n&#8217;est pas égal à LST_VAR.</p>
<p><strong>NOTE, choix de l&#8217;auteur</strong> : entendez FRST pour rappeler le mot FIRST (premier), LST le mot LAST (dernier) et DSN le mot DATA SET NAME (nom du jeu de données).</p>
<p><span style="color:#ff6600;"><strong>2. Le raisonnement FIRST/LAST en langage SAS</strong></span></p>
<p>SAS lie les données d&#8217;un jeu de données ligne par ligne. On rassemble les données par groupe en les triant. On rappelle cet ordre avec une instruction BY.</p>
<p>Ici les variables MEMNAME et NAME sont extraites de la bibliothèque SASHELP grâce au dictionnaire COLUMN.</p>
<p>proc sql;<br />
   create table lst_dsn_var as<br />
   select memname, name<br />
   from dictionary.columns<br />
   where upcase(libname)=&#8217;SASHELP&#8217;;<br />
quit;</p>
<p>Puis, chacune des variables FRST_DSN, LST_DSN, FRST_VAR et LST_VAR sont crées. Ces variables prennent une valeur de 1, si la condition est vrai (s&#8217;il s&#8217;agit bien de la première ou de la dernière observation), 0 sinon. Bien sûr, on peut choisir de leur donner la valeur que l&#8217;on veut.</p>
<p>data _null_;<br />
   set lst_dsn_var;<br />
   by memname name;<br />
   if first.memname then frst_dsn=1;<br />
   else frst_dsn=0;<br />
   if last.memname then lst_dsn=1;<br />
   else lst_dsn=0;<br />
   if first.name then frst_var=1;<br />
   else frst_var=0;<br />
   if last.name then lst_var=1;<br />
   else lst_var=0;<br />
run;</p>
<p><strong>NOTE</strong> : SAS se base sur les données d&#8217;origine pour dire si oui ou non, il s&#8217;agit de la première/dernière observation. Dès lors, si le jeu d&#8217;origine est altéré (suppression de lignes), SAS ne redéfinira pas une première/dernière observation parmi celles restantes. On peut donc ne plus avoir l&#8217;observation considérée par SAS comme première/dernière. Il choisira si besoin de faire les deux opérations dans des data steps distincts.</p>
<p><strong><span style="color:#ff6600;">3. La première et la dernière observation d&#8217;un data set</span></strong></p>
<p>Vous n&#8217;aurez pas toujours une variable prenant la même valeur pour toutes les observations et ainsi retrouver la première et la dernière observation. On peut soit en créer une avec un RETAIN par exemple ou plus simplement utiliser</p>
<ul>
<li>la variable automatique _N_ pour la première observation et</li>
<li>la variable assignée avec l&#8217;option END= dans l&#8217;instruction SET pour la dernière observation.</li>
</ul>
<p>data _null_;<br />
   set lst_dsn_var end=eof;<br />
   if _N_=1 then &#8230;;<br />
   if eof then&#8230;;<br />
run;</p>
<p><strong>NOTE</strong> : Par habitude, on donne ici le nom EOF (End Of File) comme nom à la variable qui prend une valeur 1 s&#8217;il s&#8217;agit de la dernière observation, 0 autrement. Comme la variable automatique _N_, EOF n&#8217;apparaît pas dans le data set final, s&#8217;il est créé.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pub Crypter Nedir? Ne Yer Ne İçer?]]></title>
<link>http://programlama2000.wordpress.com/2008/05/05/pub-crypter-nedir-ne-yer-ne-icer/</link>
<pubDate>Mon, 05 May 2008 21:18:48 +0000</pubDate>
<dc:creator>programlama2000</dc:creator>
<guid>http://programlama2000.wordpress.com/2008/05/05/pub-crypter-nedir-ne-yer-ne-icer/</guid>
<description><![CDATA[Pub Crypter ile istediğiniz bir exe dosyasına ister crack koruması koyabilir weya trojan serverinizi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong><strong>Pub Crypter ile istediğiniz bir exe dosyasına ister crack koruması koyabilir weya trojan serverinizi antivirüs yazılımlarına karşı tanınmaz yapabilirsiniz.</strong></p>
<p><strong>DOWNLOAD LINKI : </strong> <a href="http://s3.dosya.cc/pub_crypter.rar.html">http://s3.dosya.cc/pub_crypter.rar.html</a></p>
<p><img src="http://img374.imageshack.us/img374/3722/birpw4.jpg" alt="http://img374.imageshack.us/img374/3722/birpw4.jpg" /></p>
<p><strong>Nasıl Kullanılır?<br />
Birinci Command Butona Basın ve Tanınmaz Yapacağınız Exe Dosyasını Seçin.<br />
Ardından İkinci Butona Basarak Dosyanızı Şifreleyin. File Crypted Mesajını Aldıktan Sonra<br />
PUB Crypter ile aynı dizinde Crypted.exe Dosyası Yaratılacaktır</strong></p>
<p><img src="http://img501.imageshack.us/img501/7504/ikifc6.jpg" alt="http://img501.imageshack.us/img501/7504/ikifc6.jpg" /></p>
<p><strong>Şimdi Oluşturduğumuz Server&#8217;ı VirusTotal.Com da Analiz Ediyoruz ve Sonuçlar:</strong></p>
<p><a href="http://www.virustotal.com/tr/analisis/2b0b79037cf4c0ffaf625b519e0a783e">Buradan Virus Totala Bağlanıp Görebilirsiniz</a></p>
<p><img src="http://img374.imageshack.us/img374/7083/birph1.jpg" alt="http://img374.imageshack.us/img374/7083/birph1.jpg" /></p>
<p><img src="http://img501.imageshack.us/img501/3042/ikiqj8.jpg" alt="http://img501.imageshack.us/img501/3042/ikiqj8.jpg" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Conectando-se a um banco de dados Access através do ASP - Parte 2]]></title>
<link>http://iranrodrigues.wordpress.com/2008/02/20/conectando-se-a-um-banco-de-dados-access-atraves-do-asp-parte-2/</link>
<pubDate>Wed, 20 Feb 2008 22:28:35 +0000</pubDate>
<dc:creator>Iran Rodrigues</dc:creator>
<guid>http://iranrodrigues.wordpress.com/2008/02/20/conectando-se-a-um-banco-de-dados-access-atraves-do-asp-parte-2/</guid>
<description><![CDATA[Aprenda a realizar operações básicas envolvendo bancos de dados com o ASP. Continuando o post anteri]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3>Aprenda a realizar operações básicas envolvendo bancos de dados com o ASP.</h3>
<p>Continuando o <a href="http://iranrodrigues.wordpress.com/2008/02/18/conectando-se-a-um-banco-de-dados-access-atraves-do-asp-parte-1/" title="Parte 1" target="_blank">post anterior</a>, veremos como listar os registros existentes em uma tabela no banco. Antes de qualquer coisa, verifique se você baixou o <a href="http://arquivos.iranrodrigues.com/arquivos/SA110-06001/banco.mdb" title="Banco de dados de exemplo" target="_blank">banco de dados de exemplo</a> citado no post anterior, pois ele será necessário agora.</p>
<p>A última coisa que fizemos foi a criação de um novo arquivo &#8220;ASP VBScript&#8221; no Dreamweaver, o qual acrescentamos as seguintes linhas no topo (a primeira já existe):</p>
<pre class="brush: vb;">
&lt;%@LANGUAGE=&quot;VBSCRIPT&quot; CODEPAGE=&quot;1252&quot;%&gt;
&lt;%
set conexao = Server.CreateObject(&quot;ADODB.Connection&quot;)
conexao.Open &quot;Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&quot;&amp;Server.MapPath(&quot;banco.mdb&quot;)&amp;&quot;;&quot;
Set registros = Server.CreateObject (&quot;ADODB.Recordset&quot;)
registros.Open &quot;usuarios&quot;,conexao,3,3
%&gt;
</pre>
<p>Com a utilização do método &#8220;Open&#8221; do objeto &#8220;registros&#8221;, este passa a se comportar como um <i>array</i>, ou seja, pode ter seus valores acessados através de índices. Mas que índices são esses? E quais seriam os valores? Resposta: os índices correspondem aos nomes dos campos existentes na tabela de nome &#8220;usuarios&#8221;. E os valores armazenados no <i>array</i> são os valores do registro para cada campo. Veja na prática, acrescentando as seguintes linhas ao <i>body</i> do documento:</p>
<p><!--more-->
<pre class="brush: vb;">
&lt;body&gt;
&lt;%=registros(&quot;codigo&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;nome&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;email&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;datanasc&quot;)%&gt;
&lt;/body&gt;
</pre>
<p>O que fizemos foi escrever o conteúdo de cada um dos campos especificados. Perceba que os valores exibidos correspondem a apenas um registro. Na verdade, o primeiro registro da tabela. Podemos exibir os demais utilizando um método existente para o objeto &#8220;registros&#8221;: o <i>MoveNext</i>. Vejamos seu funcionamento:</p>
<pre class="brush: vb;">
&lt;body&gt;
&lt;%=registros(&quot;codigo&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;nome&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;email&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;datanasc&quot;)%&gt;
&lt;% registros.MoveNext %&gt;
&lt;%=&quot;&lt;br /&gt;&quot;%&gt;
&lt;%=registros(&quot;codigo&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;nome&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;email&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;datanasc&quot;)%&gt;
&lt;% registros.MoveNext %&gt;
&lt;%=&quot;&lt;br /&gt;&quot;%&gt;
&lt;%=registros(&quot;codigo&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;nome&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;email&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;datanasc&quot;)%&gt;
&lt;/body&gt;
</pre>
<p>Perceba que a cada uso do MoveNext, passamos a trabalhar com o próximo registro. Logo, apesar de estarmos apenas repetindo os mesmos comandos, a cada repetição exibimos os valores de um registro diferente.</p>
<p>É claro que nem de longe este código está prático. Da forma como foi criado, seria necessário copiar e colar os blocos de código repetidos tantas vezes quantos fossem os registros &#8211; portanto o código poderia crescer indefinidamente. Bom, é para isso que servem as estruturas de repetição. Podemos repetir os blocos de código até que atinjamos o fim dos registros. Como isso é possível? Através da propriedade EOF, também presente no objeto &#8220;registros&#8221;. Esta é um propriedade booleana: é verdadeira quando se chega ao fim da tabela e falsa em caso contrário. Logo, o código final poderia ficar assim:</p>
<pre class="brush: vb;">
&lt;body&gt;
&lt;%
' Até chegarmos ao fim da tabela...
Do Until registros.EOF
' ...escreveremos os dados do registro atual
%&gt;
&lt;%=registros(&quot;codigo&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;nome&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;email&quot;) &amp; &quot; &quot;%&gt;
&lt;%=registros(&quot;datanasc&quot;)%&gt;
&lt;%=&quot;&lt;br /&gt;&quot;%&gt;
&lt;% registros.MoveNext %&gt;
&lt;% Loop %&gt;
&lt;/body&gt;
</pre>
<p>Exercício: organize os dados dos registros exibindo-os dentro de uma tabela (&#60;table&#62;). Dica: substitua os espaços em branco e a quebra de linha pelas tags <i>&#60;td&#62;</i> e <i>&#60;tr&#62;</i> (abra-as e feche-as corretamente).</p>
<p>Por hoje é só, pessoal. Em breve continuarei este artigo demonstrando como inserir novos registros em uma tabela.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C++ File Operations]]></title>
<link>http://agraja.wordpress.com/2008/02/04/cpp-file-operations/</link>
<pubDate>Mon, 04 Feb 2008 09:50:29 +0000</pubDate>
<dc:creator>AG Raja</dc:creator>
<guid>http://agraja.wordpress.com/2008/02/04/cpp-file-operations/</guid>
<description><![CDATA[// file_write.cpp // Author: A.G.Raja // Website: agraja.wordpress.com #include &lt;iostream&gt; #in]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><address>// file_write.cpp</address>
<address>// Author: A.G.Raja</address>
<address>// Website: agraja.wordpress.com</address>
<address>#include &#60;iostream&#62;</address>
<address>#include &#60;fstream&#62;</address>
<address>using namespace std;</address>
<address> </address>
<address>int main () {</address>
<address><span>  </span>ofstream myfile (&#8220;example.txt&#8221;);</address>
<address><span>  </span>if (myfile.is_open())</address>
<address><span>  </span>{</address>
<address><span>    </span>myfile &#60;&#60; &#8220;This is a line.\n&#8221;;</address>
<address><span>    </span>myfile &#60;&#60; &#8220;This is another line.\n&#8221;;</address>
<address><span>    </span>myfile.close();</address>
<address><span>  </span>}</address>
<address><span>  </span>else cout &#60;&#60; &#8220;Unable to open file&#8221;;</address>
<address><span>  </span>return 0;</address>
<address>}</address>
<address>// g++ file_write.cpp</address>
<address> </address>
<address> </address>
<address>// file_read.cpp</address>
<address>// Author: A.G.Raja</address>
<address>// Website: agraja.wordpress.com</address>
<address>#include &#60;iostream&#62;</address>
<address>#include &#60;fstream&#62;</address>
<address>#include &#60;string&#62;</address>
<address>using namespace std;</address>
<address> </address>
<address>int main () {</address>
<address><span>  </span>string line;</address>
<address><span>  </span>ifstream myfile (&#8220;example.txt&#8221;);</address>
<address><span>  </span>if (myfile.is_open())</address>
<address><span>  </span>{</address>
<address><span>    </span>while (! myfile.eof() )</address>
<address><span>    </span>{</address>
<address><span>      </span>getline (myfile,line);</address>
<address><span>      </span>cout &#60;&#60; line &#60;&#60; endl;</address>
<address><span>    </span>}</address>
<address><span>    </span>myfile.close();</address>
<address><span>  </span>}</address>
<address> </address>
<address><span>  </span>else cout &#60;&#60; &#8220;Unable to open file&#8221;&#60;&#60;endl; </address>
<address> </address>
<address><span>  </span>return 0;</address>
<address>}</address>
<address> </address>
<address>  //g++ file_read.cpp</address>
<address> </address>
<address>Download here.</address>
<address> <a href="http://agraja.wordpress.com/files/2008/02/cpp_file_operations.doc" title="cpp_file_operations.doc">cpp_file_operations.doc</a></address>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[RoK quest fatigue?..expand your horizons..]]></title>
<link>http://revenants.wordpress.com/2007/12/04/rok-quest-fatigueexpand-your-horizons/</link>
<pubDate>Tue, 04 Dec 2007 10:40:32 +0000</pubDate>
<dc:creator>revenants</dc:creator>
<guid>http://revenants.wordpress.com/2007/12/04/rok-quest-fatigueexpand-your-horizons/</guid>
<description><![CDATA[  The Shard of Fear (more screenies in Adventuring Gallery) &nbsp; Fed up of questing yet? Quite a l]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p align="center" style="margin:0;" class="MsoNormal"><font color="#000000"> <img border="4" width="782" src="http://i136.photobucket.com/albums/q163/Shahlai/EQ2/shardoffear.jpg" alt="Shard of Fear" height="475" /></font></p>
<p align="center" style="margin:0;" class="MsoNormal"><font color="#000000"><u><em>The Shard of Fear (more screenies in Adventuring Gallery)</em></u></font></p>
<p style="margin:0;" class="MsoNormal">&#160;</p>
<p style="margin:0;" class="MsoNormal"><font color="#000000">Fed up of questing yet? Quite a lot of people I know do seem to be getting bored with the questing in RoK. Personally I am still loving the feel and lore behind the constant quest lines. For sure, if I had been doing them non stop in a crazy race to get to 80 then, yeah, maybe I would be getting jaded with them, and I think that is what a lot of the complaints about the new expansion revolve round.<span>  </span>There are many who DO just want to power to 80, and of course their game choice is as valid as my own.<span>  </span>It is these people who are finding it a pain I guess.<span>  </span></font></p>
<p><font color="#000000">Now, don’t get me wrong. I seriously think that getting to 80 via only questing in RoK is totally do-able, in fact I am sure they designed it that way. The problem is though that it’s not super quick and if you are doing it to level and do not soak up the stories or quests and just have a clik frenzy, then yeah..it’s gonna get boring and it’s gonna get boring fast.</font></p>
<p><font color="#000000">So what to do? How have I kept my interest in the new expansion? Well, for one I haven’t even scratched the surface of the available content in RoK and am still excited about all I have yet to discover.<span>  </span>Secondly, I haven’t been concentrating on RoK exclusively. Now I am absolutely sure no one needs telling this, but when I have had enough of solo adventuring I have headed back to EoF or KoS for some raiding or group instances, and even tried out Karnor’s Castle in Kylong Plains.<span>  </span>I have found that doing this has kept me hooked. Interspersing grouping and solo questing means I am still getting the best out of the game both on my own and with the usual mad cap group.</font></p>
<p><font color="#000000">Some examples? Along with the usual group of outcasts we headed to The Shard of Fear for the first time this week.<span>  </span>Having never been there it was yet another brand new experience for some of us. So, The Shard of Fear, or SoF.<span>  </span>Even though we didn’t have enough time to complete the zone (even though it is totally do-able..Did you know Emarald, Konador, Daltieri and a group cleared the whole zone including epics just 2 days prior? –Ed) I personally really really had a soft spot for the place and it seems like the rest of the group was the same. I loved the look and the atmosphere SoE have created. The constant red haze and heat waves that envelop the zone certainly give the feel that you are no longer on Norrath but in some God forbidden burning hell.<span>  </span>The quests in there seem to be a lot of fun from what I managed to complete during our time there and the mobs are certainly a challenge.<span>  </span>Overall everyone who is a little bored of RoK questing should give this zone a go, or another go if you have been there before.</font></p>
<p><font color="#000000">We’ve been up to quite a bit actually in the ‘old worlds’… hitting Unrest, OOB, Valdoons, and Mistmoore Castle for the sage (Shadowraethe got her class leggings woohoo!). It’s all been the usual amount of great fun.<span>  </span>That’s the difference you see between soloing and grouping with your usual crew..when soloing you rely on SoE for the fun, content, lore etc. But when grouped with the crew, the content needs to be interesting, but is much more on the sidelines..the group provide the entertainment instead.<span>  </span>Whatever you like doing, as long as you intersperse your experiences in EQ2 you will likely never get bored. I know RoK is there and all enticing, but it’s ok to give it a break every now and again. Don’t forget the huge amount of development that has gone in to the already existing content and head back there. Enjoy some of it again in good company. </font></p>
<p><font color="#000000"> </font><font color="#000000">You’ll have a riot.</font><font color="#000000"> </font></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
