'분류 전체보기'에 해당되는 글 648건

  1. 2014/06/30 용비 직급제 부활
  2. 2014/06/24 용비 Java에서 Property File 변경 Event 처리
  3. 2014/04/24 용비 Cygwin에서 Redis 빌드 및 설치
  4. 2014/04/23 용비 Cygwin에서 rocksdb 빌드하기
  5. 2014/04/22 용비 Install gcc 4.7+ in CentOS

직급제 부활

Daily Memo 2014/06/30 09:23 용비
회사에서 모든 직원들을 매니저로 호칭을 통일한 것이 어언.... 3년 전.
그런데 다시 직급제를 부활시켰다.

근데 이게, 연봉과 직급이 직결되다 보니 뭔가 인사 시스템이 이해하기 어려워졌다.
아마도, 인사팀에서도 엄청 고생했을 것이다.

내 직급은... 뭐가 될까. 차장? 부장?
차장이 가장 좋은데, 어떻게 될지 모르겠다.

나도 어느 새 이렇게 나이를 먹었구나...
그래도 아직 30대인데..ㅠ.ㅠ
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/595

org.apache.commons.vfs2.impl.DefaultFileMonitor
http://docs.oracle.com/javase/tutorial/essential/io/notification.html
http://www.java2s.com/Code/Java/File-Input-Output/MonitoringaFileforchanges.htm
http://howtodoinjava.com/2012/10/10/auto-reload-of-configuration-when-any-change-happen/
http://tunatore.wordpress.com/2011/05/13/how-to-detect-file-change-using-java-filechangeevent/
http://www.javaspecialists.eu/archive/Issue095.html <===

서비스를 운영하는 중에 설정을 변경하여 실시간으로 반영해야 하는 요건이 종종 발생한다.
이 때 처리할 수 있는 방법은 크게 2가지가 있다.

하나는 파일 변경에 대한 OS레벨의 시스템 이벤트를 Triggering할 수 있도록 프로그래밍하는 것이고, 다른 하나는 일정 주기로 해당 File을 Polling하여 변경 여부를 판별하여 설정에 반영하는 것이다.

시스템에서 파일 변경 이벤트를 받을 수 있다면, 첫번째 방법이 가장 확실하다.
하지만,  Java  환경에서는 Timer나 Task를 이용하여 데몬으로 동작하는 프로그램을 작성하여 파일 변경을 감시하거나, 일정 주기로  Thread에서 파일 변경을 감시하는 것이 대부분이다.

대표적으로 Apache의 VFS나 commons-configuration이 이에 해당한다.

OS별로 파일 변경에 대한 시스템 이벤트를 Triggering할 수 있는 방안은 없을까?
다음 버전의 JDK에는 반영이 되었으면 좋겠다.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/594

1. Redis 다운로드
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar -zxvf redis-2.8.9.tar.gz
cd redis-2.8.9

2. Cygwin Fix
vi src/redis.h

맨 위에 다음 항목 추가

/* Cygwin Fix */  
#ifdef __CYGWIN__  
#ifndef SA_ONSTACK  
#define SA_ONSTACK 0x08000000  
#endif  
#endif

3. Redis 빌드
make
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/591

1. gflags 설치
wget https://gflags.googlecode.com/files/gflags-2.0-no-svn-files.tar.gz
tar -xzvf gflags-
2.0-no-svn-files.tar.gz
cd gflags-2.0
./configure && make && sudo make install
2. snappy 설치
wget https://snappy.googlecode.com/files/snappy-1.1.1.tar.gz
tar -xzvf snappy-1.1.1.tar.gz
cd snappy-1.1.1
./configure && make && sudo make install
3. apt-cyg 설치 (Cygwin Console에서 수행:yum이나 apt-get과 비슷한 기능)
svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
chmod +x /bin/apt-cyg
4. zlib 설치
apt-cyg install zlib
apt-cyg install zlib-devel
5. bzip2 설치
apt-cyg install bzip2
apt-cyg install bzip2-devel
6. rocksdb 설치
6.1. rocksdb 소스 다운로드
https://
github.com/facebook/rocksdb 에서 zip파일 다운로드 후
c:\cygwin\home\user계정 폴더로 옮김
Cygwin Console에서 압축 해제
unzip rocksdb_master.zip
6.2. build_detect_platform 수정
cd rocksdb_master
cd build_tools
vi build_detect_platform
아래 항목을 찾아서 다음과 같이 변경
PLATFORM_CXXFLAGS="-std=c++11" => PLATFORM_CXXFLAGS="-std=gnu++11"
case "$TARGET_OS"  in 을 찾아서 아래 항목 추가
CYGWIN_*)
PLATFORM=OS_LINUX
COMMON_FLAGS="$COMMON_FLAGS $MEMCMP_FLAG -lpthread -DOS_CYGWIN"
PLATFORM_LDFLAGS="-lpthread"
PORT_FILE=port/port_posix.cc
;;
6.3. Makefile 수정
아래 항목을 찾아서 수정
WARNING_FLAGS = -Wall -Werror => WARNING_FLAGS = -Wall
6.4. include/rocksdb/slice.h 파일에 다음 내용 추가
#include <cstdio>
6.5. include/rocksdb/status.h 파일에 다음 내용 추가
#include <sstream>
#include <cstdlib>
#if defined(OS_CYGWIN)
namespace std {
template <class Tdigit>
string to_string(Tdigit value)
{
stringstream stream;  
stream << value;  
return stream.str();  
}  
inline int stoi(const string& str)  
{  
return ::atoi(str.c_str());  
}  
}  
#endif
6.6.port/port_posix.h 파일 수정
#if defined(OS_MACOSX) || defined(OS_SOLARIS) || defined(OS_FREEBSD) ||\  
    defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_DRAGONFLYBSD) ||\  
    defined(OS_ANDROID) || defined(OS_CYGWIN)  
// Use fread/fwrite/fflush on platforms without _unlocked variants  
#define fread_unlocked fread  
#define fwrite_unlocked fwrite  
#define fflush_unlocked fflush  
#endif
6.7. util/env_posix.cc 파일 수정
assert 주석 처리
public:  
  PosixRandomAccessFile(const std::string& fname, int fd,  
                        const EnvOptions& options)  
      : filename_(fname), fd_(fd), use_os_buffer_(options.use_os_buffer) {  
    //assert(!options.use_mmap_reads);  
  }
defined(OS_CYGWIN) 추가

  virtual uint64_t NowNanos() {
#ifdef OS_LINUX || OS_CYGWIN
    struct timespec ts;
    clock_gettime(CLOCK_MONOTONIC, &ts);
    return static_cast<uint64_t>(ts.tv_sec) * 1000000000 + ts.tv_nsec;
#elif __MACH__
    clock_serv_t cclock;
    mach_timespec_t ts;
    host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
    clock_get_time(cclock, &ts);
    mach_port_deallocate(mach_task_self(), cclock);
#endif
    return static_cast<uint64_t>(ts.tv_sec) * 1000000000 + ts.tv_nsec;
  }
6.8. Compile시 Error
./util/log_buffer.h에서 timeval now_tv 변수에 대한 오류가 발생할 경우
./util/log_buffer.h 파일에 #include <sys/time.h> 추가
snappy, gflags library Error like next
/usr/lib/gcc/i686-pc-cygwin/4.8.2/../../../../i686-pc-cygwin/bin/ld: cannot find -lsnappy /usr/lib/gcc/i686-pc-cygwin/4.8.2/../../../../i686-pc-cygwin/bin/ld: cannot find -lgflags collect2: error: ld returned 1 exit status Makefile:251: recipe for target 'db_bench' failed make: *** [db_bench] Error 1
case "$TARGET_OS" in 의 CYGWIN_*) 부분에서 다음 항목 추가
 PLATFORM_LDFLAGS="-lpthread -L/usr/local/lib"
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/590

Install gcc 4.7+ in CentOS

Articles 2014/04/22 22:41 용비
You could simply use his repo and install just gcc, instantly.
1. gcc 4.7 Install

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++

2. Edit Bash File

export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc  
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++

3. gcc 4.8 Install

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-2/devtools-2.repo
yum --enablerepo=testing-devtools-2-centos-6 install devtoolset-2-gcc devtoolset-2-gcc-c++



받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/589