이유는 유효한 메일 주소 등의 정보가 풀리퀘스트에는 빠져 있거나 diff가 비 실용적이라고 한다

Git의 풀리퀘스트 기능과 GitHub의 호스팅 서비스에 대해서는 호의적으로 평가하고 있지만 GitHub의 풀리퀘스트에 대해서는 종합적으로 봐서는 부족해서 쓸만하지 못하다고 평가했다.

Linus씨는 이것을 GitHub에게 전했지만 GitHub쪽에서는 잡지 못했다고 한다.

 


출처: https://github.com/torvalds/linux/pull/17

저작자 표시
신고
by 흥배 2016.12.02 10:36

http://sitetrans.naver.net/tune.dic?siteUrl=https%3A%2F%2Fwww.infoq.com%2Fnews/2016/08/go-17-released

중에서

 

Go 1.7은 컴파일 시간과 런타임 성능을 크게 개선하고 있다.

또 계층적 테스트와 벤치 마크, Linux on IBM z Systems(s390x)상의 Linux 공식 지원도 추가한다.

 

Go 1.7의 컴파일러 개선은 주로 SSA(정적 단일 대입) 형식에 의거 amd64 플랫폼용 Go의 새로운 컴파일러 백엔드에 관계하고 있다. 새로운 백엔드는 다수의 선진적인 최적화 덕분에 더 작고 고속의 코드를 생성한다.

최적화는 경계 표시 삭제와 공통 식의 삭제가 포함된다.

Google의 벤치 마크에 의하면 런타임은 5– 35% 고속으로 되고, 컴파일 시간과 바이너리 사이즈는 최대 20– 30% 감소된다.

때로는 벤치 마크는 크게 바뀔지도 모르지만 몇몇 Hacker News 사용자는 빌드 속도가 2배 향상하고 있다고 말하고 있다.

 

SSA 백엔드는 amd64 플랫폼만 사용할 수 있다. 하지만 Google의 엔지니어 Brad Fitzpatrick씨에 의하면 지원하는 전 아키텍처로 이식은 Go 1.8의 주요 목표의 하나라고 한다. 그리고 오래 된 백엔드를 삭제하는 것으로 프론트 엔드는 더 간단하게 될 것이라고 한다. 익서은 또 다른 성능 개선을 가져올 것.

2017 2월 릴리스 예정의 Go 1.8에 관한 자세한 것은 GoLang Dev 포럼에서 찾을 수 있다.

 

Go 1.7에서 또 주목해야 하는 변경으로 서브 테스트와 하부 벤치 마크가 있다. 이는 계층적인 테스트나 테이블에 의한 벤치 마크 정의를 가능하게 한다.

-run –bench 플래그의 인수에 슬래시 단락의 정규 표현 리스트를 지정하면 된다.

 

마지막으로 Go 1.7은 표준 라이브러리의 일부로서 context 패키지를 채용했다. 이것은 네트워킹 시의 취소, 타임 아웃, 리퀘스트 범위에 한정한 데이터의 교환을 간단하게 한다. vendor 디렉토리 사용도 표준이 됐다.

이로써 GOPATH이나 표준 라이브러리에서 자동적으로 끌고 오는 대신 개발자는 외부 의존물의 로컬 복사본을 사용하게 된다.

 

Go 1.7의 기능 추가, 개선, 버그 수정에 대한 자세한 설명은 릴리스 노트를 보자.

 

 

저작자 표시
신고
by 흥배 2016.09.27 08:00

출처: https://www.infoq.com/news/2016/05/bowers-lessons-learned-nosql

주로 NoSQL을 처음 도입할 때 어떻게 해야 하냐의 이야기에 가깝다.

 

….

 

NoSQL 데이터베이스의 채용에는  NoSQL을 지지하는 지도자와 개발자 및 경영진의 적극적인 관여가 필요하다.

 

교훈 1:

NoSQL을 지지하는 리더가 조직에 있을 것: 조직 전체에 영향력을 갖고 기업 내의 개발자뿐만 아니라 경영진을 납득시키는 인물의 존재가 필수적이다.

 

교훈 2:

경영진의 적극적 관여를 얻을 것: 대기업 경영진은 기업용 상용 데이터베이스를, 신흥 기업의 고위 관리직은 오픈 소스 데이터베이스를 각각 좋아하는 경향이 있다. NoSQL 인수 팀이 NoSQL데이터베이스를 도입하려면 조직의 관리 계층의 개입이 필요한 것이다.

 

교훈 3:

개발자의 적극적 관여를 얻을 것: 개발자에게 NoSQL이 다양한 데이터 구조를 지원하고 애자일 개발을 실현할 것임을 보여야 한다.

/값 데이터베이스가 고 성능을,

와이드 컬럼 데이터베이스가 인터넷 레벨의 스케일링을 제공하는 것에 대해,

문서 NoSQL 데이터베이스는 단기간에 앱 개발을 실현하는 것이다

라고 그는 지적한다.

 

교훈 4:

훈련, 훈련, 훈련: 개발자가 NoSQL에 익숙해지는 것이 무엇보다 중요하다.

기술을 수반하지 않는 NoSQL 도입 활동은 편리한 훈련대에 불과하다.

 

 

그가 권하는 방법은 NoSQL을 사용한 현실적인 솔루션을 단기간에 저렴하게 구축하고 그것을 성공의 실례로 상층부에 알리는 것이다. 데이터베이스 라이선스와 개발 비용의 감소, 확장성 향상이라는 목표를 실증하는 데 의미가 있다.

 

그는 높은 대역 폭, 저 레이턴시, 분석성, 운용성, 볼륨, 속도 같은 요건에 대해서 다른 데이터베이스와 비교하는 방안도 제안했다. 데이터 모델의 유연성, 퍼포먼스, 혹은 수평 측정 가능성 등, NoSQL 데이터베이스 채용의 원동력이 될 수 있는 팩터를 그 안에서 찾아내는 것이다.

 

의사 결정 프로세스에는 팀 전체의 집단 소유권이 있기 때문에 NoSQL 데이터베이스의 채용은 팀 내에서 합의하는 것은 불가피하다.

 

저작자 표시
신고
by 흥배 2016.09.09 08:00

Linus Torvalds씨가 Linux 커널의 네트워크 스택에서 사용되는 주석 스타일에 대해서 "뇌가 손상된 바보 같은 주석"이라고 수정을 요구하고 있다(메일링 리스트에서 코멘트 Register).

 

Torvalds씨는 균형 잡힌 대칭적인 주석 스타일로 통일해야 한다고 생각하는 듯.

아래의 (a)~(c)를 좋은 주석 스타일이라고 밝혔다. Linux 커널 스타일은 아니다고 하면서 허용 가능한 주석 스타일로서 (d)를 꼽고 있다.

 

(a)

/*This is a comment*/

 

 

(b)

/*

*This is also a comment, but it can now be cleanly

*split over multiple lines

*/

 

 

 

(c)

//This can be a single line.Or many.Your choice.

 

 

(d)

/*This is an alternate multi-line format

that isn't horrible, but not kernel style*/

 

 

한편 균형 잡히지 못한 최악인 주석 스타일로 하고 있는 것은 아래의 2.

(no)

/*This is disgusting drug-induced

*crap, and should die

*/

 

(no-no-no)

/*This is also very nasty

*and visually unbalanced*/

 

 

, 주석 박스화를 선호하는 사람의 이야기를 시작할 생각은 없다면서 박스화한 주석은 LSD를 맞았다면 정말 훌륭한 것이라고 생각할 수 있지만, * 오른쪽을 갖추고 있는 것에 신경을 쓰는 것 이상으로 좋은 것은 없다고 말했다.

 

 

저작자 표시
신고
by 흥배 2016.08.10 08:00

컴파일러를 만들 때 가장 참고하는 도서로 드래곤 북이라고 알려진 『 Compiler: Principles, Techniques and Tools』이 출간된 것은 1986년이다. Channel 9의 인터뷰에서 Turbo Pascal, Delphi, C#, TypeScript로 유명한 Anders Hejlsberg씨는 현재의 컴파일러 작성이 30년 전의 방식과 어떻게 다른지 설명했다.

 

고전적인 컴파일러의 큰 특징은 입력을 순차 처리하는 것이다. 그것은 주요 컴퍼넌트의 파이프 라인처럼 보인다.

Lexer->Parser->Type Checker->Code Generator->Emitter


근래 10년 사이에 IDE와 툴은 자동 컴파일, 리팩터링 코드 내비게이션, 정적 분석과 같은 기능을 제공하는 것이 기대되었다. Microsoft 사용자 조사에 따르면 이들 기능은 입력에 대해서 100ms 이하의 지연으로 응답해야 한다고 한다. 아니면 너무 느리다고 느끼는 것 같다. 이것은 중간 규모 크기에서 1분 이상 걸리는 프로젝트 전체의 컴파일 시간과는 아주 달랐다.

 

IDE의 고속의 피드백을 실현하기 위해서는 컴파일러가 실시간으로 실행할 수 있도록 처리를 되도록 한정할 필요가 있다. 그래서 키를 누를 때마다 프로그램 전체를 컴파일한다는 것은 선택에 할 수 없다. 대신, 컴파일러는 사용자에게 답을 제공하는 데 필요 충분한 정보를 준비한다.

 

고속 응답은 처리를 한정하여 오래된 데이터 구조를 최대한 재활용함으로써 실현된다. 사용자가 문자를 타이핑할 때마다 메모리에 있는 데이터 구조는 소거될 것으로 보지만 반응성을 높이기 위해서 변경되지 않은 것을 모두 재활용하는 것이다. 예를 들어 AST(Abstract syntax trees, 추상 구문 나무)에서는 이것이 표현하는 소스 파일이 변경되지 않으면 재이용할 수 있다.

 

데이터 구조가 변경되더라도 재활용이 가능하다. 변하지 않는 영속적 데이터 구조에서는 변경되지 않은 부분을 보유한 채 새 인스턴스를 생성하여 돌려줌으로써 변경을 취급할 수 있다. AST에게 이는 현재 노드와 루트까지 상위 노드를 변경하는 것을 의미한다. 나머지의 parse 트리는 같은 채로 새로운 인스턴스 구축에 재이용할 수 있다.

 

몇 년 전부터 IDE가 실시간으로 제공하는 기능 때문에 C# 컴파일러와 IDE 기능 구현 간의 코드가 중복되게 되었다. 이것은 Roslyn을 만든 커다란 이유의 하나였다. Roslyn은 아예 명령 라인 뿐만 아니라 IDE에서도 쓸 수 있도록 설계되고 있다.

 

마지막으로 Anders씨와 Seth씨는 현대의 컴파일러 작성에 대해서 배우기 위한 자원에 대해서 말했다. 그들은 예로서 RoslynTypeScript 프로젝트를 꼽았다.모두 오픈 소스로 GitHub에서 구할 수 있다.

 

 

출처: https://www.infoq.com/news/2016/05/anders-hejlsberg-compiler  

저작자 표시
신고
by 흥배 2016.07.01 13:30

Windows 10 Insider Preview 빌드 14352 Fast링용 발표했다.

공식 확인되지 않은 것 같지만 이 빌드에서는 기존까지 NTFS에서 패스 길이 최대 문자 수가 최대 260 문자인 것을 해제하는 그룹 정책 설정이 추가 되었다.

https://blogs.windows.com/windowsexperience/2016/05/26/announcing-windows-10-insider-preview-build-14352/

 

NTFS의 경로 길이 제한을 해제하는 그룹 정책 설정은 로컬 그룹 정책 편집기(gpedit.msc)"로컬 컴퓨터 정책컴퓨터 구성관리용 템플릿시스템파일 시스템 → NTFS"에 있는 "Enable NTFS long paths"라는 항목이다. 다만 실제로 260 글자를 넘는 패스에 액세스 하려면 애플리케이션의 매니페스토를 변경할 필요가 있다.

 

 

이로써 Linux 애플리케이션을 Windows에 포팅할 때 패스 길이 제한 때문에 발생하는 문제는 없어 질 것 같다.

 

저작자 표시
신고
by 흥배 2016.06.15 08:00

예정대로 5월 중순에 릴리스 되었다.

이번에 출시된 것은 다음과 같다.

.NET Core RC2

ASP.NET Core RC2

.NET Core SDK Preview 1

 

이 밖에 Azure에 대한 배포 도구, RHEL yum 인스톨러를 제공할 예정.

 

예고대로 런타임은 RC2 툴은 Preview가 이다.

지원되는 개발 환경은 다음과 같다.

Visual Studio 2015 Update2

Visual Studio Code(C# Extension)

Omnisharp

 

지원되는 플랫폼

Red Hat Enterprise Linux 7.2

Centos 7.1

Debian 8.2(8.2, 8.3, 8.4)+

Ubuntu 14.04(16.04 support is coming at RTM)

OS X 10.11

Windows 7+/Server 2012 R2+

Windows Nano Server TP5

 

정식으로 Debian, Cetos가 지원되었다.

툴에 대해서는 CLI 명령은 DNX 명령(dnx, dnvm, dnu)이 사라지고 dotnet 명령으로 바뀌었다.

dotnet 명령은 프로젝트의 작성, 패키지 관리, 빌드, 발행, 실행 테스트 실행 패키지 작성 인터페이스로 된다.

 

CLI툴 문서: .NET Core SDK

설치는 여기다. https://www.microsoft.com/net/core

 

 

출처: https://opcdiary.net/?p=32027

원 출처: https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-net-core-rc2/

저작자 표시
신고
by 흥배 2016.05.17 10:03

주요 일정

.NET Core ASP.NET Core 1.0 RC2의 런타임과 라이브러리는 5월 중순에 제공 개시 예정.

툴 버전은 Preview 1로 이 릴리스에 번들 된다.

 

.NET Core ASP.NET Core 1.0 RTM(릴리스)의 런타임과 라이브러리는 6 월말까지 제공 개시 예정.

툴 버전은 Preview 2로 이 릴리스에 번들 된다.

 

툴에 대해서는 안정화될 때까지 변경을 거듭, Visual Studio"15"와 함께 RTM 버전을 출시할 예정.

 

 

그 동안의 경위

모듈형, 크로스 플랫폼, 높은 퍼포먼스의 새로운 ASP.NET을 개발하기 위해서 2년 반 전에 ASP.NET 팀이 발족되었다.새로운 ASP.NET 버전은 클라우드에 초점을 맞춘 최신 워크 로드(Web 사이트, 마이크로 서비스 등)에 최적화된 새 DNX(.NET Execution Environment) 위에 구축되었다. 그리고 지난해 11월에 이 버전의 RC1이 출시되었다.

 

ASP.NET Core 1.0 RC1 출시 후에 가장 중시한 것은 .NET Core를 더욱 확장하고 네이티브 콘솔 애플리케이션 개발도 지원하는 것이었다. 그래서 한 것이 .NET 콘솔, 클래스 라이브러리, 서버 애플리케이션의 개발에 사용하는 툴 체인을 재구축하는 것이었다. 이 작업은 당초의 예상보다 지연되면서 2월에 예정했던 RC2/RTM의 릴리스는 철회할 수밖에 없었다.

 

 

프레임워크와 툴의 통합

올해 Xamarin 인수로 마이크로 소프트의 일부가 됨으로써 우리는 지금까지 이상으로 데스크 톱, 서버, 모바일 애플리케이션 간에 코드를 쉽게 공유할 수 있도록 해야겠다고 생각하였다.

 

그리고 복수의 .NET 어플리케이션 모델 간에 코드를 보다 쉽게 공유할 수 있도록 계획의 일부로서 Build에서 .NET Standard를 발표했다.

 

또 우리는 복수의 어플리케이션 모델에 걸친 프로젝트의 작업도 쉽게 할 필요가 있었다. 이 때문에 현재 진행 중인 것이 .xproj/project.json 프로젝트 시스템과 .csproj 프로젝트 시스템의 기능을 MSBuild 베이스의 하나로 프로젝트 시스템에 통합하는 것이다. 이행은 자동으로 이뤄지기 때문에 기존 프로젝트에 변경을 가할 필요는 없다. 이 작업은 Visual Studio 15 출시 일정 기간에 실시할 예정이다.

 

 

툴이 "프리뷰" 버전인 이유

.NET Core는 아래 2가지 주요 컴퍼넌트로 구성되어 있다.

런 타임 라이브러리: CLR, 라이브러리, 컴파일러 등

: .NET Core 프로젝트의 작업에 사용하는 NET Core 명령 라인 툴, Visual Studio, Visual Studio Code에서 지원되는 모든 도구

 

이번 .NET Core의 컴포넌트 마다 릴리즈 버전을 나누기로 했다. 이로써 기다리고 있는 분들은 .NET Core 1.0 RC2를 안심하고 이용하면서 한편으로는 마이크로 소프트는 툴 계획을 진행할 수 있다.

.NET Core 1.0 RC2 런타임은 정식 Release Candidate판이다. 신뢰성과 안정성이 확보되어 있어서(치명적인 문제가 발생하지 않는 한)RTM 판까지 변경되지 않는다. Go-Live라이선스가 부여되기 때문에 마이크로 소프트에서 정식 지원을 받을 수 있다.

새로운 명령 라인 툴이나 Visual Studio Visual Studio Code의 플러그 인 등 .NET Core ASP.NET Core를 지원하는 툴은 RC 판에는 아직 도달하고 있지 않고 안정화될 때까지 변경된다. 그래서 이 툴은 Preview 1으로서 출시된다.

 

출처: https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/

 

 

저작자 표시
신고
by 흥배 2016.05.17 09:57

Amazon 클라우드가 2014년에 발표했던 "AWS Lambda"은 가상 서버의 운용 등이 필요가 없는 관리 서비스로서 이벤트를 트리거로 코드를 실행하는 확장성 있는 클라우드 환경을 제공한다는 독특한 것이었다.

 

그리고 AWS Lambda의 기능을 활용한 어플리케이션 구성은 "서버 레스 아키텍처"라고 불리게 되었다.

 

마이크로 소프트는 이 서버 레스 아키텍쳐에 대응한 서비스인 "Azure Functions""Build 2016"에서 발표했다.

서버 레스 컴퓨팅을 실현하고 C#, Node.js, PHP 등 다양한 언어에 대응.

Azure IoT과 스토리지 등의 이벤트를 트리거로 코드를 실행한다.

관리 서비스이며 부하에 맞추어 역동적으로 스케일 한다.

고정 요금이 아니고 실행에 따른 비용이 발생하기 때문에 비용 대비 효과가 크다.

Azure Functions 런타임을 오픈 소스로 했다. 다른 클라우드 서비스에서도 실행 가능하다.

(역자. 이것이 아주 좋음. 한국에서 Azure Functions를 사용하여 게임 서비스를 만든 후 중국에서 서비스할 때 퍼블리셔의 요청에 의해 Azure를 사용하지 못해도 Azure Functions를 따로 설치해서 사용가능)

 

 

출처: http://www.publickey1.jp/blog/16/azure_functions_build_2016.html

저작자 표시
신고
by 흥배 2016.04.01 10:54

Official News from Microsoft's Information Platform

https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/31/microsoft-sql-server-developer-edition-is-now-free/

 

SQL Server 2014 Developer Edition Visual Studio Dev Essentials 유저용으로 무료로 제공.

SQL Server Developer Edition은 서비스 환경에서 사용할 수 없는 제한만 있을 뿐 기능적으로는 Enterprise Edition과 동등하다.

SQL Server 2014 Developer Edition은 지금까지는 무료는 아니었음(Express 버전이 무료).

저작자 표시
신고
by 흥배 2016.04.01 10:45