본문 바로가기

c#19

TIOBE(티오베) 개발언어 순위 (java 4위, c# 5위 그리고...) 2001년 어느 PC 월간지 별책 부록으로 아래 이미지 같은 Visual Studio.net Bata CD를 배포한 적이 있다.CD를 얻기 위해 평소 사지도 않는 PC잡지까지 구매했던 기억이 있다. 구매한 잡지는 프로그램세계인지 마이크로소프트웨어인지 가물가물 하지만... 찾아보니 프로그램세계 2001년 1월호에 Visual Studio.net 베타 CD가 부록으로 포함되어 있었던 것 같다. 아마도 마이크로소프트웨어에도 그 당시 비슷한 포맷으로 배포 되었을 것이다. 아무튼 당시 CD를 얻기 위해서 집 근처 서점 몇 개를 찾아 헤맸던 기억이 난다. 구입하려 했던 시기가 이미 다음달 호 발간이 얼마 남지 않았던 터라 정말 어렵게 구했었다. 출처 : https://bbs.ruliweb.com/hobby/boar.. 2023. 10. 17.
blazor Callback parameter (and event call) blazor에서 callback parameter을 이용하여 부모(parent) 자식(child) 간 파라미터 전달 또는 이벤트 실행 [parent] @code { private void HandleResult(string result) { // Handle the result from the component Console.WriteLine(result); } }​ [child] Do Work @code { [Parameter] public EventCallback Callback { get; set; } private void DoWork() { // Do some work var result = "Work completed"; // Raise the callback event and pass the.. 2023. 1. 17.
경사도 public static double Grade(double gap, double distance) { double rtnGrade = 0.0; rtnGrade = Math.Round(gap / Math.Sqrt((distance * 1000) * (distance * 1000) - (gap * gap)) * 100, 2); return Common.NaNValue(rtnGrade); } public static double NaNValue(double value) { double rtnValue = !double.IsNaN(value) ? value : 0; return rtnValue; } 2023. 1. 16.
자전거 칼로리 공식 /// /// 자전거 칼로리 공식 /// /// 몸무게 /// 운동시간(분) /// 평균속도 /// public static double GetKcal(double totalTime, double kph) { double minute = totalTime / 60; double weight = 0; List listSet = Utils.SetData.GetSetting(); if (listSet.Count > 0) weight = Convert.ToDouble(listSet[0].WEIGHT); else weight = 0; double kcal = 0.0d; if (kph >= 0 && kph = 14 && kph = 17 && kph = 20 && kph = 23 && kph = 25 && kph =.. 2023. 1. 15.
ChatGPT ... https://chat.openai.com/ 검색을 해보면 OpenAI가 개발한 프로토타입 대화형 인공지능 쳇붓이다라고 정의를 하고 있다. 출시한지 채 두 달이 안 된 시점 계속 된 이야기꺼리가 많이 나오고 있다. 계속 듣기만 하다가 한 번 가입해봤다. 얼마나 똑똑한가 요즘 개발하고 있는 blazor 관련 몇 가지 명령(요청? or 대화?)을 내려봤다. 가상의 AI와 대화한다는 것 자체가 아직까지 영화같은 느낌으로 다가온다. 일단 그저 신기할 따름이다. 1. 기본적인 Dapper 생성 요청 2. blazor에서 Rest Api를 호출하는 코드 기초적인 것이지만 코드의 품질?(정확도?)이 좋다(높다?). 이제 단순한 코더의 생명은 이런 똑독한 AI의 출현으로 퇴출이 멀지 않을것으로 확신한다. 나 또한 이 .. 2023. 1. 14.
c# 자전거 라이딩 거리 계산 관련 Utils 1. 거리 계산 (GPS 좌표 변환 공식 / 지구의 곡률 적용) /// /// 거리 계산 /// /// /// /// /// /// public double Distance(double lat1, double lng1, double lat2, double lng2) { double theta = 0.0d; double dist = 0.0d; theta = lng1 - lng2; dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta)); dist = Math.Acos(dist); dist = rad2deg(dist); di.. 2023. 1. 13.
c# DateTime (날짜, 시간, 요일 추출) Utils Gps log Viewer을 만들면서 DateTime 객체를 가공하여 보여주는 경우가 많았다. 개발하면서 추가했던 Utils Method 들이다. https://learn.microsoft.com/ko-kr/dotnet/api/system.datetime?view=net-7.0 DateTime 구조체 (System) 일반적으로 날짜와 시간으로 표시된 시간을 나타냅니다. learn.microsoft.com public class DateTimeHelper { public enum TimeFormat { HH, HH_MM, HH_MM_SS, HH_MM_SS_MS, HHHH_MM_SS_MS } /// /// Time Format Enum /// public enum DateFormat { /// /// Loc.. 2023. 1. 13.
16년 전 Silverlight로 만든 동영상 플레이어 당시 네이버에서 가장 컷던 실버라이트 카페에 올렸던 실버라이트로 만든 동영상 플레이어 이미지다. 오랜만에 보니 감회가 새롭다. ㅋ 실버라이트 때문에 한 때 푹 빠져서 이것 저것 만들어 봤던 기억이 떠오른다. 당시 비싼 가격에 웹호스팅 업체에 한 달 사용료를 내고 테스트용 웹사이트를 돌렸던적이 있었다. 요즘에야 .NET Core가 나오면서 MS도 플랫폼 개방에 많이 신경 쓰는지라 리눅스 환경에서도 닷넷 서비스를 할 수 있는 시대가 됐다. 또 저렴한 가격에 MS의 에저, 아마존의 AWS등 클라우드 환경이 지원되기도 하다. 옛날 호랑이 담배 피던 시절처럼? 서버가 맛가면 밤 새워가며 복구하는 시대는 저 멀리 갔다. 막말로 카트리지 형태로 이전에 돌리던 환경 그대로 복제하여 복구 할 수도 있다. 또 쿠버네티스,.. 2023. 1. 13.
C# GPX(GPS Exchange Format) Paser https://www.strava.com/ Strava | 달리기, 사이클링, 하이킹 앱 - 트레이닝, 추적, 공유 www.strava.com gpx 파일을 다운로드 받을 수 있다. 2013-07-19T11:55:35Z 오전 라이딩 1 182.2 2013-07-19T11:55:35Z 183.2 2013-07-19T14:42:01Z 183.2 2013-07-19T14:42:19Z 183.2 2013-07-19T14:42:45Z 183.2 2013-07-19T14:43:08Z 181.9 2013-07-19T14:43:30Z 182.3 2013-07-19T14:44:22Z .... *.gpx 파일을 열어보면 xml 스키 안에 특정 시간 간격으로 (예:1초) 기본적으로 기록되는 시각, 경도와 위도 그리고 주변기.. 2023. 1. 13.
첫 발행... 2006. 12. 22 너무 오랜 기간... 블로그를 방치해둔 것 같다. 2008년 가을의 어느 날 나의 열정을 식게 하는 일이 있었다. 아무튼... 이제 다 잊고 그 때의 열정을 다시 쏟아 붙고 싶다. (바람...^^) 2023. 1. 12.
코드 블럭 테스트 (c# DB Helper) 쿼리에 들어가는 파라미터 변수와 값을 매핑하는 메소드 DAC에서 DB Helper쪽으로 Insert Qeury를 자동 생성 하는 메소드 호출 7년 전 자전거 GPS Logger Viewer 만들면서 짰던 DB Helper 코드 다양한 관계형(RDMS)에 DB에 대응할 수 있으며 개인 용도로 사용했던 db는 Sqlite다. 포터블 DB이며 가볍고 장점이 많다. 모델 속성(Field)을 테이블 컬럼명과 동일하게 만들면 자동으로 Insert 쿼리를 생성 해준다. 객체의 속을 들여다 볼 수 있는 Refelection을 사용하여 속도가 느린 단점이 있어 대용량 데이터를 처리하기에는 성능이 저하될 수 있다. (트랜잭션 코드 추가) using System; using System.Data; using System.C.. 2023. 1. 12.
시작과 종료일 날짜 간격 구하는 로직 간만에 C# 코드 하나 올립니다. 굉장히 오랜 시간동안 개발 관련 포스팅을 하지 않았는데 앞으로 기회가 또 있을지 모르겠지만 좋은 코드가 있으면 공유하겠습니다. 그리고 좋은방법 있으면 의견 주세요..... using System; using System.Collections.Generic; using System.Text; namespace DurationDay { /// /// 어떤 시작과 종료 되는 시점의 기간(duration)을 일정 지정한 간격만큼 /// 배분하는 로직 /// class Program { static void Main(string[] args) { // 시작/종료일 string fromDate = "2009-05-04"; string toDate = "2012-05-03"; // .. 2012. 5. 3.