DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

当ブログのアクセス解析

12月から始めた当ブログ、最近は放ったらかし状態だったのだけど久しぶりにアクセス解析を見てみたら100PV/日ぐらいになっていました。

f:id:DreamerDream:20160721122938p:plain

 

嬉しい・・・

素直にうれしいっス!素人ブログをこんなに見て頂いてありがとうございますですっ!

 

で、内訳ですがやはりGoogle検索が多いみたい。

f:id:DreamerDream:20160721123142p:plain

 

Googleからよく見られているページはこのように

f:id:DreamerDream:20160721123222p:plain

 

 

googleからの検索の内容は見れなかったけどYahoo!から検索されている内容はこのようになります。

f:id:DreamerDream:20160721123433p:plain

 

やはりこの時期ならではのCPU温度の管理に興味を持たれてる方が多い様子ですね。季節に応じた内容って大事なのかも(書いたのは冬ですが・・・)

フリマアプリで作品の失敗作をうまく売る方法

フリマアプリを少ししてみた。

何を売っているのかは秘密だがハンドメイド品が売れるのだ。

 

作品なので成功作ばかりでなく失敗作も必ず出来てくる。

f:id:DreamerDream:20180608123557p:plain

こんなことを書くと人格が疑われるだろうが、実際に失敗作として破棄してしまったり、300円で投げ打ったりせずともここで書く内容を実践すれば販売者も購入者もお得な気持ちで販売することが出来るのだ。

 

まず、正常品を思っている価格の2〜3倍ぐらいで値を付ける。

誰もが「高っ」って思う価格だ。

 

そして失敗作を「難あり品」「一点限り」と唱って正常に売りたい価格を付ける。

こうすると正常品が高すぎるとコメントが来ても、「でしたら難あり品をどうぞ」と堂々とススメることができる。

 

すると「こっちは高いけど、・・・これぐらいのミスなら妥協してこっちもアリかも」という人達が出て来ていいねを押してくれるのだ。

 

ただ、そのままでは「やはり難ありだしなー」と迷っている状態だ。

そこである程度いいねが溜まったら難あり品と正常品の両方を20円〜50円〜100円〜と少しずつ値下げする。

 

すると「おや、少し値が下がってきてる。このままではお得な方が他の人に買われてしまうかも」

と先を競って難あり品を購入してくれる人が出て来る。

 

難あり品が売れるということは成功品も必ず欲しい人がいる。間違い無い。

ただ、高いだけ。

なので今度は正常品を自分の売りたいと思っている価格にジワジワと近づけていくのだ。

 

こうすることで難あり品は正常品の思っている額より少し安い程度で売れ、正常品も思っている額より高めで売れるので2つの正常品を売ったのと同等、もしくはそれ以上になることもある。

 

ハンドメイド作品が売れるか試してみるならココナラハンドメイド↓

なぜゲームにハマるのか?

僕は基本的にあまりゲームというものをしない。

町中でスマホゲームなんてしている人を「他にすることないんかい?」と白い目で見ている方だ(だった)。だが、不覚にも先日ハマってしまったゲームがある。

何度かお誘いは受けていたので内容は知っていた。

そしてゲームの内容より動きが面白いので最初はほんの少し動作の検証をしてみるつもり・・・だった...

  • 重力エンジンっぽい動きをしている
  • キャラクタが数種類で使い回ししている
  • 画面上でキャラクタの遠近判断をしている
  • 他アプリと連携している

 

 

 

 

その名は

 

 

 

 

 

 

 

ツムツム

 

 

なぜだ???

 

なぜ今頃???

 

いや

 

 

そうではなく、ツムツムというゲームというものにハマるのか?ということを検証してみることにした。

 

①操作が単純

②時間制限

③ミッションが明確

④貸し借り

 

①について

3つ以上の同じキャラ「ツム」を結ぶだけ。

これなら片手で操作できる、つまり「ながら」が可能だ。

「難しそうだから」という心のリミットが外れる。

「やってもいいかな?」と許可してしまう。

 

②について

時間無制限なら「いま時間無いしな」とゲームから遠のく理由になるが、短時間(ツムツムの場合基本的に1分)だと「時間がない」というリミットが外れる。

これも「やってもいいかな?」と許可してしまう。

 

③について

「今日のミッション」として明確なポイントが標示される。

これをクリアすることに夢中になりついつい自分に課せた制限時間を外してしまう。

これは「やらなければ」というノルマを課している。

 

④について

友達に♥をプレゼントしたり♥を貰ったりすることでゲーム出来る回数が増える。

友達から♥をプレゼントされると貰った分しなくてはいけないというノルマを感じる。

そして♥を貰ったら自分が♥をプレゼント出来る状態になるとついつい友達にあげたくなる。借りを返すという心情をうまく利用している。

これも「やらなければ」というノルマを課している。

 

 

つまり

「やってもいいかな」という許可を与え、「やらなければならない」というノルマを感じさせているのだ。

実にうまい戦略だ。

f:id:DreamerDream:20180608123411p:plain

LINEスタンプの売上げの実際

2月あたりから新たな趣味の一つとしてLINEスタンプを作っているのですが、「LINEスタンプ 売り上げ」等で検索するとネガティブな記事ばかりが目に留まるものです。

 

実際、他人の不幸は蜜の味と言うように「わわわ、、売り上げ0になっちゃったwなんじゃそりゃーwwwちゃんちゃん♪」という記事の方がおもしろおかしくて良いのだろうけれど、それではこれからスタンプを作ろうという人が読んだ時に夢が無さ過ぎて熱が冷めてしまうだろうと思うんですよね。

で、分配額が確定したので以前にLINEスタンプの売り上げを伸ばす方法でまとめたように実際にシリーズ化した結果を公表しようと思ったのです。

dreamerdream.hateblo.jp

 

「すくなっ」って思うか「おおっ」って思うかは人それぞれなのですが、僕的には趣味で得られるお小遣いとしては大満足です。

 

ということで分配額公開!

f:id:DreamerDream:20160512090345p:plain

初めての月の4千円弱からスタートして徐々に売り上げを伸ばして先月は3万円弱になりました。

※(実際にはこの金額から源泉所得税が引かれ、銀行振込の手数料が引かれます^^;)

 

まあ、このまま売り上げが伸びれば万歳なのですが、やはり売り上げがかなり落ち込んでしまったスタンプもあります。

毎月1つづつでも新たに追加すれば2万円前後をキープ出来るのではないかな?というところです。

 

尚、こちらのブログではスタンプの宣伝、公開しません。

なぜなら「スタンプ 売り上げ」等でこの記事が検索ヒットする人ってスタンプを買ってくれる人ではなく作る側の人だからです。

共に頑張ってまいりましょうw

 

 

↓ペンタブ、スタンプのデザインするなら必須です!

RaspberryPiでモニタースリープ時にHDMIの出力をOFFにする(HDMI出力先によるらしい)

以前、モニタースリープ時に/dev/shm/へモニタースリープ状態を書き出す方法を紹介した。 

<過去記事>

dreamerdream.hateblo.jp

 

PiTFTでスリープ時にバックライトが消えないがHDMI出力も同じように画面が真っ暗になるだけでモニタの電源は消えない。

なので今回はHDMIへの出力をOFFにするようにする。

HDMIへの出力ON/OFFはコンソールから扱えるそうだ。

参考にさせてもらったサイト

Raspberry Piで、HDMI出力をON/OFFする | Soramimi Vox

Raspberry PiでHDMIで接続したディスプレイの制御 - Qiita

 

ということは以前のコードを改造したらON/OFF制御できるんじゃないか?と思いモニタースリープを検知するコードと置き換えることにした。

-- dodpms.cpp --

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
#include <unistd.h>

extern "C" {
#include <X11/Xlib.h>
#include <X11/Xproto.h>
#include <X11/extensions/dpms.h>
}

Display *dpy = NULL;
CARD16 standby, suspend, off;

int main(int argc, const char **argv)
{
dpy = XOpenDisplay(NULL);
if (! dpy) {
fprintf(stderr, "XOpenDisplay failed.\n");
exit(1);
}

CARD16 state;
BOOL onoff = False;
for(;;){
usleep(300000);
DPMSInfo(dpy, &state, &onoff);
if(state != 0 && access("/usr/local/bin/sleep_hdmi",0)==0 && access("/usr/local/bin/active_hdmi",0)==0 ){
system("/usr/local/bin/sleep_hdmi");
for(;;){
usleep(300000);
DPMSInfo(dpy, &state, &onoff);
if(state == 0) break;
}
system("/usr/local/bin/active_hdmi");
}
}
}

 

つまり、スリープ時には/usr/local/bin/sleep_hdmiに書いたスクリプトが呼ばれ、復帰時には/usr/local/bin/active_hdmiに書いたスクリプトが呼ばれるようにした。

(なぜか/usr/local/bin/sleepにすると起動時にスリープになってしまった。何か違うプログラムから呼ばれているのだろう)

 

コレを過去記事と同様にコンパイルして保存してスタート時に呼ばれるよう設定すると完了。

 

HDMI 出力OFFスクリプト

-- /usr/lcoal/bin/sleep_hdmi --

#!/bin/sh
tvservice -o
exit 0

 

HDMI 出力再開スクリプト

-- /usr/local/bin/active_hdmi --

#!/bin/sh
tvservice -p
fbset -depth 8
fbset -depth 16 #8/16/24等環境によるらしい
exit 0

 

・・・しかし僕の環境ではOFFはできるもののONがうまくいかない。。ONまでは出来るけどどうやらfbsetあたりでつまづいているらしい。

なんでだろ? HDMI→DVI変換しているからかもしれない。

PiTFTのバックライトを画面スリープと同時に消す

 以前に書いたPiTFTのバックライトがスリープ時にも消えない。

dreamerdream.hateblo.jp

 

 

 このままでも使えるんだけどもLEDの寿命と発熱の問題が出てきそうなのでスリープと同時にバックライトを消すスクリプトを書いた。

 

Raspbianで画面スリープを検知する方法が見当たらなかったので前回書いた画面スリープ時に書き出される/dev/shm/sleep_displayファイルを参照するという方法を利用することにした。

dreamerdream.hateblo.jp

 

 

 

-- /usr/local/lib/pitft_backlightd.py --

#!/usr/bin/python

import RPi.GPIO as GPIO
import time, sys, os, atexit
import file_mng

LED = 18

Hz = 100.0
DUTY = 100.0

DUTY_etc = "/etc/pitft_backlight"
SLEEP = '/dev/shm/sleep_display'


def end():
    GPIO.cleanup()

def init():
    atexit.register(end)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(LED, GPIO.OUT)

def pwm():
    global DUTY
    dt = DUTY
    init()
    p = GPIO.PWM(LED,Hz)
    p.start(0)
    p.ChangeFrequency(Hz)
    while 1:
        data = file_mng.load_line(DUTY_etc, 1)
        if('not Load' != data):
            try:
                dt = float(data)
                if(dt < 0):
                    dt = 0.0
                if(100 < dt):
                    dt = 100.0
            except:
                dt = 100.0
        data = file_mng.load_line(SLEEP, 1)

        if("1" == data):
            p.ChangeDutyCycle(0.0)
        else:
            p.ChangeDutyCycle(dt)

            time.sleep(0.3)

    p.stop()

def fork():
    pid = os.fork()

    if pid > 0:
        f = open('/var/run/pitft_backlightd','w')
        f.write(str(pid)+"\n")
        f.close()
        sys.exit()

    if pid == 0:
        pwm()

    if __name__=='__main__': 
        pwm()

 

100HzでPWMを出力、/dev/shm/sleep_displayを参照して1ならGPIO18にDuty0を、0、もしくはファイルが無いならDuty100を出力するという単純な動作。

Duty0って出力OFFじゃないの?って思ったが違うらしい。よくわからないがPWM出力しないとOFFにならなかった。また、ラズパイをOFFにするとPWM出力されないのでバックライト点灯しっぱなしになる。この辺りはマイコンとかで主電源を制御する必要がありそう。

 

また/etc/pitft_backlightにDuty値を設定することでアクティブ時の照度を設定出来るようにした。しかしPythonでのPWMはあまり正確ではないらしく、チラチラするので100か0で使うのがベターだと感じた。

file_mngは以前に書いたものを利用

dreamerdream.hateblo.jp

 

 

これをデーモンとして動作させることでPiTFTのバックライトLEDを制御できるようになった。

 

kampa.me