Slide 1

Slide 1 text

ʓʓΛࢧ͍ٕ͑ͨज़ !NBTVUBLB

Slide 2

Slide 2 text

ɹɹΛࢧ͍ٕ͑ͨज़ !NBTVUBLB ˜FTB--$

Slide 3

Slide 3 text

˜FTB--$

Slide 4

Slide 4 text

͍Α͍Α2JJUB5FBN͔ΒͷΠϯϙʔτ͕ ׬ྃ͠ɺFTBͷຊ֨Քಇ͕࢝·Γ·ͨ͠Ͷ

Slide 5

Slide 5 text

ͦ͏͍͑͹ઌ݄͜ΜͳπʔϧΛ ࡞Γ·ͨ͠

Slide 6

Slide 6 text

IUUQTNBTVUBLBOFUDIBMPXIUNM

Slide 7

Slide 7 text

σϞ

Slide 8

Slide 8 text

ػೳ w ʮ೚ҙͷΫΤϦͰFTBͷهࣄΛݕࡧ͠ɺΩϟο γϡϑΝΠϧʹॻ͖ग़ؔ͢਺ʯΛఆظతʹ࣮ߦ ͢Δ w FNBDTIFMNJOUFSGBDFܦ༝Ͱݕࡧ݁ՌΛߜΓࠐ Έͭͭɺϒϥ΢βͰૉૣ͘هࣄΛ։͘͜ͱ͕ग़ དྷΔ

Slide 9

Slide 9 text

ݕࡧΫΤϦͷઃఆྫ (setq helm-esa-search-query (concat "watched:true kind:stock" " -in:Archived" " -category:Templates" " -in:\"esa ࿅श৔\"" " -in:\"(unsorted)\""))

Slide 10

Slide 10 text

helm-esa-http-request request.el request--curl-callback request--curl-command async ~/.emacs/helm-esa success & finish? Emacs timer (default: Once an hour) next page?

Slide 11

Slide 11 text

(defun helm-esa-http-request (&optional url) "Make a new HTTP request for create `helm-esa-file'. Use `helm-esa-get-url' if URL is nil." (unless url ;; 1st page (if (get-buffer helm-esa-work-buffer-name) (kill-buffer helm-esa-work-buffer-name)) (get-buffer-create helm-esa-work-buffer-name)) (helm-esa-http-debug-start) (request (if url url (helm-esa-get-url)) :headers `(("Authorization" . ,(concat "Bearer " helm-esa-access-token))) :parser 'json-read :success (cl-function (lambda (&key data response &allow-other-keys) (helm-esa-http-debug-finish-success (request-response-url response)) (let ((next-url)) (with-current-buffer (get-buffer helm-esa-work-buffer-name) (goto-char (point-max)) (helm-esa-insert-articles data) (setq next-url (helm-esa-next-url data)) (if next-url (helm-esa-http-request next-url) (write-region (point-min) (point-max) helm-esa-file)))))) :error (cl-function (lambda (&key error-thrown response &allow-other-keys) (helm-esa-http-debug-finish-error (request-response-url response) error- thrown))))) IUUQTHJUIVCDPNNBTVUBLBFNBDTIFMNFTB

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

IUUQTXXXBNB[PODPKQEQ#1'1(

Slide 14

Slide 14 text

ωλΛܾΊ͔Ͷ͍ͯͨࠓ݄಄ʹͳ͔ͥ ʰجૅ͔ΒΘ͔Δ&MNʱΛखʹऔΓ·ͨ͠

Slide 15

Slide 15 text

&MN w ڧྗͳ੩తܕγεςϜΛ࣋ͭؔ਺ܕݴޠ w +BWB4DSJQUʹίϯύΠϧ͢Δ͜ͱʹΑͬͯϒϥ΢ β্Ͱಈ࡞͢Δ w ॳ৺ऀֶ͕श͠΍͍͢͜ͱΛॏࢹ͓ͯ͠Γɺͱ ͯ΋γϯϓϧͳݴޠʹͳ͍ͬͯΔ ʰجૅ͔ΒΘ͔Δ&MNʱ1ΑΓൈਮ

Slide 16

Slide 16 text

TZOUBYʢߏจʣ͕FNBDTMJTQ FMJTQ ͱࣅ͍ͯΔؾ͕

Slide 17

Slide 17 text

ؔ਺ݺͼग़͠ (max 1 2) => 2 elisp -- ΧϯϚ ͸ෆཁ max 1 2 => 2 -- ΧοίͰׅΕΔ⭐ (max 1 2) => 2 Elm

Slide 18

Slide 18 text

தஔԋࢉࢠ (1 + 2) => Invalid function: 1 (+ 1 2) => 3 elisp 1 + 2 => 3 -- ؔ਺ͱͯ͠΋࢖͑Δ (+) 1 2 => 3 -- ઈରݟ΍͍͢⭐ ((+) 1 2) => 3 Elm

Slide 19

Slide 19 text

MFUࣜ (let ((a 1) (b 2)) (max a b)) => 2 elisp -- ׬શʹҰக⭐ let a = 1 b = 2 in max a b => 2 Elm

Slide 20

Slide 20 text

-JTUʢԋࢉࢠʣ (cons 3 '(2 1)) => (3 2 1) elisp -- ͜Ε·ͨಉ͡⭐ 3 :: [2, 1] => [3,2,1] Elm

Slide 21

Slide 21 text

λϓϧ (cons 1 "a") => (1 . "a") elisp -- ಉͩ͡⭐ (1, "a") => (1,"a") Elm

Slide 22

Slide 22 text

FNBDTIFMNFTB

Slide 23

Slide 23 text

FNBDTIFMNFTB

Slide 24

Slide 24 text

ͳΔ΄Ͳʁ

Slide 25

Slide 25 text

IFMNFTBFMͱಉ͜͡ͱ͕&MNͰ ࣮૷ग़དྷͨΓ͢Δʁ

Slide 26

Slide 26 text

ͱΓ͋͑ͣࢼͯ͠Έͨ

Slide 27

Slide 27 text

σϞ

Slide 28

Slide 28 text

IUUQTHJUIVCDPNNBTVUBLBTBOECPYFMNFTB ݟӫ͑Λྑ͘͢ΔͨΊʹhtmlͱcssΛഈआ͠·ͨ͠ɻ esaͷօ͞Μ͝ΊΜͳ͍͞

Slide 29

Slide 29 text

ग़དྷΔ͜ͱ w ݕࡧ͕Ͱ͖Δ w (&5WUFBNTUFBN@OBNFQPTUT w IFMNFTBFMͱಉ͡ w લ΍࣍ͷϖʔδʹਐΊΔ w ͦΕ͚ͩ

Slide 30

Slide 30 text

੍ݶࣄ߲ w 0"VUIͷ*NQMJDJU'MPXΛ࣮૷͍ͯ͠ͳ͍ͨ Ίɺ"DDFTT5PLFOϕλॻ͖

Slide 31

Slide 31 text

ίʔυΛಡΉ https://github.com/masutaka/sandbox-elm-esa/blob/ master/src/Main.elm

Slide 32

Slide 32 text

·ͱΊ w ͦ΋ͦ΋&NBDTͷॲཧܥΛFMJTQ͔Β&MNʹมߋ ͢Δ͜ͱ͸ग़དྷͳ͍ w ؔ਺ܕݴޠͱࣅ͍ͯΔFMJTQͷ࣍ʹɺ&MNΛֶͿ ͱֶश͕௙Δ

Slide 33

Slide 33 text

͓ΘΓ