J2EE
2009.03.03 16:19

GlassFish v3 ?

조회 수 19735 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
GlassFish 는 응용서버(Application Server)이다.
모듈화, 가벼우며, 확장성있는 구조를 가진다.

아래 사항들을 목표로 한다.
  • An open, modular, extensible platform
  • A fast, easy, reliable application server
  • An enterprise-ready application server with massive scalability and sophisticated administration
  • Product updates and add-ons through the industry-strength Update Center 2.0
  • Support for OSGi
  • Support for dynamic languages such as Ruby and Groovy
  • Support for Java EE 6

참조: http://wiki.glassfish.java.net
TAG •

조회 수 60166 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

#include <stdio.h>
#include <math.h>

#define PI M_PI

unsigned char IsLeapYear(int year);
unsigned char GetLastDay(unsigned int uiYear, unsigned char ucMonth);
int CalcJulianDay(unsigned int uiYear, unsigned char ucMonth, unsigned char ucDay);
double CalcGamma(int iJulDay);
double CalcGamma2(int iJulDay, int hour);
double CalcEqofTime(double gamma);
double CalcSolarDec(double gamma);
double DegreeToRadian(double angleDeg);
double RadianToDegree(double angleRad);
double CalcHourAngle(double lat, double solarDec, int time);
double CalcSunriseGMT(int iJulDay, double latitude, double longitude);
double CalcSunsetGMT(int iJulDay, double latitude, double longitude);
void GetTimeString(double minutes, char *pszTimeString);
double GetSunriseTime(int year, int month, int day, double latitude, double longitude, int zone, int daySavings);
double GetSunsetTime(int year, int month, int day, double latitude, double longitude, int zone, int daySavings);

unsigned char IsLeapYear(int year)
{
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

unsigned char GetLastDay(unsigned int uiYear, unsigned char ucMonth)
{
    switch(ucMonth) {
        case 2: // 2월
            if( (uiYear % 4) == 0 ) {        // 4로 나누어 떨어지는 해는 윤년임.
                if(uiYear % 100 == 0) {    // 그중에서 100으로 나누어 떨어지는 해는 평년임 
                    if(uiYear % 400 == 0) return 29; // 그중에서 400으로 나누어 떨어지는 해는 윤년임.
                    return 28; // 평년
                }
                return 29;    // 윤년
            }
            return 28;    // else 평년
        case 4: case 6: case 9: case 11: // 4, 6, 9, 11월
            return 30; // 30일
    }

    return 31; // 그외 31일
}


int CalcJulianDay(unsigned int uiYear, unsigned char ucMonth, unsigned char ucDay)
{
    int i;
    int iJulDay;
    iJulDay = 0;
    for(i=1; i<ucMonth; i++) {
        iJulDay += GetLastDay(uiYear, i);
    }
    iJulDay += ucDay;

    return iJulDay;
}

double CalcGamma(int iJulDay)
{
    return (2.0 * PI / 365.0) * (iJulDay - 1);
}
double CalcGamma2(int iJulDay, int hour)
{
    return (2.0 * PI / 365.0) * (iJulDay - 1 + (hour/24.0));
}

// Return the equation of time value for the given date.
double CalcEqofTime(double gamma)
{
    return (229.18 * (0.000075 + 0.001868 * cos(gamma) - 0.032077 * sin(gamma) - 0.014615 * cos(2 * gamma) - 0.040849 * sin(2 * gamma)));

}

// Return the solar declination angle (in radians) for the given date.
double CalcSolarDec(double gamma)
{
    return (0.006918 - 0.399912 * cos(gamma) + 0.070257 * sin(gamma) - 0.006758 * cos(2 * gamma) + 0.000907 * sin(2 * gamma));
}

double DegreeToRadian(double angleDeg)
{
    return (PI * angleDeg / 180.0);
}

double RadianToDegree(double angleRad)
{
    return (180*angleRad / PI);
}

double CalcHourAngle(double latitude, double solarDec, int time)
{
    double latRad = DegreeToRadian(latitude);
    double hour_angle = acos(cos(DegreeToRadian(90.833)) / (cos(latRad)*cos(solarDec)) - tan(latRad) * tan(solarDec));
    if(time) {
        return hour_angle;
    }
    else return -hour_angle;
}

double CalcSunriseGMT(int iJulDay, double latitude, double longitude)
{
    double gamma = CalcGamma(iJulDay);
    double eqTime = CalcEqofTime(gamma);
    double solarDec = CalcSolarDec(gamma);
    double hourAngle = CalcHourAngle(latitude, solarDec, 1);
    double delta = longitude - RadianToDegree(hourAngle);
    double timeDiff = 4.0 * delta;
    double timeGMT = 720.0 + timeDiff - eqTime;
    double gamma_sunrise = CalcGamma2(iJulDay, timeGMT/60.0);
    eqTime = CalcEqofTime(gamma_sunrise);
    solarDec = CalcSolarDec(gamma_sunrise);
    hourAngle = CalcHourAngle(latitude, solarDec, 1);
    delta = longitude - RadianToDegree(hourAngle);
    timeDiff = 4.0 * delta;
    timeGMT = 720.0 + timeDiff - eqTime;

    return timeGMT;
}

double CalcSunsetGMT(int iJulDay, double latitude, double longitude)
{
    // First calculates sunrise and approx length of day
    double gamma = CalcGamma(iJulDay + 1);
    double eqTime = CalcEqofTime(gamma);
    double solarDec = CalcSolarDec(gamma);
    double hourAngle = CalcHourAngle(latitude, solarDec, 0);
    double delta = longitude - RadianToDegree(hourAngle);
    double timeDiff = 4.0 * delta;
    double setTimeGMT = 720.0 + timeDiff - eqTime;
    // first pass used to include fractional day in gamma calc
    double gamma_sunset = CalcGamma2(iJulDay, setTimeGMT/60.0);
    eqTime = CalcEqofTime(gamma_sunset);
    //alert("eqTime = " + eqTime);
    solarDec = CalcSolarDec(gamma_sunset);
    //alert("solarDec = " + radToDeg(solarDec));
    hourAngle = CalcHourAngle(latitude, solarDec, 0);
    delta = longitude - RadianToDegree(hourAngle);
    timeDiff = 4.0 * delta;
    setTimeGMT = 720.0 + timeDiff - eqTime; // in minutes
    return setTimeGMT;
}


void GetTimeString(double minutes, char *pszTimeString)
    // timeString returns a zero-padded string given time in minutes
{
    double floatHour = minutes / 60.0;
    double hour = floor(floatHour);
    double floatMinute = 60.0 * (floatHour - floor(floatHour));
    double minute = floor(floatMinute);
    double floatSec = 60.0 * (floatMinute - floor(floatMinute));
    double second = floor(floatSec);

    sprintf(pszTimeString, "%02d:%02d:%02d", (int)hour, (int)minute, (int)second);
}

double GetSunriseTime(int year, int month, int day, double latitude, double longitude, int zone, int daySavings)
{
    int julday = CalcJulianDay(year, month, day);
    double timeLST = CalcSunriseGMT(julday, latitude, longitude) - (60.0*zone) + daySavings; // minutes
    return timeLST;
}

double GetSunsetTime(int year, int month, int day, double latitude, double longitude, int zone, int daySavings)
{
    int julday = CalcJulianDay(year, month, day);
    double timeLST = CalcSunsetGMT(julday, latitude, longitude) - (60.0*zone) + daySavings;
    return timeLST;
}


int main()
{
    char szTmp[64];
    double latitude, longitude, lst;
    latitude = 35.53; // 대구
    longitude = -128.37;
    latitude = 35.829147; 
    longitude = -128.50015;
    latitude = 37.34; // 서울
    longitude = -126.589999;
    printf("latitude:  %f\n", latitude);
    printf("longitude: %f\n", longitude);
    lst = GetSunriseTime(9, 2, 19, latitude, longitude, -9, 0);
    GetTimeString(lst, szTmp);
    printf("sunrise: %s (%lf)\n", szTmp, lst);
    lst = GetSunsetTime(9, 2, 19, latitude, longitude, -9, 0);
    GetTimeString(lst, szTmp);
    printf("sunset:  %s (%lf)\n", szTmp, lst);
    return 0;
}



TAG •

Linux
2009.02.18 10:26

Fedora Core yum 저장소

조회 수 36736 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
fedora 가 release 되면서 이전 버전은 http://download.fedora.redhat.com/pub/fedora/linux/core/ 에서 더이상 찾을 수가 없다.

다행히도 아래에 저장되어 있으니, 현재 core를 사용중이라면 /etc/yum.repo.d/ 안의 저장소 주소를 아래의 것으로 변경해서 사용하면 될 듯.. emoticon

http://archives.fedoraproject.org/pub/archive/fedora/linux/

TAG •

조회 수 21223 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
통신을 할 때 아래 데이터를 보낼 경우, 수신측에서 받아서 읽어낼 때 사용하면 될 듯..
A: float 형 0.05 를 전송
B: 4 bytes 0.05를 읽어냄

DataInputStream 의 readFloat() 메소드
byte[] baTemp = new byte[4];
// 아래 4 바이트는 float 형 5.05 임.
baTemp[3] = (byte)0x9a;
baTemp[2] = (byte)0x99;
baTemp[1] = (byte)0xa1;
baTemp[0] = (byte)0x40;

try {
    DataInputStream dis = new DataInputStream(new ByteArrayInputStream(baTemp));
    System.out.println(dis.readFloat()); // 5.05가 출력됨.
    dis.close();
}
catch (Exception e) {
    e.printStackTrace();
}

Float의 intBitsToFloat() 정적 메소드
byte[] baTemp = new byte[4];
// 아래 4 바이트는 float 형 5.05 임.
baTemp[3] = (byte)0x9a;
baTemp[2] = (byte)0x99;
baTemp[1] = (byte)0xa1;
baTemp[0] = (byte)0x40;

// 정수형(int)으로 변환
int iTemp = (baTemp[0] << 24) & 0xff000000;
iTemp |= (baTemp[1] << 16) & 0x00ff0000;
iTemp |= (baTemp[2] << 8) & 0x0000ff00;
iTemp |= (baTemp[3]) & 0x000000ff;

System.out.println(Float.intBitsToFloat(iTemp); // 5.05 출력됨.



TAG •

Database
2008.11.24 11:00

MySQL / Admin

조회 수 21717 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
  • root 계정에 패스워드 부여
    • set password for root@localhost=password('새로운 암호');
    • set password for root@"%"=password('새로운 암호');
    • flush privileges;

  • 새로운 사용자에게 모든 권한 주기(새로운 사용자 생성제외)
    • grant all privileges on *.* to 새로운사용자ID@localhost identified by '새로운암호';
    • mysql> flush privileges;

  • 네트워크를 통새 DB에 접속하려면
    • grant all privileges on *.* to 사용자ID@"%"
      identified by '사용자암호';
    • mysql> flush privileges;

  • 새로운 사용자에 SELECT, INSERT, UPDATE, DELETE, DROP 연산을 지정된 DB만 허용
    • grant select, insert, update, delete, drop on DB명.* to 사용자ID@localhost identified by '사용자암호';
    • mysql> flush privileges;

  • mysqldump (old version compatible)
    # mysqldump --extended-insert=FALSE --compatible=mysql323 --default-character-set=latin1 -uUSERNAME -p DB_NAME > DUMP_FILE.sql
TAG •

Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 39 Next
/ 39