Ist das erfahren, ganz sicher. Entschuldigung. Ist er
. Deutsch oder Englisch? Ist mir egal, ich kann
das auch, es ist egal, ich kann beides.
Ja. Ja. Okay. In Englisch? Ist das
wie normal? You already know it. All the stuff
and talking about this mind via, danke.
Okay, moin. Ist das okay für euch,
wenn ich das in Englisch mache, das Ganze?
Ja. Okay. So, hi everybody.
Mein Name ist Andy und I'm walking at Sina Shwater.
Und I'm speaking about Ruby in Rails.
Who knows Ruby in Rails
Who was working with Ruby in Rails,
who was working with CSS, who was working with Jarvascript.
Who's working with Ruby in Rails, CSS and Jarvascript?
Oh, that's cool. Ein Husgat,
ein Big Pain in the Ass, when he's trying to
concuting head and bring all that's stuff together in production.
I mean, was just two files.
Who has the big? Oh, here, okay.
Ups. I'm sorry. Hä? Ja,
aber Theater's not. Batty nose. Sprichst du auch Deutsch
Okay, alles klar, dann machen wir das Ganze in Deutsch.
Okay. Ja, und was geht's heute? Es geht
um Ruby und Rails, und zwar größer als 3-1.
Weil über das, was ich reden werde, das gibt es
erst in Ruby in Rails 3-1. Die erste Pipeline.
Es geht um Jarscript, es geht um Coffees Cripts.
Es geht um CSS, SCSSS, wer kennt das?
Wer benutzt das? Yeah, geil. Next Question. Und
das Ganze möchten wir bitte kompiliert, geschreddert, unkomprimiert haben.
Und wir reden da über zwei Files.
Und die Rails erste Pipeline, die kann das alles
Okay. Ich habe die Slides bei mir auf meinem GitHub-Account abgelegt.
Ich habe die geklaut von Google, nein, ich habe sie nicht geklaut.
Das sind die Google, weiß ich nicht, IO,
irgendwie Slides und so weiter und so fort.
Ich habe da ein bisschen anderes Logo reingemacht.
Da könnt ihr das gerne auch noch haben.
Oh, genau. Sorry, ich gehe eins zurück.
Zack. Okay, kleiner Überblick. Es geht über Java,
es gibt und CSS-Assets, wie funktioniert das Ganze in der
ersten Pipeline und es geht um die Konfiguration, als zweiten Punkt.
Und Deployment, ah, sorry, nächstes Mal,
wenn jemand Interesse hat, zum Beispiel mit Capistorno,
sehr, sehr cooles Tool.
Dabei kann man
das total easy machen
Okay, erster Punkt, schau, es kriptet uns CSS.
Oh, yeah. Wer kennt den? Das ist
Mike Ness von Social Destortion. Und der glaubt,
JavaScriptance ist das erste ist cool, Berlin.
Es gibt eine Definition, die kann man finden bei den
Guides von Ruby and Rails.org. Das ist eine Ressource,
die man auf jeden Fall auf dem Zettel haben sollte,
wenn man mit Rails arbeiten will.
Da steht im Prinzip alles, was man wissen muss.
Okay, the asset Pipeline provides of Framework to concutinate and minify
or compress JavaScriptance,
he ass assets
Das ist schon mal cool. Also adds,
the ability to right these assets in other enguage
is such as coffee script suss and ARB.
Das ist, glaube ich, ziemlich weit vorne.
Damit kann man schon ganz schön viel erschlagen. Ja,
ich habe gerade schon gesagt, seit Rails 3.1 ist das Gams Prockett.
Könnt ihr nachgucken. Integriert in den sogenannten, in das Action Pack.
Das ist eine Middleware, die in Rails eingesetzt wird.
Rails ist ein MVC-Architektur und bedient sich ganz vieler Middleware,
die man da reinpacken kann und bringt schon ganz viel damit mit.
Das Action Pack ist im Prinzip dafür da,
um Routing zu übernehmen
Noch ein paar andere Dinge. Und da wurde das rein
integriert. Was tut das Ganze? Bei Default, klar
. Pre-Processing, concretinating, Minifying, compressing und Pre-Compilation.
Eben für SARS Coffee Swiped und RB. ERB, kenn ich
mal RB. ERB ist im Prinzip die Engine von Rails,
die man nicht nur in Rails benutzen kann,
das ist eine Ruby Engine, die im Prinzip Templates generieren kann.
Die Änderung heißt einfach.eRB. Da schreibt man HTML-Code rein und
mit ASP Short Tax kann man eben Ruby da rein integrieren
und das Ganze wird dann kompiliert und ausgeliefert
Okay, was braucht man dafür? Um das hinzukriegen. Rails,
größer als 3-1. Bisschen Konfiguration, ein bisschen Konfiguration.
Fertig. Klingt erstmal einfach, würde ich sagen.
Back your Babys, yeah. Okay, ich habe eine kleine Beispielapplikation gebaut,
die ist total einfach. Wer keine Ahnung hat von Rails,
das macht überhaupt nichts, das ist völlig wurscht.
Es geht nur um so ein paar Folder,
die da drin sind und da werde ich im Prinzip daran zeigen,
was wir brauchen.
Und das Wichtigste steht hier eigentlich auch schon.
Ist das eigentlich
ein Laser hier
Nation. Okay, da oben, in der ersten Zeile,
Rails New, erste Pipeline App. Das heißt einfach,
das Programm Rails nun bitte eine neue Applikation bauen,
die heißt in dem Fall Asset-Pipeline-App und dann geht das los,
der macht ganz viel Kram.
Und was für uns eigentlich am wichtigsten ist,
ist im Prinzip hier, wird ein Folder innerhalb von App.
Das ist der Folder, in dem die MVC-Architektur hinterlegt ist.
Das ist einmal Controllers, Models und Views.
Und außerdem auch ein Folder, der heißt Assets,
Plural-Assets, mehrere. Und da gibt es Default-mäßigeren Images,
ein JavaSkürzer, neuen Style-Sheets. Und das ist dann,
hier geht es dann weiter mit dem Ganzen,
was da noch so alles generiert wird
So sieht das Ganze dann aus. Default-mäßig,
es gibt hier einmal in dem Application-Folder,
gibt es seinen Assets-Folder, da sind Images drin,
ja, was gibt es in Style-Sheets, ganz wichtig,
Rails-Ping geht, na gut, das brauchen wir nicht.
Aber ganz wichtig, es gibt eine Application-Jazz und es gibt eine Application-CSS.
Das sind die beiden, das sind die beiden Files,
die wir gleich nochmal angucken werden,
wo man im Prinzip weitere JavaScript-Files integrieren kann mit einer gewissen Syntax.
Das gilt für CSS genauso wie auch für JavaScript. Und letztendlich,
wenn wir dann ganz später nach Offslight,
weiß ich nicht, 39 sind oder so,
dort werde ich dir sehen,
gibt es genau diese beiden Files und
nicht mehr
in Production
Und da ist dann im Prinzip alles drin,
was vorher definiert wurde an CSS und an JavaScripts.
Okay, es gibt verschiedene Bereiche in so einer Rails-Applikation,
die man ablegen kann. Es ist nicht so interessant für euch,
wenn ihr das nicht, wenn ihr nicht mit Rails arbeitet,
aber cool dabei ist, dass Rails auf jeden Fall weiß,
okay, wenn es im 4- oder Venorer oder Lip- oder App-Assets irgendwas gibt, dann benutzt du das.
Muss ich nicht konfigurieren, ist einfach da.
Und ich habe hier auch schon zwei Files angelegt,
einmal Library Stuff JS und einmal VenorStuff JS.
Ja, jetzt bauen wir hier
einen kleinen Controller
Der heißt ja von einem Star Controller, dann muss man auch so
ein paar Dinge tun irgendwie. Man muss im Public-Verzeichnis,
was der einzige Punkt ist, der öffentlich ist,
wenn man die Rails-Applikationen unter Local Lost 3000 oder wie auch immer irgendwo im Web aufruft,
die muss man, die Index-Datei muss man löschen,
sonst wird die ausgeliefert als erstes.
Und dann legen wir noch eine Route an,
und zwar hier unten wird einfach nur bestimmt, okay,
meine Route, geiles Wort, ist unter Start Index zu finden,
also genau unter dem Controller, den wir da oben gebaut haben.
Ja, ja. Das ist die Applikation.
Flocal Host
Das ist so ein bisschen Standard, find me and app,
use start, inix hTML und was man sieht hier unten.
Super ratherm, stuff chairs loaded, das habe ich
da reingeschrieben als Console-Lock. Das heißt also,
von vornherein werden schon mal diese beiden Files integriert.
Und ganz wichtig ist auch dabei, Coffeescript.
Yeah, einfach. Wer kennt den? Okay, keiner
. Wer kennt Ozzy Osborn. Sehr ehemaliger Gitarrist.
Zach Wild. Okay. Ja, wie funktioniert das Ganze
jetzt? Wie macht man das
Es gibt in einer Konfigurationsdatei, das hatte ich vorhin ja schon gesagt,
die heißt Application JS, sehen wir da um.
Die ist beheimatet in App, Assets, JavaScripts,
Application JS. Und da gibt es eine gewisse Notation,
die die integrierte Strockets oder beziehungsweise Rails Middleware versteht.
Und zwar diese Notation hier mit, erstmal im Kommentar und ist gleich.
Default mäßig wird Jake Variain, Jake Variain,
Jake Variain, U-U-U-U-JS, Unopsus of JavaScript geladen.
Als nächstes habe ich einen Befehl,
das ist übrigens nicht Rails abhängig, das ist einfach,
auch wenn man nur das Brocketscam benutzen möchte,
ist das
genau das Gleiche
Am, Require Tree bedeutet, mit dem Punkt,
wer Linux, wer sich auf der Kommandozeile auskennt,
der weiß ganz genau, Punkt, bedeutet hier,
wo ich jetzt gerade bin in dem Directory.
Und zwar alles, was dann darunter kommt. Also da
könnten jetzt irgendwie Ordnerhierarchien drunter sein, es wird alles geladen.
Und genauso möchte ich bitte auch noch den File Vendor Stuff integrieren.
Der File heißt, liegt in Vendor Assets und heißt Vendor Stuff.js,
was ich hier aber nicht angeben muss, ist die Änderung Jayas.
Könnte ja auch Coffee sein. Und dann einmal noch
Library Stuff und dann gibt es noch einen Sonderfall.
Vendor Library ist tatsächlich ein Folder,
in dem auch nochmal mehr drin gibt,
in dem es noch mehr Jarvis Cup Files trinkt
Okay, und es gibt noch so einen kleinen Kerbert,
also wenn sich jemand die Slides nochmal angucken will,
habe ich es dazu geschrieben. Also ich habe festgestellt,
vielleicht liege ich da auch falsch, vielleicht kann mir jemand sagen,
dass das Quatsch ist, was ich rede.
Man sollte die, ah nee, halt Quatsch, sorry,
ich war beim falschen Slide. Bando Libraries ist ein Ordner,
das ist eine Konvention, Rails lebt von Konventionen,
da gibt es da eine Index-JS und diese Index-JS,
die hier in dem Ordner drin liegt,
das werdet ihr ja auch gleich noch sehen.
Die ist im Prinzip mein, ja,
mein Manifest mehr oder weniger, genauso wie diese Application-JS,
in der ich dann weitere andere Files laden kann.
Das ist einfach nur eine Konvention,
funktioniert aber
ganz genauso
Okay, was haben wir bis jetzt? Das ist die Struktur,
die wir bis jetzt haben. Also hier oben App,
Assets, Jarviscripts, das ist im Prinzip der Hauptpart,
wo man seinen ganzen Kram reinschmeißt.
Es gibt auch noch eine, ja, Best Practice,
was man denn wo reintut. Also in App würde man
sein ganzes Jarviscript reintun, was man für seine Applikationen braucht.
In Lip würde man eigene Libraries, die man geschrieben hat,
also wenn man Jack, Very neu schreiten will,
dann würde man das Dach reinschmeißen.
Und in Vendor würde man im Prinzip externe Jarviscript Libraries einbinden.
Keine Ahnung, vielleicht Knockout, vielleicht MRJs.
Keine Ahnung
Das ist so ein bisschen der Hintergrund, warum man das hat.
Ich gebe ganz ehrlich zu, ich benutze das.
Weil ich finde es cool irgendwie, dass das alles an
einem Fleck ist. Man weiß ganz genau, okay,
alles klar, hier sind meine ganzen JavaScript-CSS-Files.
Warum soll ich die irgendwo anders hintun? Convention,
Norbert Configuration, what the fuck? Brauchen wir nicht.
Brauchen wir nicht immer. Entschuldigung. Okay. So,
und dass man sieht, dass das Ganze jetzt irgendwie auch
alles geladen wird, das ist ja genau der Trick.
Habe ich hier unten einfach nochmal ein paar Consor-Log-Statements reingeschrieben und
wie ihr seht, dass da tatsächlich jetzt alles ausgeliefert.
Seht ihr auch genau die Struktur. Vendor, Assets,
Lip, Assets, Vendor, Assets,
App,
Alles, was ich angegeben habe, wird ausgeliefert. Ich muss im Übrigens im Development-Pode,
es gibt bei Rails, gibt es verschiedene Modes,
es gibt, kurz gesagt, ein Development-Mode,
der ist lokal und es gibt einen Production-Mode,
der bedeutet irgendwo auf dem Server in der Welt und im Development-Mode
werden auch tatsächlich alle JavaScript-Files einzeln geladen.
Das heißt, ich kann auch zum Beispiel im Chrome-Developer in der Konsole eben supergeil debaggen,
alle Files sind da, das kann man auch ausschalten.
Man kann auch sagen, nö,
ich will das alles zusammen in einem Großen haben, aber naja,
dann hat man ein bisschen Schwierigkeiten da rum zu die Bank.
Das war genau das, genau,
er guckt gerade auf sein Handy,
soll er machen
Das war schon mal cool. Oder nicht? Ich finde das
echt unglaublich. Diese Zunge, Alter, die gibt es hier.
Es ist Hammer, ey. Danco Jones, geiler Musiker.
Okay. Ja, CSS, STS inkludieren. Es ist
eigentlich genauso einfach. Es gibt eine Application-CSS da oben.
Und hier gibt es im Prinzip wieder genau das gleiche Require-Self bedeutet,
alles, was du hier in diese CSS-Datei reinschmeißt,
also in diese Application-CSS,
das wird alles geladen und alles,
was du noch in irgendwelchen Unterordnern drin hast oder so,
das wird
auch noch alles mitgeladen
Ich habe ja gerade eben gesagt, dass im Development
Mode alle Jarvis Good Files einzeln angezeigt werden.
You know, why that is not the case when you integrate
the CSS? When you have more CSS for us?
It's not each five. Es ist one five.
Yeah. I don't know actually. Also weiß ich
nicht ganz genau, warum das so ist irgendwie.
Vielleicht war ich da auch zu blöd, irgendwie das hinzukriegen.
Okay, es wird automatisch STSS eingewagen.
Wer hat vorhin Last JS gesagt? Du, lernst dich
ja. SCSS ist genau das Gleiche
Echt? Oh, Scheiße. Kleines bisschen anders. Aber du musst immer noch,
du musst immer noch, wie heißt das,
Curly Braces und Simicole und den ganzen Kram schreiben, boah.
Gerne. Er hat gesagt, warum es bleibt, dass
das breit ist. Ja, gern. Brauchst du sonst.
Das macht Sinn, ja, da hast du recht.
Ja. Genau, danach. 32 ist das dann leider
. 32. Okay, halb. Kurze Abstimmung. Wer hat
schon mal mehr als 20 CSS-Files geschrieben?
Okay. Wer hat schon mal mehr als 25 geschrieben?
Wer hat schon mal mehr als 32 geschrieben
Oh, ja. Okay, du bist nicht EE8-kompatibel.
No chance. No yate. Entschuldigung. Ja,
ich war vor Monaten gebraucht, bis wir den gefunden haben.
Den Back. Aber warum das im EE8 nicht schon gezeigt hat.
Was habt ihr dann gemacht? Nur mal so spannend.
Wir hatten verschiedene Leibbriefs. Das war alles noch im Development.
Nacheinander eingefallen. Und eben noch nicht an Katja Elton.
Ah, okay, alles klar. Das heißt also,
die Größe ist für den EE8 egal.
Das ist nur die Anzahl der Falldeskripte.
Okay, alles klar. Das hätten wir
uns nochmal eingepreiselt gehabt
Da kommen wir gleich zu. Okay, also man muss dann
sowas machen. Man muss dann sowas machen, ja?
Ja, okay, super cool. Okay, Internet-Explorer,
super. Total geil. Okay. Ja, ich habe
ja von Sask geredet. Last Years, ist okay.
SCSS, ist okay. Sass ist cool. Sass ist
cool. No curly brace is no simmy collins.
Das ist really, really really really cool. Genauso,
das gilt auch für Hammel. Wer kennt Hammel?
Wer benutzt Hammel? Yeah. Hammel ist HTML in geil
. You don't like it
Okay. I like it. Ich mag das gerne, das ist cool.
Es kommt vor allen Dingen ein sehr valides HTML raus dabei.
Aber okay, das ist vielleicht ein anderer Talk. Genau,
was muss man tun, wenn man Sass einbinden will?
Dann gibt es einen kleinen Trick. Und zwar,
wenn man jetzt diese Sass hier mit einbinden will,
dann muss man die Application CSS in SCS umbenennen und muss dann den ganzen Kram hier mit,
das ist meine Application S CSS,
muss das mit Import integrieren.
Ich habe das bislang nicht näher hingekriegt oder nicht anders hingekriegt.
Ich habe das lange probiert,
aber entweder der kleine Trick fehlt mir noch,
aber ich habe es nicht anders hingekriegt
Ja, war komm. Keep Impulse Rights.
Sorry. What you mean, with Imports Prides?
What? Yes, you can. Yes, you can.
Sure. That's a problem. You have some helpers.
They, it's for example it's assit URL or Image URL
. What you can use and your are am sussf-file
or SCSS-File. You can also use it in normen CSS
, when you just wright.year be.
This realising could countries now by people.
It includes what
Bisschen. I don't know. I don't complicity it say,
imported stars slash, and you don't want to sky.
Okay. Okay, I'm not sure. Sorry. Justin's not
. Okay. Okay, sonst vielleicht noch irgendwelche Fragen?
Bin ich zu schnell oder unverständlich ist zu viel oder was auch immer?
Sollen wir lieber Bier bringen? Dieses mit den Dateiändern bei
den Comics gebrochen, das nicht, oder was?
Wie meinst du das? Ich habe vorhin so ein Beispiel gezeigt,
wenn du sagst, MacQuire, da noch irgendwas, keine Ahnung,
wunderbar, und jetzt ist es auch kein Coppingänder und da muss mit uns aussprechen.
Ja, das machst du hier ja auch nicht.
Das, was du hier siehst, das ist,
das ist ein kleines Programm, was ich auf dem Internet geklaut habe.
Das heißt Tree, dass ich so einfach nur die Ordnerstruktur auf der Konsole.
Mehr ist das nicht. Also das ist jetzt,
du meinst hier unten oder wie?
Ja, aber hier ist es ja genauso.
Ich gebe ja auch keine Änderung an wiederum.
Das ist nun momentan. Ja, ja, ja,
das ist nur ein Kommentar. Das ist nur ein Kommentar,
sorry. Also das ist, das ist wichtig hier.
Das ist jetzt wichtig. Also das ist im Prinzip der
Workaron, um den SaaS-Kram hier reinzukriegen. Ja,
um vor die Elb oder so hattest du den Big Bye Tech Carry untererst.
Ach so. Wenn das jetzt ein Coffees Cap geschrieben wäre,
müsste ich das natürlich ändern und kennzeichnen.
Nein,
muss nicht
Achso, halt. Ah, zu schnell, scheiße.
Okay, ich habe hier in die einzelnen Files,
habe ich so ein bisschen was reingeschrieben.
Also ich will euch jetzt nicht nerven mit dem ganzen Kram,
der da jetzt an CSS, mein furchtbar schlechtes CSS da drin steht.
Auf jeden Fall ist es so, es gibt,
ja, Farbe, Colors, super.
Hier gibt es eine Box und da gibt es Fettred,
ist, kann man das lesen,
in CSS definiert und so weiter und so fort.
Also wir haben den ganzen Kram im Prinzip,
egal ob es sagst oder CSS oder SCS,
ist alles hier komplett rein integriert.
Und wir haben ja die wundervolle Erklärung schon gehört.
Es gibt ein Application-CSS-File, wenn man den aufmacht,
sieht man alles,
was da drin ist.
Wer kennt den? Kennst du, das ist ja auch
noch eine Frage. Schade. Hier steht jetzt da,
wo die in Kassipa Breit definiert ist, ist das...
Das habe ich dahin geschrieben. Das ist meine Ausgabe.
Das ist nur, das habe ich da nur hingeschrieben,
damit man das sieht irgendwie.
Ich hätte es hier auch noch hinschreiben müssen und so.
Ja, ich glaube, das wäre jetzt zumindest raus.
Nein, nein, nein, nein, nein.
Nee, das ist alles ganz billiger Scheiß, echt. Okay,
das ist Damon Townson, einer der coolsten Gitarristen der Welt,
irgendwie, ja, ja,
das war es eigentlich schon.
Das ist so
wie das funktioniert
Okay, das Coole an der ganzen Geschichte ist,
bislang haben wir überhaupt nichts konfiguriert.
Das heißt, Rails, tut das einfach alles für mich?
Ich schmeiße da irgendwelchen Kram rein. Ich sage jetzt mal nicht,
dass dieses Advars, Ad-Impored Wars oder sonst irgendwas Großkonfiguration ist.
Das muss ich immer machen. Egal, wo ich mich bewege,
ob ich mich im normalen CSS bewege oder sonst was.
Wir haben bislang überhaupt nichts konfiguriert. Und das finde ich
cool. Das finde ich sehr geil. Okay, aber
jetzt kommt die Konfiguration. Was muss man denn tun?
Ja. Uprails 3-1 und aufwärts natürlich
ist die erste Pipeline erstmal standardmäßig an
Und das sieht man hier, das ist Application-RP,
das ist so im Prinzip der zentrale,
die zentrale Datei, wo die gesamte Rates-Applikation geladen wird.
Da gibt es noch eine Boot-RB und so weiter und so fort.
Und es gibt noch die Environments, das sehen wir auch
gleich noch. Und lasst euch hier nicht von täuschen,
das hat, das ist nur der Name der Applikation.
Das hat jetzt nichts mit der Asset-Pipeline zu tun.
Die Applikation heißt einfach Asset-Pipeline-App. Ich habe hier was weggelassen,
da was weggelassen, was ich nur zeigen wollte,
ist Config-Asset enabled gleich Tool.
Das heißt, das Ding ist immer da, wird immer benutzt.
Und hier unten gibt es noch eine Versionsnummer,
beziehungsweise das sagt im Prinzip, Weiß ich nicht mehr genau.
Es sagt auf jeden Fall keine Versionsnummer. Okay,
was ich vorhin angesprochen habe, was ich extrem cool finde,
ist im Development Boot, sieht man tatsächlich alle einzelnen Jarvascript-Files.
Maya, has you a question? Another question. You
were speaking about on, you were telling me that,
you just have the concordinate a Jarvascript ins Porkets.
It's a correct. Ah, du warst das,
Entschuldigung, hast du in die Ohren geworfen.
So, wenn du just just just boots kennst,
dann folgen wir uns in die Quelle.
You always have you, like concordinate a version.
Okay. Soll ich was wissen,
wie hart ich die Bank just da,
die Ohren der Saison geht,
ist like one fine
Okay, something, for you on. I was going to
a ausgabe like deep bugging options in the long concadination for helps.
Now, you don't have to. Because you're in development mode
. You don't have to... You don't have a pain
in the yes, but this.
But you can, you can, you could not.
It has this like source my pain. Yeah. It
don't do. Yeah. I can say, okay,
gib mir hier langsam. Concretinated five or like to another tictions.
Yeah. It's end that's in the other ticle.
It's end that
Bekannt ist, was der Erster hingewinnt. Petentschuldigung zu machen. Ich denke,
das ist für alle, die in der Institution arbeiten.
Ich denke, es ist nice. Es ist nice,
es ist nice, es ist nice, es ist nice,
es ist nice, es ist nice.
Ja, ja, schön. Schön. Okay,
aber was JavaScript angeht, wie gesagt, ich finde das
ziemlich cool, man kann da wirklich überall reingucken.
Noch ein Wort dazu, dieses Jake Farry J.S. und Jack Farry,
we our dess, das ist per Default mit drin,
wenn man das Rails Jake Farry Gam installiert.
Und das ist aber auch per Default drin.
Also die Default Library für Rails ist Jake Ree.
Und mit der Mit der UEU-Ad-S-Labrary kann man einen geilen Scheiß machen,
wie remote, gleich True, Data-Remote, gleich True und AJX geht von alleine.
Und das ist... Ja, das brauche ich nicht einzufallen.
Ja, genau. Das würde mir kein Spaß haben.
Ja. Normalerweise, Cash, da kommst du das.
Genau. Und ich habe die Zeit, eine neue Version.
Früher war es, also im ursprünglichen, das ist ein Time-Time genommen.
Da kommen wir gleich noch zu, Production-Mode.
Production-Mode, Times-Time ist Oldschool. Jetzt gibt es MD5,
sehen wir gleich
Okay, okay, alles klar. Wo sind wir?
Wir sind hier. Sind wir jetzt im Development?
Und ich habe ja die ganze Zeit vorher davon geredet,
wir wollen nur noch zwei Files.
Okay, wir wollen nämlich genau dahin. Und übrigens,
JavaScript, klar, natürlich vorm schließenden Bodytag, logisch.
Und hier seht ihr auch, da siehst du,
da ist ein MD5-Hash dran. Das wurde geändert und
das ist richtig cool. Vielleicht weiß ja jemand,
wie Google funktioniert, wenn die irgendwelche Seiten indizieren oder so.
Oder rausgefunden werden soll, was hat sich denn geändert?
Das machen die über einen Checksumm, über ein MD5-Fashion. Das heißt,
der Crawler kommt irgendwie zu allen möglichen Seiten dieser Welt,
irgendwie ein paar Milliarden und macht immer eine MD5-A-Summe.
Das heißt, Dieser MD5 herrscht, der hier dran klebt
, ist, der MD5-Hash von dem Fall selbst.
Das heißt, der wird auch nur geändert,
wenn sich der Inhalt dieser Datei geändert hat.
Was bedeutet das jetzt konkret? Wenn ich dann Timestamp hinten
dran mache bei einem Deployment, dann ändert sich das immer,
weil ich einen neuen Timestamp habe. Wenn ich aber nur den Dateinamen ändere,
wenn sich auch der Inhalt erinnert hat, dann bedeutet das,
dass der, dass die Datei, die im Cash ist,
vom Browser auch da noch drin bleibt,
auch wenn ich ein neues Deployment mache
Und ich habe sichergestellt, dass immer bei Änderungen eine neue Datei ausgeliefert wird.
Ziemlich cool. Gute Idee. Genau. Genau. Okay.
So, ich muss aufhören? Okay, es gibt in
jeder Rails-Applikation gibt es eine Datei, die heißt Gam-File.
Es gibt auch noch eine Datei, die heißt Gam-File-Log.
Die sollte man auch immer einchecken in seinen Repository, natürlich in Git.
In Game-File-Log, da stehen die ganzen Versionen drin,
auch wenn man für unterschiedliche Rubys für J.Ruby 1,7,2 für J.Ruby 1,6,8 und für alles Mögliche.
Das ist also auf jeden Fall eine wichtige Sache.
Und hier wird im Prinzip einfach nur definiert,
was ich für meine Applikation haben will.
Zugegebenermaßen ist das jetzt ein ziemlich kleiner. Und es gibt hier,
man kann nicht so Gruppen bilden, man kann auch für Development-Gruppen bilden.
Das ist eigentlich ziemlich cool, aber das ist alles Rails,
das ist gar nicht so wichtig.
Ja, das Einzige, was ich hier dazu gepackt habe,
was nicht standardmäßig schon drin ist, ist dieses YY-Compressor.
Und der YY-Compressor ist im Prinzip dafür da. Kennt ihr ja vielleicht auch,
also in der Rails 2, 3 Applikationen hat man da
irgendwie ein Ja-File gebaut und beim Deployment wurde dann per Ja-Fi-Ja-Umgebung
Das Ja aufgerufen und Shink Shanghang gemacht,
wir machen das auch noch in einer alten Applikation.
Und hier sage ich einfach nur Gam,
Why You Y Compressor, Bundle in Stall,
der Bundler, installiert mir alle Gams, alle Abhängigkeiten.
Und ich habe den Wirecompressor. Man kann im Übrigen
auch den Cloud-Up-Compiler nehmen, geht auch, Google.
Und der Agly Fire, der ist sowieso schon da.
Der YYI Compressor ist dafür da, am CSS klein zu schreddern.
Und der Agly Fire, den kennt ihr ja,
der macht JavaScripts klein. Und der war You I Compressor,
macht dann komprimiert den ganzen Kram an. Okay. Genau,
und jetzt gibt es Ein Unterschied zwischen meinem Development Mode,
in meinem Production Mode. Dafür gibt es hier in dem,
in der Zeichnungsverzeichnisstruktur von der Rails-Applikation gibt es einen Ordner Environments.
Und da gibt es einmal Development und Production. Das ist jetzt ziemlich wichtig,
weil da genau diese Sachen definiert werden, wie soll sich
meine Applikation lokal verhalten und wie soll sie sich im Production Mode verhalten.
Und oh Gott, das kann kein Mensch lesen,
also ich nicht. Obwohl ich schon Gleipzig-Brille habe,
aber es ist echt schwer.
Naja, okay.
The Old Man
Okay, das ist eigentlich relativ einfach. Man braucht für
die beiden unterschiedlichen zumindestens was, was die Assets anbelangt,
braucht man nur ganz weniger Einstellungen. Die oberste hier oben,
Cash-Classes, die habe ich nur deswegen dazu geschrieben,
falls jemand die Beispielapplikation mal im Production-Mode lokal laufen lassen will.
Cash-Classes bedeutet, dass die Klassen bei einer gestatteten Applikation nicht
nochmal alle neu geladen werden. Das muss man ausschalten,
weil das nämlich defaultmäßig auf True steht,
wenn man die lokal laufen lassen will,
weil sonst muss man jedes Mal,
wenn man was geändert hat,
an einer Klasse oder so oder an einem Modul,
muss man jedes Mal die Applikation wieder neu starten
Der Fall, dass man Production-Mode-Lokal hat,
kommt jetzt aus meiner Sicht auch nicht so oft vor.
Ich habe das für die Slides mal gemacht, aber sonst eigentlich nicht.
Config Assets Compress, das ist, ob die Assets,
die ich integriert habe, komprimiert werden sollen oder nicht.
Mit dem entsprechenden Gam, was ich habe, ist Indevelopment-Mode.
Also die Tabelle ist klar, ne?
Hier ist Development, hier ist Development, Production.
Das steht lokal natürlich auf False, klar.
Dann der ganz wichtige Parameter hier, Config Assets Debug,
ist aber auch defaultmäßig auf True
Das ist genau die Sache, dass sich jede einzelne JavaScript-Datei
auch sehen will in meinem, also dass sie einzeln geladen wird.
Erstes Compile, das bedeutet, das ist eine Einstellung,
wenn zum Beispiel irgendwelche Assets nicht prekompiliert sind,
im Production-Mode, dann werde ich angemeckert.
Wenn ich das auf False gestellt habe,
wenn ich das auf Two stelle,
dann würden die nachträglich auch im Live-Mode nochmal kompiliert werden.
Das will ich aber nicht, weil das natürlich auch wieder
Zeit kostet und Performance. Wobei der nächsten Applikation,
die wir bauen, mit unseren 200 Millionen Usern
jeden Tag,
ist das
keine gute Idee
Die Deutsches-Geschichte, das habe ich euch vorhin gezeigt,
das ist der MD5-Deutsches, den will man natürlich haben,
ganz klar, will man mal lokal aber nicht haben.
Dafür kriegt man dieses Body gleich eins geschenkt.
Was fürs Cashen natürlich auch wieder ganz gut ist.
Und dann muss eigentlich nur noch angegeben werden.
Dann muss eigentlich nur noch angegeben werden,
wie der Kompressor für JavaScript und für CSS ist.
Und die habe ich ja gerade eben schon gezeigt.
Entschuldigung. Das war YouA,
jetzt muss ich ja mal noch Java
installiert werden
Äh, nein. Musst du nicht, nein. Also ich lasse das unter,
okay, was ich nicht genau weiß, was ich...
Ja, ja, klar, logisch. Ja, genau.
Also der Punkt ist, dass, ich lasse das unter,
also ich habe lokal bei mir hier auf der Maschine,
habe ich nur MAI, also kein J-O-V oder so irgendwas.
Und das Gam komprimiert die ohne Probleme. Ich habe natürlich
aber auch Jabba installiert. Da bin ich überfragt,
das kann ich dir nicht genau sagen. Ich glaube aber,
es ist deine Lohn. Ich glaube, ja. Ich weiß,
wie das immer ausprobiert, ich habe ja immer gesagt,
dass wir es auch probiert haben und jetzt nicht mehr machen.
Da war halt immer beim Deployment das Problem,
dass das irgendwann fehlschlägt und man nicht weiß, was los ist,
weil halt genau wie Yara zum Beispiel in sich gezerriert ist.
Ja, klar, logisch. Also wir machen das,
wie gesagt, auch. Und eine Sekunde,
wir machen das auch noch bei einer alten 2-3-Applikation,
zwei, drei neuestes Security-Update irgendwie.
Und da haben wir da irgendwie einen Chart rausgebaut,
ach nee, warte mal, das war,
das war mit dem Less Jazz einmal,
ein Super Hassel irgendwie, das war ganz grauselig,
weil wir da auch ein Jar-File bauen mussten irgendwie.
Und wir haben das YI-Kompressor Jar eingebunden, genau.
Aber das Deployment machen wir sowieso unter Jerobia, also insofern.
Ja, bitte. Also der Less Compiler on low
Wir haben auch ein paar Jahre, ich glaube,
ja, ich brauche keinen Job.
Das ist zumindest auch jetzt mal entschieden. Ja,
also es gibt hier noch so ein paar Fallstricke,
auf die man vielleicht kommt, weil man ist so eine ganz komplett neue Maschine aufgesetzt hat.
Wenn man zum Beispiel keine VA8 oder irgendwas hat oder irgendeine JavaScoot Engine,
dann kriegt man natürlich auch Probleme mit dem Uckly Fire.
Dann muss man sowas wie Ruby Racer installieren oder so irgendwie.
Aber ich installiere eine Note und dann ist gut irgendwie.
Also das ist Stressfall. Ich habe da nie Probleme
mit gehabt. Ich habe aber Linux-Kollegen gehabt,
die haben da mega Stress mit gehabt.
Also so richtig. Ich bin nach Hause,
kein Bock mehr, tschüss.
Also echt schlimm
Wenn jemand das richtig gut, super hinkriegt,
irgendwie Blog-Eintrag schreiben, mir eine URL schicken,
dann kann ich meinen Kollegen sagen, hey, guck mal,
da steht's doch, das geht ganz einfach.
Ansonsten hier Apfel benutzen. Okay. Ja, was macht man,
wenn man jetzt die Applikation lokal im Production Environment starten will, ganz wichtig.
Wir wollen ja, dass die Assets kompiliert werden,
komprimiert werden, gezippt werden, alles drum und dran.
Dafür gibt es einen Rag-Tarsk-Reak. Wiederum ist sowas wie Make,
nur für Ruby. Und da ruft man einfach lokal einmal Rag-Assets-Precompile auf,
wenn man sowas wie Capistrano benutzt, dann wird der Task,
da gibt es einen kleinen Hook oder irgendwas, glaube ich.
Dann braucht man das nicht. Dann geht das automatisch auf
Development. Ja, und dann habe ich,
da muss man in seiner Environment noch einstellen,
dass die Static Assets ausgeliefert werden im Production Mode.
Das muss sonst nicht gemacht werden,
weil das nämlich mein Engine Act oder meiner Patchie übernimmt.
Das heißt, das ist nur für lokal in Production
laufen lassen, Änderung.
Geiler Satz
Und ich... Achso, ja, genau,
das ist nur noch so ein kleiner,
nur noch so ein kleiner Hinweis,
was ich hier auch noch geben wollte, mit Config as a Prefix.
Kann man sagen, wohin die kompilierten, also die komprimierten,
kompilierten, koncuct trainierten Dateien hingelegt werden sollen.
Und das ist defaultmäßig ein Public Assets. Das kann man aber auch ändern,
das kann auch irgendwo sein, das ist völlig humpel.
Ihr macht diesen MD5-Hash auch bei Bildern mit dran?
Ja, ja. Bei allen, bei allen Assets,
dann, dann schaltest du das aus. Ja,
aber das ist ja ein,
also die ganze Zeit das Problem ist,
bestimmte Sachen, die werden im CSS,
macht man ein Hintergrundbild oder so
Da muss ja auch Prinz CSR sozusagen,
der dann die Prinz passt, möchte ich übergeben werden.
Das ist doch mit dem Kompass auch irgendwie ganz gut. Ja,
aber das kannst du auch, bin ich der Meinung,
mit dem, wenn du den richtigen Helper benutzt,
wenn du, wenn du Asset URL oder Image YRL,
ich bin nicht genau sicher, dann kriegst du das auch.
Genau. Und dann ist auch das Problem an anderen Stellen,
wenn man im Jahreskriptbilder präferenziert, dann sollen die teilweise nicht dies haben.
Also zum Beispiel im Triathlon, die machen viel Maps,
der soll der Map machen,
der wird halt sozusagen vor Jahrwaskript bezogen und dann gab es zweimal das Problem,
dass die Dinger immer irgendwas dazwischen hatten.
If you don't have that the asshound there,
If you got in the new wasworth
Ja, aber die Question war how to a white having the hash.
Happy don't money for this equine. Ja. That was exactly one thing,
what you were telling about that you don't likes procords.
Because because use it all don't,
that's the problem and so same problem with rails.
I mean, it's not a problem. I think it's
cool. But use it use rails with the rails way,
all don't use it, that's the point.
Bitte. Yeah. So what the congress,
CSS and German's with out of a casinating.
With the outconcordinating. What you wanted to that?
Because the concordinating seems break at
It what? It I I seem problem more.
I would I concertainate files. It seems to fail on
that's that. But if I am suffere, you seem problem
to press to files. Okay. It seem that,
you know, I can push it to surfer.
Ah, okay, okay, okay.
I don't find that have been one training the boy.
What are using a rates application? Really. Let's speak
about that liter. But I have no idea,
really not. I think, it doesn't make sense.
You know what I mean, it is kind of frame.
I come, yeah, it make it sense of it
Das herrscht halten and really in the founder,
also die Implements im sort of internal looting, next time,
from the webbrowser, you try to access,
Jack query, under the endly far can start.
Okay. Is far as I understood, it just changed
the name of the file. And it just puts,
it lives the original, file name, just makes miners.
Miners? Okay. And puts they,
the endly five hersh of that file, that's very important,
to on to stand.
It's the antifive, checks on off the file.
Yeah, that was not. And then it
just puts it to it,
and that's it
If I one reference,
just the fire let's self and from the browser, maybe,
I don't know, core I can make any the substance.
But the current of the fuckers. And I just want
to have that fire. It's an innovation. What does
it? It's not so. It actually in Keeps,
like, I couldn't make this fire.
It's not that. It's not that. It come in
the polements. It's not that. It could just saying
that.
It's not that
Arnswert? Ja. Okay, cool. Questions?
Bei uns findet man keine Vobi- oder Dails-Welt vor.
Schade. Weniger als selbst immer. Sind ja irgendwelche Alternativen
. Zu was? Alternativen, sowas? Geht so?
Ja. Also was wir zum Beispiel nutzen,
ist die Squan von Human oder Grand,
also eigentlich macht Grand, das genau, was das,
was es in Rails macht, die Asset Pipeline,
kannst du da auf einer... JavaScript Basis und V8.
Also es ist auch sehr cool, du kannst ja auch
verschiedene Sachen dependieren. Ich glaube, Standard geht sich bei
Human,
wo man das installiert
Ja. Neueste Version ist jung. Das ist dann passend mit dabei,
dass an der Optik sich eine Amily 5 hasht,
aber sowas ähnlich, das hat man mit Gründen nicht,
dass man die Mindset Version, manche Leute,
die Minding not ist, wenn du eine Datei anlässt,
der Automat, das CSR, das Corona-Nuri-Load-Auskommenstützung hat.
Ja, aus der Promise. Genau. Und auch für
Lariale, also das Hammel-Equivalent ist und verschiedene anderen Sachen.
Ich glaube, das muss man überhaupt machen. Du hattest
noch einen Freund. Wichtig ist, dass diese Saison,
das Gutding, nicht die Applikation macht, sondern ein RIP-Server,
aber sonst fährst du jedes Mal dann auch Ja, das ist richtig.
Das gibt bei den, man kann es gut nachlesen, bei den Guides.rails.org.
Da gibt es auch Beispiele für Apache und für Anginix.
Das sollte man selbstverständlich dann einbauen, das ist ganz klar.
Genau, genau. Sonst ist es echt langsam.
Ja, klar. Also klar, ich meine,
da muss man noch ein bisschen mehr drumherum machen irgendwie.
Okay, ja, ich habe von dem ersten Spreak-Compile ja schon gesprochen,
das ist wie gesagt ein Rake-Task, also Rake ist das Programm.
Und was dann dabei rauskommt, der Folder war vorher leer,
stimmt nicht, der Folder war nicht leer.
Erste zwar leer, der existierte nicht
Wenn ich erst das Precompile aufrufe, was letztendlich genau das Gleiche ist,
was man beim Deployment macht mit Capistrono, passiert genau das.
Hier werden die ganzen einzelnen Dateien zusammengefügt.
Es wird komprimiert und so weiter und so fort.
Hier im Übrigen sieht man eine Map auch noch.
Habe ich aber noch nicht reingeguckt. Und was sehr,
sehr cool ist, ist natürlich, es werden zwei Versionen erstellt.
Es wird einmal eine normale CSA, so eine GZ-Gezippte,
Datei erstellt. Und wenn man den Engineers oder in der
AirPagey korrekt einstellt, dann werden die natürlich auch ausgeliefert.
Das ist natürlich super cool. Muss ich mich nie
drum kümmern. Total geil. Da ist zum Beispiel auch
die James Level Map.
Also ich habe mich damit nicht näher beschäftigt.
Ich gehe aber davon aus, dass es eine Sourcemap ist.
Also dass man da dann reingucken kann. Ja,
nein. Ich werde denen sehr sensurcenerfolgreich sein. Okay,
so, ja, was,
wenn man die Applikation einfach lokal im Production Mode laufen lassen will,
das ist ganz einfach, Rails, das ist einfach das Programm,
startet jetzt diese Abwehr.
Also Rails ist das Programm, was ganz viele Optionen hat.
S heißt Server, minus E heißt Environment Production und
meine Applikation wird im Production Mode gestartet.
Hey, Tata und was haben wir?
Wir haben genau zweifalls
Das ist die ganze Magic. Yeah. Okay,
ein paar Empfehlungen, wenn ihr damit was machen wollt,
wenn ihr näher nachgucken wollt, schaut euch diese Links an hier.
Ganz wichtig ist der Punkt, danke für den guten Tipp.
Bleibt zwar aber richtig konfigurieren. Die Rails-Applikation ist nur
so gut wie eure Konfiguration auf dem Web-Server.
Jede, egal was ihr macht, immer richtig konfigurierend.
Und hier oben diese beiden Links geben im Prinzip alles was
man darüber wissen muss, her. Den kennt keiner.
Das ist der alte neue Sänger von Killswitch Engage.
Geil. Total cool. Okay. Amber. Wer kennt
Amber Jayers? Boah. Ey, wer war letztes Mal hier?
Das war übrigens letztes Mal. Das war letztes Mal.
War's Last Time? Was denn? Okay. Okay.
Wer kennt Rails Casts? Ja. Okay
Ryan Bates ist ein super Außentyp irgendwie,
der den neuesten geilsten Scheiß über Rails irgendwie erzählt.
Und er erzählt auch über Rails mit Amber, und zwar
sogar zwei Parts, allerdings leider nur in der Pro-Version.
Also man muss da irgendwie neun,
einmal neun Dollar bezahlen und kann die beide angucken.
Es ist absolut wert. Das sind Videos,
die gehen irgendwie zehn Sekunden, äh, zehn Minuten,
Entschuldigung.
Okay,
vielen Dank.
Ja. Dann ist die Erste davon,
dass man Engels für Apache dafür kontrollieren sollte,
kann man, wenn man,
also wenn ich jetzt Ruby and Raids nutzen würde,
dann würde ich mir aber eigentlich auch vorstellen,
dass ich Backends in Ruby schreiben würde.
Ja, okay, reden wir weiter. Also wie würde
ich das dann mit Engels oder Patchy zusammen nutzen können?
Eigentlich würden wir es ja nur mit startstunden Weiten eingehen.
Nee, nein. Also Ruby and Rail,
oder kennst du PHP? Ja. Okay, hast du
PHP schon mal benutzt? Ja. Okay. Was machst
du mit einer PHP-Applikation
Wenn du sie auf dem Web-Server laufen lassen willst.
Also wie ich es da, es gibt auch Songs,
ich habe die gefiles einfach sozusagen in meinem.
Die Bleon-Mann-Pakt von der RTL Gasliebe. Wer hat die ausgeliefert
? Benchy oder Angelines. Genau, okay. PHP ist
eine Programmiersprache und PHP braucht einen Interpreter. Dafür musst du
dem Apache sagen, bitte interpretiere meinen PHP-Kram und liefere den aus.
Okay, genau das Gleiche machst du auch mit Menschen,
nächstes Mal mit dem Apache. Das heißt also,
du brauchst zum Beispiel bei Menschen den nächsten Fusion Passenger,
der kann Ruby-Dateien, Rails ist nichts anderes wie Ruby,
nur ein Framework, also so wie Sandframework zum Beispiel,
der interpretiert die Dateien und liefert sie aus.
Das ist alles. Ja klar, ja natürlich.
Jaja, auf jeden Fall. Noch Fragen?
Okay,
viel Spaß