콘텐츠로 건너뛰기
Home » 21세기소년 » 페이지 11

21세기소년

21세기소년 / IT / 정보기술 / 인터넷 / 프로그래밍 / 미래 / 과학 / 과학지식 / 물리 / 화학 / 천문 / 생물학 / 이과생이나 관심가질 법한 자질구레한 이야기들

instapush로 메시지 푸시 전송 요청을 보내보자

instapush라는 서비스가 있어서 예전에 그냥 시험삼아 끄적거려 봤는데, 너무 대충이라 간단히 레시피 식으로 어떻게 푸시를 보내는지 알아보는 시간을 가져보자. instapush는 홈페이지에서 계정을 생성한 후 자신의 애플리케이션을 등록하고 필요한 필드들을 설정한 다음, 요구되는 조건에 맞게 REST API를 호출해주면, instapush 앱이 설치된 스마트폰으로 푸시 메시지를 보내주는 서비스이다. 실제로 엄청나게 간단하기 때문에 쉽게 푸시 전송을 보낼 수 있다. 회원 가입 및 앱 생성 먼저 instapush 홈페이지에 가서 회원가입을 한다.  그런다음 Dashboard의 Apps 탭으로 가면 애플리케이션을 만들라는 버튼이 있다. [+ Add Application] 버튼을 클릭해서… 더 보기 »instapush로 메시지 푸시 전송 요청을 보내보자

Pages: 1 2

유튜브 재생목록 내의 파일들을 다운로드 받기

bash 와 youtube-dl을 사용하여 유튜브 재생목록 내의 파일들을 다운로드 받는 과정을 정리했다. 여러 동영상을 모아두는 재생목록을 찾아서 동영상 리스트 페이지로 들어간다. 해당 페이지의 소스를 복사하여 편집기에 붙여둔다. 영상리스트에서 각 영상의 링크는 도메인을 빼고 /watch?v=….. 이런 식으로 주소가 구성된다. 그래서 \/watch\?v\=[a-zA-Z0-9]+ 패턴으로 모두 찾아서 이를 복사한다. 3의 주소들은 같은 주소가 모두 반복된다. 그래서 vim 등에서 한 줄씩만 남기고 지우는 작업을 거친다. 그리고 내용을 저장한다. 다음 bash 스크립트로 다운로드 받는다. $ for i in $(cat list.txt); do youtube-dl "http://www.youtube.com/$i"; done 다운로드 받은… 더 보기 »유튜브 재생목록 내의 파일들을 다운로드 받기

정규 표현식의 조건절

흔히 쓰이는 경우는 아니지만 정규 표현식에도 조건절을 사용할 수 있다. 참고로 모든 정규식 엔진이 조건절을 지원하는 것은 아니다. (javascript 정규식은 조건절을 지원하지 않는다.) 만약 현재 사용하는 편집기나 언어의 정규식 엔진에서 조건절을 지원한다면, 조건절을 사용해서 보다 정교한 매칭을 하는 것이 가능하다. 오늘은 정규표현식의 조건절 사용법에 대해 살펴보도록 하겠다.

더 보기 »정규 표현식의 조건절

정규식으로 짝수번째 숫자만 치환하기

코딩도장에서 흥미로운 문제를 하나 봤는데, 어떤 문자열에서 짝수번째로 등장한 숫자만 *로 치환하는 문제였다.문제의 출처가 정규식 관련 사이트인 것 같은데, 원본 주소는 링크가 깨진관계로… 예를 들자면 a1b2c3d4~e5f_6 과 같은 문자열이 있을 때 이중 숫자는 1, 2, 3, 4, 5, 6인데 그 중에서 짝수 번째로 등장하는 숫자만 *로 치환하는 것이다. 파이썬 구현은 매우 쉬운데…. def unvailEveryOtherDigits(str): s = [] occ = 0 for c in str: if c in "0123456789": c += 1 if c % 2 == 0: s.append('*') else: s.append(c)… 더 보기 »정규식으로 짝수번째 숫자만 치환하기

셸 정렬 (Shell Sort)

셸 정렬은 정렬 방법의 원리로만 보자면 “분할 증분 정렬”(diminishing incremental sort)이라고도 불리는 방법이며, 굉장히 오래된 정렬 알고리듬 중 하나이다. 이 정렬 방법은 삽입 정렬을 근간으로 하면서 삽입 정렬의 성능을 간단한 아이디어로부터 크게 증가시키는 방법이다.

삽입 정렬은 왼쪽에 있는 원소부터, 그 원소가 이동할 수 있는 ‘가장 왼쪽 자리’에 그 값을 삽입하여 정렬해 나가는 방식이다. 이 때 ‘삽입’을 위한 공간을 만들기 위해 원래자리부터 삽입될 자리 사이의 값들이 하나씩 오른쪽으로 이동해야 한다. 따라서 삽입 정렬은 어떤 원소가 이동해야 할 거리가 크면 클수록 효율이 떨어지며 배열이 반대로 정렬되어 있는 경우가 이에 해당할 것이다.

더 보기 »셸 정렬 (Shell Sort)

Swift – Interacting with C Pointers

https://developer.apple.com/swift/blog/?id=6

Objective-C 및 C의 API들은 종종 포인터를 사용한다. Swift의 데이터 타입들은 포인터 기반의 Cocoa API들과 자연스럽게 어울리도록 디자인되었고, Swift는 포인터를 파라미터로 일부 다루고 있다.

포인터와 in/out 파라미터

C와 Objective-C의 함수는 복수의 값을 리턴하지 못하기 때문에 부가정보를 함수 외부로 내보내기 위해서 포인터를 사용한다. Swift는 이런 경우 inout 어트리뷰트를 가진 파라미터를 정의할 수 있어서 Swift에서는 & 문법을 사용하여 var 변수의 포인터를 넘겨줄 수 있다. 예를 들어 UIColorgetRed(_:green:blue:alpha:) 메소드는 4개의 CGFloat* 포인터를 받는데 이는 다음과 같이 사용하여 4개의 변수에 대해 각 컬러 값을 얻어낼 수 있다.더 보기 »Swift – Interacting with C Pointers

SublimeText Plugin 작성하기

SublimeText3 플러그인을 만들자.

서브라임텍스트3에서 작성하던 내용을 개인적으로 사용하는 위키(로컬에서 돌리고 있음)에 전송하는 기능을 서브라임 텍스트 플러그인으로 구현하고, 그 과정을 기록한다.

조건들

  • Sublime Text3의 스크립트 구동 언어는 Python3 버전이다.
  • 서브라임에서 제공하는 API를 사용하기위해서는 sublime 패키지가 필요하다.
  • 명령 클래스의 원형은 sublime_plugin 패키지에 정의되어 있다. 커스텀 플러그인은 이 클래스를 상속받아 작성하게 된다.
  • 현재 뷰(편집공간)는 이 클래스의 self.view 속성을 통해서 접근할 수 있다.
    더 보기 »SublimeText Plugin 작성하기

Swift는 정말 파이썬보다 빠를까?

애플은 Swift가 파이썬보다 몇 십배 빠르다고 주장하고 있는데, 실질적으로는 파이썬이 더 빠른 것 같이 느껴지는 (심지어 pypy도 아니고) 경우가 너무나 많다. 물론 “어떤 언어가 더 빠르냐”는 질문만큼 바보같은 것도 없긴한데, 개인적으로는 애플이 말하는 것과 반대인 것 같은 체감이 많아서 한 번 확인해보았다. 더 보기 »Swift는 정말 파이썬보다 빠를까?