2018年12月19日水曜日

ウイルス

最近、パソコンが壊れているみたいなダイアログが表示されるようになりました。
そして、ソースネクストのウイルスバスター(安い割に思ったよりしっかりしている)を実行したら、ウイルスが発見されました。

削除したら、パソコンのスピードがやたら速くなりました。

以下のアドレスに怪しいソフトがあるようでしたら、注意です。

【脅威のソフト】
speedcat.setup.exe
SaveSenseUpdateVer.exe
rakuraku.exe




2018年12月13日木曜日

ファイル属性の表示、及び変更

ファイルの属性(エクスプローラでファイル右クリックして、プロパティを選んで表示される属性)をエクスプローラに表示する方法について調べてみました。




1.[スタート]ボタンをマウスの右ボタンでクリックし、ショートカットメニューから[エクスプローラ(X)]をクリックします。
2.「エクスプローラ」画面内の”フォルダ”欄から確認したいフォルダを選択します。
   詳細表示にするにはメニューバーの[表示(V)]→[詳細(D)]を選択します。各詳細について表示されます。
3.詳細項目を追加したい場合は”名前”、”サイズ”、”種類”などの詳細項目バーをマウスの右ボタンでクリックし、ショートカットメニューから追加したいものをクリックします。
  ここでは”属性”をクリックします。

尚、表示される属性の意味は以下となります。

 A:バックアップファイル属性
H:隠しファイル属性
 R:書き込み禁止ファイル属性
S:システムファイル属性

【参考URL】
http://dynabook.com/assistpc/faq/pcdata/000775.htm


また、コマンドで、属性を変更するには下記URLにかいてあるように
Attribコマンドを使用します。
https://www.billionwallet.com/windows10/cmd-attrib.html

例)ファイルの読み取り専用を解除する
attrib -r C:/emp/*

2018年11月6日火曜日

【C#】アセンブリ '<アセンブリ>' は、必要条件として設定されるためには、厳密に署名されていなければなりません。

ビルドしていると「アセンブリ '<アセンブリ>' は、必要条件として設定されるためには、厳密に署名されていなければなりません。」

というエラーが表示されることがある。

プロジェクトのセキュリティで
「ClickOnceセキュリティ設定を有効にしてください」
を外すとエラーは出なくなる。

2018年11月2日金曜日

【NetBeans】htmlファイル実行時にデバッグができないときの対処法

NetBeansで開発していると、デバッグができなくなる時があります。

よくあるパターンは、
「ブラウザの開発ツールを立ち上げる」
とデバッグできるようになりました。

その他に、下記参考サイトに対応方法がありました。
いづれかでなおるとおもいます 。

【参考サイト】
https://konoti.com/website/web-tool/netbeans-can-not-debug.html
https://qiita.com/Tachy_Pochy/items/9747026fe55b070fd201
https://netbeans.org/kb/docs/webclient/html5-js-support_ja.html



ブレークポント削除するにはどうするんだっけ?
と思って調べたら、以下サイトに詳しく記載してありました。
https://code.i-harness.com/ja/q/2ce1e7


ブラウザごとの最新バージョン情報


ブラウザの最新バージョンを調べるのに、参考となるサイトをまとめてみました。

  ⇒WindowsUpdateでEdgeは更新するようですが、10/14で特に更新は行われず、
  42.17134が最新の様子(?)

  ⇒ ※こちらでEdgeのバージョンは確認できます。
     https://cs.zaq.ne.jp/knowledgeDetail?an=000004363

【C#】「値を Null にすることはできません。パラメーター名:serviceInstance 」エラー時の対応


【.NET】「値を Null にすることはできません。パラメーター名: activationContext」が表示する
値を Null にすることはできません。パラメーター名:serviceInstance

と表示されるエラーでました。
対応方法を調べたので、メモとしてまとめました。


【オペレーション】
[1] VSのソリューションエクスプローラから[プロパティ]-[セキュリティ]を選択
[2] 「ClickOnce セキュリティ設定を有効にする」のチェックを外す
 
 


【参考URL】
https://blogs.yahoo.co.jp/dk521123/30586404.html

2018年9月23日日曜日

【Webサイト】HP用のアクセスカウンター

 ホームページに張り付けるカウンターをさがしてみました。
https://freesoft-100.com/homepage/rental/counter.html

上記のサイトで色々紹介されています。
他にも紹介サイト(例:https://internet.watch.impress.co.jp/www/article/1999/0719/special.htm)あります。

簡単に設定したい方は、
http://www.rays-counter.com/
が簡単です。

カウンターは、他の広告表示されるものもあるので、選ぶのに慎重さが必要かもしれません。
忍者カウントも設定は簡単だったのですが、広告がうざいのでやめました
http://www.ninja.co.jp/counter/
FC2は設定方法が面倒なのでこちらもやめました。
https://counter.fc2.com/

【F#】F# リファレンス ~シンボルとキャスト、Match

1、シンボルと演算子の表
F#でまずなやむのがシンボルです。

次のURLでは、F# 言語で使用されるシンボルについて説明し、より詳しい情報が提供されるトピックへのリンクと、シンボルの使用方法の一部の簡単な説明がなされています。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/symbol-and-operator-reference/

例えば、
:> ・・・ キャストと変換で使います。
:? ・・・ match式で使います。指定された型に値が一致する場合は true を返します。それ以外の場合は、false を返します (型テスト演算子)。

キャストについては次のURLに詳しく書いてあります。
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/casting-and-conversions

(2) Match式
他の言語で使われるswitch式に該当します。
【参考URL】

https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/match-expressions

【F#】F# リファレンス

F#始めました。
しかし、市販されている本も少なく、またサイトにある情報も少ないので、
すこしづつ情報をまとめていきたいとおもっています。

【参考URL】
https://docs.microsoft.com/ja-jp/dotnet/fsharp/language-reference/index

1、値(value)と型(type)
F#の値(value)は、特定の型(type)を持つ数量(quantity)です。
値は変更不可ですがが、
キーワード mutable を使用して、変更可能な変数を指定できます。
> let mutable x = 1
> x <- x + 1
 ・・・<-で値変更する
【参考URL】
http://fsharpintro.net/value.html

2、ラムダ式(匿名関数/無名関数)
fun pat1 ... patn -> expr
  funがラムダ式が始まることを示すキーワードで
  exprは様々な式のこと、つまり関数の本体です。
> fun x -> x + 1

関数を適用するための構文は次のようになります。
expr expr | expr(expr)
式全体を括弧で囲む必要がある点です。
> (fun x -> x + 1) 10

今度は引数が2つの関数です。
> ((fun x y -> x + y) 10) 20
> (fun x y -> x + y) 10 20

※返り値:関数本体部分の一番最後の式の値が返り値になります。
> (fun x -> x 10) (fun y -> y + 1)
val it : int = 11

引数の無い関数も定義はつぎのようにします。
> (fun () -> 10) ()
val it : int = 10

3、letを用いた関数定義
let ident pat1 ... patn return-typeopt = bodyexpr
let ident pat1 ... patn return-typeopt = bodyexpr in expr
 identは、定義する関数の名前です。演算子も定義出来ます
 pat1 ... patnは、引数で、匿名関数のところで説明したものと全く同じです
 return-typeoptは、定義する関数の型の注釈で、省略可能です
 bodyexprは関数本体に相当する式です。
> let add x y = x + y //2つの入力をとり、それらを加算する関数
> add 10 20
> let add2 = fun x y -> x + y
> add2 10 20

4、letの構文
let recを用いた関数定義(再起関数)
let rec ident pat1 ... patn return-typeopt = bodyexpr
let rec ident pat1 ... patn return-typeopt = bodyexpr in expr
>let rec fact n =
> if n=1 then
>  1
> else
>  n * fact(n-1)
> fact 5

5、参照型
参照型を使えば、値を変更可能(mutable)にできます。
値を参照型に変更するにはrefを使います。
また、!参照型とすることで、値の参照が、
参照型:=値とすることで値の変更を行うことができます。
let a = ref "hello";;
//aの値を参照
!a ^ " world";;  ---->val it : string = "hello world"
//aの値を変更
a := "hi";;
//aの値を参照
!a ^ " world";;

リストに要素を付加するには、:: (cons) 演算子を使用します。
let pdmList=ref []
pdmList:=pdm:: !pdmList  // := は参照に値を挿入 !pdmListは、pdmListの参照値 ::は結合
let tr=[tr1;tr2;tr3]|>List.max // リスト[tr1;tr2;tr3]を|>演算子を使って、List.maxを実行

6、option型
これを使うと、「値がないか、何かの値がある」ことを表すことが出来ます。
option型のデータを操作するには
パターンマッチを用います。
type 'a option =
 | None  //値がない場合
 | Some of 'a //値がある場合

2018年9月22日土曜日

【Python3】pythonの教科書(7) ~日本語対応

Pythonプログラミングで、ファイル内で日本語使うとエラーになります。

例えば、コンソールにつぎのようなメッセージが出力されます。
SyntaxError: Non-UTF-8 code starting with '\x82' in file C:\本山さん\ranking\ranking4.py on line 15, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

この場合には、
Pythonのスクリプトファイルの1行目もしくは2行目に「# coding: 文字コード」を記入します。
 ⇒ファイルで使われている文字コードを宣言し、Pythonに知らせることができます。
 「文字コード」の部分を「Shift_jis」にすればShift jisになりますし、「utf-8」にすればutf-8になります。

【参考URL】
http://programming-study.com/technology/python-japanese/

2018年9月21日金曜日

[Windows10] ウインドウズアップデートに注意 ~ リモートデスクトップで接続できなくなりました


[Windows10] で、アップデートしたら、「リモートデスクトップで接続できなくなりました。

|認証エラーが発生しました。要求された関数はサポートされていません。原因は CredSSP 暗号化オラクルの修復である可能性があります。詳細については、https://go.microsoft.com/fwlink/?linkid=866660


と表示されました。

対応策しらべたら、 レジストリを変更したら、リモートデスクトップつかえるようになりました。

【対応策】
①regeditで「レジストリエディタ」起動
② 以下のディレクトを確認(ない場合は作成する(フォルダ右クリックメニュー「新規」「キー(K)」選択で作成)
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters
③以下の値変更(ない場合は、右クリックメニュー「DWORD(32ビット)」選択で値作成)
AllowEncryptionOracle
データの種類 : DWORD
値 : 2


【参考URL】
https://blog.dreamhive.co.jp/mkoba/?p=6276

2018年9月9日日曜日

【Python3】pythonの教科書(6) ~コマンド引数、ファイル検索、os.path、クラス

1、コマンド引数、ファイル検索
コマンドライン引数を使用して、複数テキストファイルからテキストファイルを検索するサンプルです。

import sys
import os
if len(sys.argv) <= 1:  # sys.argvがコマンドライン引数
    print("pyファイルの後ろに引数(キーワード)を指定してください")
    sys.exit(0) # プログラムを終了する

keyword = sys.argv[1]
for root, dirs, files in os.walk("."):
    for fi in files:
        result = []

        try: #try-catchを使って、テキストファイル以外読み込んだ時のエラー防止
            path = os.path.join(root, fi)
            with open(path, encoding='utf-8') as f:
                for no, line in enumerate(f):
                    if line.find(keyword) >= 0:
                        line = line.strip()
                        s = "| {0:4}: {1}".format(no+1, line)
                        result.append(s)

        except:
            continue

       # resultに検索結果があれば結果を表示
        if len(result) > 0:
            print("+ file: " + fi)
            for li in result:
                print(li)


2、スクリプトパス
__file__でパス取得できます。
 
print __file__    # スクリプトファイルへの相対パス
print os.path.dirname(__file__) # スクリプトファイルのあるディレクトリへの相対パス
txt = os.path.join(os.path.dirname(__file__), 'input.txt') # スクリプトと同じディレクトリのファイル input.txt のパス
print txt 

print os.path.basename(__file__) # スクリプトファイル名
print os.path.abspath(__file__)  # スクリプトファイルの絶対パス

print os.getcwd()                # 実行時カレントディレクトリの絶対パス
 
 os.path にはいろいろな関数があります。
https://docs.python.jp/3/library/os.path.html
 

3、クラス
__init__が初期化関数になります。selfはインスタンス自身を表します。
  
class Clock:
    def __init__(self, hour, min, sec):
        self._hour = hour
        self._min = min
        self._sec = sec
    @property
    def hour(self):
        return self._hour

obj = Clock(11, 10, 0)
print(obj.hour) 

派生クラスは、次のように定義します。 
class 派生クラス名(基底クラス名):
  派生クラスの定義
 ...
 
派生クラスから基底クラスのメソッドを呼び出すには
super().基底クラスのメッソド()
と書きます。
 
メッソド名や変数名がアンダーバー(_)からはじまっていれば、 
非公開メソッド定義になります。
 
 
class Car:
    ''' 基底クラス '''
    def __init__(self, owner):
        self.car_type = "normal"
        self.owner = owner

   def show_status(self):
        ''' 状態を表示 '''
        print("owner:", self.owner)
        print("car_type:", self.car_type)
 
   def _test
        ''' 非公開メソッド''' 
        print("test.....") 

class Van(Car):
    ''' 派生クラス '''
    def __init__(self, owner):
        super().__init__(owner)
        self.car_type = "van"


【Python3】pythonの教科書(5) ~モジュール、ファイル読み書き

1、モジュール
(1)モジュールを取り込む
ファイル名がモジュール名となります。
モジュールを取り込む場合は、importを使います。
import モジュール名
hoge.pyというファイルを作った場合は、import hogeで取り込むことができます。

異なるパスにモジュールを配置した場合は、「ディレクトリの区切り」は"."で表します

(2) 標準モジュール
以下URLで確認できます。
https://docs.python.jp/3/py-modindex.html

(3)パッケージ管理ツール「pip」
パッケージ一覧登録「PyPI」(https://pypi.org/)は
 pip install パッケージ名
でインストールできます。
※pip uninstall パッケージ名、で削除できます
※インストールしたパッケージは、「c:\Users\ユーザ名\AppData\Local\Programs\Python\Python37-32(Pythonのバージョン名)\Lib\site-packages」に保存されます


2、ファイルの読み書き
①ファイルを開く open()
②ファイルを読み書きする read()/write()
③ファイルを閉じる close()

(1) ファイルの読込
test.txtファイルを読み込む例です。

a_file = open("test.txt", encoding="utf-8")
# 日本語読込の場合は、a_file = open("mt7_7_sjis.txt", encoding="sjis")
s = a_file.read()
a_file.close()


【ファイルを1行づつ読み込む場合】
また、with構文を使うと、close文を使わなくっても、自動的に処理の最後にclose文を実行してくれます。

key = "test"
with open("test.txt", encoding="utf-8") as tf:
    for i, line in enumerate(tf):
        # 文字列 key が行に含まれるか?
        if line.find(key) >= 0:
            print(i+1, ":", line)

(2) ファイルの書込
try-catchを使って、 test.txtファイルを書き込む例です。

a_file = open("test.txt", mode="w", encoding="utf-8")
try:
  a_file.write("test=\n今日は晴れです\n")
finally:

  a_file.close()

with構文を使って、ファイル書き込みを行います。

with open("test.txt", mode="w", encoding="utf-8") as f:
    f.write("test=\n今日は晴れです")


 (3) jsonファイルの読込/書込
import jsonを使用します。
①読込例
import json
filename = "test.json"
with open(filename, "r") as fp:
    r = json.load(fp)
    print("no=", r["no"])
    print("code=", r["code"])
    print("scr=", r["scr"])


②書込例
import json
# 辞書型のデータ(数値、タプル、文字列が使えます)
data = {
  "no": 1,
  "code": ("num", 1, 10),
  "scr": "test,test......",

filename = "test.json"
#オブジェクトをJSON文字列に変換
with open(filename, "w") as fp:
    json.dump(data, fp)

2018年9月2日日曜日

【Python3】pythonの教科書(4) ~無名関数、例外処理

1、無名関数
関数を定義しない関数のことで、lambdaを使います。
【例:xを2倍する無名関数】
y = lambda x : x *2  # y(x) : return x * 2 と同じ
y(2)
   ⇒(結果)4

【例: yに代入された関数オブジェクトをnumsの要素全てに実行してリスト化する 】
nums = [1, 3, 5, 7, 9]
y = lambda x : x *2
list(map(y, nums))
  ⇒(結果)[2. 6, 10, 14, 18]

【例: タプルのリストをソートする 】
tpl_list = [(1,2),(2,1),(3,0),(4,-5)]
ranking_list = sorted( tpl_list, key = lambda tpl : tpl[1], reverse=False)
print("+-------- rank (index, value)  ------+")
for i,v in enumerate(ranking_list) : print(i+1, v)
  ⇒(結果)+-------- rank (index, value)  ------+
               1 (4, -5)
               2 (3, 0)
               3 (2, 1)
               4 (1, 2)

2、例外処理
例:
s = input("Please input weight !")
try:
  v = 100 / float(s)
  print(v)
except ValueError as e:
  print(e)
except ZeroDivisionError as e:
  print(e)
except:
  print("another Error !!")
finally:
  print("end !!!")

エラーを発生させたいときは、 raiseを使用する
raise Exception("test Error ")


【Python3】pythonの教科書(3) ~データ(set/辞書/docstring/グローバル変数)

1、set
重複値を持つことができない
例: colors = { "red", "yellow", "green" }

2、辞書
例:
# 辞書型のデータ(果物名と値段)を変数に代入
fruits = { "バナナ": 300, "オレンジ": 240, "イチゴ": 350, "マンゴー": 400 }
# 辞書型のデータ一覧を表示
for name in fruits.keys():
    # 値段を得る
    price = fruits[name]
    # 画面に出力
    s = "{0}は、{1}円です。".format(name, price)
    print(s)

for name, price in fruits.items():
    s = "{0}は、{1}円です。".format(name, price)
    print(s)

・values()を使うと、値一覧を取得できる
・items()で、キーと値の一覧を取得できる
・sorted(d.keys())で、キー一覧をソート済みのリストで取得できる

【成績計算】
records = { 'Tanaka':72, 'Yamada':65, 'Hirata':100,'Akai':56, 'Fukuda':66, 'Sakai':80 }
# 合計を求める
sum_v = 0
for v in records.values():
    sum_v += v
print("合計点:", sum_v)


3、関数
(1) docstring
  関数の直下に三重引用符(''')の文字列を記述する。説明文をつける機能です。
 help(関数名)で確認できます。

【サンプル(動物での走行時間計算)】
# 動物の最高時速
animal_speed_dict = { "チーター": 110, "トナカイ": 80, "シマウマ": 60,  "ライオン": 58, "キ リ ン": 50,  "ラ ク ダ": 30}
# 東京から各都市までの距離
distance_dict = { "静  岡": 183.7,"名古屋": 350.6, "大  坂": 507.5}
def calc_time(dist, speed):
   ''' 時間を計算する '''
    t = dist / speed
    t = round(t, 1) # 四捨五入
    return t
def calc_animal(animal, speed):
   ''' 動物の各都市までの時間を計測する '''
    res = "|" + animal
    for city in sorted(distance_dict.keys()):
        dist = distance_dict[city]
        t = calc_time(dist, speed)
        res += "|{0:>6}".format(t) # 6文字を右寄せ(0は、format内の1番目の文字列)
    return res + "|"

print("+--------+------+------+------+")
print("|動物名前", end="")  # endは改行しないという意味
for city in sorted(distance_dict.keys()):
    print("|" + city, end="")
print("|")
print("+--------+------+------+------+")

for animal, speed in animal_speed_dict.items():
    s = calc_animal(animal, speed)
    print(s)
print("+--------+------+------+------+")

(2) グローバル変数
関数内でglobal宣言すると、グローバル変数の値変更可能となる
value =100
def changeValue()
  ''' valueをグローバル宣言 '''
  global value
  value =20

changeValue()
print("value=", value)
  →value =20となる(global valueを宣言しないと、100となる)

【Python3】pythonの教科書(2) ~type/pass/while/リスト/タプル

1、変数の型を調べる
type(変数や値)

2、if文で、何もしない場合
passを使用する
【例】
n = 5
if n == 3:
  pass
else:
  print(n)

3、プログラムの強制終了
[Ctrl]+[C] キー

4、while/for構文でのelseブロック
繰り返し条件が偽になった時に実行される
(繰り返しが1度も実行されない時、breakで途中終了されなかった時)

5、リスト
リストの例: a = [1,2,3,4]
                    len(a)
                    for i in a
                      print(v)
                    sum = sum(a)
                    a.append(5)
                    # インデックス番号、要素の値を出力
                    for i,v in enumerate(a)
                      print(i,v)
                  # 要素の追加
                  a += [6,7,8]
                    a .expand([9,10])

(1) リストのスライス
開始は0でなく、1となる(0から数えて1番目
・リスト[開始:終了]  // [:3]のように0は省略可能(末尾も同様)
・リスト[開始:終了:ステップ] 
・リスト[-2] //末尾から2個目の値

(2) リスト操作(以下の関数が使用できる)
appnd(x)
extend(x)
insert(i,x)
remove(x)
pop()
clear()
index(x)
count(x)
sort(key,reverse)   // reverse=Trueで降順ソート
copy()

6、タプル
リストと異なり、値が変更できません
リストの例: a = (1,2,3,4)
                     b=a[1]
                     c=[:2]

7、リストとタプルの変換
タプルからリスト変換:list(タプル)
リストからタプル変換:tuple(リスト)

【Python3】pythonの教科書(1) ~文字列に変換

pythonの教科書という本を買って、python3を勉強してみました。
(読みやすい本です。レビューでの評価もいいですね)
今後使えそうな内容(コード)などまとめてみました。

1、Python Sell(IDLE )の起動
・スタートメニューから「Python3.x」「IDLE」選択

もしくは、
・コマンドプロンプトで pythonを入力

2、コマンドラインからスクリプトファイル実行
スクリプトファイルダブルクリックでも実行できますが、
python3 スクリプト名.py
で実行します。

3、文字列
(1)数値を文字列に変換
str(数値)
⇒文字列を数値:int(文字列)、float(文字列)
(2) format()で値を埋め込む方法
"書式文字列".format(値,....)
【例】

inchi=24
cm =inchi * 2.54
desc ="{0}インチ={1}センチ".format(inch,cm)
print(desc)
(4) その他
・文字列の置換
 文字列.replace("検索語句","置換後の内容")
・英文字を単語に区切る
 文字列.split(区切り文字)
・lower()で文字列を小文字にする。upper()で大文字にする
・find(検索キーワード)で検索①を調べる
・spilt('区切り文字')で、分割する

2018年8月30日木曜日

【Python】Python3 インストール方法

Python3を使って、Pythonプログラミングを行うので、インストール方法をまとめてみました。

(1) Pythonをダウンロード
https://www.python.org/downloads/ ページでダウンロードする。
 ⇒今だと、Download Python 3.7.0 をクリックしてローカル保存する

(2)インストール
ダウンロードしたファイルをダブルクリックして、Add Python 3.6 to PAHT」にチェックを入れてから、「Install Now」をクリックし、インストールを開始させる。
インストールが完了したら、「Close」をクリックして、ウィンドウを閉じる。

(3) インストールの確認
(pythonの確認)
Windows のコマンドプロンプトを起動して、python を入力し、Enter キーを押す。
画面に「Python 3.6.3 on win32」が表示されれば、Python が正しくインストールされたことになる。
 ⇒Python2を使うときはpy -2コマンドを実行。Python3のときはpy -3を実行する。

(pipの確認)
コマンドプロンプトを起動して、pip --version を入力し、Enter キーを押す。
画面に「pip 9.x.x (Python 3.6)」のようなメッセージが表示されれば、インストールが正しく行われたことになる。

(4) python2がインストール済みの場合
python3を使いたい場合は、pathを変更する。(順番が重要!)



【参考URL】
https://bi.biopapyrus.jp/os/win/win-install-python.html
https://www.tech-tech.xyz/archives/3067595.html
http://windvoice.hatenablog.jp/entry/2018/05/02/150754

2018年8月22日水曜日

句読点[。、]の正しい使い方、9つのルール

知人から、 句読点の「?。」は使うのは変だと教えてもらい、調べてみました。
やはり変でした。

最後まで読まれる文章、読んでいてストレスにならない文章を作るために、句読点(句点(くてん)[。]と読点(とうてん)[、])はとても重要です。
句読点のルールを記載した下記アドレスのトピック9個が上がっており、今後注意したいと思います。

1、読点の使い方・ルール
●一文の文字数=52.2文字、一文の読点数=1.49個にする
 →1つの文は約50文字で書かれており、1つの文中に1〜2個の読点が使われている
●読点[、]は通常、文章の「主語」「主題」のあとに打つ
 →短い文章の場合は、読点がないほうが読みやすい場合が多い
●重文では、途中で読点[、]で区切りをつけた方が読みやすくなる
  (ひとつの文章の中に[主語+述語]のかたまりが複数あるものを、「重文」または「複文」と言う)
●接続詞(しかし・だから・また・あるいは 等)や一部の副詞(もし・なぜなら・決して 等)、またはこれらと似たような働きをする語句の後に打つ
●並列関係にある語句をいくつか並べる場合、その区切りに使う
●修飾語と修飾される語句との関係が分かりやすいように読点を打つ
 →読点[、]を打つ位置によっては、同じ文章がまったく違う意味に変わってしまうことがある
●漢字・カナの連続を防ぐために打つ

2、句点の使い方・ルール
●文章の最後にカッコ()を使うときには、カッコの後に句点を打つ
 (参照元、筆者名などを文章の最後に記載するときは、カッコの前に句点を打つこともある)
● 感嘆符[!]や疑問符[?]の後ろには句点は打たない

【参考URL】
http://ebloger.net/punctuation/

2018年8月5日日曜日

【Python】難読化

「Pythonの難読化」について、調べてみました。
方法は主に二つあるようです。
 
①Pythonの難読化ツールで行う
モジュール compileall か py_compile を使うと .pyファイルをコンパイルして .pycファイルを作成できる。
 
「python3 -m compileall [ファイル名] 」
で、同じ階層に "__pychache__" というディレクトリができる。
 
その中に、
[ファイル名].[Pythonのバージョン].pyc
というコンパイル済みファイルができので、
python3 [ファイル名].[Pythonのバージョン].pyc
で実行する。


②Pythonを他言語に変換してコンパイル
(1) Cythonで、PythonのコードをCに変換してコンパイルすることで高速化する
 
(2)  jythonを使い、 Pythonコードをjavaに翻訳して、バイトコードにコンパイルする
 

2018年7月15日日曜日

SVGファイル変換と、WEBアイコンフォント

1、SVGファイル変換
PNGファイルをSVGファイル変換するフリーツールがありました。
https://convertio.co/ja/png-svg/
にて、「ファイル追加」「変換」をクリックします。
変換後、ダウンロードボタンをクリックで、SVGファイルをダウンロードします。


2、WEBフォント作成
追加するには、icomoon.ioを使います。
ブラウザは、google chromeを使用してください。
 (事前準備)PNGファイルを、svg形式でアイコンを作っておきます。
https://icomoon.io/のselect画面を開いて、IcoMoonAppをクリック
②初期状態でアイコンが表示されています。
登録済みのアイコン一覧を読み込むため、左上の「import icon」をクリックし、以前作成した場合は、\selection.jsonを開きます。
⇒初回の場合は、この処理はいりません。
登録済みのアイコンが選択状態で表示されます。(黄色枠が選択状態)


③追加するアイコンを登録します。
 左上の「import icon」から準備したsvgファイルを選択します。選択して画面に表示された段階だと選択されていないので、アイコンをクリックして選択状態にします。
④右下の「Generate Font」をクリックします。
 フォントが作成され、プレビューが表示されます。直近で追加したものが上部に表示されます。content名は自動で割り当てられます。(この画面のHTMLはダウンロードファイル内に含まれます)
⑤フォントセットを右下のDownloadをクリックしてダウンロードします。
⑥ダウンロードしたicomoon.zipを解凍します
⑦解凍したファイルにあるディレクトリの
・style.css
・fonts フォルダ
(内の4つのフォントファイル
icomoon.eot
icomoon.svg
icomoon.ttf
icomoon.woff)
をすべて作成するHTMLのあるフォルダにコピー・上書きします。

これでアイコンフォントが設置できました。

3、アイコンフォントの使用
 解凍したファイルにdemo.htmlがあるので、このファイルをみて、アイコンフォントを設定の参考にします。。

例:icon-icn_b0162を使ったタグです。
<span class="icon-icn_b0162"></span>



【参考URL】
https://www.webantena.net/service/iconfont-icomoon/

2018年7月9日月曜日

Yahoo!基金(平成30年7月豪雨被害 緊急災害支援募金)

平成30年7月豪雨被害が拡大しています。

Yahoo!ネット募金で、「緊急災害支援募金」が行われています

Tポイントでも募金できますので、余っているTポイントがありましたら、寄付してみたらどうでしょうか。

※Tポイントで1ptから寄付できます(期間固定Tポイントもご利用いただけます)
⇒Tポイントでの募金手順は下記URL参照してください。
https://tasano2525.blogspot.com/2017/03/yahoo.html

◇----------------------------------◇
1. 平成30年7月豪雨被害 緊急災害支援募金
◇----------------------------------◇

▼平成30年7月豪雨被害 緊急災害支援募金(Yahoo!基金)
https://yahoo.jp/VxUvVEs

▼西日本豪雨災害 緊急支援(ユナイテッド・アース)
https://yahoo.jp/PjMVi3

▼西日本豪雨被災者への医療支援(災害人道医療支援会:HuMA)
https://yahoo.jp/XeWaZ0

▼西日本豪雨災害 緊急支援募金(ピースボート災害ボランティアセンター)
https://yahoo.jp/Wsbsaa

▼西日本豪雨被災者支援(ジャパン・プラットフォーム)
https://yahoo.jp/3ZJJ0Y

▼西日本大雨洪水被災者のための緊急支援(AAR Japan)
https://yahoo.jp/S2Wl-C

▼被災された方々と犬猫たちのために(日本レスキュー協会)
https://yahoo.jp/vNE08L 


▼大雨洪水緊急支援(A-PADジャパン)
https://yahoo.jp/jS0zNV

▼被害の大きい広島・岡山で活動を開始(ピースウィンズ・ジャパン)
https://yahoo.jp/1Vd3ZV

◇----------------------------------◇
2. Yahoo!ネット募金以外の募金(外部サイト)
◇----------------------------------◇

▼24時間テレビインターネット募金で寄付する
https://yahoo.jp/i0Ssroz

▼楽天クラッチ募金で寄付する
https://yahoo.jp/B9rei8

▼LINEで寄付する(スマホのみ)
https://yahoo.jp/_x-iK5

▼CAMPFIREで寄付する
https://yahoo.jp/dqWqxQ
 

◇----------------------------------◇
3. Yahoo! JAPANからのお知らせ
◇----------------------------------◇

▼募金特設ページを公開「平成30年7月豪雨 緊急災害支援募金」
https://yahoo.jp/m6wzdt
※随時、寄付先の団体を追加予定です

▼災害情報特設ページを公開「大雨の最新情報と注意点」
https://yahoo.jp/LFutcH

▼Yahoo!地図が道路通行実績・通行止め・渋滞情報を公開
https://yahoo.jp/J7ogrp