본문 바로가기

분류 전체보기117

비효율적인 효율성.. 차가운계산기 I spend therefore I am 검정색의 암울한 표지를 보고 뭔가 우리사회의 어두운 측면을 다루고 있는 것이 아닐까 싶어 선뜻 골라왔다. 당신이 살고 싶은 세상은 정말로 어떤 세상인가? 이것도 궁금했다. 뒷표지에 있는 지폐로 둘려쌓인 지구... 만약 외계인이 있다면 정말로 저렇게 보고 있을지도 모른다. 우리들은 지구상의 모든것에 가격을 매기고 있으니 말이다. 심지어 보이지 않는 사람의 마음까지도... 사람들은 이익을 추구한다. 아니 모든 생명체가 다 이익을 추구한다. 당연한 말 아닌가. 손해를 보고 싶어하는 생물체는 없을테니.. 이것이 경제학이 말하는 진리다. 참으로 객관적이라는 경제학에서 진리를 이렇게 말하는 것이다. 밑도끝도 없이 본능이니 그렇게 알고 살아라. 사람의 본능이 이익 추구이니 경제학의 진리와 같다. 즉, 경제학에 맞춰서.. 2017. 8. 20.
시작과 끝 또는 유와 무 또는 빛과 어둠... 칼세이건의 코스모스 밤하늘에는 수없이 많은 별들이 떠있다 적어도 어렸을때 서울 밤하늘도 그랬다. 별자리가 있다고 하던데... 솔직히 잘 모르겠다 그냥 아무렇게 점이 찍혀있는듯 할뿐이다. 특히 망원경으로 본 별들은 더욱더 그렇다. 그래서 별이 떠있는 우주를 혼돈의 세계라고도 한다. 저자 칼세이건은 이러한 혼돈속에도 질서가 있다고 알려준다. 뒤죽박죽인 와중에도 일정한 질서를 가지고 섞인다는 것이다. 이것이 코스모스다. 코스모스는 원래 철학적 용어이다. 모든 과학의 시작이 그렇듯 우주과학도 철학에서 출발했다. 즉, 우주란 무엇인가? 별은 왜 하늘에 떠있고 빛나는 것인가? 하는 질문에서 시작되었다는 것이다. 이런 질문을 던져볼수도 있겠다. 우주의 시작과 끝은?? 보통 학계에서는 빅뱅으로 우주가 시작되었고 지금은 계속 팽창중이라 한.. 2017. 7. 23.
죄보다 무서운 놓쳐버린 사죄의 타이밍... 7년의 밤 소설을 오랜만에 읽어보자 하고 아무 생각없이 집어든 책이었다 7년의 밤 이라... 제목이 뭔가 궁금증을 더하기도 하고... 일단 사들고 집에서 열어보니 범죄소설인것을 알게 되었다. 뭔가 힐링이 되는 소설을 보고 싶었는데... 괜히 샀네 하는 맘이 들었다... 그래도 샀으니 봐야지ㅎㅎ 암울하고 오싹한 약간은 더러운 그런것을 예상했는데 뜻밖에 스토리에 빠져들었다 누구나 실수를 한다. 다행히 해프닝으로 끝나면 좋겠지만 큰 사고가 될수도 있다. 그리고 그런 사고는 평범한 우리에게도 충분히 일어날수 있지 않을까 작가가 이 소설에서 말할려고 하는것은 이런게 아닌가 싶다 실수가 죄가 되었을때 순간의 두려움과 이기심으로 실수를 감추고... 사죄의 타이밍을 놓쳐버린다거... 이게 얼마나 무서운 결과를 초래하는지... 평.. 2017. 7. 16.
부등호 없는 부등식 소스를 짜보자 반복적으로 또는 사용자 임의로 부등식 비교를 할때 일일이 부등호를 넣어야 하는 불편이 있다. 예를 들어 int a = 1, b = 5; String sign = "")) { return a > b; } else if (sign.equels(">=")) { return a >= b; } 역시 소스가 깔끔하지 않다. 간단한 수식을 이용해 다음과 같이 해보자. //부등식 객체 클래스 public static class Compare { private int mA, mB; private boolean mRight, mEquel; public Compare(int a, int b, boolean right, boolean equel) { mA = a; mB = b; mRight = right; mEquel = e.. 2017. 6. 27.
UIButton 이미지를 손쉽게 정렬하자~ 아이폰 Swift에서 UIButton 안의 이미지를 원하는 위치에 두려면 Edge Inset을 이용하여 좌우상하에 여백을 줘야 한다 여간 귀찮고 불편한 일이 아닐 수 없다 그래서 좀 더 편하게 이미지를 옮기는 방법을 소개한다 원리는 무지 간단하다 Edge Inset를 가로,세로 기준으로 이미지 크기와 함께 각각 계산해 주면 된다 왼쪽 정렬 (L: 왼쪽 여백, R: 오른쪽 여백, M: 여백, IW: 이미지 너비, BW: 버튼 너비) 가운데 정렬 이 두가지 경우만 이용하면 나머지 정렬도 모두 가능하다 코딩하면 다음과 같다 class ImageButton: UIButton { //가로 정렬 기준 (-1: 왼쪽, 0: 가운데, 1: 오른쪽) @IBInspectable var horizontal: Int = 0 .. 2017. 5. 30.
UIView에 동적으로 버튼을 넣을때 크기를 같게 맞출려면? 안드로이드에서는 layout_weight 로 쉽게 하위 뷰들의 크기를 맞출 수 있다 예를 들어 버튼을 넣는다면 버튼에 layout_weight=1 속성을 추가한 후 LinearLayout에 넣기만 하면 된다 또한 버튼 사이 간격은 layout_margin 로 조절한다 그렇다면 iso의 swift에선 어떻게 하면 될까? 약간 손이 더 가긴 하지만 어렵지 않다 편하게 사용하기 위해 UIView를 커스텀해서 만들어 보았다 버튼 크기를 맞춰주는 동시에 사이 간격, 여백도 줄것이다 class ButtonsView: UIView { private var mGap: CGFloat! private var mPadding: (left: CGFloat, top: CGFloat, right: CGFloat, bottom: .. 2017. 4. 25.
기준점을 중앙으로 Scale UIView 애니메이션 하기 swift 에서는 간단하게 뷰 애니메이션을 구현할 수 있다. 그런데 크기를 변경시키는 애니메이션에서는 주의 해야 할 점이 있다 바로 기준점이다 다음을 보자 let width = frame.width let height = frame.height frame.size.width = width * 0.2 frame.size.height = height * 0.2 UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseInOut], animations: { self.frame.size.width = width self.frame.size.height = height }, completion: nil) 20% 작은 크기에서 원래 크기로 애니메이션 효과를 주었다 .. 2017. 3. 21.
이미지를 회전시키고 재사용하는 꿀팁 프로그램 안에서 같은 이미지를 여러곳에 사용할때! 그것도 회전시켜 사용할때! 원본 이미지의 회전된 이미지를 테이블안에 넣어 사용하면 간편하고 빠르다. 물론 메모리를 좀 차지하고, 요즘 디바이스도 워낙 좋아져 속도도 별반 차이 없겠지만 그래도 엄청 많은 곳에 엄청 빈번하게 회전 이미지를 사용할때는 유용하다ㅋ class RotateImageTable { let mSrcImage: UIImage let mUnit: CGFloat var mImages: [Int: UIImage] init(srcName: String, unit: CGFloat) { mSrcImage = UIImage(named: srcName)! //원본 이미지 mImages = [Int: UIImage]() //이미지 테이블 mUnit = u.. 2017. 2. 22.
뽑기 신이 되고 싶을때 하는 모바일 게임 밀어 뽑기를 잘하고 싶을때! 인형을 뽑아주고 싶을때! 뽑기에 중독되었을때! 가장 걱정되는것이 역시 돈이죠... 요즘 한판하는데 너무 비싸요... 미리 연습하고 즐기면서 인형뽑기의 신이 된다면 떵떵거리며 모든 인형들을 싹쓸히 할 수 있어요!! 자 시작해 볼까요? 용돈도 받았으니 한판 해보죠! 뽑는법은 다 아시죠? 그냥 깜빡이는 버튼을 누르면 되요ㅎㅎ 알구... 막대가 너무 갔네요ㅠㅠ 이번엔 뽑았어요~ 고양이 인형이 나온거 보이죠?ㅎㅎ 뽑은 인형들은 이렇게 보관되고 같은 인형을 10개 모으면 찬스권을 받아요 찬스를 써볼까요? 찬스는 성공하면 코인이나 더 많은 인형을 상품으로 받죠 물론, 실패하면 아무것도 없어요ㅠㅠ 아싸 성공! 다행히 코인을 받겠네요ㅎㅎ 고수와 달인을 넘어 뽑기 왕, 뽑기 신이 될때까지 멈추.. 2017. 1. 22.
쿼츠2D로 자유롭게 폰트 크기를 바꿔보자 직접 UIView를 상속해서 자신만의 UI객체를 만들때 쿼츠 2D를 사용한다 이때, 폰트 크기는 어떻게 바꿀수 있을까? NSString를 이용하면 간단하다. class MyView: UIView { var mFontAttrDic: [String: NSObject]! var mFont: UIFont! var mText: NSString! override func drawRect(rect: CGRect) { //문자 출력 mText.drawInRect(CGRectMake(0, 0, 100, 100), withAttributes: mFontAttrDic) } func intiFont() { //NSString 설정 mText = "테스트" //폰트 설정 mFont = UIFont(name: "SeoulNams.. 2016. 12. 19.