Skip to content

Instantly share code, notes, and snippets.

View hkoba's full-sized avatar

Kobayasi, Hiroaki hkoba

View GitHub Profile
@hkoba
hkoba / memo-on-twitter.md
Created July 2, 2023 03:16
A memo on twitter's ad business

仮説:Twitter の広告ビジネスは(login ユーザーじゃなく)guest をターゲットにしたほうが、うまく機能するのではないか?

  1. 現在 Twitter はビジネスの持続性を得るため、 login 済みアカウントへのターゲット広告を主な収入源にしようとしている(のですよね?私はそう理解しています)

    • ゆえに、↑そのビジネスモデルに直接的には貢献しない bot API アクセスの料金プランを値上げした
    • その結果、スクレイピングが横行したので、guest/public read も禁止しようとしている
  2. しかし、Twitter がバズを生み出すハブ・プラットフォームとして社会的に唯一無二であった点は、その guest/public readability とソーシャルグラフとの掛け算の大きさにあったのではないか?

    • インフルエンサーが(他の blog などで長文を書いたあとで)twitter にリンクを投稿するのは、ここに乗せれば guest も含めて万人への timely な広報になるからだった。
    • どんな流行も、early adapter より遅れてくる(=話題に接する)人のほうが多い。遅れてくる人= guest、埋め込みなどで他のメディアで知る人と思って良いのでは。
  • guest/public read 切り捨ては、late majority の切り捨てであり、バズを生み出すハブとしての地位を自ら捨てるようなもの
#!/bin/zsh
emulate -L zsh
installImgFn=/var/lib/libvirt/images/Win11_22H2_Japanese_x64v1.iso
vgName=/dev/fedora
volName=kvm-win11
fullLvName=$vgName/$volName
function checkFile {
@hkoba
hkoba / ltsv_utils.zsh
Last active August 1, 2022 06:01
zsh functions to read/print LTSV (Labeled Tab-separated Values)
#
# Usage: read_ltsv_as_assoc VARNAME < LTSV_STREAM
#
function read_ltsv_as_assoc {
if ((ARGC != 1)); then
echo 1>&2 "Invalid number of Argument(s)"; return 1
fi
local line vn=$1; shift;
IFS=$'\t' read -A line || return 1;
local i kv tmp; tmp=()
@hkoba
hkoba / melpa-install-to.tcl
Created June 14, 2022 09:07
melpa のパッケージを、指定ディレクトリにインストールする実験
#!/usr/bin/tclsh
package require fileutil
proc RUN args {
puts "# $args"
exec {*}$args >@ stdout 2>@ stderr
}
if {$argv eq ""} {
@hkoba
hkoba / immediate-failure-of-my-login.log
Created May 11, 2022 06:14
After dnf system-upgrade (from f34) to fedora36 + SELinux relabel, my linux system start refusing my login
5月 11 14:51:41 chtholly.localdomain audit[13462]: USER_ACCT pid=13462 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:kernel_t:s0 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="hkoba" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
5月 11 14:51:41 chtholly.localdomain audit[13462]: CRED_ACQ pid=13462 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:kernel_t:s0 msg='op=PAM:setcred grantors=? acct="hkoba" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
5月 11 14:51:41 chtholly.localdomain audit[13462]: USER_ROLE_CHANGE pid=13462 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:kernel_t:s0 msg='pam: default-context=unconfined_u:unconfined_r:unconfined_t:s0 selected-context=unconfined_u:unconfined_r:unconfined_t:s0 exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
5月 11 14:51:41 chtholly.localdomain audit[13462]: USER_START pid=13462 uid=0 auid=1000 ses=4 subj=system_u:system_r:kernel_t:s0 msg
@hkoba
hkoba / git-submodule-switch-remote.zsh
Created May 10, 2022 03:01
Safely sync git submodule urls to new repo+new .gitmodules for submodules in submodules
#!/bin/zsh
set -e
autoload colors; colors;
#----------------------------------------
zparseopts -D -K q=o_quiet x=o_xtrace
@hkoba
hkoba / buildah-snippet.tcl
Last active January 8, 2022 02:23
buildah unshare + tclsh
RUN buildah unshare tclsh << [list apply {{container} {
source ./utils.tcl
set mntDir [@RUN buildah mount $container]
set prefix sysroot
foreach dir [lgrep-match $prefix/* [git-submodule-list .]] {
@hkoba
hkoba / leading-comma.rb
Created November 29, 2021 01:54
leading comma is not allowed in ruby
def foo(x, y, z)
puts x, y, z
end
foo(3
, 4
, 5
)
@hkoba
hkoba / DBQuery.pm
Last active September 29, 2021 02:11
This program represents my typical coding style in Perl, which widely relies on Modulino, fields, and custom type builder. (Note: this code has some known bugs.
#!/usr/bin/env perl
package DBQuery;
use strict;
# use File::AddInc;
use MOP4Import::Base::CLI_JSON -as_base
, [fields =>
[dbi => doc => "DBI spec"],
[dbi_attr => doc => "DBI connection attributes"],
qw(db_user db_password
_DB)
#!/usr/bin/env ts-node
import ts from 'typescript'
// Stolen and modified from:
// transpileModule in TypeScript/src/services/transpile.ts
// createTypescriptContext in angular-cli/packages/ngtools/webpack/src/transformers/spec_helpers.ts
//
function makeProgram(input: string, transpileOptions: ts.TranspileOptions)
// : ts.CompilerHost