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

21세기소년

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

Mingw-bash에서 chocoloatey 패키지 전체 재설치하기

윈도에서 여러 프로그램을 패키징하여 명령줄에서 설치하고 있는 Chocolatey가 요즘 업데이트를 제대로 못하고 있는 거 깉아서 설치된 패키지를 강제로 최신버전으로 재설치하도록하는 한방 스크립트. 더군다나 패키지 리스트 출력시에 그지같은 문구를 추가로 삽입하고 있어서 sed1를 쓰지 않을 수 없었음. This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters #!/bin/sh # force reinstall all… 더 보기 »Mingw-bash에서 chocoloatey 패키지 전체 재설치하기

OSX Quicklook 플러그인 모음

https://github.com/sindresorhus/quick-look-plugins brew cask를 사용해서 설치한다. brwe cask를 설치하는 방법은… $ brew update; brew install caskroom/cask/brew-cask 그리고 이를 사용해서 각 플러그인을 설치하면 된다. 소스코드 컬러링을 해주는 qlcolorcode의 경우 $ brew cask install qlcolorcode 와 같이 설치한다. 참고로 훑어보기 상에서 문자 선택 및 복사가 가능하게 하려면 터미널에서 다음과 같이 입력한다. $ defaults write com.apple.finder QLEnableTextSelection -bool TRUE; killall Finder

파이썬에 대한 업계의 10대 미신

페이팔 블로그에서 10 Myths of Enterprise Python이라는 글을 발행했다. 애들이나 배우는 장난감같은 언어라는 선입견이 서구권에서도 아직 많은가보다. 드롭박스의 메인 개발언어이고[1. 드롭박스는 거의 대부분의 코드가 파이썬이고 심지어 파이썬 창시자인 귀도 반 로썸도 구글에서 드롭박스로 이직했다.] 유튜브도 파이썬을 많이 사용한 것으로 알려져있다. 그 외에도 어디 면접에 나온 퀴즈들을 보면 구글은 이상하리만치 파이썬에 최적화된 문제들을 많이 내는 것 같더라. 거기 풀이에 올라온 자바 개발자들의 풀이를 보면 약간의 미안함(?)이랄까 그런 게 느껴지기도 함. https://www.paypal-engineering.com/2014/12/10/10-myths-of-enterprise-python/

퀵소트에 대해 알아보자

퀵소트는 정렬과 관련된 내용을 다룰 때 빠지지 않고 등장하는 알고리듬이다. 제자리 정렬로 구현할 수 있는 알고리듬 중에서는 가장 빠른 것으로 알려져 있다. (그래서 이름도 퀵 정렬) 평균적인 성능은 O(nlogn)이 나온다. 퀵소트의 원리는 간단히 말해서 데이터 중에서 기준이 되는 임의의 값 하나를 정하고 이를 보통 pivot이라 한다. 이제 다른 데이터들을 피봇과 비교하여 그보다 작은 값은 왼쪽으로, 큰 값은 오른쪽으로 옮겨준다.

더 보기 »퀵소트에 대해 알아보자

Chaining Multiple CIFilters

Chaining CIFilters

Swift의 문법적 특징은 Objective-C를 사용할 때보다 훨씬 더 간결하고 간단한 구조의 코드를 작성할 수 있게 해주는데, 이번에는 Swift의 문법을 활용하여 CIFilter를 연쇄적으로 적용하는 자료 구조를 만들어 보도록 하겠다.
기본적으로 하나의 이미지에 여러 개의 필터를 적용하는 경우에는 각 필터의 outputImage 속성을 다음 순서의 필터의 kCIInputImageKey로 전달하는 방식으로 처리할 수 있다.
이를 아예 연산자로 정의하는 것도 가능하다. 이미지 인스턴스는 필터라는 상태로 둘러싸여 그 내부에서 조작되는 엔티티로 볼 수 있기 때문에 필터 자체를 모나드로 볼 수 있다. 더 보기 »Chaining Multiple CIFilters

[Swift] 값타입과 참조타입

값 타입과 참조 타입

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

Swift의 타입은 크게 두 부류로 나뉘는데, 하나는 “값 타입”으로 각각의 인스턴스가 고유한 데이터의 사본을 가지고 있는 것으로 주로 구조체나 열거타입, 튜플등이 이에 해당된다. 다른 하나는 “참조 타입”으로 이는 각각의 인스턴스가 하나의 데이터 사본을 동시에 참조하는 것으로 클래스의 인스턴스가 여기에 해당한다. 이 글에서는 각 타입의 장점과 언제 어떤 타입을 사용해야 할지를 알아보겠다. 더 보기 »[Swift] 값타입과 참조타입

[Swift] 클로저

Closures

Swift에서의 클로저는 코드 블럭과 거의 동일한, 실행 가능한 코드 조각 객체이다. 클로저는 문맥에 따라 주위의 변수들을 캡쳐하여 그 사본을 내부에 저장한다. 함수나 네스팅된 함수는 모두 클로저의 특별한 형태이다.

let myClosure = { (a: Int, b: Int) -> Int in return a + b}

클로저는 그 자체가 문법상 중괄호로 둘러싸져 있으므로 파라미터와 타입시그니처를 그 내부에 작성한다. 여기서 in 문법이 쓰인다. 타입을 추론할 수 있는 경우에는 타입 명시가 필요 없으며, sort 함수의 인자로 쓰이는 등더 보기 »[Swift] 클로저

분산 계산법

원래 분산의 계산 법은 각 개별 값이 평균으로부터 떨어진 거리의 제곱의 평균을 의미하며 다음과 같이 정의한다. $$ Var(X) = \frac{\displaystyle \sum_{k=1}^n ( N_k – E(X) )^2 }{n} $$ 결국 이 식은 “제곱의 평균 – 평균의 제곱”으로 귀결된다. $$ V(X) = E(X^2) – (E(X))^2 $$ 이걸 학교 다닐 때 배웠나 안배웠나 기억이 안난다….

C로 간단한 TODO앱을 구현해보자.

C로 구현하는 간단한 Todo List 관리 앱

구조체 정보를 디스크에 기록하는 부분과 관련하여 두어개의 글을 쓴 적이 있는데, 오늘은 그 최종정리 편으로, C로 구현하는 간단한 TodoList 관리 앱을 만들어보도록 하겠다. 이 앱의 스펙은 다음과 같다.

  1. 각 할일은 구조체의 포인터를 사용, 객체처럼 다룰 수 있게 한다.
  2. 파일에 읽고 쓰는 것은 일련의 데이터 시퀀스를 저장하는 것이므로, 할일 목록 객체를 추가한다. 할일 목록 객체는 100개의 할일을 담을 수 있도록 한다.
    더 보기 »C로 간단한 TODO앱을 구현해보자.