MonoDevelop 안녕~!
Visual Studio에서 Unity 프로젝트를 편집하고 디버깅까지 할 수 있는 Add-In이 무료로 풀렸다.
Microsoft가 회사를 사버림ㅇㅇ.
http://blogs.msdn.com/b/visualstudio/archive/2014/07/29/visual-studio-tools-for-unity-1-9.aspx
설치 파일은 .msi 형식으로 제공된다.
Unity 재시작 후
Assets --> Import Packages --> VIsual Studio 20XX Tools
선택해야 Unity에서 .cs 파일 더블 클릭 때 자동으로 Visual Studio가 실행된다.
(위 메뉴가 Unity를 재시작 해야 생성됨)
설치하면서 아래 링크의 configuration 부분을 읽어 보는 게 좋다.
http://unityvs.com/documentation/
Wednesday, July 30, 2014
Sunday, July 27, 2014
[엑셀] 배열 수식 Array Formula
30년 간의 복리 적금의 원리합계(또는 이자)를 계산해 보고 싶었다.
불입은 한 달에 한 번 한다 치고, 연 이율을 12로 나누어 월 이율을 구한 다음
(월 이율)^(개월 수)를 곱한 값들을 더하면 될 것이다.
s = m*Sigma{(1+r)^n}n->360 대략 이런 식?
30년은 360개월이니까 일일이 값을 입력한다면(핸들을 잡고 마우스를 끄는 것도) 꽤 귀찮을 것이다. 한 방에 하는 법을 찾아야 한다.
문제를 좀 더 단순화해서 1부터 10까지 더하는 방법을 생각해 보자. (답은 55)
s = Sigma{n}n->10
ROW()가 행 번호를 반환하는 함수이므로 ROW(A1), ROW(A10) 등을 쓰면 될 것 같다.
그럼 SUM(ROW(A1:A10))?
원래 SUM은 범위를 받는 함수이므로 꼭 될 것 같지만 안 된다. 그냥 '1'이 나오고 만다.
(ROW( 상태에서 범위를 지정하면 제일 작은 행번호-여기서는 1-가 반환된다.)
(프로그래밍 할 줄 아는 사람의 건전한) 상식으로는 ROW(A1:C3) 같은 걸 입력하면, {1, 2, 3}이 나와야 할 거 아닌가?
- 근데 그냥 1이 나오고 끝이라는 것이다.
그러면 SUM(ROW(A1):ROW(A10)) 이건 어떨까?
이건 아예 오류가 난다. ROW(A1), ROW(A10)은 그냥 숫자 값이라서 콜론(:)으로 범위(참조)로 만들 수 없다.
rand() 같은 게 있다는 걸 생각하면 셀에 꼭 값을 채워야 값을 참조할 수 있는 건 아닐 텐데...방법이 없을까?
결론부터 얘기하면 첫 번째 식이 식 자체로는 맞다. 그런데 수식을 입력 후 Enter가 아니라 Ctrl-Shift-Enter를 쳐서 array formula를 만들어야 계산이 된다.
Ctrl-Enter도 아니고 Ctrl-Shift-Enter라니 거 너무 어려운 거 아니오?
SUM(1:10) 같이 간단하면 얼마나 좋아...(당연히 안 됨)
MATLAB 좀 베낄 생각 없음?
1+...+10을 했으면 원리합계 구하기는 그냥 응용하면 된다(...)
이 기능이 Excel 2003에도 이미 있었다고 한다. 진작 알았더라면...
http://office.microsoft.com/en-us/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx
불입은 한 달에 한 번 한다 치고, 연 이율을 12로 나누어 월 이율을 구한 다음
(월 이율)^(개월 수)를 곱한 값들을 더하면 될 것이다.
s = m*Sigma{(1+r)^n}n->360 대략 이런 식?
30년은 360개월이니까 일일이 값을 입력한다면(핸들을 잡고 마우스를 끄는 것도) 꽤 귀찮을 것이다. 한 방에 하는 법을 찾아야 한다.
문제를 좀 더 단순화해서 1부터 10까지 더하는 방법을 생각해 보자. (답은 55)
s = Sigma{n}n->10
ROW()가 행 번호를 반환하는 함수이므로 ROW(A1), ROW(A10) 등을 쓰면 될 것 같다.
그럼 SUM(ROW(A1:A10))?
원래 SUM은 범위를 받는 함수이므로 꼭 될 것 같지만 안 된다. 그냥 '1'이 나오고 만다.
(ROW( 상태에서 범위를 지정하면 제일 작은 행번호-여기서는 1-가 반환된다.)
(프로그래밍 할 줄 아는 사람의 건전한) 상식으로는 ROW(A1:C3) 같은 걸 입력하면, {1, 2, 3}이 나와야 할 거 아닌가?
- 근데 그냥 1이 나오고 끝이라는 것이다.
그러면 SUM(ROW(A1):ROW(A10)) 이건 어떨까?
이건 아예 오류가 난다. ROW(A1), ROW(A10)은 그냥 숫자 값이라서 콜론(:)으로 범위(참조)로 만들 수 없다.
rand() 같은 게 있다는 걸 생각하면 셀에 꼭 값을 채워야 값을 참조할 수 있는 건 아닐 텐데...방법이 없을까?
결론부터 얘기하면 첫 번째 식이 식 자체로는 맞다. 그런데 수식을 입력 후 Enter가 아니라 Ctrl-Shift-Enter를 쳐서 array formula를 만들어야 계산이 된다.
Ctrl-Enter도 아니고 Ctrl-Shift-Enter라니 거 너무 어려운 거 아니오?
SUM(1:10) 같이 간단하면 얼마나 좋아...(당연히 안 됨)
MATLAB 좀 베낄 생각 없음?
1+...+10을 했으면 원리합계 구하기는 그냥 응용하면 된다(...)
이 기능이 Excel 2003에도 이미 있었다고 한다. 진작 알았더라면...
- Introducing array formulas in Excel
http://office.microsoft.com/en-us/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx
Sunday, July 13, 2014
MonoDevelop Indentation & Newline 설정
Tools -> Options 로 대화상자를 연 뒤,
왼쪽 목록에서
Source Code >> Code Formatting >> C# source code
오른쪽 패널에서 C# Format 탭 선택 후,
Edit 버튼을 눌러 다시 열린 Edit Profile 대화상자에서
Category: Braces
Statements: End of line을 Next line으로 바꾸어야
Visual Studio처럼 if/for 등의 다음 줄에 brace({)가 안 되잖아
근데 ok, ok 해봤자 적용이 안 된다.
아오.
Policy를 Visual Studio로 고쳐도 안 되고
MonoDevelop 쓰다 MI 걸리겠다 개같은 Unity.
왼쪽 목록에서
Source Code >> Code Formatting >> C# source code
오른쪽 패널에서 C# Format 탭 선택 후,
Edit 버튼을 눌러 다시 열린 Edit Profile 대화상자에서
Category: Braces
Statements: End of line을 Next line으로 바꾸어야
Visual Studio처럼 if/for 등의 다음 줄에 brace({)가 안 되잖아
근데 ok, ok 해봤자 적용이 안 된다.
아오.
Policy를 Visual Studio로 고쳐도 안 되고
MonoDevelop 쓰다 MI 걸리겠다 개같은 Unity.
마치 될 것처럼 나오지만 안 되는 황당함이라니... |
Monday, July 7, 2014
Iggy Azalea On Lorde's Nirvana Rock Hall Tribute
Iggy Azalea On Lorde's Nirvana Rock Hall Tribute: 'She Is Not Kurt Cobain's Peer'
http://www.billboard.com/articles/news/6113852/iggy-azalea-lorde-nirvana-rock-hall-tribute-kurt-cobain적의 적은 나의 동지이므로...
손은 못 생겼지만 아름다우시다! |
Friday, July 4, 2014
네이버 오픈 API 검색 API 버그?
검색 결과까지는 잘 뜨는데, 반환된 XML 속의 링크를 클릭했을 때 나오는 URL이 틀려 있다.
ListView에 XML을 변환해 표시하는 코드. 이건 잘 동작한다.
ListViewItem.SubItems에서 [0]=제목, [1]=설명, [2]=URL이다.
const string key = "x97y9zxc8v9as8fsa8f"; // 발급받은 키
int start = 1; // 시작 번호
int display = 10; // 페이지 당 보일 게시물 수
string query = this.textBox1.Text;
string target = "webkr";
var doc = new XmlDocument();
var url = string.Format(
"http://openapi.naver.com/search?key={0}&query={1}&target={2}&start={3}&display={4}",
key, query, target, start, display);
doc.Load(url);
var rss = doc.SelectSingleNode("rss");
string[] ret = new string[3];
var channel = rss.SelectSingleNode("channel");
foreach (XmlNode item in channel.SelectNodes("item"))
{
string[] result = new string[3];
result[0] = item.SelectSingleNode("title").InnerText;
result[1] = item.SelectSingleNode("description").InnerText;
result[2] = item.SelectSingleNode("link").InnerText;
this.listView1.Items.Add(new ListViewItem(result)
// 이건 기본 브라우저로 링크를 여는 코드.
// 실행은 잘 되는데 URL이 틀려 있다.
private void listView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
foreach (ListViewItem sel in listView1.SelectedItems)
{
var x = sel.SubItems[2].Text; //정상
Process.Start(x); //여기서 리디렉션 되면서 안 된다.
}
}
}
네이버 open API 검색은 실제 주소가 아니라 그 주소로 redirection하는 링크(위 코드에서 'x')를 받아오는데, Process.Start()가 잘 돼더라도, redirection 주소가 틀렸으면 브라우저가 404 에러를 내게 된다.
어이없게도 http 뒤에 :(콜론)이 빠져 있다. 즉
http://www.naver.com 이게
http//www.naver.com으로 되는 것이다.
내가 잘못 짠 게 아니니 어찌 할 방법이 없다.
오픈 API 나온 지도 오래 됐는데 왜 이런 건지 모르겠다.
'지식인' 검색을 하면 잘 되는 걸 봐서, 이건 그냥 오타에 의한 게 분명하다.
즉 위 코드에서 검색 대상을 웹(webkr)이 아니라 지식인(kin)으로 고치면 잘 동작한다.
string target = "kin";
공식 카페 가서
물어볼랬더니 가입 후 댓글을 5개 달고, 3번 접속해야 질문을 올릴 수 있다.
접속 횟수가 모자라 못 쓰는 중...
뭐 질문해 봤자 답변 안 올라올 거 같기도 하다.
그냥 구글 API 써야지.
ListView에 XML을 변환해 표시하는 코드. 이건 잘 동작한다.
ListViewItem.SubItems에서 [0]=제목, [1]=설명, [2]=URL이다.
const string key = "x97y9zxc8v9as8fsa8f"; // 발급받은 키
int start = 1; // 시작 번호
int display = 10; // 페이지 당 보일 게시물 수
string query = this.textBox1.Text;
string target = "webkr";
var doc = new XmlDocument();
var url = string.Format(
"http://openapi.naver.com/search?key={0}&query={1}&target={2}&start={3}&display={4}",
key, query, target, start, display);
doc.Load(url);
var rss = doc.SelectSingleNode("rss");
string[] ret = new string[3];
var channel = rss.SelectSingleNode("channel");
foreach (XmlNode item in channel.SelectNodes("item"))
{
string[] result = new string[3];
result[0] = item.SelectSingleNode("title").InnerText;
result[1] = item.SelectSingleNode("description").InnerText;
result[2] = item.SelectSingleNode("link").InnerText;
this.listView1.Items.Add(new ListViewItem(result)
// 이건 기본 브라우저로 링크를 여는 코드.
// 실행은 잘 되는데 URL이 틀려 있다.
private void listView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
foreach (ListViewItem sel in listView1.SelectedItems)
{
var x = sel.SubItems[2].Text; //정상
Process.Start(x); //여기서 리디렉션 되면서 안 된다.
}
}
}
네이버 open API 검색은 실제 주소가 아니라 그 주소로 redirection하는 링크(위 코드에서 'x')를 받아오는데, Process.Start()가 잘 돼더라도, redirection 주소가 틀렸으면 브라우저가 404 에러를 내게 된다.
어이없게도 http 뒤에 :(콜론)이 빠져 있다. 즉
http://www.naver.com 이게
http//www.naver.com으로 되는 것이다.
내가 잘못 짠 게 아니니 어찌 할 방법이 없다.
오픈 API 나온 지도 오래 됐는데 왜 이런 건지 모르겠다.
'지식인' 검색을 하면 잘 되는 걸 봐서, 이건 그냥 오타에 의한 게 분명하다.
즉 위 코드에서 검색 대상을 웹(webkr)이 아니라 지식인(kin)으로 고치면 잘 동작한다.
string target = "kin";
공식 카페 가서
물어볼랬더니 가입 후 댓글을 5개 달고, 3번 접속해야 질문을 올릴 수 있다.
접속 횟수가 모자라 못 쓰는 중...
뭐 질문해 봤자 답변 안 올라올 거 같기도 하다.
그냥 구글 API 써야지.
Subscribe to:
Posts (Atom)
창 핸들을 만드는 동안 오류가 발생했습니다
System.ComponentModel.Win32Exception was unhandled MyForm w = new MyForm IntPtr handle = wnd.Handle; // Exception occurs here class MyFo...
-
텍스트박스에서 엔터를 치면 자동으로 입력되게 하려고 keyup 이벤트 핸들러를 등록했다. 잘 동작하는 듯했는데 alert창을 닫아도 닫아도 계속 열리는 것이다. 크롬이어서 다행이지 IE였으면 무한히 열렸을 거야...스페이스바로 눌러보길 잘했...
-
진짜 되는 건 아니고 흉내낼 수는 있다. 새 창을 누르면 아무 것도 안 변한 것 같지만 PowerPoint 창 제목이 바뀌어 있다: 프레젠테이션1:2에서 :2 부분이 같은 파일을 연 창 여러 개 중 2번째라는 뜻이다('프레...
-
MathJax è Word MS Word 2007부터는 MathML을 문서에 바로 붙여넣을 수 있다. 이 블로그의 거의 대부분의 수식은 MathJax로 작성되어 있는데, 오른쪽 버튼 클릭하고 메뉴에서 MathML 또는 TeX 형식으로 ex...