Categories
Allgemein Bits und Bytes

create a self-signed wildcard certificate with a SAN

openssl req -newkey rsa:2048 \
  -x509 \
  -nodes \
  -keyout niepi.localhost.key \
  -new \
  -out niepi.localhost.crt \
  -subj '/CN=*.niepi.localhost' \
  -reqexts SAN \
  -extensions SAN \
  -config <(cat /System/Library/OpenSSL/openssl.cnf \
      <(printf '[SAN]\nsubjectAltName=DNS:*.niepi.localhost')) \
  -sha256 \
  -days 720
Categories
Bits und Bytes

Howto put your symfony logs into ELK with filebeat

TL;DR

Log messages in your symfony app with fields in the logging context and make them available in Kibana for reporting.

  • write logfiles logstash formated into a file
  • use filebeat to transfer them logstash
  • post process them with logstash
  • put them in elasticsearch to view them with kibana

logging in symfony controller

$logger = $this->get('monolog.logger.elk');
$logger->info(‘niepi.someMessage’, ['value1' => $value1, 'value2’ => $value2]);

logger config (app/config/config.yml)

monolog:
	channels: [ "elk"]
…
kibana:
	type:stream
	path:"%kernel.logs_dir%/elk.log"
	formatter: service.elkformater
	action_level: info
	channels: ["elk"]

formater config (src/AppBundle/Resources/config/services.yml)

service.elkformater:
	class: Monolog\Formatter\LogstashFormatter
	arguments:
		- 'appName'
		- ~
		- ~
		- ~
		- 1

filebeat config (/etc/filebeat/filebeat.yml)

…
filebeat:
	prospectors:
		-
		 paths:
			- “/%APP_LOCATION%/app/logs/elk.log"
		 document_type: application # this is just an identifier for logstash

Logstash config

filter {
	if [type] == "application" {
		json{
			source => "message"
		}
	}
}
Categories
Allgemein Bits und Bytes

A better iPad view for feedafever

As the title says, this is a small hack to optimizes the look of the fever rss reader on the iPad.

Get it at http://github.com/niepi/fever-iPadMode

browser mode

iPad mode

Categories
Allgemein Bits und Bytes mix

gmail via rss

auf Google Mail kann man auch per RSS zugreifen, was für selten verwendete Accounts sehr praktisch sein kann. Das ganze funktioniert sowohl für Gmail, als auch für Google Apps. Die Authentifizierung erfolgt per Basic Authentication also username:password@yourdomain.
Die URLs sind dann:

Gmail:

https://mail.google.com/mail/feed/atom

Google Apps:

https://mail.google.com/a/yourdomain/feed/atom

Categories
Allgemein Bits und Bytes

relative Links in WordPress Templates

Mit WordPress TemplateTags kann man leider nur absolute Links erzeugen, manchmal hätte man aber gern relative Links deswegen habe diese kleine Funktion geschrieben verbrochen.

function get_relativ_permalink($permalink) {
	echo preg_replace('@^(?:http://)?([^/]+)@i', '', $permalink);
	}
Categories
Allgemein Bits und Bytes

IE 7 Adressauswahl

IE 7 Adressauswahl from Thomas Niepraschk on Vimeo.

Categories
Allgemein Bits und Bytes

Versandart Hypermegaschnell

so gesehen bei lulu.com

Categories
Allgemein Bits und Bytes

Trust me…it’s super legit.

Hallo Plaxo WTF ist das bitte?

Categories
Allgemein Bits und Bytes

schicke last.fm statistiken erstellen

das erste mal habe diese art der darstellung von last.fm daten in einem vortrag zum thema processing von michael schuster beim barcamp im juni in wien gesehen. leider gab es dort nur schicke bilder und kein tool zum selber erstellen mit den eigenen daten. vor einer weile bin ich aber über Last.fm Extra Stats (windows only) gestossen mit dem man das nur doch machen kann.

Categories
Allgemein Bits und Bytes

Javascript Image Popup mit jQuery

das Original habe ich bei The Life of Me gefunden, da es aber nicht so ganz funktioniert hat hier mal meine Version
Wir haben hier eine ganz normale Galerie Seite mit Thumbnail Bilder die jeweils auf die grosse Version des Bildes verlinken. Wenn wir jetzt dem Link folgen bekommen wir eine neue Seite mit dem Bild aber schick ist das nicht.

[source language=”:xhtml”]
<div id="images">
<div class="image">
<a class="imageLink" href="images_russia/russia_01.jpg" alt="" target="_blank">
<img src="images_russia/russia_01_tb.jpg" alt=""/>
</a>
</div>
<div class="image">
<a class="imageLink" href="images_russia/russia_02.jpg" alt="" target="_blank">
<img src="images_russia/russia_02_tb.jpg" alt=""/>
</a>
</div>
<div class="image">
<a class="imageLink" href="images_russia/russia_03.jpg" alt="" target="_blank">
<img src="images_russia/russia_03_tb.jpg" alt=""/>
</a>
</div>
</div>[/source]

Was ich wollte war ein Popup ohne Toolbar in genau der Größe des Bildes, denn Bilder haben natürlich alle unterschiedliche Größen.

Hier kommt jetzt jQuery zum Einsatz.

  1. wir setzen bei einem #hidden Bild den Src auf das Ziel des Links
  2. dann holen wir uns mit jQuery die Größe des Bildes
  3. wir löschen den Src Wert beim #hidden Bild wieder
  4. nun öffnen wir ein neues Fenster mit genau der Größe das Bildes

[source language=”:js”]
$(document).ready(function(){
$(".imageLink").click(function(){
$("#hidden").attr("src",$(this).attr(‘href’));
var href = $(this).attr(‘href’);
var description = $(this).attr(‘alt’);
var width = $(‘#hidden’).width() + 15;
var height = $(‘#hidden’).height() + 15;
$("#hidden").attr("src","");
new_window = window.open(href,’popup’,’width=’ + width + ‘,height=’ + height + ‘toolbar="no",scrollbars="no",menubar="no"’);
new_window.document.write("<html><head><title>Nora Erdmann – pictures from Russia</title>");
new_window.document.write("\<script type=\"text/javascript\"> function resize()\{ window.resizeTo(" + width + "," + height + "); \}\< \/script\>");
new_window.document.write("<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></link></script></head><body onLoad=\"resize()\">");
new_window.document.write("<a href=\"javascript:window.close()\"><img src=\"" + href + "\" title=\"" + description +"\" id=\"popup_img\"/>");
new_window.document.write("</a></body></html>");
new_window.document.close();
return false;
});
});
[/source]