어떻게 당신의 이력서를 철저하게 설계합니까, 두 번째 부분

17220 단어 cvrcareerdocker
본 논문에서 우리는 텍스트 부분과 GitHub 조작을 어떻게 사용하여 자동으로 그것을 생성하는지 중점적으로 토론했다.
그러나 완전히 불필요한 프로그래밍 시간표 부분이 없다면 이력서는 무엇일까?이것은 당신이 겪었던 일을 보여주는 것이다. Pascal을 통해 90년대에 윈도를 사용했고, 던져진 자바스크립트 프레임워크에 접근하고 격파하는 방법을 보여주는 시각도 있다.
CSV 파일의 타임라인에서 시작합니다. 예를 들어 this:
Item, Group, Start Date, End Date
Basic, Languages, 1983-12-25, 1990-12-01
Pascal, Languages, 1988-09-01, 1993-01-01
C, Languages, 1989-01-01, 1993-12-01
... 잠깐만요.이것은 프로젝트 자체, 당신이 경험이 있는 것, 그리고 한 팀이다.나는 LanguagesEnvironments이 리눅스나 클라우드 같고 Tools이 Docker 같다.마음대로 해.

You might want "Sewing techniques" like "needlepoint" or "macramé" or "Zombie vanquishing" "with baseball bat" "sawed-off shotgun", whatever. Hey, any job, up to and including zombie exterminator, is well served with an over-engineered CV.


시작 날짜와 끝 날짜는 모두 자기 묘사이다. 단지 순수한 심미적 이유로 올해 12월에 내가 아직도 사용하고 있는 것을 표시할 계획이다.
나는 R을 사용하여 이것을 나타낼 것이다.여느 때와 마찬가지로 대부분의 물건은 좋은 R 시각화 라이브러리를 가지고 있다. vistime 을 사용하겠습니다. 이 R모듈은 vis 행을 표준화하는 데 사용됩니다.그러나 전환점이 하나 있다.
library("vistime")
library("ggplot2")

data <- read.csv("data/programming.csv")

g <- gg_vistime(data, col.event="Item", col.start="Start.Date", col.end="End.Date", col.group="Group") + theme(axis.text.x = element_text(angle=90, color='blue4',size=14) )+coord_flip()

g.d <- ggplot_build(g)

g.d$data[[4]]$angle <- 90

rebuilt <- ggplot_gtable(g.d)

png(filename="img/timeline.png", width=240, height=960)
plot(rebuilt)
dev.off()
내가 원하는 것은 수평 시간선이 아니라 수직 시간선이다.기본적으로 그 중 한 페이지의 공백을 메우는 페이지의 간격이지 일반적인 수평 시간선으로 페이지의 대부분을 차지하는 것이 아니다.이것은 두 번째 문장에서 완성되었다. time 데이터 구조를 생성했는데 이것은 기본적으로 ggplot2 문장을 가진 시간선이다. 이 문장은 좌표를 돌려 수직으로 한다.그러나 문제는 술집 꼬리표가 뒤집히지 않았다는 점이다.그 밖에 일부 항목은 거의 같은 시간에 시작되었기 때문에 중첩되었다.결과가 그다지 좋지 않고 공사 수준도 괜찮다.그래서 우리는 다음 여섯 문장에서 과도하게 설계해야만 했다.
나는 내가 coord_flip 데이터 구조의 도표에 있는 모든 내용을 가지고 있다는 것을 안다.다른 언어를 사용하는 경우 객체를 구성하는 객체로 분해하고 실제 태그가 지정된 부분을 처리하기 쉽습니다.R을 사용하는 것은 쉽지 않습니다. 데이터 구조에 접근하기 위해서는 g 주문서를 보내야 합니다.

Deconstructing through a command called build, that's rich...


이것은 일련의 데이터 프레임을 포함하는 테이블을 만들 것입니다. 사용할 수 있습니다.네 번째 요소

and yes, R starts its arrays with 1, just like Pascal. See? Learning Pascal was not so useless, after all (in fact, it was pretty useful and the best thing you could do in the 80s).


모든 줄을 포함하는 데이터 프레임을 포함합니다.뒤집기는 각도를 올바른 각도로 변경하는 것처럼 간단합니다. 이것은 적절한 각도입니다.
g.d$data[[4]]$angle <- 90
그 후에도 분해된 도표가 있습니다. 다시 조립해서 실제 파일에 저장해서 준비해야 합니다.
그것을 실행하려면 명령줄에서 명령을 보내기만 하면 된다.그것을 생성하는 작업 흐름을 만드는 것은 다른 일이다.이 가능하다, ~할 수 있다,...
name: "Programming timeline"
on:
  push:
    paths:
      - 'data/*.csv'

jobs:
  creates-timeline:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Instala R
        uses: r-lib/actions/setup-r@v1
        with:
          r-version: '3.5.3'
      - name: Install packages
        run: sudo apt-get install libcurl4-openssl-dev
      - name: Install dependencies
        run: |
          install.packages(c("ggplot2", "curl", "httr", "plotly", "vistime"))
        shell: Rscript {0}
      - name: Ejecuta el script
        run: Rscript .github/workflows/timeline.R
단번에 아주 간단해요.버전 관리자 중 하나를 사용하여 R을 설정하고 필요한 하위 의존 항목 패키지를 설치한 다음 사용할 실제 패키지를 설치합니다. (존재하지 않을 수도 있지만 어쨌든 존재하는 의존 항목을 포함하여 정확한 순서대로 설치되었는지 확인합니다.)그런 다음 스크립트를 실행합니다.
the first version you could think about이 필요합니다.이것은 시간선에 있어서 너무 많다.R 패키지를 설치하는 데는 포란 언어, 소스 코드, 기타 모든 언어를 컴파일하는 C 언어가 포함된다.7분.시간표에'이 시간표 생성'의 실질적인 부분을 포함하지 않더라도 이 점을 줄여야 한다.
다시 한 번, 캐시 사용은 철저히 버려졌다.너무 많은 다른 곳에 너무 많은 것들이 있다.하지만 이번에는 Docker 이미지를 사용하는 것이 의미가 있습니다.이미지는 거의 동일한 내용을 포함하지만 7 minutes 형식으로 나타납니다.
FROM r-base

LABEL version="0.0.1" maintainer="[email protected]"

RUN apt-get update \
    && apt-get install -y libcurl4-openssl-dev r-cran-ggplot2 libssl-dev r-cran-httr git\
    && R -e "install.packages(c( 'plotly', 'vistime'))"

WORKDIR /home/docker

ENTRYPOINT ["Rscript"]
이곳에는 과도한 공사가 많지 않다.필요한 패키지를 간단히 설치하고 R-스크립트 실행 프로그램으로 사용할 수 있는 엔트리 포인트를 제공합니다.
과도한 공사가 많지 않다고 했죠?어, 딱 맞다.이것은 package입니다. 이것은 전송할 때마다 새로운 그림을 컴파일하려고 시도합니다.대부분의 경우, Docker 이미지에는 새로운 내용이 없고, 이력서에 추가된 데이터만 있을 뿐이다.예, Github 작업을 필터해서 Docker Hub 또는 Github 레지스트리에 업로드할 수 있는 경로가 있습니까?그런데 왜요?public in Docker Hub과 같은 도구를 사용하면 필요한 컴파일을 완성할 수 있습니다.
use Git;

my $repo = Git->repository (Directory => '.');
my @modified_files = $repo->command('diff', "--name-only", "HEAD", "HEAD^");
die("No Dockerfile modified in the last commit\n")  unless grep( /Dockerfile/, @modified_files);
이것은 실제적으로 상당히 표준적이며, 루트 디렉터리에 ggplot_build만 있으면 모든 환매 협의에서 사용할 수 있습니다.Dockerfile이 마지막 제출에 있는지 확인하고 없으면 종료되며 Docker Hub 파이프에 계속할 수 없는 신호를 보냅니다.

This appears as a failure in the pipeline; there's no way to make the pipeline just stop instead of failing.


Perl도 Docker Hub runner에 설치되어 있기 때문에 가능합니다.여기저기 다.
그런 다음 업데이트된 GitHub 작업에서 필요한 경우에만 이 Docker 이미지를 재생성할 수 있습니다.
name: "Programming timeline"
on:
  push:
    paths:
      - 'data/*.csv'

jobs:
  creates-timeline:
    runs-on: ubuntu-latest
    container: jjmerelo/cv
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Ejecuta el script
        run: Rscript .github/workflows/timeline.R
      - name: Checks in results
        shell: bash {0}
        run: |
          if [[ $(git status -s) ]]; then
              git config --global user.email "[email protected]"
              git config --global user.name "CVDataBot"
              git commit -am "Update timeline chart"
              git push
          else
              echo "🟏 No Changes"
          fi
대부분의 내용은 실제적으로 이미지에 변화가 있는지 검사한다. (데이터가 변했더라도, 예를 들어 공백의 변화일 경우 이미지는 변하지 않을 수도 있다.)그러나 일부 과도한 공사도 있으니 잠시 후에 다시 토론하자.Dockerfile키에서 보듯이 이 GitHub 작업은 용기에서 실행되기 때문에 용기에 넣은 내용만 사용할 수 있습니다.이것은 다른 용기에서 그것을 실행한 다음 container에서 그림을 실행하는 것보다 낫다.이것은 약간의 시간을 절약했다.하지만 용기에서 원본 서명을 실행합니다.this one은 똑똑한 소프트웨어이다. 무슨 일이 있어도 실행할 수 있다.이것은 자신의 장치를 사용하여 원본 코드를 다운로드할 것입니다.그러나 우리는 그 다음에 그것을 전송해야 하기 때문에 실제git 저장소에 서명해야 한다.컨테이너가 이 옵션을 사용하는 이유입니다.
apt-get install -y libcurl4-openssl-dev r-cran-ggplot2 libssl-dev r-cran-httr git
원칙적으로 필요하지 않은 곳에 docker pull을 설치한다.존재하면 git이git를 사용하면 제출 및 전송 등에 사용할 수 있는 환매 협의가 있습니다!
그것은 또 다른 좋은 것이 있다. actions/checkout.기본적으로 GitHub 단계에서 사용되는 셸은 bash입니다.그러나 이 점을 바꿀 수 있습니다. (예, This, 네, 저는 PR을 통해 이 부분을 문서에 추가했습니다.) 셸을 사용하여 표현식과 검사를 수행하는 것은 좀 번거롭기 때문입니다. (아니요, 우리는 이 용기에 Perl을 설치하지 않으려고 합니다. (하지만 생각해 보니 이미 존재할 수도 있습니다.)
including Perl
... 한 마디로 하면 또 다른 자랑 방식은 bash뿐만 아니라 일반 sh 문법과의 차이도 알고 있다는 것이다.
이 새 버전은 으로 대부분 다운로드 및 용기 설정에 사용된다

With a bit of more over-engineering, we could create a slimmed-down R container... Maybe in the future.


이것들이 있으면 당신의 제시간에 takes less than a minute이 생성됩니다

이력서 다운로드 준비 완료 가치가 있습니까?


응, 이력서 쓰는 건 정말 지루해.당신이 알고 있는 대로 그것을 더욱 아름답게 만들거나 자동으로 생성하고, 더욱 재미있게 만드는 것은 절대로 가치가 있다.그것은 또한 정교한 공예와 최적화에 대한 열정을 보여 주었다.
같은 워드프로세서로 만들 수 있는 것들을 과도하게 설계하는 경향이 있다.하지만 늘 나쁜 일은 아니지, 그렇지?

좋은 웹페이지 즐겨찾기