Skip to content

Instantly share code, notes, and snippets.

$ dig A staging.assets.innoq.com @1.1.1.1
; <<>> DiG 9.10.6 <<>> A staging.assets.innoq.com @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57871
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
@youngbrioche
youngbrioche / deploy.sh
Last active August 29, 2015 14:26 — forked from gre/deploy.sh
Super-small scripts for easy PlayFramework deployment
#!/bin/bash
REMOTE=play@SERVER_IP
REMOTE_APP=/home/play/PROJECT_NAME/
sbt stage || exit 1;
rsync -va target/ $REMOTE:$REMOTE_APP/target;
ssh $REMOTE "cd $REMOTE_APP; ./stop.sh";
ssh $REMOTE "cd $REMOTE_APP; ./start.sh";
@youngbrioche
youngbrioche / images_helper.rb
Last active February 8, 2024 08:15
Responsive images helper using srcset in Rails
module ImagesHelper
# Acts as a thin wrapper for image_tag and generates an srcset attribute for regular image tags
# for usage with responsive images polyfills like picturefill.js, supports asset pipeline path helpers.
#
# image_set_tag 'pic_1980.jpg', { 'pic_640.jpg' => '640w', 'pic_1024.jpg' => '1024w', 'pic_1980.jpg' => '1980w' }, sizes: '100vw', class: 'my-image'
#
# => <img src="/assets/ants_1980.jpg" srcset="/assets/pic_640.jpg 640w, /assets/pic_1024.jpg 1024w, /assets/pic_1980.jpg 1980w" sizes="100vw" class="my-image">
#
def image_set_tag(source, srcset = {}, options = {})
srcset = srcset.map { |src, size| "#{path_to_image(src)} #{size}" }.join(', ')
AllCops:
# Include gemspec and Rakefile
Include:
- '**/*.gemspec'
- '**/Rakefile'
- '**/Gemfile'
Exclude:
- 'vendor/**/*'
# By default, the rails cops are not run. Override in project or home
# directory .rubocop.yml files, or by giving the -R/--rails option.
initializer "load_migrations" do |app|
# Pull in all the migrations to the application embedding iqvoc
app.config.paths['db/migrate'].concat(MyEngine.paths['db/migrate'].existent)
end

Test

for ( Element e : meineListe ) {
    // mach etwas Intelligentes mit e
}
meineListe_ist_jetzt_eine_Sequence.each(

Ich war im Vorfeld sehr gespannt auf den Talk von Simon Willnauer zum Thema „Elasticsearch“. Der Vortragende gehört zum Team des Open-Source-basierten, verteilten Suchservers und hat schon vorher als Lucene-Committer viel Erfahrung im Bereich Volltextsuche gesammelt. Da ich Elasticsearch gerade für ein Projekt evaluiere, hoffte ich aus dem Vortrag vor allem eine bessere Vorstellung über die grundlegenden Konzepte dieses Produktes mitnehmen zu können.

Grundlage seines Vortrages „With a hammer in your hand... Elasticsearch“ war - gemäß dem Motto „No slides - no bullshit“ — ein Shellscript. Dieses enthielt primär Curl-Aufrufe, da die Kommunikation mit dem Elasticsearch-Cluster über REST-konforme HTTP-Schnittstellen stattfindet. Wer sich einen detaillierteren Eindruck verschaffen möchte, findet das Skript hier: https://github.com/s1monw/hammertime/blob/master/hammer_it.sh.

Um die grundlegenden Funktionen von Elasticsearch zu demonstrieren, streamte er in Echtzeit Tweets aus dem globalen Twitterstream nach Elast

Da wir uns bei der innoQ regelmäßig nicht nur in Projekten sondern auch auf Konferenzen und im Rahmen von Artikeln intensiv mit den Möglichkeiten zum Aufbrechen von Monolithen auseinandersetzen war der Talk Microservices - adaptive architectures and organisations von James Lewis eine willkommene Gelegenheit Einblicke in die Erfahrungen anderer zu dem Thema zu erhalten.

Ein anschauliches Beispiel für die Gefahren von Monolithen lieferte James u.a. mit einer war story von einer Fluggesellschaft, die im Anschluss an den Ausbruch des Vulkans Eyjafjallajökull keinerlei Flugstart

Building Hypermedia APIs with HTML war für mich einer der überzeugendsten Vorträge auf der diesjährigen GOTO in Berlin. Ich ging mit etwas Vorwissen in den Vortrag, da ich selbst momentan in einem Projekt HTML für eine Suchschnittstelle einsetze.

Jon Moore ist es gelungen, nachvollziehbar darzulegen, dass HTML sich - entgegen weitverbreiteter Ansicht - sehr gut als Media Type für APIs eignet und den Alternativen (etwa XML oder JSON) überlegen ist. Dies liegt vor allem daran, dass in HTML die notwendigen Mittel bereits standardisiert sind -

Phil Calçado lernte ich bereits vor einiger Zeit auf einem Event in Berlin kennen und hatte daher hohe Erwartungen an seinen Vortrag APIs: The Problems with Eating your Own Dog food. Ich sollte nicht enttäuscht werden. Nachdem die Frage: "Was ist Soundcloud?" und die damit verbundenen Anforderungen an Performanz geklärt waren, wurde dargestellt wie sich die Soundcloud Architektur über die Zeit entwickelt hat.

Während dieser Evolution wurde zeitweise das Rendern der Webseite auf den Browser verlagert, was zu ungefähr 159 API-Anfragen pro Seitenanfrage führte. Nicht nur dem Publikum machte diese Zahl Angst sondern auch der Soundcloud Crew, jedoch war man zuversichtlich dass durch zusätzliche Server diese Last zu schaffen sei. Schnell lernte man, dass nach dem Zusammenbruch des HAProxy weitere Komponenten (memcached/Rails/MySQL) der Masse an Anfragen nicht gewachsen waren.