반응형
원본은 아래 링크로
http://www.codeproject.com/KB/scripting/javascript-gotchas.aspx#plusoperator
코드프로젝트에서 긁어왔음


Introduction

This article is an introduction to the weird side of JavaScript, and it definitely has a weird side! Software developers who usually write code in another language will find a lot of intriguing "features" when they begin to write code in the world's most widely used language. Hopefully even seasoned JavaScript developers will find some new gotchas in this article that they can watch out for. Enjoy!

Contents

Functions and operators

Double-equals

The == operator performs a comparison with type coercion. This means that you can compare objects of two different types and it will attempt to convert them to the same type before performing a comparison. For example:

"1" == 1 //true

However, this is very often misleading, and never needed. In the case above, you can convert the String to a Number and use the type-sensitive triple-equals:

Number("1") === 1; //true

Or, better still, ensure your operands are of the correct type in the first place.

Due to its type-coercing behaviour, double-equals frequently breaks the transitivity rule, which is a little bit scary:

"" == 0 //true - empty string is coerced to Number 0.
0 == "0" //true - Number 0 is coerced to String "0"
"" == "0" //false - operands are both String so no coercion is done.

The above comparisons will all yield false when triple-equals is used.

parseInt doesn't assume base-10

If you omit the second parameter in a call to parseInt, then the base will be determined according to the following rules:

  • By default, assume a radix 10.
  • If the number begins with 0x then assume radix 16.
  • If the number begins with 0 then assume radix 8.

The common mistake is to allow a user-input or suchlike which begins with a 0. Radix 8 (octal) is then used and we see this effect:

parseInt("8"); //8
parseInt("08"); //0

Therefore, always include the second parameter:

parseInt("8", 10); //8
parseInt("08", 10); //8

ECMAScript5 side note: ES5 no longer includes the radix-8 assumption. Additionally, omission of the second parameter helpfully raises a JSLint warning.

String replace

The string replace function only replaces the first match, not all matches as you may expect.

"bob".replace("b", "x"); // "xob"
"bob".replace(/b/, "x"); // "xob" (regular expression version)

To replace all matches, you must use a Regular Expression, and add the global modifier to it:

"bob".replace(/b/g, "x"); // "xox"
"bob".replace(new RegExp("b", "g"), "x"); // "xox" (alternate explicit RegExp)

The global modifier ensures that the replacement does not stop after the first match.

The "+" operator both adds and concatenates

PHP, another loosely typed language, has the '.' operator for string concatenation. JavaScript does not - so "a + b" always results in concatenation when either of the operands is a string. This might catch you out if you're trying to add a number to, say, the contents of an input element (which will be a string), so you need to first cast to Number:

1 + document.getElementById("inputElem").value; // Concatenates
1 + Number(document.getElementById("inputElem").value); // Adds

Note that the subtract operator attempts to convert the operands to Number:

"3" - "1"; // 2

Although if you're trying to subtract one string from another then there's probably something wrong with your logic.

Sometimes people try to convert a Number to a string by concatenating with the empty string:

3 + ""; // "3"

But that's not very nice, so use String(3) instead.

typeof

Returns the type of an instance of a fundamental type. Array is actually not a fundamental type, so the typeof an Array object is Object:

typeof {} === "object" //true
typeof "" === "string" //true
typeof [] === "array"; //false

You will get the same result (typeof = "object") when you use this operator against instances of your own objects.

As a side note, "typeof null" yields "object", which is a bit weird.

instanceof

Returns whether the object (or an object in its prototype chain) was constructed using the specified constructor, which is useful when attempting to check the type of one of your own defined object types. However, it is pretty misleading if you create an instance of one of the built-in types using literal syntax:

"hello" instanceof String; //false
new String("hello") instanceof String; //true

Since Array isn't really one of the built-in types (it just pretends to be - hence typeof doesn't work as expected), instanceof does work as expected:

["item1", "item2"] instanceof Array;  //true
new Array("item1", "item2") instanceof Array;  //true

Phew! So in summary, if you want to test the type of a Boolean, String, Number, or Function, you can use typeof. For anything else, you can use instanceof.

Oh, one more thing. Within a function, there is a predefined variable, "arguments", which gives an array of arguments passed to the function. However, it's not really an array, it's an array-like object with a length property, and properties from 0 - length. Pretty strange...but you can convert it to a real array using this common trick:

var args = Array.prototype.slice.call(arguments, 0);

The same goes for NodeList objects returned by DOM calls such as getElementsByTagName - they can also be converted to proper arrays using the above code.

eval

eval interprets a string as code but its use is generally frowned upon. It's slow - when JavaScript is loaded into the browser, it gets compiled into native code; however, every time an eval statement is reached during execution, the compilation engine has to be started up all over again, and that is quite expensive. It looks quite ugly, too, because in most cases it is misused. Additionally, the code being eval'd is executed in the current scope, so it can modify local variables and add stuff to your scope which may be unintended.

Parsing JSON is a common usage; normally people will use "var obj = eval(jsonText);", however almost all browsers now support the native JSON object which you can use instead: "var obj = JSON.parse(jsonText);". There is also the JSON.stringify function for the opposite use. Even better, you can use the jQuery.parseJSON function which will always work.

The setTimeout and setInterval functions can take a string as its first parameter which will be interpreted, so that shouldn't be done either. Use an actual function as that parameter.

Finally, the Function constructor is much the same as eval - the only difference being that it will be executed in the global context.

with

The with statement gives you a shorthand for accessing the properties of an object, and there are conflicting views on whether it should be used. Douglas Crockford doesn't like it. John Resig finds a number of clever uses for it in his book, but also concedes that it has a performance hit and can be a little confusing. Looking at a with block in isolation, it isn't possible to tell exactly what is happening. For example:

with (obj) {
    bob = "mmm";
    eric = 123;
}

Did I just modify a local variable called "bob", or did I set obj.bob? Well, if obj.bob is already defined, then it is reset to "mmm". Otherwise, if there is another bob variable in scope, it is changed. Otherwise the global variable bob is set. In the end, it is just clearer to write exactly what you mean to do.

obj.bob = "mmm";
obj.eric = 123;

ECMAScript5 side note: ES5 strict mode will not support the with statement.

Types and constructors

Constructing built-in types with the 'new' keyword

JavaScript has the types Object, Array, Boolean, Number, String, and Function. Each have their own literal syntax and so the explicit constructor is never required.

Explicit (bad) Literal (good)
var a = new Object();
a.greet = "hello";
var a = { greet: "hello" };
var b = new Boolean(true); var b = true;
var c = new Array("one", "two"); var c = ["one", "two"];
var d = new String("hello"); var d = "hello"
var e = new Function("greeting", "alert(greeting);"); var e = function(greeting) { alert(greeting); };

However, if you use the new keyword to construct one of these types, what you actually get is an object of type Object that inherits the prototype of the type you want to construct (the exception is Function). So although you can construct a Number using the new keyword, it'll be of type Object;

typeof new Number(123); // "object"
typeof Number(123); // "number"
typeof 123; // "number"

The third option, the literal syntax, should always be used when constructing one of these types to avoid any confusion.

Constructing anything else without the 'new' keyword

If you write your own constructor function and forget to include the new keyword, then bad things happen:

var Car = function(colour) {
    this.colour = colour;
};

var aCar = new Car("blue");
console.log(aCar.colour); // "blue"

var bCar = Car("blue");
console.log(bCar.colour); // error
console.log(window.colour); //"blue"

Calling a function with the new keyword creates a new object and then calls the function with that new object as its context. The object is then returned. Conversely, invoking a function without 'new' will result in the context being the global object if that function is not invoked on an object (which it won't be anyway if it's used as a constructor!)

The danger in accidentally forgetting to include 'new' means that a number of alternative object-constructing patterns have emerged that completely remove the requirement for this keyword, although that's beyond the scope of this article, so I suggest some further reading!

There is no Integer

Numerical calculations are comparatively slow because there is no Integer type, only Number - and Number is an IEEE floating point double-precision (64 bit) type. This means that Number exhibits the floating point rounding error:

0.1 + 0.2 === 0.3 //false

Since there's no distinction between integers and floats, unlike C# or Java, this is true:

0.0 === 0; //true

Finally a Number puzzle. How can you achieve the following?

a === b; //true
1/a === 1/b; //false

The answer is that the specification of Number allows for both positive and negative zero values. Positive zero equals negative zero, but positive infinity does not equal negative infinity:

var a = 0 * 1; // This simple sum gives 0
var b = 0 * -1; // This simple sum gives -0 (you could also just
                // do "b = -0" but why would you do that?)
a === b; //true: 0 equals -0
1/a === 1/b; //false: Infinity does not equal -Infinity

Scope

No block scope

As you may have noticed in the previous point, there is no concept of block scoping, only functional scoping. Try the following piece of code:

for(var i=0; i<10; i++) {
    console.log(i);
}
var i;
console.log(i); // 10

When i is declared in the for loop, it remains in scope after the loop exits. So the final call to console.log will output 10. There is a JSLint warning which aims to avoid this confusion: forcing all variables to be declared at the start of a function so that it is obvious what is happening.

It is possible to create a scope by writing an immediately-executing function:

(function (){
    for(var i=0; i<10; i++) {
        console.log(i);
    }
}());
var i;
console.log(i); // undefined

There is another twist which becomes apparent when you declare a var before the inner function, and re-declare it within that function. Look at this example:

var x = 3;
(function (){
    console.log(x + 2); // 5
    x = 0; //No var declaration
}());

However, if you re-declare x as a var in the inner function, there is strange behaviour:

var x = 3;
(function (){
    console.log(x + 2); //NaN - x is not defined
    var x = 0; //var declaration
}());

This is because "x" is redefined inside the function. This means that the interpreter moves the var statements to the top of the function and we end up executing this:

var x = 3;
(function (){
    var x;
    console.log(x + 2); //NaN - x is not defined
    x = 0;
}());

Which makes perfect sense!

Global variables

JavaScript has a global scope which you should use sparingly by namespacing your code. Global variables add a performance hit to your application, since when you access them, the runtime has to step up through each scope until it finds them. They can be accessed and modified either intentionally or by accident by your own code and other libraries. This leads to another, more serious issue - cross-site scripting. If a bad person figures out how to execute some code on your page, then they can also easily interfere with your application itself by modifying global variables. Inexperienced developers constantly add variables to the global scope by accident, and there are a few examples of how that happens throughout this article.

I have seen the following code which attempts to declare two local variables with the same value:

var a = b = 3;

This correctly results in a = 3 and b = 3, however a is in local scope and b is in global scope. "b = 3" is executed first, and the result of that global operation, 3, is then assigned to the local var a.

This code has the desired effect of declaring two local variables with value 3:

var a = 3,
b = a;

'this' and inner functions

The 'this' keyword always refers to the object on which the current function was called. However, if the function is not invoked on an object, such as is the case with inner functions, then 'this' is set to the global object (window).

var obj = {
    doSomething: function () {
        var a = "bob";
        console.log(this); // obj
        (function () {
            console.log(this); // window - "this" is reset
            console.log(a); // "bob" - still in scope
        }());
    }
};
obj.doSomething();

However, we have closures in JavaScript so we can just take a reference to 'this' if we want to refer to it in the inner function.

ECMAScript5 side note: ES5 strict mode introduces a change to this functionality whereby 'this' will be undefined instead of being set to the global object.

Miscellaneous

The absence of data: 'null' and 'undefined'

There are two object states that represent the lack of a value, null and undefined. This is pretty confusing for a programmer coming from another language like C#. You might expect the following to be true:

var a;
a === null; //false 
a === undefined; //true

'a' is in fact undefined (although if you do a double-equals comparison with null then it will be true, but that is just another mistake that results in the code "seeming" to work).

If you want to check that a variable actually has a value, and also follow the rule of never using double-equals, you need to do the following:

if(a !== null && a !== undefined) {
    ...
}

"Aha!", you might say. null and undefined are both falsy (i.e., coerced to false) so you can do this:

if(a) {
    ...
}

But, of course, zero is also falsy, and so is the empty string. If one of those is a valid value for 'a', then you will have to use the former, more verbose option. The shorter option can always be used for objects, arrays, and booleans.

Redefining undefined

That's right, you can redefine undefined, as it isn't a reserved word:

undefined = "surprise!";

However, you can get it back by assigning an undefined variable or using the "void" operator (which is otherwise pretty useless):

undefined = void 0;

...and that's why the first line of the jQuery library is:

(function ( window, undefined ) {
    ... // jQuery library!
}(window));

That function is called with a single parameter ensuring that the second parameter, undefined, is in fact undefined.

By the way, you can't redefine null - but you can redefine NaN, Infinity, and the constructor functions for the built-in types. Try this:

Array = function (){ alert("hello!"); }
var a = new Array();

Of course, you should be using the literal syntax to declare an Array anyway.

Optional semicolons

Semicolons are optional so that it's easier for beginners to write, but it's pretty yucky to leave them out and doesn't really make anything easier for anyone. The result is that when the interpreter gets an error, it backtracks and tries to guess where the semicolon is supposed to go.

Here is a classic example, courtesy of Douglas Crockford:

return
{
    a: "hello"
};

The above code does not return an object, it returns undefined - and no error is thrown. A semicolon is automatically inserted immediately after the return statement. The remainder of the code is perfectly valid, even if it does not do anything, and this should be evidence enough that in JavaScript, an opening curly brace should go at the end of the current line instead of a new line. It isn't just a matter of style! This code returns an object with a single property "a":

return {
    a: "hello"
};

NaN

The type of NaN (Not a Number) is... Number.

typeof NaN === "number" //true

Additionally, NaN compared to anything is false:

NaN === NaN; // false

Since you can't do a NaN comparison, the only way to test whether a number is equal to NaN is with the helper function isNaN.

As a side note, we also have the helper function isFinite, which returns false when one of the operands is NaN or Infinity.

The 'arguments' object

Within a function, you can reference the arguments object to retrieve the list of arguments. The first gotcha is that this object is not an Array but an array-like object (which is an object with a length property, and a value at [length-1]). To convert to a proper array, you can use the array splice function to create an array from the properties in arguments:

(function(){
console.log(arguments instanceof Array); // false 
var argsArray = Array.prototype.slice.call(arguments);
console.log(argsArray instanceof Array); // true 
}());

The second gotcha is that when a function has explicit arguments in its signature, they can be reassigned and the arguments object will also be changed. This indicates that the arguments object points to the variables themselves as opposed to their values; you can't rely on arguments to give you their original values.

(function(a){
    alert(arguments[0]); //1
    a = 2;
    alert(arguments[0]); //2
}(1));

In ES5 strict mode, arguments will definitely point to the original input argument values, as opposed to their current values.

The end!

So that concludes my list of gotchas. I am sure there are more, and I look forward to seeing lots of insightful comments!

PS - I do actually like JavaScript.





덤) 일단 원본 그대로 긁어왔는데 상당히 유용한 정보인거 같다. 차후에 천천히 한글화 해봐야지
반응형
반응형


Q : 상점에서 구입한 검으로 애쉬는 무엇을 하는 걸까요?

사이트에 가서 보면 밑에

Arrows? Real men use SWORDS!(활? 진정한 남자라면 검을 사용하지!)

라고 나와있다 ㅋㅋㅋㅋ

아하!!!!!





<궁 나가리 된 이즈리얼 ㅋㅋ>




티모는 어떻게 장님이 리신에게 블라인드를 걸 수 있을까요? 라는 질문에 대한 만화
원본 사이트에 가면 밑에 조그맣게 (리신은 정말 멋진 남자야) 라고 되어 있다 ㅋㅋㅋㅋ
리신 설정 쩌는데 글고보니


한창 빠져있는 게임 리그 오브 레전드(LOL) 관련 짧은 카툰이 올라오는 외국사이트가 있다.
캐릭터 그림들도 귀엽고 내용도 기발해서 재밌게 보는 곳이다.
그런데, 업데이트가 그닥 많지 않은게 아쉬운 곳.
& 영어로 되있으면서도 영어 글자체가 좀 보기 힘들게 지저분한듯하다..(나만그런가-_-;)


더 보시려면 -> 사이트는 이 곳 : http://asktheleague.tumblr.com/

반응형
반응형


유튜브에

Amazing Bass Guitar Player! Gustavo Dal Farra

라는 이름으로 올라와 있는 영상. 이 영상 즐겨찾기 해놓고 한번씩 보는데 볼때마다 정말 베이스를 치고 싶게 만드는거 같다.

아~ 정말 베이스 소리 너무 예쁘다T_T

반응형
반응형



작년 9월, 태국에 RCA(Route 66)에 놀러갔다가 우연히 보게된 밴드!
완전 꽂혀버려서 넋을 잃고 공연을 봤었다.
얘네들 다다음에 나온 밴드도 굉장했는데(걔들이 연주실력은 진짜 끝장이었다)
아무래도 보컬이 예뻐서 그랬는지 기억에 더 남는 밴드...

아이퐁에 노래 녹음도 해왔는데 도저히 찾을수가 없었다.
한국와서 여기저기 뒤져서 알아낸결과 Subtention 이라고 판명!!!!

그런데 내가 그날 공연볼때 기억에 남던 음악들은 당췌 찾을수가 없네 T_T

혹시 얘네들에 대해 잘 아시는분 연락좀 T_T



덤) 동남아에서 락밴드 공연들을 이래저래 많이 봤었는데 걔네들도 실력이 상당한 것 같았다. 그리구 참 괜찮은 팀들도 많은듯
반응형
반응형



내가 아이유에 빠져들게 만든 계기가 되었던 뮤직비디오
얼마나 맘에 들었으면 있잖아 베이스도 연습하고 공연때 드럼으로 있잖아 하자고 쫄라서 하기도 하고
이제는 기타로 연습할려고 하는... ㅋㅋㅋㅋㅋ

이때만 해도 이렇게 크게 뜰것이라는 기대는 하지 않았으나, 유튜브등에 기타로 빅뱅의 거짓말등을 치는걸 보고
'호오~ 얘 잘만하면 많이 크겠구나' 라고 생각었는데....ㅎㅎㅎ

아이유 IU


반응형
반응형
* 이 자료는 2012년 1월 19일 요금을 새롭게 업데이트 했습니다~


백수, 좋게 말해서 취업준비생 신분으로 인하여 면접을 보러 가야될 일이 종종 있습니다.

세계적인 불황에다 가뜩이나 일자리가 부족하다는 부산에서 사는지라 서울에 면접보러 가는 일이 종종 있는데요,
그런 와중에 신분이 신분인 만큼 열심히 고속버스, 일반을 타고 다닌답니다.
뭐 딴 이유 다 제쳐두고 가격이 제일 싼게 이유?
게다가 해외여행하면서 하도 힘들게 교통수단을 타고 다닌 일이 많아서(중국에서 28시간동안 입석기차타고, 베트남에서는 48시간 버스타고 등등;;) 몸이 적응이 되어서리 서울까지 가는 4시간 20분은 시간도 아니게 느껴지더군요.


저같이 서울, 부산을 들락날락 거려야 되실 분들이 있을텐데,
그런분에게 조금이나마 참고가 되고자 블로깅 해봅니다.

* 평일은 월, 화, 수, 목,  주말은 금, 토, 일
  모든 요금은 일반요금으로 계산하였습니다.

부산-서울, 서울-부산 탈 것들

비행기
가장 무난한 탈거리입죠. 시간도 대략 50분밖에 걸리지 않습니다. 하지만, 실질적으로 공항까지 가는거리랑 비행기 대기시간을 합친다면 KTX 랑 비슷한 시간이 걸릴 수도 있다는 단점이 있습니다.
김포, 인천 두군데 공항이 이용가능하며 가격은 대한항공이 아시아나보다 비싼 편입니다. 저가항공사는 현재 진에어와 에어부산이 부산->김포 행 항로가 있으며 가격은 KTX 랑 비슷한 수준입니다.

가격은 개인제트기나 헬기가 없는 이상 다른 교통수단에 비해 현재 최고가!


소요시간 : 약 50분

 대한항공
부산->김포 
할인 : 62,400원
                    기본 : 71,900원
                    성수기 : 78,900원
                    초과수하물요금(Kg당) - 2,150원
부산->인천 
평일, 주말 : 78,900원
                   
초과수하물요금(Kg당) - 2,360원
 아시아나
부산->김포 할인 : 55,200원
                   기본 : 67,400원
                  성수기 : 73,900원
                  초과수하물요금(Kg당) - 1,920원
부산->인천 평일, 주말 : 78,400원
                  초과수하물요금(Kg당) - 2,350원
진에어
부산->김포 :2009년도에 없어짐
 에어부산
부산->김포 평일 : 52,400원
     주말 : 64,000원
                 성수기(홈피 참고) : 70,200원
                 초과수하물요금(Kg당) - 1,920원

항공사 이름 클릭시 각 항공사 홈페이지로 이동합니다.
* 공항세 별도 (4,000원. 인천공항은 5,000원)

기차
가장 무난하고, 그래서 가장 많은 분들께서 사용하시는게 바로 이 기차입니다. 기차는 타 교통수단보다 편하다는 장점이 있습니다.
첫째, 흔들림이 적습니다. 이게 가장 큰 장점이죠. 멀미에 약하신 분들도 기차는 안심!
둘째, 화장실을 언제든지 사용할 수 있습니다. 버스같은 경우 중간에 갑자기 볼일을 보고 싶을 때 미친듯이 참으신 기억들 한 두번쯤은 있으실 겁니다-_-;;
셋째, 역이 시내랑 가깝다. 뭐 아니라고 생각하시는 분들도 있겠지만, 우선 지하철 있는 도시에서는 항상 역세권으로, 처음 가는 동네에서 지하철을 이용해서 안심하고 이동을 하실 수 있습니다.

서울과 부산, 경부선을 오가는 기차는 총 3종류인데요, 바로 KTX, 새마을, 무궁화 호가 있습니다. 오래전 통일호가 있었지만, 사라지고, 그보다 훨~~~씬 오래전 비둘기호라 불리우는 아이도 있었는데 역시 사라졌죠. 비둘기호의 이동시간은 상상을 초월한다고 들었습니다. ㅎㅎ
부산에서는 부산역, 구포역, 부전역에서 전차량이 운행되며 해운대역에서는 새마을호와 무궁화호가 운행됩니다.
서울에서는 영등포역과 서울역에 새마을, 무궁화호가 정차, KTX는 서울역에만 정차합니다.

그럼 종류별로 한 번 살펴보죠

* 모든 요금 기준은 부산역에서 서울역을 기준으로 했습니다.

1. KTX
아마도 경부선에서 가장 많은 분들이 이용하지 않을까 싶네요. 2시간 50분 정도밖에 걸리지 않는데다가, 동반석을 이용하면 새마을호보다 저렴하게 이용할 수가 있죠. 그런데, 이 동반석이란 녀석을 이용하려면 몇 일 전부터 미리 시람들을 모으시거나 이미 동반석을 구입하셔서 같이 가자고 하시는 분을 찾으셔서 이용하는게 보통입니다. 운좋으면 당일날 표를 구해서 갈 수도 있지만, 그것은 정말 하늘의 별따기. 검색창에 KTX 카풀 or 동반석이라고 치시면 사이트가 많이 나오니 들어가서 확인해 보세요. 이게 안되는 경우에는 역방향 혹 자유석을 통해서 약간의 할인을 받으실 수 있습니다. 그리고 역내 자동 표구입기를 사용하셔도
좌석은 인체 비공학적으로 매우 조밀하게 설치가 되어 있어서 꼬깃꼬깃한 불편함을 느끼실 수 있을겁니다. 그래도 금방가니깐 그 정도야~~~

소요시간 : 약 2시간 50분
요금(2011.12.15)
부산 -> 서울 평일 53,700원
                     주말 57,700원
(*2009년 요금 : 부산 -> 서울 평일 47,900원
                     주말 51,200원) -  많이도 올랐네요;;;

2. 새마을호
KTX 이전에는 최고의 기차로 불리우던 새마을호, 그러나 요즘은 그 인기가 식어가고 있죠. 가격이 그렇게 싼것도 아니고, 그렇다고 아주 빨리가는 것도 아니고. 그나마 KTX 가 들어서기 전에는 4시간 정도의 소요시간으로 나름 메리트가 있었지만, KTX 의 등장과 함께 정차역이 늘어나면서 5시간, 즉, 1시간이나 시간이 더 소비되게 되었습니다.
그러나 새마을호의 장점은 편안한 좌석에 있습니다!
저의 개인적 생각으로는 고속버스 우등과 맘먹을 정도의 편안함을 자랑한다고 할 수 있겠습니다. 고로 편안한 숙면으로 눈뜨면 바로
'이번 정차하실 곳은 서울역, 서울역' 'This station is Seoul, Seoul' '고노 에끼와 서우르, 서우르'
등의 아가씨의 목소리를 기차내에서 들으실 수 있답니다.

소요시간 : 약 5시간
요금(2011.12.15) : 부산->서울 평일 40,700원
                                             주말 42,600원
(*2009년 요금 : 부산->서울 평일 39,300원
                                      주말 41,100원)

3. 무궁화호
저렴한, 하지만 5시간 30분이라는 시간이 걸리는 무궁화호입니다.
하지만, 좌석은 개인적으로 KTX 보다 편하다고 생각합니다. 그리고 무궁화호의 다른 장점은 다양한 역에 선다는 것?
여행을 좋아하시면 일탈적으로 아무데서나 한 번 살포시 내려보는 것도 나름 재미가 있을지도 모르겠습니다. 서울역이나 영등포역 둘 중 한군데에서 내리시면 됩니다.

소요시간 : 약 5시간 40분
요금(2011.12.15) : 부산->서울 평일 27,300원
                                             주말 28,600원
(*2009년 요금 : 부산->서울 평일 26,500원
                                        주말 27,700원)

한국철도청 : http://www.korail.com


고속버스
제가 가장 선호하는 교통수단입니다.
왜? 싸니깐
예약도 없이 항상 고속버스 터미널에서 표를 구입하는데, 간혹가다가 일반버스가 없을 때 우등을 사용하기도 합니다. 평일에는 현장에서 표구매가 쉽지만 주말등에는 반드시 예약을 하시고 이용하는게 좋습니다. 일반과 우등의 가격은 만원차이정도. 우등은 그만큼 편안함과 안락함을 제공해 줍니다. 넓직한 좌석에 편안한 시트. 우왕~ 이용해보신 분들은 압니다.
도착역은 동서울역(강변)과 서울경부역(고속터미널) 두가지가 있습니다.
휴게소에서는 한번 밖에 쉬지 않으니 생리조절 잘 해놓으세요!!! 가장 중요

소요시간 : 약 4시간 20분
(2012년 1월 19일 현재)
요금 :
부산->동서울 (일반 - 22,200원, 우등 - 32,900원, 심야우등 - 36,100원)
          부산->서울경부 (일반 - 22,000원, 우등 - 32,800원, 심야우등 - 36,000원)

(*2009년 요금 : 부산->동서울 (일반 - 21,100원, 우등 - 31,300원, 심야우등 - 34,400원)
                      부산->서울경부 (일반 - 20,900원, 우등 - 31,100원, 심야우등 - 34,200원)

고속버스 예매사이트 http://www.kobus.co.kr
     

승용차
랜덤한 시간과 요금이 나오는 승용차!
빠르게 가면 3시간만에 갈 수도 있고, 늦게 가면 내년에 도착할 수도 있으며, 운전자가 살포시 주무실 때에는 골로 가실 수도 있습니다.

평균적으로 4시간 정도의 시간이 소요됩니다. 혼자서 연비 안좋은 차를 이용하신다면 운전하는 노동력까지 생각했을때 비행기가 차라리 나을 수도 있습니다.

요즘에는 차량카풀 하시는 분들이 많이 생겨서 카풀사이트를 이용해서 서울, 부산을 오가시는 분들이 많이 생기셨습니다.

http://cafe.daum.net/ktxcarpool

개인적으로 추천하는 다음카페입니다. 원래는 KTX 카풀 카페였는데 왼쪽 메뉴에 보시면 자동차카풀이라는 란이 있습니다. 보통 두당 2만원선에서 가격협상이 이루어진다고 합니다. 사실 아직 이용해본 적은 없고 지인에게 들은거라서 자세한 설명은 못하겠네요.

운좋으면 전용자가용처럼 집앞까지 편하게 가실 수도 있습니다.
운이 정말 좋으면 저런 언니야랑 즐겁게 오손도손 놀면서 갈 수도 있다는것!!! 단, 설이나 추석연휴때는 비추


소요시간 : 약 4시간 (어디까지나 평균적)
요금 : 카풀시 약 2만원 (이것 또한 차주인 마음데로)




오토바이
예전부터 한번 쯤 타고 저멀리 달리고 싶었던 오토바이. 물론 시도해 본 적은 없습니다. 오토바이도 없고~
이 역시 승용차만큼 랜덤한 요금과 시간, 안락함이 나옵니다.
문제는 오토바이는 고속도로를 탈 수 없으므로 국도만을 이용해야 된다는 것입니다. 그만큼 속도에 제약을 받고 거리도 늘어나서 시간이 일반 차량보다 더 걸리죠.
국도의 거리는 약 450Km 정도.

아래링크들 참고하세요~

<유수님의 블로그>
http://blog.naver.com/limyoosoo.do?Redirect=Log&logNo=140046727886

<삼미팬님의 블로그>
http://blog.naver.com/yhj5933?Redirect=Log&logNo=90002974493

<DC 바이크 갤러리>
http://gall.dcinside.com/list.php?id=bike&page=800&sn1=&divpage=6&banner=&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=19139

<네이버 지식인 '최단 국도 거리' 답변>
http://kin.naver.com/detail/detail.php?d1id=8&dir_id=81005&eid=9/lFecvEB9+UyWcxgllpd6Cga+tbON8A&qb=us676iC8rb/vILG5tbUgsMW4rg==&pid=fhZj8woi5UsssvTrdB8sss--162325&sid=SYEa8@vjgEkAADWrNV0




예전 우리 조상님들께서 열렬히 애용하시던 수단입니다. 한번 쯤 시도해보고 싶지만, 가능할지 궁금하네요.
조선시대, 길도 잘 닦여있지 않을 때에는 보통 5일 정도 걸렸다는 이야기가 있구요, 급보를 전하려고 열심히 달려서 마방에서 계속 말을 바꿔타서 가면 2~3일은 걸렸다고 하네요.
뭐 지금이야 길이 좋으니깐 그 정도는 안 걸리겠죠?

최고속도 : 70Km/h
평균속도 : 40Km/h

부산에서 서울까지 국도의 거리가 약 450Km 니깐, 약 15시간 이상? (말도 쉬어주고 먹이도 먹여주고 해야되니깐요)
멋있게 아프리카 TV로
'부산에서 서울까지 말달리자'
방송해주실 용자분 찾습니다.




자전거
많은 분들께서 자전거로 전국일주를 하시고 간혹가다가 '에잇! 안해!' 라면서 자전거를 파시는 분들도 보았습니다.
하지만, 역시 장거리 여행의 낭만은 자전거 아닐까 생각되네요. 물론 우리나라 대한민국은 국토의 대부분이 산인지라 자전거로 언덕길을 다닐걸 생각하면 쉽지만은 않죠.
예전에 친구랑 함께 자전거로 서울에서 부산까지 가려고 하였지만, 자금부족으로 저는 이탈. 열심히 달린 친구를 결국 부산에서 재회하고, 친구는 자전거를 택배로 보내고 기차를 타고 집에 갔답니다. 엉덩이 아파서 못 타겠다면서
시간은 대략 1주일이 안 걸렸습니다.
이 역시 개인역량?
만약 그대가 젊다고 생각한다면 한번 도전해보세요

참고링크
<영화우영님의 블로그>
http://blog.daum.net/muisa/17374091?srchid=BR1http%3A%2F%2Fblog.daum.net%2Fmuisa%2F17374091









튼튼한 두 다리로
이런 극단의 도구를 이용하시는 분. 저는 박수를 쳐주고 싶습니다.
짝짝짝
힘들지만, 그만큼 많은 경험을 할 수 있는 방법이죠.
저도 한 때 한비야의 '바람의 딸 우리땅에 서다' 를 읽고 도보여행을 결심하고 서울에서 부산까지 여행하려 했지만, 여러가지 사정으로 충주에서 부산행을 한 적이 있습니다. 하루 60Km 이상 이동하면서 1주일 걸려서 부산도착(사실 밀양에서 너무 맛있는 묵채를 먹고 집 생각이 나서 버스타고 집에 갔답니다;;) 걸어본 결과 하루 40Km 정도의 이동이 적당하다고 봅니다.

정말 자유로운, 저렴한, 하지만 나중 유지비는 더 많이 드는 수단이라고 하겠습니다. 안락함 최하, 가격 역시 최하(뭐 절같은데서 자면서 무전여행한다면 최고의 가격효과), 속도역시 최하.

하지만 그대의 마음 속에 추억은 가득가득 최고!!!
이 역시 젊다고 생각하신다면 한번 쯤 시도해보세요.
대한민국의 아름다움을 정말 몸으로 느끼실 수 있습니다. 진짜로


이상 8가지의 교통수단에 대해서 알아보았습니다. 글을 쓰면 쓸수록 그냥 부산에서 서울까지 이동하는 것에서 갑자기 부산에서 서울 자전거, 도보 여행의 냄새가 약간 묻어나기도 했네요. 허허허
무엇을 이용해서 어떻게 가실지는 각자의 여건과 상황에 따라서 선택하시길 바라며, 부디 즐거운 여행길 되시길 진심으로 바라는 바입니다.

더 나은 교통수단에 대해서 아시는 분은 의견 개진해주세요~~~~~

반응형
반응형
that 과 which 의 차이

 

일단은 선행사에 차이가 있죠

which의 선행사는 사물인 반면, that의 선행사는 사람, 사물 모두 가능하죠.

그러나 이것은 가장 기본적인 것이고, 이거 외에 다음 사항을 알아 두셔야 합니다.


which를 쓸 수 없고 that만을 써야 하는 경우(선행사가 사물이라 하더라도)

선행사가 다음과 같은 경우엔 that만이 사용됩니다. 소위 말하는 that의 특별용법이라 합니다.

that 의 특별용법

1. 사람+사물(동물 포함)

   I know the man and his dog that are coming this way

2. 서수/최상급

   This is the most interesting book that I've ever read

3. the only-, the very-, the same-

   She is the only girl that I love

   This is the very book that I've wanted to read (이 때 very는 ‘바로 그’라는 뜻)

   This is the same watch that I lost

4. 의문사

   Who that has common sense will believe such a thing?





관계대명사 that 은 무척 편리하지만 다음의 경우엔 사용하지 못한다는 것도 알아두셔야 합니다.

that 을 사용할 수 없는 경우

1. 소유격

2. 계속적용법 ; 계속적용법이란 관계대명사 앞에 콤머가 있는 것을 말합니다. 즉, 관계대명사 that 앞에는 콤머를 짝지 못합니다.

3, 전치사 뒤

   This is the house that(which) he lives in     (that(which) 생략 가능)

   This is the house in which he lives   (which 생략 못함)

   This is the house in that he lives (X)



that 절은..

콤마 뒤에는 쓰이지 못하는게 일반적인 용법입니다.

그리고 전치사의 목적어인 관계사로는 쓰일수 없습니다. 예) on that <~이딴건 없습니다.

마지막으로 소유격 관계형용사 대신에 쓰일수 없습니다.


that 으로만 쓰이는 경우

1.선행사가 사람+사람 or 사람+동물 일때 that 으로 받습니다

2. who 가 선행사일 경우 that 으로 받습니다

3. 최상급이나 the only, the same, the very 같은것들이 선행사를 수식할때 그렇습니다

   (단 3.의 내용은 절대적이지는 않습니다..)

4.선행사가 all /no명사/-body/-thing /little/ much 같은 것들일때 that으로 받습니다.


반응형
반응형



완전 꽂혀서 심심하면 틀어보는 아이유의 너랑나, 춤추는 부분만 나오는 버전
오리지널뮤비보다는 이게 훨씬 나는 마음에 든다.

노래는 좋은날과 비슷한거 같은데 좋은날보다는 좀 별로였다는 생각이 들었는데, 이 댄스가 너무 빠져들게 만들어서 계속 보고 듣게 만드는 악마의 노래....아니 악마의 뮤비...

아아~ 보면 볼수록 빠져드는구나..큰일이네
반응형
반응형



마지막 보너스 클립이 완전 웃긴 영상 ㅋㅋㅋ
끝판대장 바론을 그립하는 블리츠크랭크,..대박이다 ㅋㅋㅋ

4번째 이즈리얼이 케이틀린 궁 막아주는것도 굿 ㅋㅋ
3번째 니달리..얘는 요새 자주 TOP5 영상에 나오는듯. 잘쓰면 진짜 좋은듯 ㅋㅋ 아~ 이거나 포스팅 연속으로 해보까.. 귀찮아서 못할게야 아마 ㅋㅋㅋ

아 리그 오브 레전드 쩐다ㅋㅋ
반응형
반응형



간만에 유튜브 뒤지다가 발견한 정말 괜찮은 드럼 강의영상 발견!!!!
속도업 및 스틱 컨트롤 강의인데, 맘에 든다.

특히 패드없이 걍 저렇게도 손가락 컨트롤 법을 연습할 수 있다니 ㅋㅋㅋㅋㅋㅋㅋ

아 빨리 잘 쳐야될텐데T_T
반응형
반응형
오라클에서 DB 접속시 위와 같은 에러가 뜨는 경우를 볼것이다.

다양한 원인이 있겠으나, 나의 경우에는

TNS(tnsnames.ora)에서 접속 식별자의 띄워쓰기가 잘못되어서 일어나는 현상이었다.

예를 들어

   ORACLR_CONNECTION_DATA = 

  (DESCRIPTION = 

    (ADDRESS_LIST = 

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 

    ) 

    (CONNECT_DATA = 

      (SID = CLRExtProc) 

      (PRESENTATION = RO) 

    ) 

  ) 

 
위와 같이 ORACLR_CONNECTION_DATA(접속식별자) 앞에 공백이 있으면 인식을 하지 못한다.

그래서 저 공백을 업애주고 

  ORACLR_CONNECTION_DATA = 

  (DESCRIPTION = 

    (ADDRESS_LIST = 

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 

    ) 

    (CONNECT_DATA = 

      (SID = CLRExtProc) 

      (PRESENTATION = RO) 

    ) 

  ) 

 
다음과 같이 해주면 문제없이 잘 돌아간다.

 
반응형
반응형
SQL Server 2005 Management Studio Express 를 설치하는 도중 중간에 에러가 나면서 설치가 안되는 경우가 있습니다.

이것은 비스타나 윈도우 7 에서의 보안강화 때문에 관리자권한이 아니라서 생기는 에러로

설치시 탐색기에서 우클릭을 하여 윈도우 탐색기를 [관리자 권한으로 실행]한 상태에서 설치를 진행하면

무사히 설치를 완료할 수 있습니다.

다들 단디 설치 해보세요~~~~
반응형
반응형
Do you know about Earth Hour?

I think many people don't know what it is. Guess it



This campaign was started in March 2007 in Sydney.
On saturday 27 March 2010, it became the biggest Earth Hour ever
Could you image what is this?
I'll give you some hint. This campaign is related with Earth and Environment.
This is organized by WWF.


This is a global event. Every lights and other electrical appliances will be
truned off during Earth Hour. Save the energy and think about the Environment!
It's Earth Hour.

In Earth Hour 2010, 126 countries participated. The scale is getting bigger.
During Earth Hour, many famous place also turned off the lights. Such as Sydney Opera House, Rome Colosseum and so on.
Even, google also change their homepage to be darkened.

I think this campaign is awesome.
However, criticism is always following to any happenings.
In case of Earth Hour, some people critisize it like this.

At first, there are some report that the consumption of electronic is decrease during the Earth Hour.
However, some people say there are more consumption. More energy was spending during marketing Earth Hour.
And the candle festival during Earth Hour spent more energy.
During cnadle festival, many candle was consumed. As you know, the main ingredients of candle is paraffin.
Paraffin is made of Oil. During burning a candle, more fossil fuel is consuming and more carbon dioxide is emitting.
WWF said this things are not important. Important thing is that people perceive the importance of fossil fuel and stop the global warming.
In my case, I agree this idea. More people join the Campaign, better our earth. Don't you agree with my idea?




In 2011, Earth Hour will take place on March 26, 2011
Remember this day! And join with them!!!



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

하드정리하다가 발견....
그냥 올려봄 ㅎㅎㅎ
반응형
반응형
// CTRL+G 키를 눌러서 오늘날짜 입력
function inputToday(v,e){
   var key = (document.all) ? e.keyCode : e.which;

   //71은 g 의 키코드값     
   if(e.ctrlKey&& event.keyCode == '71'){

      var r=window.event.srcElement.createTextRange();

   if (v.createTextRange) v.currentPos = document.selection.createRange().duplicate();

      var d = new Date();
      var v_month=d.getMonth()+1;
      var v_date=d.getDate();
      if(v_month<10)
          v_month='0'+d.getMonth().toString();
      if(v_date<10)
          v_date='0'+d.getDate().toString();
      var today=d.getFullYear()+'-'+v_month+'-'+v_date;

   if (v.createTextRange && v.currentPos) {
       var currentPos = v.currentPos;
       currentPos.text = currentPos.text.charAt(currentPos.text.length - 1) == ' ' ? today + ' ' : today;
   }

   return false;
   }
}


커서가 위치한 곳에서 CTRL+G 키를 누르면 오늘 날짜가 입력되는 함수입니다.
사용시 자바스크립트 이벤트 onkeydown="inputToday(this,event);"   만 입력해 주시면 사용가능합니다.

다른단축키값을 이용하려고도 하였으나 다른건 이미 브라우저에서 단축키로 사용되고 있는 녀석들이라 그나마 예약되어있지 않은 CTRL+G 를 사용....
반응형
반응형

자여와 자상은 서로 마음이 통하는 친구였다. 장마가 한 열흘이나 계속되던 어느 날, 자여는 문득 생각했다.

'자상이란 친구, 먹을 것이 없어서 퍼져 누워 있으리라.'

 자여는 밥 꾸러미를 들고 자상의 집을 찾았는데, 안에서 노래인지 우는 건지 모를 이상한 소리가 금소리와 함께 들려왔다.

 "아버진가 어머닌가, 하늘인가 사람인가..."

 굶은 탓인지 숨넘어가는 소리로 이렇게 되풀이하고 있었다. 자여가 안으로 들어가 말했다.

 "이상한 노래로군. 어찌 된 건가?"

 자상이 대답했다.

 "내가 무엇 때문에 이토록 가난한지 생각해보았으나 도무지 알 수가 없네. 설마 부모가 자식이 가난하기를 원했을 리 없고, 더구나 공평 무사한 하늘이 나만을 차별해서 이 꼴을 만들었을 리도 없지 않겠나? 이모 저모로 생각해도 도저히 알 수가 없네. 누가 그렇게 한 것이 아닌데도 이토록 가난하니, 이 역시 운명이 아니겠나?"

 

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

 아마 학생시절에 봤다면

'재물에 뜻을 두지말자는 이야기구나, 소박하게 살아가도록 하자'

 라는 생각을 하게 되었을 것이다.

그러나 나는 지금 사회인. 생계를 유지하기 위해 일을 해야하는 사회인. 게다가 이 곳은 대한민국. 조금이라도 잘못하면 서민들은 생계가 힘들어지는 스릴 넘치는 곳 스릴민국.

 이런 곳에서 운명을 탓하며 가난한 것에 대해 그러려니 생각하는 것이 가능할까....왠지 사회에 찌들어가면서 장자의 글귀에 대한 반박이 생겨나는거 같아 가는건 아닐까?

 다른 관점을 생각해보자....

....

....

자상의 생각에 동조하지 못하겠다.

그런 운명이라고 받아들이고 그냥 살아가는 것 또한 운명이요

그런 운명일지라도 열심히 살아보자고 해서 가난에서 벗어난다면 그 또한 운명일터이니


올해도 얼마남지 않았다.

계획표데로 이루어진 것은 거의 없다.

그말인즉슨 난 2011년을 정말 허무하게 보냈다고 생각된다.

한편으로는 많은 깨달음을 얻고 어떻게 무엇을 할지 다시금 생각하게 해주는 내 삶의 중요한 터닝포인트가 되기도 하였다고 생각한다.


남은 두달여간, 열심히 내 삶에 대해 고찰해보자.

반응형
반응형

<출처 : 인터넷 어딘가;;;>


예전에 서울쪽에 친구가 부산놀러간데서 심심해서 만들어본 자료입니다.
혹시라도 여행가실분들 그냥 참고해보세요~
수정하고 뭐시기고 귀찮아서 대충 만들어서 올려놓습니다 ㅎㅎㅎㅎ

악플주시면 ㄳ

반응형
반응형

반응형
반응형


반응형
반응형
변수 이름 '@custName'이(가) 이미 선언되었습니다. 변수 이름은 쿼리 일괄 처리 또는 저장 프로시저 내에서 고유해야 합니다.

dataset에 불어온 자료들을 DB 에 집어넣으려고 하는데 위와 같은 에러가 발생했다.
알고보니 for 문을 이용하여 순차적으로 insert 명령을 사용하여 값들을 DB에 넣게 코딩하였는데
SqlCommand 객체에서 paremeter가 이미 선언되었는데 paremters 들을 해제해주지 않고 다시 insert 하려니깐 생긴에러..

cmd.Parameters.Clear();

위와 같이 파라미터를 초기화해주고 파라미터를 선언해주자!


반응형
반응형

재활용품 종류 및 수거

재활용품 종류 및 배출요령(자동안내전화 : 080-027-7272)
종 류 배출요령 재활용 안되는 품목(규격봉투사용)
종이류 종류별로 묶어서 배출
종이팩은 물로 헹군 후 펼쳐서 묶어 배출
비닐코팅 된 종이류
테이프, 스프링 등 이물질이 섞인 종류
캔류 이물질을 제거, 폭발위험성 있는 캔류는
구멍을 뚫어 배출
페인트, 오일 등 유해물질이 담긴 통
고철류 고무, 플라스틱 등 분리 후 배출 고무,플라스틱이 합성되어 있는제품
병류 이물질 및 병마개를 제거한 후 배출 유백색병, 식기 도자기 등
플라스틱 병류는 병마개 및 이물질을 제거 후 배출
세제류 등 가정용품은 물로 씻어서 배출
용기에 재질 분류표시 된 제품
단추, 재떨이, 식기 등 열에 녹지않은
제품
스티로폼 라벨 등 이물질을 제거 후 배출 건축용 특수 스티로폼
전자제품과 발포합성수지 완충재등
포장재는 제품 구입처로 반납
의류 일정 분량을 봉투나 끈으로 묶고
이물질이 묻지 않도록 배출
이불, 운동화, 구두 등 가죽제품
폐형광등 종이, 비닐 포장재를 벗겨낸 후 깨지지
않은 상태로 분리수거함에 배출
깨진 형광등, 백열전구
비닐봉지류 비닐봉지는 따로 모아서 흩어지지 않도록 묶어서 배출
 
각종 비닐 봉지류에 내장된 라면수프,
양념장, 소금 등은 혼합되지않게 따로 쓰레기
종량제 봉투에 배출
재활용품 배출안내

생활쓰레기(종량제 규격봉투 사용)배출일시에 재활용 품목별로 비닐봉투에 담거나 끈으로 묶어서
대문앞에 배출

재활용 가능 폐기물 분리배출 가이드
  • 2011년 4월1일부터 재활용 가능 폐기물 배출방법이 품목별 분리배출로 변경됩니다.
    (일반폐기물, 음식물류폐기물 배출방법은 현재와 동일)
    • 1) 일반폐기물 배출 요일에 품목별로 내용물이 보이도록 투명한 봉지에 넣거나 묶어서 분리 배출합니다.
    • 2) 병류/비닐류는 반드시 분리배출
      ※ 플라스틱류, 캔류, 고철류는 분리하지 않고 한꺼번에 내놓으셔도 됩니다.
  • 재활용 가능 폐기물
    • 품목별로 묶거나 투명한 봉지에 넣어서 지정요일에 분리배출
종이류 신문지, 책자, 노트, 종이팩, 상자류
병류 음료수병, 기타 병류
비닐류 필름류(라면봉지, 과자봉지 등 분리배출 표시가 있는 봉지), 일회용 비닐봉지 등
플라스틱류 PET병, 합성수지 용기류 등 분리배출 표시가 부착된 용기, 스티로폼
캔류 철캔, 알루미늄캔, 부탄가스, 살충제 용기(구멍을 뚫어 내용물을 비운 후 배출)
고철류 고철(공기구, 철사, 못), 미철금속(알미늄, 스텐류 등)

※ 폐형광등, 폐건전기, 의류는 별도의 분리수거함에 배출
폐소형가전(TV,냉장고,세탁기,에어컨, 제외)은 요일 구분없이 배출요일에 별도 배출하면 수거

  • 재활용이 안되는 폐기물
    • 일반종량제 봉투(흰색)나 특수종량제 봉투에 넣어서 배출
종이류 비닐코팅된 종이, 스프링·섬유·금속 등이 섞여있는 종이
병(유리)류 식기, 도자기, 거울, 판유리, 깨진 병
플라스틱류 단추, 쟁반, 식기류, 재떨이, 파이프, 계란받침대 등
기타 우산, 테이프(비디오,오디오), 테이프케이스, 고무, 장난감, 가방류, 문구류, 유모차, 옷걸이, 변기통, 보온병, 이불, 물받이통 등

※ 거울, 고무, 가방류, 유모차, 변기통은 수거업체에 신고 후 배출

해당지역 노량진1동 상도2·4동 상도1·4동 사당2동 신대방1·2동
수거업체
전화번호
경청용역
812-5143
기성환경
812-7565
늘푸른환경
525-4145
남지환경
826-6776
신세계환경
832-9933
2011. 4. 1부터 재활용가능폐기물 배출방법이 지정요일 품목별 분리배출로 변경됩니다.
노량진1동, 상도2동, 상도4동, 사당1동, 사당2동, 사당4동, 신대방1동, 신대방2동
종이류 병류, 비닐류 플라스틱류, 캔류, 고철류
종이류는 일요일 병류, 비닐류는 화요일 플라스틱류, 캔류, 고철류는 목요일
일요일 화요일 목요일
노량진2동, 상도1·3동, 사당3·5동, 흑석동, 대방동
종이류 병류, 비닐류 플라스틱류, 캔류, 고철류
종이류는 월요일 병류, 비닐류는 수요일 플라스틱류, 캔류, 고철류는 금요일
월요일 수요일
반응형
반응형


드디어 2011 지산락페가 2주도채 남지 않았습니다!!! 우우우우에~~~~~~~~~~~~~~~

그래서 준비했습니다!!!
바로 엑셀로 깔끔하게 정리한 지산락페 타임테이블!!!!!!!!!!!!!!!

마음껏 퍼가셔서 한층 더 즐거운 락페가 되실수 있길 바라옵니다!!!!

소리질러~~~~ 오오오~


SNS로 단결하여 더욱 즐거운 락페!!

http://bit.ly/pvXrvc
위 주소는 구글독스로 저장된 2011년 지산락페 타임테이블입니다. 자신이 코멘트를 추가하고싶은 아티스트로 마우스를 옮긴뒤 우클릭하여 Insert Comment 버튼을 눌러 관련글을 써보도록 합시다!
힘을 합쳐 더욱 즐거운 2011년 지산락페를 위해~ 룰루






반응형
반응형


기대를 져버리지 않고 대박!!!

그런데 저번 2회때와는 확연히 느낌은 달랐던것 같다.
2회때는 뮤지션들도 자기들이 아는 사람 찾아가서 그랬나? 모든곳이 방방뛰고 즐기는 노래에 코믹 요소가 많았는데
이번에는 뭔가 좀 다른 느낌

곡들도 전체적으로 좋고 뭔가 완성도도 이전과 달랐던거 같다. 오케스트라도 나오는등 우선 사운드가 꽉차서 그런가나?

노래가 다 좋긴 하였으나(난 1위하면 GD 노래가 1위 할줄 알았다,)
결론은 공동수상....... ㅋㅋㅋㅋㅋㅋㅋ

아무튼 수많은 곡들중 베스트는 바로 이게 아닌가 싶다...


<처진달팽이 - 내 마음대로>

이 노래 듣고 다시 느낀건 역시 이적.........아 천재다
노래풍이 왠지 예전 패닉시절 느낌이 들었다고나?
중간에 랩삽입 부분에 김진표가 불렀다면..아아아~~~~


그리고 대박커플 탄생 ㅋㅋㅋㅋㅋㅋㅋ 이번 가요제에서 제일 웃겼던듯 ㅋㅋㅋㅋ



정정
재형
형돈

진짜 뗄레야 뗄수없는 저이름 배열 ㅋㅋㅋㅋㅋㅋㅋ개화동 진상, 파리진상 ㅋㅋㅋㅋ





<지극히 개인적인 곡들감상>
1. 파리돼지앵 - 순정마초
탱고풍? 상당히 독특한 느낌의 곡이었다. 그래서 그런지 쉽게 귀에 익지는 않았으나, 노래는 괜찮았다.
우선 웅장한 느낌이 굿!

2. 바닷길 - 나만 부를수 있는 노래
길이의 랩이 들어갈줄 알았었나 그냥 코러스만 들어간 노래.
하지만 정말 좋았던 곡! 둘의 화음이 잘 맞아떨어진듯하다.

3. GG - 바람났어
지드래곤틱한 노래. 기대를 많이 했던 곡이었는데, 기대만큼 괜찮았던듯. 은근 중독성있는 일렉비트가 맘에든다.
게다가 박봄 게스트로 집어넣은게 대박

4. 센치한 하하 - 죽을래 사귈래
가요제 전에 곡만든다고 할때 찹쌀떡 보다는 이 곡이 좋았었던거 같으나 가요제에서는 그닥 와닿지 않았다.
오히려 찹쌀떡이 뭔가 더 10Cm  틱 하면서 착착 감겼던듯?

5. 스윗 콧소로우 - 정주나요
정주나요~ 안 정주나요~~~ 상당히 흥겹고, 저 후렴부분는 한번에 바로 꽂혔다! ㅎㅎㅎ 굿

6. 처진달팽이 - 압구정날라리
신나고 축제분위기에 딱 어울리는 노래. 하지만 우와~~~~~ 굿 정도의 느낌은 없었던듯.
배경으로 틀어놓고 들으면 좋을듯하나 이 노래만 귀에 꽂고 다닐 정도는 아닌느낌

7. 철싸 - 흔들어주세요
역시 둘의 에너지가 넘치는노래. 노래가 단조로운 듯 하지만 신나는 곡
반응형
반응형
1. 파이어폭스에서 alert(); 는 작동 안한다 alert('aa'); 처럼 매개변수가 있어야 작동한다.

2. css 속성 줄때, 특정 아이디 안에 있는 클래스를 찾을 경우 띄워쓰기를 해주야된다
ex) #myhome.cover a <- 작동안함
     #myhome .cover a <- 이렇게 속성별로 다 띄워줘야한다.
반응형
반응형

주평만은 지리익에게서 용을 죽여 요리하는 방법을 배웠다. 그것을 배우기 위해 천 금을 탕진했고, 비법을 터득하는데 3년이 걸렸다. 그러나 용은 흔하지도 않을 뿐더러 잡기도 힘들어서 그 기술은 전혀 쓸모가 없었다.

 

 

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

 

짧은 글이면 짧은 글일수록 더욱 다양한 시각의 의미부여가 가능한 것 같다. '1+1=2 이다' 가 아닌 '1+1=? 무엇인지 상상 그 이상의 것이 될것이다' 라는 것인 장자의 매력이니, 이 글 또한 그러한 느낌을 반영하는 글구같다.

 

사실 예전에 용요리 이야기는 읽어도 대충 넘기게 되었다. 음, 그렇구나하면서, (예전에 만화 슬레어이즈에 용요리 관련 에피소드가 나왔었는데 그 에피소드만 생각나고..)

하지만 최근 심정을 바탕으로 글을 읽어보니 중요한 포인트가 있는 글같이 보였다. 현재 나에게 필요한 가르침이라고나...

 

현재하고 있는 일중 자신이 투자할 가치가 없는 것에는 투자하지 말자는 것.

나는 항상 그래왔었다. 능력은 없으면서 욕심은 많아가지고 한번에 여러가지 일들을 하려고 하였고, 결국 어느것 하나 제대로 이룬게 없었다.

얼마전 이것저것 치고쳐서 이제는 이런일들에 시간을 투자하지 말자라고 생각을 했었지만 뭔가 마음이 싱숭생숭해서인가? 또 다시 이것저것 여러가지 일에 손을 대기 시작했다.

시간경영이라도 잘해서 초단위로 모든것들을 진행하면 모를까, 그런 집중력이라든지 꼼꼼함이 부족한 나인걸 알기에 또 다시 심사숙고하게 만드는 글귀라고 생각된다.

다시 한번 지금 내가 하고 있는 일들에 대해 리스트를 만들고 지금 할 필요없는 것들에 대해서는 미루어야겠다.....

반응형
반응형
11자리로 된 숫자들이 있는 컬럼이 있는데 이 컬럼이 float 형이었다
그런데 이 녀석을 문자열이랑 더하려고 하니깐 계속 문제가 생기는거다

float를 varchar 형으로 컨버팅해서 하니 원하는 값은 나오지 않고
그래서 결국 편법을 사용해서 성공!!!

그냥 float를 numeric 으로 바꾸고 varchar 형으로 바꾸니 아름답게 결과가 나왔다

걍 아래는 예제

select '0'+cast(cast(휴대폰 as numeric(11,0)) as varchar(11)) from 고객목록



반응형
반응형
종종 프로그래밍을 하다가 버튼이벤트를 특정조건에서 실행해야되는 경우가 생긴다
이럴때 버튼이벤트 내에 함수를 집어넣지 말고
다음과 같이 비하인드 코드에 집어넣어주면 끝


버튼이벤트명(null, null)
예) btn_start_Click(null, null)

버튼 이벤트 외에 다른 이벤트들에서도 물론 동작은 잘된다

아직까지 이상은 없었음
반응형
반응형
우편번호 데이터들이 엑셀형식으로 저장되어 있으므로 MS-SQL에서는 간단하게 데이터 가져오기를 사용하여 테이블에 입력을 할 수 있었다.

하지만 MY SQL에서는 약간 이래저래 수정도 해주면서 작업을 해야되었다.
그래서 간단한 작업절차를 써보도록 하겠다


1. 하단에 명시된 페이지로 이동하여 원하는 DB 정보를 다운받는다.




2. 다운받은 엑셀파일을 csv 형식으로 변형시킨다.
 다른이름으로 저장 -> 다른형식 -> csv 형식선택

저장을 하면 각 필드들은 쉼표(,) 로 구분이 된다.


3. 해당 주소체계에 맞는 형식의 테이블을 생성한다


4. my sql 입력 커맨드창에서 다음의 명령어를 실행한다

load data infile [해당 csv 파일명] into table [db명].[테이블명] fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

예) load data infile 'c:\\download\\zipcode.csv' into table db1.tb_zipcode fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

* 해당명령어에 대한 자세한 설명은 다음 링크 참고
http://radiocom.kunsan.ac.kr/lecture/mysql/prototype/prototype_load_data_infile.html

5. 아름답게 저장된 주소DB들을 보며 흐뭇해한다.

반응형
반응형

의이자가 허유에게 배움을 청하자 허유가 이렇게 물었다.

"너는 요에게서 배웠다던데, 무엇을 배웠느냐?"

"인의의 실천에 힘쓰고, 시비와 선악을 분명히 하라고 배웠습니다."

"그렇다면 뭣하러 새삼 나를 찾았느냐? 요가 이미 네 이마에 인의를 새겨넣고 시비라는 말로 코를 잘라버렷는데, 자유롭게 거리낌이 없는 큰 길로 어찌 너를 인도할 수 있겠느냐?"

그러나 의이자는 구히지 않고 말했다.

"당연한 말씀이지만, 설사 도에는 이르지 못해도 근처에는 가고 싶습니다"

"안된다. 장님은 앞에 미인이 서 있어도 볼 수가 없으며, 곱게 수 놓은 비단을 들고 있어도 그 아름다움을 알 수 없다. 너는 이미 도와는 인연이 없어졌다."

"옛날 무장이 그의 아름다움을, 거량이 그의 힘을, 황제가 그의 지혜를 잊은 것은 모두 도의 불갈에 녹아 다시 단련된 때문이라고 들었습니다. 그렇다며 조물주가 나에게도 입묵을 녹여 없애고, 코를 처음데로 붙여 선생님의 가르침을 받을 수 있게끔 해줄 수 있을 것입니다."

"네 소원데로 잘 될지는 알 수 없으나, 그토록 소원이라면 말해보겠다. 내가 스승으로 삼은 도는 만물을 있게끔 해주고, 한없는 은혜를 베풀면서도 무심하여 자신이 은혜를 베푼다는 것을 느끼지 못한다. 유구한 과거에서 영겁의 미래에 걸쳐 하늘과 땅을 덮고, 삼라 만상을 쉴새없이 만들어내면서도 힘을 자랑하지 않는 위대한 존재이다. 그래서 나도 이 스승을 따라 무의 경지에서 놀려하는 것이다."

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

오랜만에 쓰는 장자

2011년도는 왠지 모르게 계속 꼬이고 복잡하고 머리가 아픈 해인거 같다. 나이도 먹어가고 점점 사회생활을 하면서 이것저것 겪으면서 자신의 한계도 느끼고 꿈과의 타협을 해야될거 같고, 마음은 초조해지고....그런 상황에서 장자를 통해 다시금 마음을 추스리고자 간만에 썼는데, 역시 장자다

한동안도 그렇고 지금도 그렇고, 이 불안한 요소는 오래도록 갈듯하다. 생각해보니 원인인 즉슨, 현재 흔들리고 있는 나의 상태를 다잡아줄 멘토가 없다는것!

내가 생각하는 것과 나아가려고 하는 것, 이에 맞추어 애기를 하면 명쾌한 해답을 줄수 있는 사람이 주위에 없다는 것이다. 존경하고 배움을 받을만한 사람들은 있지만, 나를 이해하고 방향을 잡아줄 사람은 없다는것!

의이자는 요에게서 배움을 받았다. 하지만 의이자가 진정으로 원하는 도에 나아가는 방향은 얻지 못하였다. 그래서 그는 허유에게 다시금 도에 대한 가르침을 구하려 하였건만, 이미 시비라는 고정관념에 사로잡혀서 진정한 도의 깨달음을 얻기 힘든 상황이 되었다.

잘못된 길로 한참을 간 결과, 자신이 가고자 하는 길에 도달하기 힘들게 되었다.

지금 나는 내가 원하는 길로 바르게 가고 있는건가?

지금 가지고 있는 꿈은 10대말에 형성되었고, 꿈의 원형은 유지된채로 지금까지 내 마음속에 남아있다. 그 꿈을 이루기 위해 살아오면서 이걸할까? 저걸할까? 고민에 빠지고 시행착오를 몇번이나 겪었던가.

작년에만 해도 그렇지 않았지만 요즘 다시 이 고민에 빠져들고 있다. 지금 내가 선택한 이 길이 맞는 길일까? 나에게 적합하고 내가 꿈에 도달하기에 적절한 길을 선택한걸까?

어떠한 스승의 가르침도 없이 나자신이 선택한 길들...

일단 의심은 제껴두고 의심할 시간에 조금 더 이 길을 따라 한발자국이라도 더 가야겠다...그러다 운좋으면 희대의 멘토께서 나타나셔서 날 인도해주실지도....

반응형
반응형
인터넷에 올릴 플래시 파일을 캠타시아로 제작하였다.

플래시파일만 실행시켰을때 잘되던 파일이 웹서버에서 작동시키면 재생이 되지 않는것이었다

무엇이 문제일까? 싶어서 조사해본 결과!!

웹서버에서 mp4 확장자를 인식하지 못해서 그랬던것!!

mp4 확장자 인식을 위해 MIME 형식을 지정해주니 잘 작동한다!!

IIS 의 경우

MIME 추가를 아래와 같이 하면 OK

확장명: .mp4
MIME형식:video/mp4

반응형
반응형
나는 파이어폭스를 선호한다
그래서 홈페이지 제작을 해도 파폭으로 테스트를 하는 편이다

그런데, 어느날 홈페이지를 만들다 테스트를 하는데, 경고창이 뜨지 않는것이다.

어? 코드가 잘못됐나? 싶어서 코드 여기저기를 만져보았지만 아무이상은 없고...
브라우저 문제인가? 싶어서 IE에서 돌리니 alert 가 매우 잘 나오는것이다.

분명 파폭에서 자바스크립트 사용 상태로 해놓았는데....

일단 만능 디버거인 파이어버그를 열어놓고 디버깅을 해보았다
그랬더니!!


uncaught exception: [Exception... "Not enough arguments [nsIDOMWindowInternal.alert]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://localhost/bul/menu.asp# :: onclick :: line 1" data: no]

위와 같은 에러가 뜨는것이다...역시 스크립트에 문제가 있구나 싶어서

alert();

인 코드에 alert('aa'); 식으로 변수를 넣어줬더니
작동이 매우 잘되는것이다!!!!

파폭에서 자바스크립트가 이정도로 섬세하다니....

아무튼 삽질을 참 오래하였다.

다른 분들은 헷갈리지 마시고

파폭에서 자바스크립트 alert 를 사용할때 꼭!!!!!!!!!!!!!!! 매개변수를 넣어주시길!!! (빈값이면 걍 alert(''); 식으로라도)
반응형

+ Recent posts