Skip to content

Instantly share code, notes, and snippets.

@davidmz
davidmz / file_upload.php
Created March 13, 2016 19:52
Пример загрузки файла-картинки на PHP
<?php
$strTargetDir = "user_images/";
$fileUploadField = "file_name";
$max_image_width = 600;
$max_image_height = 600;
$max_image_size = 1 << 20; // 1 MiB
$error_msg = "";
// ....
@davidmz
davidmz / bookmarklet.js
Last active August 1, 2019 08:16
m.facebook.com → facebook.com #bookmarklet
if (location.hostname != "m.facebook.com") {
alert("Not a m.facebook.com site");
return;
};
if (location.pathname == "/story.php") {
var authorId, itemId;
location.search.substr(1)
.split("&").forEach(function(pair) {
var p = pair.split("=");
if (p[0] == "story_fbid") itemId = p[1];
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
var findURLs = (function() {
var bracketBalance = function(text) {
var brackets = {
"(": 1,
")": -1,
"[": 100,
"]": -100,
"{": 10000,
"}": -10000
},
@davidmz
davidmz / gist:f5adb52d186caf272062
Created June 1, 2015 19:40
PCRE для поиска URL в строке
\b
(?:
(?:(https?|ftp)://|www\.)(?:[a-zа-я0-9-]+\.)*[a-zа-я0-9]+
|
(?:[a-zа-я0-9][a-zа-я0-9-]*\.)+(?:ru|com|net|org|рф)(?![\w-])
)
[^<>\s]*
(?:
(?<![[:punct:]])
|
@davidmz
davidmz / gist:42d99d5950b0ab645655
Last active August 1, 2019 08:15
Букмарклет для открытия фото из Одноклассников #bookmarklet
javascript:(function(){var p=document.body.querySelector(".plp_photo"); if(p){window.open(p.src,"_blank")}else{alert("Image not found");}})()
@davidmz
davidmz / gist:2a2fcce5d4553526db47
Last active August 1, 2019 08:15
BetterFeed bookmarklet #bookmarklet #betterfeed
javascript:(function(){document.body.appendChild(document.createElement('script')).src="https://cdn.rawgit.com/davidmz/BetterFeed/v1.9.4/build/better-feed.user.js";})();
@davidmz
davidmz / try-send.go
Last active August 1, 2019 08:13
[Безопасная запись в канал] Если канал открыт, то производится обычная (возможно блокирующая) запись. Если канал закрыт, то функция сразу и без паники возвращает управление. По возвращаемому функцией значению можно определить, была ли произведена запись.
// Если канал открыт, то производится обычная (возможно блокирующая) запись.
// Если канал закрыт, то функция сразу и без паники возвращает управление.
// По возвращаемому функцией значению можно определить, была ли произведена запись.
func TrySend(it interface{}, itChan interface{}) (sent bool) {
itVal := reflect.ValueOf(it)
itChanVal := reflect.ValueOf(itChan)
itChanValT := itChanVal.Type()
if itChanValT.Kind() != reflect.Chan {
panic("Non-channel type")
@davidmz
davidmz / bcast.go
Created April 12, 2014 10:39
Простой броадкастер на Go
package bcast
type Broadcaster interface {
// Неблокирующая отправка сообщения
Send(interface{})
// Блокирующее получение одного сообщения
Fetch() interface{}
}
type bcaster struct {
@davidmz
davidmz / xcell.js
Created January 28, 2014 18:37
Простая FRP-библиотечка для JS, позволяющая писать код в Excell-стиле.
(function (undefined) {
"use strict";
var
isArray = Array.isArray || function (v) {
return Object.prototype.toString.call(v) === "[object Array]";
},
isFunction = function (v) {
return Object.prototype.toString.call(v) === "[object Function]"
},