반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

이제 크리스마스 입니다.


즐거운 크리스마스 되세요.


회사에서 크리스마스 카드를 이메일로 돌렸네요.


오늘은 그 내용을 공부해 볼께요.






Christmas is round the corner
so let's greet our colleagues and celebrate

by sharing the joy with them.

Wishing every one a
Merry Christmas
and
Happy New Year

from the tem aaa





크리스마스가 바로 코앞입니다.

동료들과 같이 인사 나누고

기쁨을 같이 나눕시다.


모두

Merry Christmas

and

Happy New Year


aaa 팀으로부터




반응형


반응형
Test whether an accordion menu is open or closed




accordion menu 가 닫혔을 때 jQuery Mobile 은 그 안의 내용이 안 보이도록 ui-collapsible-content class 가 있는 <div> element 에 ui-collapsible-content-collapsed CSS class 를 추가 합니다. 이 추가된 CSS class 는 display CSS property 를 none으로 세팅합니다. 이것은 메뉴의 내용을 숨기도록 하죠.


또한 menu title 에도 ui-collapsible-heading-collapsed class를 할당합니다. 메뉴가 닫혔다는 것을 가리키기 위해서죠.


메뉴가 열렸는지 닫혔는지를 테스트 하려면 <h1> element가 title 을 defining 하고 있는지를 보던지 content 를 defining 하는 <div> element에 ui-collapsible-heading-collapsed (for title) or ui-collapsible-content-collapsed (for content) classes 가 있는지 없는지 살펴보면 됩니다. 이 클래스들 중 하나라도 있으면 메뉴는 닫혀있는 것이고 아니면 열려 있는 겁니다.


아래 예제는 버튼을 사용하는 window 의 accordion menu 의 상태를 display 하는 겁니다.


View the status of the accordion menu


<!DOCTYPE html> 

<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <div id=id1 data-role=collapsible>

      <h1>Menu 1 : Click to open / close</h1>

      <p> Paragraph 1.1 </p>

      <p> Paragraph 1.2 </p>

      <p> Paragraph 1.3 </p>

    </div>

    <div id=id2 data-role=collapsible>

      <h1>Menu 2 : Click to open / close</h1>

      <p> Paragraph 2.1 </p>

      <p> Paragraph 2.2 </p>

      <p> Paragraph 2.3 </p>

    </div>

    <a id=btn href=# data-role=button> Indicate the status of menus </a>

  </div>

</div>


</body>

</html>


<script>


$("#btn").bind ("click", function (event)

{

  var txt = "";

  if ($("#id1 h1.ui-collapsible-heading-collapsed").length) 

    txt += "Menu 1: closed\n";

  else 

    txt += "Menu 1: open\n";

    

  if ($("#id2 h1.ui-collapsible-heading-collapsed").length) 

    txt += "Menu 2: closed\n";

  else 

    txt += "Menu 2: open\n";

    

  alert (txt);

});


</script>

tistory555_01.html


각 menu title 에 ui-collapsible-heading-collapsed class 가 있는지 여부를 가립니다. 만약 있으면 이 메뉴는 닫힌 상태고 그렇지 않으면 열린 상태입니다.







반응형


반응형
Open and close an accordion menu


accordion menu 를 열고 닫는 것은 title 부분을 클릭하면 됩니다. 그리고 trigger ("click") method를 사용해서 그 title  부분이 클릭된것 같은 이벤트를 만들어 낼 수도 있습니다.


<h1> title 내에는 ui-collapsible-heading CSS class 가 있고 <a> link 에는 ui-collapsible-heading-toggle class 가 있습니다.

이 두 element 들에 click event 를 사용해 보겠습니다.


아래 예제에는 버튼을 달아서 열고 닫고 하는 동작을 하도록 합니다.


Open / close accordion menus managing the click on the <h1> element


<!DOCTYPE html> 

<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <div id=id1 data-role=collapsible>

      <h1>Menu 1 : Click to open / close</h1>

      <p> Paragraph 1.1 </p>

      <p> Paragraph 1.2 </p>

      <p> Paragraph 1.3 </p>

    </div>

    <div id=id2 data-role=collapsible>

      <h1>Menu 2 : Click to open / close</h1>

      <p> Paragraph 2.1 </p>

      <p> Paragraph 2.2 </p>

      <p> Paragraph 2.3 </p>

    </div>

    <a id=btn href=# data-role=button> Open / close menus </a>

  </div>

</div>


</body>

</html>


<script>


$("#btn").bind ("click", function (event)

{

  $("h1.ui-collapsible-heading").trigger ("click");

});


</script>


tistory554_01.html




<h1> element 내부에서 jQuery Mobile 에 의해 <a> element 를 생성하는데요. 그 부분에서 click 을 simulate 하겠습니다.


Simulate the click on the <a> element with ui-collapsible-heading-toggle class


$("#btn").bind ("click", function (event)

{

  $("a.ui-collapsible-heading-toggle").trigger ("click");

});



반응형

Ajax 로 accordion menu 삽입하기

2012. 12. 20. 06:33 | Posted by 솔웅


반응형
Insert accordion menus by Ajax



Ajax를 이용해서 accordion menu 를 retrieve 하실 수 있습니다.


Retrieve two accordion menus by Ajax


<!DOCTYPE html> 

<html> 

<head> 

  <meta name=viewport content="user-scalable=no,width=device-width" />

  <link rel=stylesheet href=jquery.mobile/jquery.mobile.css />

  <script src=jquery.js></script>

  <script src=jquery.mobile/jquery.mobile.js></script>

</head> 


<body> 


<div data-role=page id=home>

  <div data-role=header>

    <h1>Home</h1>

  </div>


  <div data-role=content>

    <p> This is an accordion menu </p>

  </div>

</div>


</body>

</html>


<script>


$.ajax (

  url : "action.php", 

  complete : function (xhr, result)

  {

    if (result != "success") return;

    var response = xhr.responseText;

    $("#home div:jqmData(role=content)").append (response);

    

    $("#id1, #id2").collapsible ();

  }

}); 


</script>



collapsible () method는 original HTML 코드를 jQuery Mobile 형식의 accordion menu 로 display 할 수 있도록 해 주는 jQuery Mobile 메소드 입니다.


action.php file


<?
$html = "";
$html .= "<div id=id1>";
$html .=   "<h1>Menu 1 : Click to open / close </h1>";
$html .=   "<p> Paragraph 1.1 </p>";
$html .=   "<p> Paragraph 1.2 </p>";
$html .=   "<p> Paragraph 1.3 </p>";
$html .= "</div>";
$html .= "<div id=id2>";
$html .=   "<h1>Menu 2 : Click to open / close </h1>";
$html .=   "<p> Paragraph 2.1 </p>";
$html .=   "<p> Paragraph 2.2 </p>";
$html .=   "<p> Paragraph 2.3 </p>";
$html .= "</div>";
$html .= "</div>";
echo utf8_encode ($html);
?>


action25.php

tistory552_01.html


collapsible () method를 call 하는 부분을 빼 먹으면 accordion menu는  jQuery Mobile 과는 상관없는 그냥 간단한 HTML element 로 display 될 겁니다.





collapsible () method를 call 하는 대신에 create event를 발생시켜서 같은 효과를 내실 수 있습니다.


Create accordion menus by calling the collapsible () method


$("#id1, #id2").collapsible ();


이 부분을 아래와 같이 하시면 됩니다.


Create accordion menus triggering create event on the window


$("#home").trigger ("create");




반응형

우아하게 화면 scroll 하기

2012. 12. 20. 05:55 | Posted by 솔웅


반응형

.animate()   와 .scrollTop()


웹 앱을 개발하다 보면 textfield 를 사용하는 경우가 많이 있습니다.

그리고 이 textfield 가 있는 화면을 모바일 디바이스에서 사용하려면 screen keyboard를 사용해야 되죠.
평상시에는 별 문제가 없는데 이걸 autocomplete 기능과 같이 사용하게 되면 문제가 발생할 수도 있습니다.

screen keyboard 가 리스트의 일부 아이템을 가려버려서 유저가 그 아이템을 클릭할 수 없게 될 수 있거든요.




화면 키보드 밑에 아이템이 깔려 있습니다.

이럴 경우 scroll 이 안되는 layout 하면이라면 유저가 많이 불편하겠죠.

이럴경우 jQuery 의 .animate() 과 .scrollTop() 함수를 사용하면 아주 우아하게 화면을 스크롤 업해서 유저 친화적인 인터페이스를 제공할 수 있습니다.
보통 자바스크립트의 window.scrollTo(x, y);를 사용하셔도 되는데요. 좀 더 자연스럽게 움직이도록 하기 위해 이 두 메소드를 사용하면 좋습니다.

저는 아래와 같이 사용했습니다.

$('body,html').animate({scrollTop: 160 }, 900);

textfield 에 focus 가 가서 키보드가 올라왔을 때.


$('body,html').animate({scrollTop: 0 }, 500);

키보드가 다시 내려갔을 때 화면을 다시 원상 복구 함.

숫자는 마음대로 넣으시면 됩니다.

이해를 돕기 위해 우선 .animate() 함수 예제를 볼까요?


<!DOCTYPE html>
<html>
<head>
  <style>
div {
background-color:#bca;
width:100px;
border:1px solid green;
}
</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button id="go">&raquo; Run</button>

<div id="block">Hello!</div>
<script>

/* Using multiple unit types within one animation. */

$("#go").click(function(){
  $("#block").animate({
    width: "70%",
    opacity: 0.4,
    marginLeft: "0.6in",
    fontSize: "3em",
    borderWidth: "10px"
  }, 1500 );
});
</script>

</body>
</html>


#go 를 클릭하면 width 가 화면의 70%로 늘어나고 투명도도 바뀌고 폰트 사이즈, border 굵기 등이 바뀝니다. 이 동작은 1.5초 동안 일어납니다.


tistory551_01.html


위 파일을 다운 받아서 실행해 보세요.

예제 하나 더 보면요.


<!DOCTYPE html>
<html>
<head>
  <style>
div {
  position:absolute;
  background-color:#abc;
  left:50px;
  width:90px;
  height:90px;
  margin:5px;
}
</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button id="left">&laquo;</button> <button id="right">&raquo;</button>
<div class="block"></div>

<script>
$("#right").click(function(){
  $(".block").animate({"left": "+=50px"}, "slow");
});

$("#left").click(function(){
  $(".block").animate({"left": "-=50px"}, "slow");
});

</script>

</body>
</html>


#right, #left 를 클릭하면 .block을 각각 50픽셀씩 오른쪽 혹은 왼쪽으로 움직이는 소스입니다.


tistory551_02.html

.scrollTop()에 대한 예제도 보죠.


<!DOCTYPE html>
<html>
<head>
 
<style>
div
.demo {
background
:#CCCCCC none repeat scroll 0 0;
border
:3px solid #666666;
margin
:5px;
padding
:5px;
position
:relative;
width
:200px;
height
:100px;
overflow
:auto;
}
  p
{ margin:10px;padding:5px;border:2px solid #666;width:1000px;height:1000px; }
 
</style>
 
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
 
<div class="demo"><h1>lalala</h1><p>Hello</p></div>
<script>$("div.demo").scrollTop(300);
</script>

</body>
</html>

tistory551_03.html


이 예제를 실행하면 작은 화면안에 페이지가 위에서 300픽셀 내려간 부분이 중앙이 되도록 display 할 겁니다.


이 두개를 조합해서 사용한 예제도 하나 올릴테니까 다운 받아서 보세요.

scroll-to-top.zip


반응형


반응형

Posted on . Written by



구글 맵이 돌아왔습니다. 우리의 Corona iOS 앱에서 오늘 사용할 수 있습니다.

12-12-12 에 진짜 세계를 뒤 흔든 건 아이폰에 새 Google Maps app이 릴리즈 된 겁니다. 별로 신통치 않은 애플 맵을 대신 할 수 있게 됐죠. 구글은 turn-by-turn direction, vector based map tiles, 개선된 인터페이스 등을 새로 선보였습니다.



The URL Scheme


먼저 URL scheme의 origin 에 대해 알아보죠. WWW(World wide Web)이 처음 선보인  1990년대로 돌아가보죠. 개발자들은 뭔가 인터넷에서 어떤 것을 참조할 필요가 있었습니다. 그래서 그 참조할 정보의 위치를 간단하게 URL( Uniform Resource Locator)을 이용해서 찾아갔죠.


인터넷 상에서 access 할 수 있는 방법은 여러가지가 있습니다. 그리고 그것들은 단지 web page나 이미지들만이 아닙니다. terminal session을 열어서 Gopher 서비스에 연결할 수도 있고 FTP 서버로부터 파일을 다운로드 받을 수도있고 이메일 메세지를 보내고 하는 것들을 인터넷으로 할 수 있습니다.


colon 전의 URL 부분을 URL scheme이라고 합니다. 그 종류는 아래와 같습니다.

  • http: — a file from a web server
  • https: — a file from an encrypted web server
  • mailto: — send an email message
  • ftp: — access a file via FTP
  • telnet: — open terminal sessions to a server


iOS 에서는 이메일 안에 있는 전화번호를 touch 해서 dialer 를 열고 전화를 걸 수가 있습니다. 이런 기능들은 아래와 같은 URL schemes 를 사용해서 구현 합니다.


  • tel: — make a phone call
  • sms: — send a text message
  • itms-apps: — opens the app store
  • music: — go to the current playing song in the music app


애플은 애플리케이션이 자기 자신만의 scheme 을 define 하도록 합니다. 그래서 다른 앱에서 그 앱을 열수 있도록 허용합니다. Corona Labs 는 1년전에 이 기능을 제공했습니다. 이와 관련 된 글을 보시려면 여기를 클릭하세요.



Google Maps URL Scheme


Maps app 에 빠르게 접근하도록 하기 위해 Google 은 여러분 앱이 접근 가능하도록 URL scheme 을 사용합니다.


comgooglemaps:


물론 URL scheme 은 URL 의 일 부분입니다. 여기에 추가로 host 이름과 호스트상의 리소스들을 가집니다. 앱이 실제로 host name 이 없고 개별 파일로 접근할 필요가 없으면 full URL 은 아래와 같습니다.

comgooglemaps://


코로나에서는 이 API 를 아래와 같이 사용하시면 됩니다.


system.openURL("comgooglemaps://")



여러분의 앱은 suspend 상태가 되고 구글 맵이 시작될 겁니다. 간단하죠? 구글 맵에서 근처 피자가게를 찾고 싶으세요? 혹은 구글 맵에서 할 수 있는 다른 것을 여러분 앱에서 directly 하고 싶으세요?


URL scheme 에 다른 추가적인 정보를 덧붙이면 여러분 앱 안에서 그런 특정 기능을 사용하도록 하실 수 있습니다.





1. Map Coordinates and Traffic View


아래의 코드가 기본 형식입니다.

system.openURL("comgooglemaps://?center=40.765819,-73.975866&zoom=14&
views=traffic")




이렇게 하면 맵을 열고 traffic 상태를 보여 줍니다. 그리고 zoom level 은 14 이고 위도 경도는 40.7N and 73.9W 인 지점이 화면 가운데에 위치할 겁니다. 이 에제는 뉴욕의 센트럴 파크의 위치를 보여 줄 겁니다.

잘 보시면 첫번째 파라미터 전에 물음표가 있는것을 알아 채셨을 겁니다. 그리고 각 파라미터 사이는 &로 구분하구요. 그러니까 이 파라미터들을 분해하면 아래와 같이 되겠죠.


?center=40.765819,-73.975866   --center map at these coordinates
&zoom=14                       --zoom to level 14
&views=traffic                 --show traffic view


2. Map “Street View”

여기에 mapmode=streetview parameter를 추가하면 street view를 보실 수 있습니다.


system.openURL("comgooglemaps://?center=40.765819,-73.975866&
zoom=14&views=traffic&mapmode=streetview")


3. Map Query


맛있는 피자를 원하세요? 그러면은 q=pizza를 다른 파라미터 전에 추가히세요.


system.openURL("comgooglemaps://?q=pizza&center=40.765819,-73.975866")


4. Driving Directions


A 지점에서 B 지점까지의 경로는 어떻게 알 수 있을 까요?


system.openURL("comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&
daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,
+Jamaica,+New+York&directionsmode=transit")



딱 보면 무지 복잡해 보이죠? 근데 자세히 보면 그냥 위와 같이 파라미터를 사용했을 뿐이예요.


?saddr=...         --"s" for "starting address"
&daddr=...         --"d" for "destination address"
&directionsmode=



+ 부호는 전부 다 뭘까요? 여기서 space 를 사용하면 문제가 발생할 수 있습니다. 그 space 를 + 부호로 대신 사용하는 겁니다. 아니면 hex code %20를 사용하셔도 됩니다.

근데 진짜 + 부호를 넣어야 되면 어떻게 할까요? 그럴 때는 hex code %2B 을 사용하셔야 됩니다.


Convenience Function


이렇게 파라미터를 추가하는게 짜증나시면 URL 을 encode 하는 함수를 사용하실 수도 있습니다.



function urlencode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w ])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end

system.openURL("comgooglemaps://?saddr=" .. 
urlencode("Google Inc., 8th Avenue, New York, NY") ..
"?daddr=" .. urlencode("John F. Kennedy International Airport,
Van Wyck Expressway, Jamaica, NY") .. "?directionsmode=transit")



보시듯이 openURL 안에 들어가는 것들을 함수로 간단하게 encoding 할 수 있습니다.



Maps App Installed or Not Installed?






URL scheme 에서 발생할 수 있는 문제는 디바이스에 구글앱이 깔려있지 않을 경우가 되겠죠? 깔려 있지 않으면 그 앱을 열 수가 없을 테니까요. 현재의 Corona Public Release(#971) 에서는 이럴 경우 화면과 같은 에러 메세지가 뜹니다. 아니면 그냥 silent fail 되던가요. 이건 바람직한 해결 방법이 아니죠.



Corona Daily Build #986부터 system.openURL() API를 call 했을 때 true/false를 리턴하기 때문에 이에 대해 대처할 수 있습니다.




 
local didOpenGoogleMaps =
system.openURL("comgooglemaps://?daddr=San+Francisco,+CA&saddr=cupertino")
if ( didOpenGoogleMaps == false ) then --defer to Apple Maps

system.openURL("http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino")
end

  

디바이스에 구글 맵이 깔려 있으면  didOpenGoogleMaps 변수(변수명은 여러분이 정하실 수 있습니다)가  true 가 될 것이고 깔려있지 않으면 false 가 될 겁니다. 이렇게 되면 target 앱이 깔려 있지 않을 경우 개발자는 특정 메세지나 특정 action 을 구현할 수 있게 되죠. 이 기능은 Daily Build #986 부터 사용 가능합니다. 유료 사용자일 경우 여기에서 다운 받으세요.


Ready to Begin?


여러분이 보셨듯이 코로나에서 구글 맵을 implementation 하는 것은 URL scheme 을 사용해서 아주 간단하게 처리하실 수 있습니다.  구글 맵이 제공하는 모든 기능을 살펴 보시려면 구글 맵 URL Scheme 웹사이트로 가셔서 보실 수 있습니다. 만약 애플 맵을 사용하시거나 구글 맵의 백업기능 지원으로 애플 맵 기능을 지원하시려면 이 문서를 참조하세요.



반응형


반응형

나는 꼼수다 마지막회를 정리하는 김어준 총수의 말입니다.


"노무현이 자기 목숨을 던져서 하나의 시대를 끝내는 것을 보면서 남은 세상은 어떻게든 해 보고 싶었습니다. 그래서 뒤돌아보지 않고 모든 걸 걸고 여기까지 왔습니다. 이번 대선이 시작되면서 저희가 약속했습니다. 공작은 우리가 상대한다. 약속은 지켰습니다. 이제 저희는 마이크를 내려 놓겠습니다. 고맙습니다. 쫄지마 끄읕~~~"


저에게는 너무 억울하고 답답하고 어디가서 뭔가 하소연 할 데도 못찾았는데...

이 MB 정권이 그동안 쌓아왔던 민주주의, 상식의 사회를 엉망으로 만들어 놓고 역사를 거꾸로 되돌리고 결국엔 노무현 전 대통령 마저 잃게 만든 이 말도 안되는 세상에서...


용기가 없어서 내 삶이 바쁘다는 핑계로 그냥 못본체 지나가려고 할 때 용기를 내서 제 소리를 내줬던 방송입니다.


그리고 저를 비겁하게 도망가지 않을 수 있도록 잡아 주었던 방송입니다.


그래서 많이 고맙고요..


그동안 이렇게 외국으로 나와서 살게 됐지만 계속 내 나라에 관심을 갖고 내가 할 수 있는 방법으로 참여할 수 있도록 크게 도움을 준 방송입니다.




국내 유일의 가카를 위한 헌정 방송이니 만큼 실제로 가카의 임기가 마무리 되는 대선때까지만 방송하기로 하고 시작했죠.

그리고 약속대로 대선을 하루 남겨놓고 마이크를 놓았습니다.


이제 우리가 투표에 참여해서 정권을 교체해야 합니다.

그래서 MB 를 제대로 심판 받게 하고 엉망이 된 이 나라를 바로 잡고...

새시대 새 정치로 희망을 만들 수 있도록 해야 합니다.



이제 20일 승리의 함성이 들릴 수 있도록 꼭 투표하고 주위 분들도 같이 투표에 참여할 수 있도록 합시다.. ^^

저도 어제 열심히 전화 카톡 때려서 5표 확보 했어요.. ^^



나꼼수 마지막회 마지막 부분에 흘렀던 음악은 1960년대 밥 딜런과 함께 미국의 저항가수, 인권운동 가수로 유명한 Joan Baez 의 Donna Donna 입니다.

도살장에 끌려가는 송아지에 대한 노래라는데요.
뭘 말하고 싶은 걸까요?



장터로 향하는 마차 위에
슬픈 눈망울의 어린 송아지 한 마리
그 위 높은 곳엔 제비 한 마리
날쎄게 하늘을 나네


바람들 웃는 것 좀 봐
배를 움켜쥐고 웃어대네
온종일 그리고 여름밤의 반이 다 가도록
웃고 또 웃어대네


도나 도나 도나 도나

도나 도나 도나 돈

도나 도나 도나 도나

도나 도나 도나 돈


'그만 투덜대.' 농부가 말했네
누가 너더러 송아지가 되래
누가 너더러 날개가 없으래
저리 당당히 자유로이 나는 제비처럼 말야


바람들 웃는 것 좀 봐
배를 움켜쥐고 웃어대네
온종일 그리고 여름밤의 반이 다 가도록
웃고 또 웃어대네


도나 도나 도나 도나

도나 도나 도나 돈

도나 도나 도나 도나

도나 도나 도나 돈

 
송아지들은 쉽사리 묶여 도살당하면서도
절대 그 이유를 알지 못하지
하지만 자유를 귀히 여기는 자라면
제비처럼 나는 법을 배우지


바람들 웃는 것 좀 봐
배를 움켜쥐고 웃어대네
온종일 그리고 여름밤의 반이 다 가도록
웃고 또 웃어대네


도나 도나 도나 도나

도나 도나 도나 돈

도나 도나 도나 도나

도나 도나 도나 돈


P.S. 나꼼수 만큼 재밌네요.

표창원 전 경찰대 교수의 토론 내용.

종편 최초로 8%가넘는 시청률을 기록했다네요.


반응형


반응형

아~~~~ 피곤해서 일찍 잠들었더니만 (9시도 안되서).. 그만 밤 12시에 깨 버렸네요.

빨리 다시 자야될텐데...

한국은 지금 오후 2시네요.

마지막 선거운동이 한창일텐데......


막판으로 갈수록 약간 정신은 없는데... 그래도 가벼운 마음으로 지켜보고 있습니다.

이제 내일 출근해서 열심히 일하고 오후 5시 반쯤에 집에 도착하면.

한국에선 이른 아침 막 투표가 시작됐겠네요.


그러면 시시각각 인터넷 하면서 투표율을 볼테고 나름대로 이렇겠다 저렇겠다 예측하다가.

잘들고... 모레 아침 5시에 일어나면 한국은 오후 6시...

막 투표가 끝나고 출구조사다 뭐다 결과 예측이 한창이겠죠.


결과는 밤 12시경에 나올 테니까 모레 점심 먹을 때 쯤이면 윤곽이 잡히지 않을까요?


아직 오지도 않은 미래의 일을 굳이 막 생각하는 걸로 봐서 저도 초조해 지나 보네요.

암만 시험공부를 완벽하게 많이 했어도 시험직전엔 떨리잖아요. ^^


지난 주말에 문재인 후보가 여론조사에서 golden crossing 이 이뤄저 역전을 한 것 같긴한데...

두 후보 지지층의 투표율 즉 연령별 투표율을 대입하면 문재인 후보가 앞서도 불안한 상황이고...


또 지지난번 오세훈. 한명숙 서울시장 선거를 보면 여론조사상으로 한나라당이 10% 이상 앞섰는데 결과적으로는 0.6%의 근소한 차이로 겨우 오세훈 시장이 된 점.

그리고 강원도지사선거에서도 민주당의 최문순 후보가 여론조사로는 한참 뒤지다가 실제 투표에서는 상대후보보다 많이 득표해 당선된 예.


등등을 볼 때는 이번에 발표된 여론 조사보다 실제로는 문재인 후보의 지지율이 훨씬 더 높지 않나 하는 분석도 있고요.


어쩄든 느낌은 좋습니다. 


문재인 후보나 안철수 전 후보나 그냥 편안히 잘 살 수 있는데...

시대의 요구 국민의 소리를 저버리지 않고 험한 길로 기꺼이 나와 주셔서..

안스럽기도 하면서 많이 고맙습니다.


모두 투표하셔서 미래를 만들어 갑시다.






정말 느낌이 좋습니다. ^^


반응형


반응형
Turning an HTML element into a jQuery Mobile accordion menu




이전 글에서 다룬 accordion menu 예제 파일을 실행 시킨 후 Firebug 로 jQuery Mobile에 의해 생성된 HTML 코드를 봅시다.




메뉴 title 을 가리키는 <h1> element 에는 ui-collapsible-heading-toggle class 를 가지고 있는 <a> child element 가 생성됐습니다.

이것은 title element가 클릭되면 버튼 처럼 처리 될 겁니다. 

data-role="collapsible" attribute 가 있는 <div> element 는
ui-collapsible-content CSS class 가 있는 새로운 <div> element 안에 그룹화 되었습니다?



반응형

command 로 iOS 에 있는 Pulse 시작시키기

2012. 12. 17. 23:26 | Posted by 솔웅


반응형
이번에 회사에서 모바일 VPN 앱인 Junos Pulse를 이용할 것 같습니다.
이와 관련해서 사전 조사를 하게 되서 관련 글을 정리해 둡니다.


Launching the Pulse for iOS App with a Command




Pulse launcher 는 디바이스 유적 iOS 앱으로 Junos Pulse를 install 했을 때 iOS와 에 register 된 command 입니다. 이 command 는 모든 login parameter 들을 명시할 수 있습니다.



여러분은 웹페이지 내와 외부 앱에서 이 Pulse launcher를 사용할 수 있습니다. 예를 들어 VPN 연결이 필요한 외부앱에서 이 Pulse launcher 를 사용해서 Pulse 를 실행시킬 수 있습니다. 만약 정확한 passcode로 이 앱을 시작시키거나 access 하려고 했다면 Pulse 는 시작 될 것이고 VPN 연결은 유저가 별도로 무엇을 입력할 필요 없이 시작 될 겁니다. 유저가 iOS 디바이스에서 Pulse Secure 의 웹포탈에 로그인을 하면 디폴트 페이지가 뜰 겁니다. iOS 디바이스 유저는 Pulse Secure Access Service Web Portal 로 로그인을 하고 VPN link를 클릭 하면 모바일 사파이에서 Pulse를 실행 시킬 수 있습니다.





Figure 1: iOS Device의 Pulse Secure Access Service Web Portal

모바일 사파리에 있는 VPN link를 tap 합니다. 그러면 Pulse app 이 실행될 겁니다. 만약 iOS 디바이스에 Pulse 가 install 돼 있지 않다면 에러가 뜰 겁니다. 그 다음 단계는 현재의 Pulse 연결 상태와 configuration 에 따라 진행 될 겁니다.


  • Pulse 가 연결상태가 아니라면 현재 세팅된 configuration에 따라 VPN 을 연결할 겁니다.
  • The target URL is already defined and the user just needs to specify a name for the connection. Pulse 가 연결된 상태가 아니고 target Pulse server 에 대한 configuration이 없다면 Pulse 는 Add Configuration 화면을 띄울 겁니다. Target URL 은 이미 정의 돼 있을 겁니다. 유저는 단지 connection 이름을 명시하시면 됩니다.
  • Pulse app 이 이미 Pulse server 에 연결된 상태라면 Pulse app 이 foreground 로 뜰 겁니다.


여러분의 Web Page나 external app에 Pulse launcher 를 employ 하시려면 아래 형식의 format 을 사용해서 링크를 걸어 주세요.

junospulse://<server-host>/<server-path>?method={vpn}&action={start|stop}
&DSID=<dsid-cookie>&SMSESSION=<smsession-cookie>&username=<username>
&password=<password>&realm=<realm>&role=<role>


Usage notes:


  • 만약 유저가 Junos Pulse 앱에 VPN configuration을 생성할 때 username, realm, role을 명시했다면 그 값들이 Web-based login 시 로그인 페이지에 자동으로 표시가 될 겁니다. 로그인 하는 동안 VPN configuration의 field들에 모두 자동적으로 이 값들이 채워졌거나 junospulse:// launch URL 이 채워졌다면 로그인 과정은 유저의 추가적인 input 과정 없이 자동으로 진행 될 겁니다.

  • Pulse app 은 VPN configuration의 password field 에 암호를 저장해 두지 않습니다. Pulse 앱은 iPhone Configuration Utility 나 Junos Pulse Mobile Security Suite 에 의해 인스톨 된 VPN configuration의 password field로 부터 어떤 값을 사용하지 않습니다. Junos Pulse 는 junospulse:// URLs에 명시된 암호만 이용합니다.

  • 유저가 직접 username,realm, role을 로그인하기 위해 입력하면 앱은 이 값들을 VPN configuration에 저장해 둡니다. 그리고 다음번에 이 값으로 자동으로 채워지게 될 겁니다. 유저가 입력한 password 는 VPN configuration에 저장되지 않습니다.

  • realm과 role field는 Apple iOS 4.2 이상의 버전에서 지원됩니다. 만약 Pulse 가 iOS 4.1 에서 실행이 됐다면 realm과 role field들은 Junos Pulse Add/Edit configuration view 에 나타나지 않을 겁니다.


반응형