<?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>devlog &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/devlog/</link>
	<description>Feed of posts on WordPress.com tagged "devlog"</description>
	<pubDate>Tue, 01 Dec 2009 22:41:55 +0000</pubDate>

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

<item>
<title><![CDATA[The Anniversary Game - Lessons I will probably never learn vol. 1]]></title>
<link>http://clintmakesagame.wordpress.com/2009/11/05/the-anniversary-game-lessons-i-will-probably-never-learn-vol-1/</link>
<pubDate>Thu, 05 Nov 2009 20:05:37 +0000</pubDate>
<dc:creator>Clint Emsley</dc:creator>
<guid>http://clintmakesagame.wordpress.com/2009/11/05/the-anniversary-game-lessons-i-will-probably-never-learn-vol-1/</guid>
<description><![CDATA[The way I&#8217;ve built my tilesets, I have to make the level, then put down all the outlines on th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The way I&#8217;ve built my tilesets, I have to make the level, then put down all the outlines on the architecture (don&#8217;t ask).  What this means is that a level has to be entirely finished gameplay-wise before I put all the outlines down, since changing anything after that involves two steps, which is kind of a pain in the ass, but oh well.</p>
<p>So I finished a level, and I tested it to make sure I didn&#8217;t screw it up.  After testing it, I realized that it wasn&#8217;t exactly clear what I wanted the players to do, so I added in some spikes to direct them the way I wanted them to go.  (That is called &#8220;The player is always wrong and I am awesome so do it my way,&#8221; and I&#8217;m sure there&#8217;s another lesson in there somewhere too).  Then I added in the outlines.  That was two days ago.</p>
<p>Then I was running through the entire game again today (since apparently I had nothing better to do) and I realized that (a) I&#8217;d made one entire passage pointless with those spikes, and (b) I&#8217;d made the level impossible to complete.  So&#8230;I had to rearrange the architecture significantly, THEN redo the outlines. It probably only took ten minutes, but it was still a face-palm moment.</p>
<p>So, today&#8217;s lesson that I will probably never learn:<b> Don&#8217;t change anything after testing if you don&#8217;t plan on testing it again!  You will inevitably screw up the entire level.  If you&#8217;re me.</b></p>
<p><b>Progress today</b>: Finished another level (up to 9!), researched saving to INIs, ate a sandwich.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Dev log]]></title>
<link>http://zylumdom2d.wordpress.com/2009/09/24/dev-log-2/</link>
<pubDate>Thu, 24 Sep 2009 14:52:08 +0000</pubDate>
<dc:creator>dom2d</dc:creator>
<guid>http://zylumdom2d.wordpress.com/2009/09/24/dev-log-2/</guid>
<description><![CDATA[Done: - Skeleton Presenting loot animation - Finished all Loot Icons - Made the pirate attacking Sku]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Done:</p>
<p>- Skeleton Presenting loot animation<br />
- Finished all Loot Icons<br />
- Made the pirate attacking Skully animation<br />
- Defined the Mana Meter interface and animation<br />
- Created basic Gold Score interface elements<br />
- Created Score added animation (when the player gets treasure)<br />
- Started Title Screen and real Logo design</p>
<p>Up next:<br />
- Polish Lightning, Ship Sinking and Pirates<br />
- Title Screen<br />
- Polish interface<br />
- Test the game when the gameplay is ready!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Dev Log]]></title>
<link>http://zylumdom2d.wordpress.com/2009/09/14/dev-log/</link>
<pubDate>Mon, 14 Sep 2009 22:08:36 +0000</pubDate>
<dc:creator>dom2d</dc:creator>
<guid>http://zylumdom2d.wordpress.com/2009/09/14/dev-log/</guid>
<description><![CDATA[Despite losing the internet for the whole weekend, I was kind of productive: - Created Pirate, 4 dif]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Despite losing the internet for the whole weekend, I was kind of productive:</p>
<p>- Created Pirate, 4 different styles, walking and exploding animations<br />
- Created Skeleton Servant with Ready, Digging and Dragged animations<br />
- Created Shaman with Dragging and Lightning animations<br />
- Animated Pirate Ship exploding<br />
- Created half the Loot Icons</p>
<p>I&#8217;ll commit a whole lot of stuff tonight after a little cleaning up.</p>
<p>Up Next:<br />
- Interface: gold score, mana meter, active items<br />
- Skeleton Servant presenting Loot<br />
- Pirate attacking Skully<br />
- Score Added and Mana Added animations</p>
<p><strong>Anything else needs to be done ASAP for Programming?</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Development Log]]></title>
<link>http://zylumdom2d.wordpress.com/2009/09/09/development-log/</link>
<pubDate>Wed, 09 Sep 2009 14:58:37 +0000</pubDate>
<dc:creator>dom2d</dc:creator>
<guid>http://zylumdom2d.wordpress.com/2009/09/09/development-log/</guid>
<description><![CDATA[Set up SVN Design Document v1.03 Win conditions have been simplified and now make the game infinite ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><ul>
<li>Set up SVN</li>
<li>Design Document v1.03</li>
<li>Win conditions have been simplified and now make the game infinite</li>
<li>Designed a draft of the Loot Distribution System and the Pirate Wave System</li>
<li>2 New Loot categories, one to help the player find treasure and the other to add some more chaos to the fun</li>
<li>Started Devlog post on TIGS ( http://forums.tigsource.com/index.php?topic=8132.0 )</li>
</ul>
<p>Next step:</p>
<ul>
<li>Make assets for the sand tiles (the Background image will be a large png with pre-dug out tiles, covered with sand tile assets)</li>
<li>Write a clear set of rules for the Loot Distribution System</li>
<li>Polish Island</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Devlog]]></title>
<link>http://zylumdom2d.wordpress.com/2009/09/08/devlog/</link>
<pubDate>Tue, 08 Sep 2009 02:26:45 +0000</pubDate>
<dc:creator>dom2d</dc:creator>
<guid>http://zylumdom2d.wordpress.com/2009/09/08/devlog/</guid>
<description><![CDATA[Not that much work done today, sadly. Move out of Skull Island Log: Finished the 3 pirate ships Clea]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-77" title="MockUpInterface" src="http://zylumdom2d.wordpress.com/files/2009/09/mockupinterface1.jpg" alt="MockUpInterface" width="420" height="315" /></p>
<p>Not that much work done today, sadly.</p>
<p><strong>Move out of Skull Island </strong>Log:</p>
<ul>
<li>Finished the 3 pirate ships</li>
<li>Cleaned up Island, added polish to the Skull Mountain, began drawing waves</li>
<li>Made mock-up</li>
</ul>
<p>Things that are urgent:</p>
<ul>
<li>Think of how the sand tiles are going to look, be arranged and played with</li>
<li>Think of a way to design Pirate waves quickly</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Day 2]]></title>
<link>http://zylumdom2d.wordpress.com/2009/09/05/devlog2/</link>
<pubDate>Sat, 05 Sep 2009 23:58:29 +0000</pubDate>
<dc:creator>dom2d</dc:creator>
<guid>http://zylumdom2d.wordpress.com/2009/09/05/devlog2/</guid>
<description><![CDATA[A productive day indeed! I believe I have the game design pretty much nailed. There will be a couple]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-64" title="Placeholders" src="http://zylumdom2d.wordpress.com/files/2009/09/placeholders.jpg" alt="Placeholders" width="400" height="515" /></p>
<p>A productive day indeed! I believe I have the game design pretty much nailed. There will be a couple passes of tweaking on the random generation of Loot and the general balance of Loot vs Pirate Waves.</p>
<p>As for the visual look, I am quite restricted by the size of the objects on screen, since everything has to fit in a single screen, but I&#8217;ll figure out a way to make the elements pop out.</p>
<p><strong>Move out of Skull Island </strong>Log:</p>
<ul>
<li>Continued writing the Design Document</li>
<li>Listed most Loot objects</li>
<li>Created Placeholder objects for Flash</li>
<li>Began testing visual style in Vector format</li>
<li>Made Interface Mock-Up</li>
</ul>
<p>Next step (tomorrow) :</p>
<ul>
<li>Finish Design Document</li>
<li>Create Placeholders for remaining Interface Elements (Mana, Score)</li>
<li>Create Placeholders for Tiles</li>
<li>Find someone for the Music and the Sound Effects!</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SQL로 Oracle Alert Log 파일을 조회하는 방법]]></title>
<link>http://crowelee.wordpress.com/2009/01/09/query-the-oracle-alert-log-using-sql/</link>
<pubDate>Fri, 09 Jan 2009 07:36:56 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2009/01/09/query-the-oracle-alert-log-using-sql/</guid>
<description><![CDATA[DBMS LOG용 디렉토리 생성 CREATE OR REPLACE DIRECTORY DIR_BDUMP AS '/oracle/admin/SID/bdump/'; DBMS LOG 외부 테]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>DBMS LOG용 디렉토리 생성</strong></p>
<p><code>CREATE OR REPLACE DIRECTORY DIR_BDUMP<br />
AS<br />
'/oracle/admin/SID/bdump/';</code></p>
<p><strong>DBMS LOG 외부 테이블 생성</strong></p>
<p><code>CREATE TABLE DBMSLOG (<br />
LOG_TEXT  VARCHAR2(4000)<br />
)<br />
ORGANIZATION EXTERNAL (<br />
TYPE ORACLE_LOADER<br />
DEFAULT DIRECTORY DIR_BDUMP<br />
ACCESS PARAMETERS (<br />
RECORDS DELIMITED BY NEWLINE<br />
FIELDS TERMINATED BY '~'<br />
MISSING FIELD VALUES ARE NULL (<br />
LOG_TEXT  CHAR(4000)<br />
)<br />
)<br />
LOCATION ('alert_SID.log')<br />
)<br />
REJECT LIMIT UNLIMITED;</code></p>
<p><strong>DBMS LOG 뷰 생성</strong></p>
<p><code>CREATE OR REPLACE VIEW DBMSLOG_VI<br />
AS<br />
SELECT LOG_RNUM<br />
, LAST_VALUE(LOG_LNUM IGNORE NULLS)<br />
OVER(ORDER BY LOG_RNUM ROWS BETWEEN UNBOUNDED PRECEDING<br />
AND CURRENT ROW) LOG_SNUM<br />
, LAST_VALUE(LOG_DATE IGNORE NULLS)<br />
OVER(ORDER BY LOG_RNUM ROWS BETWEEN UNBOUNDED PRECEDING<br />
AND CURRENT ROW) LOG_DATE<br />
, TRC_FILE<br />
, LOG_TEXT<br />
FROM (SELECT ROWNUM LOG_RNUM<br />
, NVL2(LOG_DATE, ROWNUM, NULL) LOG_LNUM<br />
, LOG_DATE<br />
, TRC_FILE<br />
, LOG_TEXT<br />
FROM (SELECT CASE REGEXP_INSTR(LOG_TEXT,<br />
'[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}'<br />
&#124;&#124; ' [[:digit:]]{4}')<br />
WHEN 0 THEN NULL<br />
ELSE TO_DATE(LOG_TEXT<br />
, 'Dy Mon DD HH24:MI:SS YYYY'<br />
, 'NLS_DATE_LANGUAGE=AMERICAN')<br />
END LOG_DATE<br />
, CASE REGEXP_INSTR(LOG_TEXT, '^Errors in file')<br />
WHEN 1 THEN REGEXP_REPLACE(LOG_TEXT<br />
, '^Errors in file (.*):$'<br />
, '\1')<br />
ELSE NULL<br />
END TRC_FILE<br />
, LOG_TEXT<br />
FROM DBMSLOG));</p>
<p>COMMENT ON TABLE DBMSLOG_VI IS 'DBMS Alert 로그 뷰';</p>
<p>COMMENT ON COLUMN DBMSLOG_VI.LOG_RNUM IS 'DBMS Alert 로그 순번';<br />
COMMENT ON COLUMN DBMSLOG_VI.LOG_SNUM IS 'DBMS Alert 로그 시작 순번 그룹';<br />
COMMENT ON COLUMN DBMSLOG_VI.LOG_DATE IS 'DBMS Alert 로그 일시';<br />
COMMENT ON COLUMN DBMSLOG_VI.TRC_FILE IS 'DBMS Alert Trace 파일';<br />
COMMENT ON COLUMN DBMSLOG_VI.LOG_TEXT IS 'DBMS Alert 로그 내용';</code></p>
<p><strong>DBMS LOG 파일 조회</strong></p>
<p><code>SELECT A.LOG_DATE<br />
, A.TRC_FILE<br />
, A.LOG_TEXT<br />
FROM (SELECT TO_CHAR(MIN(LOG_DATE), 'YYYY-MM-DD HH24:MI:SS') LOG_DATE<br />
, SUBSTR(XMLAGG(XMLELEMENT(TEMP, CHR(10) &#124;&#124; TRC_FILE)<br />
ORDER BY LOG_RNUM)<br />
.EXTRACT('//text()').GETSTRINGVAL(), 2) TRC_FILE<br />
, SUBSTR(XMLAGG(XMLELEMENT(TEMP, CHR(10) &#124;&#124; LOG_TEXT)<br />
ORDER BY LOG_RNUM)<br />
.EXTRACT('//text()').GETSTRINGVAL(), 2) LOG_TEXT<br />
FROM DBMSLOG_VI<br />
WHERE LOG_DATE BETWEEN TRUNC(SYSDATE - <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> AY)<br />
AND SYSDATE - <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> AY<br />
GROUP BY LOG_SNUM<br />
ORDER BY LOG_SNUM DESC) A<br />
WHERE LOG_TEXT LIKE '%' &#124;&#124; :TEXT &#124;&#124; '%';</code></p>
<p><strong>참고</strong></p>
<p><a title="Query the Oracle Alert Log using SQL commands" href="http://techsudo.blogspot.com/2009/01/query-oracle-alert-log-using-sql.html">Query the Oracle Alert Log using SQL commands</a><br />
<a title="Oracle Regular Expression(정규표현식)" href="http://www.adminschool.net/wiki/doku.php?id=dbms:oracle:devel:regexp">Oracle Regular Expression(정규표현식)</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Grid Movement Techniques]]></title>
<link>http://mybln.wordpress.com/2008/12/01/grid-movement-techniques/</link>
<pubDate>Sun, 30 Nov 2008 23:00:29 +0000</pubDate>
<dc:creator>Greg</dc:creator>
<guid>http://mybln.wordpress.com/2008/12/01/grid-movement-techniques/</guid>
<description><![CDATA[As part of my coding project, I&#8217;ve come across my latest problem. Having created maps and gene]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As part of my <a href="http://mybln.wordpress.com/2008/11/29/complex-coding/">coding project</a>, I&#8217;ve come across my latest problem. Having created maps and generating little characters on them sourced from MySQL, I need to work out how the user can get the player to move.</p>
<p>When coding on <a rel="nofollow" href="http://www.yoyogames.com">Gamemaker</a>, I used the classic method of arrow keys for up, left, right, down movement. This worked well, since it was quick and gave the user full access to the world. However, every move the player makes in what I&#8217;m dubbing the BLOFELD project requires a PHP script to execute and generate a new image. Whilst I&#8217;ve got the execution time down quite low, this process still takes a while. And waiting just half a second after every tap of the keyboard is simply too much.</p>
<p>My next idea was using Javascript to move a separate image over the map and then saving it every now and again. This, however, is highly insecure. Players could execute their own Javascript calls to move to spaces they shouldn&#8217;t be in and basically wreck the game.</p>
<p>My conclusion was that I needed a way to move players a fair distance in one go rather than a square at a time. However, to stop them being too limited, they still needed the option to be able to travel one space.</p>
<div style="text-align:center;margin:6px;"><a name="fig1"><img title="Some nice diagramming, if I say so myself." src="http://i80.photobucket.com/albums/j165/ggt500/fig1.png" alt="Diagram of possible movement patterns" /></a><br />
Figure 1</div>
<p>On the right of <a href="#fig1">Figure 1</a> is my first idea: linear movement. The player can choose a direction to move in and how far they want to go that way. However, this seemed stupid. The movement wasn&#8217;t at all fluid and the player ends up just moving like a rook in chess (arguably the worst piece in the game). What&#8217;s more, going round lots of corners would be absolute hell.</p>
<p>On the left of <a href="#fig1">Figure 1</a> is my second and preferred idea. I think it&#8217;s similar to several games, but I was never much of an RPG fan (I have a cohort of advisers for this project). It allows players to move anywhere a certain distance in range of their space. The maximum radius (I&#8217;ve got to sneak some maths into this apparently) is dependent on their speed, the scale of the map, the environment conditions, their status (dazed characters move slower) and anything else I can think of.</p>
<p>With this movement system comes more complexities.</p>
<div style="text-align:center;margin:6px;"><a name="fig2"><img title="Eugh, my chromatics are awful." src="http://i80.photobucket.com/albums/j165/ggt500/fig2.png" alt="Diagram of movement modifiers" /></a><br />
Figure 2</div>
<p><a href="#fig2">Figure 2</a> shows some new situations. On the left, the walls (yes, those are walls) &#8211; as you would expect &#8211; aren&#8217;t highlighted green. What&#8217;s more, any squares behind the wall that are normally in the catchment area don&#8217;t show up either (no jumping over them).</p>
<p>On the right is a combat situation. The two blue squares represent enemies. Obviously, the player can&#8217;t move to these squares. This leads to breaking down the move into two sections &#8211; moving and acting. Moving follows the descriptions above, and then the player takes an action from their new space. To attack, a grid will show up showing their weapon range. There will also be options to defend oneself, drink a potion and anything else that you might want to do whilst fighting some peeps.</p>
<p>Combat situations bring yet <em>another</em> element (or several) into how this will all work. I&#8217;m intending for the enemies to be controlled by AI, moving in the same way as the players. However, I&#8217;m not sure how to represent this. The simple idea is to have a PHP script execute to judge their new positions and then draw them when the map refreshes. The problem with this is that any movement will seem to be an immediate interrupt to the player &#8211; as soon as they move, so do the enemies. My solution to this is for the script to send the movement to Javascript, which will then act it out.</p>
<p>And what of multiple players in the same room? With all this in consideration, the whole world is turning into a turn based scenario. Players take turns then enemies take turns then players then enemies&#8230; Et cetera. This makes life a lot easier with regards to multiple players&#8230;or does it? Whilst one player moves, the other can do nothing and must simply sit, waiting. And if a player leaves the room, their party will be left waiting for them to do something.</p>
<p>Some sort of timer will need to be put on actions before a defend action is taken on their behalf. Also, the players will need some code that will refresh the page when the other player has taken their turn. Frankly, I think it would be easier to leave out multi-player play.</p>
<p>&#8220;What&#8217;s the next issue?&#8221;, I hear you moan. Well, there are several. How will the player choose actions? How will the possible actions depend on where the player has moved to? How will the combat actually work behind the scenes? And lots more that I can&#8217;t recall right now. But I&#8217;ll save those for another time. I have plenty to be getting on with&#8230;especially those damned maths and physics exams in a month or two&#8217;s time&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[iBATIS에서 실수하기 쉬운 오류..]]></title>
<link>http://crowelee.wordpress.com/2008/11/04/ibatis-error-ora-00911/</link>
<pubDate>Mon, 03 Nov 2008 15:51:05 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2008/11/04/ibatis-error-ora-00911/</guid>
<description><![CDATA[iBATIS에서 질의를 만들다 보면 다음과 같은 오류가 난다. ORA-00911: 문자가 부적합합니다 ORA-00911: invalid Character 실제 내용이된 SQL이 잘]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>iBATIS에서 질의를 만들다 보면 다음과 같은 오류가 난다.</p>
<p><code>ORA-00911: 문자가 부적합합니다<br />
ORA-00911: invalid Character</code></p>
<p>실제 내용이된 SQL이 잘못된 것이 아니라면 제일 마지막에 세미콜론(&#8220;;&#8221;)을 붙이지 않았나 의심해 보자.</p>
<p>CLOB를 선택해야 하는 문제로 테스트 중에 SELECT 문에서 나는 위와 같은 오류를 TypeHandler를 잘못 등록했거나 JDBC 드라이버, NativeJdbcExtractor, LobHander 문제로 착각하고 몇 시간을 헤렸다. -_-;;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Oracle에서 Rename 문법 및 LOB 컬럼의 이름 및 TS 지정 문법]]></title>
<link>http://crowelee.wordpress.com/2008/11/04/oracle-syntax-for-renaming-and-lob/</link>
<pubDate>Mon, 03 Nov 2008 15:28:46 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2008/11/04/oracle-syntax-for-renaming-and-lob/</guid>
<description><![CDATA[이름 변경 문법 alter table info rename constraints pk_info to pk_info_old; alter index pk_info rename to p]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>이름 변경 문법</p>
<p><code>alter table info rename constraints pk_info to pk_info_old;<br />
alter index pk_info rename to pk_info_old;<br />
alter table info rename to info_old;</code></p>
<p>LOB 생성 문법</p>
<p><code>create table info<br />
(<br />
id      varchar2(40) not null,<br />
pid     varchar2(40) not null,<br />
type    varchar2(2) not null,<br />
desc    varchar2(200),<br />
value   clob,<br />
creator varchar2(20) not null,<br />
created date default sysdate not null,<br />
updater varchar2(20) not null,<br />
updated date default sysdate not null<br />
)<br />
tablespace tblspace<br />
pctused 40<br />
pctfree 10<br />
lob (domain_prop_value) store as (<br />
index lx_info_01 (tablespace idxspace)<br />
tablespace tblspace<br />
);</code></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[10g R2 Oracle에서 테이블 온라인 재정의시..]]></title>
<link>http://crowelee.wordpress.com/2008/04/08/redefine-in-oracle-10gr2/</link>
<pubDate>Tue, 08 Apr 2008 02:14:25 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2008/04/08/redefine-in-oracle-10gr2/</guid>
<description><![CDATA[온라인 재정의를 통한 LONG -&gt; LOB 변환을 하던 중 Primary Key가 없을 경우 DBMS_REDEFINITION.START_REDEF_TABLE 호출시 다음과 같]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a title="온라인 재정의를 통한 LONG -&#62; LOB 변환" href="http://www.oracle.com/technology/global/kr/pub/articles/10gdba/nanda_10gr2dba_part4.html#5"><span class="parahead1">온라인 재정의를 통한 LONG -&#62; LOB 변환</span></a>을 하던 중 Primary Key가 없을 경우 DBMS_REDEFINITION.START_REDEF_TABLE 호출시 다음과 같은 오류가 발생하였다.</p>
<blockquote><p>ORA-12089: cannot online redefine table &#8220;KCUBE&#8221;.&#8221;TBR_RFM_QXDMMSG&#8221; with no primary key</p></blockquote>
<p>PK가 없는 테이블에 대해서는 안되는 모양이다.. -_-;;</p>
<p><strong>추가</strong><br />
PK가 반드시 존재해야 하는 이유는 Table의 재정의 작업이 MV를 통해 이루어지기 때문이었다. MV를 이용하는 시점은 SYNC_INTERIM_TABLE 호출시로 온라인 작업중 변경된 사항에 대해 SYNC를 맞추는 시점이다. 재정의시 PK를 생성하고 정의가 끝나면 DROP 하는 방식으로 작업을 하면 되겠다.</p>
<p>참고로, PK가 아닌 ROWID 방식으로도 가능하다. DBMS_REDEFINITION.CONS_USE_PK 대신에<br />
DBMS_REDEFINITION.CONS_USE_ROWID를 사용하면 된다.</p>
<p><strong>참고</strong><br />
<a title="Oracle Online을 통한 24시간 무정지 작업 구현" href="http://www.oracle.com/global/kr/magazine/archive/27winter/Tec_Dev_5.pdf">Oracle Online을 통한 24시간 무정지 작업 구현</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Quick and Dirty Devlog]]></title>
<link>http://croftonforks.wordpress.com/2008/02/21/quick-and-dirty-devlog/</link>
<pubDate>Fri, 22 Feb 2008 00:54:11 +0000</pubDate>
<dc:creator>Jeff</dc:creator>
<guid>http://croftonforks.wordpress.com/2008/02/21/quick-and-dirty-devlog/</guid>
<description><![CDATA[Devlog -  Developers Log Entry 1. Adventures. I ran my first adventure in my infant setting.  It wor]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Devlog -  Developers Log Entry 1.<br />
<b>Adventures.</b></p>
<p>I ran my first adventure in my infant setting.  It worked well, a simple adventure for 3 PC&#8217;s to go and do a little bit of NPC roleplaying and some forest/dungeon adventuring.  Simplistic yes &#8211; but enjoyable, and that&#8217;s the key.</p>
<p>I&#8217;m wondering now if it&#8217;s worth working on adventures side by side with the Adventure Setting.  Realistically they&#8217;ll probably draw more traffic and downloads, but I tend to DM in a very off the cuff sort of way, so I&#8217;d have to make sure the adventure as published is easily playable without a bunch of invention and improvisation.</p>
<p><b>Campaign/World Ideas.</b></p>
<p>I decided to call this an Adventure Setting instead of a Campaign Setting simply because it was originally intended to be smaller in scope, at least to start with, and expanded upon with future releases.  I&#8217;m wondering now whether to jump to a campaign setting format from the beginning.</p>
<p>I&#8217;ve come up with some world building ideas that I need to brainstorm about &#8211; specifically what nations have colonial interests in the new world, and how the different nations deal with distance travel.  By sea was my idea, but I&#8217;m stuck between two ideas, one being a very early oceanfaring technology, one being closer to our own historical Age of Sail which I personally find so interesting and rewarding to read and learn about.  Of course, the Age of Sail as we know it represents a place much further along the technology curve, and as such, would have to have some of it&#8217;s own history.  Tricky.</p>
<p>I&#8217;ve come up with more info on important NPC&#8217;s and one of my next  major updates will be to flesh out Crofton Forks&#8217; NPC&#8217;s into stat block format with a bit of history and character background for each.</p>
<p><b>World. </b></p>
<p>Is an alternate Earth realistic?  I mean to say, is it realistic to expect people to suspend their disbelief to engage in a fantasy setting, and yet to recognize the landmasses of their real world?</p>
<p>I like the idea of real world geography, especially as I am most definitely <i>not</i> a geographer.  However, I wonder if it will become a flaw in my overall design.  This is something I really need to decide early in.</p>
<p>One idea I did have, if I do use the real world geography idea, is to use a google maps interface to offer printable maps, perhaps eventually a google earth overlay &#8211; how cool would that be? (And far fetched, yes, I know.)</p>
<p>Fini.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[My Edited Roco Facesets]]></title>
<link>http://abyssalleviathin.wordpress.com/2008/02/15/two-more-facesets/</link>
<pubDate>Fri, 15 Feb 2008 21:55:50 +0000</pubDate>
<dc:creator>Abyssal</dc:creator>
<guid>http://abyssalleviathin.wordpress.com/2008/02/15/two-more-facesets/</guid>
<description><![CDATA[I&#8217;ve made some more facesets. They&#8217;re Roco edits, both of which are from my non-Legacy p]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve made some more facesets. They&#8217;re Roco edits, both of which are from my non-<a HREF="http://rpgmaker.wikia.com/wiki/Soulstorm_Legacy">Legacy</a> projects. Go figure. Anyway, hope you like &#8216;em.</p>
<blockquote><p><strong>The License and what-not</strong><br />
You can use these faces in your own RPG Maker project as long as&#8230;<br />
1.) Credit is given in-game at some point to <em>Roco</em> for creating the <em>original faces</em>.<br />
2.) Credit is given in-game at some point to <em>Abyssal</em> for <em>editing</em> them.<br />
3.) You don&#8217;t remove the little ad at the bottom of the images themselves.</p></blockquote>
<p><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety1.png" alt="variety1.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/07c11430.png" alt="07c11430.png" /><!--more--><img src="http://abyssalleviathin.wordpress.com/files/2008/02/8bc73e0f.png" alt="8bc73e0f.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/9c803d3d.png" alt="9c803d3d.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/eff26647.png" alt="eff26647.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/purplebrian.png" alt="purplebrian.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/roco20greens.png" alt="roco20greens.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/shortbluehair.png" alt="shortbluehair.png" /><img ALT="ssa-damis-abyssal.png" SRC="http://abyssalleviathin.wordpress.com/files/2008/02/ssa-damis-abyssal.png" /><img ALT="ssd-kestrel-abyssal.png" SRC="http://abyssalleviathin.wordpress.com/files/2008/02/ssd-kestrel-abyssal.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety8.png" alt="variety8.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety4.png" alt="variety4.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety3.png" alt="variety3.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety5.png" alt="variety5.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety6.png" alt="variety6.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety7.png" alt="variety7.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety9.png" alt="variety9.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety2.png" alt="variety2.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety10.png" alt="variety10.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety14.png" alt="variety14.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety13.png" alt="variety13.png" /><img src="http://abyssalleviathin.wordpress.com/files/2008/02/variety15.png" alt="variety15.png" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[오라클에서 Compress 테이블에 대한 DDL 작업]]></title>
<link>http://crowelee.wordpress.com/2008/01/17/use-ddl-in-compress-table/</link>
<pubDate>Thu, 17 Jan 2008 04:47:15 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2008/01/17/use-ddl-in-compress-table/</guid>
<description><![CDATA[업무 중 테이블에 대한 컬럼 드랍 요청이 있어서 작업을 하려고 하니 다음과 같은 오류가 발생하였다. ORA-39726: unsupported add/drop column opera]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>업무 중 테이블에 대한 컬럼 드랍 요청이 있어서 작업을 하려고 하니 다음과 같은 오류가 발생하였다.</p>
<blockquote><p><code>ORA-39726: unsupported add/drop column operation on compressed tables</code></p></blockquote>
<p>Compress된 테이블은 컬럼 추가/삭제가 지원되지 않는다면 말이다. ALTER로 테이블을 NOCOMPRESS로 변경하여도 신규로 들어가는 데이터에 대해서만 적용되지 기존의 압축된 데이터는 그대로이기 때문에 해결책이 되지 않는다.</p>
<p>이럴 경우 해당 테이블의 테이블 스페이스를 다른 곳으로 이동하면서 NOCOMPRESS 옵션을 사용하면 COMPRESS 설정이 풀리게 된다. 만약 파티션의 경우도 마찬가지로 파티션이 위치하는 테이블 스페이스를 다른 곳으로 이동하면 된다. 이후 DDL 작업이 완료된 후 다시 원래의 테이블 스페이스로 COMPRESS 옵션을 주어 원복하면 작업이 완료된다.</p>
<p>파티션된 테이블의 경우는 다음과 같은 방식으로 스크립트 생성이 가능하다.</p>
<blockquote><p><code>select    'ALTER TABLE '<br />
&#124;&#124; object_name<br />
&#124;&#124; ' MOVE PARTITION '<br />
&#124;&#124; subobject_name<br />
&#124;&#124; ' TABLESPACE TS_NEW NOCOMPRESS PARALLEL 8 NOLOGGING;'<br />
from user_objects<br />
where object_type = 'TABLE PARTITION'<br />
and object_name in(select tname<br />
from tab)</code></p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[iBATIS 결과 객체는 영속적일까]]></title>
<link>http://crowelee.wordpress.com/2007/12/21/life-cycle-of-object-from-ibatis/</link>
<pubDate>Fri, 21 Dec 2007 06:00:32 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/12/21/life-cycle-of-object-from-ibatis/</guid>
<description><![CDATA[문제는 다음과 같았다. 사용자가 로그인 화면에서 로그인을 요청하게 되면 사용자 인증을 한 후 사용자 정보를 Request 객체의 Session 영역에 넣어 놓고, 이후 다시 초기 ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>문제는 다음과 같았다.</p>
<p>사용자가 로그인 화면에서 로그인을 요청하게 되면 사용자 인증을 한 후 사용자 정보를 Request 객체의 Session 영역에 넣어 놓고, 이후 다시 초기 페이지 요청시 사용자 정보가 있으면 바로 본 화면으로 넘어가는 방식으로 코드를 구현하였다.</p>
<p>하지만 로그인 이후 자동으로 본 화면 이동시 사용자 정보를 읽지 못하는 현상을 보였다.</p>
<p>문제는 iBATIS에서 얻어진 결과 객체를 바로 Session에 집어 넣는 실수로 인한 것으로 보여졌다. 아마도 iBATIS의 결과 객체의 레퍼런스를 잡고 있다가 일정 시간 이후에 메모리에서 지우는 이유 때문일 것이다.</p>
<p>그리하여 다음과 같이 기존 코드를 변경하였다.</p>
<blockquote><p>기존<br />
<code>request.getSession().setAttribute("user", user);</code></p></blockquote>
<blockquote><p>변경<br />
<code>request.getSession().setAttribute("user", new HashMap(user));</code></p></blockquote>
<p>iBATIS 결과 객체의 Life Cycle이 어떤 식으로 동작하는지 찾아봐야 할 것 같다.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Spring Framework에서 Class에 대한 Proxy 사용]]></title>
<link>http://crowelee.wordpress.com/2007/12/17/spring-proxy-error/</link>
<pubDate>Mon, 17 Dec 2007 02:35:41 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/12/17/spring-proxy-error/</guid>
<description><![CDATA[Spring Framework을 사용하면서, IoC 기반의 코딩을 하기 위해 Interface를 앞단에 두고 이를 구현하는 방식으로 구현한 소스를 좀 뒤집었다. 추가적인 이종의 구]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Spring Framework을 사용하면서, IoC 기반의 코딩을 하기 위해 Interface를 앞단에 두고 이를 구현하는 방식으로 구현한 소스를 좀 뒤집었다.</p>
<p>추가적인 이종의 구현의 필요가 없어 개발의 편의성을 위해 앞단의 Interface를 모두 제거하는 식으로 변경을 하였다. Interface를 둘 경우 Eclipse 소스에서 Ctrl 키를 눌러 참조 구현부로 이동하는 기능이 Interface로 연결되면서 개발상 불편한 것도 변경의 이유가 되었다.</p>
<p>문제는 앞단의 Interface를 지우고 직접 Class를 올리게 되니 Spring에서 Bean을 생성하고 Proxy AOP를 거는 중 다음과 같은 오류가 발생하였다.</p>
<blockquote><p><code>Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.</code></p></blockquote>
<p>인터넷상에 나와있는 &#8220;<a href="http://wiki.javajigi.net/pages/viewpage.action?pageId=1065" title=" JDK Dynamic Proxy와 CGLIB Proxy에 대한 이해">JDK Dynamic Proxy와 CGLIB Proxy에 대한 이해</a>&#8220;를 보면 2가지 종류의 Proxy가 이용되는 것으로 확인된다. 아마도 이전에 Interface 기반에서 JDK Dynamic Proxy가 사용된 것으로 보인다.</p>
<p>직접 Class에 대한 Proxy를 이용하기 위해서 Spring Framework의 &#8220;lib/cglib&#8221; 위치에 있는 &#8220;cglib-nodep-2.1_3.jar&#8221; 라이브러리를 Class Path에 추가해 주면 된다.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tomcat 환경에서 log4j.xml의 로그 경로 상대 설정]]></title>
<link>http://crowelee.wordpress.com/2007/12/06/log4j-xml-configuration-in-tomcat/</link>
<pubDate>Thu, 06 Dec 2007 08:31:47 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/12/06/log4j-xml-configuration-in-tomcat/</guid>
<description><![CDATA[Log4J의 설정에서 로그 파일의 경로를 지정하는 부분이 있다. 대부분의 예제에서는 절대 경로로 설정이 되어 있어서 개발시와 서버 운영시에 log4j.xml 파일을 별도로 관리하여]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Log4J의 설정에서 로그 파일의 경로를 지정하는 부분이 있다. 대부분의 예제에서는 절대 경로로 설정이 되어 있어서 개발시와 서버 운영시에 <code>log4j.xml</code> 파일을 별도로 관리하여야 하는 어려움이 있었다.</p>
<p>때문에 여러가지 방법을 테스트 하던 중 다음과 같은 방식으로 Context Root를 기준으로 하는 상대 경로 설정법이 동작하는 것을 확인하였다.</p>
<p>해당 Appender의 설정 부분은 다음과 같다.</p>
<blockquote><p><code>&#60;appender name="spring" class="org.apache.log4j.DailyRollingFileAppender"&#62;<br />
&#60;param name="File" value="${webapp.root}/WEB-INF/logs/spring.log"/&#62;<br />
&#60;param name="Append" value="false"/&#62;<br />
&#60;param name="DatePattern" value="'.'E"/&#62;<br />
&#60;layout class="org.apache.log4j.PatternLayout"&#62;<br />
&#60;param name="ConversionPattern" value="%d{MM-dd HH:mm:ss} %-5p %c{2} - %m%n"/&#62;<br />
&#60;/layout&#62;<br />
&#60;/appender&#62;</code></p></blockquote>
<blockquote><p><b>추가<br />
</b>위에서 webapp.root는 web.xml에서 정해주는 webAppRootKey와 관련이 있다. 기본값이 webapp.root일 뿐이다. 다음과 같은 코드로 정의가 가능하다.<br />
<code>&#60;context-param&#62;<br />
&#60;param-name&#62;webAppRootKey&#60;/param-name&#62;<br />
&#60;param-value&#62;my.root&#60;/param-value&#62;<br />
&#60;/context-param&#62;</code></p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Flex에서 Popup Window 띄우기]]></title>
<link>http://crowelee.wordpress.com/2007/12/06/popup-window-in-flex/</link>
<pubDate>Thu, 06 Dec 2007 06:59:31 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/12/06/popup-window-in-flex/</guid>
<description><![CDATA[Flex에서 기존 웹 페이지를 팝업으로 띄우기 위해서는 보통 다음과 같은 방식을 사용한다. navigateToURL(new URLRequest('http://wordpress.co]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Flex에서 기존 웹 페이지를 팝업으로 띄우기 위해서는 보통 다음과 같은 방식을 사용한다.</p>
<blockquote><p><code>navigateToURL(new URLRequest('http://wordpress.com'), '_blank');</code></p></blockquote>
<p>하지만 위 방법으로는 Java Script에서 가능한 <code>window.open('..', '..', '..')</code> 기능에서와 같이 툴바와 크기, 리사이즈 등의 옵션을 주기가 어렵게 된다.</p>
<p>그래서 다음과 같이 원하는 옵션을 주어 팝업창을 띄우는 함수를 하나 만들어 사용하고 있다.</p>
<blockquote><p><code>public function openWeb(url:String, name:String, width:Number, height:Number):void {<br />
navigateToURL(new URLRequest('javascript:(function(){window.open("' + url<br />
+ '", "' + name + '", "toolbar=no,location=no,status=no,'<br />
+ 'menubar=no,scrollbars=no,resizable=no,width=' + width<br />
+ ',height=' + height + '");})()'), '_self');<br />
}</code></p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Spring Framework에서 Singleton 오류]]></title>
<link>http://crowelee.wordpress.com/2007/12/06/error-of-singleton-in-spring-framework/</link>
<pubDate>Thu, 06 Dec 2007 06:51:27 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/12/06/error-of-singleton-in-spring-framework/</guid>
<description><![CDATA[Tomcat 환경에서 Spring Framework으로 설정을 끝마치고 즐거운 마음으로 실행을 시켜 보았는데, POJO 클래스의 생성자가 두 번씩 호출되는 현상이 발생하였다. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Tomcat 환경에서 Spring Framework으로 설정을 끝마치고 즐거운 마음으로 실행을 시켜 보았는데, POJO 클래스의 생성자가 두 번씩 호출되는 현상이 발생하였다. <code>&#60;bean/&#62;</code> 선언에 <code>scope="singleton"</code>을 넣어 보아도 마찬가지 현상이고, Spring Framework의 debug 로그를 보아도 두 번씩 객체를 생성하는 기이한 구조를 보이고 있었다.</p>
<p>이것 저것 설정을 건드리다가 범인을 발견!! 범인은 다름 아닌 <code>&#60;import/&#62;</code>로 분산한 IoC 설정 파일이었다.</p>
<blockquote><p><code>&#60;import resource="sub-spring.xml"/&#62;</code></p></blockquote>
<p>위와 같이 분리하였을 경우 <code>sub-spring.xml</code>에 선언된 Bean은 생성자가 두 번씩 호출된다. <code>init-method</code>로 설정한 것도 두 번씩 호출된다.</p>
<p>이것을 피하기 위해 <code>&#60;import/&#62;</code>로 분리한 것을 <code>web.xml</code>의 <code>contextConfigLocation</code>에 몰아서 선언하는 것으로 문제를 해결하였다.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[코딩용 서체 변경]]></title>
<link>http://crowelee.wordpress.com/2007/07/09/change-font-in-coding-bitstream-vera-sans-mono/</link>
<pubDate>Mon, 09 Jul 2007 12:31:03 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/07/09/change-font-in-coding-bitstream-vera-sans-mono/</guid>
<description><![CDATA[가장 좋은 프로그래머 서체에서 1위를 차지한 Bitstream Vera Sans Mono로 모든 편집기의 폰트를 변경하였다.   이전까지는 Lucida Console 폰트를 애용하]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://www.kuro5hin.org/story/2004/12/6/11739/5249" title="Finding the Best Programmer's Font">가장 좋은 프로그래머 서체</a>에서 1위를 차지한 <a href="http://www.gnome.org/fonts/" title="Bitstream Vera Fonts">Bitstream Vera Sans Mono</a>로 모든 편집기의 폰트를 변경하였다.</p>
<p align="center"> <img src="http://crowelee.wordpress.com/files/2007/07/bitstream-vera-sans-mono.png" alt="Bitstream Vera Sans Mono" /></p>
<p>이전까지는 Lucida Console 폰트를 애용하였으나 맥에 대한 관심이 막중해지면서 Lucida Grande와 비슷한 고정폭 글꼴을 찾아 보았는데 그것이 위의 폰트였다.</p>
<p>Monaco와 Anonymous, Andale Mono와 비교해 본 결과위의 폰트가 제일 정갈하고 명확해 선택한 것이다. 한 가지 걸리는 것은 Eclipse에서는 한글일 경우 굴림으로 변경해 주는 것에 비해 다른 프로그램에서는 바탕으로 표현되어 심미적으로 우울한 상태이다.</p>
<blockquote><p>뱀발:<br />
&#8220;HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/FontLink/SystemLink&#8221; 위치의 레지스트리까지 변경해 보았지만 원하는 결과를 얻지 못했다.</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[iPhone 해킹되나..]]></title>
<link>http://crowelee.wordpress.com/2007/07/04/hack-iphone/</link>
<pubDate>Wed, 04 Jul 2007 10:48:34 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/07/04/hack-iphone/</guid>
<description><![CDATA[iPhone은 AT&amp;T로부터 활성화(Activation)를 하지 않으면 iPod 기능을 사용하지 못한다. 하지만 한 해커가 이를 우회할 수 있는 방법을 올려 놓았다. 자신의]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>iPhone은 AT&#38;T로부터 활성화(Activation)를 하지 않으면 iPod 기능을 사용하지 못한다.</p>
<p><img src="http://crowelee.wordpress.com/files/2007/07/iphone.png" alt="iPhone" align="right" hspace="10" />하지만 한 해커가 <a href="http://nanocr.eu/2007/07/03/iphone-without-att/" title="iPhone Independence Day at So sue me">이를 우회할 수 있는 방법</a>을 올려 놓았다. 자신의 PC에 서버를 띄워놓고 인증 도메인 주소를 속여 PAS(Phone Activation Server)로 접속는 방식이다. 이 방식으로 인증을 하고나면 iPod 기능과 Wi-Fi 기능을 사용할 수 있다고 밝혔다.</p>
<p>이것이 가능하다면 미국이 아닌 다른 나라에서도 전화 기능을 제외한 나머지 기능을 Wi-Fi를 통해 사용할 수 있다는 말이다.</p>
<p>그나저나 이 책임은 Apple이 모두 떠안게 되버렸다. 사용자들로서는 즐거운 일일 뿐이지만..</p>
<p>PS. 현재 해당 포스트의 댓글이 열리지 않아 진위 여부는 파악되지 않고 있다.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Eclipse WTP All in One에서 Subclipse 설치하는법]]></title>
<link>http://crowelee.wordpress.com/2007/07/02/install-guide-for-subclipse-in-eclipse-wtp-all-in-one/</link>
<pubDate>Mon, 02 Jul 2007 05:52:49 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/07/02/install-guide-for-subclipse-in-eclipse-wtp-all-in-one/</guid>
<description><![CDATA[주말에 즈음하여 WTP All in One v2.0이 공개되었다. 여기에 Subclipse를 설치하기 위한 방법을 잠시 메모한다. 메뉴에서 /Help /Software Update]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>주말에 즈음하여 <a href="http://www.eclipse.org/webtools/releases/2.0/index.php" title="Web Tools Platform 2.0 Released">WTP All in One v2.0</a>이 공개되었다. 여기에 Subclipse를 설치하기 위한 방법을 잠시 메모한다.</p>
<ol>
<li>메뉴에서 /Help /Software Updates /Find and Install&#8230;을 선택한다.</li>
<li>대화상자에서 두번째인 Search for new features to install을 선택하고 Next 버튼을 누른다.</li>
<li>New Remote Site&#8230; 버튼을 눌러 Subclipse와 관련된 라이브러리 사이트를 등록한다.
<ol>
<li><b>Subclips</b><br />
http://subclipse.tigris.org/update_1.2.x</li>
<li><b>Mylyn</b><br />
http://download.eclipse.org/tools/mylyn/update/e3.3</li>
<li><b>Buckminster</b><br />
http://download.eclipse.org/tools/buckminster/updates</li>
</ol>
</li>
<li>추가한 사이트를 선택한 후 Finish 버튼을 눌러 설치한 후 재시작하면 된다.</li>
</ol>
<p style="text-align:center;"><img src="http://crowelee.wordpress.com/files/2007/07/eclipse.png" alt="Subclipse Install" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Apache와 Tomcat을 Proxy AJP로 연결]]></title>
<link>http://crowelee.wordpress.com/2007/05/22/install-apache-and-tomcat/</link>
<pubDate>Tue, 22 May 2007 04:38:44 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/05/22/install-apache-and-tomcat/</guid>
<description><![CDATA[Apache 2와 Tomcat 5를 Proxy AJP로 연결하는 방법을 보고 그대로 따라해 보았다. 이유인 즉은 예전에 Apache 2.2 버전에 mod_jk를 붙일 때 버그 때문]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://crowelee.files.wordpress.com/2007/05/akiba.jpg" alt="Akiba by jerrycat" align="left" hspace="10" /><a href="http://wiki.kldp.org/wiki.php/Apache2Tomcat5Howto2" title="Apache2와 Tomcat5 연동하기">Apache 2와 Tomcat 5를 Proxy AJP로 연결</a>하는 방법을 보고 그대로 따라해 보았다. 이유인 즉은 예전에 Apache 2.2 버전에 mod_jk를 붙일 때 버그 때문에 Apache 2 버전으로 바꿔서 시도한 기억이 있기 때문이었다.</p>
<p>또, mod_jserv와 mod_webapp, mod_jk, mod_jk2 등의 커넥터보다는 mod_proxy_ajp 모듈로 붙이는 방식이 대세로 떠오르고 있다는 것이 이유였다. (솔직히 컴파일 하기가 귀찮았다. -_-)</p>
<p>Apache 2.2 버전부터 포함된 mod_proxy_ajp로 붙이는 것이 더 간편했다. JK Connector를 컴파일 하지 않아도 되고, Rewrite 모듈로 Proxy를 구성하는 것도 가능했기 때문이다. 설치 환경은 다음과 같았다.</p>
<ul>
<li>HP-UX B.11.23 U ia64</li>
<li>Java 2 Second Edition 1.5_007</li>
<li>Apache HTTPD Server 2.2.4</li>
<li>Apache Tomcat 6.0.13</li>
</ul>
<p>Apache 설치시 proxy_ajp 모듈을 포함한다. zlib가 없어서 deflate를 제외한 상태로 다음과 같이 설치했다. rewrite 모듈도 포함하는게 좋겠다.</p>
<p><code>./configure<br />
--prefix=/nms/3rdparty/hpux/web/apache-2.2.4<br />
--disable-deflate<br />
--enable-proxy-ajp<br />
--enable-cache<br />
--enable-disk-cache<br />
--enable-expires<br />
--enable-file-cache<br />
--enable-headers<br />
--enable-mem-cache<br />
--enable-mime-magic<br />
--enable-proxy<br />
--enable-rewrite<br />
--enable-speling<br />
--enable-mods-shared=all</code></p>
<p>설치 후에는 httpd.conf에서 <code>ServerName</code>을 넣어주고 Proxy AJP를 위해 다음과 같은 설정 파일을 가져오는 부분을 추가한다.</p>
<p><code>Include conf/proxy_ajp.conf</code></p>
<p>proxy_ajp.conf에서는 <code>ProxyPass</code> 혹은 <code>Rewrite</code>를 이용하여 AJP를 경유한 Tomcat으로 요청을 넘길 수 있다. 다음은 파일의 내용이다.</p>
<p><code>RewriteEngine On<br />
RewriteCond %{REQUEST_FILENAME} .jsp<br />
RewriteRule (.*) ajp://localhost:8009$1 [P]</code></p>
<p><code>[P]</code>는 Proxy 방식으로 넘긴다는 뜻이다. 위 내용은 맨 위에 소개된 가이드 내용대로  jsp 확장자 요청이 들어왔을때 Tomcat이 처리하도록하는 부분이다. 서블릿의 경우는 <code>ProxyPass</code>는 Servlet 매핑이 되어 있을 경우에 써먹으면 좋을 듯 하다.</p>
<p>Rewrite 설정은 아직 잘 모르겠다. 좀 더 살펴보면 마음 먹은대로의 설정이 가능할 것 같다.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[멋모르고 삽질하다가는 큰일난다]]></title>
<link>http://crowelee.wordpress.com/2007/05/18/%eb%a9%8b%eb%aa%a8%eb%a5%b4%ea%b3%a0-%ec%82%bd%ec%a7%88%ed%95%98%eb%8b%a4%ea%b0%80%eb%8a%94-%ed%81%b0%ec%9d%bc%eb%82%9c%eb%8b%a4/</link>
<pubDate>Fri, 18 May 2007 03:58:39 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/05/18/%eb%a9%8b%eb%aa%a8%eb%a5%b4%ea%b3%a0-%ec%82%bd%ec%a7%88%ed%95%98%eb%8b%a4%ea%b0%80%eb%8a%94-%ed%81%b0%ec%9d%bc%eb%82%9c%eb%8b%a4/</guid>
<description><![CDATA[유닉스 서버에서 파일을 다운받기 위해 tar로 &#8216;-C&#8217; 옵션을 주고 묶고 있었다. 묶는 중 계정에 할당된 용량이 다 차버렸다는 메시지와 함께 작업이 중지되었다]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img align="right" src="http://crowelee.files.wordpress.com/2007/05/004-morning-geekery.jpg" hspace="10" alt="004 Morning Geekery by *alex" />유닉스 서버에서 파일을 다운받기 위해 tar로 &#8216;-C&#8217; 옵션을 주고 묶고 있었다. 묶는 중 계정에 할당된 용량이 다 차버렸다는 메시지와 함께 작업이 중지되었다. 그래서 파일을 지우려고 보니 옵션을 주는 방법이 잘못되었는지 &#8216;-C&#8217; 파일이 생성되어 버렸다. 쿨럭..</p>
<p>파일을 지우려고하니 &#8216;-C&#8217;란 옵션이 잘못되었다고 오류만 뿌려댄다. 내가 관리하는 서버도 아니거니와 현재 운용중인 장비인 것으로 이렇게 두면 먼가 일이나도 단단히 날 것 같은 생각에 `, &#8216;, &#8221; 등등으로 &#8216;-C&#8217; 파일 삭제를 시도해 보았지만 접근이 되지 않았다. 임시로 디렉토리(이것마져 만들어 지지 않아서 작은 파일 하나를 임시로 다른 곳에 옮겨 놓고)를 만들고, &#8216;mv *C &#8230;&#8217;으로 이동시킨 후 디렉토리째로 날리려고 하였으나 &#8216;mv&#8217; 마져도 안되었다.</p>
<p>결국 이래 저래 한 1분 고민하다가 WSFTP 무료 버전을 다운받아 접근해서 삭제에 성공하였다. 기특한놈.. ㅋㅋ</p>
<p>선무당이 사람 잡는다는 진땀나는 교훈을 얻었다. -_-;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[윈도우즈 PHP에서 mysql 모듈 오류날때..]]></title>
<link>http://crowelee.wordpress.com/2007/04/09/php-error-with-mysql-on-windows/</link>
<pubDate>Mon, 09 Apr 2007 15:48:34 +0000</pubDate>
<dc:creator>Dennis Lee</dc:creator>
<guid>http://crowelee.wordpress.com/2007/04/09/php-error-with-mysql-on-windows/</guid>
<description><![CDATA[윈도우즈 환경에서 php_mysql.dll 모듈이 정상적으로 패스에 잡혀 있음에도 불구하고 다음과 같은 오류가 발생하였다. PHP Warning: PHP Startup: Unabl]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>윈도우즈 환경에서 <code>php_mysql.dll</code> 모듈이 정상적으로 패스에 잡혀 있음에도 불구하고 다음과 같은 오류가 발생하였다.</p>
<p><code>PHP Warning:  PHP Startup: Unable to load dynamic library 'd:/tools/develop/php/ext/php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0</code></p>
<p>이 경우 <code>php.ini</code> 파일은 정상적이므로 다른 곳에서 원인을 찾아야 한다. &#8216;<a href="http://www.thescripts.com/forum/thread475443.html" title="Unable to load dynamic library">Unable to load dynamic library</a>&#8216; 포럼을 보면 해결책이 나와있다. MySQL이 설치된 <code>bin</code> 폴더를 보면 <code>libmySQL.dll</code> 파일이 있는데 이것이 시스템 패스에 잡혀있어야 한다.이 파일을 Windows 폴더에 복사하고 문제 해결 완료..</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
