Skip to content

Instantly share code, notes, and snippets.

@gansbrest
gansbrest / gist:7089886
Created October 21, 2013 19:56
Sample grok entry
1382383761.140 38.96.155.45 - 2013-10-21T19:29:21+00:00 GET /sites/all/modules/admin/includes/admin.toolbar.js?Q HTTP/1.1 200 1616 "http://www.fastcompany.com/account/skhaladzinski" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36" US 0.001 "-" www.fastcompany.com 6dfca709
input {
file {
'path' => '/path/to/file.log'
'type' => 'fcd6_nginx_access'
}
}
@gansbrest
gansbrest / gist:6983561
Last active March 13, 2023 21:49
Internal redirect to another domain with proxy_pass and Nginx
server
{
listen 80;
server_name a.com b.com c.com;
location ~* ^/comment/(.*) {
proxy_set_header HOST shared.com;
# $1 - stores capture from the location on top
# $is_args will return ? if there are query params
# $args stores query params
@gansbrest
gansbrest / gist:6773510
Created October 1, 2013 03:30
Некоторые вырезки по BDD из книги от создателей Cucumber
- Каждый сценарий должен иметь смысл и выполняться независимо от других сценариев. Это подразумевает что каждый сценарий должен иметь достаточно шагов Given для того чтобы создать необходимый контекст для выполнения теста.
- Создатели фич должны иметь возможность описать свои мысли в свободной форме, чтобы фича читалась натурально. Это означает что они могут использовать фразы отличающиеся друг от друга но подразумевающие один результат. Очень важно чтобы фичи не звучали как написанные роботом.
- При написании фич, сделайте упор на читабельность, в противном случае они будут выглядеть как программа или тех спецификация и мы хотим избежать этого любой ценой! Ведь если не программист с трудом может понять что происходит в фиче, зачем тогда вообще их писать? ( Ведь ВDD в первую очередь направлен на коммуникацию - если это отбросить то можно вернуть к старым добрым simpletest или codeception )
- Старайтесь избегать технических деталей вроде "чистка очереди", "запуск back-end сервиса", "открытие браузреа на бе
@gansbrest
gansbrest / gist:6612699
Created September 18, 2013 17:39
Nginx config to use X-Accel-Redirect to transfer (reproxy) data from Remote servers
location ~* ^/internal_redirect/(.*?)/(.*) {
internal;
# If you use variables in proxy pass you need to
# tell nginx how to resolve your host
# otherwise you will get 502 errors
# you could also use google 8.8.8.8
resolver 172.16.0.23;
proxy_buffering off;
@gansbrest
gansbrest / nodejs_lazyloading
Created January 22, 2013 18:35
Nodejs submodules lazyloading, could be very useful for private modules repos
// Nodejs submodules lazyloading, very useful for private modules repos
// where you don't want to create separate repo for evey module
// using this snippet, you can create one main repo for private modules
// and create submodules inside subfolder with the same name.
var fs = require('fs');
exports.answer = 42; // Some existing property
// This is how you would do it without lazy loading
// basically u would need to require every submodule right away
@gansbrest
gansbrest / gist:4145077
Created November 25, 2012 19:56
Drupal 6 simpletest curl patch ( curl spits output to stdout instead of saving to variable )
diff --git a/sites/all/modules/simpletest/drupal_web_test_case.php b/sites/all/modules/simpletest/drupal_web_test_case.php
index 9a9c360..fb67fba 100644
--- a/sites/all/modules/simpletest/drupal_web_test_case.php
+++ b/sites/all/modules/simpletest/drupal_web_test_case.php
@@ -1310,6 +1310,11 @@ class DrupalWebTestCase extends DrupalTestCase {
if (!isset($this->curlHandle)) {
$this->curlHandle = curl_init();
+
+ if (empty($this->cookieFile)) {
@gansbrest
gansbrest / rvm-install-chef-solo
Created November 4, 2012 22:56
Rvm install chef-solo
#!/bin/bash
# Install RVM
\curl -L https://get.rvm.io | sudo bash -s stable
# Add user to a group
# Todo: Remove hardcoding
sudo usermod -a -G rvm ubuntu
# Trying to avoid logout / login part here