2016년 12월 11일 일요일
2015년 7월 23일 목요일
Posted by ColaLib on 오전 11:07 with No comments
그대가 서 있는 곳에서,
그대가 가진 것으로,
그대가 할 수 있는
최선의 일을 하라.
-루즈벨트
2015년 7월 16일 목요일
Posted by ColaLib on 오후 7:11 with 3 comments
Explain.
Visual Sutdio Extensions 프로그램중
Code Maid에 대해 정리.
Join Line, Sort Line ,Code CleanUp, Code space 등의 기능 제공.
설치방법 및 대표적인 기능 정리 예정...
Visual Sutdio Extensions 프로그램중
Code Maid에 대해 정리.
Join Line, Sort Line ,Code CleanUp, Code space 등의 기능 제공.
설치방법 및 대표적인 기능 정리 예정...
Posted by ColaLib on 오후 7:04 with No comments
Explain.
Visual Studio Hot key list
자주쓰는 내용 Bold
Rename : Ctrl + R, R
Extract Method : Ctrl + R , M
Extract Interface : Ctrl + R, I
Navigator : Ctrl + ,
Find All Reference : Shift + F12
Class View : Ctrl + Shift + C
Auto Document : Ctrl + K + D
Comment Selection : Ctrl + K + C
UnComment Selection : Ctrl + K + U
Go to : Ctrl + G
2015년 6월 21일 일요일
Posted by ColaLib on 오전 1:32 with 2 comments
AnalysisEngine.
class AnalysisEngine { public enum Step { WEB, IN, CAFE, BLOG } const string NAVER_OPENAPI_KEY = "InputYourNaverAPIKey"; const string NAVER_OPENAPI_URL = "http://openapi.naver.com/search?"; const int NAVER_SEARCH_COUNT = 100; string keyword; string url; string blog; string cafe; public AnalysisEngine(string keyword, string url, string blog, string cafe) { this.keyword = keyword; this.url = url; this.blog = blog; this.cafe = cafe; } public void Analysis() { AnalysisResult result = new AnalysisResult(); result.webRank = AnalysisProccess(Step.WEB, url); result.blogRank = AnalysisProccess(Step.BLOG, blog); result.cafeRank = AnalysisProccess(Step.CAFE, cafe); Console.WriteLine("0 = 100위안에 없음."); Console.WriteLine("네이버 웹문서 분석 결과 : " + result.webRank); Console.WriteLine("네이버 블로그 분석 결과 : " + result.blogRank); Console.WriteLine("네이버 카페 분석 결과 : " + result.cafeRank); Console.ReadLine(); } int AnalysisProccess(Step step, string target) { string html = AnalysisTools.GetHTML(CreateURL(step)); XmlDocument doc = new XmlDocument(); doc.LoadXml(html); int rank = 0; foreach (XmlNode node in doc.SelectNodes("rss/channel/item/link")) { string realURL = GetRealURL(node.InnerText); if (realURL.Length > target.Length) realURL = realURL.Substring(0, target.Length); Console.WriteLine(realURL); ++rank; if (target == realURL) { return rank; } } return 0; } string CreateURL(Step step) { string target = ""; switch (step) { case Step.WEB: target = "webkr"; break; case Step.IN: target = "in"; break; case Step.CAFE: target = "cafearticle"; break; case Step.BLOG: target = "blog"; break; default: break; } return string.Format("{0}key={1}&query={2}&display={4}&start=1&target={3}", NAVER_OPENAPI_URL, NAVER_OPENAPI_KEY, keyword, target, NAVER_SEARCH_COUNT); } /* Naver API를 활용하여 url주소를 획득 할 시 실주소가 아닌 API 로 맵핑된 가상주소를 제공 해주기 때문에 직접 리다이렉트 주소를 획득하여 반영 하기위한 함수. */ string GetRealURL(string url) { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.AllowAutoRedirect = false; webRequest.Timeout = 10000; webRequest.Method = "HEAD"; HttpWebResponse webResponse; string uriString = string.Empty; using (webResponse = (HttpWebResponse)webRequest.GetResponse()) { if ((int)webResponse.StatusCode >= 300 && (int)webResponse.StatusCode <= 399) { uriString = webResponse.Headers["Location"]; webResponse.Close(); } } return uriString; } }
AnalysisResult
class AnalysisResult { public int webRank; public int cafeRank; public int blogRank; }
AnalysisTool
class AnalysisTools { public static string GetHTML(string url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { Stream receiveStream = response.GetResponseStream(); StreamReader readStream = null; if (response.CharacterSet == null) { readStream = new StreamReader(receiveStream); } else { readStream = new StreamReader(receiveStream, Encoding.UTF8); } string data = readStream.ReadToEnd(); response.Close(); readStream.Close(); return data; } return string.Empty; } }
Main
class Program { static string keyword = ""; //키워드 static string homepage = ""; //홈페이지 주소 static string blog = ""; //블로그 주소 static string cafe = ""; //카페 주소 static void Main(string[] args) { AnalysisEngine engine = new AnalysisEngine( keyword , homepage, blog, cafe); engine.Analysis(); } }
2015년 6월 2일 화요일
Posted by ColaLib on 오후 8:23 with No comments
Explain.
Unity Coroutine 함수를 활용한 Object의 Lerp(선형보간)운동 구현구현
가장 심플하게 구현한 예제.
C#의 Generic , Reflection을 활용하여 기능 확장 가능.
Code.
Unity Coroutine 함수를 활용한 Object의 Lerp(선형보간)운동 구현구현
가장 심플하게 구현한 예제.
C#의 Generic , Reflection을 활용하여 기능 확장 가능.
Code.
IEnumerator moveCoroutine(float duration, Vector3 end) { WaitEndOfFrame wait = new WaitEndOfFrame(); Vector3 start = transform.position; float elapsed = 0.0f; while(elapsed < duration){ elapsed += Time.deltatime; transform.position = Vector3.Lerp(start,end elapsed / duration); yield return wait; } transform.position = end; } IEnumerator colorCoroutine(float duration, Color start, Color end) { WaitEndOfFrame wait += new WaitEndOfFrame(); float elapsed = 0.0f; while(elapsed < duration){ elapsed = Time.deltaTime; renderer.material.color = Color.Lerp(start,end elapsed / duration); yield return wait; } renderer.material.color = end; }
2015년 5월 14일 목요일
피드 구독하기:
글 (Atom)