のんのんびりびりプログラマー

のんびりプログラム関係を書いています。また日々思った事を思った時に。

【仮想通貨】税金はどうするの?

たぶん多くの人が悩んでいると思います。

仮想通貨で得た利益に対する税金は
どうなっているのかと

まだ国の法律が十分に追いついていません。

ですが一応決まりはあるそうです。
正しくしないと税務署から
脱税と言われて想定外の支払いをしないといけなくなります。

だからこそ
正しく理解して
正しく支払いをした方がいいです。

現時点の税金

〜195万円 15%
195〜330万円 20%
330〜695万円 30%
695〜900万円 33%
900〜1,800万円 43%
1,800〜4,000万円 50%
4,000万円〜 55%

こんな感じらしい。

しかも雑所得扱いだから
普通の投資のように
マイナス分を翌年の
プラス分と相殺するような
損益通算ができないです。

そしてこれは円に換金した時に起きます。

100BTC購入(1BTCは1万円)
BTCが値上がりして1BTCが10万円になる
ETHを買いたいと思う(1ETHは1万円)
100BTCを1,000万円に換金
1,000ETHを1,000万円で買う

この時の

100BTCを1,000万円に換金

ここで税金がかかります。

税金をかけずにやるには

100BTC購入(1BTCは1万円)
BTCが値上がりして1BTCが10万円になる
ETHを買いたいと思う(1ETHは1万円)
1,000ETHを100BTCで買う

こうすれば円にしないので
税金はかかりません。

仮想通貨はまだ通貨としては認められておらず、
物扱いなので税金がかからないんです。

だから税金をなるべく少なくするためには
円に換金せずに
仮想通貨が使えるお店で直接
仮想通貨払いにすればいいんです。

【仮想通貨】はじめてみる

今話題の仮想通貨
これから始めてみようと思います。

今はどの仮想通貨も爆上げ中

8月1日にビットコイン分裂とか
入出金停止とか
色々と話題は豊富な中で

なぜこの時期に始めるのか不思議と
思われるかもしれないが、

でもやってみたい

仮想通貨の説明は
もう色々な所に書いてあるから
割愛させてもらいます。

仮想通貨は投資ではなく
ほぼほぼギャンブルのようなもの

今日買ったビットコイン
明日には倍になるかもしれないし
2時間後には資産価値がなくなるかもしれない

とっても危ないもの

普通の人からしたら
投資対象にはならない

もちろん私もそこに
全財産つっこむ事は
しないし、できない

まずは様子見で軽くやってみようと思う

土曜日に

  • bitFlyer
  • coincheck

の2つの取引所にアカウント作成したばっかり

まだ取引はできない
あと2〜3営業日してからやっとできる

その時に入金中止されてたら
どうしようかと思うけど。

とりあえず1万ずつ
4〜5個の仮想通貨に
分散投資してみようと検討中。

Instagramの自動いいねのやり方

皆さんInstagramやっていますか?
私は最近やり始めました。

『いいね』を押すのがめんどくさくなったりしていませんか?

私は色んな人をフォローして、
色んな人の投稿にいいねをしています。

毎日数十件、
土日や祝日だと100件以上に
ひたすら『いいね』をしています。

でもこの『いいね』が作業となっており、
めんどくさくなりました。

とりあえず

『いいね』

今はまだフォローが200くらいなので、
まだ大丈夫ですが、
これが1000とかまでいったらもう
自分の手で全ての投稿に
『いいね』
を押すのは不可能になってきます。

だからここで
自動いいね
をさせようと思いました。

色々と調べた結果

『鬼グラム』

というものがありました。

onigm.net

このサイトからツールが無料で落とせて
自動でいいねやアンフォロー等をやってくれます。
設定も以外と簡単です。

やり方はそのサイトにも色々な所にも書いてあります。

では快適Instagram生活を。

【WPF小技集】MVVMLightのMessengerの使い方

Messengerを使えばViewModelからViewに通知を送って
処理をさせることを簡単にできます。

例えばポップアップを出したいや、
新しい画面を開きたいなど

WPFでは画面の処理はあくまでViewで行うような思考ですので、
ViewModelからMessengerでViewに通知を送ります。

ChatViewModel.cs

public void SendCommandRun()
{
    ChatMessage chatMessage = new ChatMessage(true, this.InputMessage);
    this.ChatMessageList.Add(chatMessage);

    Messenger.Default.Send(chatMessage, "MyMessage");

    this.InputMessage = "";
}

ChatView.xaml.cs

public ChatView()
{
    InitializeComponent();

    Messenger.Default.Register<ChatMessage>(this, "MyMessage", Test);
}

private void Test(ChatMessage cm)
{
    //ここに処理を書く
}

ViewModelにはこれを書きます。
第一引数:ViewModel側に投げたいインスタンス
第二引数:Tokenと呼ばれ同じ他のMessengerと区別するもの
     これはintでもstringでも何でもOK

Messenger.Default.Send(chatMessage, "MyMessage");

Model側にはこれを書きます。
ChatMessage:これはどのクラスを投げてきているか明示するもの
第一引数のthis:これはお決まり
第二引数:Tokenで投げたTokenと同じものを書く
第三引数:どのActionを実行するか書く
     ここでは下にPrivateでTestメソッドを記載しているので、
     Testメソッドを実行するということになる

Messenger.Default.Register<ChatMessage>(this, "MyMessage", Test);

これで簡単にMessengerを使って処理が書けます。

【WPF小技集】MVVMLightのRelayCommandの使い方

今回はMVVMLightのライブラリをNugetから落として
RelayCommandを使い方です。

まずはView側にCommandを書きます。
RelayCommandはViewModelに書きます。

ChatView.xaml

<DockPanel LastChildFill="True"
           DockPanel.Dock="Bottom">
    <Button Content="Send"
        DockPanel.Dock="Right"
        Width="50"
        Command="{Binding SendCommand}"/>
    <TextBox Text="{Binding InputMessage, Mode=TwoWay}"/>
</DockPanel>

ChatViewModel.cs

private RelayCommand _sendCommand;
public RelayCommand SendCommand
{
    get { return _sendCommand = _sendCommand ?? new RelayCommand(SendCommandRun); }
}

public void SendCommandRun()
{
    //ここにややりたい処理を記載
}

そのままではエラーになりますので、

using GalaSoft.MvvmLight.CommandWpf;

を追加してください。

これでボタンを押すとこの"SendCommandRun"のメソッドが実行されるようになります。

【WPF小技集】Windowの画面サイズのBinding方法

WindowサイズをBindingしようとするとまず陥ってしまいます。

たぶんこんな感じに普通に書いているんじゃないでしょうか。

ChatView.xaml

<Window x:Class="ChatBot.View.ChatView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ChatBot.View"
        mc:Ignorable="d"
        Height="{Binding Path=Size.WindowHeight}"
        Width="{Binding Path=Size.WindowWidth}"
        Title="ChatView">

正しくBindingしていますが、
デバッグをすると反映されない。

Mode=TwoWay

が抜けているんです。

<Window x:Class="ChatBot.View.ChatView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ChatBot.View"
        mc:Ignorable="d"
        Height="{Binding Path=Size.WindowHeight, Mode=TwoWay}"
        Width="{Binding Path=Size.WindowWidth, Mode=TwoWay}"
        Title="ChatView">
Mode=TwoWay

View→ViewModel、ViewModel→Viewの双方向でBindingをすると
明示的に書くことになります。

Modeは
"Default"、"OneTime"、"OneWay"、"OneWayToSource"、"TwoWay"
があります。

OneTime :ViewModel→Viewに一度だけ一方向にBinding
OneWay :ViewModel→Viewの一方向にBinding
OneWayToSource:View→ViewModelの一方向にBinding
TwoWay :ViewModel→View、View→ViewModelの双方向でBinding

どのModeを選ぶからその時々で考えてください。
基本的にTwoWayであればBindingします。

【WPF小技集】一覧

【WPF小技集】起動時のスタートメソッドの設定 - のんのんびりびりプログラマー
【WPF小技集】Windowの画面サイズのBinding方法 - のんのんびりびりプログラマー
【WPF小技集】MVVMLightのRelayCommandの使い方 - のんのんびりびりプログラマー
【WPF小技集】MVVMLightのMessengerの使い方 - のんのんびりびりプログラマー