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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Kurogo Tutorial 21 - Emergency Module -

2012. 7. 12. 22:35 | Posted by 솔웅


반응형

Emergency Module


Emergency 모듈은 site의 emergency 정보에 대한 모바일 인터페이스를 제공합니다. 이 모듈은 가장 최근의 emergency 정보와 emergency contacts를 display 할 수 있습니다. 모듈에 대한 데이터 소스는 drupal server에서 올 수가 있습니다. 이 emergency drupal 모듈은 add-ones 안의 add-ons/drupal-modules/emergency 에서 찾아 보실 수 있습니다. (현재까지는 Drupal 6까지만 지원합니다.) 동시에 standard RSS feed 도 emergency notice에서 사용될 수 있습니다. 그리고 contacts list는 ini file에서 작성하실 수 있습니다.


Configure Emergency Notice


emergency notice를 display 하고 싶으면 config/emergency/feeds.ini[notice]  섹션을 추가하시면 됩니다.




Other Options


  • NOTICE_EXPIRATION -  Notice 가 active 상태이어야 할 시간 (초단위). notice 가 해당 feed에서 remove 되지 않는 경우 유용합니다. 디폴트는 1주간 입니다. (604800초).
  • NOTICE_MAX_COUNT - feed로 부터 보여야 할 notice들의 maximum number 값


Configure Contacts List


만약 emergency contact phone number들을 추가하기를 원한다면 config/emergency/feeds.ini 안에 contacts 섹션을 넣으셔야 합니다.

연결 된 Drupal emergency module의 contacts list를 configure 하세요.



아니면 ini 파일에 직접 contact list를 넣으실 수도 있습니다.


  • CONTROLLER_CLASS = “INIFileContactsListRetriever”
  • BASE_URL (해당 ini 파일을 가리켜야 합니다.)


ini 파일에는 primary contacts를 위해 primary 섹션이 있어야 하고 secondary contacts를 위해 secondary 섹션이 있어야 합니다. 각 contact는 아래와 같이 포매팅 되면 됩니다.


title[] = "Police"
subtitle[] = ""
phone[] = "6173332893"


secondary contacts 섹션이 있는 경우 모듈 변수 MORE_CONTACTS를 수정해서 secondary contacts 링크의 title을 수정하실 수 있습니다. 디폴트로 이 값은 “More Emergency Contacts”로 돼 있습니다.


Using Drupal Emergency Module


Installation


이 add on 모듈은 Drupal 6가 있어야 합니다. Drupal 7은 아직 지원되지 않습니다. 두루팔 모듈을 인스톨하는 표준 절차를 따라주세요.


  • 이 모듈을 인스톨 하려면 우선 drupal CCK (Content Creation Kit) 모듈과 drupal Views 모듈을 인스톨 해야 합니다.
  • add-ons/drupal-modules/emergencysites/all/modules/ 디렉토리로 복사하세요.
  • drupal administration panel 에서 modules 로 가세요. 그리고 "Emergency Info" 모듈을 선택하세요. 다음에 save configuration을 하시면 됩니다.


Usage


emergency notification을 input 하시려면 content type "Emergency Notification"의 node를 만드세요. RSS feed는 가장 최근에 업데이트 된 Emergency Notification 만 보여 줄 겁니다. 

emergency contacts를 input 하시려면 Emergency Contacts 타입의 노드를 생성하세요. 그리고 primary와 secondary emergency contacts를 채워 넣으시면 됩니다. 만약에 이 타입에 1개 이상의 노드를 생성하시면 RSS feed는 가장 최근에 업데이트된 것을 보여줄 겁니다.


http://YOUR_DRUPAL_SERVER_DOMAIN/emergency-contacts-v1 에 생성된 RSS feed 는 여러분이 입력한 contact 정보는 빠져 있을 겁니다.  /admin/user/permissions로 가셔서 field_primary_contactsfield_secondary_contacts를 anonymous user 가 볼 수 있도록 enable 해 주셔야 합니다.




반응형

'WEB_APP > Kurogo' 카테고리의 다른 글

Kurogo Tutorial 22 - Content Module -  (0) 2012.10.10
Database Authentication  (0) 2012.09.12
Authentication  (0) 2012.09.06
Flat File Authentication  (0) 2012.09.06
Access Control and Authorization  (0) 2012.09.06
Kurogo Tutorial 20 - Module Interaction -  (0) 2012.06.13
Kurogo Tutorial 19 - The Kurogo Object -  (0) 2012.06.12
Kurogo Tutorial 18 - Video Module -  (0) 2012.06.07
Kurogo Tutorial 17 - Calendar Module -  (0) 2012.06.01
Kurogo Tutorial 16 - Database Access -  (0) 2012.05.30

JQuery Mobile - Theming Page

2012. 7. 12. 20:57 | Posted by 솔웅


반응형

Page Theming


jQuery Mobile 에서는 페이지의 style을 지원하는 rich theming system을 제공하고 있습니다. 각 페이지 위젯에는 자세한 theming documentation이 있습니다. 이 글에서는 어떻게 theming이 apply 되는지 몇개의 high-level 예제들을 살펴보도록 하겠습니다.


data-them attribute는 헤더나 footer 콘테이너에 apply 될 수 있습니다. 이 콘테이너에 apply 되서 lettered theme color swatch들을 적용할 수 있도록 합니다. data-theme attribute가 content container에 적용 될 때에는 data-role="page"가 적용된 div나 콘테이너에 넣으라고 권장 드립니다. 그렇게 하면 배경색이 전체 페이지에 적용될 수 있습니다. 이 작업이 끝나면 페이지의 모든 위젯들은 그 페이지 콘테이너에 적용된 theme을 상속 받게 됩니다. header와 footer에는 디폴트로 theme "a"가 적용 됩니다. 모든 element에 theme "b" 가 적용되기를 원하신다면 이것을 header나 footer에 적용 시키세요. 페이지 div에 data-theme="b"를 하듯이 header와 footer div에도 이렇게 하면 됩니다. 이 디폴트 theme은 다양한 견본(swatches)들을 활용해서 visual texture를 만들고 각각 에 맞는 최상의 contrast를 다양한 element들에 적용하고 있습니다.




위 화면에 대한 소스와 기타 theme a ~ e 까지의 간단한 예제가 있는 소스를 아래에 올립니다.


themingpages.html


그리고 Tutorial Page에 가시면 A~E 까지의 theme들을 적용한 각 form 들을 보여주는 페이지가 있습니다.


이 페이지들을 따로 작업해서 파일로 만들었습니다.

보시면 도움이 될 겁니다.



themingApage.html


themingBpage.html


themingCpage.html


themingDpage.html


themingEpage.html



소스들을 보시면서 이것 저것 바꾸시고 테스트해 보시면 확실히 자기것으로 만들 수 있을 겁니다.


그럼 항상 즐 코딩 하세요.


반응형

'jQuery Mobile > JQM Tutorial' 카테고리의 다른 글

Fixed toolbars  (0) 2012.07.28
JQuery Mobile - Navbar  (2) 2012.07.25
JQuery Mobile - Footers  (0) 2012.07.24
JQuery Mobile - Header structure  (0) 2012.07.23
JQuery Mobile - Toolbar types  (0) 2012.07.21
JQuery Mobile - touchOverflow 기능  (0) 2012.07.09
JQuery Mobile - PhoneGap apps  (1) 2012.07.09
JQuery Mobile - Scripting pages  (1) 2012.07.05
JQuery Mobile - Dynamically Injecting Pages  (0) 2012.06.28
JQuery Mobile - Ajax, hashes & history 02 -  (0) 2012.06.27

Best Practices for Organizing Projects

2012. 7. 11. 11:33 | Posted by 솔웅


반응형
Posted on

. Written by


샘플코드나 다른 예제 혹은 이 웹사이트의 튜토리얼을 포함해서 코로나를 배우는데 명료하게 알기 힘든것이 바로 프로젝트를 어떻게 organize 할 것이냐 입니다. 알려 드릴 사항은 모든것이 여러분의 project 폴더 아래로 가게 된다는 거고 나머지는 여러분 취향대로 하시면 되는겁니다. 그리고 sub folder 도 지원 됩니다. 여기까지가 지금까지 이 주제와 관련해서 저희가 한 말이죠.


그런데 여러분의 프로젝트가 규모가 더 커지면 이 지식만 가지고는 organize 하기가 좀 부족합니다. 점점 더 많은 리소스들이 여러분 프로젝트에 추가 될 겁니다. 오디오 파일이나 이미지, 비디오, 루이 모듈 같은 것들이요. 이걸 제대로 정리하지 못하면 개발하는데 아주 복잡하게 만들죠.


이 튜토리얼은 코로나 SDK 프로젝트 organization 테크닉의 전부를 말하지는 않습니다. 단지 좀 더 효율적으로 관리할 수 있는 방법을 제안할 뿐입니다.




Project Structure


모든걸 간단하게 가지고 가는 것은 여러분의 프로젝트가 잘 organize 되어야하고 그로 인해 유지 관리하는 것이 쉽도록 하는 겁니다. 제가 소개할 이  organization technique 은 대부분의 프로젝트에서 쉽게 셋업하고 쉽게 이해하고 쉽게 scale (여러분의 프로젝트가 점점 더 커지게 될 때를 대비해서) 하는데 충분히 도움이 될 겁니다.


프로젝트 폴더를 구성할 때 여러분이 따라야할 기본적인 전제는 비슷한 파일들을 다른것과 별도로 보관하라는 겁니다. 비슷하고 다르다는 기준은 type 이나 그 종류를 말할 수도 있습니다. 아래 샘플로 제공하는 프로젝트 hierarchy 구조가 있습니다.


  • Project_Folder/ (top-level)
    • images/ (folder)
    • audio/ (folder)
    • videos/ (folder)
    • data/ (folder)
    • scripts/ (folder)
    • main.lua
    • config.lua
    • build.settings
    • Default.png
    • Default@2x.png
    • Icon.png
    • Icon@2x.png


위의 폴더 구조 예제에서 top-level 디렉토리(폴더) 에 있는 것은 가장 중요한 것은 main.lua 입니다. 다른 config.lua, build.settings 같은 파일들도 top-level에 있어야 된는 겁니다.

이 top 에 있는 폴더들은 그 이름만 봐도 어떤 것들인지 쉽게 이해가 갈 겁니다. 아래 간단히 설명을 덧 붙이겠습니다.

  • images – image files with the extension of (most-likely) .png or .jpg.
  • audio – audio files (.caf, .mp3, .ogg, etc.)
  • videos – video files (.avi, .mp4, etc.)
  • data – read-only data files used by your app. They can really be any format, but common ones include .json and .xml.
  • scripts – other Lua files (apart from main.lua). More on this in a moment.


더 이상의 설명은 필요 없겠죠? script 폴더만 제외하고는요.

여러분이 util.lua를 사용해야 한다고 가정해 봅시다. 일반적이로 이 파일을 top-level에 위치시키는데요. (main.lua 하고 같은 위치에요). 만약 그렇게 할 경우 아래처럼 불러올 수 있습니다.


local util = require( "util" )


만약 이 util.lua를 scripts 폴더 아래에 넣었다면 위와 같이 하면 작동하지 않을 겁니다. 폴더이름에 점을 붙이고 모듈 이름을 넣으셔야 합니다. 아래처럼요.


local util = require( "scripts.util" )


이미지를 불러올때는 폴더 이름을 쓰고 / 를 넣고 이미지 이름을 넣으셔야 합니다. script에서는 .을 사용했는데 여기서는 /를 사용해야 합니다. 사실 스크립트만 다릅니다. 아래 그 예제가 있습니다.


local obj = display.newImage( "images/corona.png" )


Scaling Projects

여러분의 프로젝트에 더 많은 이미지나 스크립트 그리고 다른 파일들이 추가되면 이 sub directory 만으로도 충분하지 않게 되죠. 그렇게 되면 서브 디렉토리 안에 또 다른 서브디렉토리를 넣어야 겠죠. 아래 depth 가 더 늘어나도 그 안에 있는 파일이나 스크립트를 require 하는 방법은 위에서 설명한 것과 같습니다. 아래는 몇단계의 level 이 있는 게임을 상상하고 폴더 구조를 구성해 봤습니다.


  • Project_Folder/ (top-level)
    • images/ (folder)
      • level-001/ (folder)
      • level-002/ (folder)
      • level-003/ (folder)
    • audio/ (folder)
      • level-001/ (folder)
      • level-002/ (folder)
      • level-003/ (folder)
    • videos/ (folder)
      • level-001/ (folder)
      • level-002/ (folder)
      • level-003/ (folder)
    • data/ (folder)
      • level-001/ (folder)
      • level-002/ (folder)
      • level-003/ (folder)
    • scripts/ (folder)
      • level-001/ (folder)
      • level-002/ (folder)
      • level-003/ (folder)
    • main.lua
    • config.lua
    • build.settings
    • Default.png
    • Default@2x.png
    • Icon.png
    • Icon@2x.png


위의 구조와 다른 점은 이미지,오디오, 비디오, 스크립트 디렉토리들이 이제 그 안에 또 sub-directory들을 가지고 있다는 겁니다. 각각의 레벨 별로 구분되는 서브 폴더들을요. 10단계 20단계 되는 게임을 상상해 보시면 이런식으로 개발하는 것이 훨씬 더 간편하겠죠? 오랫동안 유지 관리하는데 훨씬 유리하게 잘 조직화 돼 있다고 할 수 있습니다.


50단계가 있는 게임인데 모든 리소스를 top-level  프로젝트 디렉토리에 보관하고 있다고 상상해 보세요. 유지 관리하는 관점에서 보면 악몽이 되겠죠?


이 튜토리얼에서 소개한 대로 프로젝트 구조를 관리하시던지 아니면 여러분만의 방법을 사용하시던지 Corona SDK 프로젝트를 시작할 때 프로젝트의 파일구조를 충분히 고민하시고 난 후 시작하는것이 나중에 가서 훨씬 더 도움이 되실 겁니다.



반응형