Skip to content

Instantly share code, notes, and snippets.

@mitio
mitio / nokogiri-cyrillic.rb
Last active December 28, 2015 10:54
An example with Nokogiri and UTF-8 (cyrillic)
require 'nokogiri'
require 'net/http'
html_string = Net::HTTP.get(URI.parse('http://www.dir.bg/'))
# Net::HTTP has a bug when handling encodings, see
# http://stackoverflow.com/a/13779685/75715. Alternatively,
# you can use another HTTP library, such as
# https://github.com/jnunemaker/httparty.
html_string.force_encoding('utf-8')
@mitio
mitio / adobe-flex-sdk.rb
Last active November 18, 2015 16:44
Install Adobe Flex 4.6 SDK and the mxmlc Action Script compiler via Homebrew
# Find downloads at: https://helpx.adobe.com/air/kb/archived-air-sdk-version.html
class AdobeFlexSdk < Formula
desc "Adobe Flex SDK & mxmlc compiler"
homepage "https://www.adobe.com/devnet/flex/flex-sdk-download.html"
url "http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip"
version "4.6.0.23201"
sha256 "622b63f29de44600ff8d4231174a70fcb3085812c0e146a42e91877ca8b46798"
bottle :unneeded
@mitio
mitio / adobe-air-sdk-flex.rb
Last active November 18, 2015 15:54
A Homebrew bin formula to install Adobe Air SDK Flex version 19.0.0 build 199
# Find downloads at: https://helpx.adobe.com/air/kb/archived-air-sdk-version.html
class AdobeAirSdkFlex < Formula
desc "Adobe AIR SDK & compiler"
homepage "https://www.adobe.com/devnet/air/air-sdk-download.html"
url "http://airdownload.adobe.com/air/mac/download/19.0/AdobeAIRSDK.tbz2"
version "19.0.0.199"
sha256 "c449ed15cd7722d53cd178c4095e0ce2f815b8f544bd40780a652e382156a1b4"
conflicts_with "adobe-air-sdk"
RSpec.configure do |config|
config.expect_with :rspec do |c|
c.syntax = :expect
end
end
@mitio
mitio / europe-code-week-fix-mismatched-ambassadors-social-auths.sql
Created July 15, 2015 11:43
Link the new google-oauth2 logins of ambassadors who previously used the deprecated google auth login.
-- Check for mismatched social auths due to migration from google to google-oauth2
SELECT
usa.id AS auth_id,
u.id AS ambassador_user_id,
u.username AS ambassador_user,
u.first_name AS ambassador_name,
u.last_name AS ambassador_surname,
u.email AS ambassador_email,
u2.id AS user_id,
u2.username,
@mitio
mitio / test_create_thumbnail.py
Created May 12, 2015 10:02
A script to test why thumbnail creation fails on the live CodeWeek website
from avatar.models import Avatar
import datetime
import os
import hashlib
from PIL import Image
from django.db import models
from django.core.files import File
from django.core.files.base import ContentFile
@mitio
mitio / change-ssh-key
Created May 10, 2015 16:09
Quick and dirty script to replace SSH heys on multiple hosts you manage
#!/bin/bash
# Omit the email part from the SSH public key as it may vary
old_key='ssh-rsa AAAAB3Nz...PpZ97Q=='
# The full SSH public key here, including the email ID part
new_key='ssh-rsa AAAAB3Nz...TfcYCcQ== [email protected]'
# Set to 1 to make the script spit out SSH connection errors
verbose=0
@mitio
mitio / nginx_https_site.conf
Created March 30, 2015 10:56
Nginx Config for HTTPS (forced) site (example.com)
# Force HTTPS
server {
listen 80 default;
server_name example.com *.example.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com *.example.com;
@mitio
mitio / obshtestvo_github_account_deletion_postmortem.md
Last active August 29, 2015 14:15
Post-mortem на изтриването на GitHub-профила на Общество.бг

Post-mortem

Поради големия интерес, обобщавам случилото се днес по горещата тема с изтриването на акаунта на "Общество.бг" от GitHub. Това е и нещо като post-mortem с поуките, които сме си извадили.

TL;DR

UPDATE 18 февруари - Акаунтът на Общество.бг е възстановен и с много малки изключения, сме на 99% обратно в играта.

Aкаунтът е изтрит по погрешка и без лоша умисъл. Свързали сме се с поддръжката на GitHub и чакаме отговор от тях. В най-лошия случай, ще ни отнеме няколко дни да възстановим хранилищата и кода на проектите и ще изгубим само метаданните за тях (issues, wikis, pull requests). Засега сме на stand-by.

@mitio
mitio / web.md
Last active August 29, 2015 14:13

ето ти crash course как предполагам, че работи symfony (базирано на опита ми с Rails, от който всички копират):

  1. идва заявка от потребител/браузър за даден адрес: http://example.com/foo/bar?baz=baba&larodi=foo

  2. заявката минава през някакъв уеб сървър; примерно, Apache или Nginx и според настройките на уеб сървъра, се решава какво да стане с нея; обикновено, ако е за съществуващ статичен файл (картинка, CSS файл, JS файл и т.н.), файлът се праща на клиента и толкова; ако не е за съществуващ файл, обикновено се препраща на някакъв PHP код; да кажем, на твоето Symfony приложение

  3. Symfony получава препратената заявка и решава какво да я прави; вижда, че тя е GET /foo/bar?baz=baba&larodi=foo. Прави следните стъпки:

    1. Разпарчатосва URL-а; това след ? се нарича query string и съдържа key-value параметри; всяка двойка е разделена с &; в случая, параметрите са baz=baba и larodi=foo; symfony ги слага в някакъв (асоциативен) списък (по-скоро речник, но PHP го нарича array): `$params = array('baz'