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

https://zip358.com/tool/nenga/

ブラウザ上で完結しています。
禁則処理などはありません、ただ純粋に入力したものが
CSV形式の文字列で出力されます。

これ何のために使えるかといえば
https://nenga.yu-bin.jp/

こちらのサイトで住所録を登録する際に使用できます。

タイトルにも描きましたがSJISの文字コードで出力をお願い致します、
また、データベースに保持などはしていないため
リロードしてしまうと全てのデータが消えてしまいます。

これを作った経緯。
自分が郵便年賀.jpで登録するのが面倒だったため作りました。

google NewsをRSSで取得してjsonで返却するPHPプログラム

//$_POST["cate"]...カテゴリ
//$_POST["sh"]...検索キーワード

if($_POST["cate"] and $_POST["sh"]){
    $cate = urlencode($_POST["cate"]);
    $sh = urlencode($_POST["sh"]);
    $res = simplexml_load_file("https://news.google.com/news/rss/headlines/section/q/$sh/$cate?ned=jp&hl=ja&gl=JP");
    rss($res);
}

function rss($obj=NULL){

    if(is_object($obj)){
        if($obj->channel->item){
            $cnt = 0;
            foreach ($obj->channel->item as $item) {

                $resj[$cnt]["title"] = (string)$item->title;
                $resj[$cnt]["link"] = (string)$item->link;
                $resj[$cnt]["pubDate"] = (string)$item->pubDate;
                $resj[$cnt]["description"] = (string)$item->description;
                $resj[$cnt]["source"] = (string)$item->source;
                $cnt++;
            }
        }
    }
    echo json_encode($resj);
}

google NewsをRSSで取得してjsonで返却するPHPプログラムです。
ご自由にご使用ください。

 

javascriptを勉強中

var a = 3;
var b = 10;
var obj = {
        hoge:function(a){
            a = a + a;
            return a;
        },
        a:a = a && 5,
        b:b = b || 3
    };
    
console.log(obj.hoge(2));
console.log(obj.a);
console.log(obj.b);

上記のCodeを動かすと仕事と表示されます(笑)、4,5,10と表示されます。
何故そうなったかを考えるとキリがないのでそういうものだと
思ったほうが良いかもしれないです。

説明するとhogeはオブジェクトです。あとは変数とIF文の省略系を
記述しているだけです、実際は=もいらないですが・・・。
わかりやすく自分なりに記載したつもりです。

javascriptライブラリってこういうのが何百行も記載して成り立っていますが
概念はこういう事です。自分は基本的に概念しか覚えないのです。
何故、そうしているか・・・自分が怠惰な人間だからです。

 

ブロックエディタとクラッシックエディタ

WordPress5.0になりそろそろブロックエディタに切り替える準備を
しているみたいだけど、各プラグインはまだ対応していないみたいだな…。
そもそもブロックエディタってどうなのか?

クラッシックエディタの方が良くない?
っていう意見が多いのはおそらく使い慣れたからとプラグインが
対応していないのが原因なのだけど、対応すれば
ブロックエディタでも良いかもなと思っています。

WordPress5.0・・・仕様もだんだん変わっていくのかな。
ついていくには触れるべしだけど、
自分は当分クラッシックエディタで良いです。

 

DropFTPを配布。

ドップして一つのファイルを転送するソフトを作りました。
こんなのどうしているのかと疑問を持つ人もいると思いますが
業務上、こんなソフトが要るという会社などもいるのではないかと
思いで作りました。

ダウンロードはこちらから
https://zip358.com/tool/DropFTP.zip

ソースコードは下記になります。
※FTP部分はWinSCPのライブラリを使用しています。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinSCP;

namespace dropFTP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void upbtn_Click(object sender, EventArgs e)
        {

            String err = "";

            if (hostText.Text == "") {
                err += "ホスト名が設定されていません\n";
            }

            if (idText.Text == "")
            {
                err += "IDが設定されていません\n";
            }

            if (passText.Text == "")
            {
                err += "passが設定されていません\n";
            }

            if (remText.Text == "")
            {
                err += "アップロード場所が設定されていません\n";
            }

            if (uplab.Text == "")
            {
                err += "アップロードファイルが設定されていません\n";
            }

            var RadioGroup = groupFTP.Controls.OfType<RadioButton>().SingleOrDefault(rb => rb.Checked == true);
            if (RadioGroup == null) {
                err += "アップロード環境が設定されていません\n";
            }

            if (err != "")
            {
                MessageBox.Show(err);
            }
            else {
                if (RadioGroup.Text == "FTP") {
                    upFTP();
                }
                if (RadioGroup.Text == "SFTP")
                {
                    upSFTP();
                }

            }
        }

            private int upFTP() {
            try
            {
                // Setup session options
                SessionOptions sessionOptions = new SessionOptions
                {
                    Protocol = Protocol.Ftp,
                    HostName = hostText.Text,
                    UserName = idText.Text,
                    Password = passText.Text,
                    PortNumber =int.Parse(portText.Text)
                };

                using (Session session = new Session())
                {
                    // Connect
                    session.Open(sessionOptions);

                    // Upload files
                    TransferOptions transferOptions = new TransferOptions();
                    transferOptions.TransferMode = TransferMode.Binary;

                    TransferOperationResult transferResult;
                    if (remText.Text.EndsWith("/"))
                    {
                        transferResult = session.PutFiles(@uplab.Text, remText.Text, false, transferOptions);
                    }
                    else
                    {
                        transferResult = session.PutFiles(@uplab.Text, remText.Text + "/", false, transferOptions);
                    }
                    // Throw on any error
                    transferResult.Check();

                    // Print results
                    foreach (TransferEventArgs transfer in transferResult.Transfers)
                    {
                        MessageBox.Show("アップロードしました");
                    }
                }

                return 0;
            }
            catch (Exception e)
            {

                MessageBox.Show("Error: {0}" + e);
                return 1;
            }

        }
        private int upSFTP()
            {
                try
                {
                    // Setup session options
                    SessionOptions sessionOptions = new SessionOptions
                    {
                        Protocol = Protocol.Sftp,
                        HostName = hostText.Text,
                        UserName = idText.Text,
                        Password = passText.Text,
                        PortNumber = int.Parse(portText.Text),
                        GiveUpSecurityAndAcceptAnySshHostKey = true
                    };

                using (Session session = new Session())
                {
                    // Connect
                    session.Open(sessionOptions);

                    // Upload files
                    TransferOptions transferOptions = new TransferOptions();
                    transferOptions.TransferMode = TransferMode.Binary;

                    TransferOperationResult transferResult;
                    if (remText.Text.EndsWith("/")) { 
                        transferResult = session.PutFiles(@uplab.Text, remText.Text, false, transferOptions);
                    } else { 
                        transferResult = session.PutFiles(@uplab.Text, remText.Text + "/", false, transferOptions);
                    }
                        // Throw on any error
                        transferResult.Check();

                        // Print results
                        foreach (TransferEventArgs transfer in transferResult.Transfers)
                        {
                        MessageBox.Show("アップロードしました");
                        }
                    }

                    return 0;
                }
                catch (Exception e)
                {

                    MessageBox.Show("Error: {0}" + e);
                    return 1;
                }

            }

            private void Form1_DragDrop(object sender, DragEventArgs e) {
            //e.Effect = DragDropEffects.Copy;
            string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            uplab.Text = fileName[0];

        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
        }

        private void radioSFTP_CheckedChanged(object sender, EventArgs e)
        {
            portText.Text = "22";
        }

        private void radioFTP_CheckedChanged(object sender, EventArgs e)
        {
            portText.Text = "21";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.MaximumSize = this.Size;
            this.MinimumSize = this.Size;
        }
    }


}