trunk
brankches
tags |
'기타' 카테고리의 다른 글
WebGL로 구현한 사이트 (0) | 2014.10.30 |
---|---|
스탠드업 회의 (0) | 2013.11.18 |
앱 개발 시 유념해야할 내용들.. (0) | 2012.11.05 |
Eclipse Plug-in 삭제 방법 (0) | 2012.03.12 |
이클립스 한글 폰트 문제 (0) | 2012.02.15 |
trunk
brankches
tags |
WebGL로 구현한 사이트 (0) | 2014.10.30 |
---|---|
스탠드업 회의 (0) | 2013.11.18 |
앱 개발 시 유념해야할 내용들.. (0) | 2012.11.05 |
Eclipse Plug-in 삭제 방법 (0) | 2012.03.12 |
이클립스 한글 폰트 문제 (0) | 2012.02.15 |
품질이 전부다. 사용자 평가 점수를 높게 받아라
|
돈을 벌려면 유틸리티 앱을 만들어라. 새로운 아이디어보다 잘 만들어진 무언가가 필요하다.
|
대형 벤더를 두려워 말라. 항상 여분의 시장이 있다.
|
내게 성공을 준 앱은 가장 적은 시간을 들인 앱이었다. 단순함이 이긴다.
|
기능을 추가하지 말고 할 수 있는 것을 완벽하게 해라 .
|
유니크해라. 뭔가 다르면서 고품질이면 반드시 팔린다. 사용자는 뭔가 다른 것을 선택하길 갈망한다. 그것을 줘라.
|
포터블하기 위해 모던하고 신선한 UI를 선택해라. 사용자는 UI가 섹시하기만 하다면 네이티브인지 따위는 관심없다.
|
긴여행이다. 포기하지말고 끝까지 가라. [출처] 어느 Adobe AIR 개발자의 여정.|작성자 똘토리 |
스탠드업 회의 (0) | 2013.11.18 |
---|---|
SVN(subversion) branches, tags, trunk 에 대한 개념 (0) | 2012.11.05 |
Eclipse Plug-in 삭제 방법 (0) | 2012.03.12 |
이클립스 한글 폰트 문제 (0) | 2012.02.15 |
SVN 파일 삭제 (0) | 2012.02.13 |
Flex에 넘겨주려는 java class엔 setter메소드가 필수로
존재해야 Flex에서 제대로 값을 받아볼 수 있다.
초를 일, 시간, 분 단위로 변환 (0) | 2012.11.20 |
---|---|
BlazeDS와 Tomcat7 최신 버젼 호환성 (0) | 2012.11.06 |
컬럼 시리즈 하나만 데이터팁 비활성화 (0) | 2012.09.18 |
컬럼챠트에 평균 라인 긋기 (0) | 2012.09.18 |
Event Model의 이해 (0) | 2012.08.10 |
1. PKCS12 포맷의 키저장소(keystore) 파일 생성
1.1 openssl 을 이용하여 키파일 과 인증서 파일을 생성한다.
- 참조 : http://dimdim.tistory.com/entry/openssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%83%9D%EC%84%B1
1.2 아래와 같이 openssl 명령어로 생성한 키파일 과 인증서 파일을 이용하여 PKCS12 포맷의 키저장소 파일을 생성한다.
- "-in" 옵션은 인증서 파일
- "-inkey" 옵션은 인증서 생성에 사용된 키파일
- "-out" 옵션은 키저장소 파일
- "-name" 옵션 값은 원하는 이름으로 하면 됨
$ openssl pkcs12 -export -in crt.pem -inkey key.pem -out .keystore -name tomcat
Enter Export Password: #패스워드 입력 (Tomcat설정에 사용됨으로 기억해야 함.)
Verifying - Enter Export Password: #패스워드확인
2. Tomcat 설정
- HTTPS 프로토콜을 제공하기 위한 Connector설정을 server.xml 파일에 추가한다.
<Service name="Catalina">
. . .
<Connector
port="8443" maxThreads="100"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="keystore 파일 경로" keystorePass="keystore 패스워드" keystoreType="pkcs12"
clientAuth="false" sslProtocol="TLS"/>
. . .
</Service>
3. Tomcat 재기동
4. 참고 자료
- JKS 표맷의 키저장소를 사용한 HTTPS 설정 참고자료
- Tomcat HTTPS 설정 참고자료 : http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
[Tomcat7] Context [] startup failed due to previous errors (0) | 2013.06.24 |
---|---|
tomcat 6.0.26 jdbc memory leak 해결법 (0) | 2013.05.10 |
Tomcat6 catalina.out 로그 일자별로 생성하기 (0) | 2012.08.09 |
현재 생성된 Session 수 체크하기 (0) | 2012.01.04 |
Could not initialize class sun.awt.X11GraphicsEnviroment 처리 방법 (0) | 2011.05.16 |
가끔씩 운용 서버에 수정사항을 적용할 때 백업이 필요한 경우가 있다.
다수의 서버가 존재할 경우 업로드 폴더를 심볼릭 링크를 걸어두는 경우가 있다.
이 때 보통 cp 명령을 쓰게 되는데
심볼릭 링크까지 그대로 복사하는 옵션은
cp -rP 디렉토리명 new디렉토리명
-r 디렉토리 복사 옵션
-P 디렉토리 안 특성을 그대로
Zmodem 실행시 rz 없다는 메시지 나올때 처리 (0) | 2015.10.06 |
---|---|
솔라리스에서 압축/해제 하기 (0) | 2013.01.02 |
Java Application은 각각 별도의 jvm process로 동작하므로 상호 통신 및 정보를 주고받기에 여러가지 에로사항이 있다. 그로 인해 현재 동일한 프로그램이 실행되고 있는지를 체크하는 방법이 여러가지가 편법(?)으로 사용되고 있는데, 그 중 몇 가지를 나열해 보자면
1. Database Flag 값 변경.
2. 환경설정 파일 변경 혹은 파일 생성 후 락.
3. 임의의 사용하지 않는 port 할당.
우선 2번은
// lock 을 시도합니다.
lock = channel.tryLock();
// lock이 null이라는 것은 다른 JVM에서 이미 파일의 lock을 획득했다는 것입니다. 따라서 채널을 종료하고
// 예외를 발생시켜 runnable의 값을 false로 유지시킵니다.
if (lock == null) {
channel.close();
throw new Exception();
}
이런 식으로 사용이 가능하다.
또 3번은
try {
isRun = new DatagramSocket(1103);
} catch (SocketException e) {
throw new MonitoringException();
}
이런 식으로 사용이 가능하겠다.
이클립스 디버깅 시 사선으로 브레이크 포인트 표시되면서 안될 때.. (3) | 2013.04.24 |
---|---|
JAVA에서 HTML 긁어오기 (1) | 2013.01.15 |
[Java] Class.forName(String className) (0) | 2012.09.03 |
콘솔 출력 코드 추적 (0) | 2012.08.29 |
솔라리스에서 64bit JDK설치 (0) | 2012.05.31 |
<mx:ColumnSeries id="secondSeries" xField="date" yField="name" interactive="false">
</mx:ColumnSeries>
BlazeDS와 Tomcat7 최신 버젼 호환성 (0) | 2012.11.06 |
---|---|
amf 통신 시 규약 (0) | 2012.10.29 |
컬럼챠트에 평균 라인 긋기 (0) | 2012.09.18 |
Event Model의 이해 (0) | 2012.08.10 |
UIComponent Lifecycle (0) | 2012.08.08 |
Main.mxml
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” >
<mx:Script>
import mx.collections.ArrayCollection;
[Bindable]
public var dataCollection:ArrayCollection = new ArrayCollection([
{Month: "Jan", planned: 2000, actual:1856, average:1790 },
{Month: "Feb", planned: 1590, actual:1624, average:1790},
{Month: "Mar", planned: 1820, actual:1832,average:1790},
{Month: "Apr", planned: 1450, actual:1524, average:1790},
{Month: "May", planned: 1775, actual:1695, average:1790}]);
</mx:Script>
<mx:Panel>
<mx:ColumnChart id=”myChart” dataProvider=”{dataCollection}”
showDataTips=”true”>
<mx:horizontalAxis>
<mx:CategoryAxis dataProvider=”{dataCollection}”
categoryField=”Month”/>
</mx:horizontalAxis>
<mx:series>
<mx:ColumnSeries xField=”Month” yField=”planned” displayName=”Planned”/>
<mx:ColumnSeries xField=”Month” yField=”actual” displayName=”Actual”/>
<mx:ColumnSeries xField=”Month” yField=”average” displayName=”Average”
itemRenderer=”AverageLineRenderer”/>
</mx:series>
</mx:ColumnChart>
</mx:Panel>
</mx:Application>
AverageLineRenderer.as
package
{
import flash.display.Graphics;
import mx.charts.ChartItem;
import mx.charts.series.items.ColumnSeriesItem;
import mx.charts.series.items.LineSeriesItem;
import mx.controls.Label;
import mx.core.IDataRenderer;
import mx.core.UIComponent;
public class AverageLineRenderer extends UIComponent implements IDataRenderer
{
private var _chartItem:ChartItem;
private var _label:Label; // A label to place on the top of the column.
public function AverageLineRenderer():void
{
super();
// Add the label
_label = new Label();
addChild(_label);
_label.setStyle(“color”,0×000000);
}
public function get data():Object
{
return _chartItem;
}
public function set data(value:Object):void
{
if(value is ColumnSeriesItem)
{
_chartItem = value as ColumnSeriesItem;
if(_chartItem != null)
{
// Assigns the yValue to the label
if (ColumnSeriesItem(_chartItem).yValue!=null)
_label.text = “Average: ” + ColumnSeriesItem(_chartItem).yValue.toString();
else
_label.text=”";
}
}
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
if ( _chartItem.index == 0) // Do it only for the first chartItem
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var g:Graphics = graphics;
g.clear();
g.beginFill(0xFF0000); // Red line, you can select your own color
// Draw the line across the chart. This is actually a rectangle with height 1.
g.drawRect(-20,0,this.parent.width+20, 1);
g.endFill();
//Place the label
_label.setActualSize(_label.getExplicitOrMeasuredWidth(),_label.getExplicitOrMeasuredHeight());
_label.move(unscaledWidth ,-15);
}
}
}
}
amf 통신 시 규약 (0) | 2012.10.29 |
---|---|
컬럼 시리즈 하나만 데이터팁 비활성화 (0) | 2012.09.18 |
Event Model의 이해 (0) | 2012.08.10 |
UIComponent Lifecycle (0) | 2012.08.08 |
엄진영의 Custom Component 제작 강의 (0) | 2012.08.08 |
[GCITY] 등속운동 관련 로직 정리 (0) | 2012.03.29 |
---|
Sencha Touch 2.1 is our next release of the Sencha mobile framework. This release includes the following key upgrades: significant performance improvements, an advanced list component, enhanced native support through the Sencha Mobile Packager and an integrated charting support.
In Sencha Touch 2.0 some of our developers experienced nested layout performance issues. Our investigations found that by isolating panels and providing more known layout information to the browser the framework and your application will perform faster. We have included this solution in the Touch 2.1 release. The API impact of the change is minimal, but the performance improvement is dramatic.
new List component is included with this release. This implementation replaces the old list component and is no longer bound one-to-one between a store and DOM elements. This means that the length of the list will no longer have a bearing on it's scrolling performance. In addition, lists can use components if you specify them with an itemConfig and itemTpl will be converted to an itemConfig dynamically if you specify one. Due to these changes, the DOM structure was altered for lists, and you may need to change some CSS selectors to add appropriate styling for your lists. Typically, you need to change the selector from '.x-list-item' to '.x-list-item > .x-dock-vertical > .x-dock-body' for any padding or margins you may have added. We changed the TouchTweets example with the new implementation; instead of using a component based DataView, it now uses the new List. It’s a good example of using the new List component with dynamic large lists.
The Sencha Mobile Packager is included in the the Sencha Cmd, previously known as the SDK tools. In this release, we have enhanced native support. For iOS, you can configure your Sencha Touch apps to use the iOS in-app purchase system and native push notifications. Also, you can open another installed application directly within a Sencha Touch app through an open URL call. In previous releases, the native packager allowed you to deploy the app directly to the iOS simulator. We have now added the capability to directly deploy apps to the iOS devices. For Android, you can configure your app upgrade without version changes using the new versionCode key. And for both iOS and Android, you can now access the native contacts API. The packager config also lets you pass in "raw" data to the iOS info.plist and Android AndroidManifest.xml through the rawConfig key. We also heard your feedback about non-admin access to the native packager, and we have updated the setup so admin accounts aren’t required. Another major enhancement is that we’ve given you the ability to write plug-ins for the Sencha Mobile Packager, so you can extend the packager capabilities to fit your needs.
We have extended Sencha Touch Charts support in Sencha Touch 2.1. Please refer to the Sencha Touch Charts article for more exciting news about Sencha Touch Charts.
Sencha Touch 2.1 is in beta. Please give it a try and let us know if you have any feedback. Watch the Sencha Touch Forum for any release update.
보시다시피 기존에는 리스트 컴포넌트에서 store에 데이터와 dom을 1:1 매핑 시켰기 때문에 데이터가 늘어나면 느려지는 현상이 있었는데 dom은 제한 시키고 재사용함으로써 성능을 향상시킨다고 하네요.
또 터치챠트도 2.1에선 호환되게 만든다고 하는군요..
리스트쪽이 느려서 계속 쓸지 말지 고민했는데 지켜봐야겠네요:)
관련 주소는 여기를 참조.
베타 다운로드는 여기를 참조.
부트스트랩 관련 블로그 (0) | 2013.08.13 |
---|---|
Dectecting Mobile Devices with Javascript (0) | 2012.12.04 |
다양한 Javascript Lib 소개 (0) | 2012.08.02 |
[Sencha Touch2] MitchellSimoens Touch Grid.. (2) | 2012.04.04 |
[Sencha Touch2] 이제 태블릿피씨로도 어느곳에서나 센차터치를 공부해보자. (0) | 2012.04.04 |