유부남의 유쾌한 세상

shocking.egloos.com




MS-SQL 2005이상 중복 제거 웹개발

CREATE TABLE #Tbl

(

IDX INT

, COL1 INT

, COL2 VARCHAR(10)

)

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (1, 1, 'A')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (1, 1, 'A')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (1, 2, 'A')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (2, 1, 'AA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (2, 2, 'AA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (2, 2, 'AA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (2, 3, 'AA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (3, 1, 'AAA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (3, 2, 'AAA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (3, 3, 'AAA')

INSERT INTO #Tbl (IDX, COL1, COL2) VALUES (3, 3, 'AAA')

--//중복 데이터 삭제 전

SELECT * FROM #Tbl

중복데이터 삭제 전.png

DELETE TBL FROM

(

SELECT

ROW_NUMBER() OVER (PARTITION BY IDX, COL1, COL2 ORDER BY IDX) AS ROWNUM

FROM #Tbl

) AS TBL

WHERE TBL.ROWNUM > 1

--//중복 데이터 삭제 후

SELECT * FROM #Tbl

중복데이터 삭제 후.png


[출처] MS-SQL 2005이상 중복 제거|작성자 백색김리


cnfcj:


Javascript Flash Player detection and embed script 웹개발

SWFObject: Javascript Flash Player detection and embed script

SWFObject is a small Javascript file used for embedding Adobe Flash content. The script can detect the Flash plug-in in all major web browsers (on Mac and PC) and is designed to make embedding Flash movies as easy as possible. It is also very search engine friendly, degrades gracefully, can be used in valid HTML and XHTML 1.0 documents*, and is forward compatible, so it should work for years to come.
* Pages sent as text/html, not application/xhtml+xml.

Please note: SWFObject is the SWF embed script formerly known as FlashObject. The name was changed due to legal / trademark reasons. For more information, see this post.

Table of Contents

What's new in this version?

For a full list of changes, please see my SWFObject 1.5 blog post.

How it works

[For the über nerds, you can view the raw javascript here.]

Using SWFObject is easy. Simply include the swfobject.js Javascript file, then use a small amount of Javascript on your page to embed your Flash movie. Here is an example showing the minimum amount of code needed to embed a Flash movie:

<script type="text/javascript" src="swfobject.js"></script>		<div id="flashcontent">  This text is replaced by the Flash movie.</div><script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");   so.write("flashcontent");</script>

Here is a breakdown of what the code does:

<div id="flashcontent">[...]</div>

Prepare an HTML element that will hold our Flash movie. The content placed in the 'holder' element will be replaced by the Flash content, so users with the Flash plug-in installed will never see the content inside this element. This feature has the added bonus of letting search engines index your alternate content.

var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);

Create a new SWFObject and pass in the required arguments:

  • swf - The file path and name to your swf file.
  • id - The ID of your object or embed tag. The embed tag will also have this value set as it's name attribute for files that take advantage of swliveconnect.
  • width - The width of your Flash movie.
  • height - The height of your Flash movie.
  • version - The required player version for your Flash content. This can be a string in the format of 'majorVersion.minorVersion.revision'. An example would be: "6.0.65". Or you can just require the major version, such as "6".
  • background-color - This is the hex value of the background color of your Flash movie.

Optional arguments are:

  • quality - The quality you wish your Flash movie to play at. If no quality is specified, the default is "high".
  • xiRedirectUrl - If you would like to redirect users who complete the ExpressInstall upgrade, you can specify an alternate URL here
  • redirectUrl - If you wish to redirect users who don't have the correct plug-in version, use this parameter and they will be redirected.
  • detectKey - This is the url variable name the SWFObject script will look for when bypassing the detection. Default is 'detectflash'. Example: To bypass the Flash detection and simply write the Flash movie to the page, you could add ?detectflash=false to the url of the document containing the Flash movie.
so.write("flashcontent");

Tell the SWFObject script to write the Flash content to the page (if the correct version of the plug-in is installed on the user's system) by replacing the content inside the specified HTML element.

The Details

SWFObject works quietly in the background of your HTML document. When developing pages that use SWFObject, you should start with your alternate (non-Flash) content first. Get your pages working without your Flash movies, then add them in later with little Javascript snippets that replace your alternate content with the Flash movies. This ensures that the alternate content will be indexed by search engines, and that users without the Flash plug-in will still see a working HTML page. Whether you provide upgrade instructions or not is up to you. If your alternate content can suffice, there may be no reason at all to tell people they are missing out on Flash content.

SWFObject works in all the current web browsers, including, on PC: IE5/5.5/6, Netscape 7/8, Firefox, Mozilla, and Opera. On Mac: IE5.2, Safari, Firefox, Netscape 6/7, Mozilla, and Opera 7.5+, and should continue to work well into the future.

SWFObject detects Flash player versions in these browsers from version 3 and up, and will allow users to interact with your Flash content without 'activating' it first. For more information on this, see this blog post on the Internet Explorer Eolas patent dispute.

SWFObject can detect minor versions and revision versions of the Flash Player as well, simply by passing the string value of the version you want. An example of requiring Flash player v.6.0 r65 (or 6,0,65,0) would be:

var so = new SWFObject("movie.swf", "mymovie", "200", "100", "6.0.65", "#336699");

SWFObject's built in plug-in detection can be bypassed. If a new browser is ever launched or for some reason the plug-in detection fails on a user's system, you can include a bypass link that will disable the detection built into SWFObject, and it will always write the Flash content to the page. To use the bypass link, simply link to the page with your Flash content on it, and include a single url variable called 'detectflash' and set it to 'false.' Here is an example of what that link would look like:

<a href="mypage.html?detectflash=false">Bypass link</a>

SWFObject Examples

The example given above is what you need for the bare bones use of SWFObject, but what if you want to use some of the other parameters the Flash plug-in has to offer? SWFObject makes it very easy to add any extra parameter you may need. The examples below are a number of different methods you may wish to use to embed your Flash content.

A simple example adding a few extra parameters

<script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "400", "100%", "8", "#336699");   so.addParam("quality", "low");   so.addParam("wmode", "transparent");   so.addParam("salign", "t");   so.write("flashcontent");</script>

Here is a full list of the current parameters and their possible values on adobe.com.

Passing variables into your movies using the "Flashvars" parameter:

Using Flashvars is the easiest way to get data from your HTML into your Flash movie, but you can only pass the data in when your movie first loads. Normally, you would add a parameter called "flashvars" and then for the value, you passing a string of name/value pairs like this: variable1=value1&variable2=value2&variable3=value3 and so on. SWFObject makes this a bit easier by allowing you to add as many variables as you like in a similar manner in which you add additional parameters. Here is an example of passing values into your Flash movie using Flashvars:

<script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");   so.addVariable("variable1", "value1");   so.addVariable("variable2", "value2");   so.addVariable("variable3", "value3");   so.write("flashcontent");</script>

Once this is done, all of the variables you pass in will be available immediately inside the Flash movie. Just access them as you would any variable on the _root timeline.

The SWFObject script also comes with an extra function which allows you to pull variable values from the url string. An example is you have a url that looks like this: http://www.example.com/page.html?variable1=value1&variable2=value2. Using the function getQueryParamValue() you can easily pull these values from the url and then pass them into your Flash movie. Here is an example, we'll assume that the url looks like the above example:

<script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");   so.addVariable("variable1", getQueryParamValue("variable1"));   so.addVariable("variable2", getQueryParamValue("variable2"));   so.write("flashcontent");</script>

The getQueryParamValue() function also supports reading variables from the location.hash, as used sometimes when deep linking into your Flash applications. For an example of how deep linking to your Flash movies using the location.hash variable, check out this demo of Slideshow Pro, which uses the SWFObject embed.

Using Express Install with SWFObject

SWFObject has full support for the Adobe Flash Player Express Install feature. Your users never have to leave your site to upgrade their player.

To use ExpressInstall, you must first upload the expressinstall.swf to your web server. Then, use the useExpressInstall method to specify the path to your expressinstall.swf. If no path is specified, SWFObject will look in the same folder as the current HTML page.

<script type="text/javascript">	   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "8", "#336699");	   so.useExpressInstall('expressinstall.swf');	   so.write("flashcontent");	</script>

If you want to see ExpressInstall in action, you can install Flash player 7 (or 6.0.65) and visit this page.

If you wish to customize the Express Install feature, the source code to the expressinstall.swf is included with SWFObject.

If your Flash movie is in a popup window, or you wish to redirect the user to a different location after they complete the ExpressInstall update, you can use the xiRedirectUrl attribute to redirect the user back to your landing page instead of the actual page with your Flash movie.

<script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "8", "#336699");   so.useExpressInstall('expressinstall.swf');   so.setAttribute('xiRedirectUrl', 'http://www.example.com/upgradefinished.html'); // must be the absolute URL to your site   so.write("flashcontent");</script>

Download

SWFObject is released under the MIT License. This means (basically) that you can use it for whatever you want with no restrictions.

Download SWFObject 1.5 - Zip file, includes swfobject.js and the example html templates below.

Or, if you are more of a hands on type, you can view my example pages:

* Pages are sent as text/html, not application/xhtml+xml.

Need help with SWFObject? Try asking for help in the SWFObject forum!

Why it's is better than the rest

Over the years there have been many methods to detect Flash player versions and embed Flash movies into HTML documents. This section will take a look at each of the most popular methods and point out the problems with each.

1) The default Adobe provided embed

Everyone knows the default Adobe provided Flash embed. It consists of an Object tag with an Embed tag placed inside as a fallback mechanism. This is the most popular Flash embed method and is the default choice when publishing your Flash movie from the Adobe Flash IDE. This is the most compatible way to embed a Flash movie, and will work in the widest range of browsers. Here is a sample of the default Flash embed code:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"    codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"    width="550" height="400" id="Untitled-1" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="mymovie.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550"    height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"    type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /></object>

While this is the most common method of embedding your Flash movies, it does have a few issues.

  • There is noplug-in detection. - With no plug-in detection, users may see broken or no content, and if there is no plug-in installed at all, they will either get the 'ActiveX install' dialog box on IE —a box many users now fear because of rampant spyware and malware— or the 'strange puzzle piece' box in Mozilla based browsers. Neither of these plug-in install systems are very user friendly, and usually don't explain themselves very well as to what exactly a user is installing.
  • With changes from the Eolas patent dispute, users will have to first click on your Flash content to 'activate' it before interacting with it. More info here.
  • It is not valid HTML or XHTML - There is no such thing as an embed tag in any version of HTML or XHTML. However, since many browsers handle object tags differently (or not at all, or the implementation is too buggy), the embed tag was needed as a fallback mechanism.

2) Object tag only / Flash satay

This method gained popularity after the A List Apart article came out back in 2002. Here are two examples of 'object tag only' embedding and Flash satay:

'Object tag only'

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"   codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"   width="300" height="120"> <param name="movie" value="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf">  <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <!--[if !IE]> <--> <object data="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf"		 width="300" height="120" type="application/x-shockwave-flash">  <param name="quality" value="high">  <param name="bgcolor" value="#FFFFFF">  <param name="pluginurl" value="http://www.adobe.com/go/getflashplayer">  FAIL (the browser should render some flash content, not this). </object> <!--> <![endif]--></object>

Flash satay

<object type="application/x-shockwave-flashdata="c.swf?path=movie.swf" width="400" height="300"><param name="movie" value="c.swf?path=movie.swf" /><img src="noflash.gif" width="200" height="100" alt="" /></object>
  • Accessibility issues. - Using Flash Satay, some screen readers (like JAWS) will ignore your Flash content.
  • With changes from the Eolas patent dispute, users will have to first click on your Flash content to 'activate' it before interacting with it. More info here.
  • There is noplug-in detection. - Same as above - With no plug-in detection, users may see broken or no content. When the Flash player encounters a Flash movie embedded in a page, it will try to play it no matter what the version is. So if you have Flash player 6 installed, and encounter a Flash 7 movie, your plug-in will try to play it, possibly causing odd behavior.
  • Some methods of Flash satay don't stream the Flash movie to the player - So this method may require 'holder' swf movies that your movie is loaded in to. This makes passing variables from FlashVars parameters a hassle and make it a pain to maintain Flash content as you now have twice as many swf files floating around your web server.
  • Older Safari versions ignore param tags - Up until version 2.0 (on Tiger) or 1.3 (on Panther) and possibly 1.2.8 (pre Panther) Safari would completely ignore the param tag. This meant that if you tried to set other options using them, like Flashvars or Align, Salign, etc. Safari would not see those values.

3) Detection: The 'small flash movie on the index page' method

This method involves placing a single Flash movie on the index page of your website, and this Flash movie then checks the $version variable in the Flash player and redirects the user either to the Flash content inside the site, or an upgrade page.

Problems with this method include:

  • There is noplug-in detection on internal pages. - If a user sends an internal url to another user, that new user bypasses the Flash detection on the index page.
  • With changes from the Eolas patent dispute, users will have to first click on your Flash content to 'activate' it before interacting with it. More info here.
  • It is not valid HTML or XHTML - Again, the embed tag required to place the Flash movies in your HTML documents will not validate.
  • Hurts your search engine ranking - Since you are now using your index page as an empty Flash detection page, when people search for you in Google or other search engines, often the description text ends up showing up as "Detecting Flash Player" or even no description at all. This is a huge waste of prime website real estate that should be used to promote your company or products. Often times developers will not include a link to the other content in the site (since the Flash movie contains the links) so the rest of the site won't be indexed either.

4) The Adobe Flash Player Detection Kit

Adobe has done an excellent job with the new Flash 8 detection kit - but not quite excellent enough. It contains two different ways to detect the Flash plug-in:

  1. The classic "small Flash movie on the index page" - (See above)
  2. Javascript - Yes, that's right, Flash now includes a Javascript plug-in detection template. Unfortunately, it's very not very user friendly at all, mixing Javascript, VBscript, and all your HTML all into one page. This has many of the drawbacks as past Javascript detection and embed techniques, and doesn't do anything to make your life easier as a Flash/HTML developer. And it doesn't validate as XHTML or HTML (If you care about that sort of thing).

I've put together a more in-depth look at the Adobe detection kit over here.

5) Use raw Javascript to detect and embed your movies

It's hard to critique this method as it usually varies from site to site. However, most Javascript Flash detection schemes I have come across generally suffer from the same faults:

  • Unreliable plug-in Detection - Often the detection only works with current versions of the Flash player, and needs to be manually updated as new versions of the plug-in are released.
  • Adds more code to the page - Making it even harder to update or change your content. This method also makes it harder for designers or other people that may be working with your pages to change or add Flash movies.
  • An overly complicated solution - Many Flash embedding scripts can grow to large file sizes or be overly complicated. SWFObject is designed to be simple and small.

FAQ

SWFObject now has a forum for people looking for help implementing it. Please send all support requests to the forum, there are plenty of capable people there to help you.

Q. What is this Internet Explorer 'Active Content Update' I've been hearing about, and does SWFObject fix it?
A. The short answer is yes, SWFObject will fix the 'Activating Active Content' issues in the new IE Update. You read more about the subject here.
Q. Why does my alternate content flicker quickly on the screen before my Flash content loads? (only happens in IE on Windows)
A. This seems to be related to the FOUC bug. It can be fixed by adding a link tag in the head of your document to any stylesheet.
Q. Can I use SWFObject to embed more than one SWF on an HTML page?
A. Yes. Just give each SWF and each div or HTML element that will hold a SWF a unique Id.
Q. How can I make SWFObject work in Netscape 4.x?
A. This comment has some example code that you can use to make SWFObject work in Netscape 4.x.
Q. Can I use SWFObject with my Blog?
A. Yes, there are a couple of plug-ins for Wordpress and Textpattern here.
Q. Can I use SWFObject with Dreamweaver or Golive?
A. There is a Dreamweaver extension available at CommunityMX. There is currently no Golive extension, but if you would like to make one, I'll gladly link it up from this page. You should be able to use the SWFObject script without an extension, but the extension should make it much easier.
Q. Is this page available in other languages?
A. Here is a French translation of parts of this page, a Swedish translation, Italian, German, Spanish, Polish (partial), Japanese, Portuguese (Brazilian), Chinese, and here is a Finnish translation. If anyone would like to translate this page into other languages, I would be happy to post a link here.
Q. Is there a publishing template I can use with Flash?
A. Yes. You can download one from the Fluid Flash Blog.
Q. Who uses SWFObject/FlashObject?
A. Websites like The Library of Congress, Adobe.com (A slightly customized version), Amazon.com, Windows.com, YouTube.com, skype.com, Snapple.com, it is included with Adobe Photoshop (in the Flash web photo galleries) and thousands of others. Colin Moock also suggests it as an alternative to the Adobe Detection kit.

Still having problems? Try reading through the previous SWFObject posts [1, 2, 3] on this blog (especially the comments), as many common questions have been covered there.

Thanks

Toby Boudreaux gave me tons of advice, helped make the code for SWFObject much cleaner and name spaced it all at the same time.

참조 : http://blog.deconcept.com/swfobject/


Multiple IIS Virtual Servers on XP Pro(MS윈도우 XP Pro에서의 다중 iis 사용방법) 웹개발

When Microsoft released Windows XP Pro they pushed it as the next development platform, superceding Windows 2000 Workstation. The reality, however, is that it is nothing more than a very slightly enhanced version of Windows XP Home edition. One of the major development features that didn't make it from 2000 to XP was the ability to host multiple virtual Web servers on a single machine. Essentially, Microsoft disabled (hid) the menu item in the IIS Management Console that allows you create a new virtual server.

As a developer who builds and maintains multiple Web sites for friends, collegues, other (non-competitive) companies, this is extremely annoying! Although you can theoretically create a new Web site under a new virtual root (a child path under your default Web server) this presents a big problem: the new Web site would have to be aware of this path offset when referring to itself with absolute or relative paths. The advantage of having a new and independent virtual server is that it only recognizes its own virtual roots and paths.

The Secret

However, there is an alternative, albeit slightly cumbersome. The ability to create multiple virtual servers is only hidden, not stripped out completely.

While you cannot create a new virtual servers through the MMC, you can still use the administrative scripts that come with IIS, specifically, the adsutil.vbs script.

IIS virtual servers are defined in the IIS metabase as numbered entries under the W3SVC key. For example, the default Web site is named W3SVC/1; the second site created would be named W3SVC/2; and so on.

So, to create a second virtual server, open a command window and type:

C:\Inetpub\AdminScripts> adsutil.vbs create_vserv W3SVC/2
C:\Inetpub\AdminScripts> adsutil.vbs copy W3SVC/1 W3SVC/2

The first command creates a new virtual server in the IIS metabase.

The second command copies all the necessary meta data from your default Web site to the new Web site to make it work properly.

Rename It!

When you copy the meta data from an old site to a new site, the new site will inherit all of the old attributes, including the name. So you'll want to immediately rename the new virtual server. Open MMC and find the new entry - they will be listed in the sequence in which they were created (W3SVC/1, W3SVC/2, ....).

You'll also need to change other settings, such as the home directory. I typically like to create a new folder directly under the C:\InetPub folder for each new virtual server.

The Caveat!

When you open the IIS MMC, you'll notice a red icon next to the new virtual server and and error message in the comments column. This is OK. What this means is that inetinfo.exe attempted to start up this second virtual server.

The caveat in this whole thing is that, while you can create multiple virtual Web servers on a single Windows XP Pro machine, you can only run one at a time. Unfortunately, I (and apparently no one else) can find a way to work around this. Even applying a unique port number to each virtual server doesn't seem to work.

Toggling

But it's not so bad... All you have to do is open the IIS MMC, stop the currently running virtual server and start the one you want.

Of course, this means that when you switch between virtual servers, any active sessions on the virtual server you just shutdown will be lost. But the original intention was to be able to develop multiple Web sites, without having to worry about absolute or relative URL paths throughout the source code.

Deleting and Enumerating

You can also delete a virtual server that you previously created using this technique. The adsutil.vbs script includes a delete command:

C:\Inetpub\AdminScripts> adsutil.vbs delete W3SVC/2

Keep in mind, after deleting a virtual server, that you can't rely on the number of virtual servers shown in the IIS console to indicate the next available virtual server id number. For example, if you've created server 1, 2 and 3 and then delete server 2, the IIS console will only show two servers, but you cannot create another W3SVC/3 because that one already exists.

But you can enumerate the existing virtual servers using this adsutil.vbs syntax:

C:\Inetpub\AdminScripts> adsutil.vbs enum w3svc /p

The /p qualifier indicates that you only want to view top level paths and not individual parameters. Otherwise, the output will be very long and difficult to understand.


출처 - http://weblogs.asp.net/stevencohn/articles/59782.aspx


[20070804]여름 휴가 - 속초 내설악에서 한장 코닥 P-880



2007년 여름 휴가 기간 중 속초방면 미시령 터널 지나 멀리 펼쳐 보이는 내설악 풍경입니다.

[2007년 6월] 밀리터리소설 동해 영화 & 도서

동해 2
김경진.진병관 지음 / 들녘(코기토)
나의 점수 : ★★★★

최근 우리나라에 실제 도입된 214급 잠수함의 외로운 전투를 그리고 있는 동해는 핵잠을 보유할 수 없는 현실에서 왜 214급(AIP장착) 잠수함이 필요한 지를 극명히 보여준다.
한국의 214급 잠수함 장문휴함을 파괴하기 위한 미,일,소,중 의 각각 독립적인 잠수함대와의 숨막히는 혈전...
그 결과는..!!

사실 가장 한국적인 전투무기는 잠수함이 아닐 지 생각해 본다. 삼면이 바다로 둘러쌓인 환경은 둘째치더라도 현재 한국이 지닌 전투적 능력에서 가격대비 효과가 가장 뛰어난 무기 체계라 할 것이다.
우린 세계 열강에 둘러쌓여 있다.북쪽으로는 소련이, 서쪽으로는 중국이, 동/남쪽으로는 일본이...게다가 미국이.
이런 강대국들에게 둘어쌓여 한국이 어떤군사무기로 결정적 국지전을 수행할 수 있을까?

이제 한국에 실제로 도입된 214급 잠수함의 그 처절한 전투속으로 들어가 보는 것은 어떨가?

P.S - AIP란 디젤 잠수함의 최대 단점인 작전지속능력을 현격하게 높여주는 공기불필요장치이다.
디젤 잠수함은 축전지를 이용하여 기동을 하는 기체로서 해당 축전지를 충전하기 위해서는 반듯이 스노클(수면위로 부상하여 디젤 터빈을 돌려 얻는 운동에너지를 이용하여 전지를 충전하는것인데 터빈을 돌리기 위해 반듯이 산소가 필요하다)을 실시해야 하는데 이 스노클이라는 것이 잠수함에게는 최대 치명타가 된다.
물속에서 잠항을 하여 은밀히 적에게 다가가고 적의 접근을 1차적으로 차단해야할 잠수함이 수면위에 노출되어 있다면 무슨 의미가 있을까? 현재 한국에서 운용중인 209급은 연속 작전시간이 약 3일정도이다. 하지만 새로 도입된 214급은 최대 2주까지 단독 작전 수행능력을 가진다. 즉, 한국이 독자적으로 태평양까지 단독작전을 수행할 수 있다는 말이다. 다만, 주변 환경이 그에 뒷바침 된다는 전제조건이 따르기는 하지만..
이제 한국 KDX-2 사업이 정상궤도에 오르고 있다고 봐도 될 듯하다.


괌 PIC 리조트에서 바라본 야경 코닥 P-880



처음으로 나가본 해외여행이었습니다.
애들 낳고 사느라 바쁘단 핑계로 공부한단 핑계로 여행도 변변히 못 다녀보고
어렵사리 나갔다 왔네요.
그런데, 괌에 놀러온 언니들은 하나같이 다들 옷을 많이 껴입네요 -_-;
아내에게 이 얘기 했다가 맞아 죽을 뻔 했습니다 ㅋ

[2007년 4월] 살육에 이르는 병 - 특별한 트릭장치는 없다. 하지만 모두 속는다 영화 & 도서

살육에 이르는 병
아비코 다케마루 지음, 권일영 옮김 / 시공사
나의 점수 : ★★★

19금 딱지가 붙어 있어서 지하철에 읽기 뻘쭘했지만 나름대로 이틀만에 다 읽어버린 책이다.
일본 추리 신본격의 대표 주자로 불리며 서술형 추리의 대표적인 작가로 불린다. 다른 특별한 트릭 장치보다는 책을 읽는 내내 크로스 되는 시간 구성으로 서술형 트릭에 놀라게 된다.
하지만, 머리나쁜 나로서는 이해하기 난해하다 -_-;

일이 바쁜 관계로 거의 3달간 책을 제대로 못읽었다. 그러다가 아시는 분이 번역하신 책이 나와 읽어버린 책. 마지막은 반전이라기보다는 사기다 -0-
책을 처음으로 뒤적이지만 서술형 트릭이라 그런 지 나로서는 개연성의 여부가 좀 모호했던 것 같다.

대략적으로 보자면
비뚤어진 성에대한 교육(?)이 얼마나 커다란 사회적 질병을 야기할 수 있는가? 라는 큰 테마를 가지고 때론 원색적이고 때론 잔인한 표현도 서슴치 않지만 그럼에도 커다란 거부감 없이 읽을 수 있었다. 하지만, 국내 출간이었다면 판금당했을 것 같은 묘사가 많은 책으로 생각에 생각을 거듭하면 구역질이 날 정도이지만 읽던 그 당시에는 다른 부분들의 서술로 읽을 만 했다.

이 책을 읽고자 한다면
부디 심호흡을 다시 한 번 하고 나는 어떤 변태적 요소라도 모두 이겨낼 수 있다는 마음 가짐을 가지시기를...

아비코 다케마루(我孫子武丸) - 1962년 일본 효고 현에서 태어났다. 교토대학 문학부 철학과에 입학하여 교내 동아리인 '추리소설연구회'에 가입, 같은 동아리에 있던 아야츠지 유키토가 <십각관의 살인>으로 데뷔한 지 2년 뒤인 1989년에 <8의 살인>으로 미스터리 작가로 데뷔했다. 놀라운 결말을 가진 사이코 스릴러 <살육에 이르는 병> 등 소설에서는 본격미스터리를 추구하는 한편, 게임이나 만화 시나리오, TV 드라마 구성 등에서 폭넓은 활약을 펼치고 있다. 대표작으로는 장편 시리즈인 <하야미 3형제>, <인형>, <나의 추리연구>, <부식의 거리> 등이 있다.

권일영- 1958년 서울에서 태어나 동국대 경제학과를 졸업했다. 「여성중앙」 등 월간지와 멀티미디어 관련 기자로 일했다. 2007년 현재 전문 번역가로 활동 중이다. 옮긴 책으로 <성공하는 사람들의 다이어리 활용법>, <게임의 이름은 유괴>, <배틀로얄>, <환야>, <편지>, <바티스타 수술 팀의 영광>, <살육에 이르는 병>, <이름 없는 독> 등이 있다.

[2007년 1월] 13계단 - 가해자? 피해자? 사형은 올바른 형태로 진행되는가? 영화 & 도서

13계단
다카노 가즈아키 지음 / 황금가지
나의 점수 : ★★★★

재미는 있지만 2% 부족한..
끝까지 열심히 읽게 되기는 하지만 다 읽고 나서 뭔가 2% 부족하지 않은가?라는 생각을 했다.
개연성의 부족일 수도 있고, 트릭이 좀 중구난방일 수도 있고..
하지만 재미는 있다.
그래도, 근래에 읽은 추리소설중에서는 중하위를 차지하게 될 듯하다.
다만, 이 책에서 얘기하는 법과 사형에 관한 진지한 물음은 마음을 소용돌이 치게한다.
법은 진정으로 옳은가?
만인에 평등한가?
가해자가 피해자가 되어 살지는 않는가?
피해자가 가해자가 되어 살지는 않는가?
사형제도는 이대로 괜찮은가?
등등..
나도 잘 모르는 답변을 구하고자 노력하지는 않겠다. 다만, 잊어버리지 않고 가슴한 켠에 묻어둘 뿐이다.


==책소개==
사형이 확정된 수감자의 누명을 벗기기 위해 교도관과 전과자가 합심하여 사건을 재조사해 나가는 과정을 그렸다. 제47회 에도가와 란포 상에 심사위원 만장일치로 당선된 소설이자, 역대 수상작 중 최단기간에 100만 부의 판매 기록을 세운 베스트셀러이다.

작가 다카노 가즈아키는 <유령 인명 구조대>로 국내에 처음 소개되었지만, <13계단>이 그의 첫 작품이다. 2001년 일본 추리소설계에 가즈아키의 등장을 알린 이 작품은, 출간 이듬해 일본 '이 미스터리가 최고'목록에 선정되었고, 영화로 제작되어 일본 박스오피스를 석권했다.

사형 집행까지 3개월밖에 남지 않은 시점에, 기억 상실증에 걸려 자신의 범행을 기억하지 못하는 사형수의 무죄를 밝혀 주는 사람에게 거액의 현상금을 지금하겠다는 익명의 의뢰인이 나타난다. 소설은 이 상금을 노리고 사건을 새롭게 수사하는 두 남자의 추리 과정을 박진감 있게 그려나간다.

사형 제도 및 현대 국가의 범죄 관리 시스템에 의문을 던지는 작품이다. 가장 기본적인 사건 처리 단계부터 법무부 장관의 최종 집행 결정에 이르기까지, 사형이 진행되는 과정을 묘사하며 사형 제도를 간접적으로, 그러나 생생하게 체험시켜 준다.

[2007년 1월] 벚꽃지는 계절에 그대를 그리워하네 영화 & 도서

벚꽃지는 계절에 그대를 그리워하네
우타노 쇼고 지음 / 한즈미디어(한스미디어)
나의 점수 : ★★★★★

책의 종결부분에 다다랐을 때의 감정이 아직도 생각이 난다.
사실 책을 잘 못 읽은 줄 알고 앞페이지로 책을 뒤적 뒤적 넘겼을 정도의 반전은 가히 충격적이랄까?
따지고 보면 대단한 내용도 없다'라고 할 수도 있지만 그 기막힌 복선과 반전은 너무도 신기했다.
단순히, 누가 범인이겠지라는 것은 이 책에서는 중요하지 않은 문제인 것 같다.
네타를 피하기 위해 자세한 내용을 적을 수는 없으나 책을 읽을 때 다시 한 번 곰곰히 되씹어보기를 권한다.


2004년 제57회 일본추리작가협회상, 2004년 제4회 본격 미스터리 대상, 2004년 '이 미스터리가 대단하다!' 1위, 2004년 주간문춘 미스터리 베스트 10 2위... 그야말로 화려한 수상 경력을 자랑하는 일본 추리소설 한 편이 출간됐다. 제목 <벚꽃지는 계절에 그대를 그리워하네>.

자유분방한 성격의 프리터 나루세는 지하철에서 자살을 시도하던 한 여자-사쿠라를 우연히 구하게 된다. 그녀를 까맣게 잊고 지내던 그는 어느 날 한 통의 전화를 받는다. 그것이 그녀와의 질긴 인연의 시작인 줄은 꿈에도 모른 채. 한편 고등학교 후배의 부탁으로 뺑소니 사건의 진범을 찾는 일을 얼떨결에 맡게 된 그는 얼치기 탐정 흉내를 내며 보험 사기 조직의 뒤를 캐다가 심각한 위기에 빠지고 마는데...

현대 사회의 어두운 일면을 흥미진진하게 그려나가는 동시에, 젊은 사람들이 잊고 지내기 쉬운 '어떤' 사실을 깨닫게 하는 멋진 추리소설이다. 마지막 부분을 읽을 때에야 추리소설에 어울리지 않는 낭만적인 책 제목이 어떤 의미인지 비로소 알게 된다. 독자의 뒤통수를 이렇게도 칠 수 있구나 싶은, 독창적인 반전이 몹시 인상적인 작품.

드디어 나도 디카족 코닥 P-880

인터넷 모쇼핑몰에서 MD의 실수로 정상가격보다 30만원 저렴하게 디카를 장만했습니다.
하이엔드급의 코닥 EasyShare P-880(사진참조)
카메라는 항상 똑딱이만 만져봤기에 메뉴얼 정독만 해도 벌써 머리가 아프군요 ㅎㅎ
그래도 이제 시작이라는 마음으로 열심히 만져봐야겠네요.



이건 이걸로 촬영한 첫 사진입니다.
아들녀석입니다.



흠 포스가 장난이 아니군 ㅎㅎ

1 2 3