모니터링

http://prometheus.io/docs/visualization/promdash/


http://grafana.org/



회사에서 쓰고 있는 좋은 툴 소개 (오픈 소스 포함) 

http://stackshare.io/



패킷 캡쳐(Stenoread)

https://github.com/google/stenographer



Load Generator (grinder보다 경량화된 느낌)

https://github.com/locustio/locust


Github 랭킹

http://github-awards.com/


(예, http://github-awards.com/users/search?login=McDo)

Posted by '김용환'
,


서비스가 종료되어서 보지 못하는 웹 싸이트를 볼 때 유용하다. 





예를 들어 http://www.enjoythearchitecture.com/ 는 문제가 있다.

Site Disabled



아래와 같이 해당 싸이트를 구글 캐쉬에서 찾으면 볼 수 있다.  (시간이 지나면 결국 사라진다.....)


http://webcache.googleusercontent.com/search?q=cache:http://www.enjoythearchitecture.com/



Google에 있는 http://www.enjoythearchitecture.com/의 저장된 페이지입니다. 2015년 2월 3일 00:42:11 GMT에 표시된 페이지의 스냅샷입니다. 그동안 현재 페이지가 변경되었을 수 있습니다. 자세히 알아보기
도움말: 이 페이지에서 검색어를 빨리 찾으려면 Ctrl+F 또는 ⌘-F(Mac)를 입력하여 검색 바를 사용하세요.

 

Welcome to enjoyTheArchitecture.com. In this website I try to study the architecture and design of the existing systems. There is a lot of code hidden in opensource projects that claims to teach us design solutions, architectural patterns, idioms or naïve application of existing patterns and a set of principles and practices . . .



Posted by '김용환'
,

 

explorer 사용시 광고 창 뜨는 문제가 발생했다.

가족 구성원 중 한 명이 컴퓨터를 작업하다가, 실수해서 광고 창이 계속 뜨는 부분이 생겼다고 한다.

확인해 보니 머 하나 검색하면, 학원 광고/웹디스크 광고/Gmarket 광고까지 뜨는 것이었다.

 

1. 안티바이러스, 클리너를 설치했다. 그러나 소용이 없었다.

hosts 설정을 봐도 바뀌지 않았다.

 

2. 네이버/다음으로 검색하니. 이미지 한장짜리로 보여주더니, 금융기관으로 가라는 네이버 내부 팝업이 떴다.

피싱 싸이트로 연결되는 듯 했다.

 

3. msconfig 실행해서 불필요한 프로세스는 처음부터 시작되지 않도록 했다.

재시작 해보고 나서, 아예 인터넷이 안되었다.

 

4. 터미널 실행시켜 "nslookup www.naver.com"을 실행해 보았다. 뭔가 발견

서버:    UnKnown
Address:  127.0.0.1

*** UnKnown이(가) www.naver.com을(를) 찾을 수 없습니다. No response from server

 

5. 네트웍 카드 속성 확인해서 dns 확인

127.0.0.1로 박혀 있었다. 헐. 자동으로 받도록 수정하니 잘 되었다.

 

 

* 결국 스파이웨어는 내부 네트웍 카드의 dns 설정을 127.0.0.1로 바꿨고,

내부 프로세스로 설치되도록 하여 도메인 정보를 가로채거나 스파이웨어 짓을 한것으로 여겨졌다.

 

네이버나 다음에서 비슷한 내용이 없는 듯해서, 공유차 작성 함.

 

 

Posted by '김용환'
,


bitly 아키텍처 정보가 있어서 공유.



http://highscalability.com/blog/2014/7/14/bitly-lessons-learned-building-a-distributed-system-that-han.html



Platform 

Note, that these were just what was mentioned in the talk, it’s not a comprehensive list.

  • HDFS

  • S3

  • Nagios

  • The real time distributed messaging system bitly uses is Nsq.

  • Bitly uses hostpool to manage a pool of hosts.

  • The end of the talk is cut off, but it’s mentioned bitly uses quite a few different databases. 


Lessons Learned 

  • Knowledge is power. The more you understand the properties of the things you are working with the better decisions you can make and the more efficiently you can work. Efficiency means you can make bigger, faster systems at a much lower cost.

  • Build stuff that deals with leaky abstractions. If you are using a layer of abstraction that hides the underlying distributed nature of the system it will eventually bubble through. Your code has to understand and deal with any leaks.

  • Put it all on one box if you can. If you don’t need a distributed system then don’t build one. They are complicated and expensive to build.

  • In a Service Oriented Architecture failure means reduced functionality instead of going down.

  • SOA + queues + async messaging is really powerful. This approach isolates components, lets work happen concurrently, lets boxes fail independently, while still having components be easy to reason about.

  • Use synchronous requests when speed and consistency are paramount. Give users an error rather than a slow or wrong answer.

  • Event style messages are better than command style messages. They allow for better isolation between systems and naturally support multiple consumers. Helps keep services focussed and not worried about anything beyond what the service is supposed to do.

  • Annotate rather than filter. Filters at the producer level bake in assumptions about what the downstream services care about. Example is public vs private links. Filtering private links out of the stream means that services interested in private links won’t get the links they need. Instead, annotate an event with the fact that a link is either private or public and let services operate only on the kind of events they care about.

  • Services should play nice with each other. Use back pressure to prevent a service from being overloaded and route around failed services.

  • If there isn’t a Nagios check on something it’s almost certainly broken. You just don’t know it yet.

  • Tools should expose information to humans. Get the right information to the right people at the right time.


동영상 발표 자료 (말로 설명)

http://devslovebacon.com/conferences/bacon-2014/talks/lessons-learned-building-distributed-systems-at-bitly




이외에 bitly 개발자 블로그

http://word.bitly.com/


Posted by '김용환'
,

java performance fundamental 쓰신 저자 분이 공유하신 ppt 자료


http://novathin.kr/m/post/75

Posted by '김용환'
,


mysql의 insert ignore / replace into / on duplicate update에 대한 설명이 잘 되어 있어서 펌질했다.  


http://mysqlguru.github.io/mysql/2014/03/05/manage-dup-key2.html


아래 표는 위 블로그의 내용의 마지막 내용을 얘기하였다.


분류특징
INSERT IGNORE기존 레코드가 남아 있음
기존 레코드의 AUTO_INCREMENT 값은 변하지 않음
REPLACE INTO기존 레코드가 삭제되고, 신규 레코드가 INSERT됨
따라서 AUTO_INCREMENT의 값이 변경됨
ON DUPLICATE UPDATEINSERT IGNORE의 장점 포함함
중복 키 오류 발생 시, 사용자가 UPDATE될 값을 지정할 수 있음


Posted by '김용환'
,



ppt, 문서에서 무료(상업적으로도 무료임)로 사용 가능한 icon (아이콘) 을 다운로드할 수 있는 싸이트 이다.


http://pixabay.com/


예를 들어, 서버일 때는 아래와 같은 아이콘을 다운로드해서 사용할 수 있다. 

http://pixabay.com/ko/photos/%EC%84%9C%EB%B2%84/

'scribbling' 카테고리의 다른 글

[링크] java performance fundamental 자료  (0) 2015.01.13
mysql - insert ignore, replace, on duplicate update  (0) 2015.01.13
Hichart 팁  (0) 2015.01.01
bootstrap 팁  (0) 2014.12.26
프로그래밍 언어 탑 10 - 2014년 12월 기준  (0) 2014.12.19
Posted by '김용환'
,

Hichart 팁

scribbling 2015. 1. 1. 04:36


내가 자주 실수하는 내용을 정리했다. 


1. x축(x axis)의 날짜/시간/값 지정하기

x축으로 날짜나 시간을 지정할 때, 바로 list<String>로 만들어서 출력하면 절대로 차트가 나오지 않는다.

['00:00:00', ..] 와 같이 single (또는 double)quotation을 사용해야 한다. 

y 축의 경우는 single(또는 double) quotation 없이 사용한다. 대신 천단위로 나오는 ,(comma)가 나오지 않아야 한다. freemarker + highchart 사용시 comma 를 잘 사용하여 차트가 나오게 한다. (참조 : http://knight76.tistory.com/entry/java-listmap%EA%B3%BC-freemark-%EC%97%B0%EB%8F%99)



2. y축(y axis)는 여러 개로 만들 수 있다.

하나 또는 두개만 그릴 수 있다고 생각했지만, 3차 y 축도 그릴 수 있다.


3. minimum 값을 추가할 수 있다.

min: 0


4. 차트 내부 선 안보이게 하기 (series.visible을 false로 변경)

series: [

                {

                   

                    yAxis: 0,

                    data: [<#list y0Axis as item> ${item},</#list> ],

                    visible: false

                },

                {

                   

                    yAxis: 1,

                    data: [<#list y1Axis as item> ${item}, </#list>],

                    visible: false

                },

            ]


 

5. 범례 이동

legend라 찾아야 하며, 왼쪽 위에 범례를 주려면 아래 정보를 활용한다.


        legend: {

            layout: 'vertical',

            backgroundColor: '#FFFFFF',

            floating: true,

            align: 'left',

            x: 100,

            verticalAlign: 'top',

            y: 70

        },



좋은 예제

http://jsfiddle.net/SdTcU/1/

Posted by '김용환'
,

bootstrap 팁

scribbling 2014. 12. 26. 18:13



줄이 너무 길어서 다음 줄로 넘기는 경우 (line break)


http://stackoverflow.com/questions/17124827/how-to-break-long-word-in-spanusing-twitter-bootstrap


  word-break: break-word;




Posted by '김용환'
,

top 10 programming language 

IEEE 에서 나온 자료가 있어서 공유한다. 


출처 : 

http://spectrum.ieee.org/computing/software/top-10-programming-languages 
랭킹 순위 

1.Java 100.0 
2.C 99.2 
3.C++ 95.5 
4.Python 93.4 
5.C# 92.2 
6.PHP 84.6 
7.Javascript 84.3 
8.Ruby 78.6 
9.R74.0 
10.MATLAB 72.6 



구글 트렌드로 조사해보니. 대부분의 언어가 정체 되거나 하강하고 있는데. 상승 곡선 중인 언어는 대충 5개

Python, Go, R, Arduino, Clojure 

이 중 가장 많이 Python의 상승곡선이 커지고 있다..


'scribbling' 카테고리의 다른 글

Hichart 팁  (0) 2015.01.01
bootstrap 팁  (0) 2014.12.26
Jenkins 관련 발표 자료  (0) 2014.11.25
'JDK_WEB_WAS 서버 표준화와 오픈 소스 거버넌스' 기고  (0) 2014.11.05
[Tech Planet 2014] 좋은 자료  (0) 2014.11.03
Posted by '김용환'
,