イラレのAI生成を試してみた。ミッドナイトジャーニーには

2023.10.15

Logging

おはよう御座います、イラレのAI生成を試してみた。ミッドナイトジャーニーにはやはり劣るけど・・・もベータ版としてはまずまずかなって思います。プロンプトを使いこなせればもっと良いアイコンなんかも出来ると思いますが、使い方が少し難しい。ロゴのタイトル入りデザインとなるとイラレの生成AIはかなりダサダサなデザインしか出力してくれない。

なので、未だまだ改善の余地は有りそうです。ベータ版なのでこんぐらいかなって思って使うべしかな。因みに、上記のアイコンは生成AIで出力されたものになります。これ、ベクター形式で出力してくれるので、とても良いそこが画期的ですよねぇ。たの画像生成AIは画像として出力されるので、修正するのが困難ですが、ベクター形式なので自分で修正することが可能。簡単に言えば土台を作ってもらってそこからデザインの修正をすることが可能。

なんだか…この作業、プログラムコードを生成してもらって手直ししている今の自分の仕事の方法と似ている気がします。なので、デザインナーさんの仕事も当分、お仕事は有ると思います。

明日へ続く。

著者名  @taoka_toshiaki

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

タグ

AI生成, アイコン, イラレ, こん, タイトル入りデザイン, デザインナーさん, プログラムコード, プロンプト, ベータ版, ベクター形式, ミッドナイトジャーニー, 余地, 作業, 修正, 土台, 改善, 未だ, 生成AI, 画像生成AI, 良いアイコン,

C#という物も勉強しようと本を買いました。DDDも。

2023.08.07

Logging

おはようございます、C#という物も勉強しようと本を買いました。入門書じゃなくて応用編みたいな本です。Laravelも応用編が読みたいのですがないですよねぇ。全然無い訳ではないのだけどもっといろいろな機能を紹介している本が読みたいなって思っています。

C#は何のために購入したのかといえば、Javaの思想とかが根底にあるのとアプリなどがマルチで作れることと何かを考慮して勉強して損はないなって思ったからです。そしてAndroidStudioなどのよりも開発環境が安定していることが再度勉強しようと思ったきっかけです。

あとここ十年、WEB系ばかりの仕事だったのでソフトウェアも知識として持ちたいなって思ったのがきっかけになります。あと、Laravelで開発しているとやっぱもっと掘り下げて知識が必要だなって感じているのでそういう事を踏まえてのC#の再度勉強です。

あと、C#の本とは別にドメイン駆動設計の本を買いました。仕事をしている環境ではDDDが組み込まれている所があるので勉強しようとこの本を買いました。DDDをマスターすれば機能の修正や機能追加をもっとスムーズに対応出来ると思ったのがこの本を購入するきっかけです。ネットで転がっている知識を鵜呑みにして覚えると覚え直しが発生する可能性があるので、軸となる部分を一冊を持っとくのは大事かもなのでそういう理由もあります。

著者名  @taoka_toshiaki

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

タグ

AndroidStudio, C++, DDD, java, Laravel, アプリ, きっかけ, ソフトウェア, ドメイン駆動設計, 修正, 入門書, 再度, 再度勉強, 応用編, 思想, , 根底, , , 鵜呑み,

Photo by Pixabay on Pexels.com

GW最終日。総括してみました、出来ないことだらけ?

2023.05.07

Logging

おはようございます、机の中を整理するとほとんどがゴミ🚯だった中の人です。さて、GWでやろうと決めていて出来なかったことは、個人開発だけかな。プログラミングはしていたのですが、バグの修正やちょっとした機能追加が主でアプリをリリースした、WEBサービスをリリースしたとかはない感じですね。

机の中を整理していたら、昔のアイディアノートが出てきたりして大きな収穫でした。今見るとヘンテコなもので、このままリリースしたりすると決済部分などの障壁になるじゃないかなと思うサービスですが、アイディアは面白いというのがチラホラあったので良かったです。

今、二番煎じのサービスを無料でリリースしてみたいなという事を考えていて、簡単なものから時間がかかる物までなんか作ってみたい気がします。気がするだけで終わるかも知れませんが・・・。

あと、このブログをテンプレート部分をどうにかしたいなとも思っています。今のテンプレートのデザインを組み込めるようにしないと何れ、WordPressのバージョンアップで現行のテンプレート使用できなくなる可能性(フルサイト編集 (Full site editing, FSE))もあるので、これは近いうちに対応したいと思っています。

著者名  @taoka_toshiaki

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

タグ

FSE, Full site editing, GW, WordPress, アイディア, アイディアノート, ゴミ, テンプレート, テンプレート部分, バグ, プログラミング, ヘンテコ, 二番煎じ, 修正, 収穫, , , 現行, 近いうち, 障壁,

Manifest V3、ブラウザ拡張機能のアレに対応した解説動画。

2022.11.02

Logging

おはようございます、カサカサ肌には大変な季節です🫠。

今日はManifest V3、ブラウザ拡張機能(Chrome拡張)のアレに対応した解説動画がありましたのでご紹介します。こちらの動画で基本は分かる感じになっています。いつまで掲載されるかわからないので、リンクだけ貼っときます。こちらになります。

尚、マニフェストの書き方だけがV3になってから変わっただけではないので、そこの所が注意しないといけない所です。自分もグーグルクロームに拡張機能を公開していたので、そちらの使用されている拡張機能は修正しました。

今、自分用に作っているV3のマニフェストの書き方だけ載せときますね。

{
  "name": "lancers footpoints",
  "version": "1.0.0",
  "manifest_version": 3,
  "description": "ランサーズ。",
  "permissions": [
    "tabs",
    "scripting"
  ],
  "action": {
    "default_icon": "icon20221101.png"
  },
  "background": {
    "service_worker": "src/background.js"
  },
  "content_scripts": [
    {
      "matches": [
        "https://www.lancers.jp/work/search*"
      ],
      "css":["src/style.css"]
    }
  ]
}

あと、backgroundとcontent_scriptsの送受信の関係などが記載されているサイトを見つけたので、そちらもリンクを貼っときます、こちらのページになります。

著者名  @taoka_toshiaki

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

タグ

1.0.0, , Chrome, footpoints, Lancers, Manifest, name, quot, Version, アレ, いつ, グーグル, クローム, こちら, ご紹介, そこ, そちら, ブラウザ, マニフェスト, リンク, , 今日, 使用, 修正, 公開, 動画, 基本, 大変, 季節, 対応, 感じ, , 拡張, 掲載, 書き方, 機能, 注意, , 自分, 解説,

Photo by Pixabay on Pexels.com

何気なく書いていた事が結構な確率で当たる。#未来予知 #高的中か?

2022.10.09

Logging

おはようございます、コロナが収まりそうなのに戦争はまだ収まりそうにないです。ロシアは領土を奪って何得なんでしょうか。意味が分かりません。

さて、過去のブログ記事を定期的に見たり修正したりしています。これを行う理由は一つだけ意味不明な文章表現があり本人しか意味がわからないモノが存在します。その為、定期的に変な文章は直したりしています。

Tesla AI Day in 23 Minutes (Supercut) (2022)

毎日書けば文章力や表現力は、どんな人でもUPします。泥臭いことですが技術力を上げようと思ったらひたすら真っすぐ頑張るしか無いです。必要な知識は日々の勉強でしか埋め合わせは出来ないです、技術や知識を身につける方法はひたすら覚える事から始まります。覚えて基礎が身につけば応用学習するその反復を行って身につく。この方法しかなく脳にデータをインストールは今のところ出来ない、記憶力は人それぞれなので、身につく事が早い人と遅い人がいるけれど反復学習をすれば身につきます(脳に障害がある人は難しいけども)。

タイトルの話になりますが、結構な確率で自分の未来予想があたっているなって最近思います。特に科学的な進歩や社会にどう浸透していくなどは、結構、的を得た予想をしているなと自画自賛😐。未来予測が当たっても何の得にもならないけれどもアタルのは良いことです。

此処で一つ未来予想を書きます、昨日きな臭い記事の書いたけど、来年の夏までにはロシアVSウクライナの戦争は終わるじゃないかって思っています、なんかそんな気がします。

著者名  @taoka_toshiaki

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

タグ

UP, インストール, こと, これ, コロナ, それぞれ, データ, ところ, ブログ, もの, ロシア, 一つ, 不明, 予知, , , , 修正, 勉強, 反復, 基礎, , 存在, 学習, , 必要, 応用, 意味, 戦争, 技術, 技術力, 文章, 文章力, 方法, 日々, 未来, 本人, 毎日, , 理由, 的中, 知識, 確率, 結構, , 表現, 表現力, 記事, 記憶力, , 過去, 障害, 領土,

機械学習は学習するのにどれぐらいのデータが必要?

2022.09.06

Logging

今日は大荒れ☔との事です、おはようございます。

8月の半ばにとある事情で機械学習で人の顔かどうかを判別させるモデルをTensorFlowで作ってみたのですが、結果、学習のデータが少なかったのが原因なのか分からないけども・・・。人工無能と言いたくなるほど無能な機械学習が出来上がりました。犬の画像を見せてもこれは人ですと判定してくれるので正直、ホントげんなりでした。

画像分類の作り方は簡単です、学習したいディレクトリとテスト用のディレクトリを作り、それぞれの階層に分類ディレクトリを設置し、その中に学習の画像データとテスト用の画像データを入れてサンプルコードをちょちょっと修正してテンソル(Pythonを実行)で学習してもらうだけです。

画像分類器を作る(機械学習ゼーロからヒーローへ – 第4部)
画像分類器を作る(機械学習ゼーロからヒーローへ – 第4部)

尚、自分のテストデータは100枚ほどしかなかったので、全然駄目な結果になりましたが3000枚以上の画像データがあればちゃんとした判別が出来たのかも知れません。

スマホの顔認証は動画データを画像データー変換して学習させているのでしょうね。そうすれば数千枚の画像は生成出来ると思います。

例えばopencv-pythonなんかで画像変換するのが良さそうですよ。

pip install opencv-python

著者名  @taoka_toshiaki

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

タグ

100, 3000, 4, 8, Python, tensorflow, コード, これ, サンプル, ゼーロ, それぞれ, ちょ, データ, ディレクトリ, テスト, テンソル, どれぐらい, ヒーロー, ホント, モデル, , , 事情, , 人工, 今日, 作り方, 修正, 分類, 判別, 判定, 半ば, 原因, , 大荒れ, 学習, 実行, 必要, 機械, 正直, 無能, , 画像, 簡単, 結果, 自分, 設置, 階層, , 駄目,

Photo by cottonbro on Pexels.com

新着記事が表示されるWPの非公式プラグインを作りました。

2022.07.24

Logging

こんにちは、朝の2時に起床し4時頃、ウォーキング。そして朝食後、コードを書いてその後、仮眠をとって今、記事を書いています。かなり不規則な生活リズムです😩、今日からは元の生活リズムへ戻そうと思っています。さて、WordPressの非公式プラグインを自前で制作致しましたのでお裾分けです。

今回はシングルページの記事の下に新着記事が表示されてカルーセルで動くというプラグインです。

新着記事が表示されるWPの非公式プラグインを作りました。

アイキャッチ画像の大きさなどはご自身でソースコードを変更してご使用ください。尚、アイキャッチ画像がないには対応しておりません。

いらないパラメーターを投げている所があります。そちらは御自身で修正をお願いします、因みに今は新着記事5記事を取得している感じです、そちらも変更はソースコードを修正してお使いいただければと思っています。

ダウンロードのURLは下記になります。

https://zip358.com/plugin/new-post.zip

追伸:カールセルUIはSlickを使用しております。

著者名  @taoka_toshiaki

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

タグ

2, 358, 4, 5, com, https, plu, url, WordPress, wp, www, zip, あい, ウォーキング, お使い, お裾分け, お願い, かなり, カルーセル, キャッチ, コード, ご自身, シングル, ソース, そちら, ダウンロード, パラメーター, プラグイン, ページ, リズム, , 下記, 不規則, , 今回, 今日, 仮眠, 使用, 修正, , 公式, 制作, 取得, 変更, 対応, , 感じ, , 新着, , 朝食, 生活, 画像, 自前, 自身, 表示, 記事, 起床,

Photo by Глеб Коровко on Pexels.com

E_ERROR | E_WARNING | E_PARSE🐸

2022.06.15

Logging

おはようございます。果報は寝て待て😌。果報(かほう)を家宝だと思い込んでいました・・思い込みって怖いですね。

先日、記載した「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」ですがphp.iniのワーニング(警告表示)が問題でした。そこをE_ERROR | E_WARNING | E_PARSEに修正してあげることで難無く解決済みです。JSONの返却の際に警告表示も返却され正しい値が取得出来ていなかったことに問題があったようです。

因みにこの頃は警告表示も意識してコードを書く機会が多くなりました。その理由はそちらの方がスマートかなって思うからです。数式が美しいと思うように綺麗なコードというものはあります。まだまだ、プログラムのコードは美しく書けませんが意識することによりそれに近づける事は大事になると思っています。

尚、php.iniは大体、/etc/php.iniにあります?、無ければコマンドラインからかコードに下記のように記載してphp.iniは何処に保存しているか調べてみてください。

php -r "echo phpinfo();" | grep "php.ini"
<?php
echo phpinfo();

著者名  @taoka_toshiaki

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

タグ

Error, etc, ini, json, parse, php, WARNING, かほう, コード, こと, スマート, そこ, そちら, それ, プログラム, もの, レスポンス, ワーニング, , 修正, , 先日, 取得, 問題, 大事, 大体, 失敗, 家宝, 意識, 数式, , 更新, 果報, 機会, 理由, 綺麗, 表示, 解決済み, 記載, 警告, 返却, 返答, , ,

Photo by Brett Sayles on Pexels.com

Decentralized Autonomous Organizationの世界を語っている動画が良質!!

2022.06.04

Logging

おはようございます。記事の修正するのはやはり朝にやるべきですね。

先週の土曜日にツイートしたDAO(ダオ)の事を詳しく簡潔に説明している伊藤穰一さんです。IT業界ではその名を知らない人はいないじゃないかって思っている。

web3とは | DAOがなぜ注目されているのか?

なぜ、この人がデジタル庁のTOPにならなかったのか・・・。意味がわかりません、ある問題で辞任しただけで本人に責任はあまりないと思っています。日本が変わらない理由はそういうところにあるじゃないかって思います。特に政府機関は変わろうとしないですよね、これは政治だけではなく銀行とかもそんな感じですよね。今までの方針を変更するのがとても遅すぎる気がします。

まぁそんな事は置いといてDAO(分散型自律組織)に徐々に変わっていくと思います、そういうふうに世の中を変えていこうとしている流れが出てきているので、そうなっていくかなって思います。

著者名  @taoka_toshiaki

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

タグ

Autonomous, DAO, Decentralized, IT, Organization, TOP, これ, ダオ, ツイート, デジタル, ところ, ふう, , 世界, , , , 伊藤穰一, 修正, 先週, 分散, 動画, , 問題, 土曜日, 変更, 意味, 感じ, 政府, 政治, 方針, 日本, , 本人, 業界, 機関, , 理由, 簡潔, 組織, 自律, 良質, 記事, 説明, 責任, 辞任, 銀行,

Photo by Archie Binamira on Pexels.com

先を読む。未来を読む。

2022.05.31

Logging

おはようございます。5月も最後ですね、今年は梅雨入りしても即、梅雨明けするじゃないかって思っています。それがぐらい晴天の日が多い気がします。

今日のお題は「先を読む。未来を読む。」です、この力は何だか人より自分は強い気がします。そんな自分が今、未来はこうなると思っているのは、プログラマーという職は数十年後にはなくなっている気がする。コードはAIが自然言語から理解し生成してくれるので、AIが書いたコードを修正する人や正しく機能しているかなどを修正する人が必要になるぐらいなる。

デジタルの価値は限りなくZEROに近くなると思います。誰でもサービスが創り出せる世の中が到来する。これからはプラットフォームやコミュニティーを作れる人のほうが将来性があると思っていて、デジタルを知っていてそれを活かしつつ人との繋がりを提供するそういう環境やサービスを提供するほうが良いと考えている。昔も今も人は欲している。特に同じ考えを持った人々と語り合いたいと思っているので、デジタルを入り口にそういう環境を提供する人が生き残っていくだろうと。

banvox – open your eyes (feat. core mc)

自動運転だけが走る世の中になる、これは数十年先の話だけど恐らくそうなる。そうなったら殆ど交通事故がなくなるので、交通事故が重大事件のように放送されるだろうな。

自分たちが生きているうちに若返りが出来るようになる。たぶん、数年後には若返りの方法は発見され治療法が確立されるのに数年かかると思うけど、若返りは可能になると思います。それも注射一本で効果が現れると思います。これで世の中、大きく変わる特に日本は後期高齢者社会だったものが・・・、大きく変わると思います。

自分が考える未来を箇条書きに書いてみました…。こんなの当たらないよとか、失笑するかも知れませんが、多分これ。

著者名  @taoka_toshiaki

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

タグ

5, AI, ZERO, コード, コミュニティー, これ, サービス, それ, デジタ, デジタル, プラットフォーム, プログラマー, , , , 人々, , 今年, 今日, 価値, 修正, , 到来, , 将来性, 必要, 提供, 数十, , , 晴天, 最後, 未来, 梅雨入り, 梅雨明け, 機能, , 理解, 環境, 生成, , 自分, 自然, 言語, , ,

Photo by Markus Spiske on Pexels.com

開発環境はクラウドに持つべきか?いなか?悩ましすぎる問題🤔。

2022.05.29

Logging

おはようございます。

今まで開発環境はオンプレでしていましたが、外で開発した時やパソコンを買い替えるとデータなどをそのたびに移行しないといけなくなるという手間が発生したり、今ではあまり起きないのですがデータが消えたりする場合もありますよね。そう思うともうクラウドに開発データを移行しようかなって思っています。

MacBook Pro 14" M1 Pro Review For Programming

いろいろ調べた結果、開発データは手持ちのデータを使用してクラウドを使用する方法はあったのだけども全部クラウドで完結できる方法はイマイチ・・・、クラウドPCの中で開発するしか無さそうですね。実際、クラウドPCを使用したことがないのでなんとも言えないですが、それだと遅延などが発生しそう。

よってこの方法がベストかと思いました。

  1. 個人開発なのでローカルのデータをクラウドサーバーに転送後、削除。
  2. VScode拡張機能のsftpをインストールしてリモートでサーバーに接続。
  3. リモート側のデータを直接修正する。
  4. デプロイしたい場合はデプロイしたいサーバーへ転送。

因みにこんなサービスあるにはあります。githubを使用したりして・・・。

著者名  @taoka_toshiaki

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

タグ

PC, SFTP, VScode, いなか, いまいち, いろいろ, インストール, オン, クラウド, こと, サーバー, それ, たび, データ, パソコン, プレ, ベスト, リモート, ローカル, , , 使用, 修正, 個人, 全部, 削除, 問題, 場合, , 完結, 実際, 手持ち, 手間, 拡張, 接続, 方法, , 機能, 環境, 発生, 移行, 結果, 転送, 遅延, 開発,

e-taxが非情に使いづらいことが分かって戸惑ったので!?

2022.02.16

Logging

おはようございます、今日も寒いですね、
寒いながらも日中は徐々に暖かさを感じるようになってきました。

さて、今日から確定申告が始まります、今回はe-taxを使って入力して見ようと思ったのですが何だか素人では難しいUI(ユーザーインターフェース:見た目)で、入力するのが何だか面倒くさいなと感じたので本日、市役所で教えてもらいながら手続きします。

こんなに使いづらいから、freeeというサービスが成り立つに違いなということが、ヒシヒシと感じました。月に980円支払って収支がインターネット上で出来て楽天銀行や地方銀行などとも連携しているので、仕事、会社用の口座を作ってしまえば何も管理せずに確定申告もボタンポチれば簡単にできてしまうというのは、盲点ですよね(多少の修正は必要かとも思います)。小さな会社では経理を雇わなくてもfreeeがあれば殆どの手間は省けるのかなって思いました。

【freee会計使い方:確定申告編1】年間の収支入力

こういう事から見直していくと結構、経費が浮くと自分は思っています、他にも今はいろいろなDXサービスがあり、探すとサブスクリプション(月額)で契約できるアプリやWEB(クラウド)サービスが沢山ありますので是非チェックしてみてください。

予約フォームを10分で作る / SELECTの予約システム

余談:デジタル庁が出来たからe-taxも見直されそうな気がします、もし一新したらfreeeなんて必要なくなるかもしれませんけどね・・・、あまり期待はしていませんが。

著者名  @taoka_toshiaki

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

タグ

980, e-tax, freee, https, UI, www, youtube, インターネット, インターフェース, こと, サービス, ボタン, ぽち, ユーザー, 今回, 今日, 仕事, 会社, , 修正, 入力, 収支, 口座, 地方, 多少, 市役所, 必要, 手続き, 手間, 日中, , 本日, 楽天銀行, 殆ど, 盲点, 確定申告, 管理, 簡単, 素人, 経理, 見た目, 連携, 違い, 銀行, 非情,

NewsPicksのSNSアイコンの配置が気になるのは自分だけではないと思うのだけども?

2022.01.25

Logging

高知県ではどんより曇り空の朝で若干テンション下がりますよね。今日も良い仕事に出会えれば良いのになと思っています。

さて「NewsPicksのSNSアイコンの配置が気になるのは自分だけではないと思うのだけども?」というタイトル通りSNSアイコンの配置がとても気になります。SNSアイコンの配置が縦並びになっていてそれも微妙に重なっているのですね😌、これで良いのか分かりませんが自分が勤めていた会社だったらリリース前に誰かが異論を唱えるような問題かと思います。

NewsPicksのSNSアイコンの配置が気になる….

ニューズピックスのコーダーさんで、こんなレベルの仕事しているのかと幻滅してしまいますね。これでお給料を貰っているのかよとやるせない気持ちになります。この見栄えの修正対応はそれほど難しいものではないと思いますが、中のコーダーさん、気にしていないのか昔のブランチを使用して書いているのかよく分かりませんが、早く直してほしいものです、凄く気になります。

因みに自分は過去に負の遺産を何個か投入して会社を辞めていますが負の遺産の殆どは上の指示通りの仕様です、一番ひどいのはログが永遠に残っていくという仕様です。

著者名  @taoka_toshiaki

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

タグ

, com, https, newspicks, SNS, UCDa-sLfw, watch, www, youtube, アイコン, お給料, コーダー, これ, それ, タイトル, テンション, ニュース, ピックス, もの, リリース, レベル, , 今日, 仕事, 会社, 修正, 問題, 対応, 幻滅, 微妙, 曇り空, , , 気持ち, 異論, 自分, 若干, 見栄え, 誰か, 配置, 高知県,

TensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで。

2021.06.14

Logging

ラズベリーパイ3にTensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで軽く字幕で紹介した動画が下記になります。インストール方法は公式に書かれた通りに実行すれば上手くインストール出来るはずです。比較的に低スペックのマシンでも動くはずなのです、どうしてもエラーが出て動かないようであれば、それはおそらくあなたのマシンに問題があります?。

テンソルフローライト

動画でハマりどころがあるという事をブログで解説しますと書いていますので、そのハマりどころを解説します。。。

TensorFlow Lite(テンソルフロー ライト)で動かす場合、label_image.pyの修正箇所が公式に書かれていると思いますが・・・?、ここで自分がハマり、実行するコマンドを打ってもパラメーターがどうたらというエラーが出力されて動きませんでした。結論から言うと原因はマスターのソースコードにあったのです。修正を要領よく修正しては駄目だった。直接的な原因となったのは–num_threadsのパラメーターを投げていたのが原因でした。

公式では下記の内容に変更しなさいと書かれています。tf.lite.Interpreterの部分を置き換えればよいだろうと思っていたのです。

interpreter = tf.lite.Interpreter(model_path=args.model_file)

マスターのソースコードは若干、公式とは違ってこのようなソースコードになっていました。

  interpreter = tf.lite.Interpreter(
      model_path=args.model_file, num_threads=args.num_threads)

渡す引数が一つ増えていたので、自分はそれを残していたのですが・・・?、これでは動かないのです。そう・・num_threads=args.num_threadsは削除してあげないとモデルを動かすことが出来なかったのです。それがわからず渡すパラメーターが駄目なんだとか思って四苦八苦していました。

自分みたいな修正方法している方も中にはいると思ったので、今回、初心者がハマった沼を紹介しました?。

著者名  @taoka_toshiaki

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

タグ

, image, label, LITE, py, tensorflow, あなた, インストール, エラー, コード, ここ, コマンド, スペック, ソース, それ, テンソル, はい, パス, パラメーター, フロー, ブログ, マシン, マスター, モデル, ライド, ラズベリー, 下記, , 修正, 公式, 出力, 動画, 原因, 問題, 場合, 字幕, 実行, 方法, 箇所, 紹介, 結論, 自分, 解説, 通り,

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。

2020.11.02

Logging

WordPressの公式ウィジェットカレンダー末日がズレている?ので直した。直した箇所はこちら変数名に$ooooと書いている部分が今回修正した箇所です。修正したファイルはWordPressのインクルードフォルダにある。ジェネラルテンプレートぴーえぃちーぴー(general-template.php)

wp-includes\general-template.php 

このファイルを直しました。コアファイルなので次期UPDATEで修正されるかとは思いますが、それまではこちらの修正でなんとかなるさ?!

因みに何故、$ooooにしたのかは、お???の???という土佐弁からです。ファイルの中にget_calendar(げっとカレンダー)という関数があるのでそちらを修正しています。原因は下記です。
gmdateというものを使用している所をローカルサーバーの時間で対応しました、さくらレンタルサーバーのタイムゾーンは日本時間を指しています。若干の誤差はあるけれど酷い誤差ではないのでdateで大丈夫そうです。

要は日付の末日が正確に取れていないことが原因みたいです?
はやく修正してくれることを願っています。

function get_calendar( $initial = true, $echo = true ) {
	global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;

	$key   = md5( $m . $monthnum . $year );
	$cache = wp_cache_get( 'get_calendar', 'calendar' );

	if ( $cache && is_array( $cache ) && isset( $cache[ $key ] ) ) {
		/** This filter is documented in wp-includes/general-template.php */
		$output = apply_filters( 'get_calendar', $cache[ $key ] );

		if ( $echo ) {
			echo $output;
			return;
		}

		return $output;
	}

	if ( ! is_array( $cache ) ) {
		$cache = array();
	}

	// Quick check. If we have no posts at all, abort!
	if ( ! $posts ) {
		$gotsome = $wpdb->get_var( "SELECT 1 as test FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" );
		if ( ! $gotsome ) {
			$cache[ $key ] = '';
			wp_cache_set( 'get_calendar', $cache, 'calendar' );
			return;
		}
	}

	if ( isset( $_GET['w'] ) ) {
		$w = (int) $_GET['w'];
	}
	// week_begins = 0 stands for Sunday.
	$week_begins = (int) get_option( 'start_of_week' );

	// Let's figure out when we are.
	if ( ! empty( $monthnum ) && ! empty( $year ) ) {
		$thismonth = zeroise( intval( $monthnum ), 2 );
		$thisyear  = (int) $year;
	} elseif ( ! empty( $w ) ) {
		// We need to get the month from MySQL.
		$thisyear = (int) substr( $m, 0, 4 );
		// It seems MySQL's weeks disagree with PHP's.
		$d         = ( ( $w - 1 ) * 7 ) + 6;
		$thismonth = $wpdb->get_var( "SELECT DATE_FORMAT((DATE_ADD('{$thisyear}0101', INTERVAL $d DAY) ), '%m')" );
	} elseif ( ! empty( $m ) ) {
		$thisyear = (int) substr( $m, 0, 4 );
		if ( strlen( $m ) < 6 ) {
			$thismonth = '01';
		} else {
			$thismonth = zeroise( (int) substr( $m, 4, 2 ), 2 );
		}
	} else {
		$thisyear  = current_time( 'Y' );
		$thismonth = current_time( 'm' );
	}

	$unixmonth = mktime( 0, 0, 0, $thismonth, 1, $thisyear );
	$last_day  = gmdate( 't', $unixmonth );
	$oooothisyear  = date( 'Y', $unixmonth  );
	$oooolast_day  = date( 't', $unixmonth );
	$oooothismonth = date( 'm' , $unixmonth);

	// Get the next and previous month and year with at least one post.
	$previous = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date < '$thisyear-$thismonth-01'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date DESC
			LIMIT 1"
	);
	$next     = $wpdb->get_row(
		"SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
		FROM $wpdb->posts
		WHERE post_date > '$oooothisyear-$oooothismonth-{$oooolast_day} 23:59:59'
		AND post_type = 'post' AND post_status = 'publish'
			ORDER BY post_date ASC
			LIMIT 1"
	);

	/* translators: Calendar caption: 1: Month name, 2: 4-digit year. */
	$calendar_caption = _x( '%1$s %2$s', 'calendar caption' );
	$calendar_output  = '<table id="wp-calendar" class="wp-calendar-table">
	<caption>' . sprintf(
		$calendar_caption,
		$wp_locale->get_month( $thismonth ),
		gmdate( 'Y', $unixmonth )
	) . '</caption>
	<thead>
	<tr>';

	$myweek = array();

	for ( $wdcount = 0; $wdcount <= 6; $wdcount++ ) {
		$myweek[] = $wp_locale->get_weekday( ( $wdcount + $week_begins ) % 7 );
	}

	foreach ( $myweek as $wd ) {
		$day_name         = $initial ? $wp_locale->get_weekday_initial( $wd ) : $wp_locale->get_weekday_abbrev( $wd );
		$wd               = esc_attr( $wd );
		$calendar_output .= "\n\t\t<th scope=\"col\" title=\"$wd\">$day_name</th>";
	}

	$calendar_output .= '
	</tr>
	</thead>
	<tbody>
	<tr>';

	$daywithpost = array();

	// Get days with posts.
	$dayswithposts = $wpdb->get_results(
		"SELECT DISTINCT DAYOFMONTH(post_date)
		FROM $wpdb->posts WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
		AND post_type = 'post' AND post_status = 'publish'
		AND post_date <= '{$oooothisyear}-{$oooothismonth}-{$oooolast_day} 23:59:59'",
		ARRAY_N
	);

	if ( $dayswithposts ) {
		foreach ( (array) $dayswithposts as $daywith ) {
			$daywithpost[] = (int) $daywith[0];
		}
	}

	// See how much we should pad in the beginning.
	$pad = calendar_week_mod( gmdate( 'w', $unixmonth ) - $week_begins );
	if ( 0 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td colspan="' . esc_attr( $pad ) . '" class="pad">?</td>';
	}

	$newrow      = false;
	$daysinmonth = (int) gmdate( 't', $unixmonth );
	$oooodaysinmonth = (int) date( 't', $unixmonth );

	for ( $day = 1; $day <= $oooodaysinmonth; ++$day ) {
		if ( isset( $newrow ) && $newrow ) {
			$calendar_output .= "\n\t</tr>\n\t<tr>\n\t\t";
		}
		$newrow = false;

		if ( current_time( 'j' ) == $day &&
			current_time( 'm' ) == $thismonth &&
			current_time( 'Y' ) == $thisyear ) {
			$calendar_output .= '<td id="today">';
		} else {
			$calendar_output .= '<td>';
		}

		if ( in_array( $day, $daywithpost, true ) ) {
			// Any posts today?
			$date_format = gmdate( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
			/* translators: Post calendar label. %s: Date. */
			$label            = sprintf( __( 'Posts published on %s' ), $date_format );
			$calendar_output .= sprintf(
				'<a href="%s" aria-label="%s">%s</a>',
				get_day_link( $thisyear, $thismonth, $day ),
				esc_attr( $label ),
				$day
			);
		} else {
			$calendar_output .= $day;
		}

		$calendar_output .= '</td>';

		if ( 6 == calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins ) ) {
			$newrow = true;
		}
	}

	$pad = 7 - calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins );
	if ( 0 != $pad && 7 != $pad ) {
		$calendar_output .= "\n\t\t" . '<td class="pad" colspan="' . esc_attr( $pad ) . '">?</td>';
	}

	$calendar_output .= "\n\t</tr>\n\t</tbody>";

	$calendar_output .= "\n\t</table>";

	$calendar_output .= '<nav aria-label="' . __( 'Previous and next months' ) . '" class="wp-calendar-nav">';

	if ( $previous ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev"><a href="' . get_month_link( $previous->year, $previous->month ) . '">? ' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $previous->month ) ) .
		'</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-prev">?</span>';
	}

	$calendar_output .= "\n\t\t" . '<span class="pad">?</span>';

	if ( $next ) {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next"><a href="' . get_month_link( $next->year, $next->month ) . '">' .
			$wp_locale->get_month_abbrev( $wp_locale->get_month( $next->month ) ) .
		' ?</a></span>';
	} else {
		$calendar_output .= "\n\t\t" . '<span class="wp-calendar-nav-next">?</span>';
	}

	$calendar_output .= '
	</nav>';

	$cache[ $key ] = $calendar_output;
	wp_cache_set( 'get_calendar', $cache, 'calendar' );

	if ( $echo ) {
		/**
		 * Filters the HTML calendar output.
		 *
		 * @since 3.0.0
		 *
		 * @param string $calendar_output HTML output of the calendar.
		 */
		echo apply_filters( 'get_calendar', $calendar_output );
		return;
	}
	/** This filter is documented in wp-includes/general-template.php */
	return apply_filters( 'get_calendar', $calendar_output );
}

著者名  @taoka_toshiaki

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

タグ

calendar, general-template, GET, gmdate, oooo, php, UPDATE, WordPress, wp-includes, インクルード, ウィジェット, カレンダー, コア, こちら, サーバー, さくら, ジェネラル, ズレ, そちら, それまで, タイム, テンプレート, ファイル, フォルダ, もの, レンタル, ローカル, 下記, , 今回, 使用, 修正, 公式, 原因, 土佐弁, 変数, 対応, , 時間, 末日, 次期, 箇所, 部分, 関数,

ミラーワールド「メタバース」とAI!ええっ!?

2020.11.01

Logging

Softbank Group, NVIDIA CEOs on What's Next for AI (Courtesy of SoftBank World 2020)

二人が語っている動画を視聴して数年後には彼らが語っていることは全て具現化されていくだろうなと思いました。その中で一番、興味深い話はAI(人工知能)がミラーワールド=メタバース(仮想現実世界)を作りその中でものや機械を生産やシュミレーションを行い、人工知能が試した結果を現実世界で同じように取り入れるという事です。これを見て凄く違和感を感じてしまいました…。

これってリアルワールドと思っている現実世界も実はシュミレーションの中かもしれないという事、まさに映画、マトリックスの世界だなと感じました。

映画『マトリックス』製作20周年特別予告 2019年9月6日(金)期間限定上映

メタバースの世界とは別にやはりAIがプログラミングコードを生成するということはそれほど難しくない、近い将来、複雑なプログラミングも行えるようになるのだなと感じました。これからITエンジニアを目指す方はコード書くよりAIが書き出したコードを修正できる能力の在るひとが必要になるかと思われます。そして数年後にはノーコードでいろいろな事がAIに置き換わるのだなと、それほどITエンジニアはいらないですね。

AIは脅威だと思います、全然大丈夫とは思えない、AIを作る側はこれからも安泰かもしれないけれど、一般人は間違いなく今後数年で仕事はなくなると思います。皆がクリエイティブなことが出来るわけでもないのだから、これはかなり大変な時代になると思います。こういう動きは大企業から始まります、お気をつけて就職活動や転職活動を行ったほうが良さそうです。1時間ほどの動画ですがこれからどう社会を変えていくのかが分かる動画です見る価値ありかな!?。

著者名  @taoka_toshiaki

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

タグ

AI, IT, エンジニア, コード, こと, これ, シュミレーション, ノー, バース, ひと, プログラミング, マトリックス, ミラー, メタ, リアル, ワールド, 世界, , , 二人, 人工, 仮想, 修正, 全て, 具現, 動画, 将来, 彼ら, 必要, , , 映画, 機械, 現実, 生成, 生産, 知能, 結果, 能力, 複雑, 視聴, , 違和感,

Yahoo!ニュースをPythonで取得するできました(´・ω・`)v

2020.05.01

Logging

早朝、YOUTUBEライブ配信で行ったものはタイトルとリンクが若干異なるところがあったので、修正したソースコードを貼っときます。Python言語少しずつ 少しずつ理解できてきた。

書き方が慣れればPHPより書くのは楽かな。$の記号がPHPの変数を書く場合、絶対必要になるけどPythonは書かなくて良いからね。

import requests
from bs4 import BeautifulSoup
r = requests.get("https://news.yahoo.co.jp/")
soup = BeautifulSoup(r.content, "html.parser")
#ニュース一覧のテキストのみ抽出
f = open("link.csv",mode = "a")
for t,a in zip(soup.find_all("div", "newsFeed_item_title"),soup.find_all("a", "newsFeed_item_link")):
    f.write(t.text + "," + a.get('href') + "\n")
f.close()

著者名  @taoka_toshiaki

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

タグ

4, BeautifulSoup, bs, co, content, CSV, find, For, from, GET, html, https, import, in, jp, link, mode, News, open, parser, php, Python, quot, requests, soup, , Yahoo, youtube, zip, コード, ソース, タイトル, テキスト, ところ, ニュース, もの, ライブ, リンク, 一覧, 修正, 取得, 場合, 変数, 必要, 抽出, 早朝, 書き方, 理解, 若干, 言語, 記号, 配信,

WEBお問い合わせフォームのお値段はいったい幾ら?

2020.01.17

Logging

WEBお問い合わせフォームのお値段はいったい幾らなのか?
堀江貴文氏はデジタルの値段は限りなくゼロに近くなると言っていたけど、無料のWEB申し込みフォームやお問い合わせフォームはある。自分もお問い合わせフォームの簡易的な物を作ってみましたのでファイルをアップしますね。

テンプレートエンジンとしてtwig3.0を使用しています、そのため動作環境はPHP7.2以上になります。ソースコードの可変は行って構いません、またこのソースコードの動作保証などは致しません。WEB担当者様が確認を行いバグ等があれば修正を行ってください。

尚、Composerでtwigをインストール済みという事が前提となります。また送信部分やエラー処理についてはご自身で機能の追加が必要となります。


サンプルページ
https://zip358.com/tool/request/

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>お問い合わせ</title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"
        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
        integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
        integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
        crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
        integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
        crossorigin="anonymous"></script>
    <script src="js/common.js"></script>
    <style>
        .jumbotron {
            background-color: #2bd4d0;
            color: #fff;
        }

        .btn-primary {
            color: #fff;
            background-color: #2bd4d0 !important;
            border-color: #2bd4d0 !important;
        }

        .input-group-text {
            background-color: #2bd4d0;
            border: 1px solid #2bd4d0;
        }
    </style>
</head>

<body>
    <div class="jumbotron jumbotron-fluid">
        <div class="container">
            <h1 class="display-4">お問い合わせ</h1>
            <p class="lead">必須項目を入力し送信ボタンを押してください。<br>DEMOのため送信はできません</p>
        </div>
        <div class="alert alert-warning" id="error_sendmail" role="alert">
        </div>
    </div>
    <form action="index.php" method="POST">
        <div class="container">
            <div class="row">
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text">お名前[必須]</span>
                    </div>
                    <input type="text" name="name" class="form-control" id="name" placeholder="name" value="{{name}}">
                </div>
                <div class="alert alert-warning" id="error_name" role="alert">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text">メールアドレス[必須]</span>
                    </div>
                    <input type="email" name="email" class="form-control" id="email" placeholder="name@example.com"
                        value="{{email}}">
                </div>
                <div class="alert alert-warning" id="error_email" role="alert">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text" id="basic-addon1">@</span>
                    </div>
                    <input type="text" name="twitter_account" class="form-control" placeholder="twitter account"
                        aria-label="twitter account" aria-describedby="basic-addon1" value="{{twitter_account}}">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text">お問い合わせ内容[必須]</span>
                    </div>
                    <select name="meun" class="form-control" id="exampleFormControlSelect1">
                        {% for selectop in meun_option %}
                        <option value="{{selectop.value}}" {{ selectop.value == selectoped ? " selected":"" }}>
                            {{selectop.name}}</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="alert alert-warning" id="error_meun" role="alert">
                </div>
                <div class="input-group">
                    <div class="input-group-prepend">
                        <span class="input-group-text">コメント[必須]</span>
                    </div>
                    <textarea name="comment" rows="10" class="form-control" aria-label="コメント">{{comment}}</textarea>
                </div>
            </div>
            <div class="row">
                <footer class="blockquote-footer">
                    <small class="text-muted">
                        ご自由に記入ください。
                    </small>
                </footer>
            </div>
            <div class="alert alert-warning" id="error_comment" role="alert">
            </div>
            <button type="submit" class="mt-2 btn btn-primary btn-lg btn-block">送信する</button>
        </div>
    </form>
</body>

</html>
<?php
session_start();
require __DIR__ . '/vendor/autoload.php';
use Twig\Environment;
use Twig\Loader\FilesystemLoader;

$loader = new FilesystemLoader(__DIR__.'/templates');
$twig = new Environment($loader);
$meun_option = json_decode(file_get_contents("js/select.json"));

$form = ["name","email","twitter_account","meun","comment"];
$data = [];

if($_POST){
	foreach($_POST as $key=>$val){
		$_SESSION[$key] = strip_tags($val);
	}
}
if($_SESSION){
	foreach($_SESSION as $key=>$val){
		$_SESSION[$key] = strip_tags($val);
	}
}

foreach($form as $key => $val){
	$data[$val] = $_SESSION[$val]?$_SESSION[$val]:"";
}

extract($data);

print $twig->render('index.html.twig',["name"=>$name,"email"=>$email,"twitter_account"=>$twitter_account,"selectoped"=>$meun,"comment" => $comment,"meun_option"=>$meun_option]);

著者名  @taoka_toshiaki

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

タグ

3.0, 358, 7.2, com, Composer, DOCTYPE, gt, html, https, lt, php, request, tool, Twig, web, www, zip, アップ, インストール, エラー, エンジン, お問い合わせ, コード, ご自身, サンプル, ゼロ, ソース, ため, デジタル, テンプレート, バグ, ファイル, フォーム, ページ, , 使用, 保証, 修正, 値段, 処理, 前提, 動作, 堀江貴文, 幾ら, 必要, 担当者, 機能, 無料, , 環境, 確認, 簡易的, 自分, 追加, 送信, 部分,

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法。

2018.11.08

Logging

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法
10年ぐらいまえのコードを見直して改善したコードが下記になります。
10年前はクラスを使わない方法で構築したのだけど、今回はクラスの概念を
使って構築。ここ何年かで自分のコーディングの技術は上がっているかといえば
そうでもないですが、昔よりかは技術の幅は広がっていると思いたいw
※qiita日付は数年前にUPしたのですけど、コード自体は10年前のコードです。

追記:2022/10/08 修正:詳しくはコチラ
https://qiita.com/question909/items/8f1df9b62ab4fba76243

<?php
//5分刻みに対して有効な無限クローン 処理が負荷の場合どうなるかは知りません。
date_default_timezone_set('Asia/Tokyo');
class cron{

    public function d_m($obj)
    {
            if($obj->m==="*")return true;
            if(preg_match("/,/",$obj->m))return $this->comma($obj->m,date("m"));
            if((int)$obj->m === (int)date("m"))return true;

            return false;
    }

    public function d_d($obj)
    {
            if($obj->d==="*")return true;
            if(preg_match("/,/",$obj->d))return $this->comma($obj->d,date("d"));
            if((int)$obj->d === (int)date("d"))return true;

            return false;
    }

    public function d_H($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->H)){
                $H = explode("/",$obj->H);
                if((int)$H[1]>0 && ((int)date("H") % (int)$H[1])===0)return true;
            }else{
                if($obj->H==="*")return true;
                if(preg_match("/,/",$obj->H))return $this->comma($obj->H,date("H"));
                if((int)$obj->H === (int)date("H"))return true;

            }
            return false;
    }

    public function d_i($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->i)){
                $i = explode("/",$obj->i);
                if((int)$i[1]>0 && ((int)date("i") % (int)$i[1])===0)return true;
            }else{
                if($obj->i==="*")return true;
                if(preg_match("/,/",$obj->i))return $this->comma($obj->i,date("i"));
                if((int)$obj->i === (int)date("i"))return true;

            }
            return false;
    }

    //曜日 0=日曜日 6=土曜日
    public function d_w($obj)
    {
            if((int)$obj->w[date("w")]===1)return true;
            return false;
    }

    public  function comma($c="",$t=""){
        if($c==="")return false;
        if($t==="")return false;
        $flg = false;
        foreach(explode(",",$c) as $cc){
            if((int)$cc===(int)$t)$flg = true;
        }
        return $flg;
    }


    public function d_command($obj){
        if($obj->command){
            exec($obj->command . " > /dev/null &");
        }
        return true;
    }

}
if ($argv[1]) {
   $filename = $argv[1];
    if(is_file($filename)){
        $jsn = json_decode(file_get_contents($filename));
        $cron = new cron();
        try {
            foreach($jsn as $obj){
                if($cron->d_m($obj)){
                    if($cron->d_d($obj)){
                        if($cron->d_H($obj)){
                            if($cron->d_i($obj)){
                                if($cron->d_w($obj)){
                                    $cron->d_command($obj);//波動拳{{{{
                                }
                            }
                        }
                    }
                }
            }
        } catch (\Throwable $th) {
            print $th->getMessage();
        }
    }
}

著者名  @taoka_toshiaki

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

タグ

08, 10, 2022, 39, 5, Asia, class, cron, crontab, date, default, function, if, lt, obj, php, public, qiita, set, timezone, Tokyo, UP, , クラス, クローン, クロン, コーディング, コード, ここ, コチラ, サーバー, さくら, タブ, まえ, レンタル, 下記, 今回, 何年か, 修正, 処理, 分刻み, 制限, 場合, , 技術, 改善, , 方法, 日付, , 有効, 概念, 構築, 無限, 自体, 自分, 負荷, 追記,

「jetpack」と「Japanese AutoTag」の相性が悪くて公開及び更新出来なくなる不具合について2

2018.03.10

Logging


jetpackのプラグインが度々更新されその都度、過去記事の対応するのは面倒くさいので
根本的なJapanese AutoTagのプラグインを修正すればよいのではないかと思い
インフルエンザB型療養中にプログラムの修正を行いました。
ファイル名:japanese-autotag.phpの267行目?400行目ぐらいのアレやコレをキャスト(string)するように追加を行いました。
この事によってエラー500を出力されることもなくなりました。

Uncaught exception ‘Exception’ with message ‘Serialization of ‘SimpleXMLElement’ is not allowed’

著者名  @taoka_toshiaki

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

タグ

267行目, 400行目, Exception’ with message, Japanese AutoTag, japanese-autotag.php, jetpack, Serialization of, SimpleXMLElement’ is not allowed’, Uncaught exception, アレ, インフルエンザB型療養中, エラー500, キャスト, コレ, ファイル名, プラグイン, プログラム, 修正, 追加, 都度,

ios9.2.1がリリースした、即インストールするべし!?なぜ?

2016.01.20

Logging


ios9.2.1がリリースした、即インストールするべし!?なぜ?
その訳はパーセンテージで残量を表示している方はお気づきだと思いますが、残量にバグがあり
バッテリーを消費しても一向に残量が減らないというバグがあるからです。
今日の朝、ios9.2.1のアップデートを行ったところバグが解決されました。アップデート前は
残量が90%だったものがアップデート後は65%まで減りました。
今回のios9.2.1のアップデートはバグの修正とセキュリティーのアップデートが主になります。
ちなみにios10ではLTEより100倍高速通信ができるLi-Wiの機能が搭載される可能性があるらしいです。
100倍高速通信・・・通勤時に動画などを見たりする人には需要がありそうですが・・・
そう使わない自分みたいなタイプには宝の持ち腐れみたいな気がします。
それよりもLTEの通信料金を値下げしてもらいたいものです。

著者名  @taoka_toshiaki

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

タグ

10, 100, 65, 9.2.1, 90, iOS, Li-Wi, LTE, アップデート, インストール, セキュリティー, それ, タイプ, ところ, パーセンテージ, バグ, バッテリー, もの, リリース, , 今回, 今日, 修正, 値下げ, 動画, 可能性, 宝の持ち腐れ, 搭載, 料金, , , 機能, 残量, , 消費, 自分, 表示, 解決, , 通信, 通勤, 需要, 高速,

Notepad++からNetBeansにエディタを変更しました。

2015.06.08

Logging


Notepad++からNetBeansにエディタを変更しました。何故、変更したかというとこちらの方が開発しやすいから痒いところに手が届いている感じがします。ただ、良いところばかりでもないのです、無料ですからあまり言えないですが若干、起動が重たいと感じます。また、プロジェクトを設定するときに既存ファイルやリモート設定でプロジェクトを作ろうとするとファイルが多い場合動作が重いです。あとは、補完機能もありますしいろいろと便利な機能が備わっていますので総合的にはかなり使えるIDEです。今後、notepad++はちょっとした修正の時に使用し、ガリガリとコードを書く場合はNetBeansを使用すると思っています。ちなみに、Macにも同様にインストールしてみた結果、Macのほうが相性が良いように感じました。JavaってMacの方が相性が良いのかぁ?
「いろいろとしたい事があります、Webでちょっとしたものを作りたい。Androidアプリも作りたいとか、Visual Studioでちょっとしたものを作りたいとか・・・やりたい事はいっぱいあるものの。基本、ひとりで動いているので捗らないのです。やはりそう言う仲間がいれるとぜんぜん違うだろうなと感じてしまう。今日このごろですが・・・・。一人でも出来る人はできるから一概には言えないのですけどね。」とこの頃、ボヤいてます。
 

著者名  @taoka_toshiaki

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

タグ

Androidアプリ, java, Mac, NetBeans, Notepad, Visual Studio, エディタ, かなり使えるIDE, コード, ひとり, プロジェクト, リモート設定, 今日このごろ, 修正, 多い場合動作, 既存ファイル, 痒いところ, 相性, 補完機能, 起動,

Accessのさんぷるコードができましたので(´Д`)貼っときます。

2014.08.21

Logging

突貫工事で作ったのでバグは多少あると思いますが{例えばsql インジェクション対策とか。}、Accessのsampleコードができましたので貼っときます。なお、これで何が出来るかって言えばDBの修正、追加、削除といった基本的な動きをします{挙動不審ぎみ嘘!?}。若干、ソースコードを弄くれば使い回しが出来るようにしております。飯くったり他のことをしながらもガリガリとコードを書きました。ちなみにAccessのViewerをマイクロソフトからダウンロードすると動作すると思います。ファイルは下記からダウンロードください。 追記:暇な時に改良していきますので( ゚д゚)ノ ヨロシクとコメントも暇があれば書いときます。そして無駄なコードがありますが、それも軽量していくつもりです(`・ω・´)。ちなみにいまはDBを空にすると落ちますので・・・・(直しました。)。?samplezip358.zip?[https://zip358.com/tool/samplezip358.zip][08/21 11:26]

Option Compare Database
Public db_x As Long
Public max As Variant
Function sel_all(tablename As Variant, tal_valname As Variant) As Variant
    Dim x As Long
    Dim y As Long
    Dim sql As String
    Dim RS As DAO.Recordset
    Dim db As DAO.Database
    Dim hoge(999, 999) As Variant
    Dim val_n As Variant
    Dim val As Variant
    Set db = CurrentDb
    sql = "SELECT * FROM " & tablename & " ORDER BY ID ASC;"
    MsgBox sql
    Set RS = db.OpenRecordset(sql)
    Do Until RS.EOF
        For y = 0 To UBound(tal_valname)
            hoge(x, y) = RS.Fields(tal_valname(y))
        Next y
        RS.MoveNext
        x = x + 1
    Loop
    Set db = CurrentDb
    sql = "SELECT MAX(ID) as maxs  FROM " & tablename & ";"
    MsgBox sql
    Set RS = db.OpenRecordset(sql)
    max = RS.Fields("maxs")
    db_x = x - 1
    Set db = Nothing
    sel_all = hoge
End Function
Function up_in(chk As Boolean, tablename As Variant, tal_valname As Variant, tal_val As Variant, ID As Long) As Variant
    Dim sql As String
    Dim RS As DAO.Recordset
    Dim db As DAO.Database
    Dim hoge_valname As String
    Dim hoge_val As String
    Dim hoge As Variant
    If chk = True Then
        For i = 0 To UBound(tal_valname)
            hoge_valname = hoge_valname & tal_valname(i) & ", "
        Next i
        hoge_val = sql_str(tal_val, "", "", True)
        sql = "INSERT INTO " & tablename & " (" & Left(hoge_valname, Len(hoge_valname) - 2) & ")VALUES (" & hoge_val & ");"
    Else
        hoge_valn_val = sql_str("", tal_valname, tal_val, False)
        sql = "Update " & tablename & " Set " & hoge_valn_val & " WHERE ID = " & ID & ";"
    End If
    MsgBox sql
    Set db = CurrentDb
    db.Execute (sql)
    Set db = Nothing
    up_in = True
End Function
Function del(tablename As Variant, tal_valname As Variant, tal_val As Variant) As Variant
    Dim sql As String
    Dim RS As DAO.Recordset
    Dim db As DAO.Database
    Dim hoge As Variant
    sql = "DELETE FROM " & tablename & " WHERE " & tal_valname & " = " & tal_val & ";"
    MsgBox sql
    Set db = CurrentDb
    db.Execute (sql)
    Set db = Nothing
    del = True
End Function
Function sql_str(hoge As Variant, tal_valname As Variant, tal_val As Variant, chk As Boolean) As Variant
    Dim i As Long
    Dim hoge_str As Variant
    If chk = True Then
        For i = 0 To UBound(hoge)
            If IsNumeric(hoge(i)) Then
                hoge_str = hoge_str & hoge(i) & ", "
            Else
                hoge_str = hoge_str & "'" & hoge(i) & "', "
            End If
        Next i
    Else
        For i = 0 To UBound(tal_valname)
            If IsNumeric(tal_val(i)) Then
                hoge_str = hoge_str & tal_valname(i) & " = " & tal_val(i) & ", "
            Else
                hoge_str = hoge_str & tal_valname(i) & " = '" & tal_val(i) & "', "
            End If
        Next i
    End If
    sql_str = Left(hoge_str, Len(hoge_str) - 2)
End Function

↑クラスdbソースコード

Option Compare Database
Dim max As Long
Dim ID As Long
Dim val_val As Variant
Private Sub Form_Load()
lod
End Sub
Sub lod()
    Dim db As db_db
    Dim val_name As Variant
    Dim x As Long
    Set db = New db_db
    val_name = Array("ID", "表題", "数値", "文字")
    val_val = db.sel_all("tableone", val_name)
    max = db.max + 1
    If cmb.ListCount > 0 Then
        For x = 0 To cmb.ListCount - 1
            cmb.RemoveItem 0
        Next
    End If
    For x = 0 To db.db_x
        cmb.AddItem val_val(x, 1)
    Next
    Set db = Nothing
End Sub
Private Sub cmb_Click()
    If cmb.ListIndex >= 0 Then
        Viw cmb.ListIndex
    End If
End Sub
Private Sub del_btn_Click()
    Dim db As db_db
    Dim hoge As Variant
    Set db = New db_db
    val_name = Array("ID", "表題", "数値", "文字")
    If ID > 0 And max > 1 Then
        hoge = db.del("tableone", "ID", ID)
    End If
    Set db = Nothing
    lod
End Sub
Private Sub in_btn_Click()
    Dim db As db_db
    Dim val_name As Variant
    Dim val As Variant
    Dim hoge As Variant
    chkchk
    val_name = Array("ID", "表題", "数値", "文字")
    val = Array(max, cmb, suuzi, moji)
    Set db = New db_db
    hoge = db.up_in(True, "tableone", val_name, val, max)
    Set db = Nothing
    lod
End Sub
Private Sub upd_btn_Click()
    Dim db As db_db
    Dim val_name As Variant
    Dim val As Variant
    Dim hoge As Variant
    chkchk
    val_name = Array("表題", "数値", "文字")
    val = Array(cmb, suuzi, moji)
    Set db = New db_db
    If ID > 0 And max > 1 Then
        hoge = db.up_in(False, "tableone", val_name, val, ID)
    End If
    Set db = Nothing
    lod
End Sub
Sub Viw(i As Long)
    ID = val_val(i, 0)
    suuzi = val_val(i, 2)
    moji = val_val(i, 3)
End Sub
Sub chkchk()
    If IsNumeric(suuzi) Then
        If suuzi > 9999 Then
            suuzi = 9999
        End If
    Else
        suuzi = 0
    End If
    If IsNumeric(moji) Then
        moji = "文字が不正>" & moji
    End If
    If IsNumeric(cmb) Then
        cmb = "文字が不正>" & cmb
    End If
End Sub

↑formソースコード

著者名  @taoka_toshiaki

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

タグ

35, 358, access, db, https, sample, samplezip, SQL, Viewer, www, zip, いま, インジェクション, コード, こと, コメント, これ, サンプル, ソース, それ, ダウンロード, つもり, バグ, ファイル, マイクロソフト, ヨロシク, 下記, , , 修正, 削除, 動作, , 対策, 工事, 改良, , , 無駄, , 突貫, 若干, 軽量, 追加, 追記, ,