じぶんがYOUTUBERになるためには壁があるので無理ゲーですね。

2019.12.18

Logging

じぶんがYOUTUBEになるには壁がある。

1.チャンネルの過去12か月間の総再生時間が4,000時間
2.チャンネル登録者が1,000人

これを満たさないと広告収入が入らないというシステムになっている。
2に関してはお金を払えばチャネル登録者数は買えるらしいけど
チャネルがBANされてしまっては嫌なのでやらない。

顔出しは全然OKだけど、喋るのが全然ダメなので
YOUTUBERには向かないと思っている。

喋るのは未だに小学生低学年ぐらいの表現力しかないし
なにせ滑舌悪いので、視聴するには向かないかも。

綺麗な動画をUPさせてそれで収入を得るということは
自分の場合できる可能性は高いだけど、それには編集ソフトと
高スペックのPCが必要、いまのPCのビデオボードでは
無理ゲーだと思う、ただビデオボードを入れ替えれば可能性はある。

でも、なんだかそれもしたくない。
何というかカッコいいサイトとかよりゆるい事をだらーって
している方が良い。

方向性は決めていないけどYOUTUBEもUPしていきますので
チャネル登録お願いします。

https://www.youtube.com/watch?v=2BdSJwQ4jJU

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

000, , 2, 4, BAN, OK, PC, UP, youtube, YOUTUBER, いま, お金, ゲー, こと, これ, サイト, システム, じぶん, スペック, ソフト, それ, ため, チャネル, チャンネル, ビデオ, ボード, 再生, 動画, 収入, 可能性, 場合, , 学年, 小学生, 広告, 必要, 時間, 未だ, 滑舌, 無理, 登録者, 綺麗, 編集, 自分, 表現力, 視聴, 過去, 顔出し,

こういうの結構需要あるよね。

2019.12.01

Logging

こういうYOUTUBE動画は結構需要あるよねと思ってしまいます。
例えば、雨の街角を記録した映像とか、ほんと何気ないのだけど
ほんとにそういうのが好きです。

雨の音のアプリがあるのは、自分は納得しています。
自分も結構使っています。スマートスピーカーから雨音を一日中流すことも
あります。雨音って聞いていても雑音にもならないし、
逆になんだか落ち着けるので良いかなと思っています。

屋久島の夜音(虫の音色)も雨音と同じぐらい落ちけます。
ちなみに雨音聞かせてくれるサイトがあります。
https://www.rainymood.com/ 【昔は映像も流れてた】

こういった環境音っていま流行っているらしいですが…
休日は何も考えないでぼーっとこういう映像を観るのもリラックスに
良いかなと思っています。

Walking in Heavy Thunderstorm at Night in NYC (Umbrella Binaural 3D Rain Sounds) ASMR 4K

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

com, rainymood, youtube, アプリ, いま, こと, サイト, スピーカー, スマート, ほんと, リラックス, 休日, , 動画, , 屋久島, , 映像, 環境, 納得, 自分, , 街角, 記録, , 雑音, , 雨音, 需要, , 音色,

嘘半分のWEB事情、WEBのタブーを書いてみる。

2019.11.29

Logging

嘘半分のWEB事情、WEBのタブーを書いてみる。
毎日ブログを書けばブログのアクセスアップが出来ますよ。
これは半分本当で半分ウソである、いくら短文の投稿を有名人のように
毎日書いたとしてもアクセス数はほとんどアップしない。

かと言って長文を毎日書くとアクセス数は増えるかと言えば
そうでもない。Gさんは重要な記事なのか判断しそうでもないと
思えばその記事は検索候補にすらしないのだ。

よって、毎日長文を書けば何かのきっかけでバズる可能性はありますが
ほとんどの場合、アクセス数は増えないと思ったほうが良い。

一番って取り場合、アクセス数アップの方法を教えます。
アクセス数の多いドメインを購入し、そのドメインでブログやサイトを
運用するか、そのドメインのサーバ内(ルート直下)に
.htaccess(どっとえいてぃーあくせす)を設置し
現在の運用しているドメインへリダイレクトさせる方法で
アクセス数を伸ばす方法です。

いまWEB上でアクセス数を伸ばすことは非常に難しくなっています、
なので上記の方法をとった上で、広告宣伝を行いユーザーを増やす方法を
行っているのが賢明かと思います。

只これには非常にお金を必要とします、個人でお金をかけずに
アクセス数を増やす方法は、SNS(ソーシャルネットワークサービス)を
使用するしかなくそれでいて、バズるかフォロワー数を地道に増やさないと
アクセス数は増えていきませんし、この方法はアクセス数が
増えるかどうかは、その人達のセンスに比例します、なので非常に
難しいと思ってもらうと良いです。

ブログサービスが駆け出しだった時に毎日ブログを書いていたサイトが
あったのですが、そこはそれなりのアクセス数が日にありました。
なので、インターネットというのは何か新しいサービスが登場したら
まずは自分のサイトでも取り入れてみるというのは大事なことだと思います。

無料でアクセス数を増やしたい場合は、本当に毎日地道に
更新や発信することが大事なことだと感じます。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

htaccess, web, アク, アクセス, アップ, いま, ウソ, きっかけ, これ, サーバ, サイト, タブー, ドメイン, パス, ブログ, ほとんど, リダイレクト, ルート, , , 事情, 何か, 候補, 判断, 半分, 可能性, , 場合, 投稿, 方法, 有名人, 本当, 検索, 毎日, 現在, 直下, 短文, 記事, 設置, 購入, 運用, 重要, 長文,

エンジニアはクラウドなんたらで働くより稼げる方法。

2019.11.10

Logging

フリーランスのエンジニアはクラウドなんたらで働くより稼げる方法は
エージェント(代理人)を通してお仕事をもらう方法が良い思います。

それなりに経験があるエンジニアさんは
この方法で働いたほうが稼げます、ちなみに関東、関西などで
働くということが大体、前提条件ですが、リモートワークの仕事もあります。

そのうち、リモートワーク案件も増えていくと思います。
東京で住んでいれば間違いなくフリーランスになっていたと思います。

【フリーランス エージェント】などで検索すればいろいろなサイトが
表示されます。【フリーランス エージェント 比較】などで
調べても良いかもしれません。

エージェント名 案件
(現場)数
フォロー
体制
最高単価 強みのある職種
フォスターフリーランス 
(旧スキルサーフィン)
人月
230万円
・ITエンジニア全般
レバテックフリーランス 人月
160万円
・多種多様なWebエンジニア
・多種多様なWebクリエイター
・Web/UIデザイナー
ハイパフォエンジニア 人月
130万円
・航空会社システムエンジニア
・FinTech関連立ち上げ
・消費財メーカーECサイト構築
・上流工程ITコンサル案件
Midworks
(ミッドワークス)
人月
160万円
・UIデザイナー
・Scala(スカラ)エンジニア
・ブロックチェーン(C#)
・AIエンジニア(Python)
・アプリエンジニア(Swift)
・Ruby(ルビー)エンジニア
techcareer freelance
(テックキャリアフリーランス)
人月
120万円
・サーバーサイドエンジニア
・アプリエンジニア
・フロントエンドエンジニア
・UI/UXデザイナー
Pe-BANK
(ピーイーバンク)
人月
200万円
・経験豊富なエンジニア
ハイパフォコンサル
(High-Performer Consultant)
人月
200万円
・航空会社システム移行推進PMO
・SAPシステムの再構築
・データイノベーション推進支援
ビッグデータナビ
(BIGDATA NAVI)
人月
150万円
・データサイエンティスト 
・SREエンジニア 
・レコメンドアルゴリズム構築 
・ビッグデータ基盤構築 
・各種データ解析 
・DevOpsエンジニア
ワークシップエージェント
(Workship AGENT)
人月
80万円
・UI/UXデザイナー 
・AngularJSエンジニア 
・Node.jsエンジニア 
・フルスタックエンジニア 
・広報/人事フリーランス 
・財務/ファイナンス 
・プランナー/マーケター 
・編集/ライター
ポテパンフリーランス 人月
100万超
・エンジニア
※特にRuby on Rails(レイルズ)
ITプロパートナーズ 人月
130万円
・Laravel開発エンジニア
・Salesforceエンジニア
・PHPエンジニア
・iOSエンジニア
・Androidエンジニア
・PHPエンジニア
・AWSサーバーエンジニア
・Javaサーバーエンジニア
・React.JS開発エンジニア
・UI/UXディレクター
・SEM広告ディレクター
・SEOディレクター
・Webディレクター
クラウドテック
(Crowdtech)
人月
120万円
・フロントエンドエンジニア
・Webデザイナー
・Webエンジニア
ギークス
(geechs job)
人月
100万円
・アプリエンジニア
・ゲームエンジニア
・ゲームデザイナー
エンジニアルート
(Engineer-Route)
人月
75万円
・Webデザイナー 
・フロントエンドエンジニア 
・AIエンジニア
みらいワークス 
(FreeConsultant.jp)
人月
180万円
・業務コンサルタント 
・ERP導入コンサルタント 
・PMO/SAP/BPR/PM
flexy 
(フレキシー)
人月
100万円
・アプリ開発エンジニア 
・PHPエンジニア 
・UI/UXデザイナー
Waris 人月
100万円
・営業/マーケター 
・コンサルタント 
・広報担当
ザッピーリンク 人月
160万円
・Webディレクター 
・Webライター 
・Webメディア編集者 
・Webマーケター

↑引用: https://web-director-lifehack.info/freelance-agent-refer/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

いろいろ, うち, エージェント, エンジニア, お仕事, クラウド, こと, サイト, それなり, たら, フォロー, フリー, ランス, リモート, ワーク, 仕事, 代理人, 体制, 前提, 単価, 大体, 強み, , 方法, 最高, 条件, 東京, 案件, 検索, 比較, 現場, 経験, 職種, 表示, 関東, 関西,

高知県のダム貯水率をグラフ化してみた。

2019.09.21

Logging

高知県のダム貯水率をグラフ化してみた。
親戚にダムに勤めている人がいるのがきっかけで貯水率って
HPで表示させているのかなという事で調べてみました。
結果、かなり古いデザインサイトが現れた。
何とも懐かしい気持ちになりました。
そこでこの表からグラフ化してみたいなとか思って
ゴニョゴニョ作ってみた。
ちなみにソースコードが変わると
抜き取り出来なくなります。
追記:やはり変更されていました2へ続く
ソースコードを貼っときます。
ajaxとPHPを使用してます、XPathで貯水率だけ抜き取ってます。
サンプルサイト
https://zip358.com/tool/demo6/index.html

<?php
$html = file_get_contents("高知県のダム情報のURL");
$html = mb_convert_encoding($html,"UTF-8","SJIS");
$dom = new DOMDocument();
$html = mb_convert_encoding($html, "HTML-ENTITIES", 'UTF-8');
@$dom->loadHTML($html,LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$ary=array(
    "nagase",
    "kamaidani",
    "kagami",
    "sameura",
    "kirimi",
    "sakamoto",
    "oodo",
    "nakasugawa",
    "iburigawa"
);
for($i=3;$i<=11;$i++){
    foreach ($xpath->query("/html/body/form/div[2]/table/tr/td/table/tr[$i]/td[7]") as $node) {
        $r[] = preg_replace("/x{00a0}/u","",$node->textContent);
    }
}
foreach ($r as $key => $value) {
    $obj[$ary[$key]] = $value;
}
print json_encode($obj);
$(function(){
    dam();
    //setInterval(dam,9999)
});
function dam(){
    $.ajax({
        url : './dam.php',
        dataType : 'json',
        success : function(obj){
            $("#nagase").attr( "style","width:"+ parseInt(obj.nagase) +"%");
            $("#kamaidani").attr( "style","width:"+ parseInt(obj.kamaidani) +"%");
            $("#kagami").attr( "style","width:"+ parseInt(obj.kagami) +"%");
            $("#sameura").attr( "style","width:"+ parseInt(obj.sameura) +"%");
            $("#kirimi").attr( "style","width:"+ parseInt(obj.kirimi) +"%");
            $("#sakamoto").attr( "style","width:"+ parseInt(obj.sakamoto) +"%");
            $("#oodo").attr( "style","width:"+ parseInt(obj.oodo) +"%");
            $("#nakasugawa").attr( "style","width:"+ parseInt(obj.nakasugawa) +"%");
            $("#iburigawa").attr( "style","width:"+ parseInt(obj.iburigawa) +"%");
            $("#nagase").attr( "aria-valuenow",parseInt(obj.nagase));
            $("#kamaidani").attr( "aria-valuenow",parseInt(obj.kamaidani));
            $("#kagami").attr( "aria-valuenow",parseInt(obj.kagami));
            $("#sameura").attr( "aria-valuenow",parseInt(obj.sameura));
            $("#kirimi").attr( "aria-valuenow",parseInt(obj.kirimi));
            $("#sakamoto").attr( "aria-valuenow",parseInt(obj.sakamoto));
            $("#oodo").attr( "aria-valuenow",parseInt(obj.oodo));
            $("#nakasugawa").attr( "aria-valuenow",parseInt(obj.nakasugawa));
            $("#iburigawa").attr( "aria-valuenow",parseInt(obj.iburigawa));
            $("#nagase").text(obj.nagase + "%");
            $("#kamaidani").text(obj.kamaidani + "%");
            $("#kagami").text(obj.kagami + "%");
            $("#sameura").text(obj.sameura + "%");
            $("#kirimi").text(obj.kirimi + "%");
            $("#sakamoto").text(obj.sakamoto + "%");
            $("#oodo").text(obj.oodo + "%");
            $("#nakasugawa").text(obj.nakasugawa + "%");
            $("#iburigawa").text(obj.iburigawa + "%");
        },
        error: function(obj){
            alert("error");
        }
    });
  }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>高知県のダム貯水率</title>
    <script src="../jquery/jquery-3.4.1.js"></script>
    <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">
    <script src="./js/dam.js"></script>
    <style>
        body{
            background-color: #3e4654;
            color: aliceblue;
        }
    </style>
</head>
<body class="d-flex flex-column h-100">
    <main role="main" class="flex-shrink-0">
        <div class="container">
            <table class="table table-dark">
                <tr>
                    <td style="width:15%">
                        <p>永瀬ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress"  style="width:100%">
                            <div id="nagase" class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>鎌井谷ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="kamaidani" class="progress-bar progress-bar-striped progress-bar-animated bg-warning" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>鏡ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="kagami" class="progress-bar progress-bar-striped progress-bar-animated bg-info" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>早明浦ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="sameura" class="progress-bar progress-bar-striped progress-bar-animated bg-secondary" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>桐見ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="kirimi" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>坂本ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="sakamoto" class="progress-bar progress-bar-striped progress-bar-animated bg-warning" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>大渡ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="oodo" class="progress-bar progress-bar-striped progress-bar-animated bg-danger" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>中筋川ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="nakasugawa" class="progress-bar progress-bar-striped progress-bar-animated bg-dark" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td style="width:15%">
                        <p>以布利川ダム</p>
                    </td>
                    <td style="width:85%">
                        <div class="progress">
                            <div id="iburigawa" class="progress-bar progress-bar-striped progress-bar-animated bg-warning" role="progressbar" aria-valuenow="20"
                                aria-valuemin="0" aria-valuemax="100" style="width:20%"></div>
                        </div>
                    </td>
                </tr>
            </table>
        </div>
    </main>
    <footer class="footer mt-auto py-3">
        <div class="container">
            <span class="text-muted">©zip358.com</span>
        </div>
    </footer>
</body>
</html>

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

2, 358, 6, 8, ajax, com, contents, convert, demo, encoding, file, GET, HP, html, https, index, lt, mb, php, SJIS, tool, url, UTF-, XPath, zip, かなり, きっかけ, グラフ, コード, ゴニョゴニョ, サイト, サンプル, ソース, そこ, ダム, デザイン, , , , 使用, 変更, 情報, 気持ち, 結果, , 表示, 親戚, 貯水, 追記, 高知県,

画像をタイル状に分離して一括ダウンロードさせるジェネレーター

2019.09.07

Logging

画像をタイル状に分離して一括ダウンロードさせるジェネレーターを
作ってみました。画像は自動的に削除されます?
あることをすれば他人の画像がアップした画像も削除されます。
ちなみに一括ダウンロードbuttonを押すと画像がサーバー上に保存され
強制ダウンロードが始まります。
動作はブラウザChromeオンリーです。
また一括ダウンロードを押すと複数のファイルを一括ダウンロードするか
どうかの問い合わせが表示されますので「はい」を
選択してください。尚、30秒以内に保存されていないファイルは
次々と削除されます。
サイトはこちらから
https://zip358.com/tool/demo5/index-14.html
ソースコードは下記になります。
ページ(base64生成+画像ダウンロード処理)

追記:zipファイルにより格納するように処理を変更しました。
参考にしたサイト:https://ex1.m-yabe.com/archives/4215

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>画像分離してダウンロード:画像分離ジェネレーター</title>
        <meta name="description" content="画像分離してダウンロード:画像分離ジェネレーター">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script src="../jquery/jquery-3.4.1.js"></script>
        <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">
        <!-- Global site tag (gtag.js) - Google Analytics -->
        <script async src="https://www.googletagmanager.com/gtag/js?id=UA-71682075-1"></script>
        <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'UA-71682075-1');
        </script>        
        <style>
            body{
                background-color: black;
                color: antiquewhite;
            }
            img{
                margin:10!important;
                padding:10!important;
            }       
            #container{
                width: 100%;
            }
            #container img{
                margin:10px;   
            }       
        </style>    
    </head>
    <body>
        <span id="bat"></span><a id="dl"></a>
        <input class="form-control" type="file"></input>
        <div id="container"></div>
        <script>
            $(function(){
                $("[type=file]").on("change",function(){
                    $('#container').html("");
                    $("#bat").html("");
                    console.log($(this));
                    if(!$(this).prop('files')[0].type.match(/[png|jpg|jpge|gif]/)){
                        alert("ファイル形式エラー");
                        return false;
                    }                        
                    var canvas = document.createElement('canvas');
                    var reader = new FileReader();
                    reader.onload = function(event) {
                        var image = new Image();
                        image.onload = function() {
                            sprite = {width:50,height:50};
                            canvas.width = sprite.width;
                            canvas.height = sprite.height;
                            var ctx = canvas.getContext("2d");                            
                            var x = 0;
                            for(var i=0; i*sprite.height<image.height; i++){
                                for(var j=0; j*sprite.width<image.width; j++){
                                    ctx.drawImage(
                                    image,j*sprite.width,i*sprite.height,
                                    sprite.width,sprite.height,
                                    0,0,
                                    sprite.width,sprite.height
                                    );

                                    var spriteElement = new Image;
                                    spriteElement.src= canvas.toDataURL();
                                    $('#container').append(spriteElement);
                                }
                            }
                            $("#bat").html("<input type='button' value='一括ダウンロード' onclick='bat_img()'>");
                        }
                        image.src = event.target.result;                       
                    }
                    reader.readAsDataURL($(this).prop('files')[0]);
                    
                });
            });

            function bat_img(){
                var data = [];
                for(var i=0; i< $("img").length;i++){
                    data.push({"base64":$("img").eq(i).attr("src"),"no":i});
                }
                $.ajax({
                    type: 'POST',
                    url: 'bat_img.php',
                    data:{"obj":data},
                    dataType: 'json'
                }).done(function(obj){

                    if(obj[obj.length - 1 ].chk=="ok"){

                        var link = document.getElementById("dl");
                        link.href = obj[obj.length - 1].zippath;
                        link.download = "zipimg.zip";
                        link.click();

                        var data2 = [];
                        for(var i = 0 ; i < obj.length ; i++){
                            if(i==0){
                                data2.push({Path:obj.path,no:obj.no,t:obj.t,"zipimgpath":obj[obj.length - 1].zippath});
                            }else{
                                data2.push({Path:obj.path,no:obj.no,t:obj.t});
                            }
                            
                        }

                       var del = function(){
                            $.ajax({
                                type: 'POST',
                                url: './bat_del.php',
                                data:{"obj":data2},
                                dataType: 'json'
                            });
                        };
                        del();
                    }
                    });
                }
        </script>
    </body>
</html>
<?php
$i=0;
foreach($_POST["obj"] as $key=>$val){
    $b64 = base64_decode(str_replace("data:image/png;base64,","",$val["base64"]));
    $no = (int)$val["no"];
    $t = time();
    $Path = "./bat_img/tmp/$t-$no.png.webp";
    $re = @file_put_contents($Path,$b64);
    if($re){
        $obj[$i]["chk"] = $re?"ok":"ng";
        $obj[$i]["name"] = "$t-$no.png.webp";
        $obj[$i]["path"] = $Path;
        $obj[$i]["no"] = $no;
        $obj[$i]["t"] = $t;
        $i++;
    }
}
$obj[--$i]["zippath"] = zipfile($obj);

print json_encode($obj);


function zipfile($obj){
    $ZipFiles = function($obj){
        foreach($obj as $key=>$val){
           $path[] = $val["path"];
        }
        return $path;
    };
    $Zip_Files = $ZipFiles($obj);
    $zipFileName = time().'_zipimg.zip';

    set_time_limit(0);
    $zip = new ZipArchive();
    $zipTmpDir = './tmp/zip/';
    $result = $zip->open($zipTmpDir.$zipFileName, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
    if( $result !== true ){ //エラー処理
      echo 'error!';
      exit();
    }
    foreach ($Zip_Files as $key=>$filepath) {
      $filename=basename($filepath);
    // ZIP圧縮するファイルを追加
    // ファイルパス・ファイル名としないと圧縮ファイルを解凍するとフルパスになる
      $zip->addFile($filepath,$filename); 
    }
    //ZIP 出力
    $zip->close();

    return $zipTmpDir.$zipFileName;
}
<?php

unlink($_POST["obj"][0]["zipimgpath"]);
foreach($_POST["obj"] as $key=>$val){
    $Path = $val["Path"];
    $no = (int)$val["no"];
    $t = (int)$val["t"];
    
    $cmd = function(){
        foreach(glob("./bat_img/tmp/*") as $file_name){
            $command = "rm -rf " . realpath($file_name);
            exec($command);
        }    
    };
    
    if(pathinfo($Path)["extension"]=="png" and preg_match("/bat_img\/tmp/",$Path)){
        if(is_file($Path)){
            sleep(30);
            unlink($Path);
        }else{
            $cmd();
        }
    }else{
        $cmd();
    }

}

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

, 14, 30, 358, 4, 5, 64, archives, base, button, Chrome, com, demo, ex, html, https, index, m-yabe, tool, www, zip, アップ, オンリー, コード, こちら, こと, サーバー, サイト, ジェネレーター, ソース, タイル, ダウンロード, はい, ファイル, ブラウザ, ページ, 一括, 下記, 他人, 保存, 処理, 分離, 削除, 動作, 参考, 問い合わせ, 変更, 強制, 格納, 生成, 画像, 表示, 複数, 追記, 選択,

TinyMCE 5.0でオリジナルプラグイン作成するはググれば何とかなるが?

2019.07.27

Logging

TinyMCE 5.0で独自のプラグインを開発するにあたって
ググれば4.0で作成する方法は山ほど例題があるのだけど5.0は
非常に少ないtinymce.windowManager.openを使用してのプラグインは
5.0でも案外簡単に見つかるのだけど、tinymce.windowManager.openUrlを
使用しての情報はググってもない。
唯一、公式サイトが記載しています。
しかし残念なことに全て英語で書かれています。

日本語で記載しろよという話だけど・・・・。
で!!tinymce.windowManager.openUrlで
何が出来るかと言えば外部ファイルを
読み込みが出来てそのレスポンスを受け取る事が出来るのです。
英語が嫌いでも原文で英語を読め!!ですよ・・・。
答えはそのページに書いているのですね。
※ちなみに会社でこの機能(e.windowManager.openUrl)を
使用し開発中です。
たぶん、自分みたいに困っている人もいると思うので
基本的な部分を記載しています、なお自作プラグインの作り方は
理解しているという前提で記載しています。
まず例としてPHPファイルを読み込みたいのなら
自作プラグインのPHPファイルに下記の記載を行います。

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="/tool/bootstrap/css/bootstrap.css">
        <script src="/tool/jquery/jquery-3.4.1.js"></script>
    </head>
    <body>
        <form method="post">
        <input type="text" name="L_japan" class="form-control">
        <input type="text" name="L_English" class="form-control">
        <input type="button" name="submitbtn" value="恩恵を受ける"class="btn btn-primary">
        </form>
        <script>
            var chageJson = function(data) {
            console.log(data);
            var JsonData = [];
            for (i = 0; i < data.length; i++) {
                JsonData[data[i].name] = data[i].value
            }
            //console.log(JSON.stringify(data));
            return JsonData;
            }
            $("[name=submitbtn]").on("click",function(){
                data = chageJson($("form").serializeArray());
                window.parent.postMessage({ mceAction: 'customAction',data:data});
                window.parent.postMessage({ mceAction: 'close' });
            });
        </script>
    </body>
</html>

PHPファイルはこのような感じでjavascriptが大事ここで、
submitを行っています。
当然、JSON形式で返却しましょう。公式ページにも書かれいますが
mceActionで制御しましょう。
プラグイン側のJSは下記のようになります。

(function() {
    tinymce.create('tinymce.plugins.language_boon', {
        init : function( ed,  url) {
            console.log(ed);
            act =function(ed)
            {
                ed.windowManager.openUrl(
                    {
                    type: 'panel',
                    title: '恩恵を受ける',
                    url:url + "/language_boon.php",
                    onMessage:function(api, details){
                      console.log(api, details);
                      console.log('オレオレjapan', details.data.L_japan);
                      console.log('オレオレEnglish', details.data.L_English);
                   }
                });
            };
            // window.addEventListener('message', function (event) {
            //   console.log(event);
            //   var data = event.data;
            //   console.log(data.data);
            //   if(ed.settings.id == data.data.id_){
            //     console.log('オレオレjapan', data.data.L_japan);
            //     console.log('オレオレEnglish', data.data.L_English);
            //   }
            // });
              ed.ui.registry.addButton('language_boon',{
                title : '恩恵を受ける',
                text: '恩恵',
                onAction:function(){act(ed)}
            });
        },
    getInfo : function() {
        return {
            longname : 'tinymce.plugins.language_boon',
            author : 'taoka',
            authorurl : 'https://zip358.com',
            infourl : 'https://zip358.com',
            version : '1.0'
        };
    }
});
        tinymce.PluginManager.add('language_boon', tinymce.plugins.language_boon);
})();

公式ページは下記のリンクより
https://www.tiny.cloud/docs/ui-components/urldialog/#urldialoginstanceapi
サンプルサイトはこちら
https://zip358.com/tool/editor/
 
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

4.0, 5.0, open, openUrl, TinyMCE, windowMan, windowManager, オリジナル, こと, サイト, ファイル, プラグイン, ページ, レスポンス, , 会社, , 作成, 使用, 例題, 全て, 公式, 原文, 唯一, 外部, 嫌い, 山ほど, 情報, 方法, 日本語, 機能, 残念, 答え, 簡単, 英語, 記載, , 開発,

ANA積立で決済する方法とiPhoneでウォレット追加する方法。

2019.04.09

Logging


ANA積立航空券で決済する方法ですが、
まずWEBで予約まで行います、次に下記のサイトに
書かれているANA旅行積立プラン専用デスクに電話します。
その後、WEBへログインし支払い期限が延長されている
事を確認します。
サイトにANA航空券(旅行券)を送る住所が記載されているので
封筒にそれらを明記しANA旅行積立プラン専用デスク 行と記入した
うえで、郵便局で簡易書留+追跡サービスで送りましょう。
※送付するときは必ず送付書を入れて送りましょう。
尚、往復の場合、余白に搭乗日時などを明記し上記の内容に
合算することを明記しましょう。
http://www.anas.co.jp/tsumitate/anaticket/use_ticket/dom_desk/index.html
iPhoneでウォレット追加する方法
下記のサイトから手順通り行うとうまく行くはずなのですが、
純正ブラウザ以外の場合、インストールできない場合があります。
なので必ずSafariを使用してウォレット追加しましょう。
https://www.ana.co.jp/ja/jp/serviceinfo/share/passbook/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

ANA, anas, anaticket, co, desk, dom, htmliPhone, http, index, iPhone, jp, Safa, ticket, tsumitate, use, web, www, インストール, うえ, ウォレット, こと, サービス, サイト, それら, デスク, とき, パス, ブラウザ, プラン, ログイン, 上記, 下記, 予約, , 住所, 余白, 内容, 合算, 場合, 封筒, 専用, 延長, 往復, , 手順, 搭乗, 方法, 旅行, 旅行券, 日時, 明記, 期限, 決済, 確認, 積立, 簡易書留, 純正, 航空券, , 記入, 記載, 追加, 追跡, 送付, 郵便局, 電話,

年賀状CSVを作りました。SJISで保存してください。

2018.12.30

Logging

https://zip358.com/tool/nenga/
ブラウザ上で完結しています。
禁則処理などはありません、ただ純粋に入力したものが
CSV形式の文字列で出力されます。
これ何のために使えるかといえば
https://nenga.yu-bin.jp/
こちらのサイトで住所録を登録する際に使用できます。
タイトルにも描きましたがSJISの文字コードで出力をお願い致します、
また、データベースに保持などはしていないため
リロードしてしまうと全てのデータが消えてしまいます。
これを作った経緯。
自分が郵便年賀.jpで登録するのが面倒だったため作りました。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

358, com, CSV, jp, nenga, SJIS, tool, yu-bin, zip, お願い, コード, こちら, これ, サイト, タイトル, ため, データ, データベース, ブラウザ, もの, リロード, 住所, , 使用, 保存, 保持, 入力, 全て, 処理, 出力, 完結, 年賀, 年賀状, 形式, 文字, 文字列, 登録, 禁則, 純粋, 経緯, 自分, 郵便, , 面倒,

頭でっかちみたいな記事ばかりなのに。

2018.07.22

Logging


頭でっかちの頭が悪いひとが書いている記事に
なんだかココまでアクセス数が上がるとは思いませんでした。

たぶん落ちなかったら1000ビューでした。
1000ビュー毎日あっても何も変わらないので、おそらくBOTちゃんか
何かだろうと未だに思っています。
なので、全然というほど喜びなし。
自分のサイト、広告とか全く打ち出していません。
Twitterとブログ記事だけでコツコツやっているだけです。
この頃は毎日記事も書かなくなりましたし
暇な休日にやることがないので記事を書いていますってぐらいです。
なのに、アクセス数は増えていまして
有り難いことですね、炎上かもしれませんが!!
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

1000ビュー, 1000ビュー毎日, BOTちゃん, Twitter, アクセス数, ココ, サイト, ブログ記事, ブログ運営×集客×マネタイズ, 人気ブロガー養成講座, 休日, 広告, 悪いひと, 有り難いこと, 炎上, 記事, ,

連休後半

2018.05.01

Logging


連休(GW)どこにも出かけない割合って
どれぐらいいるのだろうか。おそらく2?3割ぐらいは
どこにも出かけず家で休暇と考えている人もいると思います。
ちなみに昨日、音声ログというサイトを作りました。
ちょっとした事を月イチか週イチぐらいでつぶやきます。
そして自分の声は何だか弱々しくヘタレな声です。
本人が耳に聞こえる声とは全然違っていてショックでしたが
この声を変えるということは出来ないだろうから・・・。
あと、連休中はブログの更新はイマノトコロ、
続けるつもりでいます(今日は自分は仕事です)。
https://zip358.com/voice/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

イジメ, イマノトコロ, サイト, どれぐらい, ひと, 休暇, 割合, 小学館新書, 更新, 月イチ, 本人, , 連休中, 連休後半, 週イチ, 音声ログ,

XからGCPへサーバ以降。

2018.01.27

Logging


メールサーバが動きません・・・動いているのかな?
自動送信メールが来ないので・・・分からないのですが
何とか、サーバ以降は出来たみたいです。
普通、こういうのは真っ昼間に移行なんてしないのですが
朝、サーバ以降途中で映画を見に行き、昼ごろから
サイトが見えた感じになっていると思います。
今回、GCPに移行した理由は一年間、無料だということと
会社で試験的に導入することになるみたいだから、その練習台として
稼働させたわけですが・・・。
案外簡単に導入することが出来ました。
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

GCP, X, サーバ以降, サーバ以降途中, サイト, メールサーバ, 一年間, 大事, 感じ, 昼ごろ, , 無料, 理由, 真っ昼間, 移行, 練習台, 自動送信メール,

このサイトは安全に接続できません。

2018.01.13

Logging


このサイトは安全に接続できません。
SSL(https)対応ではないと接続は安全ではありませんのような事が表示されるようにChromeが対応を行うらしいですね。あんまり嬉しくはない機能をChromeは導入するのでしょう。WEB業界は一時的に潤うかもしれませんが・・・?
尚、業者にボッタクられないように言っとくと、SSL対応費は基本無料でも出来ますので、あとはホームページ内のリンクなどを修正費用が一度だけ発生します。そこらへんの説明無しで高額な費用が発生した場合、おそらくボッタクリな金額を請求されています。お気をつけて・・・(*´ω`*).

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

Chrome, https, SSL, SSL対応費, WEB業界, お気, サイト, そこらへん, ホームページ内, ボッタク, リンク, 一度, 修正費用, 基本無料, 接続, 業者, 機能, 説明無し, 費用, 金額,

サイトのテコ入れ。

2017.10.05

Logging


サイトのテコ入れを行うことに
このサイトはアクセス数はまぁまぁあるのでテコ入れはしません。
ですが、その他のサイトは雀の涙程度のアクセス数しかないので、モール関係のサイトの
テコ入れを行うことに決めました。
検索に引っかかりやすい作りにするには、
ゴネゴネとプログラムで作って
固定ページが有るかのようにサイトを作り直さなければ、
おそらく検索には拾ってもらえないだろうから、下記のことを行うことに、
まず、必要な単語リストを生成し、その生成した単語からページを生成する。
容量はかなりあるので、動的なサイトより静的なサイトで
ページを構築します。問題は単語リストをどうするかなのです・・・。
単語リスト=辞書データなのですが
このフリー版を見つけるのが一苦労しそうです。
静的なサイトは辞書データが見つかれば
そのデータを元にバッチ処理(一括処理)を行えば
何とかなりそうなのですが。。。。
問題は辞書データかなと。。。。
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

アクセス数, かなり, サイト, その他, テコ入れ, バッチ処理, フリー版, プログラム, モール関係, 一括処理, 下記, 作り, , 単語リスト, 問題, 固定ページ, 容量, 検索, 辞書データ, 雀の涙程度,

httpからhttpsへ

2017.09.21

Logging


httpからhttpsへとか確かに大事だけど
それでアクセス数が急上昇することはないです。
全然アクセス数が上がらないわけでもないけれども・・・。
SSL化することによって商売などをしている人にとっては
サイトの信用を得られると思うのですが、この日本でもSSL化は
進んでいて自分の知るところでは4割のサイトはSSL化導入しているのだとか。
このままSSL化が浸透していけば9割近いサイトがSSL化を適応した
サイトになるのではと思っていますが!、そうなった時、SSL化することで
信用を得られることが無くなるのではないかと思っています。
ちなみにSSL化しなくても今後、http1.1からhttp2.0になれば
この問題は解決するので、http2.0になるまでSSL化しなくても良いのかもと
思ったりもしています。http2.0はグーグルが開発したSPDYがベースになっているの
だとか・・・ここでもグーグルが絡んでいるとは
まさにネットの覇王ですね。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

9割近いサイト, B00PHC4480, http1.1, http2.0, HTTPS環境構築, SPDY, SSL入門, SSL化, アクセス数, グーグル, サイト, ネット, ベース, 信用, 商売, 覇王,

サイトの評価さげても意味はない。

2017.09.18

Logging


サイトの評価さげてもアクセス数を減らしても
意味はあまりない。もともと、このサイト、じぶんの日記として
始めたサイトなのでアクセス数が減ろうがグーグルの評価をさげても
続けるので、何一つ意味は無いかな。
このサイトの評価を下げるために何かしら
無駄な努力をしている人がいるのだけど、自分にとっては
無駄な時間を費やしているようにしか思えないのですね。
このサイトはグーグルの評価が下がって検索にヒットしなくても続けます。
最初は馬鹿にしていたと思いますが、毎日続けることの重要さは
日に日に増してきているのではないでしょうか?
無駄な努力はしなくても良いと自分は思っています。
一番無駄な努力とは人を毎日のように非難することです、これは一番無駄な努力です。
他者を非難することで自分の評価が上がることはないです。
むしろ下がる一方ですよ。
 
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

7, アクセス数, グーグル, サイト, じぶん, 一方, , 他者, 意味, 日記, 時間, 最初, 検索, 評価, 重要さ,

前、言ってたzip358.comモールが完成しました。昨日言っていたアレ。

2017.09.17

Logging


前、言ってたzip358.comモール(IT書籍紹介など)が完成しました。
昨日言っていたサイトが一部、リニューアルしたって
言うのはこの事です。当初はアマゾンAPIを使用して作るつもりでしたが、
途中で変更、理由は楽天の方がメリットが高いからです。
楽天アフェリエイトの場合その時、購入しなくても、ブラウザ上にクリック履歴が残っていれば
60日間、有効だということみたいです。これは結構、アフェリエイトの観点から
言えばメリットが高いから楽天APIを使用してモールを作ることに切り替えました。
ちなみに当初、モールのつづりを間違えてモルにしてました。
モルってモグラの事らしいです。英語とか勉強しとかないと
つくづく駄目だなと痛感。このサイト、結構アクセス数多目なので
モルで一日ぐらい放置していたと思うと・・・・。
赤っ恥ですね・・気づいてよかった。
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

IT書籍紹介, zip358.comモール, アマゾンAPI, クリック履歴, サイト, しくみ, つづり, ブラウザ上, メリット, モグラ, モル, 副収入, 当初, 楽天API, 楽天アフェリエイト, 痛感, 観点, 赤っ恥,

超それ!機械学習、 TensorFlow!!

2017.09.02

Logging


機械学習でどんな事出来るの?
勝手に勉強してくれるお利口さんな機械学習もあるけれど
オープンソースで提供している機械学習ってのは大体、前もって
答えを与えておいて、そこから判別するものがある。
今回、某検索サイトが提供しているTensorFlowでどんな事が出来るのだろうと
思い、ネットサーフィンしていたら、面白い記事を見つけました。
なんと、Raspberry PiとTensorflowをつかってきゅうりの仕分けができるというシステムを
開発した人がいました。この記事を読んでまさに「超それ!」
https://cloudplatform-jp.googleblog.com/2016/08/tensorflow_5.html
自分が思い描いていた機械学習でできることだと!

いやホントに凄いな、機械学習っていうのは
これからの花形になっていく存在だとつくづく思ってしまいました。
これか先、AIを作る層、AIライブラリやAI、APIを使う層、そしてAIを使う層に
別れていくだろうと思います。じぶんみたいな凡人開発者はAIを作る層には入れないですが、
AIライブラリやAI、APIなどを活用できるようにしないと、
今後、この業界で生き残っていくのは難しいじゃないかなと思っています。
なぜ、そう痛感しているのかと言えば
機械学習で検索すると数年前まではあまりヒットしなかったのに
去年あたりからな。いろいろな人が技術をオープンで公開し始めています。
この動きは止まることはないのではないかと思うのが一番の理由です。
ちなみに自分はあるサーバでTensorflowをインストールして動かしています。
まだ、テストを動かして遊んでいるぐらいで、じぶんでゴニョゴニョ開発しているわけではないです。
開発する前にやらないといけない事があるので、そちらが終わってから
Tensorflowコードをパクりながら学習しようかなと考えています。
https://www.youtube.com/watch?v=4HCE1P-m1l8
ちなみにtensorflowの公開をしますとか、言っていてからもう一年ぐらい
経過しているのかもしれません。すみません、じぶんは阿呆なので
もう少し理解するまでお時間が必要です。噛み砕いて提供できるまでには
結構、時間が必要かもしれません。
じぶんを機械学習したいこの頃でした・・・(´・ω・`)。
 

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

08, 2016, 5, AI, API, cloudplatform-jp, com, googleblog, html, https, Pi, Raspberry, tensorflow, オープン, お利口, きゅうり, けが, こと, これ, サーフィン, サイト, システム, ソース, そこ, それ, ネット, ホント, もの, ライブラリ, , , 今回, 仕分, , 判別, 勉強, 勝手, 大体, 存在, 学習, , 提供, 検索, 機械, 答え, 自分, 花形, 記事, 開発,

非公式土佐電つぶやきBOTが完成したが速攻ロックされた件。

2017.07.31

Logging


非公式土佐電つぶやきBOTが完成したが速攻ロックされた件だけど
正直な所、少し予想はしていました。
世の中、よく思わない人々がいることは確かなことです。
今回の非公式土佐電つぶやきBOTの制作経緯ですけど・・・
作ろうと構想をねってから5年ほど月日が流れていたモノなんですね。
何故、ここまで時間がかかったかというと土佐電交通の時刻表が簡単に
プログラムで抽出することが不可能なんです。
なので・・・。
当初は人力でデータを入れ込もうと考えていました。
これが一番、長引く原因になったわけです、データを登録しようと
何度も頑張ってみたのですが、情報量が多いので途中で挫折すること何度か。
結局これでは埒が明かないので、
他の方法を考えた結果、WEBストライピングするという事です。
要はサイトのデータ抽出することで解決したのですが、
公式ページはあんな感じなので、よくある電車検索サイトから
データ抽出してきました。
路面電車の時刻表を検索できるサイトを
探すのに手間がかかりましたが、抽出事態は、一日ぐらいで
コーディングする事で何とかなりました。
ちなみにある大手の検索できるサイトからデータを抽出しています。
今回、作って思ったことは
公式ページがPDFじゃなく電車の時刻表が検索でき時刻表が表示されるサイトを作ったら
良いのにと思いました。バスアプリは作っているのに・・・。
https://twitter.com/tosaden_net

{非公式}土佐電時刻表検索を始めました。
https://tosaden.net/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

5, BOT, web, ここ, こと, これ, サイト, ストライピング, データ, プログラム, ページ, もの, ロック, わけ, 不可能, , , 予想, , 交通, 人々, 人力, 今回, , , 何度, 何度か, 何故, 公式, 制作, 原因, 土佐, , 完成, 少し, 当初, 情報, 感じ, , 抽出, 挫折, 方法, 時刻表, 時間, 月日, 検索, 構想, 正直, 登録, 簡単, 経緯, 結果, , 解決, 途中, 速攻, , 電車,

文字化けがモヤモヤした件:Unicodeめ!!とか機種依存文字とかの話。

2017.07.14

Logging


文字化けがモヤモヤした件:Unicodeめ!!とか機種依存文字とかの話。
会社でこちらの件でモヤモヤして最終的に解決できたのだけどなんだか腑に落ちないので自宅に帰って文字化けの検証をしてみました。勤めている会社はサイトコピー防止の為なのか、未だにEUC-JPコードで動いています(楽天とかもEUCだったりする🙄)。なので、会社のWEBシステムのファイルはEUCなのです。ブラウザ側がEUCだけどAjaxで送受信しているから強制的にUTF8で送られる?ので、PHP側で正しい文字コードで変換しないと文字化けするですね🤔。👈此処らへんサーバーサイドも絡んできます。
レスポンスされた文字コードも表面上は難なく表示されます。その戻ってきた文字をコピペしてWindowsのテキストファイルなどにペースト(貼り付ける)すると文字化けを起こす文字があります。
酷いときは文字が消える文字化け表示されるという問題がおきるのです。

その時、はてなって思った訳です🙄

何故・・・起きるのかPHPでエンコードするときの問題に変換にミスっていると思っていたが、そうではなかった。
WindowsエディタがSJISだったのです。要するにブラウザの文字コードとWINDOWSエディタの文字コードに違いがあった為、ある一部の文字コードで文字化けを起こしていました。

ブラウザ側がUTF8やEUC文字コードをエクセルファイルに貼り付けたら、一部の文字コードがバグったりします・・・。これは文字コードを扱うバイト領域等が違って起きる現象です。

追記2022/10/03:記事の文言を修正しました。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

8, ajax, EUC, euc-jp, php, Unicode, UTF-, web, Windows, コード, こちら, コピー, コピペ, サーバー, サイト, システム, テキスト, とき, ファイル, ブラウザ, ペースト, べん, レスポンス, , 会社, 依存, , 問題, 変換, 文字, 文字化け, 検証, 楽天, 機種, 此処ら, , , 自宅, 表示, 表面, 解決, , 送受信, 防止,

素数判定、単純なソース。

2017.06.25

Logging

素数判定、単純なソースを作りましたので
公開します、ちなみに確率的素数判定法ではなく
ほんとに単純明快な方法で作成しましたので自分のパソコンでは
4桁までの処理が限界でした、基本:javascriptで動いています・
ローカルのパソコン性能に左右されます。
ソースを変更して5桁とか試してみるのも良いかもしれません?
サンプルサイト
https://zip358.com/tool/sosu/

function sosu(){
    let sosuno = [2];
    for(let i=3;i<=9999;i++){
        let flg = true;
        if(i%2===0){
            continue;
        }
        for(let ii=2;ii<i;ii++){
            if(ii%2===0){
                continue;
            }
            if(i%ii===0){
                flg = false;
                break;
            }
        }
        if(flg){
            sosuno.push(i);
        }
    }
    document.getElementById("my-textarea").value = sosuno.join(',');
}
document.getElementById("btn").addEventListener("click",sosu);

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

$flg, 0, 2, , 4, 5, 9999, continue, For, function, if, Ii, javascript, let, lt, sosu, sosuno, true, サイト, サンプル, ソース, パソコン, ほんと, ローカル, 作成, 公開, 処理, 判定, 判定法, 単純, 基本, 変更, 左右, 性能, 方法, 明快, 素数, 自分, 限界,

漫画:怠惰(たいだ)67パーセントを読んでみた。

2017.05.28

Logging


怠惰(たいだ)67パーセントを読んでみた、
ほんとに有りそうな大学の日常生活のあるあるネタ?で
コミカルに描いた漫画が意外と自分の中ではヒットした。
ちょっとHだけど、なんかHでもない
そんな現実味のある内容が描かれた漫画だった、
電子版では試し読みもあるので読んでみて
合いそうなら全部通しで読んでみると面白いのかなと
思います、ちなみにまだ昨日購入したばかりで
1巻の半分も読んでいません。
実はかなりHな漫画だったりしたら、ごめんなさい。
おそらく違うと思いますが・・・。
※この本・・・昨日、紹介したサイトの作者が読んでいたので
見てみた感じです。久しぶりに漫画とか読んでみたりして
漫画も良いなと思えた次第です。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

B06ZZ4BXTP, かなりH, サイト, ネタ, ヤングジャンプコミックスDIGITAL, 作者, 全部通し, 内容, 半分, 大学, 惰性67パーセント, 日常生活, , 次第, 漫画, 現実味, 電子版,

お金で増やせるものフェイスブック、YOUTUBE、Twitter、インスタ等。

2017.05.16

Logging


お金で増やせるものフェイスブック、YOUTUBE、Twitter、インスタ等。
今ではTwitterのフォロワー数からフェイスブックのいいねやYOUTUBE再生回数、チャンネル数、
インスタグラムのフォロワー数をお金で増やすことが出来るサイトがあります。
メリットは数字で釣られてしまう人々がフォローするという事だったり
YOUTUBEだったら再生回数に騙されて、ポチッと押す人々がいるという事です。
Twitterはある意味緩いですが、フェイスブックやYOUTUBEは
バレるとアカウント消滅させられる恐れがあるので要注意です。
http://twitterフォロワー.jp/
試しにしてみたいという方はこちら↑へ
アクセスしてみてください。
ちなみに自分は使用したことはないので
わかりません・・・が信用はある程度ある有名なサイトです。
自分はここのサイトは使用しませんでしたが
ワンコインでTwitterのアカウントを1000垢増やしてもらった事があります。
すべて海外の垢です。増やしたことによる効果はゼロに
近いですね・・・。
前から言っているように質がよければ自然と閲覧数は増えていきます。
自分みたいに、だだつぶやきの延長のような記事ばかりを
垂れ流しているとそんなにアクセス数は増えていきません。
上記のようなサイトを使用するより広告掲載するとか
日々、発信してユーザーを増やしていくことが大事になります。
ブラックハット的なことでは、お金を失うだけでメリットが殆ど無いです。

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

SEO内部対策, Twitter, youtube, YOUTUBE再生回数, アカウント, いいね, インスタグラム, お金, サイト, だだつぶやき, フェイスブック, フォロワー, フォロワー数, ブラックハット的, ポチッと押す人々, メリット, ワンコイン, 要注意,

この頃、フリー写真素材がクオリティーが高い!!

2017.03.23

Logging


この頃、フリー写真素材がクオリティーが高い!!
ぱくたそさんのサイトがかなりクオリティーが高いですね。
これ全部、無料で使用できるだから、ほんと有り難いことです、
広告収入と寄付で運営されていると思うのですが
元が取れるのだろうかとちょっと心配になってしまいます。
この頃、サーバの移管などもしたらしく
表示速度も改善されています、自分のサイトみたいな
アクセス数ではないのは、分かっているものの、、、
どれ位の収益を得ているのかはわからないですが、おそらく
月に50万?100万の間の収益だと思います。
個人で50万?100万あれば何とかなりますが
これが複数人で運営されているとなると話は別話になります。
ちなみにグーグルさんの広告なのか
婚活中の広告が表示されました・・・・orz
っで、こちらがぱくたそさんのサイトリンクになります。
https://www.pakutaso.com/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

かなりクオリティー, グーグル, クオリティー, サーバ, サイト, サイトリンク, サヨナラ, どれ位, フリー写真素材, 収益, 婚活, 寄付, 広告収入, 有り難いこと, 移管, 表示速度, 複数人, 間違いだらけ,

忙しいときは冷静になり、暇な時には情熱を持つ。

2017.03.01

Logging


忙しいときは冷静になり、暇な時には情熱を持つ。
インターネットに溺れるなかれ、インターネットの情報は
欲しい情報が瞬時に出てきますが、瞬時にでてくる情報ほど
大した事ない。結局、ネットに掲載されている情報はある一定のレベル
までしか普通はたどり着けない。
実は検索されないようなサイトでも重要な内容を
公表しているところはある。ただ、たどり着くには専門用語を
知っていないといけないというオチがある。
自分はメソッドを覚えていないので結構、ググることが多い。
ググればメソッドなので簡単に出てくる。そんな事をしているとググり
ばかりで頭に記憶されない。この頃、記憶しないのは時間のロスだと
思い始めた。じぶんの場合、ひとつの言語を長く使用した経験がなく
コレまでは、それで良かったのだけど、この頃このまま
覚えないのはまずいなと思い。C#、PHP、jqueryのメソッドや宣言などは
ググらなくとも書けるようにしようと思っています。
特にPHPはよく使うので、そろそろがっつり覚えないと
駄目な気がする。
英単語を覚えるみたいに、、、メソッドを覚える
問形式のサイトを誰かつくっていないだろうか?

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

B00V4DYCPG, jquery, PHPポケットリファレンス, インターネット, オチ, サイト, じぶん, メソッド, 一定, 問形式, 専門用語, 忙しいとき, 情熱, 改訂, 瞬時, 英単語, 言語,