Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Kuv xav tias kuv tau muab ntau qhov kev nthuav qhia rau cov npoj yaig, cov neeg siv khoom, thiab kev hais lus rau pej xeem hauv kuv txoj haujlwm IT. Tau ntau xyoo, Powerpoint tau yog qhov kev xaiv ntuj thiab txhim khu kev qha rau kuv ua cov cuab yeej tsim khoom swb. Tab sis xyoo no qhov xwm txheej tau hloov pauv zoo. Txij lub Ob Hlis mus txog rau lub Tsib Hlis, kuv muaj sijhawm los hais lus ntawm tsib lub rooj sib tham, thiab cov slides rau cov lus ceeb toom yuav tsum tau npaj nyob rau hauv ib lub sij hawm luv luv, tab sis nrog cov khoom zoo. Cov lus nug tshwm sim txog kev tso cai rau ib feem ntawm txoj haujlwm hais txog kev tsim cov duab slides rau lwm tus neeg. Kuv ib zaug sim ua haujlwm nrog tus tsim qauv, xa .pptx cov ntaub ntawv los ntawm kev xa ntawv, tab sis kev ua haujlwm tau hloov mus rau hauv kev chaos: tsis muaj leej twg paub tias qhov twg ntawm cov slides yog "tshiab", thiab cov txheej txheem yog "txav" vim qhov txawv ntawm Powerpoint. versions thiab fonts ntawm peb lub tshuab. Thiab kuv txiav txim siab sim ib yam tshiab. Kuv sim nws, thiab txij thaum ntawd los kuv tsis tau xav txog rov qab mus rau Powerpoint.

Peb xav tau dab tsi

Kwv yees li ib xyoos thiab ib nrab xyoo dhau los, peb lub tuam txhab tau tso tseg siv Lo Lus los tsim cov ntaub ntawv ua haujlwm, tau ntsib cov teeb meem tib yam: txawm hais tias Lo Lus zoo rau kev ntaus ntawv me me, raws li qhov ntim loj tuaj, muaj teeb meem tshwm sim nrog kev sib koom tes thiab tau txais cov khoom zoo thiab koom ua ke tsim. Peb qhov kev xaiv poob rau AsciiDoctor, thiab peb yeej tsis tas yuav zoo siab rau qhov kev xaiv no, tab sis qhov no yog lub ntsiab lus rau ib tsab xov xwm cais. Nyob ib ncig ntawm tib lub sijhawm, peb tau kawm txog qhov ua tau zoo ntawm ib qho ntawm DevOps cov hauv paus ntsiab lus ntawm "txhua yam raws li cov cai", yog li kev xaiv ntawm cov kev xav tau rau cov thev naus laus zis tshiab rau kev tsim cov ntawv nthuav qhia tau pom tseeb:

  1. Qhov kev nthuav qhia yuav tsum yog cov ntaub ntawv yooj yim hauv cov lus cim.
  2. Peb cov slides yog hais txog kev txhim kho tej yaam num, yog li lub markup yuav tsum ua kom yooj yim rau ntxig, tsis muaj resorting rau sab nraud systems
    • code fragments nrog syntax highlighting,
    • daim duab yooj yim nyob rau hauv daim ntawv ntawm cov duab geometric txuas nrog cov xub,
    • UML daim duab, flowcharts thiab lwm yam.
  3. Cov qauv kev nthuav qhia yuav tsum tau muab khaws cia rau hauv ib qho kev tswj hwm version.
  4. Kev lees paub thiab kev sib dhos ntawm cov swb tiav yuav tsum ua tiav hauv CI system.

Niaj hnub no, muaj ob txoj hauv kev los tsim cov slides hauv cov lus cim: pob nqaj rau LaTeX lossis ib qho ntawm cov txheej txheem tsim cov slides siv HTML / CSS (QhiaJS, nco txog, deck.js thiab ntau lwm tus).

Txawm hais tias kuv tus ntsuj plig nyob hauv LaTeX, kuv lub siab tau hais tias qhov kev xaiv ntawm kev daws teeb meem uas kuv yuav tsis yog tib tus siv yuav tsum nyob rau sab ntawm cov kev daws teeb meem uas paub ntau dua ntawm cov neeg. Tsis yog txhua tus paub LaTeX, thiab yog tias koj qhov kev coj ua niaj hnub tsis cuam tshuam txog kev sau cov ntawv tshawb fawb, ces koj tsis zoo li yuav muaj sijhawm los raus koj tus kheej hauv lub ntiaj teb loj, sib txawv ntawm cov kab ke no.

Txawm li cas los xij, kev paub ntawm HTML / CSS tsis yog qhov kev txawj dav dav: Kuv, piv txwv li, kuv nyob deb ntawm kev txawj ntse hauv nws. Hmoov zoo, tus uas twb paub AsciiDoctor los cawm: lub converter asciidoctor-qhia tawm tso cai rau koj los tsim RevealJS slides siv AsciiDoctor markup. Thiab nws yooj yim kawm thiab siv tau rau txhua tus!

Yuav ua li cas code slides

Txhawm rau nkag siab cov ntsiab lus ntawm coding slides ntawm AsciiDoctor, txoj hauv kev yooj yim tshaj plaws yog muab cov piv txwv tshwj xeeb. Cov no yog tag nrho los ntawm cov slides tiag tiag uas kuv tau ua rau kuv lub rooj sib tham nthuav tawm xyoo no.

Ib daim swb nrog lub npe thiab cov npe hauv cov khoom qhib ib qho tom qab lwm qhov:

== Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Streams API?

[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ:
** АвтоматичСский offset commit
** РСбалансировка
** Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ состояниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
** Π›Π΅Π³ΠΊΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Header thiab source code snippet nrog syntax highlighting:

== Kafka Streams API: общая структура KStreams-прилоТСния

[source,java]
----
StreamsConfig config = ...;
//Π—Π΄Π΅ΡΡŒ устанавливаСм всякиС ΠΎΠΏΡ†ΠΈΠΈ

Topology topology = new StreamsBuilder()
//Π—Π΄Π΅ΡΡŒ строим Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡŽ
....build();
----

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Hauv kev npaj rau kev sib tham, code demos tau dhau los ua ntau yam kev hloov kho thiab txhim kho, yog li muaj peev xwm luam tawm sai thiab muab "raws li code" ncaj qha rau hauv cov swb yog qhov tseem ceeb, kom ntseeg tau tias qhov demo hloov tshiab yam tsis muaj kev txhawj xeeb txog cov ntsiab lus tseem ceeb.

Lub npe, kev piav qhia thiab cov ntawv nyeem (layout ntawm tus swb yog ua tiav hauv hlwb AsciiDoctor rooj):

== Kafka Streams in Action

[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
β€œKafka Streams in Action”, November 2018
* ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Kafka 1.0
|===

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Qee lub sij hawm lub npe tsis xav tau, thiab los qhia koj cov ntsiab lus koj tsuas yog xav tau daim duab puv npo:

[%notitle]
== Π–ΠΈΡ‚ΡŒ Π² лСгаси Π½Π΅Π»Π΅Π³ΠΊΠΎ

image::swampman.jpg[canvas, size=cover]

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Feem ntau lub tswv yim yuav tsum tau txais kev txhawb nqa los ntawm daim duab yooj yim, hauv daim ntawv ntawm "squares txuas nrog cov xub." Hmoov zoo, AsciiDoctor tau koom ua ke nrog lub kaw lus Graphviz - ib hom lus uas tso cai rau koj los piav qhia cov duab kos raws li cov lus piav qhia ntawm cov vertices thiab kev sib txuas ntawm lawv. Graphviz siv txoj kev kawm nkhaus, tab sis raws li cov piv txwv tau muab, nws yooj yim zoo nkauj ua! Nov yog qhov nws zoo li:

== ПишСм β€œBet Totalling App”

Какова сумма Π²Ρ‹ΠΏΠ»Π°Ρ‚ ΠΏΠΎ сдСланным ставкам, Ссли сыграСт исход?

[graphviz, "counting-topology.png"]
-----
digraph G {
graph [ dpi = 150 ];
rankdir="LR";
node [fontsize=18; shape="circle"; fixedsize="true"; width="1.1"];
Store [shape="cylinder"; label="Local Store"; fixedsize="true"; width="1.5"]
Source -> MapVal -> Sum -> Sink
Sum -> Store [dir=both; label=" n "]
{rank = same; Store; Sum;}
}
-----

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Nyob rau hauv rooj plaub thaum nws yog ib qho tsim nyog los hloov cov npe ntawm daim duab, hloov cov kev taw qhia ntawm xub, thiab lwm yam., qhov no tuaj yeem ua tiav ncaj qha rau hauv cov lus qhia kev nthuav qhia, tsis txhob kos duab kos duab rau qhov chaw thiab rov ntxig rau hauv cov swb. Qhov no ua rau kom qhov ceev ntawm kev ua hauj lwm ntawm slides.

Ib qho piv txwv nyuaj dua:

== НСвоспроизводимая сборка
[graphviz, "unstable-update.png"]
-----
digraph G {
  rankdir="LR";
  graph [ dpi = 150 ];
  u -> r0;
  u[shape=plaintext; label="linter updaten+ 13 warnings"]
  r0[shape=point, width = 0]
  r1 -> r0[ arrowhead = none, label="master branch" ];
  r0-> r2 [];   b1 -> b4;  r1->b1
  r1[label="150nwarnings"]
  b1[label="Β± 0nwarnings"]
  b4[label="Β± 0nwarnings"]
  b4->r2
  r2[label="163nwarnings", color="red", xlabel=<<font color="red">merge blocked</font>>]
  {rank = same; u; r0; b4;}
}
-----

tshwm sim

Kev nthuav qhia raws li cov cai, lossis Vim li cas kuv tsis siv Powerpoint lawm

Los ntawm txoj kev, nws yooj yim rau kev sim nrog Graphviz thiab debug cov duab ntawm nplooj ntawv Graphviz online.

Thaum kawg, yog tias koj xav tau ntxig ib daim ntawv qhia, daim duab qhia hauv chav kawm lossis lwm cov qauv duab kos rau hauv cov swb, ces lwm qhov kev koom ua ke nrog AsciiDoctor tuaj yeem pab cawm, PlantUML. Kuv tus npoj yaig Nikolai Potashnikov tau sau txog lub peev xwm ntawm PlantUML cais ncej.

Tig qhov kev nthuav qhia qhov project mus rau hauv cov cai khaws cia rau hauv ib qho kev tswj hwm version ua rau nws muaj peev xwm los npaj kev sib koom ua haujlwm ntawm kev nthuav qhia, ua ntej ntawm tag nrho cov, cais cov dej num ntawm kev tsim cov ntsiab lus thiab tsim. Kev tsim cov slides (fonts, keeb kwm yav dhau, indents) hauv RevealJS tau piav qhia siv CSS. Kuv tus kheej kev txawj nrog CSS yog qhov zoo tshaj plaws los ntawm tej gif - tab sis nws tsis txaus ntshai thaum muaj cov neeg ua haujlwm nrog CSS ntau dua dexterously thiab sai dua kuv. Raws li qhov tshwm sim, nws hloov tawm tias nrog rau lub sijhawm sai sai rau qhov kev nthuav qhia, peb tuaj yeem ua haujlwm ntawm cov ntaub ntawv sib txawv ib txhij ntawm Git thiab tsim kom muaj kev sib koom tes nrawm uas tsis yooj yim sua thaum xa .pptx cov ntaub ntawv los ntawm kev xa ntawv.

Tsim ib nplooj ntawv HTML nrog slides

Cov ntawv nyeem yooj yooj yim yog qhov zoo, tab sis koj ua li cas muab lawv tso rau hauv qhov kev nthuav qhia nws tus kheej?

AsciiDoctor yog ib qhov project sau hauv Ruby, thiab muaj ntau txoj hauv kev los khiav nws. Ua ntej, koj tuaj yeem nruab Ruby lus thiab khiav asciidoctor ncaj qha, uas yog qhov ze tshaj plaws rau Ruby developers.

Yog tias koj tsis xav cuam tshuam nrog kev txhim kho Ruby, koj tuaj yeem siv cov duab docker asciidoctor/docker-asciidoctor, rau hauv uas, thaum pib, koj tuaj yeem txuas cov ntawv tais ceev tseg nrog cov peev txheej ntawm VOLUME thiab tau txais qhov tshwm sim hauv qhov chaw muab.

Qhov kev xaiv uas kuv xaiv yuav zoo li tsis tau xav txog, tab sis nws yog qhov yooj yim tshaj plaws rau kuv ua tus tsim tawm Java. Nws tsis tas yuav teeb tsa Ruby lossis docker, tab sis tso cai rau koj los tsim cov slides siv Maven tsab ntawv.

Lub ntsiab lus yog qhov project JRuby - Kev siv Java ntawm Ruby yog qhov zoo heev uas nws tso cai rau koj khiav yuav luag txhua yam tsim rau Ruby hauv Java tshuab, thiab khiav AsciiDoctor yog ib qho kev siv JRuby tshaj plaws.

muaj asciidoctor-maven-plugin tso cai rau koj los sau cov ntaub ntawv AsciiDoctor uas yog ib feem ntawm Java project (uas peb nquag siv). Tib lub sijhawm, AsciiDoctor thiab JRuby raug rub tawm los ntawm Maven, thiab AsciiDoctor khiav hauv JRuby ib puag ncig: tsis tas yuav nruab dab tsi ntawm lub tshuab! (Tsis suav nrog pob graphviz, uas yuav tsum tau yog tias koj xav siv GraphViz lossis PlantUML cov duab.) Tsuas tso koj cov ntaub ntawv .adoc rau hauv ib daim nplaub tshev src/main/asciidoc/Cov. Ntawm no piv txwv ntawm pomniksau slides nrog daim duab.

Hloov slides rau PDF

Txawm hais tias HTML version ntawm slides yog tus kheej txaus, nws tseem yuav tsum muaj PDF version ntawm slides. Ua ntej, nws tshwm sim tias ntawm qee lub rooj sib tham uas tsis muab lub sijhawm rau tus neeg hais lus txuas rau nws lub laptop, lawv xav tau cov slides " nruj me ntsis hauv pptx lossis pdf hom," yam tsis xav tias lawv tseem nyob hauv HTML. Qhov thib ob, nws yog ib daim ntawv zoo xa cov neeg koom ua ib qho kev hloov kho ntawm koj cov slides raws li lawv tau qhia hauv daim ntawv tshaj tawm, hauv PDF hom ntawv rau kev tshaj tawm cov ntaub ntawv hauv cov ntaub ntawv sib tham.

Hmoov zoo, Node.js kev siv hluav taws xob ua haujlwm no. daim kab xev, ua los ntawm lub hauv paus Tus Menyuam Yaj - automation systems rau tswj Chrome browser. Koj tuaj yeem hloov RevealJS kev nthuav qhia rau PDF nrog cov lus txib

node decktape.js -s 3200x1800 --slides 1-500 
  reveal "file:///index.html?fragments=true" slides.pdf  

Ob lub tswv yim thaum launching decktape, uas peb yuav tsum tau los ntawm kev sim thiab yuam kev:

  • daws teeb meem ntawm parameter -s yuav tsum tau teev nrog ib tug ob npaug margin, txwv tsis pub tej zaum yuav muaj teeb meem nrog lub conversion tau

  • nyob rau hauv qhov URL ntawm HTML version ntawm qhov kev nthuav qhia koj yuav tsum dhau ib qho parameter ?fragments=true, uas yuav tsim ib nplooj ntawv PDF cais rau txhua lub xeev nruab nrab ntawm koj cov swb (piv txwv li, tsib nplooj ntawv rau tsib lub ntsiab lus yog tias lawv tau pom ib qho tom qab). Qhov no yuav tso cai rau koj siv xws li PDF ntawm nws tus kheej raws li kev nthuav qhia thaum sau ntawv.

Tsis siv neeg sib dhos thiab tshaj tawm hauv lub vev xaib

Nws yog qhov yooj yim thaum cov slides tau muab tso ua ke tau txais thaum hloov pauv mus rau qhov kev tswj hwm version, thiab txawm tias yooj yim dua thaum txiav cov slides tau muab tso rau hauv Is Taws Nem rau pej xeem siv. Slides los ntawm Is Taws Nem tuaj yeem yooj yim "ua si" nyob rau hauv pem hauv ntej ntawm cov neeg tuaj saib los ntawm txhua lub tshuab txuas nrog Is Taws Nem thiab lub projector.

Txij li thaum peb siv GitHub hauv peb txoj haujlwm, qhov kev xaiv ntawm CI system yog TravisCI, thiab rau hosting npaj-ua kev nthuav qhia - github.io. Lub tswv yim tom qab github.io yog tias cov ntsiab lus zoo li qub tau tshaj tawm rau ib ceg gh-pages ntawm koj qhov project ntawm GitHub, yuav muaj nyob ntawm <вашС имя>.gihub.io/<ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚>.

Ua kom tiav TravisCI cov ntaub ntawv teeb tsa, suav nrog suav sau HTML version ntawm nplooj ntawv siv Maven, hloov mus rau PDF siv decktape, thiab xa cov txiaj ntsig mus rau xov gh-pages rau kev tshaj tawm ntawm github.io, zoo li li ntawd,.

Txhawm rau tsim qhov project no ntawm TravisCI sab, koj yuav tsum teeb tsa ib puag ncig hloov pauv

  • GH_REF - tus nqi zoo li github.com/inponomarev/csa-hb
  • GH_TOKEN - GitHub nkag token. Koj tuaj yeem tau txais nws los ntawm GitHub hauv koj qhov profile, Chaw Tsim Kho -> Tus Kheej Access Token. Yog tias koj upload qhov kev nthuav qhia mus rau lub chaw khaws ntaub ntawv pej xeem, tom qab ntawd rau qhov token no nws txaus los qhia qhov tsuas yog nkag mus rau qib "Access public repositories".
  • GH_USER_EMAIL / GH_USER_NAME - lub npe / email khub sawv cev ntawm qhov kev thawb rau cov xov yuav raug ua gh-pages.

Yog li, txhua qhov kev cog lus ntawm kev nthuav qhia code ntawm GitHub ua rau cov slides tau rov ua dua tshiab hauv HTML thiab PDF hom thiab rov xa mus rau github.io. (Tau kawg, koj yuav tsum tsuas yog upload rau github.io cov kev nthuav qhia uas koj xav kom tshaj tawm rau pej xeem.)

Piv txwv ntawm tej yaam num

Thaum kawg, ntawm no yog txuas mus rau ob peb yam piv txwv ntawm kev nthuav qhia tej yaam num nrog customized Maven scripts thiab CI configuration rau Travis-CI, uas yuav tsum tau cloned thiab siv thaum tsim koj tus kheej nthuav qhia tej yaam num:

Nyob zoo Powerpoint! Kuv tsis xav tias kuv yuav xav tau koj rau kev nthuav qhia txuj ci :)

Tau qhov twg los: www.hab.com

Ntxiv ib saib