Skip to content

Instantly share code, notes, and snippets.

View ceekz's full-sized avatar

Mitsuo Yoshida ceekz

View GitHub Profile
@ceekz
ceekz / gist:5570475
Last active December 17, 2015 07:09
use List::Util;
sub cosine_similarity {
my ($vector_1, $vector_2, $is_pearson) = @_;
my %union;
foreach (keys %{$vector_1}, keys %{$vector_2}) {
$union{$_}++;
}
my $avg_1 = List::Util::sum(values %{$vector_1}) / scalar(keys %union);
@ceekz
ceekz / gist:5836205
Last active December 18, 2015 19:49
Create a search snippet.
sub snippet {
my ($text, $terms, $max, $tag_s, $tag_e) = @_;
utf8::decode($text);
if (length($text) < $max) {
return $text;
}
if (! ref($terms)) {
use Text::MeCab;
our $mecab = Text::MeCab->new({ node_format => "%M" });
sub get_terms {
my $str = shift;
my @terms;
my @surfaces;
for (my $node = $mecab->parse($str); $node; $node = $node->next) {
my @feature = split /,/, $node->feature;
@ceekz
ceekz / gist:7379560
Created November 8, 2013 23:58
Pagination Helper : Mojolicious + Data::Pageset + Bootstrap 3
use Data::Pageset;
$self->helper(
pagination => sub {
my ($self, $total_entries, $current_page) = @_;
my $dp = Data::Pageset->new({
'total_entries' => $total_entries,
'entries_per_page' => 20,
'current_page' => (! $current_page || $current_page < 1) ? 1 : $current_page,
# -*- coding: utf-8 -*-
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/commands.html#custom-project-commands
from scrapy.commands import ScrapyCommand
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
class Command(ScrapyCommand):
@ceekz
ceekz / UnlockPDF.bat
Created July 12, 2012 15:25
Unlock PDF with gswin32c for Windows
set ttt=%1
set tt=%ttt:~0,-4%
gswin32c -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sFONTPATH=%windir%/fonts;xfonts;. -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile="%tt%_noPW.pdf" %1
@ceekz
ceekz / gmail.css
Created March 30, 2017 12:46
Chrome Stylist
/* mail.google.com */
table img[title*=".zip" i], table img[title*=".rar" i], table img[title*=".gz" i], table img[title*=".tar" i], table img[title*=".bz2" i] {
width:0px!important; height:0px!important; padding-left:16px!important; padding-top:16px!important; background-position: top left !important;background-image: url(https://ssl.gstatic.com/docs/doclist/images/mediatype/icon_1_archive_x16.png) !important;
}
table img[title*=".txt" i], table img[title*=".rtf" i], table img[title*=".csv" i], table img[title*=".tsv" i] {
width:0px!important; height:0px!important; padding-left:16px!important; padding-top:16px!important; background-position: top left !important; background-image:url(https://ssl.gstatic.com/docs/doclist/images/mediatype/icon_1_text_x16.png) !important;
}
table img[title*=".c" i], table img[title*=".pl" i], table img[title*=".sql" i] {
width:0px!important; height:0px!important; padding-left:16px!important; padding-top:16px!important; background-position: top left !important; background-